laporan pratikum 5

36
LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA QUEUE Disusun Oleh : Nama : Fauzul Adhim NIM : 110533430541 Prodi : S1 PTI off B 2011 UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK

Upload: -fauzul-adhim-

Post on 03-Aug-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: laporan pratikum 5

LAPORAN PRAKTIKUM

ALGORITMA DAN STRUKTUR DATA

QUEUE

Disusun Oleh :

Nama : Fauzul Adhim

NIM : 110533430541

Prodi : S1 PTI off B 2011

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

S1 PENDIDIKAN TEKNIK INFORMATIKA

2012

Page 2: laporan pratikum 5

BAB IV

QUEUE

A. Tujuan

1. Mahasiswa mampu menjelaskan pengertian queue dan dequeue

2. Mahasiswa mampu menjelaskan dan menunjukkan cara pembuatan queue, operasi

push dan pop pada array

3. Mahasiswa mampu menjelaskan dan menunjukkan program dengan ADT (Abstract

Data Type) queue dan dequeue dengan array

B. Dasar Teori

Queue / Antrian adalah suatu kumpulan data yang mana penambahan elemen

hanya bisa dilakukan pada satu ujung (disebut dengan sisi belakang atau rear) dan

penghapusan atau pengambilan elemen dilakukan lewat ujung lain (disebut dengan sisi

depan atau front).

Antrian menggunakan prinsip Pertama Masuk Pertama Keluar – First In First Out

(FIFO). Dengan kata lain urutan masuk sama dengan urutan keluar. Antrian banyak

dijumpai dalam kehidupan sehari-hari. Mobil-mobil yang mengantri digerbang tol untuk

membeli karcis tol; orang-orang yang mengantri di loket untuk membeli karcis film juga

membentuk antrian.

Pada antrian kita tidak menentukan batasan seberapa banyak antrian itu akan

berakhir tapi jika kita menggunakan array untuk mengimplementasikan queue/ tumpukan

kita harus membatasi jumlah antrian yang dapat masuk. Ini dikarenakan array memiliki

batasan (upperbound) yang menjadi penghambat jika kita menggunakan antrian. Oleh

sebab itu kita akan mengimplementasikan antrian ini dengan menggunakan link list.

Dengan menggunakan link list tepatnya Single Link List maka elemen dapat

dimasukkan secara tidak terbatas. Kita menggunakan Header Single Link List yang

seperti Stack ada posisi Header dapat kita pergunakan untuk menyimpan informasi

mengenai banyaknya elemen dalam Queue.

a. Deklarasi Queue Dalam Link List

Page 3: laporan pratikum 5

Pendeklarasian Queue di dalam link list sama seperti kita mendeklarasikan link list.

Menggunakan pointer sebagai variabel yang menunjuk ke elemen antrian selanjutnya.

b. Operasi Dasar Pada Queue

Ada 6 operasi dasar yang dapat dilakukan pada struktur data antrian, yaitu:

1. CREATE(Q)

Untuk menciptakan dan menginisialisasi Queue dengan cara membuat

Head = -1 dan Tail = -1

2. SEMPTY(Q)

ISEMPTY(Q) adalah operator yang menentukan apakah antrian Q hampa atau

tidak. ISEMPTY(Q) di terapkan di dalam pascal menjadi sebuah function yang

bertipe boolean sehingga hasil dari function ini akan bernilai True jika antrian

dalam keadaan kosong / hampa (NOEL(Q) = 0) dan akan bernilai False jika

antrian dalam keadaan terisi / tidak kosong (NOEL(Q) > 0). Untuk memeriksa

apakah Antrian sudah penuh atau belum Dengan cara memeriksa nilai Tail, jika

Tail = -1 maka empty

3. Enqueue()

Digunakan Untuk menambahkan elemen ke dalam Antrian, penambahan elemen

selalu ditambahkan di elemen paling belakang, Penambahan elemen selalu

menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu

4. Dequeue()

Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian Dengan

cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1,

Penggeseran dilakukan dengan menggunakan looping.

5. Clear()

Digunakan Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail

dan Head = -1, Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus

arraynya, namun hanya mengeset indeks pengaksesannya ke nilai -1 sehingga

elemen-elemen Antrian tidak lagi terbaca

6. Tampil()

Digunakan Untuk menampilkan nilai-nilai elemen Antrian dengan Menggunakan

looping dari head s/d tail

Page 4: laporan pratikum 5

c. Jenis-jenis Antrian

Selain antrian yang telah kita bahas di atas, masih ada dua tipe antrian lagi

yang penggunaannya juga banyak di dalam kehidupan sehari hari atau dalam dunia

komputer itu sendiri, diantaranya adalah :

1. DEQUE

DEQUE adalah antrian dimana elemennya bisa masuk dan keluar lewat kedua

ujungnya (berbeda dengan queue yang hany bisa masuk lewat ujung belakang dan

keluar lewat ujung depan). Biasanya DEQUE disajikan dengan menggunakan Double

link list yang memiliki dua buah pointer yang menunjuk ke posisi sebelumnya dan

sesudahnya.

Berikut ini adalah struktur umum dari Deque

DEQUE juga mempunyai dua jenis variasi yaitu :

1. Deque input terbatas : suatu deque yang membatasi pemasukkan elemen hanya

pada satu ujung dari list, sementara penghapusan elemen boleh dilakukan pada

kedua ujung list.

2. Deque output terbatas : merupakan kebalikan dari deque input terbatas yaitu suatu

deque yang membatasi penghapusan elemen hanya pada satu ujung dari list,

sementara pemasukkan elemen boleh dilakukan pada kedua ujung list.

2. ANTRIAN BERPRIORITAS

Antrian berprioritas adalah suatu queue yang setiap elemennya telah diberikan sebuah

prioritas, dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut :

a. Elemen yang prioritasnya lebih tinggi, diproses lebih dahulu dibandingkan

dengan elemen yang prioritas lebih rendah.

b. Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan mereka

sewaktu dimasukkan ke dalam priority queue.

Salah satu contoh antrian berprioritas ini adalah sistem berbagi waktu (time sharing

system), dimana program yang mempunyai prioritas tinggi akan dikerjakan lebih

Page 5: laporan pratikum 5

dahulu dan program-program yang berprioritas sama akan membentuk antrian yang

biasa.

C. Latihan 1. Latihan 1

Script Program

#include <iostream.h>#include <conio.h> \

int f,r,df;int Antrian[50];void enQueue (void);void deQueue (void) ;void Tampilkan (void);

void main (){

int k;for (k=0;k<50;k++)Antrian[k]=0;while (1){

clrscr();cout<<endl;cout<<" +++++Pilihan++++++"<<endl;cout<<" 1. enQueue"<<endl;cout<<" 2. deQueue"<<endl;cout<<" 3. Tampilkan queue"<<endl;cout<<" 4. Keluar"<<endl;cout<<" ++++++++++++++++++"<<endl;cout<<endl;cout<<"Masukan pilihan (1,2,3,4) dalam melakukan Queue : ";cin>>k;if (k==1) enQueue ();if (k==2) deQueue ();if (k==3) Tampilkan ();if (k==4) break;

}}

void enQueue (){

cout<<" Masukan elemen : ";cin>>Antrian[r];r++;

}

void deQueue(){

Antrian[f]=0;f++;

}void Tampilkan (){

int i;cout<<endl<<"Queue : "<<endl;

Page 6: laporan pratikum 5

for(i=f;i<r;++i)cout<<Antrian[i]<<",";cout<<endl<<"press any key...";getche ();

}

Hasil 1. Jika memilih satu maka akan disuruh untuk memasukkan nilai dari antrian

yang di inginkan.

Antrian tersebut dapat diisi trus menerus sampai dengan batas yang telah ditentukan oleh pemrogam,

2. Nomer 3 adalah untuk menampilkan hasil inputan antrian yang telah dimasukkan mulai dari awal masukkan (kiri) sampai dengan masukkan yang terakhir (kanan).

3. nomer 3 adalah digunakan untuk menghapus elemen terdepan atau pertama dari antrian, disini adalah nomer 1 akan hilang

Page 7: laporan pratikum 5

4. setalah memilih nomer 2, kita lihat hasilnya pada nomer 3 lagi untuk menampilkan

5. tekan 4 untuk keluar dari program

2. latihan 2 Script Program

#include <stdio.h>#include <conio.h>#define max 8

typedef struct{

Page 8: laporan pratikum 5

int data[max];int head;int tail;

} queue;

queue antrian;void create(){

antrian.head=antrian.tail=-1;}

int isempty(){

if (antrian.tail==-1) return 1;

else return 0;}

int isfull(){

if (antrian.tail==max-1) return 1;

else return 0;4;}

void Enqueue(int data){

if (isempty()==1) {

antrian.head=antrian.tail=0;antrian.data[antrian.tail]=data;printf(" %d Masuk! \n", antrian.data[antrian.tail]) ;

} else if (isfull()==0) {

antrian.tail++;antrian.data[antrian.tail]=data;printf(" %d Masuk! \n", antrian.data[antrian.tail]);

}}

int dequeue(){

int i;int e = antrian.data[antrian.head];for (i=antrian.head;i<=antrian.tail-1;i++)

{antrian.data[i]=antrian.data[i+1];

} antrian.tail--;

return e;}

void Tampil(){

if (isempty()==0) {

for (int i=antrian.head;i<=antrian.tail;i++) {

Page 9: laporan pratikum 5

printf(" %d ",antrian.data[i]);}

} else printf(" Data Kosong \n");}

void main(){

int pil;int data;create();do

{clrscr();

printf(" ================================== \n"); printf(" PROGRAM ANTRIAN \n"); printf(" ================================== \n");

printf(" 1. Enqueue ( masukkan data )\n");printf(" 2. Dequeue ( keluarkan data awal )\n");printf(" 3. Tampil ( menampilkan data )\n");printf(" 4. Exit\n");

printf(" ================================== \n\n");printf(" Pilihan = ");scanf("%d", &pil);switch(pil)

{case 1:

printf(" Data = "); scanf("%d",&data);

printf(" \n");Enqueue(data);break;

case 2: printf(" Elemen yang keluar = %d",dequeue());

printf(" \n");break;

case 3: printf("\n");

Tampil();printf("\n");break;

}getch();

} while(pil!=4);}

Hasil1. Jika memilih satu maka akan disuruh untuk memasukkan nilai dari antrian

yang di inginkan.

Page 10: laporan pratikum 5

Antrian tersebut dapat diisi trus menerus sampai dengan batas yang telah ditentukan oleh pemrogam,

2. Nomer 3 adalah untuk menampilkan hasil inputan antrian yang telah dimasukkan mulai dari awal masukkan (kiri) sampai dengan masukkan yang terakhir (kanan).

3. nomer 3 adalah digunakan untuk menghapus elemen terdepan atau pertama dari antrian, disini adalah nomer 1 akan hilang

Page 11: laporan pratikum 5

4. setalah memilih nomer 2, kita lihat hasilnya pada nomer 3 lagi untuk menampilkan

5. tekan 4 untuk keluar dari program

D. Tugas Pratikum

Script Program

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h># define QSIZE 5typedef struct{

int count;int head,tail;char names[QSIZE][30];

}QUEUE;

char* enqueue(char *);char* dequeue();void display();void init();

Page 12: laporan pratikum 5

QUEUE *pq;

int main(){

int choice;char str[30];QUEUE q;pq=&q;init();do

{clrscr();

printf("================================\n"); printf("|| Tugas Pratikum QUEUE ||\n"); printf("================================\n");

printf(":1 for Add into the Queue.. \n");printf(":2 for Delete from the Queue.. \n");printf(":3 Display Elements of the Queue..\n");

printf(":4 For Exit..\n"); printf("================================\n"); printf("\tEnter your Choice: ");

scanf("%d",&choice); printf("================================\n");

switch(choice) {

case 1:printf("\n\t Enter a Name: ");fflush(stdin);gets(str);puts(enqueue(str));break;

case 2:puts(dequeue());break;

case 3:display();break;

case 4: exit(0);

default: printf("\n\n Plz press 1,2,3 or 4 key..");

}printf("\n\n\n Press Any Key to continue...");fflush(stdin);while(!kbhit());

} while(1);

return 0;}

void init(){

pq->head = pq->tail = pq->count= 0;}

char* enqueue(char *p){

if(pq->count==QSIZE)return "\n\n Error: Queue Overflow..!!";

pq->tail= (pq->tail)%QSIZE;strcpy(pq->names[(pq->tail)++],p);pq->count++;return "\n\n Element Successfully Inserted";

Page 13: laporan pratikum 5

}

char* dequeue(){

if(pq->count==0)return "\n\n\ Error: Queue Underflow..!!";pq->head= (pq->head)%QSIZE;pq->count--;printf("\n\n Deleted Queue Element is :");return pq->names[(pq->head)++];

}

void display(){

int i=pq->head;int x=0;if(pq->count==0)printf("\n\n Queue is Empty..");else

{while(x<pq->count)

{ if(i==QSIZE)

i%=QSIZE;printf("\n :%s",pq->names[i]);i++;x++;

}}

}

Hasil

1. Tampilan awal program

2. Option 1 untuk memasukkan data

Page 14: laporan pratikum 5

3. Jika ada 5 masukkan, maka antrian akan penuh dan tidak bisa ditambah antrian lagi

4. Jika ingin menambah antrian, maka harus mengeluarkan antrian paling luar dengan

memilih nomer 2

5. Untuk lebih jelas lihat daftar antrian dengan plihan nomer 3

Page 15: laporan pratikum 5

6. Dengan begitu bisa menambah lagi daftar antrian

7. Dan bisa di lihat lagi hasilnya apakah sudah masuk atau tidak

8. Jika ingin mengakhiri program tekan nomer 4

Page 16: laporan pratikum 5

E. Tugas Rumah

1. Tugas rumah 1

Modifikasi program di Tugas Praktikum dengan menambahkan menu untuk mereset

antrian

Script Program

# include <stdio.h># include <conio.h># include <stdlib.h># include <string.h># include <iostream.h>

# define QSIZE 5typedef struct{

int count;int head,tail;char names[QSIZE][30];

} QUEUE;char* enqueue(char *);char* dequeue();void display();void init();QUEUE *pq;

int main(){

char str[30],choice;QUEUE q;pq=&q;init();

do {

clrscr(); printf("================================\n"); printf("|| Tugas Rumah QUEUE ||\n"); printf("================================\n");

printf("\n 1. Menambah antrian");printf("\n 2. Menghapus 1 data antrian");printf("\n 3. Menampilkan antrian");

printf("\n 4. Mengahpus Seluruh Antrian (reset)");printf("\n 5. Keluar program\n");

printf("\n==============================\n");

Page 17: laporan pratikum 5

printf("\n Masukkan Pilihan : ");scanf("%s",&choice);printf("\n==============================\n");

switch(choice) {

case '1':printf("\n Masukkan antrian: ");fflush(stdin);gets(str);puts(enqueue(str));break;

case '2': printf("\n 1 antrian telah di hapus");

puts(dequeue());break;

case '3':display();break;

case '4': init(); break;

case '5': printf(" Terima Kasih !!! "); exit(0);

getch();default: printf("\n Masukan salah");}printf("\n Press Any Key to continue...");fflush(stdin);while(!kbhit());

} while(1);

return 0;}

void init(){

pq->head = pq->tail = pq->count= 0; cout<<"\n . . Reset data Berhasil . . \n . . .Antrian Kosong. . .";}

char* enqueue(char *p){

if(pq->count==QSIZE)return "\n Antrian penuh";pq->tail= (pq->tail)%QSIZE;strcpy(pq->names[(pq->tail)++],p);pq->count++;return "\n Data Sukses dimasukkan";

}

char* dequeue(){

if(pq->count==0)return "\n Antrian Penuh !";pq->head= (pq->head)%QSIZE;pq->count--;printf("\n Menghapus 1 data, yaitu : ");return pq->names[(pq->head)++];

}

void display(){

int i=pq->head; int x=0;

if(pq->count==0)

Page 18: laporan pratikum 5

{ printf("\n Antrian Kosong"); printf("\n Tidak Ada Data Yang ditampilkan"); } else { while(x<pq->count) { if(i==QSIZE)

i%=QSIZE; cout<<"\n > ";

cout<<pq->names[i]; i++; x++; } }}

Hasil

1. Tampilan awal program

2. Option 1 untuk memasukkan data

3. Option 3 untuk melihat hasil yang dimasukkan antrian , dan Maksimal isi antrian

adalah 5,

Page 19: laporan pratikum 5

4. Jika ada 5 masukkan, maka antrian akan penuh dan tidak bisa ditambah antrian lagi

5. Jika ingin menambah antrian, maka harus mengeluarkan antrian paling luar dengan

memilih nomer 2

Page 20: laporan pratikum 5

6. Untuk lebih jelas lihat daftar antrian dengan plihan nomer 3, data fauzul tidak ada

7. Dengan begitu bisa menambah lagi daftar antrian

8. Dan bisa di lihat lagi hasilnya apakah sudah masuk atau tidak

9. Jika ingin menghapus semua daftar antrian menggunakan option 4, maka daftar

antrian akan kembali kosong lagi

Page 21: laporan pratikum 5

10. Lihat daftar antrian

11. Jika ingin mengakhiri program tekan nomer 4

Page 22: laporan pratikum 5

2. Tugas rumah 2.

Buatlah sebuah program dengan menerapkan contoh kasus sebuah queue dari

praktikum kali ini.

Program : Daftar Antrian Pada Rumah Sakit

Script Program

#include <iostream.h>#include <conio.h>#include <stdio.h>

typedef struct{

int data[100]; char data1[100][20]; char data2[100][30]; char data3[100][15]; int depan; int belakang;}Queue;

Queue antrian;Queue no;Queue nama;Queue poli;

int pilihan, data, i, j;char data1[20], data2[30], data3[15];

int isEmpty(){

if (antrian.belakang==-1) return 1;

else return 0;}

int isFull(){

if(antrian.belakang==100) return 1; else return 0;}

void Enqueue(int data, char data1[20], char data2[30], char data3[15]){

if(isEmpty()==1) { antrian.depan=antrian.belakang=0; nama.depan=nama.belakang=0; poli.depan=poli.belakang=0; no.depan=no.belakang=0; antrian.data[antrian.belakang]=data; for(i=0;i<20;i++) { nama.data1[nama.belakang][i]=data1[i]; } for(i=0;i<30;i++) {

Page 23: laporan pratikum 5

poli.data2[poli.belakang][i]=data2[i]; } for(i=0;i<15;i++) { no.data3[no.belakang][i]=data3[i]; } printf("\n\n ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" Data anda telah masuk. silahkan menunggu panggilan"); } else if(isFull()==0) { antrian.belakang++; nama.belakang++; poli.belakang++; no.belakang++; antrian.data[antrian.belakang]=data; for(i=0;i<20;i++) { nama.data1[nama.belakang][i]=data1[i]; } for(i=0;i<30;i++) { poli.data2[poli.belakang][i]=data2[i]; } for(i=0;i<15;i++) { no.data3[no.belakang][i]=data3[i]; } printf("\n\n ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" Data anda telah masuk. silahkan menunggu panggilan"); }}

int Dequeue(){

if(isEmpty()==0) { int i,e ; char a[20], b[30]; e=antrian.data[antrian.depan]; for(i=0;i<20;i++) { a[i]=nama.data1[nama.depan][i]; } for(i=0;i<30;i++) { b[i]=poli.data2[poli.depan][i]; } for(i=antrian.depan;i<antrian.belakang;i++) { antrian.data[i]=antrian.data[i+1]; for(j=0;j<20;j++) { nama.data1[i][j]=nama.data1[i+1][j]; } for(j=0;j<30;j++) { poli.data2[i][j]=poli.data2[i+1][j]; } for(j=0;j<15;j++) { no.data3[i][j]=no.data3[i+1][j]; } } antrian.belakang--; nama.belakang--; poli.belakang--; no.belakang--;

Page 24: laporan pratikum 5

printf("antrian no %i dengan nama %s silahkan memasuki poli %s !", e, a, b); return e; return a[20]; return b[30]; } else { printf("antrian kosong"); }}

void buat(){

antrian.depan=antrian.belakang=-1; nama.depan=nama.belakang=-1; poli.depan=poli.belakang=-1; no.depan=no.belakang=-1;}

void main(){

int n; buat(); n=1; do { clrscr(); printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" :: :: \n"); printf(" :: Rumah Sakit SIDOWARAS :: \n"); printf(" :: kec. Bangsal, Kabupaten Mojokerto :: \n"); printf(" :: :: \n"); printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" Menu : \n\n"); printf(" 1. Masukkan Data Antrian \n"); printf(" 2. Panggil Antrian \n"); printf(" 3. Lihat Daftar Antrian \n"); printf(" 4. Menghapus Seluruh Antrian Pasien ( Reset Ulang ) \n"); printf(" 5. Exit \n"); printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" Silahkan Masukkan Pilihan (1-5) : "); scanf("%i", &pilihan); printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n\n\n"); switch(pilihan) { case 1 : clrscr(); printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" :: DATA PASIEN :: \n");

printf(" ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n\n"); data=n; printf(" No antrian anda adalah %i \n", n); printf(" Masukkan no. rekam medis anda : "); fflush(stdin); gets(data3); printf(" Masukkan nama lengkap anda: "); fflush(stdin); gets(data1); printf(" Masukkan poli berobat anda: "); fflush(stdin); gets(data2); Enqueue(data, data1, data2, data3); n++; break;

case 2 : clrscr();

Page 25: laporan pratikum 5

printf("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n"); printf(" "); Dequeue();

printf("\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: "); break;

case 3 : clrscr(); if(isEmpty()==1) { printf("\n ------------------------------------------------------------- \n"); printf(" | No antrian | No.reka medis | Nama Lengkap | Poli Berobat | \n");printf(" ----------------------------------------------------------------- \n");printf(" ---- Antrian Kosong ---- \n"); break; } printf("\n --------------------------------------------------------------------------- \n"); printf(" | No antrian | No.reka medis | Nama Lengkap | Poli Berobat | \n"); printf(" --------------------------------------------------------------------------- \n"); for(i=antrian.depan;i<=antrian.belakang;i++) { gotoxy(3,i+5); cout<<"| "<<antrian.data[i]; gotoxy(16,i+5); cout<<"| "<<no.data3[i]; gotoxy(32,i+5); cout<<"| "<<nama.data1[i]; gotoxy(60,i+5); cout<<"| "<<poli.data2[i]; gotoxy(77,i+5); cout<<"|"; } break;

case 4 : buat(); printf(" . . .Reset Antrian Berhasil. . . !!!"); break;

case 5: printf(" Terimakasih Atas Partisipasinya !!!"); break;

default : printf(" Maaf,, Pilihan Anda Salah "); break; } getch(); }while(pilihan!=5);

}

Hasil

1. Tampilan awal program

Page 26: laporan pratikum 5

2. Option 1 untuk memasukkan data

a. Masukkan 1

b. Masukkan 2

Page 27: laporan pratikum 5

c. Masukkan 3

d. Masukkan 4

.dsb

3. Option 3 untuk melihat daftar antrian pasien yang sudah masuk

Page 28: laporan pratikum 5

4. Daftar pasien bisa di tambah sampai dengan 100 pasien, dan jika penuh daftar antrian

pasien bisa dikurangi atau menghapus seluruh daftar antrian pasien

a. Daftar antrian dikurangi dengan memanggil pasien yang memasukkan data paling

awal dengan option nomer 2.

b. Menghapus seluruhantrian pasien yang ada dengan option nomer 4.

5. Lihat daftar antrian lagi apakah ada atau tidak

Page 29: laporan pratikum 5

6. Jika ingin mengakhiri program ini tekan nomer 4

F. Kesimpulan

Queue / Antrian adalah suatu kumpulan data yang mana penambahan elemen

hanya bisa dilakukan pada satu ujung (disebut dengan sisi belakang atau rear) dan

penghapusan atau pengambilan elemen dilakukan lewat ujung lain (disebut dengan sisi

depan atau front). Sedangkan DEQUE adalah antrian dimana elemennya bisa masuk dan

keluar lewat kedua ujungnya

Ada beberapa Operasi Dasar Pada Queue yang dapat dilakukan pada struktur

data antrian, yaitu: CREATE(Q), SEMPTY(Q), Enqueue(), Dequeue(), Clear(),

Tampil()

G. Daftar Pustaka

Page 30: laporan pratikum 5

Modul pratikum Algoritma dan Struktur data. 2012. Fakultas teknik - Universitas negeri malang