Queue<<<<


- Kumpulan data dimana data masuk dan keluar pada ujung yang berbeda. - Konsep utama FIFO ( Fisrt In First Out ). 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; 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; 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.

1 komentar:

  penguasa IT

3 Juni 2009 pukul 22.47

li klu bisa penjelasan lebih details........