Anda di halaman 1dari 11

LAPORAN

PRAKTIKUM STRUKTUR DATA

PERCOBAAN 4

(STACK DAN QUEUE)

DISUSUN OLEH :

FATIMAH

F52122030

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNIK
UNIVERSITAS TADULAKO
TAHUN 2023
BAB I
PENDAHULUAN
1.1 Latar Belakang
1. Stack
Tipe data stack adalah salah satu struktur data yang digunakan dalam pemrograman
komputer. Stack adalah struktur data yang memungkinkan elemen-elemennya diakses dan
dimanipulasi secara berurutan, mirip seperti tumpukan buku-buku yang diletakkan di atas meja.
Namun, akses dan manipulasi hanya dapat dilakukan pada elemen teratas dari tumpukan,
sedangkan elemen-elemen di bawahnya tidak dapat diakses atau dimanipulasi secara langsung.

Stack memiliki prinsip kerja yang mirip dengan tumpukan buku-buku di atas meja,
yaitu "Last-In, First-Out" (LIFO), yang berarti elemen terakhir yang dimasukkan ke dalam
stack akan menjadi elemen teratas dari stack, dan elemen yang pertama kali dimasukkan akan
menjadi elemen terbawah dari stack.

Stack sering digunakan dalam berbagai aplikasi, seperti dalam pemrosesan ekspresi
matematika, evaluasi fungsi rekursif, pemanggilan fungsi dalam bahasa pemrograman, dan
sebagainya. Dalam implementasinya, stack dapat diimplementasikan menggunakan array,
linked list, atau bahkan menggunakan struktur data lainnya, seperti tree atau graph.

2. Queue
Tipe data queue adalah salah satu struktur data yang penting dalam pemrograman
komputer. Queue (antrian) sendiri adalah salah satu konsep yang sudah umum digunakan
dalam kehidupan sehari-hari, seperti saat menunggu antrean di bank, restoran cepat saji, dan
lain sebagainya.

Dalam konteks pemrograman komputer, queue merupakan struktur data linier yang
mengikuti prinsip FIFO (First In First Out), artinya elemen pertama yang masuk ke dalam
queue akan menjadi elemen pertama yang keluar dari queue. Konsep ini mirip dengan antrean
di kehidupan nyata, dimana orang yang pertama kali datang akan dilayani terlebih dahulu.

Dalam queue, elemen baru (atau disebut juga enqueue) selalu dimasukkan di bagian belakang
(atau ujung ekor) dari antrian, dan elemen yang keluar (atau disebut dequeue) selalu diambil
dari bagian depan (atau ujung kepala) dari antrian. Contoh sederhana penggunaan queue adalah
ketika kita menunggu giliran untuk memasuki wahana di sebuah taman bermain.
1.2 Tujuan Pembelajaran
1. Stack
Ada beberapa tujuan belajar tipe data stack, antara lain:
1. Struktur data penting:
Stack adalah salah satu jenis struktur data yang paling penting dalam pemrograman.
Stack digunakan dalam banyak aplikasi, termasuk penguraian ekspresi matematika,
pengecekan sintaksis, manajemen memori, dan masih banyak lagi.
2. Pengoptimalan kode:
Stack dapat digunakan untuk mengoptimalkan kode dalam beberapa situasi. Misalnya,
jika Anda perlu mengembalikan nilai-nilai secara terbalik, Anda dapat menggunakan stack
untuk membalik urutan nilai-nilai tersebut.
3. Struktur data yang mudah digunakan:
Stack adalah struktur data yang mudah digunakan dan dipelajari. Implementasi stack
relatif sederhana, dan struktur data ini dapat digunakan dalam berbagai situasi.
4. Peningkatan kemampuan algoritma:
Stack sering digunakan dalam algoritma dan pemecahan masalah. Dengan belajar stack,
kita akan dapat memahami algoritma yang menggunakan struktur data ini dan
meningkatkan kemampuan kita dalam memecahkan masalah secara efektif dan efisien.

2. Queue
Tujuan belajar tipe data queue adalah untuk mempelajari sebuah struktur data yang berguna
dalam mengelola kumpulan data dengan urutan yang diperhatikan. Queue merupakan sebuah
struktur data yang mirip dengan antrian pada umumnya, dimana elemen-elemen baru
ditambahkan di bagian belakang dan elemen-elemen yang sudah ada di dalam queue akan
bergeser ke depan, sehingga elemen yang berada di bagian depan akan menjadi elemen yang
paling awal untuk dihapus.

Berikut beberapa tujuan dari belajar tipe data Queue:


1. Membantu dalam pemrosesan data secara berurutan, terutama pada kasus-kasus dimana
data harus diproses sesuai dengan urutan kedatangannya.
2. Mempermudah implementasi algoritma yang memerlukan pengolahan data dalam urutan
tertentu, seperti algoritma Breadth-First Search (BFS) pada graf.
3. Dapat digunakan dalam banyak aplikasi, seperti pemrosesan pesan, manajemen proses pada
sistem operasi, atau dalam pembangunan sistem yang memerlukan pengolahan data secara
berurutan.
BAB II
LANDASAN TEORI
2.1 Teori Dasar
1. Stack
Stack umumnya memiliki dua operasi dasar, yaitu push (menambahkan elemen ke
dalam stack) dan pop (mengeluarkan elemen dari stack). Selain itu, stack juga memiliki
operasi peek untuk melihat elemen teratas pada stack tanpa mengeluarkannya, serta
isEmpty untuk memeriksa apakah stack kosong atau tidak.

Stack digunakan dalam banyak aplikasi, seperti algoritma pemrosesan ekspresi


aritmatika, algoritma pencarian rute dalam graf, dan manajemen memori pada komputer.
Dalam bahasa pemrograman Python, stack dapat diimplementasikan dengan menggunakan
list. List di Python memiliki fungsi append untuk menambahkan elemen ke dalam list dan
fungsi pop untuk menghapus elemen terakhir dari list. Kita dapat memanfaatkan fungsi-
fungsi tersebut untuk membuat implementasi stack sederhana.

Berikut adalah contoh implementasi stack dalam Python menggunakan list:


stack = []

# menambahkan elemen ke dalam stack


stack.append(1)
stack.append(2)
stack.append(3)
# menghapus elemen terakhir dari stack
stack.pop()
# melihat elemen teratas pada stack
top_element = stack[-1]
# memeriksa apakah stack kosong
is_empty = len(stack) == 0

Dalam contoh di atas, kita membuat sebuah list kosong stack. Kemudian, kita
menambahkan tiga elemen ke dalam stack menggunakan fungsi append. Setelah itu, kita
menghapus elemen terakhir dari stack menggunakan fungsi po4p. Untuk melihat elemen
terata pada stack, kita menggunakan indeks -1 pada list, yang mengakses elemen terakhir.
Terakhir, kita memeriksa apakah stack kosong dengan memeriksa panjang list
menggunakan fungsi len dan membandingkannya dengan 0.
2. Queue
Queue umumnya memiliki dua operasi dasar, yaitu enqueue (menambahkan elemen
ke dalam queue) dan dequeue (mengeluarkan elemen dari queue). Selain itu, queue juga
memiliki operasi peek untuk melihat elemen pertama pada queue tanpa mengeluarkannya,
serta isEmpty untuk memeriksa apakah queue kosong atau tidak.Contoh sederhana
penggunaan queue adalah ketika kita menunggu giliran untuk memasuki wahana di sebuah
taman bermain. Orang yang datang lebih dulu akan ditempatkan di depan orang yang
datang kemudian, dan orang yang berada di depan antrian akan dilayani terlebih dahulu.

Dalam bahasa pemrograman Python, queue dapat diimplementasikan dengan


menggunakan deque dari modul collections. deque adalah struktur data yang mirip dengan
list, namun memiliki performa yang lebih baik untuk operasi-operasi yang membutuhkan
penambahan atau penghapusan elemen di awal atau akhir deque.

Berikut adalah contoh implementasi queue dalam Python menggunakan deque:

from collections import deque


queue = deque()

# menambahkan elemen ke dalam queue


queue.append(1)
queue.append(2)
queue.append(3)
# mengeluarkan elemen pertama dari queue
first_element = queue.popleft()
# melihat elemen pertama pada queue
top_element = queue[0]
# memeriksa apakah queue kosong
is_empty = len(queue) == 0

Dalam contoh di atas, kita mengimpor deque dari modul collections. Kemudian, kita
membuat sebuah deque kosong queue. Setelah itu, kita menambahkan tiga elemen ke dalam
queue menggunakan fungsi append. Untuk mengeluarkan elemen pertama dari queue, kita
menggunakan fungsi dequeue. Untuk melihat elemen pertama pada queue, kita dapat
mengakses elemen pada indeks 0. Terakhir, kita memeriksa apakah queue kosong dengan
memeriksa panjang deque menggunakan fungsi len dan membandingkannya dengan 0.
BAB III
PROSEDUR KERJA
3.1 Screnshoot codingan
1. Stack
a. Membuat class stack

b. Membuat list untuk memeriksa apakah stack kosong

c. Membuat list untuk menambahkan item ke stack

d. Membuat list untuk menambahkan elemen ke stack

e. Membuat list untuk memenghapus elemen teratas dari stack


f. Membuat list untuk memenggil output

2. Queue
a. Class queue

b. Membuat list untuk memriksa apakah queue kosong

c. Membuat list untuk menambahkan elemen ke queue


d. Membuat list untuk menghapus elemen pertama dari queue

e. Membuat list untuk melihat jumlah elemen di queue

f. Membuat list untuk memnggil ouput

BAB IV
HASIL PERCOBAAN
3.2 Output
1. Stack

Gambar diatas merupakan output dari list class stack yang dibuat dan menghasilkan output
“ 3, 3, 2, 1, ”
2. Queue

Gambar diatas merupakan output dari list class queue yang di buat dan menghasilakan
output “ Queue, Amar, Rahma, Irfan dan 0”.
BAB V
PENUTUP
5.1 Kesimpulan
Tipe data stack adalah salah satu struktur data yang digunakan dalam pemrograman
komputer. Stack adalah struktur data yang memungkinkan elemen-elemennya diakses dan
dimanipulasi secara berurutan, mirip seperti tumpukan buku-buku yang diletakkan di atas meja.
Namun, akses dan manipulasi hanya dapat dilakukan pada elemen teratas dari tumpukan,
sedangkan elemen-elemen di bawahnya tidak dapat diakses atau dimanipulasi secara langsung.

Tipe data queue adalah salah satu struktur data yang penting dalam pemrograman
komputer. Queue (antrian) sendiri adalah salah satu konsep yang sudah umum digunakan
dalam kehidupan sehari-hari, seperti saat menunggu antrean di bank, restoran cepat saji, dan
lain sebagainya. Contoh sederhana penggunaan queue adalah ketika kita menunggu giliran
untuk memasuki wahana di sebuah taman bermain.

Setelah mempelajari tipe data stack dan queue, dapat disimpulkan bahwa keduanya adalah
struktur data yang berguna untuk mengelola koleksi item. Stack dan queue memiliki beberapa
perbedaan dalam cara mereka mengelola item dalam koleksi.

Stack adalah tipe data yang memungkinkan item ditambahkan atau dihapus hanya pada satu
ujung, yang disebut "top". Konsep ini dikenal sebagai LIFO (Last-In, First-Out), yang berarti
item yang terakhir ditambahkan ke stack adalah yang pertama dihapus. Stack sering digunakan
dalam konteks memanggil fungsi (function call), pemrosesan ekspresi aritmatika, dan
pengelolaan memori. Dalam bahasa pemrograman Python, stack dapat diimplementasikan
dengan menggunakan list.

Sementara itu, queue adalah tipe data yang memungkinkan item ditambahkan hanya di satu
ujung (yang disebut "rear") dan dihapus dari ujung yang berlawanan (yang disebut "front").
Konsep ini dikenal sebagai FIFO (First-In, First-Out), yang berarti item yang pertama
ditambahkan ke queue adalah yang pertama dihapus. Queue sering digunakan dalam konteks
antrian (queue) pelangga, pengiriman pesan, dan pemrosesan jaringan.

Dalam kedua kasus, item dapat diakses hanya melalui ujung yang ditentukan, dan urutan
item yang ada dalam koleksi selalu dipertahankan. Memahami tipe data stack dan queue dapat
membantu dalam pemecahan masalah dan optimasi algoritma dalam pemrograman.
DAFTAR PUSTAKA

Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms. MIT
Press.
Structures. Addison-Wesley Professional.
Sahni, S. (2007). Data Structures, Algorithms, and Applications in Java. McGraw-Hill Higher
Education.
Drozdek, A. (2005). Data Structures and Algorithms in C++. Thomson Course Technology.
Holub, A. I. (2006). Compiler Design in C. Prentice Hall.
Sedgewick, R., & Wayne, K. (2011). Algorithms. Addison-Wesley Professional.
Goodrich, M. T., Tamassia, R., & Mount, D. M. (2015). Data Structures and Algorithms in Python.
John Wiley & Sons.
Bailey, D. A. (2007). Java Structures: Data Structures in Java for the Principled Programmer.
McGraw-Hill Higher Education.

Anda mungkin juga menyukai