pertemuan 10 c2a0queuec2a0denganc2a0doublec2a0linkedc2a0listc2a0

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

Pertemuan 10 
 
Waktu  

 

 

 

 

 




 menit 

Tujuan Pembelajaran 

: Mahasiswa mampu menjelaskan teknik pemrograman  

Substansi Materi 

: Queue dengan Double Linked List 

 

 

  menggunakan Queue. 

Tabulasi Kegiatan Perkuliahan 
 


No 

Tahap 
Kegiatan 

 

Pendahuluan 

 

Penyajian 
Materi 

 

Penutup 

Kegiatan Pengajar 

. Membuka pertemuan 
. Mengulang materi pertemuan 
sebelumnya 
. Queue dengan Double Linked List 
. Latihan Soal 
. Menyimpulkan materi pertemuan 
. Memberikan tugas kecil 
. Menutup pertemuan 

Kegiatan 
Mahasiswa 
Menyimak 
Bertanya 

Menyimak 
Bertanya 
Menjawab 
Pertanyaan 
Menyimak 


Media & Alat 

Waktu 

Papan Tulis 

 Menit

Papan Tulis 

8  Menit

Papan tulis 

 Menit

M A T E R I    K U L I A H 

 


Implementasi QUEUE dengan DOUBLE LINKED LIST 
Selain  dengan  menggunakan  array,  queue  juga  dapat  dibuat  dengan  menggunakan  linked 

list. Metoda linked list yang digunakan adalah double linked list. Deklarasi tipe, konstanta, 
dan variable yang akan digunakan adalah: 
 

 

 
 
 

Type 

 

 

 


Point = ^simpul; 

Simpul = record 

    

)si : TipeData; 

V3/2009‐2010  1 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

 


 

 
 
 

 

 

 

 

Queue = record 

 

 


 

 

 

 

Next : Point; 
End; 

(ead : Point; 

Tail : Point; 

 

 

 


 

 

Q : Queue; 

 

 
 

Var 
 

End; 

N :   . . Max_Queue;   {Jumlah Antrian} 

Operasi­Operasi Pembuatan Queue dengan Double Linked List 

. Create 

Procedure  create  berguna  untuk  menciptakan  QUEUE  yang  baru  dan  kosong  yaitu 
dengan cara mengarahkan pointer (EAD dan TA)L kepada N)L. 
 

Procedure Create; 

 

 

 

Begin 

 

 


 

End; 

 
 

 

Q.(ead := N)L; 

Q.Tail := Q.(ead; 
N :=  ; 

. Empty 

Function Empty berguna untuk mengecek apakah QUEUE masih kosong atau sudah 
berisi data. (al ini dilakukan dengan mengecek apakah head masih menunjuk pada 
nil atau tidak, jika ya maka kosong. 

 

V3/2009‐2010  2 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

 

Function Empty : Boolean; 

 

 

 

 

 
 

 

 

 

Begin 

)f Q.(ead = Nil Then 

 

 

Empty := True 

 

 

Empty := False; 

End; 

Else 

. Full 

Function Full berguna untuk mengecek apakah QUEUE sudah penuh atau masih bias 

menampung  data  dengan  cara  mengecek  apakah  N  JumlahQueue   sudah  sama 

dengan Max_Queue atau belum, jika ya maka penuh. 
 

Function Full : Boolean; 

 

 

 
 

Begin 
 

 

 

 

End; 

 

 

 

)f N = Max_Queue Then 

 

Full := True 

 

Full := False; 

Else 

. EnQueue 

Procedure EnQueue berguna untuk memasukkan   elemen ke dalam QUEUE. (ead 
dan Tail mula‐mula menunjuk ke N)L. 
 
 
 

 

Procedure EnQueue  Elemen : TipeData ; 

Var Now : Point; 
Begin 

V3/2009‐2010  3 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

 

 

)f Not Full Then 

 

 

 

New Now ; 

 

 

 

Now^.Next := N)L; 

 
 

 

 

 
 

 

 

Begin 
 

 

 

Now^.)si := elemen; 
)f Empty Then 
Begin 

 

 

 

 

Q.(ead := Now; 

 

 

 

 

N :=  ; 

 

 

 

 

Q.Tail := Now; 

 

 

 

End else 

 

 

 

 

 

 

 

End; 

 

 

 

 

 

 

 

 

End; 

 

 

End; 

Begin 

 

Q.Tail^.next := Now; 
Q.Tail := Now; 

. DeQueue 

Procedure  DeQueue  berguna  untuk  mengambil    elemen  dari  QUEUE.  Jal  ini 

dilakukan dengan cara menghapus satu simpul yang terletak paling depan  head . 
 

Procedure DeQueue; 

 

Begin 

 
 
 
 

Var Now : Point; 
 
 

)f Not Empty Then 
Begin 

V3/2009‐2010  4 

DIKTAT KULIAH
ALGORITMA dan STRUKTUR DATA II

QUEUE 

 

 

 

Now := Q.(ead; 

 

 

Dispose now ; 

 

 

 
 

 

 

 

 

End; 

Q.(ead := Q.(ead^.Next; 

Dec  N ; 
End; 

 

V3/2009‐2010  5