source code :
#include <stdio.h> // menggunakan library pada bahasa C yang digunakan untuk input-output.
#include <conio.h> // diperlukan bila melibatkan clrscr(), yaitu perintah untuk membersihkan
#include <stdlib.h>// mengalokasi memori secara manual
#define MAX 8 //mendefinisikan suatu konstanta yang nantinya akan digantikan oleh praprosessor saat program di compile batasan 8
using namespace std; // unttuk melakukan penulisan kode secara langsung tanpa menuliskan std::
int jum; // int (integer) berfungsi untuk mengelompokkan variabel yang isinya bilangan bulat
typedef struct{ // digunakan untk membentuk suatu variabel baru dengan kumpulan berbagai variabel dari tipe yang berbeda-beda
int data[MAX]; // mendeklarasikan data menggunakan tipe data integer
int head; // mendeklsarasikan head menggunakan tipe data integeer
int tail; // mendeklsarasikan tail menggunakan tipe data integeer
} Queue; // memanggil fungsi queue
Queue antrian; //mendeklarasikan fungsi antrian
void Create(){ // membuat antrian
antrian.head=antrian.tail=-1; // in nerupakan fungsi antrian
}
int IsEmpty(){ // memeriksa apakah antrian kosong
if(antrian.tail==-1) // jika antrian kurang dari satu
return 1; // maka antrian kosong
else // jika tidak
return 0; // maka antrian ada
}
int IsFull(){ // memeriksa apakah antrian penuh
if(antrian.tail==MAX-1) return 1; else return 0; } // jika antrian penuh maka antrian ada jika tidak maka antrian kosong
void Enqueue(int data){ // fungsi untuk memasukan data ke dalam antrian
if(IsEmpty()==1){ // apabila data di antrian masih kosong
antrian.head=antrian.tail=0; //antrian masih kosong
antrian.data[antrian.tail]=data; // antrian data yang akan dimasukkan terletak di ekor
printf("%d masuk!",antrian.data[antrian.tail]); // tampilkan data yang baru saja dimasukkan sebelum kata masuk! pada ekor antrian
void Tampil(); //untuk memanggil fungsi tampil data
{
if(IsEmpty()==0){ // data kosong
for(int i=antrian.head;i<=antrian.tail;i++){ // i merupakan urutan antrian dan kecil samadengan ekor, maka urutan antrian ditambahkan satu
printf("%d ",antrian.data[i]); // tampilkan data yang dimasukan beserta data sebelumnya
}
}else printf("data kosong!\n"); } // jika tidak tampilkan data kosng
} else // jika tidak
if(IsFull()==0){ // jika antrian penuh
antrian.tail++; // antrian ditambahkan satu
antrian.data[antrian.tail]=data; // antrian data ialah antrian hingga ekor samadengan data
printf("%d masuk!",antrian.data[antrian.tail]); // tampilkan data yang sudah dimasukkan dan tampilkan data antrian
}
}
int Dequeue(){ // merupakan fungsi untuk menghapus data awal yang sudah masuk
int i; // menentukan tipe data i dengan integer
int e = antrian.data[antrian.head]; for(i=antrian.head;i<=antrian.tail-1;i++){ // e dengan tipe data integer diposisikan di kepala antrian, untuk ekor pada anrrian dikurang dengan satu
antrian.data[i] = antrian.data[i+1]; //
}
antrian.tail--; // antrian di ekor dikurangi dengan satu
return e; // kembali ke e
}
void Clear(){ // fungsi untuk menghapus aeluruh data antrian
antrian.head=antrian.tail=-1; // antrian kepala samadengan antrian ekor samadengan -1
printf("data clear"); // tampilkan data clear
}
void Tampil(){ // fungsi yang digunakan untuk menampilkan data antrian
if(IsEmpty()==0){ // bila data tidak kosong
for(int i=antrian.head;i<=antrian.tail;i++){
printf("%d ",antrian.data[i]); // tampilkan data antrian
jum=jum+antrian.data[i]; //
}
}else printf("data kosong!\n"); } // jika tidak tampilkan data kosong
int main(){ // semua fungsi mulai dijalankan
int pil; // mendeklarasikan pilihan
int data; // mendeklarasikan data
Create(); // membuat antrian
do{
system ("CLS"); // untuk menampilkan pilihan
printf("1. Enqueue\n"); // tampilkan pilihan untuk menambahkan antrian
printf("2. Dequeue\n"); // tampilkan pilihan untuk menghapus antrian dari kepala
printf("3. Tampil\n"); // tampilkan pilihan untuk menampilkan data antrian
printf("4. Clear\n"); // tampilkan pilihan untuk menghapus semua antrian yang ada
printf("5. Exit\n"); // tamppilkan pilihan untuk keluar dari antrian
printf("Pilihan = ");scanf("%d",&pil); switch(pil){ // tampilkan pilihan yang dipilih
case 1: printf("Data = ");scanf("%d",&data); Enqueue(data); // untuk pilihan pertama, tampilkan data dan scan data selanjutnya tampilkan data
break; // jeda sementara
case 2: printf("Elemen yang keluar : %d",Dequeue()); break; // untuk pilihan kedua, tampilkan elemen yang dikeluarkan yang merupakan data yang dihapus dan jeda semeentara
case 3: Tampil(); break; // untuk pilihan ketiga, tampilkan semua data yang ada dan kemudian jeda
case 4: Clear(); break; // untuk pilihan ke empat, hapus semua data antrian
}
getch(); // membalikan fungsi
} while(pil!=5); //
}
0 comments:
Post a Comment