Modul Pemrograman Berorientasi Objek
11Fakultas:
Java Collection
Univesitas Bhayangkara Jakarta Raya
Ilmu Komputer
Prodi:
Informatika
[Link].i
[Link] 1
d
Learning Outcome
• Mahasiswa Mengenal Kelas Java Collection
• Mahasiswa Memahami Kelas Java Collection
[Link].i
[Link] 2
d
Outline Perkuliahan
✓ Java Collection
✓ Antarmuka (Set, List, Queue, Deque) dan kelas (
ArrayList , Vector, LinkedList , PriorityQueue ,
HashSet, LinkedHashSet, TreeSet).
[Link] 3
Java Collection
✓ Koleksi di Java adalah kerangka kerja yang menyediakan
arsitektur untuk menyimpan dan memanipulasi sekelompok
objek.
✓ Koleksi Java dapat melakukan semua operasi yang Anda
lakukan pada data seperti pencarian, pengurutan, penyisipan,
manipulasi, dan penghapusan.
✓ Koleksi Java berarti satu unit objek. Kerangka Java Collection
menyediakan banyak antarmuka (Set, List, Queue, Deque)
dan kelas ( ArrayList , Vector, LinkedList , PriorityQueue ,
HashSet, LinkedHashSet, TreeSet).
[Link].i
[Link] 4
d
Apa itu Koleksi di Java
Koleksi mewakili satu unit objek, yaitu grup.
Apa itu kerangka kerja di Java
✓ Ini menyediakan arsitektur siap pakai.
✓ Ini mewakili sekumpulan kelas dan antarmuka.
✓ Ini opsional.
Apa itu kerangka Koleksi
Kerangka Koleksi mewakili arsitektur terpadu untuk menyimpan dan
memanipulasi sekelompok objek. Memiliki:
✓ Antarmuka dan implementasinya, yaitu kelas
✓ Algoritma
[Link] 5
Hierarki kerangka Koleksi. Paket [Link] berisi semua kelas dan
antarmuka untuk kerangka Koleksi.
[Link] 6
Ada banyak metode yang dideklarasikan di antarmuka Koleksi:
No. Method Description
1 public boolean add(E e) Ini digunakan untuk menyisipkan elemen dalam koleksi ini.
2 public boolean addAll(Collection<? extends E> c) Ini digunakan untuk memasukkan elemen koleksi tertentu ke dalam koleksi
pemanggilan.
3 public boolean remove(Object element) Ini digunakan untuk menghapus elemen dari koleksi.
4 public boolean removeAll(Collection<?> c) Ini digunakan untuk menghapus semua elemen koleksi tertentu dari koleksi
pemanggilan.
5 default boolean removeIf(Predicate<? super E> filter) Digunakan untuk menghapus semua elemen koleksi yang memenuhi predikat
yang ditentukan.
6 public boolean retainAll(Collection<?> c) Ini digunakan untuk menghapus semua elemen koleksi yang dipanggil kecuali
koleksi yang ditentukan.
7 public int size() Ini mengembalikan jumlah total elemen dalam koleksi.
8 public void clear() Ini menghapus jumlah total elemen dari koleksi.
9 public boolean contains(Object element) Ini digunakan untuk mencari suatu elemen.
10 public boolean containsAll(Collection<?> c) Digunakan untuk mencari koleksi tertentu dalam koleksi.
11 public Iterator iterator() Ini mengembalikan iterator.
12 public Object[] toArray() Itu mengubah koleksi menjadi array.
13 public <T> T[] toArray(T[] a) Itu mengubah koleksi menjadi array. Di sini, tipe runtime dari larik yang
dikembalikan adalah larik yang ditentukan.
14 public boolean isEmpty() Ia memeriksa apakah koleksinya kosong.
15 default Stream<E> parallelStream() Ia mengembalikan Aliran yang mungkin paralel dengan koleksi sebagai
sumbernya.
16 default Stream<E> stream() Ia mengembalikan Aliran berurutan dengan koleksi sebagai sumbernya.
17 default Spliterator<E> spliterator() Ini menghasilkan Spliterator atas elemen tertentu dalam koleksi.
18 public boolean equals(Object element)
[Link] Ini cocok dengan dua koleksi. 7
19 public int hashCode() Ini mengembalikan nomor kode hash dari koleksi.
Iterator interface
Antarmuka Iterator menyediakan fasilitas untuk mengulangi elemen dalam arah maju saja.
Metode Iterator interface
Hanya ada tiga metode di Iterator interface
.
No. Method Description
1 public boolean hasNext() Ia mengembalikan nilai benar jika iterator memiliki lebih
banyak elemen jika tidak, ia mengembalikan salah.
2 public Object next() Ini mengembalikan elemen dan memindahkan penunjuk
kursor ke elemen berikutnya.
3 public void remove() Ini menghapus elemen terakhir yang dikembalikan oleh
iterator. Ini lebih sedikit digunakan.
[Link] 8
Collection Interface
Antarmuka Koleksi adalah antarmuka yang diimplementasikan oleh semua kelas dalam
kerangka koleksi. Ini mendeklarasikan metode yang dimiliki setiap koleksi. Dengan kata lain,
kita dapat mengatakan bahwa antarmuka Koleksi membangun fondasi yang menjadi sandaran
kerangka koleksi.
Beberapa metode antarmuka Koleksi adalah Boolean add ( Object obj), Boolean addAll (
Collection c), void clear(), dll. yang diimplementasikan oleh semua subkelas antarmuka
Koleksi.
List Interface
Antarmuka daftar adalah antarmuka anak dari antarmuka Koleksi. Ini menghambat struktur
data tipe daftar di mana kita dapat menyimpan kumpulan objek yang diurutkan. Itu dapat
memiliki nilai duplikat.
Antarmuka daftar diimplementasikan oleh kelas ArrayList, LinkedList, Vector, dan Stack.
[Link] 9
Untuk membuat instance antarmuka Daftar, kita harus menggunakan :
List <data-type> list1= new ArrayList();
List <data-type> list2 = new LinkedList();
List <data-type> list3 = new Vector();
List <data-type> list4 = new Stack();
Ada berbagai metode di antarmuka Daftar yang dapat digunakan untuk menyisipkan,
menghapus, dan mengakses elemen dari daftar.
Kelas-kelas yang mengimplementasikan antarmuka Daftar diberikan di bawah ini.
[Link] 10
ArrayList
Kelas ArrayList mengimplementasikan antarmuka Daftar. Ia menggunakan array dinamis
untuk menyimpan elemen duplikat dari tipe data yang berbeda. Kelas ArrayList
mempertahankan urutan penyisipan dan tidak disinkronkan. Elemen yang disimpan di kelas
ArrayList dapat diakses secara acak. Perhatikan contoh berikut.
import [Link].*;
class TestJavaCollection1{
public static void main(String args[]){
ArrayList<String> list=new ArrayList<String>();//Creating arr
aylist
[Link]("Ravi");//Adding object in arraylist
[Link]("Vijay");
[Link]("Ravi");
[Link]("Ajay");
//Traversing list through Iterator
Iterator itr=[Link]();
while([Link]()){
[Link]([Link]());
}
}
}
[Link] 11
LinkedList
LinkedList mengimplementasikan antarmuka Koleksi. Ia menggunakan daftar tertaut ganda
secara internal untuk menyimpan elemen. Itu dapat menyimpan elemen duplikat. Itu
mempertahankan urutan penyisipan dan tidak disinkronkan. Di LinkedList, manipulasinya
cepat karena tidak diperlukan perpindahan.
Perhatikan contoh berikut.
import [Link].*;
public class TestJavaCollection2{
public static void main(String args[]){
LinkedList<String> al=new LinkedList<String>();
[Link]("Ravi");
[Link]("Vijay");
[Link]("Ravi");
[Link]("Ajay");
Iterator<String> itr=[Link]();
while([Link]()){
[Link]([Link]());
}
}
}
[Link] 12
Vector
Vektor menggunakan array dinamis untuk menyimpan elemen data. Ini mirip dengan
ArrayList. Namun, Ini disinkronkan dan berisi banyak metode yang bukan merupakan
bagian dari kerangka Koleksi.
Perhatikan contoh berikut.
import [Link].*;
public class TestJavaCollection3{
public static void main(String args[]){
Vector<String> v=new Vector<String>();
[Link]("Ayush");
[Link]("Amit");
[Link]("Ashish");
[Link]("Garima");
Iterator<String> itr=[Link]();
while([Link]()){
[Link]([Link]());
}
}
[Link]
} 13
Stack
Tumpukan adalah subkelas dari Vector. Ini mengimplementasikan struktur data masuk
terakhir keluar pertama, yaitu Stack. Tumpukan berisi semua metode kelas Vector dan
juga menyediakan metodenya seperti boolean push(), boolean peek(), boolean
push(object o), yang mendefinisikan propertinya.
Perhatikan contoh berikut.
import [Link].*;
public class TestJavaCollection4{
public static void main(String args[]){
Stack<String> stack = new Stack<String>();
[Link]("Ayush");
[Link]("Garvit");
[Link]("Amit");
[Link]("Ashish");
[Link]("Garima");
[Link]();
Iterator<String> itr=[Link]();
while([Link]()){
[Link]([Link]());
}
}
[Link] } 14
Queue Interface
Antarmuka antrian mempertahankan urutan masuk pertama keluar pertama. Ini dapat
didefinisikan sebagai daftar terurut yang digunakan untuk menampung elemen-elemen yang
akan diproses. Ada berbagai kelas seperti PriorityQueue, Deque, dan ArrayDeque yang
mengimplementasikan antarmuka Queue.
Antarmuka antrian dapat dipakai sebagai:
Queue<String> q1 = new PriorityQueue();
Queue<String> q2 = new ArrayDeque();
Ada berbagai kelas yang mengimplementasikan antarmuka Queue, beberapa di antaranya
diberikan di bawah ini.
[Link] 15
PriorityQueue
Kelas PriorityQueue mengimplementasikan antarmuka Antrian. Ini menampung elemen
atau objek yang akan diproses berdasarkan prioritasnya. PriorityQueue tidak
mengizinkan nilai null disimpan dalam antrean.
import [Link].*;
Perhatikan contoh berikut. public class TestJavaCollection5{
public static void main(String args[]){
PriorityQueue<String> queue=new PriorityQueue<String>();
[Link]("Amit Sharma");
[Link]("Vijay Raj");
[Link]("JaiShankar");
[Link]("Raj");
[Link]("head:"+[Link]());
[Link]("head:"+[Link]());
[Link]("iterating the queue elements:");
Iterator itr=[Link]();
while([Link]()){
[Link]([Link]());
}
[Link]();
[Link]();
[Link]("after removing two elements:");
Iterator<String> itr2=[Link]();
while([Link]()){
[Link]([Link]());
}
}
[Link] } 16
Deque Interface
Antarmuka Deque memperluas antarmuka Antrian. Di Deque, kita dapat menghapus dan
menambahkan elemen dari kedua sisi. Deque adalah singkatan dari antrian berujung ganda
yang memungkinkan kita melakukan operasi di kedua ujungnya.
Deque dapat dipakai sebagai:
Deque d = new ArrayDeque();
ArrayDeque
Kelas ArrayDeque mengimplementasikan antarmuka Deque. Ini memudahkan kita untuk
menggunakan Deque. Berbeda dengan antrian, kita dapat menambah atau menghapus
elemen dari kedua ujungnya.
[Link] 17
ArrayDeque lebih cepat dari ArrayList dan Stack dan tidak memiliki batasan
kapasitas.
Perhatikan contoh berikut.
import [Link].*;
public class TestJavaCollection6{
public static void main(String[] args) {
//Creating Deque and adding elements
Deque<String> deque = new ArrayDeque<String>();
[Link]("Gautam");
[Link]("Karan");
[Link]("Ajay");
//Traversing elements
for (String str : deque) {
[Link](str);
}
}
}
[Link] 18
Set Interface
Set Antarmuka di Java hadir dalam paket [Link]. Ini memperluas antarmuka
Koleksi. Ini mewakili kumpulan elemen tidak berurutan yang tidak memungkinkan kita
menyimpan item duplikat. Kita dapat menyimpan paling banyak satu nilai null di Set.
Set diimplementasikan oleh HashSet, LinkedHashSet, dan TreeSet.
Set dapat dipakai sebagai:
Set<data-type> s1 = new HashSet<data-type>();
Set<data-type> s2 = new LinkedHashSet<data-type>();
Set<data-type> s3 = new TreeSet<data-type>();
[Link] 19
HashSet
Kelas HashSet mengimplementasikan Set Interface. Ini mewakili koleksi yang
menggunakan tabel hash untuk penyimpanan. Hashing digunakan untuk
menyimpan elemen di HashSet. Ini berisi item unik.
Perhatikan contoh berikut.
import [Link].*;
public class TestJavaCollection7{
public static void main(String args[]){
//Creating HashSet and adding elements
HashSet<String> set=new HashSet<String>();
[Link]("Ravi");
[Link]("Vijay");
[Link]("Ravi");
[Link]("Ajay");
//Traversing elements
Iterator<String> itr=[Link]();
while([Link]()){
[Link]([Link]());
}
}
}
[Link] 20
Tugas :
Buat contoh Set yang diimplementasikan oleh LinkedHashSet, dan TreeSet
[Link] 21
Question
[Link] 22
THANK YOU
Universitas Bhayangkara Jakarta Raya
[Link] 23