Modul Collection Kelas XII RPL

Modul Collection
ARRAY
Array adalah sebuah variabel yang bisa menyimpan banyak data dalam satu variabel. Array menggunakan indeks untuk memudahkan akses terhadap data yang disimpannya.

Deklarasi Array :







Penjelasan :
Kita menggunakan kurung siku  [ ] untuk membuat array;
Kurung siku bisa diletakkan setelah tipe data atau nama array;
Angka 5 dalam kurung artinya batas atau ukuran array-nya.

Contoh deklasi array dan pengambilan nilai array :







Contoh pengambilan nilai array dengan perulangan :


Array Multidimensi
Array multidimensi sering kali digambarkan/dianalogikan sebagai sebuah matriks. Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua terdiri dari banyak baris dan banyak kolom yang bertipe sama.
Contoh struktur matriks adalah:

Deklarasi Array Multidimensi
tipe_data nama_var_array[batas_baris][batas_kolom];
Contoh:
int matriks[3][4];
int matriks2[3][4] = { {5,20,1,11}, {4,7,67,-9}, {9,0,45,3} };
Contoh program:




















COLLECTION
Collection adalah suatu objek yang bisa digunakan untuk menyimpan sekumpulan objek. Objek yang berada didalam collection disebut element. Collection merupakan suatu penyimpanan yang memungkinkan untuk menyimpan, mengambil serta memanipulasi ( menghapus, mengubah, mencari dan mengurutkan ) objek-objek dengan mudah.salah satu collection yang paling sederhana adalah array. Namun dalam collection framework, java menawarkan berbagai bentuk lain collection, karena collection adalah interface, maka untuk mengaksesnya harus dibuat class yang mengimplementasikannya.
Kelebihan Collection antara lain :
Mengurangi upaya dalam membuat program, karena sudah tersedia struktur data dan algoritma tanpa menulis sendiri.
Meningkatkan performa, karena setiapimplementasi berfungsi maksimal sesuai kasus yang ada.
Dapat dikembangkan dan fleksibel terhadap tipe objek yang ada dalam collection
Collection terbagi menjadi 3 kelompok yaitu Set, List dan Map.

Tujuan dari collection framework adalah untuk mempermudah proses pengolahan data, meliputi : menambah data, menghapus data, mengubah data, mencari data, megurutkan data.

Collection framework antara lain :
Set interface adalah collection untuk menyimpan data unik (tidak boleh sama/ duplikat)
List interface adalah collection untuk menyimpan data secara urut (sequensial)
Queue interface adalah collection untuk menyimpan data dengan menggunakan First in First Out
Map interface adalah collection menyimpan data menggunakan key, Map adalah interface yang berdiri sendiri bukan turunan dari interface collection, tapi map termasuk dari collection framework.
interface collection adalah collection ang menerima paremeter berupa tipe data (objek) yang akan disimpan menggunakan < > seperti  berikut Collection <E>.
fungsi dasar interface collection adalah :
Add : menambah data
Remove : menghapus data
Contains : mencari data pada collection
Size : mendapatkan jumlah data yang tersimpan
Clear : mengosongkan collection
toArray : mengubah collection menjadi Array
List 
List atau disebut sequence merupakan collection terurut yang memperbolehkan adanya element yang sama. List dapat menampung berbagai macam tipe data antara lain string, integer, long bahkan object. List menyimpan data  secara sequensial sepert array, sehingga pengaksesannya dapat menggunakan system indexing. List berguna untuk mengelola data yang perlu memperhatikan posisi data, missal :
Presensi siswa
Kursi bioskop
‘daftar lagu populer
Class- class yang mengimplementasikan interface list yaitu :
ArrayList digunakan untuk membuat array yang ukurannya dinamis( dapat berubah)
LinkedList merupakan bentuk struktur data yang berisi kumpulan daya yang tesusun secara urut terhubung, saling menyambung dan dinamis. Method dalam LinkedList adalah addFirst, addLast, get(int), remove(), removeLast().
Vector (araylit yang tersinkronissi) merupakan suatu bentuk array dinamis, sehngga perlu mengubah ukuran array saat melakukan penambahan pada array yang sudah penuh. Pengaksesan element pada vector tidak bisa dilakukan secara langsung namun harus dengan menggunakan method getter dan setter (harus mengimport java.until.Vector) 
Stack merupakan sebuah collection sederhana yang menerapkan aturan LIFO ( Last In First Out) yang berarti element yang terakhir akan dikeluarkan terlebih dahulu.
Untuk operasi ambil  data, ArrayList/ Vektor  memiliki performa paling baik.
sntax
List<String> list = new ArrayList<String>();
// menambah data
list.add(“LALA”);
list.add(“EKO”);

//menmpilkan set
System.out.println(list);

set 
set interface salah satu collection yang memiliki aturan bahwa data/ object didalamnya tidak boleh ada yang sama. Contohnya : 
nomer telepon 
nomer ktp
alamat email
Jadi implementasi pada interface Set ada batasan bahwa unsur-unsur tidak boleh ada yang duplikasi
set dapat diimplementasikan  menggunakan :
Hashset  : penyimpanan data tidak urut / tidak memperhatikan posisi data
Linked Hastset : penyimpanan data berdasarkan urutan masuknya
Treeset : penyimpanan data berdasarkan nlai terkecil ke terbesar
Untuk operasi tambah dan hapus data, hashset dan linked hashset memiliki kompleksitas yang sama yaitu  O(1)(kecepatan data), namun dari segi perorma hashset lebih baik. Treeset memiliki kompleksitas O(log(n)), untuk TreeSet memiliki kompleksitas O(log(n))
Sintak :
Set<String> set = new HashSet<String>();
// menambah data
Set.add(“LALA”);
//menmpilkan set
System.out.println(set);
Queue adalah Collection yang berguna uuntuk mengelola data yang menggunakn prinsip FIFO atau antrian(data yan ditmbahkan paling dahuluu akan diambil paling awal), misal:
Antrian bank
Antrian umah sakit
Queue dapat iimplementasikan menggunakan ;
LinkedList mengguunakan antrian system FIFO standart
PriorityQueue  menggunakan  antrian yang urutannya berdasarkan kriteria  tertentu(mengguunakan interface Comparable)
Sintax:
 Queue<String> queue= new LinkedList<String>();
// menambah data
queue.add(“LALA”);
queue.add(“JONO”);

//menmpilkan set
System.out.println(Queue);

Map adalah collection  yang berguna untik   mengelola data yang memiliki key/ indek, dimana indek tidak harus anka,  bias beupa text / object.
Missal  : 
Penduduk (kuuci/ key  : nomr KTP)
Mahasiswa (kuuci/ key  : nomr NIM)
Queue dapat iimplementasikan menggunakan ;
HashMap : data disimpan tidak  memperhatikan  posisi data
LinkedHashMap :  data disimpan berdasar urutan masuk
TreeMap : data disimpan berdasrkan  nilai terkecil ke terbesar
Untuk operai tambah data  dan hapus data,   HashMap  dan  LinkedHashMap memiliki  kompleksitas yang sama yaitu  O(1), namun disisi peforma HahMap lebbih baik. Sementara TreeMap  memiliki kmpleksitas O(log(n)).
Sintax:
Map< String, String > map= new HashMap< String, string>();
// menambah data
map.put(“ La ”,“LALA”);
map.puut(“ Jn”,“JONO”);

//menmpilkan set
System.out.println(map);

Mengambil data pada Collection
Mengambil data pada Collection diarankan untuk menggunkan interator. Alterrntif  lain  adalah denan mengubah Collectin ( selain Map)  menjai array denan m ethod toArray( ), namun  beberapa turuan  dari  collection juga  memiliki method  khusus untuk  mengambil data.
Collection  yang dapat menambil data : List , Queue dan Map

Latihan 1 : 
Percobaan 1 : Memahami penggunaan class-class yang mengimplementasikan
interface Set yaitu class HashSet dan class TreeSet  
import java.util.*;
public class SetExample {
    public static void main(String[] args) {
        Set set=new HashSet();
        set.add("Bernadine");
        set.add("Elizabeth");
        set.add("Gene");
        set.add("Elizabeth");
        set.add("Clara"); 
        System.out.print("Elemen pada HashSet : "); 
        System.out.println(set);
        Set sortSet=new TreeSet(set);
        System.out.print("Elemen pada TreeSet : ");
        System.out.println(sortSet);  
Percobaan 2 : Memahami penggunaan class-class yang mengimplementasikan interface List yaitu ArrayList dan LinkedList.  
import java.util.*;

public class ListExample {
    public static void main(String[] args) {
        List list=new ArrayList();
        list.add("Bernadine");
        list.add("Elizabeth");
        list.add("Gene");
        list.add("Elizabeth");
        list.add("Clara");
        System.out.println(list);
       System.out.println("2 : "+list.get(2));
       System.out.println("0 : "+list.get(0));
LinkedList queue=new LinkedList();
        queue.addFirst("Bernadine");
        queue.addFirst("Elizabeth");
        queue.addFirst("Gene");
        queue.addFirst("Elizabeth");
        queue.addFirst("Clara");

        System.out.println(queue);
        queue.removeLast();
queue.removeLast();            System.out.println(queue);
   }
}

Komentar