Queue
Operasi pada Queue 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 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 : Pengecekan queue dalam kondisi kosong dengan memanggil method isEmpty(). Data dari element yang diambil akan menjadi return value (nilai yang dikembalikan) 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 : Penambahan element baru pada bagian belakang queue. 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: Elemen yang prioritasnya lebih tinggi diproses lebih dulu. 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: Setiap simpul memiliki 2 field, yaitu: INF (informasi)danPRN (nomor prioritas) 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 INFO PRN 1 AAA 2 BBB 4 3 CCC DDD 5 EEE 6 FFF 7 GGG 8 HHH 9 10 11 12 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
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.