QUEUE

 QUEUE



Pengertian :

      Queue (antrian) adalah struktur data dimana proses pengambilan dan penambahan element dilakukan pada ujung yang berbeda.

      Queue mengikuti konsep FIFO.

      FIFO (First In First Out) : elemen yang pertama masuk akan menjadi elemen yang pertama kali keluar.

      Karakteristik yang membedakan queue (antrian) dari stack adalah cara menyimpan dan mengambil data dengan struktur first in first out (FIFO).

      Hal ini berarti elemen pertama yang ditempat-kan pada queue adalah yang pertama dipindahkan.

 

ENQUEUE : yaitu proses penambahan elemen pada queue.

      Elemen ditempatkan pada ujung (tail)

DEQUEUE : yaitu proses pengambilan elemen pada queue.

      Memindahkan elemen dari kepala (head) sebuah queue.

      Penambahan dilakukan pada bagian belakang. Sedangkan pengambilan dilakukan pada bagian depan (element yang pertama masuk).



ILUSTRASI


KARAKTERISTIK QUEUE

      Elemen antrian yaitu item-item data yang terdapat di elemen antrian

      Front

      Rear

      Jumlah elemen pada antrian (Count)

      Status antrian

 

FRONT dan REAR

Front : Pointer bantu yang digunakan untuk menujuk elemen yang paling depan

Rear : Pointer bantu yang digunakan untuk menunjuk elemen yang paling belakang

 

STATUS ANTRIAN

PENUH

      Bila elemen pada antrian mencapai kapasitas maksimum antrian.

      Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian.

      Penambahan elemen menyebabkan kondisi kesalahan Overflow.

KOSONG

      Bila tidak ada elemen pada antrian.

      Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari antrian.

      Pengambilan elemen menyebabkan kondisi kesalahan Underflow.

      Queue berguna untuk menyimpan pekerjaan yang tertunda.

 

GAMBARAN PROSES QUEUE (ANTRIAN)


OPERASI PADA QUEUE

Ø  Deklarasi

Ø  Inisialisasi

Ø  Cek kosong

Ø  Cek penuh

Ø  Penambahan

Ø  Pengambilan

Ø  Pengaksesan

DEKLARASI

      Proses yang harus dilakukan pertama kali adalah deklarasi/menyiapkan tempat.

      Langkah yang harus dilakukan adalah :

     Deklarasi class

     Deklarasi struktur data (menggunakan array atau linked list)

     Deklarasi pointer front dan rear

     Deklarasi variabel size untuk menyimpan besar array.

     Deklarasi variabel jumlah untuk mengetahui banyak item yang disimpan pada queue.


INISIALISASI

      Merupakan proses pemberian nilai awal.

      Pada Array :

1.      Pembentukan obyek array beserta ukurannya.

             antrian= new int[10];

            (pembentukan obyek array yang memiliki 10 element, dan alamat obyek akan      disimpan pada variabel bernama antrian)

1.      Pemberian nilai awal pada variabel front=0 dan belakang=-1.

            front = 0;

            rear=-1;

      Pada Linked List:

            Proses inisialisasi dilakukan dengan memberikan nilai awal pada variabel head, tail front dan rear dengan nilai null.

             head = tail = front=rear= null;

FUNGSI CREATE

      Digunakan untuk membentuk dan menunjuk awal terbentuknya suatu antrian/Queue

 


CEK KOSONG (ISEMPTY)

      Operasi yang digunakan untuk mengecek kondisi queue dalam keadaan kosong.

      Pada array : menggunakan pengecekan pada variabel jumlah_item. Jika nilainya = 0 berarti queue dalam kondisi kosong.

      Pada linked list : dapat menggunakan pengecekan front atau rear jika nilainya null berarti queue kosong.

Operasi ini harus dapat mengembalikan nilai true jika queue kosong dan false jika sebaliknya

CEK PENUH (ISFULL)

      Operasi yang hanya dapat diterapkan pada queue yang menggunakan array.

      Operasi ini digunakan untuk mengecek kondisi queue dalam keadaan penuh.

      Caranya : melihat nilai pada variabel jumlah item. Jika nilainya = size-1 (dimana size adalah ukuran array) maka dapat diindikasikan queue dalam kondisi penuh.

      Operasi ini harus dapat mengembalikan nilai true jika queue penuh dan false jika sebaliknya.

FUNGSI DEQUEUE

      Digunakan untuk menghapus elemen terdepan (head) dari Antrian

      Dengan cara : menggeser semua elemen antrian kedepan dan mengurangi Tail dengan

1.      Penggeseran dilakukan dengan menggunakan looping 



 

FUNGSI CLEAR

      Untuk menghapus elemen-elemen antrian dengan cara membuat Tail dan Head = -1

      Penghapusan elemen-elemen antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai-1 sehingga elemen-elemen antrian tidak lagi terbaca sehingga mengembalikan antrian seperti keadaan semula


ANTRIAN BERPRIORITAS

       Dalam antrian yang telah dibahas sebelum, semua elemen yang masuk dalam antrian dianggap mempunyai prioritas yang sama, sehingga elemen yang masuk lebih dahulu akan diproses lebih dahulu.

       Dalam praktek, elemen-elemen yang akan masuk dalam suatu antrian ada yang dikatakan mempunyai prioritas yang lebih tinggi dibanding yang lain.

       Antrian yang demikian ini disebut dengan antrian berprioritas (priority queue).


Komentar

Postingan populer dari blog ini

STACK