Anda di halaman 1dari 19

MAKALAH STRUKTUR DATA

Dikerjakan Oleh:
11132293
11132049
NIM
NIM
NIM

Jolo Yoel Moses


Andre Mayheldo
Nama Lengkap
Nama Lengkap
Nama Lengkap

http://c4beginner.com/Sample-Programs/Queue/Queue-using-array.html

Akademi Manajemen Informatika dan Komputer Bina Sarana Informatika


Komputer Akuntansi Jakarta 2014

KATA PENGANTAR

Segala puji dan syukur penulis panjatkan kehadirat Tuhan


Yang Maha Esa pencipta alam semesta. Atas berkat rahmat serta
Berkatnya , pada akhirnya kami penulis dapat menyelesaikan dan
menyusun Makalah Struktur Data ini.
Makalah ini dibuat dan diajukan untuk memenuhi salah satu
tugas pada mata kuliah Struktur Data. Walaupun banyak kesulitan
dan hambatan dalam menyelesaikan makalah ini, atas kehendakNya makalah ini dapat diselesaikan.
Kami telah berusaha menyusun makalah ini sebaik mungkin.
Akan tetapi penyusun menyadari, tak ada gading yang tak retak,
begitu pula dengan makalah ini masih belum sempurna. Oleh
karena itu, semua kritik dan saran demi perbaikan makalah ini akan
penyusun sambut dengan senang hati.

Jakarta , 04 Juni 2014

Kelompok 2

Daftar Isi
Kata pengantar
Daftar Isi
BAB I : Pendahuluan
1.1 Umum
1.2 maksud dan Tujuan
1.3 Ruang lingkup Pembahasan
BAB II : Landasan teori
2.1 Deskripsi Queue
2.3 Karakteristik Queue
BAB III : Pembahasan
3.1 Source code program Queue
3.2 Output program Queue

: ....................................................

: ....................................................

: ...................................................
: ...................................................
: ...................................................

3
4
4

: ...................................................
: ...................................................

5
6

: ...................................................
: ...................................................

7
8

BAB I
PENDAHULUAN

1.1. Umum
Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang
penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung
penghapusa disebut front/head.Fenomena yang muncul adalah elemen yang lebih
dulu disisipkan akan juga lebih dulu diambil. Queueberdisiplin FIFO (First In, First
Out). Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu
maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh
kerja paling optimal.
Karakteristik Queue memang terbatas, tetapi Queue merupakan dasar
penyelesaian masalah-masalah besar, seperti simulasi fenomena antrian di dunia
nyata, serta fenomena antrian di pengolahan data. Beberapa fenomena dunia nyata
berupa antrian diantaranya : antrian pembelian tiket di depan oket untuk bis, kereta
api, bioskop; antrian mobil di depan gerbang jalan tol; antrian kendaraan di jalanan
umum; dll.
Representasi Queue dapat dilakukan dengan dua cara, yaitu:
1. Representasi Sekuen
Representasi Sekuen linear
Representasi Sekuen Melingkar
2. Representasi Dinamis

Pembahasan Representasi sekuen menggunakan array pada setiap


pengoprasiannya, sedangkan Representasi dinamis biasanya menempati memori
berupa Record keduanya dideklarasikan menggunakan bahasa pemograman pascal.

1.2. Maksud dan Tujuan


a. Maksud
Untuk memenuhi Nilai Tugas Struktur Data tentang Queue mengunakan Array
b. Tujuan
1. Sebagai salah satu syarat mendapatkan nilai matakuliah Struktur Data.
2. Untuk menambah pengetahuan Program Queue pada program C++
3. Untuk menambah pengetahuan dalam pembuatan makalah.

1.3. Ruang Lingkup Pembahasan


Berisikan ruang lingkup dari materi yang dibahas didalam tugas ini.

BAB II
LANDASAN TEORI

2.1. Deskripsi Queue


Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang
penghapusan di ujung lain. Ujung penyisipan biasa disebutrear/tail, sedang ujung
penghapusa disebut front/head. Fenomena yang muncul adalah elemen yang lebih
dulu disisipkan akan juga lebih dulu diambil. Queue berdisiplin FIFO (First In, First
Out). Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu
maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh
kerja paling optimal.
misalnya Queue Q= (a1,a2,a3,an), maka
1. Elemen a1 adalah elemen paling depan
2. Elemen ai adalah diatas elemen ai-1, di mana 1<i<n.
3. Elemen an adalah elemen paling belakang
Head (atau front) menunjuk ke awal antrian Q (atau elemen terdepan),
sedangkan tail ( rear) menunjuk akhir antrian Q (atau elemen paling
belakang).Disiplin FIFO pada Queue berimplikasi jika elemen A, B, C, D, E
dimasukkan ke Queue, maka penghapusan/pengambilan elemen akan terjadi
dengan urutan A, B, C, D, E.

2.2 Karakteristik Queue


Karakteristik penting antrian sebagai berikut :
1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian.
2. Head/front (elemen terdepan dari antrian ).
3. Tail/rear (elemen terakhir dari antrian ).
4. Jumlah elemen pada antrian (count).
5. Status/kondisi antrian.
Kondisi antrian yang menjadi perhatian adalah :
1.

Penuh

Bila elemen di antrian mencapai kapasitas maksimum antrian. Pada kondisi ini,
tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan
kondisi kesalahan Overflow.
2.

Kosong

Bila tidak ada elemen di antrian. Pada kondisi ini, tidak mungkin dilakukan
pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi
kesalahan Underflow.

2.3. operasi operasi Queue


1. Create()
Untuk menciptakan dan menginisialisasi Queue dengan cara
membuat Head dan Tail = -1

Gambar 2.2.1 Deklarasi Queue operasi create ( )

2. IsEmpty
Digunakan untuk memeriksa apakah Antrian sudah penuh
atau belum Dengan cara memeriksa nilai Tail, jika Tail = -1 maka
empty Kita tidak memeriksa Head, karena Head adalah tanda untuk
kepala antrian (elemen pertama dalam antrian) yang tidak akan
berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan
elemen Antrian kebelakang, yaitu menggunakan nilai Tail.

Gambar 2.2.2 Deklarasi Queue operasi IsEmpty

3. IsFull
Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara
mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array
pada C) berarti sudah penuh

2.2.3 Deklarasi Queue operasi IsFull

4. Enqueue
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

2.2.4 Deklarasi Queue operasi Enquene

5. 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.

2.2.5 Deklarasi Queue operasi Dequene

6. Clear()
Untuk menghapus elemen-elemen Antrian dengan cara
membuat Tail dan Head = -1 Penghapusan elemen-elemen Antrian
sebenarnya tidak menghapus arraynya, namun hanya mengeset
indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen
Antrian tidak lagi terbaca

i. Deklarasi Queue operasi clear

7. Tampil()
Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping
dari head sampai tail

2.2.7 Deklarasi Queue operasi Tampil

BAB III
PEMBAHASAN

3.1. Source Code Program Queue


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

#include<stdlib.h>
#define SIZE 5
int q[SIZE],front=0,rear=0;
void main()
{
int ch;
clrscr();
void enqueue();
void dequeue();
void display();
while(1)
{
Cout<< -==== Program Queue ====-;
Cout<< -------------------------------------;
cout<<"\n 1. Masukan element";
cout<<"\n 2. Hapus element";
cout<<"\n 3.Tampilkan element Queue";
cout<<"\n 4.Keluar dari Program";
cout<<"\n Masukan Pilihan anda :";
Cout<< -------------------------------------;

cin>>ch;
clrscr();
switch(ch)
{
case 1:
enqueue();
break;
case 2:
dequeue();
break;
case 3:
display();
break;
case 4:
exit(0);
default:
cout<<"\n invalid choice";
}
}
}
void enqueue()

{
int no;
if (rear==SIZE && front==0)
cout<<"queue sudah penuh ";
else
{
cout<<"Masukan Angka yang anda inginkan :";
cin>>no;
q[rear]=no;
}
rear++;
}
void dequeue()
{
int no,i;
if (front==rear)
cout<<"queue kosong";
else
{
no=q[front];
front++;

cout<<"\n"<<no<<" Dikeluaran dari Queue\n";


}
}
void display()
{
int i,temp=front;
if (front==rear)
cout<<"the queue is empty";
else
{
cout<<"\n element in the queue:";
for(i=temp;i<rear;i++)
{
cout<<q[i]<<" "; }}}

3.2. Output Program Queue dengan Array


Tampilan awal program Queue denga Array

Gambar 3.1. Tampilan awal program Queue

DAFTAR PUSTAKA

Berisikan literatur buku-buku atau daftar bacaan yang digunakan didalam pembuata
tugas ini. Jika terdapat nama penulis 2 kosa kata, misal Moh. Sjukani, maka

penuisannya menjadi Sjukani, Mohammad. Penulisan daftar pusataka harus berurut


secara ascending / urut abjad. Berikut contoh penulisan daftar pusataka:

Frieyadie. 2008. Panduan Pemrograman C++. Yogyakarta: Andi


Munir. Rinaldi. 2007. Algoritma dan Pemrograman. Bandung: Informatika
Sjukani, Moh. 2009. Struktur Data (Algoritma dan Struktur Data 2, Edisi 3 dengan C,
C++. Jakarta: Mitra Wacana Media