Pemrograman Berorientasi Obyek Lanjut (IT251) Java Collections Ramos Somya, S.Kom., M.Cs.
Array Array pada Java adalah objek yang dapat digunakan untuk menyimpan data-data dengan tipe yang sama. Tipe dari data yang disimpan pada array dapat berupa tipe data primitive atau objek dari kelas tertentu.
... Array dapat diibaratkan sebagai sebuah gedung yang memiliki beberapa ruangan dengan bentuk dan ukuran yang sama.
Deklarasi Array dalam Java Cara mendeklarasikan array: tipe_data nama_array[]; atau tipe_data[] nama_array; Contoh: int nim[]; int[] nim;
... Cara mengalokasikan ukuran array: Contoh: int[] daftarSiswa = new int[100]; char[] huruf = new char[92]; int[][] matriks = new int[3][3];
... Cara memberikan nilai pada array: Contoh: int[] nim = new int[3];
Contoh Array
...
Array Multidimensi Indeks array yang alamatnya terdiri dari x dan y atau x, y, dan z, atau lebih dari 3.
Contoh Array Multidimensi
...
Java Collections Collection digunakan untuk menyimpan, mengambil, dan memanipulasi data. Salah satu collection paling sederhana adalah Array. Namun dalam Collection Framework, Java menawarkan berbagai bentuk lain dari Collection.
... Karena Collection adalah interface, maka harus dibuat class yang mengimplementasikannya. Dalam Java API, sudah tersedia beberapa class yang sangat berguna untuk memanage object-object dalam Collection, sesuai sifat dan kebutuhannya.
Kelebihan Collections Mengurangi effort dalam membuat program, karena sudah tersedia struktur data dan algoritma tanpa harus menulis sendiri. Meningkatkan performa, karena setiap implementasi dapat berfungsi maksimal sesuai kasus yang ada. Dapat dikembangkan dan fleksibel terhadap tipe object yang ada dalam Collection.
... Semua class yang berhunbungan dengan Collection tergabung dalam Java Collection Framework dan terdapat dalam package java.util punya 2 interface utama : Collection dan Map.
... Pada dasarnya ada 3 Interface yang digunakan, yaitu Set, List, dan Map. Kemudian ada 5 implementasi dasar yang digunakan pula, yaitu Hash Table, Resizable Array, Balanced Tree, Linked List, dan Hash Table + Linked List.
...
Collection Berdasarkan teknik pengelompokkannya terbagi menjadi 3 : Set, List, dan Queue.
Set, List dan Queue Set Merupakan cara pengelompokkan mengikuti model himpunan setiap anggotanya harus unik. List Merupakan pengelompokkan berdasarkan urutan seperti array. Isi list tidak harus unik. Contoh class List : Vector, Stack, linkedList & ArrayList. Queue Merupakan pengelompokkan berdasarkan aturan FIFO. Contoh class : PriorityQueue & LinkedList.
Map Untuk menambahkan isi dari Map memerlukan sepasang objek, satu sebagai key satu lagi nilai yang akan disimpan. Map juga dikenal sebagai Dictionary : sifatnya mirip dengan kamus. Contoh class Map : HashTable, TreeMap, HashMap, LinkedHashmap.
...
Vector Vector merupakan suatu bentuk array dinamis, sehingga kita tidak perlu mengubah ukuran array saat melakukan penambahan pada array yang sudah penuh. Perbedaan vector dengan array adalah pengaksesan elemen pada vector tidak bisa dilakukan secara langsung, tetapi harus menggunakan setter dan getter. Untuk menggunakan vector kita harus melakukan import java.util.Vector;
... Mendeklarasikan vector caranya: Vector<TipeData> namaVector = new Vector<TipeData>(); Contoh: Vector<Integer> vec = new Vector<Integer>();
Method dalam Vector Contoh: misal nama vector-nya ‘vec’ vec.size() adalah fungsi untuk mengembalikan jumlah elemen di dalam vektor. vec.addElement(obj) akan menambahkan Object obj di akhir vektor. vec.removeElement(obj) menghapus obj dari dalam vektor, kalau ada. Hanya objek pertama yang ditemui akan dihapus.
... vec.removeElementAt(N) menghapus elemen ke-N. N harus berada pada rentang 0 hingga vec.size() - 1. vec.setSize(N) akan mengubah ukuran vektor menjadi N. Jika di dalam vektor terdapat elemen yang jumlahnya lebih banyak dari N, maka elemen lainnya akan dihapus. vec.setElementAt(Object, index) akan mengubah elemen pada index yang diset dengan nilai baru
Contoh Vector
ArrayList ArrayList digunakan untuk membuat array yang ukurannya dinamis. Berbeda dengan array biasa yang ukurannya harus ditentukan di awal deklarasi array, dengan ArrayList, ukurannya akan fleksibel tergantung banyaknya elemen yang dimasukkan.
Contoh ArrayList
... Kelebihan lain collection framework ini adalah kemampuannya untuk membuat perulangan dirinya sendiri, sebab Collection framework mengimplementasikan interface Iterable. Sehingga untuk membuat perulangan “for” sebenarnya cukup dengan:
Stack Stack merupakan sebuah collection sederhana yang menerapkan aturan LIFO (Last in First out). Artinya, elemen yang masuk terakhir akan dikeluarkan terlebih dahulu. Meskipun terdapat method add, get, dan remove karena Stack tetap inherit ke interface collection, namun method yang umum dipakai dalam Stack adalah push() untuk memasukkan elemen, pop() untuk mengeluarkan elemen, empy() untuk mengecek apakah stack kosong, dan peek() untuk melihat elemen teratas. Semua dilakukan sesuai urutan LIFO.
Contoh Stack
LinkedList Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung dan dinamis. Linked List sering disebut juga Senarai Berantai.
Contoh LinkedList dengan Java public class SenaraiBerkaitTunggal { private static LinkedList<Integer> l; public static void main(String[] args) { System.out.println("Program dengan LINKEDLIST default Java."); l = new LinkedList<Integer>(); Integer j = null; int i; System.out.println("starting..."); for (i = 0; i < 5; i++) { j = new Integer((int) (Math.random() * 100)); l.addFirst(j); System.out.println("add : " + j); }
... for (; i < 10; i++) { j = new Integer((int) (Math.random() * 100)); l.addLast(j); System.out.println("addLast : " + j); } for (i = 0; i < l.size(); i++) { System.out.println("get " + i + " : " + l.get(i)); for (i = 0; i < 5; i++) { System.out.println("remove : " + ((Integer) l.remove())); while (!l.isEmpty()) { System.out.println("removeLast : " + ((Integer) l.removeLast()));
Method pada Class LinkedList addFirst(E), menambahkan elemen di depan list addLast(E), menambahkan elemen di akhir list get(int), mendapatkan list berdasarkan indeks remove(), menghapus head/elemen pertama pada list removeLast(), menghapus elemen terakhir pada list
Map Implementasi ketiga adalah dari Interface Map. Map berfungsi sebagai collection yang memetakan setiap value dengan key tertentu. Jika mencoba menambahkan elemen dengan key yang sama, maka elemen sebelumnya pada key tersebut akan ditindih sehingga hilang. Deklarasi HashMaps juga harus diikuti nama class yang akan menjadi key dan value-nya.
Contoh Map