Anda di halaman 1dari 31

ALGORITMA

DAN
STRUKTUR DATA

QUEUE

Tri Afirianto, S.T., M.T. | tri.afirianto@ub.ac.id


FILKOM | UB
Queue (Antrian)
• Contoh antrian:
• Antrian printer
• Antrian tiket bioskop
Pengertian
• Queue (antrian)
• struktur data yang mana proses pengambilan dan penambahan element
dilakukan pada ujung yang berbeda
• Queue mengikuti konsep FIFO
• FIFO (First In First Out)
• elemen yang pertama masuk akan menjadi elemen yang pertama kali keluar
Enqueue dan Dequeue
1. Enqueue
proses penambahan element pada queue
2. Dequeue
proses pengambilan element pada queue

Penambahan dilakukan pada bagian belakang


Sedangkan pengambilan dilakukan pada bagian depan (element yang pertama
masuk)

enqueue Queue dequeue


Pointer Front dan Rear
• Front
• pointer bantu yang digunakan untuk menunjuk element yang paling depan
• Rear
• pointer bantu yang digunakan untuk menunjuk element yang paling belakang

Enqueue Queue Dequeue


Rear Front
Tujuan
• Queue berguna untuk menyimpan pekerjaan yang tertunda
Gambaran Proses Queue (Antrian)
Operasi pada Queue
1. Deklarasi
2. Inisialisasi
3. Cek kosong
4. Cek penuh (pada Array)
5. Penambahan
6. Pengambilan
7. Pengaksesan
(1) Deklarasi
• Proses yang harus dilakukan pertama kali adalah
deklarasi/menyiapkan tempat
• Langkah yang harus dilakukan adalah
• Deklarasi class
• Deklarasi struktur data (menggunakan array atau linked list)
• Deklarasi pointer front dan rear (untuk array) atau objek LinkedList (untuk
LinkedList)
Deklarasi Queue dengan Linked List
1. Pembuatan class Queue
contoh :

2. Pembuatan variabel front dan rear untuk array , sedangkan untuk LinkedList
menggunakan objek LinkedList.
Program Deklarasi Queue (QueueLinkedList.java)
(2) Inisialisasi
• Pada ARRAY:
Proses inisialisasi dilakukan dengan memberikan nilai awal pada
variabel front dan rear.

• Pada LINKED LIST:


Proses inisialisasi dilakukan dengan memberikan nilai null pada objek
queue.
Program Inisialisasi Queue (Linked List)
(3) Cek Kosong
• Operasi yang digunakan untuk mengecek kondisi queue dalam
keadaan kosong
• Caranya:
• melihat nilai rear (array) atau nilai objek queue (linkedlist)
• jika nilainya sama seperti ketika inisialisasi berarti queue dalam kondisi
kosong (queue = null)
• Operasi ini harus dapat mengembalikan nilai true jika queue kosong
dan false jika sebaliknya
Program “isEmpty” Queue (Linked List)
(4) Cek Penuh
• Operasi yang hanya dapat diterapkan pada queue yang
menggunakan array
(5) Operasi DEQUEUE
• Dequeue adalah proses pengambilan data pada queue
• Ketika dequeue terjadi, element pada queue akan berkurang, yaitu
element yang pertama kali ditambahkan
• Pada linked list:
• front akan menunjuk pada node yang ditunjuk oleh head setelah operasi
remove
(5) Operasi DEQUEUE (lanj)
• Langkah-langkah:
1. Pengecekan queue dalam kondisi kosong dengan memanggil method
isEmpty()
2. Data dari element yang diambil akan menjadi return value (nilai yang
dikembalikan)
3. Perubahan nilai pada variabel front dan rear
Program dequeue (Linked List)
(6) Operasi ENQUEUE
• Enqueue adalah proses penambahan element pada queue
• Ketika enqueue terjadi, element pada queue akan bertambah 1
• Posisi pointer rear akan bergeser menunjuk pada element baru yang
ditambahkan.
• Pada LINKED LIST: rear akan menunjuk ke node baru yang ditunjuk oleh tail
(6) Operasi ENQUEUE (lanj)
• Langkah-langkah:
1. Penambahan element baru pada bagian belakang queue
2. Pergeseran posisi rear
Program enqueue (Linked List)
(7) Operasi PEEK
• Peek
• proses pengaksesan element yang ditunjuk oleh front (yaitu element yang
pertama kali ditambahkan)
• Operasi ini berbeda dengan enqueue karena tidak disertai dengan
penghapusan data yang ada hanya pengaksesan (pengembalian data
saja)
Program peek (Linked List)
Contoh Penerapan QUEUE
• mailbox dalam komunikasi antar proses
• Simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas
udara) dalam memprediksi performansi
• Waiting Line pada Sistem Operasi
ALGORITMA
DAN
STRUKTUR DATA

PRIORITY QUEUE

Tri Afirianto, S.T., M.T. | tri.afirianto@ub.ac.id


FILKOM | UB
PRIORITY QUEUE dengan ONE-WAY LIST
• Representasi antrian berprioritas antara lain dilakukan dengan one-
way list, sbb:
a. Setiap simpul memiliki 2 field, yaitu: INF (informasi) dan PRN (nomor
prioritas)
b. Simpul X mendahului simpul Y dalam list:
• jika prioritas X lebih tinggi daripada prioritas Y
• jika prioritas keduanya sama, tetapi X lebih dulu masuk ke dalam antrian
PRIORITY QUEUE with ONE-WAY LIST
Urutan kedatangan

START 4
PRIORITY QUEUE with ONE-WAY LIST

START

DDD │1 │ AAA │2 │ EEE │2 │

HHH │2 │ BBB │4 │ CCC │4 │

GGG │4 │ FFF │ 5 │X
PERTANYAAN???
TERIMAKASIH

Anda mungkin juga menyukai