download

ArrayList and Vector
Matakuliah
Pertemuan
Tahun
Versi
: T0984 / Algoritma dan Metode Object Oriented Programming II
:7
: 2008
: 1/0
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 :






•
Method – methodnya :









Bina Nusantara
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
get(index)
add (index, element)
remove(element)
size()
containts(element)
isEmpty()
clear()
indexOf(element)
set(index, element)
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. 2009.
Chapter 22, hal 752
• Introduction to Java Programming. 7ed. Liang. 2009.
Chapter 24, hal 796
• ArrayList
 http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
 http://www.java-tips.org/java-se-tips/java.lang/use-of-arraylist-class.html
• Vector
 http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html
• Vector VS ArrayList
 http://eecchhoo.wordpress.com/2007/10/20/javavectorvsarraylist/
Bina Nusantara