Thursday, 8 January 2015

ANTRIAN

No comments :
1 PENGERTIAN ANTRIAN
              Antrian 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;

No comments :

Post a Comment