Nama : Dimas Angger Prabowo NPM : 143112706450026 Kesalahan program int isempty() { int isempty() { 0; if (antrian.tail==-1) return 1; if (antrian.tail==-1) return Seharusnya int isfull() { if (antrian.tail==max-1) return 0; int isfull() { if (antrian.tail==max-1) return 1;
Program ini seharusnya menambahkan variable
Programnya enqueue seharusnya Enqueue
Program ini tampil seharusnya Tampil #include <stdio.h> #include <conio.h> //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 //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 //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() { //membuat fungsi Tampil() if (isempty()==0){ //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"); //tampilan pilihan menu
printf("3. Tampil\n"); printf("4. Hitung Jumlah Antrian\n"); printf("5. Exit\n"); printf("pilihan = ");scanf("%d", &pil); switch(pil) { //input variabel bertipe integer //membuat switch pil case 1: printf("data = ");scanf("%d",&data); Enqueue(data); //jika memasukkan angka 1 maka akan memasukan data antrian case 2: printf("elemen yang keluar = %d\n",dequeue()); /* jika memasukkan angka 2 maka akan menuju ke fungsi dequeue untuk mengeluarkan 1 data pada elemen queue*/ case 3: Tampil(); /* jika memasukkan angka 3 maka akan menuju fungsi Tampil(), yg akan menampilkan data pada queue*/ case 4: HitungAntrian(); //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