Monday 16 July 2012

Queue pada Struktur Data


Wow. Rasanya sudah lama sekali blog ini tidak saya update. Dikarenakan kesibukan tugas-tugas kuliah yang sangat menumpuk. Hingga blog ini terbengkalai. (uihhh, bahasanya). Kali ini saya akan membagikan materi kuliah struktur data. Pada postingan saya sebelumnya juga pernah saya bahas mengenai materi struktur data, yaitu tentang linked list. Kali ini adalah kelanjutan dari materi sebelumnya, yaitu QUEUE(antrian).  Tentu kita sudah tidak asing lagi dengan istilah ini. Karena setiap hari kita akan menemuai kasus-kasus antrian. Saat isi bensin, pergi ke dokter, nonton bioskop, dan masih banyak lagi. Secara umum, antrian yang akan kita bahas sekarang mirip dengan antrian yang sering kita jumpai setiap hari. 

 
Pada struktur data, dikenal nama Queue, yaitu struktur data yang berbentuk antrian, dimana Queue ini menggunakan metode FIFO(First In First Out). Artinya, data yang pertama dimasukkan, adalah data yang pertama dikeluarkan. Pada konsep Queue, penghapusan data hanya dapat dilakukan dari satu sisi, yaitu sisi depan (head). Dan penambahan data dilakukan dari sisi belakang(tail).
            Queue memiliki beberapa operator penugasan, yaitu:
·         Enque              : Operasi penghapusan data
·         Dequeue          : Operasi penambahan data
·         IsFull               : Operasi pengecekan data penuh
·         IsEmpty          : Operasi pengecekan data kosong.
Jenis-Jenis Queue :
  1. Antrian/queue dengan Linked List
Queue dalam benuk linked list ini maksudnya, kita mengimplementasikan atau menggambarkan queue tersbut dalam bentuk liked list. Seperti yang telah kita ketahui sebelumnya, bahwa salah satu  kelebihan penggunaan linked list pada struktur data adalah, pada jumlah elemen yang dapat diisikan. Jika kita menggunakan linked list, maka jumlah elemen/data yng kita masukan tidak terbatas.
  1. Antrian/queue dengan Linier Array
Untuk lebih mengetahui tantang queue dengan Linier Array, kita lihat contoh operasi queue sebagai berikut:

Indeks awal     = -1
Indeks Akhir   = -1
Karena array masih kosong maka indeks awal dan akhir sama-sama -1.
*Penambahan elemen A,B, C, dan D

indeks awal     = 0
Indeks akhir    = 3
*Penghapusan elemen A dan B



Indeks awal     = 2
Indeks akhir    = 3
*Penambahan data E,F,G,H, dan I
Indeks awal     = 2
indeks akhir     = 0
Jika kita perhatikan, proses penambahan data akan terus berlanjut dari kiri ke kanan, dari data yang sudah ada, kemudian di isi belakangnya satu persatu. Seperti itulah penggunaan Queue dengan Linier Array.
  1. Antrian/queue dengan Circular Array
  2. Priority Queue
Untuk Queue dengan Circular Array dan Priority Array, mungkin akan saya lanjutkan pada postingan berikutnya.

0 commen:

Post a Comment