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.


sudah diperiksa
BalasHapus