Kamis, 04 Juni 2015

Queue (Antrean)


Pengertian Queue (Antrean)

Secara harfiah Queue dapat diartikan sebagi antrean. Queue sering kita temui dalam kehidupan sehari hari sebagai sebuah antrian di loket. Dalam sebuah antrean yang datang lebih dahulu maka dia akan dilayani terlebih dahulu.
Queue merupakan kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk akan keluar terakhir.

Struktur data queue memiliki operasi-operasi sebagai berikut :
EnQueue Memasukkan data ke dalam antrian
DeQueue Mengeluarkan data terdepan dari antrian
Clear Menghapus seluruh antrian
IsEmpty Memeriksa apakah antrian kosong
IsFull Memeriksa apakah antrian penuh

Operasi-Operasi Queue dengan Linear Array
 
EnQueue
 
Fungsi EnQueue berfungsi untuk memasukkan elemen  ke dalam queue.
 
DeQueue
 
Berfungsi untuk mengambil sebuah elemen dari queue.
 
Clear
 
Berfungsi untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan menggunakan fungsi DEQueue.
 
IsEmpty
 
Berfungsi untuk mengecek apakah queue sudah kosong atau masih berisi data.
 
IsFull
 
Berfungsi untuk mengecek apakah queue sudah penuh atau masih bias menampung data.

Contoh Program Queue:
 
#include <iostream.h>
#include <conio.h>

main()
{
    int cek=0, data[20], x, hapus;
    char pil;
    do
    {
      clrscr();
      cout<<"1. Tambah Antrian"<<endl;
      cout<<"2. Hapus Antrian"<<endl;
      cout<<"3. Lihat Antrian"<<endl;
      cout<<"4. Keluar"<<endl;
      cout<<endl;
      cout<<"masukkan pilihan anda = ";
      pil=getche();
      cout<<endl;

        if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
          cout<<"salah mengetikkan inputan";
        else
        {
           if(pil=='1')   //PUSH
           {
               if(cek==20)
                  cout<<"Antrian Penuh";
              else
              {
                  cout<<"Masukkan nilai = ";
                  cin>>x;
                  data[cek]=x;
                  cek++;
              }
           }
           else
           {
               if(pil=='2')     //POP
               {
                  if(cek==0)
                     cout<<"Antrian kosong";

                  else
                  {
                     hapus=data[0];
                     for(int v=0;v<cek;v++)
                        data[v]=data[v+1];
                        data[cek-1]=NULL;
                        cek--;
                        cout<<"Data dengan nilai "<<hapus<<" terhapus";
                   }
                   getch();
                }
                else
                {
                    if(pil=='3')   //CEK DATA
                    {
                        if(cek==0)
                            cout<<"Antrian Kosong";

                     else
                     {
                         cout<<endl;
                         for(int z=0;z<cek;z++)
                             cout<<" "<<data[z];
                      }

                   }
                   getch();
                }
            }
        }
    }

while(pil!='4');
}
 
Hasil eksekusi program:
 
 
 

Tidak ada komentar:

Posting Komentar