Program untuk proses antrian. dimana antrian cara kerjanya kaya gini:

  • pengantri register dulu
  • setelah register pengantri pertama dapat tempat paling depan
  • pengantri selanjutnya berada dibelakangnya
  • setelah proses pengantri pertama selesai, antrian setelahnya maju
  • sehingga terdapat tempat kosong (paling belakang) untuk pengantri baru

mari mulai ngoding…

pertama bikin dulu preprocessornya, lalu buat fungi utama (int main())

di dalam fungsi utama masukkan skrip ini:

buatAntrian();
while(!isOver)
{
tampilkanMenu();
eksekusiPilihan();
}
system("pause");
return 0;

siapkan sebuah struct

struct orang
{
string nama;
int umur;
};

pada program ini, digunakan 7 buah prosedur.

  • void buatAntrian(); // mengisi antrian kosong sebanyak MAX_ANTRIAN dengan variabel kontrol
  • void tampilkanMenu(); // menampilkan menu yang ada
  • void eksekusiPilihan(); // mengambil pilihan dari user dan eksekusi pilihan tersebut
  • void tambahAntrian(); // menambah antrian paling belakang
  • void kurangiAntrian(); // mengurangi antrian paling depan dan menampilkan orang yang keluar dari antrian
  • void printAntrian(); // menampilkan seluruh antrian yang ada
  • void printOrang(); // menampilkan data satu orang saja

untuk prosedur buatAntrian(), isikan data awal untuk antrian data “null” untuk nama dan -1 untuk umur

untuk prosedur tampilkanMenu(), dibuat pilihan, jika 1 untuk tambah antrian, jika 2 untuk kurangi antrian, jika 3 untuk menampilkan data antrian dan jika 4 untuk keluar dari program

untuk prosedur eksekusi Pilihan(), prosedur ini yang menjalankan hasil dari pilihan tampilkanMenu().

untuk 3 prosedur diatas ga perlu dijelasin yah.. cuma cin-cout doank…. hehe

untuk prosedur tambahAntrian(), untuk tambah antrian. syaratnya antrian yang ditambahkan pada antrian terakhir, jika antrian penuh akan ditampilkan peringatan. nih sourcenya:

int i;
for(i=0; i<MAX_ANTRIAN; i++)
{
//jika ada antrian yang kosong, maka data bisa dimasukkan
if(antrian[i].nama == "null" && antrian[i].umur == -1)
{
cout << "antrian ke-" << i+1 << " > " << endl;
cout << "masukkan nama: ";
cin >> antrian[i].nama;
cout << "masukkan umur: ";
cin >> antrian[i].umur;
break;
}
//jika tidak ada yang kosong, maka tampilkan antrian penuh
else
{
if (i == MAX_ANTRIAN-1)
{
cout << "antrian penuh" << endl;
}
}
}

untuk prosedur kurangiAntrian(), antrian yang dikurangi yaitu antrian terdepan, dan setelah antrian dikurangi, antrian yang dibelakangnya maju ke depan. ni proseesnya:

int i;
//tampilkan data yang akan dihapus
cout << "antrian ke-1 telah dihapus" << endl;
cout << "nama: " << antrian[0].nama << endl;
cout << "umur: " << antrian[0].umur << endl;
//hapus data dengan mengisi "null" dan -1
antrian[0].nama = "null";
antrian[0].umur = -1;

//menggeser antrian ke atas
for(i=0; i<MAX_ANTRIAN-1; i++)
{
antrian[i].nama = antrian[i+1].nama;
antrian[i].umur = antrian[i+1].umur;
}

//mengisi antrian terakhir dengan data kosong

antrian[MAX_ANTRIAN-1].nama = "null";
antrian[MAX_ANTRIAN-1].umur = -1;

untuk prosedur printAntrian(), semua data antrian di print (ga perlu dijelasi juga yah, guga cin-cout soalnya, ditambahn perulangan dikit)

untuk prosedur printOrang(), ga beda jauh sama prosedur printAntrian(), bedanya cuma banyak tampilan yang keluar. yang ini cuma satu.

Untuk source code lengkapnya silahkan download disini: 

  antrian source (4.9 KiB, 350 hits)