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

LINKED LIST