SD Modul 3
SD Modul 3
1
JANUARI 25, 2024
[STRUKTUR DATA]
MODUL 3, STACK & QUEUE
DISUSUN OLEH:
IZZA IHSAN FATHONY
MOCH IQBAL ARIZKI WIDYANSYAKH
DIAUDIT OLEH:
MUHAMMAD ILHAM PERDANA. S.TR.T., M.T.
LAB. INFORMATIKA
UNIVERSITAS MUHAMMADIYAH MALANG
Laboratorium Informatika
[STRUKTUR DATA]
PERSIAPAN MATERI
Mahasiswa diharapkan mempelajari materi praktikum dengan baik, sesuai dengan materi yang diberikan
oleh dosen pengajar dikelas. Terutama dalam penerapan materi OOP JAVA:
1. Array
2. LinkedList
3. Stack
4. Queue
TUJUAN
Mahasiswa mampu menguasai dan menjelaskan konsep dari Struktur Data Stack & Queue.
TARGET MODUL
Mahasiswa mampu memahami:
1. Contoh penggunaan Stack
2. Contoh penggunaan Queue
3. Contoh pengoperasian Stack
4. Contoh pengoperasian Queue
PERSIAPAN SOFTWARE/APLIKASI
1. Java Development Kit
2. Java Runtime Environment
3. IDE (Intellij IDEA, Eclipse, Netbeans, dll)
REFERENSI MATERI
Youtube:
https://www.youtube.com/results?search_query=stack+dan+queue+java
https://youtu.be/hj6E7LyZKNI?si=SpnDNBP1LGgFppsP
https://www.youtube.com/watch?v=3F5kq-4jxPI
Artikel:
https://www.scaler.com/topics/java/stack-and-queue-in-java/
https://www.educative.io/blog/data-structures-stack-queue-java-tutorial
https://www.geeksforgeeks.org/queue-using-stacks/
Note: Dari referensi tersebut mungkin terdapat sedikit perbedaan satu sama yang lain, cukup pahami
konsepnya dan terapkan pada kasus di modul ini.
MATERI POKOK
1. Stack
Sebuah stack dapat dianalogikan dengan suatu tumpukan benda, sekumpulan data yang
diletakkan diatas data yang lain. Elemennya dapat di ambil dan di tambahkan pada posisi
akhir/puncak (top) saja. Data yang terletak ditengah atau berada paling bawah dapat di abil apabila
data yang terletak di atas nya sudah diambil terlebih dahulu.
Operasi stack dapat dilakukan pada elemen pada top dari stack. Yaitu Push() menambah item pada
top, Pop() menghapus elemen dari top, Peek() mengakses nilai pada top. Stack memiliki urutan LIFO
(Last-In-First-Out).
2. Queue
Queue adalah kumpulan data yang mana penambahan elemennya hanya dapat dilakukan di satu
sisi yang disebut belakang (tail), dan penghapusan elemennya dilakukan pada sisi lain atau bisa
disebut sisi depan (head).
Operasi queue bekerja pada ujung list, head, dan tail. Berbeda dengan stack, queue memiliki urutan
FIFO (First-In-First-Out). Enqueue() menambah item pada tail dan Dequeue() menghapus item pada
head.
Dalam kehidupan sehari-sehari queue dapat dianalogikan seperti antrian pada penjualan tiket
kereta api, Dimana orang yang pertama dating adalah orang yang pertama kali dilayani untuk
membeli tiket. Jika ada orang baru yang dating akan membeli tiket, maka posisinya berada pada
urutan paling belakang dalam antrian tersebut. Orang yang berada pada posisi terakhir dalam antrian
adalah yang terakhir kali dapat dilayani dan memperoleh tiket kereta api (kalau kurang beruntung,
maka akan kehabisan tiket).
A. Method pada Interface Queue
Method Description
Metode ini digunakan untuk menambahkan elemen di akhir dari sebuah
add (element)
queue. Secara khusus, elemen ditambahkan di bagian terakhir dari linked-list
jika digunakan, atau sesuai dengan prioritas dalam implementasi priority
queue.
Metode ini digunakan melihat elemen yang berada di kepala antrian tanpa
peek()
menghapusnya. Metode ini akan mengembalikan Null jika antrian kosong.
Metode ini digunakan untuk menyisipkan suatu elemen dalam antrian. Metode
offer(element)
ini lebih disukai dibandingkan metode add() karena metode ini tidak
melemparkan pengecualian ketika kapasitas wadah penuh, melainkan
mengembalikan False.
Metode ini mirip dengan peek(). Metode ini melemparkan
element()
NoSuchElementException ketika antrian kosong.
Metode ini menghapus dan mengembalikan elemen yang berada di kepala
poll()
antrian. Metode ini mengembalikan Null jika antrian kosong.
Metode ini menghapus dan mengembalikan elemen yang berada di kepala
remove()
antrian. Metode ini melemparkan NoSuchElementException ketika antrian
kosong.
CODELAB
LATIHAN 1
Tulislah kembali program nomor 3A (Stack menggunakan library) dengan jelas dan benar agar
memahami hasil output dari program dan menambah pemahaman.
LATIHAN 2
Tulislah Kembali program nomor 4A (Queue menggunakan library) dengan jelas dan benar agar
memahami hasil output dari program dan menambah pemahaman.
TUGAS
TUGAS 1
Buatlah program sederhana untuk mengelola riwayat navigasi pada sebuah browser. Berikut adalah
ketentuan tugas:
1. Method visitURL(), program harus dapat mengunjungi URL baru yang dimasukkan pengguna dan
menyimpannya dalam riwayat navigasi.
2. Method back(), program harus dapat mengembalikan pengguna ke URL sebelumnya dalam riwayat
navigasi.
3. Method forward(), program harus dapat mengarahkan pengguna ke URL berikutnya dalam riwayat
navigasi.
4. Method getCurrentURL(), program harus menampilkan URL yang sedang diakses pengguna.
TUGAS 2
Buatlah program sederhana untuk pemesanan tiket menggunakan Queue. Berikut adalah ketentuan
tugas:
1. Program harus meminta input pengguna untuk jumlah tiket yang ingin dipesan dan setiap tiket harus
mencakup informasi seperti nama pemesan dan jumlah tiket.
2. Setiap pemesanan harus dimasukkan ke dalam Queue.
3. Program harus dapat menambahkan, menampilkan, dan menghapus dari Queue.
4. Setiap pemesanan harus diberi nomor unik untuk identifikasi.
Mahasiswa diperbolehkan melakukan improvisasi dari tugas yang diberikan dengan syarat tidak
mengurangi ketentuan yang ada.
Catatan:
1. Tugas 1: Buat Stack secara manual tidak diperkenankan menggunakan library.
2. Tugas 2: Buat Queue secara manual tidak diperkenankan menggunakan library.
Kriteria Nilai
Codelab 1 10
Codelab 2 10
Tugas 1 30
Tugas 2 30
Pemahaman 20
Total 100