Java Collections

Download Report

Transcript Java Collections

Pemrograman Berorientasi Obyek Lanjut (IT251)
Ramos Somya, S.Kom., M.Cs.
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.
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];
nim[0]=1;
nim[1]=2;
nim[2]=3;


Indeks array yang alamatnya terdiri dari x dan y atau
x, y, dan z, atau lebih dari 3.

Collection
digunakan
untuk
mengambil, dan memanipulasi data.
menyimpan,

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.
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.

Berdasarkan teknik pengelompokkannya terbagi
menjadi 3 : 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.
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 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>();
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


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.

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 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.

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.
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()));
}
}
}
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




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.
