Senin, 04 Mei 2015

Antrian (Queue)

Pengertian Queue

Queue adalah sebuah struktur data yang memperbolehkan penyisipan (Insertion) di belakang (Rear) dan penghapusan elemen di depan (Front). Queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue.



Walaupun berbeda implementasi, struktur data queue setidaknya harus memiliki operasi-operasi sebagai berikut :
  1. Enqueue = Memasukan data kedalam antrian
  2. Dequeue = Mengeluarkan data terdepan dari antrian
  3. Clear = Menghapus Seluruh antrian
  4. IsEmpty = Memeriksa apakah antrian kosong
  5. IsFull = Memeriksa apakah antrian penuh

Operasi-Operasi Queue dengan Linear Array

• IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
• IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.
• EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.
• DeQueue
Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya.
• Clear
Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue.
 
Operasi penting dalam queue atau antrian adalah :
  1. Add yang berfungsi menambahkan sebuah elemen ke dalam antrian
  2. Delete yang berfungsi menghapus atau mengeluarkan elemen dari antrian
Sebagai contoh kita mempunyai antrian Q = [Q1, Q2, ….., Qn]
Maka Q1 adalah first, dan Qn adalah last.
Jika dilakukan prosedur add Qm maka Qm akan berada di belakang Qn
Dan jika dlakukan prosedur delete, maka Q1 akan keluar dari antrian