Anda di halaman 1dari 5

DIKTATKULIAH

ALGORITMAdanSTRUKTURDATAII QUEUE

V3/20092010 1

Pertemuan10

Waktu :135menit
TujuanPembelajaran :Mahasiswamampumenjelaskanteknikpemrograman
menggunakanQueue.
SubstansiMateri :QueuedenganDoubleLinkedList
TabulasiKegiatanPerkuliahan

No
Tahap
Kegiatan
KegiatanPengajar
Kegiatan
Mahasiswa
Media&Alat Waktu
1 Pendahuluan 1. Membukapertemuan
2. Mengulangmateripertemuan
sebelumnya
Menyimak
Bertanya
PapanTulis 20Menit
2 Penyajian
Materi
1. QueuedenganDoubleLinkedList
2. LatihanSoal
Menyimak
Bertanya
Menjawab
Pertanyaan
PapanTulis 80Menit
3 Penutup 1. Menyimpulkanmateripertemuan
2. Memberikantugaskecil
3. Menutuppertemuan
Menyimak Papantulis 35Menit

ImplementasiQUEUEdenganDOUBLELINKEDLIST
Selain dengan menggunakan array, queue juga dapat dibuat dengan menggunakan linked
list.Metodalinkedlistyangdigunakanadalahdoublelinkedlist.Deklarasitipe,konstanta,
danvariableyangakandigunakanadalah:
Type
Point=^simpul;
Simpul=record
Isi:TipeData;
MATERIKULIAH
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII QUEUE

V3/20092010 2

Next:Point;
End;

Queue=record
Head:Point;
Tail:Point;
End;
Var
Q:Queue;
N:0..Max_Queue; {JumlahAntrian}

OperasiOperasiPembuatanQueuedenganDoubleLinkedList
1. Create
Procedure create berguna untuk menciptakan QUEUE yang baru dan kosong yaitu
dengancaramengarahkanpointerHEADdanTAILkepadaNIL.
ProcedureCreate;
Begin
Q.Head:=NIL;
Q.Tail:=Q.Head;
N:=0;
End;

2. Empty
FunctionEmptybergunauntukmengecekapakahQUEUEmasihkosongatausudah
berisidata.Halinidilakukandenganmengecekapakahheadmasihmenunjukpada
nilatautidak,jikayamakakosong.
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII QUEUE

V3/20092010 3

FunctionEmpty:Boolean;
Begin
IfQ.Head=NilThen
Empty:=True
Else
Empty:=False;
End;

3. Full
FunctionFullbergunauntukmengecekapakahQUEUEsudahpenuhataumasihbias
menampung data dengan cara mengecek apakah N (JumlahQueue) sudah sama
denganMax_Queueataubelum,jikayamakapenuh.
FunctionFull:Boolean;
Begin
IfN=Max_QueueThen
Full:=True
Else
Full:=False;
End;

4. EnQueue
Procedure EnQueue berguna untuk memasukkan 1 elemen ke dalam QUEUE. Head
danTailmulamulamenunjukkeNIL.
ProcedureEnQueue(Elemen:TipeData);
VarNow:Point;
Begin
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII QUEUE

V3/20092010 4

IfNotFullThen
Begin
New(Now);
Now^.Isi:=elemen;
Now^.Next:=NIL;
IfEmptyThen
Begin
Q.Head:=Now;
Q.Tail:=Now;
N:=1;
Endelse
Begin
Q.Tail^.next:=Now;
Q.Tail:=Now;
End;
End;
End;

5. DeQueue
Procedure DeQueue berguna untuk mengambil 1 elemen dari QUEUE. Jal ini
dilakukandengancaramenghapussatusimpulyangterletakpalingdepan(head).
ProcedureDeQueue;
VarNow:Point;
Begin
IfNotEmptyThen
Begin
DIKTATKULIAH
ALGORITMAdanSTRUKTURDATAII QUEUE

V3/20092010 5

Now:=Q.Head;
Q.Head:=Q.Head^.Next;
Dispose(now);
Dec(N);
End;
End;

Anda mungkin juga menyukai