Post on 04-Feb-2016
description
STRUKTUR DATA PERTEMUAN 6
vandawaa@yahoo.com
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 nyata3. 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
QUEUE / ANTRIANQUEUE / ANTRIAN
HEAD TAIL
DEPAN BELAKANG
Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya
QUEUE / ANTRIANQUEUE / ANTRIAN
ARRAY (LARIK)QUEUE / ANTRIAN
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.
ARRAY (LARIK)•
Jenis – jenis QUEUE / ANTRIAN :1. LINEAR QUEUE (Antrian Lurus)2. CIRCULAR QUEUE (Antrian Melingkar)
QUEUE / ANTRIAN
ARRAY (LARIK)
Algoritma•
• Input/tambah dataJika ada input maka no queue/no antrian yang semula 0 akan tambah 1 demi 1 sampai maksimal antrian.
• Pengambilan dataJika 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)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
blkg
Antrian awal KOSONG :
Dpn := 0Blkg := 0
MAX
ANTRIAN KOSONG
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
VISUALISASI ANTRIAN LURUS
1 2 3 4 5 6 7 8
Q[ ]
dpn
Antrian diisi ‘A’ :
Dpn = 0(Blkg + 1) => Blkg = 1Q[blkg] = ‘A’
blkg
A
MAX
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Antrian diisi ‘B’ :
Dpn = 0(Blkg + 1) => Blkg = 2Q[blkg] = ‘B’
blkg
A B
MAX
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Antrian diisi ‘C’:
Dpn = 0(blkg + 1) => Blkg = 3Q[blkg] = ‘C’
blkg
A B C
MAX
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Ambil 1 antrian :
(Dpn + 1) => Dpn = 1 Blkg = 3
Q[dpn] = ‘A’
blkg
A B C
MAX
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Ambil 1 antrian :
(Dpn + 1) => Dpn = 2 Blkg = 3
Q[dpn] = ‘B’
blkg
B C
MAX
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Ambil 1 antrian :
(Dpn + 1) => Dpn = 3 Blkg = 3
Q[dpn] = ‘C’
blkg
C
ANTRIAN KOSONG MAX
Jika : Dpn = blkgKOSONG
VISUALISASI ANTRIAN LURUS
ARRAY (LARIK)QUEUE / ANTRIAN
1 2 3 4 5 6 7 8
Q[ ]
dpn
Jika :Blkg = max dan Dpn = 0
ANTRIAN PENUH
blkg
D
MAX
E F G H
VISUALISASI ANTRIAN LURUS
A B C
ARRAY (LARIK)QUEUE / ANTRIAN
ARRAY (LARIK)
function KOSONG(Q:Antri) : boolean; begin
KOSONG := (Depan = Belakang); end;
QUEUE / ANTRIAN
CONTOH PETIKAN PROGRAM
Const Max = 10;
Type Antri = array[1..max] of char;
Var Antrian : Antri;Depan, Belakang : integer;
ARRAY (LARIK)
procedure TAMBAH(var Q:Antri; X:char)begin
if (Belakang = Max) and (Depan = 0) thenwrite(‘ANTRIAN PENUH COY….’)
elseBelakang := Belakang+1;Q[Belakang] := X;
End;
QUEUE / ANTRIAN
CONTOH PETIKAN PROGRAM
1 2 3 4 5 6 7 8
Q[ ]
dpn blkg
D
MAX
E F G HA B C
ARRAY (LARIK)
function HAPUS(var Q:Antri) : char;begin
if KOSONG(Q) thenwriteln(‘ANTRIAN KOSONG TUCH COY’)
elsebegin
Depan := Depan + 1HAPUS := Q[Depan];
end;end;
QUEUE / ANTRIAN
CONTOH PETIKAN PROGRAM
1 2 3 4 5 6 7 8
Q[ ]
dpn
blkg
MAX
ARRAY (LARIK)
procedure TAMBAH(var Q:Antri; X:char)begin
if (Belakang = Max) and (Depan = 0) thenwrite(‘ANTRIAN PENUH COY….’)
elseBelakang := Belakang+1;Q[Belakang] := X;
End;
QUEUE / ANTRIAN
CONTOH REVIEW PROGRAM
1 2 3 4 5 6 7 8
Q[ ]
dpn
blkg
O
MAX
L E T
Begin clrscr;
TAMBAH(Antrian,’L’); TAMBAH(Antrian,’E’); TAMBAH(Antrian,’T’); TAMBAH(Antrian,’O’); TAMBAH(Antrian,’Y’);
readln;End.
Y
blkg blkg blkg blkg blkg
ARRAY (LARIK)
function HAPUS(var Q:Antri) : char;begin
if KOSONG(Q) thenwriteln(‘ANTRIAN KOSONG TUCH COY’)
elsebegin
Depan := Depan + 1HAPUS := Q[Depan];
end;end;
QUEUE / ANTRIAN
CONTOH REVIEW PROGRAM
1 2 3 4 5 6 7 8
Q[ ] O
MAX
L E T
Begin clrscr;
HAPUS(Antrian); HAPUS(Antrian); TAMBAH(Antrian,’O’); HAPUS(Antrian); TAMBAH(Antrian,’T’);
readln;End.
Y
dpn
blkgblkg blkg
dpn dpn dpn
TO
• THE END OF THIS DAY• KANGGOANG NAAAHHH,,,,!!!!