Queue / Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu ujung (disebut dengan sisi belakang atau tail/rear) dan penghapusan atau pengambilan elemen dilakukan lewat ujung lain (disebut dengan sisi depan atau head/front). Show
Antrian menggunakan prinsip Pertama Masuk Pertama Keluar -- First In First Out (FIFO). Dengan kata lain urutan masuk sama dengan urutan keluar. Antrian banyak dijumpai dalam kehidupan sehari-hari. Mobil-mobil yang mengantri digerbang tol untuk membeli karcis tol; orang-orang yang mengantri di loket untuk membeli karcis film juga membentuk antrian. Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya. DEQUEUE adalah mengeluarkan satu elemen dari suatu antrian. Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya sehingga membutuhkan variabel Head dan Tail. 1. Deklarasi Antrian dengan arrayProses pendeklarasi antrian adalah proses pembuatan struktur antrian dalam memori. Struktur antrian terdiri dari data dalam array, head untuk menunjukkan ujung antrian dan tail untuk menunjukkan akhir antrian. #define MAX 6 struct Queue { int data[MAX]; int head; int tail; };2. InisialisasiInisialisasi antrian adalah proses pembuatan suatu antrian kosong. Proses inisialisasi untuk antrian yang menggunakan array adalah dengan mengisi nilai field head dan tail dengan 0 (nol) jika elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai dengan 0 maka head dan tail diisi dengan nilai -1. void Create() { antrian.head=antrian.tail=-1; }3. Operasi cek kosongOperasi ini digunakan untuk memeriksa apakah antrian dalam keadaan kosong. Operasi ini penting dilakukan dalam proses Dequeu. Ketika suatu antrian dalam keadaan kosong, maka proses Dequeue tidak bisa dilakukan. Operasi ini dilakukan dengan memeriksa tail. Jika tail bernilai -1, maka berarti antrian dalam keadaan empty (kosong). int IsEmpty() { if(antrian.tail==-1) return 1; else return 0; }4. Operasi cek penuhOperasi ini berguna untuk memeriksa keadaan antrian apakah sudah penuh atau belum. Operasi ini akan memberikan nilai true (1) jika field tail sama dengan size-1. int IsFull() { if(antrian.tail==MAX-1) return 1; else return 0; }5. Operasi EnqueueOperasi ini berguna untuk menambah suatu elemen data baru pada antrian dan disimpan pada posisi head dan tail yang akan mengakibatkan posisi tail akan berubah. Langkah operasi ini adalah :
6. Operasi DequeueOperasi ini berguna untuk mengambil elemen pertama (head) dari antrian. Penghapusan dilakukan dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan. Penggeseran dilakukan dengan menggunakan looping. int Dequeue() { int i; int e=antrian.data[antrian.head]; for(i=antrian.head;i<=antrian.tail-1;i++) { antrian.data[i]=antrian.data[i+1]; } antrian.tail--; return e; }7. Operasi ClearDigunakan 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. void Clear() { antrian.head=antrian.tail=-1; cout<<"Data Clear"; }8. Operasi TampilDigunakan untuk menampilkan nilai-nilai elemen antrian. Proses menampilkan data dalam antrian dilakukan dengan menggunakan looping dari head s/d tail. void Tampil() { if (IsEmpty()==0) for (int i=antrian.head;i<=antrian.tail; i++) cout<<antrian.data[i]<<" "; else cout<<"Data Kosong\n"; }Program Lengkap: SumberMata kuliah Struktur Data. Disusun oleh Eko Riswanto Queue bisa disebut juga antrian pada struktur data. Pengertian queue adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung yang disebut sisi belakang (rear), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain. Contoh queue paling sederhana dapat dilihat pada antrian. Prinsip kerja dari queue adalah prinsip “First In First Out” (FIFO) atau “masuk pertama keluar pertama”. Sedangkan prinsip “masuk terakhir keluar pertama” atau “Last In First Out” (LIFO), digunakan pada tumpukan atau stack. Pada queue terdapat satu pintu masuk di salah satu ujung dan satu pintu keluar di ujung lainnya. Maka ada penunjuk yang menunjukkan awal dan akhir. Operasi penting dalam queue:
Dalam ilmu komputer, antrian atau queue banyak digunakan terutama dalam sistem operasi yang memerlukan manajemen sumber daya dan penjadwalan. Contohnya time-sharing computer-system yang bisa dipakai oleh sejumlah orang secara serempak. Sebuah antrian (queue) memiliki suatu operasi bernama add_priority. Dalam hal ini, antrian tidak lagi menerapkan konsep antrian yang murni, namun berubah menjadi antrian sesuai prioritas tertentu pada elemen, dan elemen yang baru ditambah tidak selalu berada di akhir. Operasi-Operasi Queue:a. Create b. IsEmpty Pergerakan pada antrian terjadi dengan penambahan elemen antrian di bagian belakang, yaitu menggunakan nilai tail. c. IsFull d. EnQueue e. DeQueue f. Clear g. Tampil Implementasi Queue dengan Linear ArrayLinear array adalah suatu array yang seakan-akan dibuat menjadi suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Berikut ini diberikan contoh deklarasi kelas queue linear sebagai implementasi dari queue menggunakan linear array. Dalam prakteknya, dapat diganti sesuai dengan kebutuhan. Data diakses dengan field data, dan indeks item pertama dan terakhir disimpan dalam field head dan tail. Konstruktor akan menginisialisasikan nilai dari head dan tail dengan -1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak MAX_QUEUE yang ditunjuk oleh data. Destruktor akan mengosongkan antrian kembali dan mendealokasikan memori yang digunakan oleh antrian. Operasi-Operasi Queue dengan Linear Arraya. IsEmpty b. IsFull c. EnQueue d. DeQueue e. Clear Contoh Implementasi Queue dengan Circular ArrayCircular array adalah sebuah array yang dibuat menyerupai sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong. Posisi head dan tail pada gambar di atas adalah bebas asalkan saling bersebelahan. Berikut dibagikan deklarasi kelas queue circular sebagai implementasi circular array. Dalam prakteknya, dapat diganti sesuai dengan kebutuhan. Data diakses dengan field data, dan indeks item pertama dan terakhir disimpan dalam field head dan Tail. Konstruktor akan menginisialisasi nilai head dan tail dengan 0 dan MAX-QUEUE-1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak MAX-QUEUE yang ditunjuk oleh data. Destruktur akan mengosongkan antrian kembali dan mengdealokasikan memori yang digunakan oleh antrian. Operasi-Operasi Queue dengan Circular Arraya. IsEmpty b. IsFull c. EnQueue d. DeQueue Contoh Soal Queue Struktur DataBerikut adalah beberapa jawaban dari soal yang berkaitan dengan queue dalam kehidupan. Jika kamu punya soal lain, silakan berkomentar agar kita dapat sama-sama mencari jawabannya. Berikan contoh antrian dalam kehidupan! Antrian pada saat ke dokter. Orang yang pertama mengantri akan mendapat posisi paling depan dalam antrian. Orang yang di posisi depan maka orang itu yang pertama mendapatkan pelayanan dan/atau pengobatan Jelaskan fungsi operasi ADD_priority! Priority queue adalah nilai-nilai null dan kita tidak dapat membuat priority queue objek yang tidak sebanding misalnya setiap kelas tersesuai yang kita miliki menggunakan java sebanding dan komparator interface untuk menyortir objek dan prioritas antrian untuk pengolahan priority elemen itu. Sebutkan perbedaan stack dengan array dalam queue struktur data! Apa yang membedakan konsep kerja keduanya? Berikan contoh dari masing-masing konsep dalam di kehidupan sehari-hari! Dalam struktur data, dikenal sebuah konsep bernama array dan stack. Keduanya tentu sangat berbeda. Stack menggunakan LIFO atau Last In First Out (yang masuk terakhir akan keluar pertama, yang masuk pertama akan keluar terakhir) yang apabila kita menghapus/mengeluarkan data, maka data yang terakhirlah yang akan terhapus/keluar terlebih dahulu. Contoh stack dalam kehidupan sehari-hari adalah proses penurunan batu bata dari mobil. Batu bata yang diambil pasti adalah batu bata yang paling atas, padahal batu bata tersebut diletakkan terakhir. Array menggunakan metode FIFO atau First In First Out (yang masuk terakhir akan keluar terakhir, yang masuk pertama akan keluar pertama) yang apabila kita menghapus/mengeluarkan data, maka data yang pertamalah yang akan terhapus/keluar terdahulu. Contoh array dalam kehidupan sehari-hari adalah saat seseorang mengantre menunggu nomornya dipanggil untuk melakukan pembayaran pajak 5 tahunan di Samsat. PenutupSudah selesai pembahasan mengenai materi queue ini. Secara sederhana, queue artinya sebuah antrian. Semoga kamu sudah memahami apa yang dimaksud dengan queue dan juga contoh queue yang ada di kehidupan sehari-hari. Ikuti kami di Google News untuk dapatkan artikel terbaru! Bagikan ke media sosial: |