Inilah contoh membuat program antrian dan sequential searching yang dibuat dengan bahasa C++ dengan menu untuk enqueue, dequeue, tampilkan hasilnya, clear, pencarian, dan keluar
#include<stdio.h>
#include<conio.h>
#define MAX 10 // mendefinisikan bahwa maksimal antrian adalah 10
//mendefinisikan tipe data bentukan antrian
typedef struct{
int data[MAX];
int head;
int tail;
} antrian;
// antri akan dikenali sebagai antrian
antrian antri;
void Create(){
antri.head=antri.tail=-1;
// posisi head dan tail harus -1 agar nanti data bisa dimulai dari data ke 0
}
// fungsi untuk mengecek apakah antrian kosong
int IsEmpty(){
if(antri.tail==-1)
return 1;
else return 0;
}
//fungsi untuk mengecek apakah antrian penuh
int IsFull(){
if(antri.tail==MAX-1)
return 1;
else return 0;
}
// fungsi untuk memasukkan data pada antrian
void Enqueue(int data){
if(IsEmpty()==1){
// cek apakah antrian kosong
antri.head=antri.tail=0;
antri.data[antri.tail]=data;
printf("Data %d telah masuk!\n",antri.data[antri.tail]);
} else
if(IsFull()==0){
// cek apakah masih bisa memasukkan antrian
antri.tail++;
antri.data[antri.tail]=data;
printf("antrian %d telah masuk!\n",antri.data[antri.tail]);
}
else
printf("Antrian penuh");
}
// fungsi untuk mengosongkan pada antrian
int Dequeue(){
if(IsEmpty()==0) {
int i;
int e = antri.data[antri.head];
for(i=antri.head;i<=antri.tail-1;i++){
antri.data[i] = antri.data[i+1];
}
antri.tail--;
return e;
} else
{printf("Antrian %d telah keluar\n");
return 0;
}}
// fungsi untuk mengosongkan antrian
void Clear(){
antri.head=antri.tail=-1;
printf("data berhasil dihapus\n");
}
// fungsi untuk menampilkan antrian
void Tampil(){
if(IsEmpty()==0){
for(int i=antri.head;i<=antri.tail;i++){
printf("%d\n",antri.data[i]);
}
} else printf("antrian tidak ada!\n");
}
// di sinilah fungsi sequential searching
void Cari(int x) {
if (IsEmpty()==0) {
for(int i=antri.head;i<=antri.tail;i++){
if (antri.data[i] == x)
printf("antrian %d ditemukan!\n", i+1);
else
printf("antrian %d tidak ditemukan!\n",i+1);
}
}else printf("antrian kosong!\n");
}
//{============================================================}
// fungsi utama
int main(){
int pil;
int data;
int x;
printf("+-----------------------------------+\n");
printf("\t Program \n");
printf("+-----------------------------------+\n");
Create();
do{
//clrscr();
printf("1. Enqueue\n");
printf("2. Dequeue\n");
printf("3. Tampilkan\n");
printf("4. Kosongkan\n");
printf("5. Pencarian\n");
printf("6. Keluar\n");
printf("Pilihan = ");scanf("%d", &data, pil);
switch(pil){
case 1: if(IsFull()==1) printf("Antrian penuh\n"); else { printf("antrian ke = ");scanf("%d", &data);
Enqueue(data);
}
break;
case 2: printf("antrian yang keluar : %d\n",Dequeue());
break;
case 3: Tampil();
break;
case 4: Clear();
break;
case 5: printf("antrian yang dicari = ");scanf("%d", &x);
Cari(x);
break;
}
getch();
}
while(pil!=6);
}
Posting Komentar