ArrayList and Vector Matakuliah: T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan: 7 Tahun: 2008 Versi: 1/0
Bina Nusantara Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: –Menerapkan penggunaan Dynamic List menggunakan ArrayList dan Vector.
Bina Nusantara Outline Materi Introduction Operasi List Implementasi List ArrayList ArrayList Method Contoh Kode ArrayList Vector Vector Mehtod Contoh Kode Vector ArrayList VS Vector
Bina Nusantara Introduction Data Structure adalah sebuah kumpulan data yang telah disusun dalam beberapa mode. Struktur tidak hanya menyimpan data tetapi juga mendukung operasi-operasi untuk pengaksesan dan manipulasi data. Dalam OOP, Data Structure = Collection. Dimana sebuah objek yang menyimpan objek lain, disebut sebagai data atau elemen. List merupakan salah satu dari 3 tipe Java Collection Framework (Set, List dan Map)
Bina Nusantara Operasi List Operasi yang paling khas dari List : Mengambil sebuah element dari sebuah list Memasukan sebuah element baru ke dalam sebuah list Menghapus sebuah element dari sebuah list Mencari banyaknya element yang ada dalam sebuah list Mencari element apakah yang ada dalam sebuah list Mengetahui apakah list itu kosong atau tidak Method – methodnya : get(index) add (index, element) remove(element) size() containts(element) isEmpty() clear() indexOf(element) set(index, element)
Bina Nusantara Implementasi List Ada 2 cara untuk implementasi List : 1.Array –Dibuat secara dinamis –Jika kapasitas array melampaui maka buat array yang lebih besar dan menyalin seluruh isi elementnya ke array yang baru 2.Linked Structure –Terdiri dari node – node –Setiap node diciptakan secara dinamis untuk setiap elementnya –Semua node terhubung antar yang satunya.
Bina Nusantara ArrayList Array merupakan data struktur yang tetap ukurannya, sekali diciptakan maka ukurannya tidak dapat diganti lagi. Turunan dari AbstractList dan Implementasi dari kelas List, RandomAccess, Cloneable, dan Serializable. ArrayList diciptakan untuk mengatasi masalah yang dihadapi oleh Array dalam menentukan ukurannya karena sifatnya ArrayList adalah dinamis Deklarasi : ArrayList al = new ArrayList();
Bina Nusantara ArrayList Method Berikut fungsi-fungsi yang sering digunakan dalam kelas Array List : –add(element) menambahkan element ke dalam list –clear() menghapus semua element dalam list –clone() mengembalikan objek yang dicopy dalam list tersebut –containts(element) mencari element yang ada dalam list –get(index) mengambil element pada index tertentu dalam list –isEmpty() mengecek apakah list tersebut kosong atau tidak –remove(index) menghapus element yang ditunjuk dalam list –size() jumlah element dalam list –set(index, element) mengisi sebuah element dalam list sesuai dengan posisi yang ditunjuk. Hampir semua rata-rata fungsi dalam ArrayList sama dengan fungsi dalam kelas List, karena ArrayList banyak mengimplementasi dari kelas List (interface).
Bina Nusantara Contoh Kode ArrayList
Bina Nusantara Contoh Kode ArrayList ( lanjutan.. ) Outputnya :
Bina Nusantara Vector Turanan dan implement yang sama dengan ArrayList Sama-sama bersifat dinamis dalam ukurannya (growable). Setiap vector mencoba untuk mengoptimalkan pengelolaan penyimpanan dengan memelihara kapasitasnya. Termasuk salah satu bagian dari Java Framework Collection Deklarasi : Vector v = new Vector();
Bina Nusantara Vector Method Berikut fungsi-fungsi yang sering digunakan dalam kelas Vector : –addElement(element) menambahkan element ke urutan terakhir dari vector –capacity() Mengembalikan kapasistas vector –clone() mengembalikan objek yang dicopy dalam vector tersebut –containts(element) mencari element yang ada dalam vector –copyInto(element[]) menyalin element ke spesifik array –elementAt(index) mengambil element dari index yang ditunjuk –insertElementAt(element, index) menambahkan sebuah element ke indek yang ditunjuk. –isEmpty() mengecek apakah vector tersebut kosong atau tidak –remove(index) menghapus element yang ditunjuk dalam vector –size() jumlah element dalam vector –set(index, element) mengisi sebuah element dalam vector sesuai dengan posisi yang ditunjuk. Hampir semua rata-rata fungsi dalam Vector sama dengan fungsi dalam kelas List, karena Vector banyak mengimplementasi dari kelas List (interface). Begitu juga indentik sama dengan ArrayList.
Bina Nusantara Contoh Kode Vector
Bina Nusantara Contoh Kode Vector ( lanjutan..) Outputnya :
Bina Nusantara ArrayList VS Vector Setiap metode dalam Vector diberi keyword “synchronized”, sehingga ketika dieksekusi dalam sebuah Thread, maka tak akan terjadi kemacetan Thread. Pada ArrayList setiap metode tidak diberi keyword “synchronized”, sehingga ketika dieksekusi dalam Thread, hal ini dapat mengakibatkan unsafe Thread, alias dapat terjadi tubrukan Thread, ketika Thread mencoba untuk memanggil metode ArrayList. Waktu yang digunakan oleh ArrayList lebih singkat jika dibandingkan dengan Vector. Jika kita ingin membuat array dinamis yang dijalankan menggunakan Thread, maka gunakanlah Vector, sedangkan jika memang proses yang kita butuhkan tidak menggunakan Thread, maka gunakanlah ArrayList agar proses pengolahan array dinamis lebih cepat.
Bina Nusantara Referensi Introduction to Java Programming. 7ed. Liang Chapter 22, hal 752 Introduction to Java Programming. 7ed. Liang Chapter 24, hal 796 ArrayList Vector Vector VS ArrayList