Thursday, 8 January 2015
ANTRIAN
1 PENGERTIAN ANTRIANAntrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang atau rear), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front).
Antrian menggunakan prinsip ”masuk pertama keluar pertama” atau FIFO (First In First Out). Dengan kata lain, urutan keluar elemen akan sama dengan urutam masuknya.
2 IMPLEMENTASI ANTRIAN DENGAN LARIK
Tipe data yang sesuai untuk menyajikan antrian adalah menggunakan larik dan senarai berantai.
Antrian diatas berisi 6 elemen, yaitu A, B, C, D, E dan F. Elemen A terletak dibagian depan antrian elemen F terletak di bagian belakang antrian. Dengan demikian, jika ada elemen baru yang akan masuk maka akan diletakkan disebelah kanan F. Jika ada elemen yang akan dihapus, maka A akan dihapus lebih dahulu.
Seperti halnya pada tumpukan, maka dalam antrian juga mengenal dua operasi dasar, yaitu menambah elemen baru yang akan ditempatkan pada bagian belakang antrian dan menghapus elemen yang terletak dibagian depan antrian. Disamping itu seringkali juga perlu dilihat apakah antrian mempunyai isi atau dalam keadaan kosong.
Untuk menyajikan antrian menggunakan larik, maka dibutuhkan deklarasi antrian. Misalnya :
const Max_Elemen = 100;
type Antri = Array [ 1 . . Max_Elemen ] of integer;
var Antrian : Antri;
Depan, belakang : integer;
Prosedur untuk menambah elemen baru kedalam antrian, sebagai berikut :
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 SUDAH PENUH’)
else Q [ Belakang ] := X
end
Untuk menghapus elemen dari antrian, terlebih dahulu harus dilihat apakah antrian dalam keadaan kosong atau tidak. Berikut disajikan fungsi untuk mencek keadaan antrian :
function KOSONG (Q : Antri) : boolean;
begin
KOSONG := (Depan = Belakang);
end;
Dengan memperhatikan fungsi diatas, maka bisa disusun fungsi lain untuk menghapus elemen, yaitu :
function 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;
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment