TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Queue adalah serangkaian data yang penambahan datanya disimpan di bagian belakang rangkaian, dan pengambilan/datanya diambil di bagian depan rangkaian. Konsep ini sesuai dengan prinsip FIFO (First In First Out) — data pertama masuk adalah data pertama keluar.
1. Konsep FIFO
2. Contoh Kasus Queue
ADT queue mendukung operasi untuk mengelola antrean data. Operasi dibagi menjadi dua kategori.
1. Update/Mutator Methods
2. Accessor Methods
3. Contoh Operasi Queue (Tabel)
Operasi berikut menunjukkan cara kerja queue step by step:
enqueue(5) → queue: (5)enqueue(3) → queue: (5, 3)size() → return 2, queue: (5, 3)dequeue() → return 5, queue: (3)isEmpty() → return false, queue: (3)dequeue() → return 3, queue: ()isEmpty() → return true, queue: ()dequeue() → return null, queue: ()enqueue(7) → queue: (7)enqueue(9) → queue: (7, 9)first() → return 7, queue: (7, 9)enqueue(4) → queue: (7, 9, 4)Area antrean berupa array yang menyediakan tempat untuk data. Setiap data tersimpan pada satu indeks.
1. Alur Operasi pada Area Antrean
Queue dapat diimplementasikan dalam array. Data disimpan secara berurutan sesuai indeks array.
1. Konsep Dasar
f (front) sampai indeks akhir2. Ilustrasi
[A, B, C, D, E, F, G, ..., M, , , ] (indeks 0-15)[ , , , , , F, G, ..., M, , , ] (dimulai dari indeks f)Array circularly memanfaatkan indeks kosong di awal array setelah data di-dequeue.
1. Konsep Circularly
2. Kelebihan Circularly
3. Ilustrasi
Deque menggunakan konsep FIFO dan LIFO, sehingga mampu menjadi interface queue maupun stack. Penyisipan dan penghapusan bisa dilakukan di depan maupun belakang.
1. Update/Mutator Methods
2. Accessor Methods
3. Contoh Operasi Deque
addLast(5) → deque: (5)addFirst(3) → deque: (3, 5)addFirst(7) → deque: (7, 3, 5)first() → return 7, deque: (7, 3, 5)removeLast() → return 5, deque: (7, 3)size() → return 2, deque: (7, 3)removeLast() → return 3, deque: (7)removeFirst() → return 7, deque: ()addFirst(6) → deque: (6)last() → return 6, deque: (6)addFirst(8) → deque: (8, 6)isEmpty() → return false, deque: (8, 6)last() → return 6, deque: (8, 6)Tabel mapping antara operasi ADT Queue dan perintah Java.
1. Mapping ADT Queue ke Java
Queue diimplementasikan menggunakan List dan ArrayList.
1. Program Queue Java
class LatihQueue {
public static void main(String[] args) {
List Q = new ArrayList();
Q.add("D");
Q.add("O");
Q.add("N");
Q.add("E");
Q.remove(0);
System.out.println("List Java");
for (Object queueList : Q) {
System.out.println(queueList + "->");
}
}
}
2. Penjelasan Per Baris
List Q = new ArrayList() — membuat tempat antrean menggunakan ArrayListQ.add(...) — menambah data D, O, N, E berturut-turutQ.remove(0) — menghapus data di indeks ke-0 (huruf D)for(Object queueList : Q) — perulangan foreach untuk menampilkan dataSystem.out.println(queueList + "->") — menampilkan data dengan pemisah ->3. Proses Queue dalam Java
add("D") → data Dadd("O") → data Oadd("N") → data Nadd("E") → data Eremove(0): data D dihapusO->N->E->4. Output
List Java
O->
N->
E->