230 likes | 449 Views
STRUKTUR DATA. PERTEMUAN 6. vandawaa@yahoo.com. QUEUE / ANTRIAN. Konsep utama dalam Queue adalah FIFO ( First In First Out ). Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi : Antrian job dalam sistem operasi Antrian dalam dunia nyata
E N D
STRUKTUR DATA PERTEMUAN 6 vandawaa@yahoo.com
QUEUE / ANTRIAN • Konsep utama dalam Queue adalah FIFO ( First In First Out ). • Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi : • Antrian job dalam sistem operasi • Antrian dalam dunia nyata • Suatu metode untuk Input dan hapus di dalam memori komputer. • Antrian datanya seolah-olah mengantri dari yang awal sampai yang terakhir.
QUEUE / ANTRIAN QUEUE / ANTRIAN • Elemen pertama yang dikenali (Head) dan elemen terakhirnya (Tail) • Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut : • Penyisipan selalu dilakukan setelah elemen terakhir • Penghapusan selalu dilakukan pada elemen pertama • Satu elemen dengan elemen lain dapat diakses melalui informasi Next HEAD TAIL DEPAN BELAKANG
QUEUE / ANTRIAN QUEUE / ANTRIAN Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya
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) QUEUE / ANTRIAN Jenis – jenis QUEUE / ANTRIAN : • LINEAR QUEUE (AntrianLurus) • CIRCULAR QUEUE (AntrianMelingkar)
ARRAY (LARIK) QUEUE / ANTRIAN 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.
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 Q[ ] dpn blkg • Antrian awal KOSONG : • Dpn := 0 • Blkg := 0 ANTRIAN KOSONG
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 A Q[ ] • Antrian diisi ‘A’ : • Dpn = 0 • (Blkg + 1) => Blkg = 1 • Q[blkg] = ‘A’ dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 A B Q[ ] • Antrian diisi ‘B’ : • Dpn = 0 • (Blkg + 1) => Blkg = 2 • Q[blkg] = ‘B’ dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 C A B Q[ ] • Antrian diisi ‘C’: • Dpn = 0 • (blkg + 1) =>Blkg = 3 • Q[blkg] = ‘C’ dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 C A B Q[ ] • Ambil 1 antrian : • (Dpn + 1) => Dpn = 1 • Blkg = 3 • Q[dpn] = ‘A’ dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 C B Q[ ] • Ambil 1 antrian : • (Dpn + 1) => Dpn = 2 • Blkg = 3 • Q[dpn] = ‘B’ dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS ANTRIAN KOSONG MAX 1 2 3 4 5 6 7 8 C Q[ ] • Ambil 1 antrian : • (Dpn + 1) => Dpn = 3 • Blkg = 3 • Q[dpn] = ‘C’ dpn blkg • Jika : • Dpn = blkg • KOSONG
ARRAY (LARIK) QUEUE / ANTRIAN VISUALISASI ANTRIAN LURUS MAX 1 2 3 4 5 6 7 8 C D E F G A B H Q[ ] • Jika : • Blkg = max dan Dpn = 0 • ANTRIAN PENUH dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN
ARRAY (LARIK) QUEUE / ANTRIAN CONTOH PETIKAN PROGRAM function KOSONG(Q:Antri) : boolean; begin KOSONG := (Depan = Belakang); end; Const Max = 10; Type Antri = array[1..max] of char; Var Antrian : Antri; Depan, Belakang : integer;
ARRAY (LARIK) QUEUE / ANTRIAN CONTOH PETIKAN PROGRAM 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; MAX 1 2 3 4 5 6 7 8 C D E F G A B H Q[ ] dpn blkg
ARRAY (LARIK) QUEUE / ANTRIAN CONTOH PETIKAN PROGRAM 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; MAX 1 2 3 4 5 6 7 8 Q[ ] blkg dpn
ARRAY (LARIK) QUEUE / ANTRIAN CONTOH REVIEW PROGRAM 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; MAX 1 2 3 4 5 6 7 8 T O L E Y Q[ ] dpn Begin clrscr; TAMBAH(Antrian,’L’); TAMBAH(Antrian,’E’); TAMBAH(Antrian,’T’); TAMBAH(Antrian,’O’); TAMBAH(Antrian,’Y’); readln; End. blkg blkg blkg blkg blkg blkg
ARRAY (LARIK) QUEUE / ANTRIAN CONTOH REVIEW PROGRAM 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; MAX 1 2 3 4 5 6 7 8 T O L E Y O T Q[ ] dpn dpn dpn dpn Begin clrscr; HAPUS(Antrian); HAPUS(Antrian); TAMBAH(Antrian,’O’); HAPUS(Antrian); TAMBAH(Antrian,’T’); readln; End. blkg blkg blkg
THE END OF THIS DAY • KANGGOANG NAAAHHH,,,,!!!!