strukdat 6 - Jalan Masalah Blogs

Download Report

Transcript strukdat 6 - Jalan Masalah Blogs

STRUKTUR DATA
PERTEMUAN 6
[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. Suatu metode untuk Input dan hapus di
dalam memori komputer.
4. Antrian datanya seolah-olah mengantri
dari yang awal sampai yang terakhir.
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
HEAD
DEPAN
TAIL
BELAKANG
QUEUE / ANTRIAN
Elemen yang pertama kali masuk ke antrian akan keluar pertama
kalinya
QUEUE
ANTRIAN
ARRAY /(LARIK)
Contoh:
1.Guntur, 2.Aditya, 3.Tyas, 4.Hendra, 5.Dyah
Data nomor 1 datang/masuk duluan, data nomor 1 juga
yang keluar terlebih dahulu.
QUEUE
ANTRIAN
ARRAY /(LARIK)
•
Jenis – jenis QUEUE / ANTRIAN :
1. LINEAR QUEUE (Antrian Lurus)
2. CIRCULAR QUEUE (Antrian Melingkar)
QUEUE
ANTRIAN
ARRAY /(LARIK)
Algoritma
•
• Input/tambah data
Jika ada input maka no queue/no antrian yang semula 0 akan
tambah 1 demi 1 sampai maksimal antrian.
• Pengambilan data
Jika ada pengambilan data maka data dipindahkan di variabel lain
contohnya temp.
Dan posisi antriannya yang semula maksimal akan berkurang 1
demi 1 sampai posisi 0 kembali.
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
1
2
3
4
5
6
7
8
Q[ ]
blkg
Antrian awal KOSONG :
dpn
ANTRIAN KOSONG
Dpn := 0
Blkg := 0
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
1
Q[ ]
blkg
dpn
2
3
4
5
6
7
8
A
Antrian diisi ‘A’ :
(Blkg + 1)
Q[blkg] = ‘A’
Dpn = 0
=> Blkg = 1
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
Q[ ]
1
2
A
B
blkg
dpn
3
4
5
6
7
8
Antrian diisi ‘B’ :
(Blkg + 1)
Q[blkg] = ‘B’
Dpn = 0
=> Blkg = 2
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
Q[ ]
1
2
3
A
B
C
blkg
dpn
4
5
6
7
8
Antrian diisi ‘C’:
(blkg + 1)
Q[blkg] = ‘C’
Dpn = 0
=> Blkg = 3
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
Q[ ]
1
2
3
A
B
C
blkg
dpn
4
5
6
7
8
Ambil 1 antrian :
(Dpn + 1)
Q[dpn] = ‘A’
=> Dpn = 1
Blkg = 3
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
1
Q[ ]
2
3
B
C
blkg
dpn
4
5
6
7
8
Ambil 1 antrian :
(Dpn + 1)
Q[dpn] = ‘B’
=> Dpn = 2
Blkg = 3
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
ANTRIAN KOSONG
1
2
Q[ ]
3
5
6
7
8
C
blkg
Jika :
Dpn = blkg dpn
KOSONG
4
MAX
Ambil 1 antrian :
(Dpn + 1)
Q[dpn] = ‘C’
=> Dpn = 3
Blkg = 3
QUEUE
ANTRIAN
ARRAY /(LARIK)
VISUALISASI ANTRIAN LURUS
MAX
Q[ ]
1
2
3
4
5
6
7
8
A
B
C
D
E
F
G
H
Jika :
Blkg = max dan Dpn = 0
dpn
ANTRIAN PENUH
blkg
QUEUE
ANTRIAN
ARRAY /(LARIK)
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
Const Max = 10;
Type
Antri = array[1..max] of char;
Var
Antrian : Antri;
Depan, Belakang : integer;
function KOSONG(Q:Antri) : boolean;
begin
KOSONG := (Depan = Belakang);
end;
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
1
Q[ ]
dpn
2
3
4
5
6
7
MAX
8
A B C D E F G H
blkg
procedure TAMBAH(var Q:Antri; X:char)
begin
if (Belakang = Max) and (Depan = 0) then
write(‘ANTRIAN PENUH COY….’)
else
Belakang := Belakang+1;
Q[Belakang] := X;
End;
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH PETIKAN PROGRAM
1
2
3
4
5
6
Q[ ]
function HAPUS(var Q:Antri) : char;
begin
if KOSONG(Q) then
writeln(‘ANTRIAN KOSONG TUCH COY’)
else
begin
Depan := Depan + 1
HAPUS := Q[Depan];
end;
end;
blkg
dpn
7
MAX
8
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH REVIEW PROGRAM
1
Q[ ]
2
3
4
5
6
7
MAX
8
L E T O Y
blkg blkg blkg blkg blkg blkg
dpn
procedure TAMBAH(var Q:Antri; X:char)
begin
if (Belakang = Max) and (Depan = 0) then
write(‘ANTRIAN PENUH COY….’)
else
Belakang := Belakang+1;
Q[Belakang] := X;
End;
Begin
clrscr;
TAMBAH(Antrian,’L’);
TAMBAH(Antrian,’E’);
TAMBAH(Antrian,’T’);
TAMBAH(Antrian,’O’);
TAMBAH(Antrian,’Y’);
readln;
End.
QUEUE
ANTRIAN
ARRAY /(LARIK)
CONTOH REVIEW PROGRAM
1
Q[ ]
2
3
4
5
6
7
MAX
8
L E T O Y O T
blkg blkg blkg
dpn dpn dpn dpn
function HAPUS(var Q:Antri) : char;
begin
if KOSONG(Q) then
writeln(‘ANTRIAN KOSONG TUCH COY’)
else
begin
Depan := Depan + 1
HAPUS := Q[Depan];
end;
end;
Begin
clrscr;
HAPUS(Antrian);
HAPUS(Antrian);
TAMBAH(Antrian,’O’);
HAPUS(Antrian);
TAMBAH(Antrian,’T’);
readln;
End.
• THE END OF THIS DAY
• KANGGOANG NAAAHHH,,,,!!!!