Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan
Pop. Operasi – operasi yang dapat diterapkan adalah sebagai berikut :
1. Push : digunakan untuk menembah item pada Stack pada Tumpukan paling atas.
2. Pop : digunakan untuk mengambil item pada Stack pada Tumpukan paling atas.
Sebagai contoh, misalkah ada data sebagai berikut : 1 3 5 6, maka data tersebut dapat
tersimpan dalam bentuk sebagai berikut :
Contoh lain adalah ada sekumpulan perintah stack yaitu push(5), push(7), pop,
push(3), pop. Jika dijalankan, maka yang akan terjadi adalah :
Pada proses Push, Tumpukan (Stack) harus diperiksa apakah jumlah elemen
sudah mencapai masimum atau tidak. Jika sudah mencapai maksimum maka
OVERFLOW, artinya Tumpukan penuh tidak ada elemen yang dapat dimasukkan ke
dalam Tumpukan. Sedangkan pada proses Pop, Tumpukan harus diperiksa apakah
ada elemen yang hendak dikeluarkan atau tidak. Jika tidak ada maka
UNDERFLOW, artinya tumpukan kosong tidak ada elemen yang dapat diambil.
1. Java Stack Collection
Package Java juga menyediakan class Stack pada java.util.Stack, yang
merupakan subclass dari Vector yang menggunakan standar last-in first-out (LIFO).
Class Stack hanya digunakan untuk menentukan default constructor, untuk
membuat stack kosong. Berikut ini beberapa metode yang digunakan dalam stack
seperti terlihat pada Tabel 1.
Tabel 1. Metode pada java.util.stack
Dari ilustrasi di atas, bisa kita lihat bahwa notasi postfix dari ungkapan:
( A + B ) / (( C –D ) * E ^ F) adalah A B + C D –F ^ *
2. Inisialisasi
Inisialisasi Stack adalah proses pembuatan suatu stack kosong. Adapun
langkah-langkah proses inisialisasi stack yang menggunakan array. Dengan
mengisi nilai field top dengan 0. Jika elemen pertama diawali dengan nomor 1,
kalau elemen pertamanya array dimulai dengan 0, maka top diisi dengan -1.
3. Operasi IsEmpty
Operasi yang digunakan untuk memeriksa apakah stack dalam keadaan
kosong. Operasi ini dilakukan dengan memeriksa field top, jika top bernilai 0
atau top bernilai -1, maka berarti dalam keadaan empty.
4. Operasi IsFull
Operasi ini untuk memeriksa keadaan stack apakah sudah penuh/belum.
Operasi ini memberikan nilai true(1) jika field top sama dengan field
maks_elemen.
5. Operasi Push
Operasi push adalah operasi dasar dari stack yang berguna untuk
menambahkan suatu elemen data baru pada stack dan di simpan pada posisi
top yang akan mengakibatkan posisi top akan berubah.
6. Operasi Pop
Operasi Pop adalah salah satu operasi paling besar dari stack yang brguna
untuk mengambil elemen terakhir(top) dan kemudian menghapus elemen
tersebut sehingga posisi top akan berpindah.
Operasi ini biasanya dibuat dalam bentuk function yang me-return-kan nilai
sesuai data yang ada di top.
B. Pembahasan
Praktikum 1
1. class ProgramTumpukan
2. {
3. static int atas = -1;
4. static int batasAtas = 9;
5. public static void push(String tumpukan[], String data)
6. {
7. if(atas >= batasAtas)
8. System.out.println("Tumpukan penuh");
9. else
10. {
11. System.out.println("PUSH : " + data);
12. atas = atas + 1;
13. tumpukan[atas] = data;
14. }
15. }
Baris ke- 29 method bacatumpukan dengan parameter tipe data String array tumpukan
Baris ke- 32 menggunakan perulangan for dengan parameter integer i = batasatas, i kurang
dari sama dengan 0 , variabel i akan terus dikurang satu / mundur ( i-- )
Baris ke- 42 oop (objek) Membuat objek ,kata kunci new berfungsi untuk membuat objek
Baris ke 43-46
Praktikum 2
1. class ProgramTumpukan
2. {
3. static int atas = -1;
4. static int batasAtas = 9;
5. public static void push(String tumpukan[], String data)
6. {
7. if(atas >= batasAtas)
8. System.out.println("Tumpukan penuh");
9. else
10. {
11. System.out.println("PUSH : " + data);
12. atas = atas + 1;
13. tumpukan[atas] = data;
14. }
15. }
Praktikum 4
1. class ProgramTumpukan
2. {
3. static int atas = -1;
4. static int batasAtas = 9;
5. public static void push(String tumpukan[], String data)
6. {
7. if(atas >= batasAtas)
8. System.out.println("Tumpukan penuh");
9. else
10. {
11. System.out.println("PUSH : " + data);
12. atas = atas + 1;
13. tumpukan[atas] = data;
14. }
15. }
Kesimpulan
Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita
melakukan push dan untuk memindahkan dari tempat yang atas tersebut, kita melakukan pop
Field pertama bertipe array untuk menyimpan elemen stack, medan kedua bertipe integer untuk
mencatat posisi ujung stack.
1. apa sajakah yang dapat dipush ke dalam tumpukan? Lalu amati variabel “atas”, berada di
posisi manakah “atas” saat ini? Catatlah dalam laporan anda.
2. Bagaimanakah kondisi tumpukan saat ini? Buku apa sajakah yang ada dalam tumpukan? Lalu
bagaimana dengan posisi “atas” saat ini? Adakah perbedaan posisi “atas” saat ini jika
dibandingkan dengan posisi “atas” pada Pelaksanaan Praktikum ke-1. Catatlah dalam laporan
anda.
3. Buku apa sajakah yang dapat dipush ke dalam tumpukan? Adakah Buku yang gagal di push
ke dalam tumpukan? Apa sebabnya? Mengapa bisa demikian? Menurut anda bagian manakah
dari program di atas yang menyebabkannya? Jelaskanlah dalam laporan anda.
4. Buku apakah yang ter-pop? Mengapa bisa demikian?Sekarang amati kondisi tumpukan saat
ini. Adakah yang berkurang? Mengapa hal itu bisa terjadi? Menurut anda bagian manakah
dari program di atas yang menyebabkannya? Lalu bagaimana dengan posisi “atas” saat ini?
Jelaskanlah dalam laporan anda.
5. Catatlah, Buku apa saja yang ter-pop?Sekarang amati kondisi tumpukan saat ini. Adakah
perubahan yang terjadi pada kondisi tumpukan saat ini dibanding pada percobaan
sebelumnya? Mengapa hal itu bisa terjadi? Lalu bagaimana dengan posisi “atas” saat ini?
Jelaskanlah dalam laporan anda.
6. Adakah proses pop yang tidak dapat (gagal) dilakukan? Mengapa bisa demikian? Jelaskan
pada laporan anda.
Jawab
Buku A,B,C,D,E,F,G