251 } } voiddequeue() { if(front==-1||front>rear) { printf("QueueUnderflow\n"); return; } else { printf("Elementdeleted from queue is : %d\n", queue_arr[front]); front=front+1;
252 } } voiddisplay() { inti; if(front==-1) printf("Queueisempty\n"); else { printf("Queueis:\n"); for(i=front;i<=rear;i++) printf("%d",queue_arr[i]); printf("\n"); }} Compilesampaibenar
253 Gambar7.9StrukturProgram
254 Gambar7.10StukturProgram
255 Gambar7.11StukturProgram Setelahprogram diperbaikidandicompile,makatampilanhasil runningakantampaksepertigambardibawahini:
256 Gambar7.12Tampilanhasilrunning 7.5StudiKasus
257 a.Latihan Mulai #include <stdlib.h> #include <stdio.h> #include Intdata; Structnode *link; }NODE NODE *front,*rear=NULL Voidenqueue0; Intchoice=0; While(1) Switch(choi ce) Printf(“\n1.push\n”);printf(“2.pop\n”); Printf(“3.Display\n”);printf(“4.Quit\n\n”); Printf(“Enteryourchoice:”);scanf(“%d”,&choice); Case1 Case2 Case3 Void enqueue0 Void dequeue0 VoidDisplay0 Case4 Dafault: Exit(0);
258 Penjelasan: Dimulaidengaterminatordanheader,laludilanjutkandengan menginputvariabelqueue.setelahitumasukkedalam sistem atau prosesSwitchuntukmemasukikasusataupilihanyangdiberikan (enqueue,dequeue,display,exitdan defaultjika pesan tidak di temukan)laluditutupdengangethchuntukpenyelesaiannya. BuatlahprogrambarudengancaraklikCtrl–Nkemudianketiksource codeprogramnyasepertidibawahini: #include<stdlib.h> #include<stdio.h> #include<conio.h> typedefstructnode { intdata; structnode*link; Getch0; Printf(“\nPILIHANTIDAK TERSEDIA\n”); Selesai
259 }NODE; NODE*front,*rear=NULL; voidenqueue(); voiddequeue(); voiddisplay(); intmain() { intchoice=0; while(1) { printf("\n1.Push\n"); printf("2.Pop\n"); printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enteryourchoice:"); scanf("%d",&choice);
260 switch(choice) { case1: enqueue(); break; case2: dequeue(); break; case3: display(); break; case4: exit(0); default: printf("\nPILIHAN TIDAK TERSEDIA\n");
261 } } getch(); } voidenqueue() { NODE*temp; intinfo=0; printf("Enterdatatobeenqueued(0-9999):"); scanf("%d",&info); temp=(NODE*)malloc(sizeof(NODE)); if(temp==NULL) printf("\nMemoryAllocationFailed"); else { temp->data=info;
262 temp->link=NULL; if(front==NULL) { front=rear=temp; } else { rear->link=temp; rear=temp; } printf("Nodehasbeeninsertedat EndSuccessfully!!"); } } voiddequeue() {
263 NODE*temp; intinfo; if(front==NULL) { printf("Underflow!!!"); } else { temp=front; info=front->data; if(front==rear) { rear=NULL; } front=front->link; temp->link=NULL;
264 printf(" Deleted Node(From Front)withtheData:%d\n",info); free(temp); } } voiddisplay() { NODE*temp; if(front==NULL) printf("EmptyQueue\n"); else { temp=front; printf("Front->"); while(temp) {
265 printf("[%d]->",temp->data); temp=temp->link; } printf("Rear\n"); } } Compilesampaibenar
266 Gambar7.13Strukturprogram
267 Setelahprogram diperbaikidandicompile,makatampilanhasilrunningakan tampaksepertigambardibawahini: Gambar7.14HasilRunning
268 7.6kesimpulandansaran a)kesimpulan Queueatauantrianmerupakankumpulanelemenyangpengisiandan penghapusanelemen yang dilakukan darisisiataugerbang yang berbeda beda.Pengisian dilakukan darigerbang belakang dan penghapusangerbangdepan.Halinimenunjukanbahwauntukqueue mempunyaiduagerbangyaitugerbangdepandanbelakang.Dengan demikiandapatdlihatbahwaqueuemempunyaisifatFIFO(Fristin, Fristout),yaituelemenyangpertamamasukakankeluarpertamajuga. Represnatsiqueuedapatdeklarasidenganmenggunakanarrayatau linkedlistresresntasiqueuedenganarrayataulinkedlist. Representasiqueue dengan arrayada penunjuk depan dan belakangyangdigunakanuntukmenunjukelemenposisidepandan elemenposisibelakang.sehinggadapatdiketahuiqueuekosongatau tidak.Queuedapatditambahselamabelakangtidaksamadenganisi danmaksimum array.Operasipenyisipanelemenqueuedigunakan untukmengambilataumenghapuselemendansuatuqueue.Operasi penghapusanelemenpadacircularyangdihapusadalahselaluyang beradadidepansehinggapenunjukdepanakannaiksatu(depan+1)
269 jikadepanlebihkecildarimaksimum elemenarray.tetapidpenadi aturmenjadisatu(depan=1)jikadepansamadenganmaksimum elemenarray. b).saran Laporaninimasihterdapatbanyakkesalahankarenaterbatasnya pengetahuan dan kurangnya referensi mataeri pada laporan ini, diharapkan pembaca dapat memberikan saran sebagai motivasi pembuatanlaporanselanjutnya.
270
271