pertemuan 9 queuec2a0

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

Pertemuan 9 
 
Waktu  

 

 

 

 

 




 menit 

Tujuan Pembelajaran 

: Mahasiswa mampu menjelaskan teknik pemrograman  

Substansi Materi 

: Queue 

 

 

  menggunakan Queue. 

Tabulasi Kegiatan Perkuliahan 
 


No 

Tahap 
Kegiatan 

 

Pendahuluan 

 

Penyajian 
Materi 

 

Penutup 

Kegiatan 

Mahasiswa 

Kegiatan Pengajar 
. Membuka pertemuan 
. Mengulang materi pertemuan 
sebelumnya 
. Queue 
. Queue dengan array 
. Queue dengan circular array 

. Menyimpulkan materi pertemuan 
. Memberikan tugas kecil 
. Menutup pertemuan 

 

Menyimak 
Bertanya 

Menyimak 

Bertanya 
Menjawab 
Pertanyaan 
Menyimak 

Media & Alat 

Waktu 

Papan Tulis 

 Menit

Papan Tulis 

 Menit

Papan tulis 

 Menit


M A T E R I    K U L I A H 
QUEUE / ANTRIAN 

Secara  harfiah  queue  dapat  diartikan  sebagai  antrian.  Queue  merupakan  kumpulan  data 
dengan  penambahan  data  hanya  melalui  satu  sisi,  yaitu  belakang  tail   dan  penghapusan 
data hanya melalui sisi depan  head . Berbeda dengan stack yang bersifat L)FO maka queue 
bersifat  F)FO First  )n  First  Out ,  yaitu  data  yang  pertama  masuk  akan  keluar  terlebih 

dahulu  dan  data  yang  terakhir  masuk  akan  keluar  terakhir.  Berikut  ini  adalah  gambaran 
struktur data queue.  
 

V3/2009‐2010  1 
 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 


 

 

 

Gambar  . )lustrasi Queue   

Gambar  . )lustrasi Queue   

 

Elemen  yang  pertama  kali  masuk  ke  dalam  queue  disebut  elemen  depan  front/head  of 

queue ,  sedangkan  elemen  yang  terakhir  kali  masuk  ke  queue  disebut  elemen  belakang 
rear/tail of queue . Perbedaan antara stack dan queue terdapat pada aturan penambahan 

dan  penghapusan  elemen.  Pada  stack,  operasi  penambahan  dan  penghapusan  elemen 
dilakukan di satu ujung. Elemen yang terakhir kali dimasukkan akan berada paling dekat 


dengan  ujung  atau  dianggap  paling  atas  sehingga  pada  operasi  penghapusan,  elemen 
teratas tersebut akan dihapus paling awal, sifat demikian dikenal dengan L)FO. Pada queue, 

operasi tersebut dilakukan di tempat yang berbeda. Penambahan elemen selalu dilakukan 

melalui salah satu ujung, menempati posisi di belakang elemen‐elemen yang sudah masuk 

sebelumnya  atau  menjadi  elemen  paling  belakang.  Sedangkan  penghapusan  elemen 
dilakukan  di  ujung  yang  berbeda,  yaitu  pada  posisi  elemen  yang  masuk  paling  awal  atau 

elemen terdepan. Sifat yang demikian dikenal dengan F)FO. 
 

V3/2009‐2010  2 
 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II


QUEUE 

 

Operasi‐operasi standar pada queue adalah: 
. membuat queue atau inisialisasi. 

. mengecek apakah queue penuh. 

. mengecek apakah queue kosong. 

. memasukkan elemen ke dalam queue atau )nQueue  )nsert Queue . 
 

. Menghapus elemen queue atau DeQueue  Delete Queue . 

Implementasi Queue dengan Linear Array 
Disebut juga queue dengan model fisik, yaitu bagian depan queue selalu menempati posisi 

pertama  array.  Queue  dengan  linear  array  secara  umum  dapat  dideklarasikan  sebagai 

berikut: 
 

Const 
 

MaxQueue = {jumlah}; 

 

TypeQueue = byte; 

 

Queue : Array[ ..MaxQueue] of TypeQueuel 

Type 
Var 
 
 


(ead, Tail  

: Byte; 

 
 
 
 

V3/2009‐2010  3 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

Operasi‐operasi queue dengan linear array: 

. Create 

Procedure create berguna untuk menciptakan queue yang baru dan kosong yaitu 
dengan cara memberikan nilai awal  head  dan nilai akhir  tail  dengan nol 
menunjukan bahwa queue masih kosong. 
 

Procedure Create; 

 

 

 
 

 

Begin 

End; 

. Nol 

(ead :=  ; Tail :=  ; 

. Empty 

Function empty berguna untuk mengecek apakah queue masih kosong atau sudah 

berisi data. (al ini dilakukan dengan mengecek apakah tail bernilai nol atau tidak, 
jika ya maka kosong. 
 

Function Empty : Boolean; 

 

 

 

Begin 

)f Tail =   then 

 

 

 

Empty := true 

 

 

 

Empty := False; 

 

 

 

 

End; 

Else 

 
 
 
 

V3/2009‐2010  4 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

. Full 

Function Full : Boolean; 
Begin 
 
 

 

 

End; 

)f Tail = MaxQueue then 

 

Full := true 

 

Full := False 

Else 

 

. EnQueue 

Procedure EnQueue berguna untuk memasukkan   elemen ke dalam queue. 

 

Procedure Enqueue Elemen : Byte ; 

 

 

)f Empty then 

 

 

 

 
 

 

 

 

 

 

Begin 

 

 

(ead :=  ; 

Tail :=  ; 

Queue[head] := Elemen; 

 

 

End 

 

 

)f Not Full then 

 

 

 

 

 

 

 

 

 

 

Begin 

Else 

Begin 

 

 

 

End; 

End; 

 

)nc Tail ; 

Queue[tail] := Elemen; 

V3/2009‐2010  5 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

. DeQueue 

Procedure  DeQueue  berguna  untuk  mengambil    elemen  dari  Queue,  operasi  ini 

sering  disebut  juga  SERVE.  (al  ini  dilakukan  dengan  cara  memindahkan  semua 

elemen  satu  langkah  ke  posisi  di depannya, sehingga  otomatis  elemen  yang paling 
depan akan tertimpa dengan elemen yang terletak dibelakangnya. 
 

Procedure DeQueue; 

 

Begin 

 
 
 
 
 

)f Not Empty then 
 

Begin 

 

 

 

 

 

 

End; 

 

 

Var ) : Byte; 

 

For ) := (ead to Tail‐  do 

 

End; 

Queue[)] := Queue[)+ ]; 

Dec Tail ; 

. Clear 

Procedure  clear  berguna  untuk  menghapus  semua  elemen  dalam  queue  dengan 
jalan  mengeluarkan  semua  elemen  tersebut  satu  per  satu  sampai  kosong  dengan 
memanfaatkan procedure DeQueue. 
 

Procedure Clear; 

 

 

 
 

 

 

 

Begin 

 

End; 

While Not Empty then 

 

DeQueue; 

V3/2009‐2010  6 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

Implementasi Queue dengan Circular Array 
Salah  satu  variasi  array  adalah  array  melingkar  circular  array ,  artinya  array  dapat 

diakses  mulai  dari  sembarang  indeks  indeks  awal   ke  arah  indeks  terakhir  maksimum 

array ,  lalu  memutar  ke  indeks  pertama  hingga  kembali  ke  indeks  awal.  Circular  array 
adalah array yang dibuat seakan‐akan merupakan sebuah lingkaran dengan titik awal dan 
titik  akhir  saling  bersebelahan  jika  array  tersebut  masih  kosong.  Jumlah  data  yang  dapat 
ditampung oleh array ini adalah besarnya ukuran array dikurangi  . Misalnya besar array 
adalah  , maka jumlah data yang dapat ditampung adalah  . 
 

 

Gambar  . )lustrasi Circular Array 

 

Dengan  circular  array,  meskipun  posisi  terakhir  telah  terpakai,  elemen  baru  tetap  dapat 

ditambahkan  pada  posisi  pertama  jika  posisi  pertama  dalam  keadaan  kosong.  Jika 
akhir=MAX dan awal= , nilai head dan tail mencapai maksimum, maka akan dikembalikan 
ke  posisi  awal.  Operasi‐operasi  yang  terdapat  pada  circular  array  tidak  jauh  berbeda 
dengan operasi pada linear array. 
 
 
V3/2009‐2010  7 
 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

Operasi‐operasi queue dengan circular array: 
. Create 
 

Procedure Create; 

Begin 

 

 

 

End; 

(ead :=  ;  

Tail := MaxQueue; 

 

. Empty 

Function Empty : Boolean; 
 

Begin 

 

 

 

Empty := true 

 

 

 

Empty := False; 

 
 

 

. Full 

 

 

End; 

)f  Tail Mod Max_Queue   +    = (ead then 
Else 

 

Function Full : Boolean; 
 

Var 

 

Begin 

 
 
 
 

 

 

X :   .. Max_queue; 
 

X :=  Tail Mod Max_queue + ; 

 

 

 
 

)f  x Mod Max_queue  +   = head then 
Else 

Full := True; 

V3/2009‐2010  8 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

 

 

 

 

End; 

 

Full := False; 

. EnQueue 

Procedure EnQueue  Elemen : TypeElemen ; 
Begin 
 

)f Not Full Then 

 

 

 
 
 

End; 

 

Begin 

 

Queue[Tail] := Elemen; 

 

Tail :=  Tail Mod Max_queue  +   ; 
End; 

 

. DeQueue 

Procedure Dequeue; 
Begin 
 
 

 

End; 

)f Not Empty then 

(ead :=  (ead Mod Max_queue  +  ; 

 
 

V3/2009‐2010  9