QUEUE ( ANTRIAN )
- Kumpulan data dimana data masuk dan keluar pada ujung yang berbeda.
- Konsep utama FIFO ( Fisrt In First Out ).
Contoh:
           1     2          3
Data nomor 1 datang/masuk dan keluar duluan.
Algoritma:
1. Input/tambah data
• Jika ada input maka no antrian yang semula 0 akan tambah 1 demi 1 sampai maksimal antrian.
2. Hapus/Pengambilan data
• Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp, antrian ke-dua akan maju ke antrian pertama dan seterusnya. Dan jumlah antrian yang semula maksimal akan berkurang 1 demi 1 sampai antrian 0 kembali.
3. Deklarasi Queue
Type
 Const 
 Max = 5;
Nama record = Record
  Data : type data;
  Top : byte;
 End;
 Nama_array = ARRAY [1..max] of Nama record;
Var
 Antri : nama Array;
1      2         3             4
Nama Array----- Barang
Nama Record--- Coba
Nama Variabel-- Antri
Contoh Deklarasi dari gambar diatas:
Type
 Coba = record
 Data :string;
 Top : byte;
 End;
Barang = ARRAY [1..4] of coba;
Var Antri:barang;
4. Operasi pada queue
• CREATE
Membuat antrian baru yang masih kosong.
Procedure create;
Begin
 antri.top:=0;
End;
• FULL
Untuk memeriksa apakah antrian sudah penih..
Fuction full:bolean;
Begin
 antri.top:=max;
End;
• PUSH
Menambah sebuah elemen ( data ) kedalam antrian.
Syarat: tidak bisa dilakukan jika antrian sudah penuh.
Procedure push ( input:string );
Begin
 If not full then
 Begin
  antri.top:=antri.top;
  antri.data:=input;
 End;
End;
• EMPTY
Fuction empty: bolean;
Begin
 Empty:=false;
 If top:=0 then empty:=true;
End;
• POP
Mengambil 1 elemen dari sebuah antrian.
Syarat: antrian tidak boleh kosong.
Procedure Pop ( elemen:string );
Begin
 If not empty then
 Begin
 Elemen:=antri.data;
 antri.top:=top – 1;
 End;
End;
Contoh:
1  2  3
Program antrian_1;
Uses wincrt;
Type
 Data= array [1..3] of string;
Var
 D: data;
 I, antri: integer;
 Temp: string;
Begin
Antri:=0;
{untuk input}
For I:=1 to 3 do
Begin
Writeln(’masukkan nama ke’,’  ’,i);
Readln(d[i]);
Antri:=antri+1;
End;
{untuk Output}
For I:=1 to 3 do
Begin
Temp:=d[i];
Antri:=antri-1;
End;
{lihat output di var temp setelah pengambilan }
Writeln(’hasil var temp=’,temp);
Readln;
End.
Langganan:
Posting Komentar (Atom)
 
 

apa lagi ni antrian musti ngantri dulu waktu buat proggram ini ya
BalasHapus