Beruflich Dokumente
Kultur Dokumente
elmt; : elemen
(inisialisasi)
elmt; <- Q.first;
(iterasi)
Elmt; <- elmt; .nest;
(end while)
(end if)
-> hasil
(end function)
elmt; : elemen
alloc/mem(elmt;)
(end procedure)
(end procedure)
(iterasi)
elmt; <- elmt; .next;
i <- i + 1
(end while)
output(“--------------------“)
(end if)
else
(proses jika queue kosong)
output(“queue kosong”)
(end else)
(end procedure)
createEmpty(Q)
printQueue(Q)
output(“====================”)
output(“====================”)
del(Q)
del(Q)
printQueue(Q)
output(“====================”)
Bahasa algoritmik di atas jika diimplementasikan pada bahasa pemrograman Pascal dan bahasa
pemrograman C adalah sebagai berikut.
isEmpty := hasil;
end;
end;
end;
end;
Q : queue Q : queue;
createEmpty(Q) begin
printQueue(Q) createEmpty(Q);
printQueue(Q);
output(“====================”)
writeln(‘====================’);
add(“13507701”, “Nana”, 64.75, Q)
add(“13507702”, “Rudi”, 75.11, Q) add(‘13507701’, ‘Nana’, 64.75, Q);
add(“13507703”, “Dea”, 84.63, Q) add(‘13507702’, ‘Rudi’, 75.11, Q);
printQueue(Q) add(‘13507703’, ‘Dea’, 84.63, Q);
printQueue(Q);
output(“====================”)
writeln(‘====================’);
del(Q)
del(Q) del(Q);
printQueue(Q) del(Q);
printQueue(Q);
output(“====================”)
writeln(‘====================’);
(end algoritma utama)
end.
(end procedure) }
function isEmpty(Q : queue)-> boolean Int isEmpty(queue Q){
{end procedure) }
Q : queue queue Q;
createEmpty(Q) createEmpty(&Q);
printQueue(Q) printQueue(Q);
output(“====================”) printf(“====================\n”);
output(“====================”) printf(“====================\n”);
del(Q) del(&Q);
del(Q) del(&Q);
printQueue(Q) printf(“====================\n”);
output(“====================”) return 0;
Setelah dilakukan kompilasi dan eksekusi pada layar akan muncul sebagai berikut:
Queue kosong
===============
-----isi queue-----
==================
Elemen ke : 1
Nim : 13507701
Nama : Nana
Nilai : 64.750000
==================
Elemen ke : 2
Nim : 13507702
Nama : Rudi
Nilai : 75.110001
==================
Elemen ke : 3
Nim : 13507703
Nama : Dea
Nilai : 84.629997
---------------------
=================
-----isi queue-------
====================
Elemen ke : 1
Nim : 13507703
Nama : Dea
Nilai : 84.629997
---------------------
=================
1. Elemen yang memiilki prioritas lebih tinggi akan lebih dahulu keluar dari queue.
2. Jika ada dua elemen yang memiliki prioritas sama maka yang akan kelar terlebih dahulu dari antrian
adalah yang terlebih dahulu masuk ke dalam antrian.
3.
Keterangan Representasi
Kondisi awal ada sebuah antrian berprioritas yang
berisi elemen da nada sebuah elemen baru yang
akan dimasukkan ke dalam antrian
Mencari tempat yang sesuai untuk elemen baru
sesuai dengan prioritas elemen baru pada antrian
. . . . . . . . . . . . . . .
i : integer
for i<-Q.last downto Q.first do
Q.data1+1.elmt.nim <- Q.data1.elmt.nim
Q.data1+1.elmt.nama<- Q.data1.elmt.nama
Q.data1+1.elmt.nilai <- Q.data1.elmt.nilai
Q.data1+1.priority <- Q.data1.priority
{end for}
{end if}
Else
Output(“queue penuh”)
{end else}
{end else}
{end procedure}
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Elmt;: elemen
allocMem(elmt;)
{end if}
else
{jika queue tidak kosong}
posisi; : elemen
posisi; <- Q.first
ketemu : boolean
ketemu <- false
. . . . . . . . . . . . . . .
Operasi mengeluarkan sebuah elemen dari antrian berprioritas sama dengan antrian tidak berprioritas,
karena elemen telah diurutkan berdasarkan prioritasnya.
Soal Latihan
1. Buatlah queue yang memiliki isi elemen berupa data konsumen, lalu buat program utamanya
beserta prosedur dan fungsi yang dibutuhkan, buat simulasi ketika ada konsumen yang masuk
antrian dan ada konsumen yang keluar antrian.
2. Buatlah queue yang memiliki isi elemen berupa data pengunjung kafe beserta pesanan yang
harus dilayani, lalu buat program utamanya beserta prosedur dan fungsi yang dibutuhkan, buat
simulasi ketika ada pegunjung kafe yang masuk antrian dan memesan dan ada pengunjung kafe
yang selesai dilayani yang keluar antrian.