antrian bank

19
 Pengertian Queue Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehiduypan se hari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket. Antrian dapat di implementasikan menggunakan Array, disini dijelaskan ada 10 antrian yang mana 10 antrian tersebut dapat diibaratkan sebagai array berindek 10. Dalam antrian ini menggunakan pola FIFO, yaitu first in first out yang artinya pembeli tiket yang pert ama dilayani terlebih dahulu dan begitu seterusnya sampai habis. Macam-macam Operasi Queue dengan L inear Array: y IsEmpty Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong. y IsFull Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh. y EnQueue Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue. y DeQueue Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke  posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya. y Clear Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue. Program antrian Bank #include <stdio> #include <conio> #define MAX 6 #include<string.h> typedef struct{ int data[MAX]; int head; int tail; } Queue; Queue antrian; void Create(){ antrian.head=antrian.tail=-1; }

Upload: iroyart

Post on 13-Jul-2015

755 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 1/19

 

Pengertian Queue Jika diartikan secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasidari pembuatan double linked list yang cukup sering kita temui dalam kehiduypan sehari-hari,misalnya saat Anda mengantri di loket untuk membeli tiket.Antrian dapat di implementasikan menggunakan Array, disini dijelaskan ada 10 antrian yang

mana 10 antrian tersebut dapat diibaratkan sebagai array berindek 10. Dalam antrian inimenggunakan pola FIFO, yaitu first in first out yang artinya pembeli tiket yang pertama dilayaniterlebih dahulu dan begitu seterusnya sampai habis.Macam-macam Operasi Queue dengan Linear Array:

y  IsEmptyFungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisidata. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1menandakan bahwa queue masih kosong.

y  IsFullFungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias

menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlahmaksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.y  EnQueue

Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.y  DeQueue

Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini seringdisebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa denganelemen yang terletak di belakangnya.

y  Clear Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan

mengeluarkan semua elemen tersebut satu per satu hingga queue kosong denganmemanfaatkan fungsi DEQueue.

Program antrian Bank 

#include <stdio>#include <conio>#define MAX 6

#include<string.h>typedef struct{int data[MAX];int head;int tail;} Queue;Queue antrian;void Create(){antrian.head=antrian.tail=-1;}

Page 2: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 2/19

 

 int IsEmpty(){if(antrian.tail==-1)return 1;else

return 0;}

int IsFull(){if (antrian.tail==MAX-1) return 1;else return 0;}

//fungsi memasukkan data

void Enqueue(int data){

if(IsEmpty()==1){antrian.head=antrian.tail=0;antrian.data[antrian.tail]=data;

 printf("\t Silahkan Masuk !! \n",antrian.data[antrian.tail]);void Tampil();{if(IsEmpty()==0){for(int i=antrian.head;i<=antrian.tail;i++){ printf("%d ",antrian.data[i]);}

}else printf("data kosong!");};}elseif(IsFull()==0){antrian.tail++;antrian.data[antrian.tail]=data; printf("\t Silahkan Masuk !! \n",antrian.data[antrian.tail]);}

}

int Dequeue(){int i;int e = antrian.data[antrian.head];for(i=antrian.head;i<=antrian.tail-1;i++){antrian.data[i]= antrian.data[i+1];}antrian.tail--;return e;

Page 3: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 3/19

 

}

void clear(){antrian.head=antrian.tail=-1;

 printf("DataC

lear");}void Tampil(){ int jum; jum=0;

if(IsEmpty()==0){for(int i=antrian.head;i<=antrian.tail;i++){ jum++;

 printf("\n| %d |",antrian.data[i]);}

 printf("\njumlah yang mengantri saat ini %i orang",jum);}else printf("Data Kosong!\n");}

//sebagai nasabahvoid nasabah(){int data;char lagi;do{clrscr(); printf("\t+=================================+\n");

 printf("\t| menu nasabah |\n"); printf("\t+=================================|\n"); printf("\t| tekan (a) untuk masukkan data |\n"); printf("\t| tekan (b) melihat data antrian |\n"); printf("\t| tekan (x) keluar |\n"); printf("\t+=================================|\n"); printf("pilihan : "); scanf("%c",&lagi);if((lagi=='x') || (lagi=='X')){ printf("terima kasih\n");

 break;

}

switch(lagi){case 'a': printf("masukkan data: "); scanf("%d",&data);Enqueue(data); break;

Page 4: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 4/19

 

case 'b': Tampil(); break;

}getch();} while(lagi !='x');

getche();}

//memasukkan passwordvoid password(){char nama[20], id[10], password[4];int i;{clrscr();

atas:clrscr(); printf("\t\t+===============================================+\n"); printf("\t\t| S E L A M A T D A T A N G |\n"); printf("\t\t| jika anda admin dari teller |\n"); printf("\t\t|Silahkan masukkan User Name & 3 digit Password |\n"); printf("\t\t+===============================================+\n"); printf("\t\t UserName : ") ; cin>>nama; printf("\t\t No. Identitas : "); cin>>id; printf("\t\t Password : ") ;for(i=0; i<=2; i++)

{password[i]=getche(); printf("\bX");} printf("\n\t\t+=============================================+\n");if (strcmp(password,"aaa")==0){ printf("\n\n\t\t Anda Masuk Sebagai TEllER\n"); printf("\t\t User : %s \n",nama); printf("\t\t No. Identitas : %s\n",id); printf("\n\n\t\tTekan Sembarang tombol untuk ke menu teller..!");goto bawah;}else

{ printf("\t\t\tpassword salah bro...hahaaa\n"); printf("\t\tketik sembarang tombol untuk kembali ke menu: ");goto atas;

} bawah:getch();

Page 5: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 5/19

 

}}

//void teller void teller()

{char menu; password();do{clrscr(); printf("\t\t+=================================+\n"); printf("\t\t| menu pilihan untuk TELLER |\n"); printf("\t\t+=================================+\n"); printf("\t\t| tekan (a) untuk menghapus data |\n"); printf("\t\t| tekan (b) melihat data antrian |\n"); printf("\t\t| tekan (c) untuk mereset |\n"); printf("\t\t| tekan (x) untuk keluar |\n");

 printf("\t\t+=================================+\n"); printf("pilihan : "); scanf("%c",&menu);if((menu=='x') || (menu=='X')){ printf("terima kasih\n");

 break;}

switch(menu){case 'a': printf("Elemen yang keluar : %d",Dequeue());

 break;case 'b': Tampil(); break;case 'c': clear(); break;}getch();} while(menu !='x');

}

void main(){

char pil;

Create();do{clrscr();fflush(stdin); printf("\t\t+=====================================+\n");

Page 6: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 6/19

 

 printf("\t\t| Bank Republik Indonesia|\n"); printf("\t\t| jalan Menukan |\n"); printf("\t\t| Yoggyakarta |\n"); printf("\t\t+=====================================+\n"); printf("\t\t| tekan (n) untuk Nasabah |\n");

 printf("\t\t| tekan (t) untuk Teller |\n"); printf("\t\t| tekan (k) keluar dari program |\n"); printf("\t\t+=====================================+\n"); printf("pilihan : "); scanf("%c",&pil);if((pil=='k') || (pil=='k')){ printf("terima kasih"); break;}

switch(pil){

case 'n': nasabah(); break;case 't': teller(); break;

}

}while(pil!='k');}

Program Selection Sort dengan Maximum dan Minimum 

01:34 Lukmanquw  No comments 

#include <iostream.h>#include <conio.h>

int main(){int a[10];

int cur,z,temp,cur2,temp2;

cout<<"Banyak Data: ";cin>>z;cout<<endl;for(int i=0;i<z;i++){cout<<"Data ["<<i+1<<"]: ";cin>>a[i];

Page 7: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 7/19

 

}cout<<"\nData Awal :";for(int i=0;i<z;i++)cout<<a[i]<<" ";cout<<endl;

for(int i=0;i<z;i++){cur=i;cur2=z;for(int k=i+1;k<z;k++){if(a[cur]>a[k]){cur=k;}}for(int t=z;t<z;t--){if(a[cur2]<a[t]){cur2=t;

}temp2=a[t];a[t]=a[cur2];a[cur2]=temp2;}temp=a[i];a[i]=a[cur];a[cur]=temp;}cout<<"\nData Akhir :";for(int i=0;i<z;i++){

cout<<" "<<a[i];}

cout<<endl;

getch ();return 0;}

Penjelasannya:Untuk proses dengan minimum dapat dilihat difor(int k=i+1;k<z;k++){if(a[cur]>a[k]){cur=k;...sedangkan untuk pengurutan dengan cara maximum dapat dilihat di

Page 8: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 8/19

 

for(int t=z;t<z;t--){if(a[cur2]<a[t]){cur2=t;...intinya jika menggunakan teknik minimum kita memulai pembandingan dari kiri (array pertama)sedangkan untuk maksimum memulai pembandingan dari kanan.....

Coding Antrian Bank Dengan Notepad++ 

Belum lama ini saya mendapat tugas dari kampus untuk membuat sebuah program antrian bank dengan menggunakan notepad++ dan metode Queue. Setelah proses panjang akhirnya tugas saya pun bisa kelar dan saya bisa mengumpulkan tugas tersebut tepat waktu. Dan semoga nilai saya besok bisa keluar dan hasilnya memuaskan (amin). Kali ini saya akan berbagi coding tersebutkepada temen2, semoga bisa bermanfaat.

Seperti yang kita ketahui, Queue adalah kumpulan data dengan penambahan data hanya melaluisatu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head). Queue ini

 bersifat FIFO(First In First Out), maksudnya data yang pertama masuk akan keluar terlebihdahulu dan data yang terakhir masuk akan keluar terakhir.

Dan berikut ini adalah coding untuk membuat antrian bank 

#include#include#define MAX 8typedef struct{int antri[MAX];int head;

int tail;} Queue;Queue antrian;void Create(){antrian.head=antrian.tail=-1;}

Page 9: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 9/19

 

int IsEmpty(){if(antrian.tail==-1)return 1;elsereturn 0;

}

int IsFull(){if(antrian.tail==MAX-1) return 1;else return 0;}

void Enqueue(int antri){if(IsEmpty()==1){antrian.head=antrian.tail=0;antrian.antri[antrian.tail]=antri;

 printf("%d masuk!",antrian.antri[antrian.tail]);} elseif(IsFull()==0){antrian.tail++;antrian.antri[antrian.tail]=antri; printf("%d masuk!",antrian.antri[antrian.tail]);}}

int Dequeue(){int i;

int e = antrian.antri[antrian.head];for(i=antrian.head;i<=antrian.tail-1;i++){antrian.antri[i] = antrian.antri[i+1];}antrian.tail--;return e;}void Clear(){antrian.head=antrian.tail=-1; printf("data clear");}

void Tampil(){if(IsEmpty()==0){for(int i=antrian.head;i<=antrian.tail;i++){ printf("%d ",antrian.antri[i]);}}else printf("data kosong!\n");}void main() {

Page 10: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 10/19

 

int pil;int antri;Create();do{clrscr();

 printf("1. masuk antrian\n"); printf("2. keluar antian\n"); printf("3. Tampil\n"); printf("4. Clear\n"); printf("5. exit\n"); printf("Pilihan = ");scanf("%d",&pil);switch(pil){case 1: printf("masuk antrian ke ");scanf("%d",&antri);Enqueue(antri); break;

case 2: printf("keluar antrian yang ke : %d",Dequeue()); break;case 3: Tampil(); break;case 4: Clear(); break;}getch();} while(pil!=5);}

Queue (antrian) dalam C++ 

07:33 Blog Tugas dan Informasi  No comments Queue merupakan kumpulan data yang penambahan elemennya hanya bisa dilakukan pada sisi belakang dan penghapusannya hanya bisa dilakukan pada sisi depan. Konsep utamanya berkebalikan dari stack (tumpukan), yaitu First In First Out. Contoh : orang antri beli tiket ke bioskop, Mahasiswa antri bayar KRS atau pun nasabah menganti di bank. Implementasi antrianmenggunakan dua pointer, yaitu pointer yang menunjukkan elemen terdepan dan elementerakhir.

Operasi antrian

1. Menambah elemen baru pada bagian belakang antrian2. Menghapus elemen baru pada bagian depan antrian3. Melakukan pengecekan apakah antrian kosong. tidak mungkin menghapus antrian yang sudahkosong.

 Nah, pada program ini melakukan kalkulasi antrian FIFO (Firs In First Out). Namun dalam

Page 11: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 11/19

 

 program ini tidak menggunakan Function untuk memisahkan proses.

Cara kerja dari program ini adalah dengan menampilkan 5 menu pilihan diantaranya adalah :

Push

PopTampilkan DataBersihkan DataKeluar Program

dengan definisi sebagai berikut :

Push

Memasukkan satu data ke dalam proses antrian. Bila antrian penuh maka akan ditampilkansebuah peringatan bahwa data antrian penuh. Bila antrian kosong maka akan diminta

memasukkan 1 data untuk menjalani antrian.

Pop

Mengeluarkan satu data dari antrian. Data yang dikeluarkan adalah data yang pertama kalidimasukkan. Dan untuk antrian sebelumnya akan menempati antrian yang di keluarkan. Bila datadalam antrian kosong, maka akan ditampilkan peringatan bahwa data antrian kosong.

Tampilkan Data

Digunakan untuk menampilkan semua data dalam antrian.

Bersihkan Data

Digunakan untuk membersihkan data / menghapus semua data yang ada di dalam antrian. Biladata dalam antrian kosong, maka akan ditampilkan peringatan bahwa data kosong. Bila akanmelakukan pembersihan data maka akan ditampilkan peringatan apakah yakin akan menhapus.Bila dipilih ³Y´ maka data tersebut semua akan dihapus, bila memilih ³N´ maka akandikembalikan ke pilihan menu. Berikut syntax programnya dalam bahasa C++:#include<iostream>

using namespace std;

int main(){int antrian[]={0,0,0,0,0};int menu, properties;char konfirmasi;

cout << "================== MENU PILIHAN ANTRIAN FIFO==================" << endl;

Page 12: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 12/19

 

cout << "== 1. Push / Masukkan Data ==" << endl;cout << "== 2. Pop / Keluarkan Data ==" << endl;cout << "== 3. Tampilkan Data ==" << endl;cout << "== 4. Bersihkan Data ==" << endl;cout << "== 5. Keluar Program ==" << endl;

cout <<"===============================================================" <<endl;

cout << "Syarat dan Ketentuan Berlaku : " << endl;cout << "- Data Maksimal 5 " << endl;cout << "- Data Masukan Harus Berupa Angka selain 0 (nol) " << endl;cout <<

"===============================================================" <<endl;

 properties = 0;

while (properties == 0){cout << "Silahkan pilihan menu = ";cin >> menu;switch (menu) {

case 1 : if(antrian[0] != 0){cout << "Maaf data antrian penuh, Anda t idak bisa melakukan PUSH" << endl;cout <<

"==========================================================" <<endl;} else {

for (int an=4 ; an>=0 ; an--){

if (antrian[an] == 0){cout << "Masukkan Angka = ";cin >> antrian[an];cout <<

"==========================================================" <<endl; break;

}}

} break;

case 2 : if(antrian[4] == 0){

cout << "Maaf data antrian kosong, Anda tidak bisa melakukan POP" << endl;cout <<"==========================================================" <<endl;

} else {int dataAkhir;dataAkhir = antrian[4];for (int an=4 ; an>=1 ; an--){

antrian[an] = antrian[an-1];

Page 13: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 13/19

 

}antrian[0] = 0;cout << "Data yang dikeluarkan adalah = " << dataAkhir <<endl;cout <<

"==========================================================" <<endl;

} break;case 3 : cout << "Data yang ada dalam antrian adalah = " << endl;

for(int as=0 ; as<=4 ; as++){cout << "Data ke-" << as;cout << " adalah = " << antrian[as] << endl;

}cout <<

"==========================================================" <<endl; break;

case 4 : if(antrian[4] == 0){

cout << "Maaf data antrian kosong, Tidak ada data yang akan dihapus" <<endl;cout <<

"==========================================================" <<endl;} else {

cout << "Data yang ada dalam antrian akan dihapus, Apakah yakin (Y/N) = "<< endl;

cin >> konfirmasi;

if (konfirmasi == 'Y' || konfirmasi == 'y'){for(int as=0 ; as<=4 ; as++){

antrian[as] = 0;}cout << "Data telah terhapus !" << endl;cout <<

"==========================================================" <<endl;}

} break;

case 5 : properties = 1;cout << "" << endl;cout << " ========= $$$$$$$$$$$$$$$$$$$$$$$$$$ =========" << endl;

cout << " === ===" << endl;cout << "=== Anda telah keluar dari program antrian FIFO ===" << endl;cout << "=== Terima Kasih ===" << endl;cout << " === ===" << endl;cout << " ========= $$$$$$$$$$$$$$$$$$$$$$$$$$ =========" << endl; break;

default : cout << "Maaf pilihan Anda tidak ada dalam Menu" <<endl; break;

Page 14: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 14/19

 

}}return 0;

}

Antrian (Queue) dapat diartikan sebagai suatu kumpulan data yang seolah-olahterlihat seperti ada data yang diletakkan di sebelah data yang lain seperti pada gambar 01.Pada gambar, data masuk melalui lorong di sebelah kanan dan masuk dari terowongansebelah kiri. Hal ini membuat antrian bersifat FIFO (First In First Out), beda denganstack yang berciri LIFO.

Antrian dapat dibuat baik dengan array maupun dengan struct. Pada pembuatanantrian dengan array, antrian yang disajikan bersifat statis. Ini disebabkan oleh jumlah

maksimal array sudah ditentukan sejak deklarasi awal

QUEUE DENGAN LINIEAR ARRAY - Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar diujung Satunya- Sehingga membutuhkan variabel Head dan Tail

Create()  Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head dan Tail = -1

IsEmpty() 

Page 15: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 15/19

 

Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head, karena Head adalah tanda untuk kepalaantrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian

kebelakang, yaitu menggunakan nilai Tail

IsFull()  Untuk mengecek apakah Antrian sudah penuh atau belum

Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1adalah batas elemen array pada C) berarti sudah penuh

Enqueue(data)  Untuk menambahkan elemen ke dalam Antrian, penambahan elemenselalu ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail dengan caraincrement counter Tail

Dequeue()  Digunakan untuk menghapus elemen terdepan/pertama dari Antrian Dengan cara mengurangi counter Tail dan menggeser semua elemenantrian kedepan. Penggeseran dilakukan dengan menggunakan looping

Page 16: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 16/19

 

 

Clear()  Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail danHead = -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapusarraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1sehingga elemenelemen Antrian tidak lagi terbaca

Print()  Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari head s/d tailPerbedaan antara stack dan queue terdapat pada aturan penambahan dan penghapusan elemen. Pada stack, operasi penambahan dan penghapusan elemen

dilakukan di satu ujung. Elemen yang terakhir kali dimasukkan akan berada paling dekatdengan ujung atau dianggap paling atas sehingga pada operasi penghapusan, elementeratas tersebut akan dihapus paling awal, sifat demikian dikenal dengan LIFO. Padaqueue, operasi tersebut dilakukan di tempat yang berbeda. Penambahan elemen selaludilakukan melalui salah satu ujung, menempati posisi di belakang elemen-elemen yangsudah masuk sebelumnya atau menjadi elemen paling belakang. Sedangkan penghapusanelemen dilakukan di ujung yang berbeda, yaitu pada posisi elemen yang masuk palingawal atau elemen terdepan. Sifat yang demikian dikenal dengan FIFO.

contoh program:

#include <iostream.h>#include <stdio.h>#include <conio.h>#define MAX 1028typedef struct{int data[MAX];

Page 17: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 17/19

 

int head;int tail;} Queue;

 

Queue antrian;void Create()

{antrian.head=antrian.tail=-1;}int IsEmpty()

 

{if(antrian.tail==-1)return 1;elsereturn 0;}int IsFull()

{if(antrian.tail==MAX-1) return 1;else return 0;}void Enqueue(int data){if(IsEmpty()==1){antrian.head=antrian.tail=0;antrian.data[antrian.tail]=data;cout<<"Data "<<antrian.data[antrian.tail]<<"

Masuk!!";}else if(IsFull()==0){antrian.tail++;antrian.data[antrian.tail]=data;cout<<"Data "<<antrian.data[antrian.tail]<<"Masuk!!";}else if (IsFull() == 1){

cout<<"Ruangan Penuh!!"<<endl;cout<<data<<" Ga Bisa Masuk!!";}}29void Dequeue(){int i;

Page 18: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 18/19

 

int e = antrian.data[antrian.head];if (antrian.tail == -1){

 

cout<<"Ga Ada Antrian... Data Kosong"<<endl;}

else{for(i=antrian.head;i<=antrian.tail-1;i++){

 

antrian.data[i] = antrian.data[i+1];}antrian.tail--;cout<<"Data yang Keluar lebih dulu = "<<e<<endl;}}void Clear()

{antrian.head=antrian.tail=-1;cout<<"Duh Lega, Ruangan Jadi Ga Sumpek...."<<endl;cout<<"Data Clear...";}void Tampil(){if(IsEmpty()==0){cout<<"Data Dalam Antrian"<<endl;cout<<"==========================="<<endl;

cout<<endl;for(int i=antrian.head;i<=antrian.tail;i++){cout<<"| "<<antrian.data[i]<<" |";}}else cout<<"Ga Ada Antrian... Data Kosong";}void main(){int pil;

int data;Create();do{clrscr();cout<<"Implementasi Antrian dengan Struct"<<endl;cout<<"=================================="<<endl;cout<<endl;

Page 19: Antrian Bank

5/12/2018 Antrian Bank - slidepdf.com

http://slidepdf.com/reader/full/antrian-bank 19/19

 

30cout<<"1. Enqueue(Push)"<<endl;cout<<"2. Dequeue(PoP)"<<endl;

 

cout<<"3. Print"<<endl;cout<<"4. Clear"<<endl;

cout<<"5. Exit"<<endl;cout<<"Pilihan Anda= "; cin>>pil;switch(pil){

 

case 1:{cout<<endl;cout<<"Data = "; cin>>data;Enqueue(data); break;}

case 2:{cout<<endl;Dequeue(); break;}case 3:{cout<<endl;Tampil(); break;

}case 4:{cout<<endl;Clear(); break;}}getch();} while(pil!=5);}