Queue
Queue (Antrian) Contoh antrian : Antrian printer Antrian tiket bioskop
Pengertian Queue (antrian) adalah struktur data dimana 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 proses pengambilan element pada queue. 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). Queue enqueue dequeue
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. Queue Enqueue Rear Dequeue Front
Queue berguna untuk menyimpan pekerjaan yang tertunda.
Gambaran Proses Queue (Antrian)
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 variabel size untuk menyimpan besar array. Deklarasi variabel jumlah untuk mengetahui banyak item yang disimpan pada queue.
Deklarasi Queue dengan Array Pembuatan class contoh : 2. Pembuatan variabel front dan rear: int front, rear; Pembuatan variabel size : int array_size; (mendeklarasikan variabel bernama array_size dengan tipe integer) 4. Pembuatan variabel Array : int antrian[];(deklarasi variabel array bernama antrian) Pembuatan variabel jumlah: int jumlah_item;
Program Deklarasi Queue (Array)
(2) Inisialisasi Merupakan proses pemberian nilai awal. Pada Array : Pembentukan obyek array beserta ukurannya. antrian= new int[10]; (pembentukan obyek array yang memiliki 10 element, dan alamat obyek akan disimpan pada variabel bernama antrian) Pemberian nilai awal pada variabel front=0 dan belakang=-1. front = 0; rear=-1;
Program Inisialisasi Queue (Array)
(3) Cek Kosong Operasi yang digunakan untuk mengecek kondisi queue dalam keadaan kosong. Pada array : menggunakan pengecekan pada variabel jumlah_item. Jika nilainya = 0 berarti queue dalam kondisi kosong. Operasi ini harus dapat mengembalikan nilai true jika queu kosong dan false jika sebaliknya.
Program “isEmpty” Queue (Array)
(4) Cek Penuh Operasi yang hanya dapat diterapkan pada queue yang menggunakan array. Operasi ini digunakan untuk mengecek kondisi queue dalam keadaan penuh. Caranya : melihat nilai pada variabel jumlah item. Jika nilainya = size-1 (dimana size adalah ukuran array) maka dapat diindikasikan queue dalam kondisi penuh. Operasi ini harus dapat mengembalikan nilai true jika queue penuh dan false jika sebaliknya.
Program “isFull” (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 Array : akan terjadi pergeseran data dari belakang ke depan. Rear berkurang 1.
(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 (Array)
(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 array : rear akan di-increment.
(6) Operasi Enqueue...........(lanjutan) Langkah-langkah : Penambahan element baru pada bagian belakang queue. Perubahan posisi rear. Khusus untuk array, terlebih dahulu harus dicek kondisi queue penuh dengan memanggil method isFull(). Jika nilai yang dikembalikan true maka bisa ditampilkan pesan kesalahan atau dilakukan resizing array.
Program Enqueue (Array)
Program Rezising()
(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 (Array)
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