Think Different Materi ASD 2014 pertemuan_15

Queue

Operasi pada Queue
1.
2.
3.
4.
5.
6.
7.

Deklarasi
Inisialisasi
Cek kosong
Cek penuh
Penambahan
Pengambilan
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

Deklarasi Queue dengan
Linked-list
1. Pembuatan class queue
contoh :

2. Pembuatan class Node
3. Pembuatan variabel head, tail, front dan rear bertipe
Node. Ketiga variabel ini dideklarasikan pada class
queue
Node head,tail,front, rear;

Contoh Class Node


Program Deklarasi Queue
(QueueLinkedList.java)

(2) Inisialisasi
• Pada Linked List:
Proses inisialisasi dilakukan dengan
memberikan nilai awal pada variabel
head, tail front dan rear dengan nilai
null.
head = tail = front=rear=
null;

Program Inisialisasi Queue (Linked
List)

(3) Cek Kosong
• Operasi yang digunakan untuk mengecek
kondisi queue dalam keadaan kosong.
• Pada linked list : dapat menggunakan
pengecekan front atau rear jika nilainya null

berarti queue kosong.
• Operasi ini harus dapat mengembalikan nilai
true jika queue kosong dan false jika
sebaliknya.

Program “isEmpty” Queue (Linked
List)
boolean isEmpty(){
return (rear==null);
}

(6) 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 POP...........
(lanjutan)
• 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)

Program removeFirst

(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...........
(lanjutan)
• Langkah-langkah :
1. Penambahan element baru pada bagian
belakang queue.
2. Perubahan posisi rear.

Program Enqueue (Linked List)

Program addLast

(7) Operasi peek
• Peek pada queue adalah 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)

PRIORITY QUEUE
(Antrian Berprioritas)
Antrian Berprioritas adalah himpunan elemen
yang setiap elemennya diberikan tingkat
prioritas tertentu, dan urutan pemrosesan
elemennya didasarkan atas prioritas tersebut
sbb:
1. Elemen yang prioritasnya lebih tinggi
diproses lebih dulu.
2. Dua elemen dengan prioritas yang sama
diproses berdasarkan urutan

kedatangannya, yaitu yang datang lebih
dulu diproses lebih dulu (FIFO).

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)danPRN (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
INFO


PRN

1

AAA

2

2

BBB

4

3

CCC

4


4

DDD

1

5

EEE

2

6

FFF

5

7


GGG

4

8

HHH

2

Urutan kedatangan
STAR
T

4

9
10
11
12


PRIORITY QUEUE with One-Way List
START
DDD

1

HHH

AAA

2

2

BBB

EEE

2

4

CCC

GGG

4

4

FFF

5

X