Contoh Program Queue (Program Antrian) C++ Dan Penjelasannya ~ Coding IsmyNR - Cara Dan Contoh Pemrograman

Contoh Program Queue (Program Antrian) C++ Dan Penjelasannya

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.

Contoh Program Queue c++ dan penjelasan

Antrian (QUEUE)

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

Kode Progam Antrian (QUEUE)

Implementasi program antrian ini adalah hanya menggunakan nomor saja seperti yang ada pada antrian antrian lainya seperti antrian pengambilan obat, pembelian tiket, antrian ojek pangkalan dll ketika user menambah antrian maka muncul nomor secara berurut.

Untuk progamnya sendiri kita harus membuat beberapa fungsi, variabel, dll. berikut tahap pembuatan program beserta penjelasan setiap kode progamnya :

Mendefinisikan header program

#include <iostream>
#include <conio.h> //MENGGUNAKAN GETCH()
#include <stdlib.h> //MENGGUNAKAN SYSTEM("CLS)
#define MAX 1000 //MAKSIMAL NOMOR ANTRIAN

using namespace std;
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 mengguanakan system("cls") Dan define MAX untuk memberikan batas queue yang akan kita buat

Membuat deklarasi variabel 

int nomer[MAX];
int head=-1;
int tail=-1;
Variabel nomor menggunakan array yang batas nya sesuai dengan MAX tadi diatas, serta head dan tail adalah bagian awal dan akhir dari antrian.
implementasi Program Queue c++ dan penjelasan
Awal dari program head dan tail berada pada awal antrian

Membuat fungsi untuk pengecekan antrian (queue)

bool IsEmpty(){ // FUNGSI UNTUK MENUNJUKAN JIKA TAIL = -1
   if(tail == -1){
       return true;
   }else{
       return false;
   }
}
bool IsFull(){ // FUNGSI UNTUK MENUNJUKAN JIKA TAIL = MAX-1
   if(tail == MAX-1){
       return true;
   }else{
       return false;
   }
}
Fungsi diatas untuk pengecekan pada antrian yang sudah dibuat,
  • isEmpty() untuk mengecek apakan 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 penuuh sama dengan max = 1000, maka isFull ini mengembalikan nilai true 
Nanti fungsi diatas akan digunakan pada if else, jika kondisi if berniilai true maka if dijalankan, jika kondisi if bernilai false maka dilewat 

Membuat fungsi untuk memasukan antrian (queue) kedalam array

void AntrianMasuk(int no){
    if (IsEmpty()){
        head=tail=0;
    }else {
        tail++;
    }
    nomer[tail]=no;
}
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 bernilai true berarti nilai tail = -1 jadi masuk ke if, maka nilai head dan tail menjadi 0, agar index array dimulai dari 0, jadi selanjutnya index menjadi nomer[0]=no; pada index ke 0 akan diisikan nilai no yang ada pada parameter fungsi

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

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

void AntrianKeluar(){
    if(IsEmpty()){
        cout<<"Antrian sudah kosong ! ";
        getch();
    }else {
        for(int a=head;a<tail;a++){
            nomer[a]=nomer[a+1];
        }
        tail--;
        if(tail == -1){
            head = -1;
        }
    }
}
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 itu nilai tail - 1, seperti pada implementasi dibawah ini
implementasi Program Queue c++ dan penjelasan
if else pada blok dibagian bawah untuk pengecekan saja jika tail = -1 maka head juga disamakan menjadi -1 agar program sesuai yang kita inginkan.

Fungsi untuk menghapus semua antrian (queue) 

void Clear(){
     head=tail=-1;
}
menghapus semua antrian berarti sama saja dengan menghapus semua yang ada didalam array, cukup dengan memberikan nilai -1 pada head dan tail yang artinya mereset semua nilai tail nya.

Fungsi untuk melihat semua antrian (antrian) yang ada

void View(){
     if(IsEmpty()){
         cout<<"Antrian kosong ! ";

     }else {
         system("cls");
         for(int a=head;a<=tail;a++){
              cout << "==============================="
                   << "\n >> No. Antri : [" << nomer[a] << "]"
                   << "\n==============================="<< endl;
         }
     }
}
Untuk mencetak antrian yang ada menggunakan perulangan for , isi array yang ada dalam nomer dicetak sesuai dengan nilai head dan tail nya

Fungsi main

int main(){
    system("color 79");
    int choose, p=1, urut; //deklarasi untuk pilihan user dan nomer urut antrian
    do{
        system("cls");
        cout << "\n\n===== PROGRAM ANTRIAN C++ ====="
             << "\n==============================="
             << "\n|1. Tambah Antrian            |"
             << "\n|2. Panggil Antrian           |"
             << "\n|3. Lihat daftar antrian      |"
             << "\n|4. Format                    |"
             << "\n|5. Exit                      |"
             << "\n===============================";
        cout << "\nChoose ! "; cin >> choose;
        cout << "\n\n";
        if(choose == 1){
            if(IsFull()) {
                cout<<"Antrian sudah penuh, mohon tunggu beberapa saat lagi ";
            }
            else{
                urut=p;
                AntrianMasuk(urut);
                cout << "---------------------------------" << endl;
                cout << "|          NO. ANTRIAN          |" << endl;
                cout << "|               " << p << "              ||" << endl;
                cout << "---------------------------------" << endl;
                cout << "|       Silahkan Mengantri      |" << endl;
                cout << "|      Menunggu " << tail << " Antrian      ||" << endl;
                cout << "---------------------------------" << endl;
                p++;
            }
        }
        else if(choose == 2){
            cout << "=================================" << endl;
            cout << "No. Antri : [" << nomer[head] << "]";
            cout << "\n=================================" << endl;
            AntrianKeluar();
            cout << "Silahkan Dipanggil !" << endl;
        }
        else if(choose == 3){
            View();
        }
        else if(choose == 4){
            Clear();
            cout<<"Antrian dikosongkan ! ";
        }
        else if(choose == 5){
        }
        else{
            cout << "Masukan anda salah ! \n"<< endl;
        }
        getch();
    }while(choose!=5);
}
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, tidak bisa ditambahkan lagi, kecuali memaanggil antrian selanjutnya.

Jika isFull mengembalikan nilai false brrti 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 antrian maka 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

Untuk melihat lengkap code program queue klik dibawah


Menu tambah antrian pada choose == 2
Menampilkan antrian yang paling awal pada antrian lalu memanggil fungsi AntrianKeluar() 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

do while : pernyataan perulangan, while sebagai pengecualian jika kondisi dalam while bernilai true maka blok perulangan do while berhenti

Menu tambah antrian pada choose == 5
Keluar dari blok do while dan progam selesai

tag:
contoh program antrian c++
contoh program antrian pemesanan tiket c++
contoh program queue c++ sederhana
implementasi queue di pemrograman c++
contoh program c++ queue
progam queue c++ antrian parkir
penjelasan kode program queue c++
contoh program antrian c++ dengan
logoblog

Share :

3 comments:

Berkomentarlah jika ada pertanyaan, Kesan pembaca atau saran yang membangun blog ini.
> Gunakan akun google dan ceklis kolom (Notify Me) agar mendapat notifikasi balasan komentar

 
Back to Top