strukdat 7 - Jalan Masalah Blogs

Download Report

Transcript strukdat 7 - Jalan Masalah Blogs

STRUKTUR DATA
PERTEMUAN 7
[email protected]
QUEUE / ANTRIAN
1. Konsep utama dalam Queue adalah
FIFO ( First In First Out ).
2. Struktur data ini banyak dipakai dalam
informatika misalnya untuk
merepresentasi :
 Antrian job dalam sistem operasi
 Antrian dalam dunia nyata
3. Antrian datanya seolah-olah mengantri
dari yang awal sampai yang terakhir.
4. Suatu metode untuk Input dan hapus di
dalam memori komputer.
QUEUE / ANTRIAN
5. Elemen pertama yang dikenali
(Head) dan elemen terakhirnya (Tail)
6. Aturan penyisipan dan penghapusan
elemennya didefinisikan sebagai
berikut :
• Penyisipan selalu dilakukan setelah
elemen terakhir
• Penghapusan selalu dilakukan pada
elemen pertama
7. Satu elemen dengan elemen lain
dapat diakses melalui informasi Next
QUEUE
ANTRIAN
ARRAY /(LARIK)
•
Jenis – jenis QUEUE / ANTRIAN :
1. LINEAR QUEUE (Antrian Lurus)
2. CIRCULAR QUEUE (Antrian Melingkar)
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN MELINGKAR
E
5
D
4
6
3
7
2
8
1
A
C
B
QUEUE
ANTRIAN
ARRAY /(LARIK)
KEKURANGAN ANTRIAN LURUS
E
5
1 2 3
D
4
6
3C
7
2
8
1
A
B
4 5
6
7
B
C
D
8
E
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
1
2
3
Q[ ]
dpn
4
5
6
7
8
D
E
F
G
H
Jika :
Blkg = max
ANTRIAN tidak dpt
diisi lagi
blkg
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN MELINGKAR
MAX
1
2
I
J
blkg
blkg
3
4
5
6
7
8
E
F
G
H
blkg
dpn
Jika :
Blkg = max
(setting ke index awal)
Blkg := 1
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN MELINGKAR
MAX
1
2
I
J
dpn
blkg
3
4
5
6
7
8
H
dpn
Jika :
Dpn = max
(setting ke index awal)
Dpn := 1
dpn
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
Const Max = 10;
Type
Antri = array[1..max] of char;
Var
Antrian : Antri;
Depan, Belakang, jml : integer;
function KOSONG(Q:Antri) : boolean;
begin
KOSONG := (Depan = Belakang);
end;
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
procedure TAMBAH(var Q:Antri; X:char)
begin
if Belakang = Max then
Belakang := 1
else
SALAH
Belakang := Belakang+1;
if jml = max then
write(‘ANTRIAN PENUH COY….’)
else
Q[Belakang] := X;
jml := jml + 1
end;
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
procedure TAMBAH(var Q:Antri; X:char)
begin
if jml = max then
write(‘ANTRIAN PENUH COY….’)
else
if Belakang = Max then
Belakang := 1
else
Belakang := Belakang+1;
Q[Belakang] := X;
jml := jml + 1
end;
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
function HAPUS(var Q:Antri) : char;
begin
if jml = 0 then
writeln(‘ANTRIAN KOSONG TUCH COY’)
else
begin
if Depan = Max then
Depan := 1
else
Depan := Depan + 1;
HAPUS := Q[Depan];
Q[depan] := ‘ ’;
jml := jml – 1
end;
end;
Tugas 5
Perbaikilah Program QUEUE (file ANTREPAS), agar :
1. Pesan “ANTRIAN KOSONG” dapat tampil saat antrian
benar-benar kosong
2. Pesan “ANTRIAN PENUH” dapat tampil saat antrian
benar-benar Penuh
Tugas 5
Perbaikilah Program QUEUE (file ANTREPAS), agar :
1. Pesan “ANTRIAN KOSONG” dapat tampil saat antrian
benar-benar kosong
2. Pesan “ANTRIAN PENUH” dapat tampil saat antrian
benar-benar Penuh
• THE END OF THIS DAY
• KANGGOANG NAAAHHH,,,,!!!!