Selain queue dan array, Java juga mempunyai struktur data yang disebut stack. Stack atau disebut juga tumpukan pada pemrograman Java yang terdiri dari kumpulan item yang disusun sedemikian rupa sehingga satu item ditumpuk di atas item lainnya, mirip seperti tumpukan boks. Hanya item paling atas yang bisa diakses pada suatu saat.
Item tersebut bisa diambil dari tumpukan dengan method yang disebut pop(). Item paling bawah hanya bisa diambil jika semua item di atasnya telah diambil dari tumpukan.
Untuk menambahkan item pada tumpukan dilakukan dengan method push().
Untuk menambahkan item pada tumpukan dilakukan dengan method push().
Nah, agar lebih paham tentang stack di Java, analisis code berikut yang merupakan contoh konsep penggunaan stack untuk menentukan piring kotor dan piring bersih.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package latihan9; | |
import java.util.Stack;//import library stack | |
public class Latihan9 { | |
public static void main(String[] args) { | |
Stack kotor = new Stack();//deklarasi objek stack kotor | |
Stack bersih = new Stack();//deklarasi objek stack bersih | |
for (int i = 1; i <= 5; i++)//perulangan for | |
{ | |
kotor.push("piring " + i);//proses memasukkan data pada stack | |
} | |
System.out.println("SEBELUM DICUCI" + "\nJumlah piring kotor : " + kotor.size() + "\nJumlah piring bersih : " + bersih.size() + "\nTumpukan piring kotor :"); //menampilkan jumlah piring kotor | |
for (int i = 1; i <= 5; i++)//perulangan for | |
{ | |
System.out.println(kotor.peek()); | |
bersih.push(kotor.pop());//proses pengeluaran data pada stack | |
} | |
System.out.println("\nSETELAH DICUCI" + "\nJumlah piring kotor : " + kotor.size() + "\nJumlah piring bersih : " + bersih.size() + "\nTumpukan piring bersih :");//menampilkan jumlah piring bersih dan piring yang telah dicuci | |
for (int i = 4; i >= 0; i--) | |
{ | |
System.out.println(bersih.elementAt(i)); | |
} | |
} | |
} |
Dari code di atas, pada Java sudah terdapat library Stack untuk menangani permasalahan tumpukan seperti contoh kasus di atas.
Program sederhana tersebut menggunakan 2 stack, dimana stack pertama untuk menampung piring-piring kotor dan stack kedua untuk menampung piring-piring bersih.
Program akan menghasilkan output berupa piring-piring yang ada pada tumpukan dan jumlah piring pada masing-masing tumpukan.
Hasil program ketika di-run adalah seperti gambar berikut:
Fungsi utama dari Stack yaitu proses input output data yang mana data yang pertama masuk akan terakhir keluar dan data terakhir masuk akan keluar pertama kali, proses tersebut disebut juga Last In First Out (LIFO).
Untuk penjelasan yang lebih terperinci, silahkan pelajari stack pada Java di beberapa referensi berikut ini.
- Stack Java Oracle
- Stack pada Java by Mbak Fenny
- Contoh Program Stack Java by Guru Informatika
- Implementasi Struktur Data Stack Java by Mas Agung Setiawan
Materi sebelumnya tentang pengondisian yang harus kamu ketahui:
Selamat mencoba dan happy coding!