Sabtu, 06 Juni 2009

StruktUr Data Modul 06

Lawlietsan

http://Lawlietsan.co.cc/

MODUL 6

QUEUE ( ANTRIAN )

 

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

-à Konsep utama FIFO ( Fisrt In First Out ).

 

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;

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;

  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;

 

 

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.

 

 

Tidak ada komentar:

Posting Komentar

Give Comment dunk...
jangan just numpang lewat doank...
key...

untitle

Satu kata yang terucap Mengguncang gelora hati Satu Kata yang kau ucap Gemuruh hati tanpa henti Kau ucap kata perih untukku Tak dapat...