Cari Blog Ini

Kamis, 14 Maret 2019

Pengertian & contoh program QUEUE C++


QUEUE pada C++

A. Pengertian Queue
       Queue (Antrian) adalah suatu kumpulan data yang mana penambahan data / elemen hanya dapat dilakukan pada sisi belakang sedangkan penghapusan / pengeluaran elemen dilakukan pada sisi depan. Jenis struktur data antrian sering digunakan untuk menstimulasikan keadaan dunia nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Misal : antrian registrasi mahasiswa, tiket kereta api dan lain-lain. Berbeda dengan stack, prinsip yang digunakan dalam antrian adalah FIFO ( First In First Out ). Dengan kata lain, urutan keluar elemen akan sama dengan urutan masuknya.
       Dalam antrian tidak semuanya dilakukan secara FIFO murni, contoh yg relevan dalam bidang komputer adalah Time-sharing Computer System, dimana ada sejumlah pemakai (user) yg menggunakan sistem tersebut secara serempak. Karena sistem ini biasanya menggunakan processor, dan sebuah memory utama. Jika processor sedang dipakai oleh seorang user, maka user yang lain harus antri sampai gilirannya. Antrian ini tidak akan dilayani secara FIFO murni tetapi biasanya didasarkan pada suatu prioritas tertentu. Antrian yang memasukkan unsur prioritas dinamakan dengan ANTRIAN PRIORITAS ( PRIORITY QUEUE ).
       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.
B. Deklarasi Queue dalam program
Sebuah queue di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut struct. Sebuah struktur data dari sebuah queue setidaknya harus mengandung dua tiga variabel, yakni variabel HEAD yang akan berguna sebagai penanda bagian depan antrian, variabel TAIL yang akan berguna sebagai penanda bagian belakang antrian dan ARRAY DATA dari yang akan menyimpan data-data yang dimasukkan ke dalam queue tersebut. Sebagai contoh kita akan membuat queue dengan data maksimal sebanyak 7 data :

Deklarasi dari program nya : 
1.  IsEmpty

Sama seperti di Stack, IsEmpty berguna untuk mengecek apakah queue kosong atau tidak.  Indikator bahwa queue kosong adalah nilai dari head dan tail bernilai -1.  Sehingga kita tinggal buat fungsi nya sebagai berikut :
2.  IsFull
Operasi IsFull digunakan untuk mengecek apakah queue sudah penuh atau belum.  Indikator kalau queue penuh adalah nilai tail = max – 1.  Mengapa? karena nilai maksimal pada array yang mempunyai index 7 pada saat diakses akan mempunyai nilai maksimal 6.  Sehingga fungsi yang terbentuk seperti ini :

3.  Enqueue
Enqueue digunakan untuk memasukkan data kedalam queue.  Sama seperti push dalam stack. Sebelum memasukkan data kedalam antrian, kita harus mengecek terlebih dahulu apakah queue / antrian sudah penuh atau belum.  Kalau belum maka kita harus mengecek apakah head sudah berada pada nilai 0 atau belum.  Ini sangat penting karena nilai head tidak akan lebih dari 0.  PERLU DIPERHATIKAN !  Yang akan bergerak terus adalah tail, sedangkan head hanya penunjuk urutan paling depan, sehingga nilainya tidak pernah lebih dari 0.  Kecuali antrian kosong, maka posisi head dan tail akan kembali menjadi-1.
 

4.  Dequeue
Kebalikan dari fungsi enqueue, dequeue digunakan untuk mengambil data yang sudah masuk di urutan pertama. Sehingga kita tinggal membaca data yang ada di posisi head.  Nah inilah fungsi dari head.  Jangan lupa kita cek dulu apakah queue kosong atau tidak.  Tapi jika ada isinya, setelah data diambil, data dibelakangnya digeser ke depan.
5.  Clear
Operasi clear digunakan untuk menghapus data yang ada di dalam queue.  Caranya cukup merubah nilai pada head dan tail menjadi -1.  Tidak perlu diperhatikan data yang ada di dalam array.  Nantinya data data tersebut juga akan ditimpa.


6.  View
Operasi ini digunakan untuk melihat data yang ada didalam queue.  Caranya adalah dengan membaca data pada index yang terdapat diantara head sampai tail.
C.  Contoh program Queue & Hasil running nya
 
 
 
Hasil Running nya :
 



DAFTAR PUSTAKA


RIDHO RAMADHAN
1801301095

TERIMAKASIH!!!
Kunjungi blog kita yang lain gaesss!!!!




1 komentar: