Senin, 22 Mei 2017

program QUEUE bahasa c++ [ Modul 9 Struktur Data ]

            Assalamu’alaikum Wr, Wb, oke pada kesempatan kali ini saya akan membahas sebuah program yang bernama QUEUE, QUEUE ini merupakan sebuah program antrian dan QUEUE ini bersifat FIFO yaitu ( First In First Out ) , contohnya seperti antian saat membeli tiket kereta dimana jika terdapat Orang A yang mengantri pertama maka dia pun yang akan keluar pertama.
            Oke Disini saya mempunyai beberapa contoh program stack, langsung saja tanpa berlama – lama kita masuk kecontoh pertama
Script Praktikum 9.1
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int cek=0, data[8], x, hapus;
char pil;
do
{
clrscr();
cout<<" Ujian Praktikum Struktur Data Queue "<<endl;
cout<<" Zhein Arifin "<<endl;
cout<<" Universitas Kuningan "<<endl;
cout<<endl;
printf("d. Masukan Data Antrian \n");
printf("e. Hapus Data Antrin \n");
printf("n. Lihat Data Antrian \n");
printf("y. Exit Program \n");
cout<<endl;
printf(" Ketikan Huruf Dari Salah Satu Pilihan Diatas ");
pil=getche();
cout<<endl;
if (pil!='d' && pil !='e' && pil !='n' && pil!='y')
printf("\n\n salah ketik, ulangi lagi .. \n");
else
{
if(pil=='d')
{
if(cek==8)
{
printf("\n Antrian Penuh\n");
getch();
}
else
{
printf("\n MASUKKAN ANGKA->"); scanf("%i",&x);
data[cek]=x;
cek++ ;
}}
else {
if(pil=='e')
{
if(cek==0)
printf("\nMaaf Tidak Antrian Untuk Dihapus \n\n");
else
{
hapus=data[0];
for(int v=0; v<cek; v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
cout<<endl;
printf("Yakin  Anda Ingin Data Ini Dihapus ?? ");
cout<<endl;
printf("\nData dengan nilai = %i akan terhapus. [Tekan Enter]",hapus);
}
getch();
}
else
{
if(pil=='n')
{
if(cek==0)
printf("\n Maaf Tidak Ada Antrian Untuk Di Tampilkan. \n\n");
else
{
printf("\n");
for(int z=0; z<cek; z++)
{
printf(" [ %i ] \n",data[z]);
}
}
getch();
}
}
}
}
}while(pil!='y');
cout<<endl;
cout<<endl;
printf(" Yakin Anda Ingin Keluar .. ?? {{{ Tekan Enter Cak }}} ");
pil=getche();
}
 Hasil Running :

Pembahasan
            Program ini adalah contoh sebuah Queue atau bisa dibilang antrian, dan dalam program ini terdapat 4 menu, yaitu menu input antrian, menu delet antrian, menu view antrian, dan dalam program ini detentukan batas maxsimal 8 antrian, dan menggunakan perulangan do karena akan dilakukan penginputan berulang - ulang jadi setia input maka datanya akan bertambah
            Menu input antrian ini menggunakan if sebagai kondisi jika antian sudah memenuhi batas nya maka akan terdapat notif antrian penuh dan jika belum penuh maka masih dapat melakukan penginputan. Untuk melakukan penginputan menggunakan variable x dan kemudian di pindahkan ke variable array karena data – tersebut akan di tampung menjadi 1, dan gante elemen array dengan cek karena nilai cek akan bertambah setiap penginputan karena terdapat script ( cek++ ) sebagai penentu indek atau nomor input.
            Menu hapus antrian juga mempunyai if untuk menentukan kondisi jika tidak terdapat antrian maka terdapat notif “ Tidak Ada Antrian Untuk Dihapus “ dan jika terdapat antrian maka akan di hapus dan scripnya itu menggunakan for untuk menghapusnya
hapus=data[0];
for( v=0; v<cek; v++)
data[v]=data[v+1];
data[cek-1]=NULL;
cek--;
hapus=data[0] itu berguna untuk menunjukan nilai yang akan dihapus , dan cek dalam for sebagai batas dri peulangan dan cek itu terdapat nilai dri no antrian yang terakhir di input dan akan masuk nilainya ke variable hapus, karena melakukan perulangan pada antrian pertama, maka antrian pertama akan terhapus dengan script cek--, jadi nilai antrian pertama akan di kurang jd 0.
            Menu view antrian juga terdapat if sebagai kondisi untuk menentukan jika terdapat antrian maka akan kelar antrian tersebut dan jika tidak ada maka akan keluar notif. Untuk output lakukan perulangan for dengan batas perulangan cek (no antrian atau indek).
Script Praktikum 9.2
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct node{
int data;
struct node*p;};
void TambahElemen (struct node **d, struct node **b, int nilai){
/*membuat struktur node baru*/
struct node*temp;
temp=(struct node *)malloc (sizeof (struct node));

/*mendefinisikan field yang terdapat pada struktur node yang baru dialokasikan*/
temp->data=nilai;
temp->p=NULL;
if(*d== NULL){
*d= temp;
}else{
(*b)->p=temp;}
*b=temp;}
void HapusElemen (struct node **d, struct node **b){
struct node*temp;
if(*d == NULL){
printf("Tidak terdapat elemen dalam queue");
}else{
temp= *d;
*d= temp->p;
free(temp);
if(*d == NULL){
*b=NULL;
}
}
}
void TampilkanNilai(struct node *d){
int nilai;
while(d != NULL){
nilai = d->data;
printf("%d\n",nilai);
d=d->p;}
}
int main(void){
struct node*depan, *belakang;
depan = belakang =NULL;
TambahElemen(&depan,&belakang,10);
TambahElemen(&depan,&belakang,20);
TambahElemen(&depan,&belakang,30);
TambahElemen(&depan,&belakang,40);
TampilkanNilai(depan);
HapusElemen(&depan,&belakang);
printf("Nilai-Nilai didalam queue");
printf("Setelah penghapusan elemen pertama:\n");
TampilkanNilai(depan);
getch();
return 0;
}

Hasil Running

Pembahasan
            Program ini merupakan sebuah antrian dan dalam program ini terdapat penghapusan antrian. Dalam program ini menggunakan function, pointer dan juga linked list( temp -> data ) itu dinamakan linked list, berhupung saya belum paham mengenai liked list maka saya tidak akan membahasnya mungkin kalian dapat mencari di google atau mungkin saya akan membahasnya di postingan selanjutnya.
            Jadi dalam video ini terdapat function void TambahElemen yang berfungsi untuk menambahkan nilai dalam antrian, bisa dilihat di script ( terdapat script linked list )
            Function HapusElemen berguna untuk menghapus sebuah antrian di mana dalam function ini terdapat sebuah if untuk menentukan kodisi apakah terdapat antrian atau tidak.
            Dan untuk function TampilkanNilai berfungsi untuk menampilkan antrian yang belum dihapus antriannya dan yang sudah, jadi tergantung penempatan funtion jika function ditempatkan sebelum function hapus maka antrian yang sebelum di hapus akan tampil, dan jika di letakan setelah function hapus maka antrian pun berubah dan hasilnya antian yang telah terhapus yang akan keluar.
            Jadi script
TambahElemen(&depan,&belakang,10);
TambahElemen(&depan,&belakang,20);
TambahElemen(&depan,&belakang,30);
TambahElemen(&depan,&belakang,40);
Berfungsi untuk mendeskripsikan sebauh nilai dari antrian dan untuk menampilkannya menggunakan scipt TampilkanNilai(depan);
Nah itulah beberapa program Queue dan juga pembahasan yang dapat saya sharing kepada kalian, semoga ilmu yang saya bagikan dapat bermanfaat bagi kalian semua para pembaca, mungkin sampai disini dulu sharing tentang pemrograman khususnya program Queue atau Antrian yang bisa saya posting. Dan Jangan lupa ya jika kalian mempunyai kritik dan saran silahkan tambahkan pada kolom komentar. Terima kasih atas kunjungan kalian.



1 komentar: