PEMBAHASAN2
COLLECTION
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
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
Tidak ada komentar:
Posting Komentar