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}
OperasiOperasi 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
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}
OperasiOperasi 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