Kamis, 20 Oktober 2016

Stack, Konsep Tumpukan pada Java


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().

Nah, agar lebih paham tentang stack di Java, analisis code berikut yang merupakan contoh konsep penggunaan stack untuk menentukan piring kotor dan piring bersih.

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.
Materi sebelumnya tentang pengondisian yang harus kamu ketahui:
Selamat mencoba dan happy coding!

Komentar Disqus