Materi 3 : Collection

                                                                                                           PEMBAHASAN2


 COLLECTION

 Kompetensi Dasar :

3.12. Menerapkan collection sebagai media penyimpanan data

4.12. Membuat kode program collection sebagai penyimpan data

 

Materi Pembelajaran :

Collection

A.    Pengertian dan Fungsi

Collection adalah sebuah framework yang dibuat untuk menyimpan dan memanipulasi sebuah objek. Obyek yang ada dalam Collection disebut Element. Collection menyimpan elemen yang bertipe Object, Collection biasanya digunakan pada sebuah data seperti mencari, meng-urutkan, meng-input dan menghapus..

Gambar berikut adalah hirarki pada java collection :


B.     Framework Java Collection

Kerangka kerja (Framework) menyediakan dalam bentuk :

1.      Interface (contoh : Set, List, Queue, Deque dll).

2.      class (ArrayList, Vector, LingkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet dll).

Gambar berikut adalah Framework java collection :


Collection sendiri merupakan wadah yang menampung value pada kontainer tunggal. Framework java collection menyediakan dengan cara extensible (secara kamus internasional : dapat dibuat panjang atau luas) dan dapat disatukan untuk menangani collections. Pada Groovy, collection dibuat lebih mudah untuk digunakan dan difokuskan menjadi 3 jenis, yaitu :

1.      List : menyediakan sebuah container untuk beberapa nilai.
2.      Maps : digunakan sebagai metode untuk mengindeks seperangkat nilai-nilai.
3.      Set
: sekumpulan obyek yang tidak berdasarkan urutan (unordered) dan menolak duplikat.
 

1.      List

List merupakan variable mengandung beberapa item dan dideklarasikan menggunakan kurung siku. contoh : [. . .]

Elemen list tersimpan berdasarkan urutan masukan (ordered). Dalam methodenya List menerima duplikat.

Cara penyimpanannya seperti array, oleh sebab itu memiliki posisi awal dan posisi akhir, menyisipkan objek pada posisi tertentu, mengakses dan menghapus isi list, dimana semua proses ini selalu didasarkan pada urutannya. Class- class yang mengimplementasikan interface List adalah Vector, Stack, Linked List dan Array List.

 

Terdapat interface Queue yang cara penyimpanan seperti List, interface ini menyimpan objek menggunakan metode FIFO (First In First Out) yaitu objek yang masuk pertama keluar pertama. Class-class yang mengimplementasikan interface Queue adalah PriorityQueue dan  LinkedList.  Data  yang  tersimpan  pada  objek PriorityQueue akan  diurutkan,  data  tersebut  harus  mengimplementasikan  objek Comparable atau Comparator. List juga menyediakan method untuk merandom isi dari collection

Contoh List :
Ø  LinkedList : elemen LinkedList masuk dari awal dan dihapus diakhir.
Ø  Vector :
Ø  arrayList : perintahnya mirip vektor dan bersifat unsyncronized.

Class ArrayList dan LinkedList mengimplementasikan interface List. ArrayList adalah sebuah implementasi array dimana elemen-elemennya dapat diakses secara langsung menggunakan get and set methods. Sementara LinkedList menggunakan double linked list. Memberikan performance yang lebih baik untuk method add dan remove dibandingkan ArrayList. Memberikan performance yang lebih jelek untuk method get and set dibandingkan ArrayList.

 

Pengembangan dari List Interface Collection
Ø  Pengaksesan elemen melalui perintah seperti array add (int, Object), get(int), remove(int), set(int, Object)
Ø  Pencarian elemen melalui perintah seperti indexOf(Object), lastIndexOf(Object)
Ø  Menggunakan Iterator tertentu seperti ListIterator
Ø  Dapat mengambil subList dengan perintah seperti subList(int formIndex, int toIndex)

 

Sebagian besar algoritma(method) pada class Collections diaplikasikan ke List. Sehingga dengan algoritma ini memudahkan untuk memanipulasi data pada List, diantaranya :

   Ø  sort(List) : mengurutkan List dengan algoritma merge sort
Ø  shuffle(List) : Permutasi secara random pada List
Ø  reverse(List)  : membalik urutan elemen pada List
Ø  fill(List, Object) : Mengganti setiap elemen pada List dengan value yang ditentukan
Ø  copy(List dest, List src) : Mengkopikan source List ke destination List.
Ø  binarySearch(List, Object) : Mencari sebuah element pada List dengan algoritma binary Search   

 

Perintah lainnya dari pengembangan list:

ž  Add(Object) : menambahkan elemen diakhir list.

ž  Remove(Object) : menghapus di awal list.

ž  List1.equals(list2) : dapat diartikan sebagai sama dengan memperhatikan urutan elemen

 

2.      Maps

Map adalah object yang memetakan key dengan value. Disebut juga dengan associative array atau dictionary.

Perbedaaan mendasar map dengan collection yang lain, untuk menyimpan objek pada Map, perlu sepasang objek, yaitu key yang bersifat unik dan nilai yang disimpan. Untuk mengakses nilai tersebut maka kita perlu mengetahui key dari nilai tersebut. Map juga dikenal sebagai dictionary/kamus. Pada saat menggunakan kamus, perlu suatu kata yang digunakan untuk pencarian. Class-class yang mengimplementasikan Map adalah Hashtable,HashMap, LinkedHashMap. Untuk mengurutkan Map menggunakan interface SortedMap, class yang mengimplementasikan interface tersebut adalah TreeMap.

Sifat dari Map Collection

ž  Menyimpan elemen dengan key unik.

ž  Satu key untuk satu elemen.

ž  Key disimpan dalam bentuk Object.

ž  Map tidak bisa menyimpan duplicate key.

ž  Map bisa menyimpan duplicate element.

ž  Has no particular order.

 

Map dapat dipandang sebagai Collection dengan 3 cara :

Ø  keySet yaitu collection yang menghasilkan Set key yang ada pada Map.

Ø  Values yaitu Collection values yang ada pada Map. Collection disini bukan Set karena multiple key dapat mempunyai nilai yang sama.

Ø  entrySet yaitu output methode berupa hasil yang disimpan pada Set. Entry-Set juga merupakan pasangan key-value yang ada pada Map.

 

Beberapa pengembangan Maps :

ž  Method untuk menambah dan menghapus

Ø  put(Object key, Object value)

Ø  remove (Object key)

ž  Method untuk mengambil object.

Ø  get (Object key)

ž  Method untuk mengambil key, value dan pasangan (key, value)

Ø  keySet() // returns a Set

Ø  values() // returns a Collection,

Ø  entrySet() // returns a set

 

 

3.      Set

Set mengikuti model himpunan, dimana objek/anggota yang tersimpan dalam Set harus unik. Urutan maupun letak dari anggota tidaklah penting, hanya keberadaan anggota saja yang penting. Class-class yang mengimplementasikan interface Set adalah HashSet. Interface SortedSet merupakan subInterface dari interface Set. Untuk mengurutkan Set, kita dapat menggunakan class yang mengimplementasikan interface SortedSet yaitu clas TreeSet.

Bentuk dan Kriteria SET

ž  Elemen pada Set selalu unik

ž  Set menolak duplikat

ž  Elemen yang tersimpan tidak berdasarkan urutan(unorder) dan tidak di sorting (unsorted)

ž  Berhubungan dengan definisi matematika mengenai himpunan.

ž  Interface Set merupakan subinterface dari interface Collection

 

Operasi Besar (Bulk operations) pada Set: HashSet merupakan operasi pada Himpunan

ž  s1.containsAll(s2)   

Akan bernilai true jika semua isian S2 adalah sebagian atau semua isian S1. dan akan bernilai False jika hanya sebagian isian S2 merupakan isian S1 atau semua isian S2 tidak isian S1.

ž  s1 = s1 U s2

s1.addAll(s2)

hasil dari s1 adalah gabungan (union) dari s1 dan s2

ž  s1 = s1 ∩ s2

s1.retainAll(s2)

hasil dari s1 adalah irisan(intersection) dari s1 dan s2.

ž  s1 = s1 – s2

s1.removeAll(s2)

hasil dari s1 adalah selisih dari s1 dengan s2, Selisih (s1 - s2) adalah set yang berisi semua elemen yang ada pada s1 tetapi tidak ada pada s2.

Class HashSet and TreeSet

Persamaan :

ž  HashSet and TreeSet mengimplementasikan interface Set.

 

Perbedaan :

Hash Set :

ž  Diimplementasikan menggunakan hash table

ž  Elemen output tidak terurut

ž  Method yang digunakan  à add, remove dan contains kompleksitas waktu O(c).

Tree Set

ž  Diimplementasikan menggunakan struktur pohon.

ž  Elemen output dalam keadaan terurut.

ž  Methode yang digunakan à add, remove, contains kompleksitas waktu logaritma O (log (n) dimana n adalah jumlah elemen pada set.

 

Tugas Mandiri :

1.      Bagaimanakah Output dari program berikut ini?

import java.util.*;

public class Collection {

    public static void main(String[] args) {

        Set set = new HashSet();

        set.add("Ananda");

        set.add("Sekalian");

        set.add("Siswa");

        System.out.println(set);

        Set sortSet = new TreeSet (set);

        System.out.println(sortSet);

    }

}

2.      Jelaskan perbedaan Class HashSet dan TreeSet


Selamat belajar dan manfaatkan waktu sebaik mungkin. 

Untuk materi 1 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut : http://smk1sintoga.blogspot.com/2020/07/materi-1-string-dan-pelbagai-propertinya.html

Untuk materi 2 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut :

Tidak ada komentar:

Posting Komentar