Wednesday, November 30, 2011

Program Antrian [ Queue ] dalam C++

Antrian (queue) adalah kumpulan data dimana penambahan data dilakukan di belakang (rear) dan penghapusan dilakukan di depan (front). Misal saja ada satu loket antrian dan ternyata satu loket antrian tersebut sangat penuh dan untuk mengatasi kepenuhan tersebut di tambahkan lagi satu loket agar antrian dapat berjalan dengan tertib.

Dalam kasus ini kita diminta untuk membuat sebuah program antrian dalam C++ yang dalam antrian tersebut isinya ada dua loket antrian. Sebagai contoh kita mempunyai 6 buah data, berarti jika antrian tersebut di bagi menjadi dua loket maka satu loket isinya 3 buah data.

Berikut ini adalah program yang saya buat dalam C++.


/* 
 * File:   main.cpp
 * Author: candra dwi waskito
 *
 * Created on November 30, 2011, 10:42 AM
 */


#include <cstdlib>
#include <iostream>


using namespace std;


class queue{
   public:
         queue();
         void enqueue();
         void dequeue();
         void cetak();
   private:
         int antrian[30];
         int antrian1[15];
         int antrian2[15];
         int temp1[15];
         int temp2[15];
         int data, data2;
};


   queue::queue(){
    chanchan:
        cout << "=============================" << endl;
        cout << "Pembagian Antrian menjadi dua" << endl;
        cout << "=============================" << endl << endl;
      cout<<"Silahkan Masukkan Jumlah Antrian : ";
      cin>>data;
      if(data%2==0){
      for(int i=1;i<=data;i++){
          cout<<"Masukkan antrian ke - "<<i<<" : ";
          cin>>antrian[i];
      }
      data2 = data/2;
         }
      else goto chanchan;
    }


   void queue::dequeue(){
      for(int j=1;j<=data2;j++){
         temp1[j]=antrian[j];
      }
      for(int k=(data2+1);k<=data;k++){
         temp2[k-data2]=antrian[k];
      }
    }


   void queue::enqueue(){
      for(int i=1;i<=data2;i++){
         antrian1[i]=temp1[i];
         antrian2[i]=temp2[i];
      }
    }


   void queue::cetak(){
       
       cout << "\nPembagian Antrian :";
      cout<<"\nSemua Antriannya adalah: ";
      for(int i=1;i<=data;i++){
         cout<<antrian[i]<<" ";
      }
      cout << endl;
      cout<<"\nAntrian yang pertama : ";
      for(int i=1;i<=data2;i++){
         cout<<antrian1[i]<<" ";
      }
      cout << endl;
      cout<<"\nAntrian yang kedua   : ";
      for(int i=1;i<=data2;i++){
         cout<<antrian2[i]<<" ";
      }
    }


int main(int argc, char** argv) {


    queue candra;
    candra.dequeue();
    candra.enqueue();
    candra.cetak();
    return 0;
}

Maka setelah di compile tampilan awalnya adalah seperti yang ada pada gambar di bawah ini :

Di tampilan awal ini kita disuruh memasukkan berapa jumlah data antrian, disini saya memasukkan 4 buah data ke dalam antrian.

Dan saya memasukkan antrian pertama dengan angka 1, antrian kedua dengan angka 2, antrian ketiga dengan angka 3, dan yang terakhir antrian ke keempat dengan angka 4. 

Dan hasil dari pembagian tersebut adalah, pada antrian yang pertama diisi dengan angka 1 dan 2 dan antrian yang kedua diisi dengan angka 3 dan 4, begitulah sedikit penjelasan antrian beserta program antrian yang sangat sederhana. Selamat mencoba :D

0 comments:

Post a Comment

 
© Copyright 2011 Candra Dwi Waskito
Theme by Yusuf Fikri