1 Nama : Dimas Angger Prabowo NPM : Kesalahan program int isempty() { int isempty() { 0; if (antrian.tail==-1) return 1; if (antrian.tail==-1) return ...
//file header pada C //file header untuk menampilkan output
#define max 8 //menentukan data maksimal 8 typedef struct { //mendeklarasi tipe struct int data[max]; //variabel data bertipe integer sampai maksimal 8 int head; //variabel head bertipe integer int tail; //variabel tail bertipe integer } queue; queue antrian;
//membuat queue baru dengan nama 'antrian'
void create() { //membuat antrian baru antrian.head=antrian.tail=-1; //mendeklarasi kalau antrian.head sama dengan antrian.tail yaitu -1 } int isempty() { //variabel utk memeriksa apakah antrian penuh atau belum if (antrian.tail==-1) return 1; //jika antrian adl -1, maka kembali ke 1 else return 0; //jika tidak kembali ke 0 }
int isfull() { //variabel utk memeriksa antrian penuh atau tidak if (antrian.tail==max-1) return 1; //jika antrian adl max -1, maka kembali ke 1 else return 0; //jika tidak kembali ke 0 } void Enqueue(int data) { //membuat masukan queue data yg bertipe integer if (isempty()==1) { //kondisi jika isempty() sm dgn 1 antrian.head=antrian.tail=0; //maka antrian.head dan antrian.tail = 0 antrian.data[antrian.tail]=data; printf("%d Masuk! \n", antrian.data[antrian.tail]) ; //mencetak bahwa antrian.data[antrian.tail] telah masuk } else if (isfull()==0) { //kondisi jika isfull() sm dgn 0 antrian.tail++; //maka antrian.tail ditambahkan 1 antrian.data[antrian.tail]=data; printf("%d Masuk! \n", antrian.data[antrian.tail]); //mencetak bahwa antrian.data[antrian.tail] telah masuk } } int dequeue() { //variabel mengeluarkan queue int i; //membuat variabel i bertipe integer int e = antrian.data[antrian.head]; //mbuat variabel e brtipe integer dgn nilai = antrian.data[antrian.head] for (i=antrian.head;i<=antrian.tail-1;i++){ /*kondisi untuk i=antrian.head; i lebih kecil atau sama dgn antrian.tail kurang 1; i ditambah 1*/ antrian.data[antrian.data[i+1]]; //antrian.data adlh i ditambah 1 } antrian.tail--; //antrian.tail dikurang 1 return e; //kembali ke e } void Tampil() { if (isempty()==0){
//membuat fungsi Tampil() //kondisi jika isempty() sm dgn 0
for (int i=antrian.head;i<=antrian.tail;i++){ /*kondisi untuk i=antrian.head;i lebih kecil atau sama dgn antrian.tail; i ditambah 1*/
}
printf("%d ",antrian.data[i]); //mencetak antrian.data } } else printf("data kosong \n"); //jika kondisi tidak seperti kondisi pertama //maka mencetak "data kosong"
void HitungAntrian() { //membuat fungsi HitungAntrian() int jml; //membuat variabel jml bertipe integer jml = antrian.tail+1; //nilai jml sm dgn antrian.tail ditambah 1 printf("Jumlah antrian: %d\n",jml); //mencetak nilai jml } void main() { int pil; //menambahkan variabel pil bertipe int int data; //menambahkan variabel data bertipe int create(); //membuat antrian baru do { /* kondisi dimana program akan terus berjalan apabila kondisi bernilai true dan program akan berhenti jika kondisi bernilai false */ clrscr(); //deklarasi utk menghapus layar printf("1. Enqueue\n"); printf("2. Dequeue\n");
printf("Data = ");scanf("%d",&data); Enqueue(data); break; //jika memasukkan angka 1 maka akan memasukan data antrian case 2: printf("Elemen yang keluar = %d\n",dequeue()); break; /* jika memasukkan angka 2 maka akan menuju ke fungsi dequeue untuk mengeluarkan 1 data pada elemen queue*/ case 3: Tampil(); break; /* jika memasukkan angka 3 maka akan menuju fungsi Tampil(), yg akan menampilkan data pada queue*/ case 4:
HitungAntrian();
break; //jika memasukkan angka 4 maka semua data pada queue akan dihitung. } getch(); } while(pil!=5); //program tetap berjalan selama tidak memasukkan angka 5 pada menu pilihan }