" aLL tHanks f0r vIew bLog_y na'2;(n_n)...

wELc0me to mY bLog....

m0hon c0mment-y yApppzzz..!!!


(n_n)


Minggu, Mei 24, 2009

_ 6'th m0duL !


" QUEUE ( ANTRIAN ) "


" yang dImaksud dengan antrian di sini,bukannya ngantri kayak kita ngantri karcis bioskop giTu.!!

-Queue adalah Kumpulan data dimana data masuk dan keluar pada ujung yang berbeda.

-Queue merupakan 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.

  1. 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.


  1. 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 keterangan diatas:


Type

Coba = record

Data :string;

Top : byte;

End;

Barang = ARRAY [1..4] of coba;

Var Antri:barang;


  1. 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.

1 komentar:

  1. na tata letak nya lebih dirapikan ya .tapi bagi pemula tak apa lah

    BalasHapus