Anda di halaman 1dari 22

LAPORAN PRAKTIKUM RESMI

BAB XII QUEUE



Disusun oleh :
Christina Natalia Sunjaya
201301003

Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom

JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014




BAB XII
TEORI DASAR
1. PENDAHULUAN
Struktur data Antrean (Queue) adalah suatu bentuk khusus
dari List Linier dengan operaso pemasukan data yanh
hanya diperbolehkan pada salah satu sisi, yang disebut sisi
belakang/ekor (Tail) dan operasi penghapusan hanya
diperbolehkan pada sisi yang disebut sisi
depan/kepala(Head) dari Linked list.
Prinsip antrean :
1. FIFO (FIRST IN FIRST OUT)
2. FCFS (FIRST COME FIRST SERVE)
yang tiba lebih awal, maka akan dilayani terlebih
dahulu


-1 0 1 2 3 4 5 6 7 max =8
Head=-1, tail=-1
OPERASI QUEUE
Create
Untuk menciptakan dan menginisialisasi queue dengan
cara membuat Head dan Tail = -1.
ISEMPTY
Untuk memeriksa apakah queue kosong
ISFULL
Untuk memeriksa apakah queue sudah penuh
ENQUEUE
Untuk menambahkan item pada posisi paling belakang.
DEQUEUE
Untuk meghapus item dari posisi paling depan
CLEAR
Untuk mengosongkan queue.

A. CREATE
Digunakan untuk membentuk dan menunjukan awal
terbentuknya suatu queue atau antrean. Fungsi Create
dalam C++ :
Void Create()
{
Antrean.head=antrean.tail=-1;
}

-1 0 1 2 3 4 5 6 7 max =8
Head=-1, tail=-1 antrian pertama kali
B. ISEMPTY
Untuk memeriksa apakah antrean penuh atau kosong.
Fungsi ISEMPTY dalam C++ :
Int IsEmpty()
{
If(antrean.tail==-1)
Return 1;
Else
Return 0;
}

-1 0 1 2 3 4 5 6 7 max =8
Head=-1, tail=-1 antrean kosong karena tail=-1
C. ISFULL
Untuk mengecek apakah antrean sudah penuh atau
belum. Fungsi isfull dalam C++ :
int isFull()
{
If(antrean.tail==MAX-1)
Return 1;
Else
Return 0;
}
4 45 1 8 5 12 7 78
0 1 2 3 4 5 6 7 max =8
Head=-1, tail=-1 antrean kosong karena tail=MAX-1
D. ENQUEUE
Untuk menambahkan elemen ke dalam antrean,
penambahan elemen selalu dilakukan pda elemen
paling belakang. Fungsi Enqueue dalam C++ :
Void Enqueue(int data)
{
If(IsEmpty()==1)
{
Antrean.head=antrean.tail=0;
antrean.data[antrean.tail]=data;
Printf(%dmasuk!,antrean.data[antrean.tail]);
}
Else
If)IsFull()==0
{
Antrean.tail++;
Antrean.data[antrean.tail]=data;
Printf(%dmasuk!,antrean.data[antrean.tail]);
}
4 45 1 8
0 1 2 3 4 5 6 7 max =8
Head=0, tail=1 , tail=2, tail=3, enqueue (8)
E. DEQUEUE
Digunakan untuk menghapus elemen terdepan (head)
dari antrean. Fungsi Dequeue dalam C++ :
Int dequeue()
{
Int I;
Int e=antrean.data[antrean.head];
For(i=antrean.head;i<antrean.tail-1;i++)
{
Antrean.data[i]=antrean.data[i+1];
}
Antrean.tail--;
Return e;
}}
4444 45 1 8
0 1 2 3 4 5 6 7 max =8
Head=0, tail=1 , tail=2, tail=3, enqueue ()
45445 1 8
0 1 2 3 4 5 6 7 max =8
Head=0, tail=1 , tail=2, tail=3, maju semua, tail

F. CLEAR
Untuk menghapus elemen dalam antrian dengan cara
membuat tail dan head = -1. Fungsi Clear dalam C++ :
Void clear()
{
Antrean.head=antrean.tail=-1;
Printf(data clear);
}

0 1 2 3 4 5 6 7 max =8
Head=-1, tail=1

Program queue:
/*
* que.cpp
*
* Created on: Jun 10, 2014
* Author: SAMSUNG
*/

#include <iostream>
int f,r,df;
int qu[50];
void enQueue(void);
void deQueue(void);
void Tampilkan(void);
using namespace std;
int main(){
int k;
for(k=0;k<50;k++)
qu[k]=0;
while(1){
cout<<"=======PILIHAN======="<<endl;
cout<<" 1) enQueue"<<endl;
cout<<" 2) deQueue"<<endl;
cout<<" 3) Tampilkan queue"<<endl;
cout<<" 4) Keluar!"<<endl;
cout<<endl;
cout<<"Masukkan 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<<"Masukkan elemen:";
cin>>qu[r];
r++;

}
void deQueue(){
qu[f]=0;
f++;

}
void Tampilkan(){
int i;
cout<<endl<<"Queue:"<<endl;
for(i=f;i<r;i++)
cout<<qu[i]<<",";
cout<<endl<<"presss any key. .";
}



Output program:



BAB II
PENJELASAN PROGRAM
PROGRAM QUEUE DENGAN TIPE DATA ABSTRAK
Dengan typedef
Listing program queue dengan typedef
/*
* quetypedef.cpp
*
* Created on: Jun 10, 2014
* Author: SAMSUNG
*/


typedef
#include <iostream>
typedef int haha;
haha f,r,df;
haha qu[50];
void enQueue(void);
void deQueue(void);
void Tampilkan(void);
using namespace std;
int main(){
haha k;
for(k=0;k<50;k++)
qu[k]=0;
while(1){
cout<<"=======PILIHAN======="<<endl;
cout<<" 1) enQueue"<<endl;
cout<<" 2) deQueue"<<endl;
cout<<" 3) Tampilkan queue"<<endl;
cout<<" 4) Keluar!"<<endl;
cout<<endl;
cout<<"Masukkan 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<<"Masukkan elemen:";
cin>>qu[r];
r++;

}
void deQueue(){
qu[f]=0;
f++;

}
void Tampilkan(){
haha i;
cout<<endl<<"Queue:"<<endl;
for(i=f;i<r;i++)
cout<<qu[i]<<",";
cout<<endl<<"presss any key. .";
}

Output program:


Penjelasan listing program :
1. Tanda yang diawali dengan /* dan diakhiri tanda */ adalah
script untuk sebuah komentar atau perintah / teks, namun jika
program di run tidak akan dibaca oleh compiler, tidak muncul
di output.
2. #include adalah pengarah preprocessor yang berfungsi untuk
menginstruksikan compiler.
3. <iostream> adalah header atau library file untuk proses input
output nantinya.
4. Using namespace std adalah penyingkatan sebuah kode
5.
typedef int haha; pemberian nama typedef baru
haha f,r,df; pendeklarasian tipe data baru
haha qu[50]; pendeklarasian tipe data baru

void enQueue(void); pemanggilan prosedur enqueue
void deQueue(void); pemanggilan prosedur dequeue
void Tampilkan(void); pemanggilan prosedur tampilkan
using namespace std;
6. int main(){ badan program
haha k; pendeklarasian tipedata k
for(k=0;k<50;k++) perulangan
qu[k]=0;
while(1){ perulangan dengan while
cout<<"=======PILIHAN======="<<endl; menampilkan output pilihan
cout<<" 1) enQueue"<<endl; menampilkan output 1) enqueue
cout<<" 2) deQueue"<<endl; menampilkan output 2) dequeue
cout<<" 3) Tampilkan queue"<<endl; menampilkan output tampilkan
cout<<" 4) Keluar!"<<endl; menampilkan output keluar
cout<<endl; member line spacing
cout<<"Masukkan pilihan (1,2,3,4) dalam melakukan Queue:";
cin>>k; pemanggilan tipedata yang telah di deklarasikan diatas
if(k==1)enQueue(); pemilihan jika k adalah 1 maka memanggil prosedur
enqueue
if(k==2)deQueue(); pemilihan jika k adalah 2 maka memanggil prosedur
dequeue

if(k==3)Tampilkan();pemilihan jika k adalah 3 maka memanggil prosedur
tampilkan

if(k==4)break; pemilihan jika k adalah 2 maka memanggil prosedur keluar

}
}
7. void enQueue(){ prosedur enqueue
cout<<"Masukkan elemen:"; menampilkan output untuk memasukan elemen
cin>>qu[r]; pemanggilan elemen
r++; inkremen

}
void deQueue(){ prosedur dequeue
qu[f]=0;
f++; inkremen

}
void Tampilkan(){ prosedur utk menampilkan Queue
haha i; deklarasi data i
cout<<endl<<"Queue:"<<endl;
for(i=f;i<r;i++) perulangan dengan for
cout<<qu[i]<<",";
cout<<endl<<"presss any key. ."; keluar dari outputan
}


Dengan struct
#include <iostream>

int f,r,df;
int qu[50];
void enQueue(void);
void deQueue(void);
void Tampilkan(void);
using namespace std;

struct{
int k;
int qu;
int f;
int r;
int df;
int i;
}ue;
int main(){
ue.k;
for(ue.k=0;ue.k<50;ue.k++)
ue.qu[ue.k]=0;
while(1){
cout<<"=======PILIHAN======="<<endl;
cout<<" 1) enQueue"<<endl;
cout<<" 2) deQueue"<<endl;
cout<<" 3) Tampilkan queue"<<endl;
cout<<" 4) Keluar!"<<endl;
cout<<endl;
cout<<"Masukkan pilihan (1,2,3,4) dalam melakukan Queue:";
cin>>ue.k;
if(ue.k==1)enQueue();
if(ue.k==2)deQueue();
if(ue.k==3)Tampilkan();
if(ue.k==4)break;
}
}

void enQueue(){
cout<<"Masukkan elemen:";
cin>>ue.qu[ue.r];
ue.r++;

}
void deQueue(){
ue.qu[ue.f]=0;
ue.f++;

}
void Tampilkan(){
ue.i;
cout<<endl<<"Queue:"<<endl;
for(ue.i=ue.f;ue.i<ue.r;ue.i++)
cout<<ue.qu[ue.i]<<",";
cout<<endl<<"presss any key. .";
}
output program :


Penjelasan program:
1. Tanda yang diawali dengan /* dan diakhiri tanda */ adalah
script untuk sebuah komentar atau perintah / teks, namun
jika program di run tidak akan dibaca oleh compiler, tidak
muncul di output.
2. #include adalah pengarah preprocessor yang berfungsi
untuk menginstruksikan compiler.
3. <iostream> adalah header atau library file untuk proses
input output nantinya.
4. Using namespace std adalah penyingkatan sebuah kode
5.
int f,r,df;
int qu[50];

void enQueue(void); pemanggilan prosedur enqueue
void deQueue(void); pemanggilan prosedur dequeue
void Tampilkan(void); pemanggilan prosedur tampilkan
using namespace std;
6. struct{ pemberian nama struct / pendeklarasian struct
int k;
int qu;
int f;
int r;
int df;
int i;
}ue; nama struct
7.
8. int main(){ badan program
ue.k; pendeklarasian tipedata k
for(ue.k=0;ue.k<50;ue.k++) perulangan
ue.qu[ue.k]=0;
while(1){ perulangan dengan while
cout<<"=======PILIHAN======="<<endl; menampilkan output pilihan
cout<<" 1) enQueue"<<endl; menampilkan output 1) enqueue
cout<<" 2) deQueue"<<endl; menampilkan output 2) dequeue
cout<<" 3) Tampilkan queue"<<endl; menampilkan output tampilkan
cout<<" 4) Keluar!"<<endl; menampilkan output keluar
cout<<endl; member line spacing
cout<<"Masukkan pilihan (1,2,3,4) dalam melakukan Queue:";
cin>>ue.k; pemanggilan tipedata yang telah di deklarasikan diatas
if(ue.k==1)enQueue(); pemilihan jika k adalah 1 maka memanggil prosedur
enqueue
if(ue.k==2)deQueue(); pemilihan jika k adalah 2 maka memanggil prosedur
dequeue

if(ue.k==3)Tampilkan();pemilihan jika k adalah 3 maka memanggil prosedur
tampilkan

if(ue.k==4)break; pemilihan jika k adalah 2 maka memanggil prosedur
keluar

}
}
9. void enQueue(){ prosedur enqueue
cout<<"Masukkan elemen:"; menampilkan output untuk memasukan elemen
cin>>ue.qu[ue.r]; pemanggilan elemen
r++; inkremen

}
void deQueue(){ prosedur dequeue
ue.qu[f]=0;
ue.f++; inkremen

}
void Tampilkan(){ prosedur utk menampilkan Queue
ue.i; deklarasi data i
cout<<endl<<"Queue:"<<endl;
for(ue.i=ue.f;ue.i<ue.r;ue.i++) perulangan dengan for
cout<<ue.qu[ue.i]<<",";
cout<<endl<<"presss any key. ."; keluar dari outputan
}
Dengan typedef struct
#include <iostream>

int f,r,df;
int qu[50];
void enQueue(void);
void deQueue(void);
void Tampilkan(void);
using namespace std;
typedef struct Queue{
int k;

}ue;

int main(){
Queue ue;
for(ue.k=0;ue.k<50;ue.k++)
qu[ue.k]=0;
while(1){
cout<<"=======PILIHAN======="<<endl;
cout<<" 1) enQueue"<<endl;
cout<<" 2) deQueue"<<endl;
cout<<" 3) Tampilkan queue"<<endl;
cout<<" 4) Keluar!"<<endl;
cout<<endl;
cout<<"Masukkan pilihan (1,2,3,4) dalam melakukan Queue:";
cin>>ue.k;
if(ue.k==1)enQueue();
if(ue.k==2)deQueue();
if(ue.k==3)Tampilkan();
if(ue.k==4)break;
}
}

void enQueue(){
cout<<"Masukkan elemen:";
cin>>qu[r];
r++;

}
void deQueue(){
qu[f]=0;
f++;

}
void Tampilkan(){
int i;
cout<<endl<<"Queue:"<<endl;
for(i=f;i<r;i++)
cout<<qu[i]<<",";
cout<<endl<<"presss any key. .";
}
Output program:


Penjelasan program :
1. Tanda yang diawali dengan /* dan diakhiri tanda */ adalah
script untuk sebuah komentar atau perintah / teks, namun
jika program di run tidak akan dibaca oleh compiler, tidak
muncul di output.
2. #include adalah pengarah preprocessor yang berfungsi
untuk menginstruksikan compiler.
3. <iostream> adalah header atau library file untuk proses
input output nantinya.
4. Using namespace std adalah penyingkatan sebuah kode
5.
typedef struct Queue{ pendeklarasian typedef struct
int k;

}ue; nama struct
6.

void enQueue(void); pemanggilan prosedur enqueue
void deQueue(void); pemanggilan prosedur dequeue
void Tampilkan(void); pemanggilan prosedur tampilkan
using namespace std;
7. int main(){ badan program
Queue ue;
for(ue.k=0;ue.k<50;ue.k++) perulangan
ue.qu[ue.k]=0;
while(1){ perulangan dengan while
cout<<"=======PILIHAN======="<<endl; menampilkan output pilihan
cout<<" 1) enQueue"<<endl; menampilkan output 1) enqueue
cout<<" 2) deQueue"<<endl; menampilkan output 2) dequeue
cout<<" 3) Tampilkan queue"<<endl; menampilkan output tampilkan
cout<<" 4) Keluar!"<<endl; menampilkan output keluar
cout<<endl; member line spacing
cout<<"Masukkan pilihan (1,2,3,4) dalam melakukan Queue:";
cin>>ue.k; pemanggilan tipedata yang telah di deklarasikan diatas
if(ue.k==1)enQueue(); pemilihan jika k adalah 1 maka memanggil prosedur
enqueue
if(ue.k==2)deQueue(); pemilihan jika k adalah 2 maka memanggil prosedur
dequeue

if(ue.k==3)Tampilkan();pemilihan jika k adalah 3 maka memanggil prosedur
tampilkan

if(ue.k==4)break; pemilihan jika k adalah 2 maka memanggil prosedur
keluar

}
}
8. void enQueue(){ prosedur enqueue
cout<<"Masukkan elemen:"; menampilkan output untuk memasukan elemen
cin>>qu[r]; pemanggilan elemen
r++; inkremen

}
void deQueue(){ prosedur dequeue
qu[f]=0;
f++; inkremen

}
void Tampilkan(){ prosedur utk menampilkan Queue
haha i; deklarasi data i
cout<<endl<<"Queue:"<<endl;
for(i=f;i<r;i++) perulangan dengan for
cout<<qu[i]<<",";
cout<<endl<<"presss any key. ."; keluar dari outputan
}


BAB III
KESIMPULAN
1. Struktur data Antrean (Queue) adalah suatu bentuk
khusus dari List Linier dengan operaso pemasukan data
yanh hanya diperbolehkan pada salah satu sisi, yang
disebut sisi belakang/ekor (Tail) dan operasi
penghapusan hanya diperbolehkan pada sisi yang disebut
sisi depan/kepala(Head) dari Linked list.
2. Prinsip antrean :
-FIFO (FIRST IN FIRST OUT)
-FCFS (FIRST COME FIRST SERVE)
3. OPERASI QUEUE
Create
Untuk menciptakan dan menginisialisasi queue dengan
cara membuat Head dan Tail = -1.
ISEMPTY
Untuk memeriksa apakah queue kosong
ISFULL
Untuk memeriksa apakah queue sudah penuh
ENQUEUE
Untuk menambahkan item pada posisi paling belakang.
DEQUEUE
Untuk meghapus item dari posisi paling depan
CLEAR
Untuk mengosongkan queue

Anda mungkin juga menyukai