Modul 03 - Stack Dan Queue
Modul 03 - Stack Dan Queue
KOMPETENSI
1. Mahasiswa mampu memahami konsep dari stack dan queue.
2. Mahasiswa mampu mengetahui perbedaan antara stack dan queue.
3. Mahasiswa mampu mengimplementasikan stack dan queue ke dalam program.
DASAR TEORI
STACK/TUMPUKAN
• Merupakan struktur data dimana semua penyisipan dan penghapusan entri dibuat pada salah
satu ujung yang disebut TOP (puncak) tumpukan.
• Menggunakan prinsip kerja LIFO (Last In First Out)
• Operasi dasar pada stack:
- Inisialisasi (create stack)
Untuk menginisialisasi tumpukan, menyiapkan tempat yang nantinya digunakan untuk
menyimpan tumpukan.
- Cek kosong (isEmpty)
Melakukan pengecekan apakah tumpukan kosong atau tidak.
- Cek penuh (isFull)
Untuk mengecek apakah tumpukan penuh atau tidak.
- Tambah stack (PUSH)
Untuk menambah elemen ke dalam tumpukan.
- Ambil dari tumpukan (POP)
- Untuk mengambil sebuah elemen dari tumpukan.
• Deklarasi Stack
int size;
long stack[];
int top;
• Inisalisasi Stack
• Fungsi PUSH
• Fungsi POP
PERCOBAAN STACK
1. Buatlah sebuah project pada Netbeans untuk mencoba membuat stack dengan pemrograman
Java.
2. Untuk membuat program stack, kita dapat mengimport library stack dengan cara mengetikkan:
3. Setelah itu kita membuat sebuah objek stack dengan namaStack1 dengan cara mengetikkan:
4. Untuk mengecek apakah objek yang kita buat itu kosong/isi dilakukan dengan cara membuat
suatu variabel yang akan menyimpan dari nilai luaran method isEmpty (bernilai boolean:
true/false). Caranya:
5. Berikutnya kita akan melakukan proses PUSH (memasukkan data ke dalam stack). Misalnya kita
ingin memasukkan elemen angka 8 ke dalam stack dan melihat hasilnya, maka dapat dilakukan
dengan cara mengetikkan perintah di bawah ini:
Hasilnya:
6. Kita coba sekali lagi dengan menambahkan beberapa elemen lain ke dalam stack.
Hasilnya:
Dapat dilihat elemen-elemen yang ada dalam stack, angka 8 yang dimasukkan pertama kali,
akan berada pada urutan paling bawah (bottom) dari stack, sedangkan angka 2 yang
dimasukkan terakhir berada pada tumpukan yang teratas (top).
7. Kemudian kita akan melakukan proses POP (mengeluarkan elemen dari tumpukan stack).
Caranya adalah:
Hasilnya:
Jika diperhatikan, elemen yang hilang adalah angka 2. Hal itu sesuai dengan prinsip dari stack
yaitu LIFO (Last In First Out). Angka 2 berada pada puncak tumpukan, sehingga bila dilakukan
proses POP, maka angka 2 yang akan dihilangkan terlebih dahulu.
8. Selanjutnya kita akan mencoba method PEEK yang digunakan untuk “mengintip” elemen apa
yang berada paling atas dari stack. Caranya:
Hasilnya:
9. Tipe dari stack yang kita buat diatas adalah integer. Berikutnya jika kita ingin membuat stack
dengan tipe string, maka dapat dilakukan dengan cara:
Hasilnya:
10. Diberikan juga perintah POP dan PEEK untuk stack yang kedua ini:
Hasilnya:
11. Method search pada stack digunakan untuk mencari lokasi dari item/elemen tertentu di dalam
stack.
Hasilnya:
QUEUE
• Aturan queue:
- Penambahan elemen dilakukan di sisi yang berbeda dengan penghapusan elemen.
- Elemen yang dapat dihapus adalah elemen yang berada di posisi terdepan (front) dari
queue.
• Skema pengaksesan: First In, First Out (FIFO).
• Contoh:
- Antrian printer
- Antrian tiket bioskop
- Antrian nasabah di teller bank, dll
• Seperti halnya stack, queue juga dapat direpresentasikan sebagai array (static queue) maupun
linked list (dynamic queue).
• Deklarasi queue:
int size;
long queue[];
int rear;
int front;
int jumItem;
- Enqueue
Untuk menambah elemen ke dalam antrian.
- Dequeue
Untuk mengambil sebuah elemen dari antrian
PERCOBAAN QUEUE
1. Buatlah sebuah project pada Netbeans untuk program queue kita.
2. Import semua library java dengan perintah:
3. Untuk membuat sebuah queue, kita perlu membuat objek dari interface queue. Caranya adalah
dengan menggunakan Linked List, yaitu:
Hasilnya:
Hasilnya:
6. Untuk mengeluarkan data dari antrian kita dapat menggunakan perintah POLL, yaitu:
Hasilnya:
7. Cara lain untuk mengeluarkan data dari antrian adalah dengan menggunakan perintah
REMOVE, yaitu:
Hasilnya:
Hasilnya:
REMOVE:
8. Untuk melihat elemen paling depan (atas) dari queue adalah dengan perintah PEEK, yaitu:
Hasilnya:
9. Cara lain untuk melihat elemen paling depan (atas) dari queue adalah dengan perintah
ELEMENT, yaitu:
Hasilnya:
Perbedaan perintah PEEK dan ELEMENT adalah ketika dihadapkan pada antrian yang kosong:
PEEK:
Hasilnya:
ELEMENT:
Hasilnya:
11. Untuk menghapus atau membersihkan seluruh antrian dapat dilakukan dengan cara:
Hasilnya:
TUGAS
1. Lakukan percobaan diatas. Capture seluruh listing program dan hasil running program.
Tampilkan hasil capture tersebut dalam laporan praktikum anda.
2. Buatlah program stack yang lengkap dan dapat dijalankan berdasarkan informasi berikut ini:
Main Method:
Library:
Method tulisData():
Method inputData():
Method bacaData():
Method bacaData():