1 / 35

Java Collection Framework

Java Collection Framework. Outlines. Memahami Collection Framework di Java Memahami struktur JCF Mampu mengimplementasi JCF Mengetahui perbedaan beberapa concrete class di JCF. Framework.

falala
Download Presentation

Java Collection Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Collection Framework

  2. Outlines • Memahami Collection Framework di Java • Memahami struktur JCF • Mampu mengimplementasi JCF • Mengetahui perbedaan beberapa concrete class di JCF

  3. Framework • Framework : Koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.

  4. Framework • Framework adalah kumpulan fungsi (libraries), sehingga seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framework, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework.

  5. Collection Framework • Collection Framework adalah arsitektur di Java untuk merepresentasi dan memanipulasi collections. • Meliputi: • Interface: tipe data abstract yang merepresentasikan collections • Implementation: berupa implementasi concrete dari interface yang ada • Algorithm: adalah method yang berguna untuk memanipulasi collections, seperti searching dan shorting • Method ini bersifat polymorphic, karena bisa diterapkan pada implementasi yang berbeda

  6. Hierarki Java Collection Framework • Jika array adalah tempat sekumpulan elemen. Maka Collection adalah tempat sekumpulan objek. • Collection : suatu wadah/container yang menapung sekumpulan object. • Java Collection Framework mendukung tiga jenis collections utama, yakni: • set • list • map

  7. Hirarki Iterator ListIterator

  8. JCF Interfaces dan Classes • Interfaces: • Collection • Set (tidak ada duplikasi) • SortedSet • List (bisa ada duplikasi) • Map (mis: Dictionary) • SortedMap • Iterator • Iterable • ListIterator • Classes: • HashSet • TreeSet • ArrayList • LinkedList • HashMap • TreeMap

  9. Interface Iterator Iterator ListIterator

  10. Interface Iterator • Iterator adalah interface yang dapat digunakan untuk mengontrol object yang mengimplementasi interface ini (untuk selanjutnya object ini disebut object iterator) • Dengan object iterator, kita dapat menelusuri semua object yang ada dalam collection

  11. Interface Iterator • boolean hasNext(); • untuk memeriksa apakah object berikutnya ada atau tidak • E next(); • untuk mendapatkan object berikutnya • void remove(); • dipanggil setelah menjalankan method next() • menghapus object yang sudah dipanggil dengan next() terakhir • setelah memanggil next(), tidak bisa menjalankan remove() dua kali, pemanggilan kedua menyebabkan munculnya exception

  12. Interface Collection

  13. Interface Collection • public int size(); • Mengembalikan angka yang merupakan jumlah object dalam collection • public boolean isEmpty(); • Mengembalikan nilai true bila tidak ada object dalam collection • public boolean add(E x); • Untuk memasukkan satu atau beberapa object ke collection. Pengembaliannya adalah true jika berhasil menambah. (beberapa jenis collection tidak mengijinkan duplikasi, sehingga proses add bisa saja gagal) • public boolean contains(Object x); • Untuk mengecek bahwa collection yang dimaksud mengandung object x • public boolean remove(Object x); • Menghapus sebuah object x dari collection. Kembalian bernilai true, jika ada object yang dihapus • public Iterator<E> iterator(); • Mengembalikan sebuah iterator yang digunakan untuk menelusuri object di collection

  14. Interface Set

  15. Interface Set • Set extends collection • Set menuruni semua method milik Collection • Set tidak memperbolehkan adanya duplikasi object di koleksinya • Jika ingin menambah elemen dua kali dengan “add()” maka “add()” yang kedua akan mengembalikan nilai false • Untuk mengakses object-object di Set, digunakan Iterator • Representasi Set adalah seperti group, misal group musik, group mata kuliah

  16. Implementasi Set (Concrete Class) • java.util.HashSet<E> (merupakan hashtable) • Constructors: • public HashSet(); • public HashSet(Collection<? extends E> c); • public HashSet(int initialCapacity); • public HashSet(int initialCapacity, float loadFactor); • java.util.TreeSet<E> (merupakan balance BST) • Constructors • public TreeSet(); • public TreeSet(Collection<? extends E> c); • .............

  17. Contoh Penggunaan Set import java.util.HashSet; import java.util.Iterator; import java.util.Set; publicclass ContohSet { staticpublicvoid main(String[] args) { Set<Integer> set = new HashSet<Integer>(); // membuat object HashSet // yang menghandle object Integer settingSet(set); // setting isi koleksi printSet(set); // menampilkan isi koleksi settingSet(set); // setting isi koleksi printSet(set); // tampilkan koleksi } staticprivatevoid settingSet(Set<Integer> set){ set.removeAll(set); // mengosongkan isi koleksi for (int i = 1; i < 10000; i *= 2) { set.add(i); // menambahkan object ke koleksi } } staticprivatevoid printSet(Set<Integer> set){ Iterator itr = set.iterator(); // mendapatkan object iterator dari koleksi while(itr.hasNext()) System.out.print(itr.next()+" "); // menampilkan isi koleksi System.out.println(); } }

  18. Contoh Penggunaan Set • Object di dalam Set tidak urut • tidak urut berdasar urutan input • tidak urut berdasarkan nilai data di object • Program di atas bisa saja menghasilkan hasil sbb: • 1 4096 8192 2 32 4 64 512 8 1024 128 2048 16 256 • 4096 1 8192 32 2 512 64 4 1024 8 128 2048 16 256

  19. Interface SortedSet

  20. Interface SortedSet • SortedSet memiliki fitur yang sama dengan Set, namun object yang tersimpan diurutkan berdasarkan datanya • SortedSet biasanya dikombinasikan dengan TreeSet • Efek penggunaan SortedSet, proses penambahan data jadi lebih lambat daripada Set biasa

  21. Contoh Penggunaan SortedSet import java.util.Iterator; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; publicclass ContohSortedSet { staticpublicvoid main(String[] args) { SortedSet<Integer> set = new TreeSet<Integer>(); // membuat object TreeSet // kemudiandihandleoleh SortedSet settingSet(set); // setting isikoleksi printSet(set); // tampilkankoleksi } staticprivatevoid settingSet(SortedSet<Integer> set) { set.removeAll(set); // kosongkanisikoleksi for (int i = 10000; i > 0; i /= 2) { set.add(i); // menambah object kekoleksi } // secara descending } staticprivatevoid printSet(SortedSet<Integer> set) { Iterator itr = set.iterator(); // mendapatkan object iterator darikoleksi while (itr.hasNext()) System.out.print(itr.next() + " "); // menampilkanisikoleksi System.out.println(); } }

  22. Contoh Penggunaan SortedSet • Hasil dari program di atas adalah: • 1 2 4 9 19 39 78 156 312 625 1250 2500 5000 10000 • Jadi meskipun penambahan object integer ke koleksi dimulai dari nilai besar ke nilai kecil, object yang disimpan otomatis diorganisasi urut dari kecil ke besar

  23. Interface List

  24. Interface List • List extends Collection • Items/Objects di List dapat diakses menggunakan posisinya / indeksnya • Method “add()” menambahkan object baru di bagian paling belakang dari list • List cocok digunakan untuk mengganti Array, dengan ukuran yang dinamis

  25. Interface List • Method tambahan yang merupakan tambahan baru dari yg dituruni dari interface Collection • public E get(int index) • mengembalikan object di posisi yang ditunjukkan index • public E set(int index, E x) • mengganti object di posisi index dengan object x, dan mengembalikan object yang telah diganti • public void add(int index, E x) • menambahkan object E ke posisi x, object lama di posisi x sampai posisi terakhir digeser satu posisi ke belakang • public E remove(int index) • menghapus object di posisi x, kemudian menggeser di belakang object yang dihapus satu posisi kedepan • return object yang dihapus • public int indexOf(Object e) • Mengembalikan indeks/posisi dari object e

  26. Implementasi List (Concrete Class) • java.util.ArrayList<E> (representasi array) • Constructors: • public ArrayList(); • public ArrayList(int initialCapacity) • public ArrayList(Collection<? extends E> c); • java.util.LinkedList<E> (dobel linked list) • Constructors: • public LinkedList(); • public LinkedList(Collection<? extends E> c); • Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class

  27. Contoh Penggunaan List import java.util.ArrayList; import java.util.List; publicclass ContohList { publicstaticvoid main(String[] args) { List<String> list = new ArrayList<String>(); loadData(list); tampilkanList(list); } privatestaticvoid loadData(List<String> list) { list.add("nol"); list.add("satu"); list.add("dua"); list.add("tiga"); list.add("empat"); } privatestaticvoid tampilkanList(List<String> list) { for (int i = 0; i < list.size(); i++) System.out.print(list.get(i) + " "); // menampilkanisikoleksi System.out.println(); } }

  28. Contoh Penggunaan List • Struktur ArrayList mirip dengan Array biasa. Kelebihannya, ukurannya lebih dinamis, bisa bertambah dan berkurang • Hasil program di atas adalah: • nol satu dua tiga empat

  29. Interface Map

  30. Interface Map • Map digunakan untuk memetakan kunci dan data. Sebagai contoh, kita memiliki suatu katalog buku, kode buku adalah kunci dan object buku adalah datanya • Kunci di Map tidak dapat diduplikasi • Tiap kunci hanya menunjuk ke satu object data • Penggunaan Map biasanya dipadukan dengan class HashMap

  31. Interface Map • Method yang ada di Map: • V put(K key, V value); • untuk menambahkan pasangan kunci dan object • V get(Object key); • untuk mendapatkan object berdasarkan kunci tertentu • V remove(Object key); • untuk menghapus object berdasarkan kunci tertentu • boolean containsKey(Object key); • memeriksa apakan map memiliki kunci tertentu • boolean containsValue(Object value); • memeriksa apakah map memiliki object tertentu • int size(); • mendapatkan jumlah key di map • public Set<K> keySet(); • mendapatkan keseluruhan key yang berupa Set • public Collection<V> values(); • mendapatkan keseluruhan object data yang berupa collection

  32. Implementasi Map • java.util.HashMap<K,V> • Constructors: • public HashMap<K,V>(); • public HashMap<K,V>(int initialCapacity) • public HashMap<K,V>(Collection<? extends E> c); • java.util.TreeMap<K,V> • Constructors: • public TreeMap<K,V>(); • public LinkedList<K,V>(Collection<? extends E> c); • Kedua-duanya memiliki tambahan method yang specifik untuk masing-masing class

  33. ContohPenggunaan Map import java.util.HashMap; import java.util.Iterator; import java.util.Map; publicclass ContohMap { /** * @param args */ publicstaticvoid main(String[] args) { Map<String, Makanan> map = new HashMap<String, ContohMap.Makanan>(); ContohMap ob = new ContohMap(); ob.loadData(map); ob.tampilkanList(map); } void loadData(Map map) { map.put("Soto", new Makanan("Soto", 5000)); map.put("Rujak", new Makanan("Rujak", 5500)); map.put("Opor", new Makanan("Opor", 7000)); } void tampilkanList(Map map) { Iterator<String> itr = map.keySet().iterator(); while (itr.hasNext()) { String nama = itr.next(); System.out.println(nama + " " + ((Makanan) map.get(nama)).getHarga()); } }

  34. ContohPenggunaan Map publicclass Makanan { String namaMakanan; intharga; Makanan(String nama, int harga) { namaMakanan = nama; this.harga = harga; } publicint getHarga() { returnharga; } } }

  35. Contoh Penggunaan Map • Map sesuai untuk membuat struktur key dan value (kunci dan data) • kunci ===> data • Pada contoh di atas, yang jadi kunci adalah nama makanan, datanya adalah object makanan

More Related