Prosedur Antrian Menggunakan Array

Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehiduypan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket.
Antrian dapat di implementasikan menggunakan Array, disini dijelaskan ada 10 antrian yang mana 10 antrian tersebut dapat diibaratkan sebagai array berindek 10. Dalam antrian ini menggunakan pola FIFO, yaitu first in first out yang artinya pembeli tiket yang pertama dilayani terlebih dahulu dan begitu seterusnya sampai habis.
Macam-macam Operasi Queue dengan Linear Array:

  • IsEmpty
    Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
  • IsFull
    Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.
  • EnQueue
    Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.
  • DeQueue
    Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya.
  • Clear
    Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue.

Untuk lebih memahami antrian yang menggunakan aray,berikut ini contoh tentang program sistem antrian pada bioskop:

#include <cstdlib>
#include <iostream>

template<class T>
class Antrian_tiket_bioskop{
      public :
             Antrian_tiket_bioskop(int MaxAntrian_tiket_bioskopSize=10);
             ~Antrian_tiket_bioskop(){delete[]antrian_tiket_bioskop;}
             bool IsEmpty()const{return front==rear;}
             bool IsFull()const{
                  return(((rear+1)%Max Size==front)?1=0);}
                  TFrist()const;
                  TLast()const;
                  Antrian_tiket_bioskop<T>&Add(const T&x);
                  Antrian_tiket_bioskop<T>&Delete(T&x);
      private :
              int front;
              int rear;
              int Max Size;
              T *antrian_tiket_bioskop;
};
tamplate<class T>              
Antrian_tiket_bioskop<T>::Antrian_tiket_bioskop(int MaxAntrian_tiket_bioskop)
{
MaxSize = MaxAntrian_tiket_bioskopSize+1;
antrian_tiket_bioskop=new T[MaxSize+1];
front=rear=0;
}

template<classT>
TAntrian_tiket_bioskop<T>::First()const
{
return antrian_tiket_bioskop[(front+1)%MaxSize];
}

template<classT>
TAntrian_tiket_bioskop<classT>::Last()const
{
return antrian_tiket_bioskop[rear];
}

template<classT>
Antrian_tiket_bioskop<T>&Antrian_tiket_bioskop<T>::Add(const T&x)
{
rear=(rear+1)%MaxSize;
Antrian_tiket_bioskop[rear]=x;
return*this;
}

template<classT>
Antrian_tiket_bioskop<T>&Antrian_tiket_bioskop<T>::Delete(T&x)
{
front=(front+1)%MaxSize;
x=antrian_tiket_bioskop[front];
return*this;
}



void main(int argc, char *argv[])
{
     Antrian_tiket_bioskop<int>Q(3);
     int x;
     try{Q.Add(1).Add(2).Add(3).Add(4);
     cout<<"No antrian_tiket_bioskop add failed"<<endl;}
     catch(NoMem)
     {cout< "A antrian_tiket_bioskop failed"<<andl;}
     cout<<"Antrian_tiket_bioskop is now 123"<<endl;
     Q.Delete(x);
     cout<<"Deteted"<<x<<endl;
     cout<<Q.First()<<"is at end"<<endl;
     try{
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         Q.Delete(x);
         cout<<"Deleted"<<x<<endl;
         cout<<"No antrian_tiket_bioskop delete failed"<<endl;
         }
         catch(OutOfBounds)
         {cout<<"A delete has failed"<<endl;}
         }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Bila kita ingin memodifikasi program antrian tersebut,berikut ini langkah-langkahnya:

  • Langkah 1 : kita mengecek apakah array tersebut full atau masih ada space kosong.
  • Langkah 2 : kita menggunakan method Add (X) untuk menambahkan antrian atau kita juga bisa menghapus antrian menggunakan method delete (X).
Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s