Antrean (Queue) - Simulasi Queue Dan Contoh Program Queue Pada Program C++

Queue adalah asal kata dari bahasa inggris yang artinya Antrian, dalam artikel contoh program kali ini saya akan memberikan contoh program dengan konsep antrian dengan bahasa C++ sederhana.

 

Penjelasan Queue 

Antrian dalam kehidupan kita adalah misalnya ketika sedang mengantri pemesanan tiket, setiap antrian memiliki nomor yang urut, siapa saja yang mengantri paling awal mereka akan mendapatkan tiket lebih awal dari antrian lainnya otomatis urutan antrian tersebut keluar dari antrian, itu juga yang disebut dengan konsep FIFO (pertama kali masuk, pertama kali keluar)

Kode Program Queue

Implementasi program antrian ini adalah hanya menggunakan nomor saja seperti yang ada pada antrian  antrian lainya seperti antrian pengambilan obat, pembelian tiket, antrian objek pangkalan dll ketika user menambah antrian maka muncul nomor secara berurut.
Untuk programnya sendiri kita harus membuat beberapa fungsi, variabel, dll. Berikut tahap pembuatan program beserta penjelasan setiap kode programnya :

Mendefinisikan Header Program 

 
Header file yang dibutuhkan sesuai dengan kebutuhan masing-masing, di program ini kita mendefinisikan iostream untuk input, output, conio untuk menggunakan getch() begitu juga stdlib untuk menggunakan system("cls") Dan define MAX untuk memberikan batas queue yang akan kita buat.

Membuat Deklarasi Variable

Variabel nomor menggunakan array yang batas nya sesuai dengan MAX tadi diatas, serta head dan tail adalah bagian awal dan akhir dari antrian.

Awal dari program head dan tail berada pada awal antrian

Membuat fungsi untuk pengecekan antrian (queue)

 

Fungsi diatas untuk pengecekan pada antrian yang sudah dibuat,
  • isEmpty() untuk mengecek apakah antrian kosong atau tidak, karena tail bagian akhir antrian, jika tail = -1 maka antrian jelas kosong. Maka dalam isEmpty ini mengembalikan nilai true
  • isFull untuk mengecek apakah antrian penuh atau tidak karena tail bagian akhir antrian, jika tail = max-1 maka jelas antrian itu sudah penuh sama  dengan max = 1000, maka isFull ini mengembalikan nilai true.
Nanti fungsi diatas akan digunakan pada if dijalankan, jika kondisi f bernilai false maka dilewat

Membuat fungsi untuk memasukkan antrian (queue) kedalam array 

Pada fungsi inilah fungsi seperti isEmpty dan isFull digunakan, Antrian masuk memiliki parameter, jadi nanti di fungsi main no akan dideklarasikan sebagai nomor urut untuk antriannya.
 
Jika isEmpty berniali true berarti nilai tail = -1 jadi masuk ke if, maka nilai head dan tail menjadi 0, agar index array dimulai 0, jadi selanjutnya index menjadi nomer[0]=no; pada index ke 0 akan diisikan nilai no yang ada ada pada parameter fungsi

Jika isEmpty bernilai false berarti tail>-1 jadi masuk ke else yang kemudian nilai tail+1, selanjutnya nomer[tail] = no;

Membuat fungsi untuk mengurangi/menghapus antrian (queue) dalam array

 

Pada fungsi ini juga isEmpty dan isFull digunakan, jika isEmpty bernilai true berarti tail = -1 maka emang antrian tidak ada karena tail bagian akhir antrian.

Jika isEmpty bernilai false akan mengeksekusi bagian else, melakukan perulangan lalu setelah itunilai tail -1, seperti pada implementasi dibawah ini.
if else pada blog dibagian bawah untuk pengecekan saja jika tai = -1 maka head juga disamakan menjadi 1 agar program sesuai yang kita inginkan.

Fungsi untuk mengahpus semua antrian (queue)

 
menghapus semua antrian berarti sama saja dengan menghapus semua yang ada didalam array, cukup dengan memberikan niali -1 pada head dan tali yang artinya mereset semua nilai tail nya.

Fungsi untuk melihat semua antrian (antrian) yang ada

 

Untuk mencetak antrian yang ada menggunaka  for  isi array yang ada dalam nomor dicetak sesuai dengan nilai head dan tailnya kosong

Fungsi Main

 

 

Menu tambah antrian pada choose == 1

Fungsi isFull digunakan untuk mengecek, jika isFull mengembalikan nilai true berarti nilai tail = MAX - 1 (tail = 999) maka jelas antrian sudah penuh,n tidak bisa ditambah lagi, kecuali memanggil antrian selanjutnya.
 
Jika isFull mengembalikan nilai false berarti program akan mengeksekusi else, variabel urut untuk wadah nomer yang otomatis bertambah ketika antrian ditambahkan, sedangkan variabel p sebagai variabel untuk penambahan nomer antrian jadi setiap user memilih tambah antrianmaka p + 1, dan variabel urut inilah untuk dijadikan parameternya fungsi AntrianMasuk(urut);
 
Sedangkan tail disini untuk  menampilkan berapa antrian yang ada sekarang, jadi untuk memberitahukan user harus mengantri berapa antrian lagi.

Menu tambah antrian pada choose ==2

Menampilkan  antrian yang paling awal pada antrian lalu memanggil fungsi Antrian Keluar() untuk menghapus antrian awal tersebut.

Menu tambah antrian pada choose ==3

Memanggil fungsi View yaitu melihat antrian yang ada saat ini

Menu tambah antrian pada choose ==4

Memanggil fungsi Clear untuk menghapus semua antrian

Menu tambah antrian pada choose ==5

Keluar dari blog do wile dan program selesai
 

 
 





Komentar

Postingan populer dari blog ini

Tumpukan (Stack) - Simulasi Stack Dan Contoh Program Stack Pada Program C++