Anda di halaman 1dari 18

LAPORAN HASIL PRAKTIKUM

STRUKTUR DATA

NAMA : DHEA KRISTINA


NIM : 203010503008
KELAS :C
MODUL : II (QUEUE DAN STACK)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2021
BAB I
PENDAHULUAN

A. TUJUAN
1. Mahasiswa memahami konsep dari Queue dan Stack.
2. Mahasiswa mampu mengimplementasikan Queue dan Stack.

B. LANDASAN TEORI
1. Queue
Queue (antrian) dapat diartikan sebagai suatu kumpulan data yang
seolah-olah terlihat seperti ada data yang diletakkan di sebelah data yang
lain seperti pada gambar 1, dimana data masuk melalui lorong di sebelah
kanan dan masuk dari terowongan sebelah kiri. Hal ini membuat antrian
bersifat FIFO (First In First Out), beda dengan stack yang berciri LIFO.

Contoh yang paling populer untuk membayangkan sebuah queue adalah


antrian pada kasir sebuah bank. Ketika seorang pelanggan datang, akan
menuju ke belakang dari antrian. Setelah pelanggan dilayani, antrian yang
berada di depan akan maju. Pada saat menempatkan elemen pada ujung
(tail) dari queue disebut dengan enqueue, pada saat memindahkan elemen
dari kepala (head) sebuah queue disebut dengan dequeue. Pada gambar 2
diperlihatkan sebuah queue serta proses enqueue dan dequeue.
Karakteristik penting dari antrian adalah :
a. Elemen, antrian yaitu item-item data yang terdapat didalam antrian.
b. Front (elemen terdepan dari antrian).
c. Rear (elemen terakhir dari antrian).
d. Count (jumlah elemen pada antrian).
Operasi yang dapat dilakukan pada queue pada umunya terdapat 6
operasi yaitu create, initialization, isEmpty, isFull, clear, enqueue dan
dequeue. Namun hanya tiga operasi utama pada queue yang akan
dijelaskan, yaitu :
a. Create
Untuk menciptakan queue menggunakan perintah struct dan
menginisialisasi Queue dengan cara membuat Head dan Tail = -1.
Beberapa orang memulai index queue dari -1 dan ada juga yang dari 0.;
#define MAX 8
Struct Queue{
Int elemen[MAX}
Int front,rear,count;
};

b. Enqueue
Untuk menambahkan elemen ke dalam Antrian, penambahan
elemen selalu ditambahkan di elemen paling belakang. Penambahan
elemen selalu menggerakan variabel Rear dengan cara increment
counter Rear terlebih dahulu.
void Enqueue(int data, Queue *Q){
Q->elemen[Q->rear] = data;
Q->rear++;
Q->count++;
}

c. Dequeue
Digunakan untuk menghapus elemen terdepan/pertama (head) dari
antrian dengan cara menggeser semua elemen antrian kedepan dan
mengurangi Tail dengan 1 Penggeseran dilakukan dengan
menggunakan looping.
void Dequeue(Queue *Q){
int keeper = Q->elemen[Q->front];
for(int i = Q->front; i<Q->rear; i++){
Q->elemen[i]=Q->elemen[i+1];
}
Q->rear--;
Q->count--;
}

2. Stack
Pengertian Stack pada Struktur Data adalah sebagai tumpukan dari
benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain,
koleksi dari objek-objek homogen, atau suatu urutan elemen yang
elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja.
Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak
yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya.
Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima,
dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari
N kotak.

Gambar 2.2 Ilustrasi Stack.


Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak
yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya.
Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima,
dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari
N kotak.
Stack bersifat LIFO (Last In First Out) artinya Benda yang terakhir
masuk ke dalam stack akan menjadi yang pertama keluar dari stack.
Operasi-operasi yang biasanya terdapat pada Stack mirip dengan queue.
Adapun 2 operasi utama pada stack yaitu:
a. Push : digunakan untuk menambah item pada stack pada tumpukan
paling atas.
void Push(int data, Queue *Q){
Q->elemen[Q->top] = data;
Q->top++;
}

b. Pop : digunakan untuk mengambil item pada stack pada tumpukan


paling atas
void pop(Queue *Q){
int keeper=Q->elemen[Q->top];
Q->top--;
}
Cara mendefenisikan Stack dengan Array of Struct yaitu dengan
menggunakan struct, stack hanya memiliki karateristik berupa top dan
bottom sebagai penanda awal dan akhir serta elemennya itu sendiri.
Definisikan konstanta MAX_STACK untuk menyimpan maksimum
is i stack kemudian buatlah variabel array data sebagai
implementasi stack.
#define MAX_STACK 10

struct Stack{
int elemen_array[MAX_STACK];
int top;
int bottom;
};
BAB II
PEMBAHASAN

1. Program data musik yang mampu melakukan Dequeue (FIFO) dan Pop (LIFO).
Input program seperti gambar dibawah ini :
Gambar 2.1 (Input program)
Program diatas merupakan program data list musik yang menggunakan
Dequeue (FIFO) dan Pop (LIFO) pada struct datanya. Bagian pertama diawali
dengan file header,yaitu pada program ini menggunakan header “iostream”,
"iostream" merupakan file program yang mengandung deklarasi kelas-kelas
yang diperlukan. Kemudian dilanjutkan dengan “#define MAX 10”, kata kunci
“define” digunakan untuk membuat konstanta dengan batas maksimum 10.
Kemudian dilanjutkan dengan “using name std”, using name std menyatakan
bahwa program di atas akan menggunakan namespace yang bernama std,
sehingga tidak perlu untuk menyertakan identitas std: pada anggota dari
namespace std salah satunya adalah cout.
Bagian selanjutnya adalah struct queue, struct ini digunakan untuk
menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja dan
terdapat variabel judul dan penyanyi yang memiliki tipe data string. Kemudian
void create, void create digunakan untuk mengkosongkan queue yang sudah
dimasukan. Lalu function IsEmpty, IsEmpty berfungsi untuk menentukan
apakah antrian masih kosong atau tidak, apabila antrian kosong maka bernilai
true, apabila antrian penuh maka bernilai false. Kemudian IsFull, digunakan
untuk melakukan pengecekan apakah antrian sudah penuh atau belum. Pada
function ini menggunakan “bool’ yang memilik nilai “true” dan “false”, apabila
antrian penuh maka bernilai true, apabila antrian kosong maka bernilai false.
Selanjutnya function enqueue, function enqueue digunakan untuk menginputkan
data. Selanjutnya adalah function dequeue, dequeue digunakan untuk
menghapus inputan pertama yang dimasukan. Selanjutnya void pop, pop
digunakan untuk menghapus data yang terakhir kali dimasukan. Selanjutnya
void tampil, void tampil digunakan untuk mencetak semua tampilan.
Selanjutnya clear, clear digunakan untuk menghapus semua data yang telah
dimasukan. Bagian selanjutnya adalah fuction utama, pada bagian ini dilakukan
pemilihan menu yang menggunakan operasi if else if yang berarti jika dipilih
menu pertama maka akan dilakukan penginputan data, kemudian jika dipilih
menu kedua maka system akan menghapus data yang pertama kali dimasukan,
jika dipilih menu ketiga maka system akan menghapus data terakhir yang
dimasukan, jika dipilih menu keempat maka semua data yang telah dimasukan
akan ditampilkan, jika menu kelima maka semua data yang telah dimasukan
akan dihapus dan jika menu keenam yang dipilih, maka output program selesai.
Output program seperti gambar dibawah ini :

Gambar 2.2 (Output program menu 1)

Gambar 2.3 (Output program menu 2)


Gambar 2.4 (Output program menu 3)

Gambar 2.5 (Output program menu 4)

Gambar 2.6 (Output program menu 5)


Gambar 2.7 (Output program menu 6)
BAB III
KESIMPULAN

Queue merupakan suatu kumpulan data yang memiliki head/front dimana


data dikeluarkan (dequeue) dan tail/rear dimana data dimasukkan (enqueue) ke
antrian. stack adalah struktur data yang menggunakan konsep LIFO(Last In First
Out), LIFO adalah elemen terakhir yang disimpan dalam stack menjadi elemen
pertama yang diambil.
DAFTAR PUSTAKA

Modul Struktur Data Universitas Palangkaraya Diakses pada Sabtu, 3 April 2021
pukul 16.12 WIB.

Materidosen, 21 Maret 2017, Pengertian, Cara Membuat dan Contoh Konstanta


dalam C++, http://www.materidosen.com/2017/03/pengertian-cara-
membuat-dan-contoh.html Diakses pada Sabtu, 3 April 2021 pukul 14.38
WIB.
LAMPIRAN

Program data musik


Gambar 1 (Input program)
Gambar 2 (Output program menu 1)

Gambar 3 (Output program menu 2)


Gambar 4 (Output program menu 3)

Gambar 5 (Output program menu 4)

Gambar 6 (Output program menu 5)


Gambar 7 (Output program menu 6)

Anda mungkin juga menyukai