Queue (Antrian) adalah Suatu kumpulan data dimana penambahan elemen hanya bisa dilakukan pada suatu ujung (rear) dan pengambilan elemen dilakukan lewat ujung yang lain (front).
Tumpukan menggunakan metode yang disebut FIFO (First In First Out) yaitu Masuk pertama keluar pertama.
Pendeklarasian Antrian
Const MaxElemen = 100;
Type Antri = array[1.. MaxElemen] of char;
Var Antrian : Antri;
Depan, Belakang: Integer;
Operasi Penambahan Elemen
Procedure TAMBAH(var Q: Antri; X: char);
Begin
If Belakang := Max_Elemen then
Belakang := 1
Else
Belakang := Belakang + 1;
If Depan = Belakang then
Writeln(’ANTRIAN PENUH’)
Else
Q[Belakang];
end;
Operasi Penghapusan Elemen
Sebelumnya buat Fungsi untuk mencek apakah antrian dalam keadaan kosong atau terisi
Procedure KOSONG(Q : Antri): Boolean;
Begin
Kosong := (Depan = Belakang)
End;
Procedure HAPUS(Var Q:Antri): char;
Begin
If KOSONG(Q) then
Writeln (‘ANTRIAN KOSONG’)
Else
Begin
HAPUS := Q(Depan);
If Depan := Max_Elemen then
Depan := 1
Else
Depan := Depan + 1;
End;
End;
Contoh Pemakaian Program Antrian
program ILUSTRASI_ANTRIAN;
uses wincrt;
const Max_Elemen = 10;
Type Antri = Array[1..Max_Elemen] of char;
var Antrian : Antri;
Depan, Belakang, Pilih : integer;
Elemen : char;
procedure KOTAK;
var I : integer;
begin
gotoxy(20,15);
for i := 1 to Max_Elemen*4 + 1 do write ('');
gotoxy(20,16);
for i := 1 to max_elemen do write('');
for i := 1 to max_elemen*4 + 1 do
write(' ');
gotoxy(8,16); write('<----KELUAR');
gotoxy(22+Max_Elemen*4+1,16);
writeln('<----MASUK');
end;
procedure LETAKKAN(X:char; R:integer);
begin
gotoxy(18+4*R,16);
write(X);
end;
function KOSONG(Q:Antri):Boolean;
begin
Kosong := (Depan=Belakang);
end;
procedure TAMBAH(var antrian:antri; x:char);
begin
if belakang = max_elemen then belakang := 1
else belakang := belakang + 1;
if not(KOSONG(Antrian)) then
begin
Antrian[Belakang]:=X;
LETAKKAN(X,Belakang)
end
else
begin
gotoxy(40,9);
write('ANTRIAN SUDAH PENUH');
repeat
until keypressed;
gotoxy(40,9);
write(' ':30);
Belakang:= Belakang-1;
if belakang = 0 then
belakang:= max_elemen;
end;
end;
function HAPUS(var antrian:antri): char;
begin
if depan = max_elemen then
depan := 1
else
begin
depan:=depan+1;
HAPUS:=antrian[depan];
end;
end;
{PROGRAM UTAMA}
begin
clrscr;
KOTAK;
depan:=0; belakang:=0;
repeat
for pilih := 5 to 9 do
begin
gotoxy(40,pilih);
write(' ':39);
end;
gotoxy(1,1);
writeln('DAFTAR MENU ANTRIAN: ');
writeln('-------------------- ');
writeln;
writeln('1. Menambah Elemen Baru');
writeln('2. Menghapus Elemen');
writeln('3. S E L E S A I');
writeln;
writeln;
writeln('PILIH SALAH SATU');
repeat
gotoxy(22,9);writeln(' ');
gotoxy(22,9);readln(pilih);
until (pilih >= 1) and (pilih <= 3);
case pilih of
1 : begin
gotoxy(40,5);
writeln('MENAMBAH ELEMEN');
gotoxy(40,6);
writeln('---------------');
gotoxy(40,8);
write('ISIKAN ELEMENNYA: ');
readln(Elemen);
TAMBAH(Antrian,Elemen);
end;
2 : Begin
if not (KOSONG(antrian)) then
begin
Elemen:=HAPUS(antrian);
LETAKKAN(' ',Depan)
end
else
begin
gotoxy(30,9);
writeln('ANTRIAN KOSONG');
elemen:=readkey;
gotoxy(30,9); write(' ':30);
end
end
end
until pilih =3
end.
Selasa, 18 November 2008
Langganan:
Posting Komentar (Atom)

3 komentar:
Trims ibu dosen..., kalo boleh saya panggil ibu Vi2x aja ya..
Kebetulan saya lagi nyari modul untuk mata kuliah struktur data mengenai queue dan stack. Dan ternyata...ketemu di blog ibu.
skali lagi makasih bu vi2x....
Salam Kenal Ibu Dosen, Maaf kalo saya mengganggu pengisian komentar anda tentang Modul tersebut. Saya hanya membantu/memberitahukan kepada ibu Dosen, bagaimana caranya memotong suatu artikel agar tidak panjang kebawah. Kecuali disengaja, hal itu no comentar he he..!. Kalo Ibu Dosen butuh silahkan ibu hubungi saya di E-mail bani_um@ymail.com.Trims
Salam Kenal
Bang Wil
http://beligentbisnis.blogspot.com
trimakasih bu....
kalo beleh tau itu pake bahasa pemrograman apa bu...
Posting Komentar