Queue dengan linked list baru

Download Report

Transcript Queue dengan linked list baru

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
Tugas
• Buatlah simulasi antrian teller di bank .
Apabila bank mempunyai 2 teller yang
bertugas melayani nasabah. Setiap ada
nasabah baru masuk akan mengambil
nomer antrian yang disesuaikan antrian
paling pendek antara teller 1 atau teller 2.
apabila jumlah antrian sama maka akan
mengantri di teller 1.Kalau misalnya
nasabah mempunyai priority card maka
nasabah tersebut harus didahulukan.