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.
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
Posting Komentar