Mengenal Stack Pada Java
Stack (tumpukan) adalah struktur data yang mengumpulkan data-data ke dalam kumpulan data, dan mengeluarkan data berurutan dari data yang paling terakhir dimasukkan. Prinsip yang digunakan pada Stack adalah Last In, First Out (LIFO), adalah data yang terakhir dimasukkan (push) ke dalam Stack adalah data yang pertama kali dikeluarkan (pop). Perhatikan ilustrasi berikut ini!
Pada ilustrasi di atas, kita dapat melihat bahwa setiap kali data dimasukkan, data tersebut seolah-olah ditumpukkan di atas data sebelumnya. Apabila dilakukan pengambilan data dari Stack, data yang diambil adalah data yang ada di atas, seolah-olah seperti tumpukkan.
Namun kenyataannya, gambar di atas hanya sekedar ilustrasi yang memudahkan kita untuk memahami konsep Stack. Nyatanya, Stack pada Java sudah disediakan dan tinggal kita gunakan saja. Perhatikan kode program berikut.
Kode program di atas menggunakan class Stack yang sudah disediakan oleh Java dalam bentuk class Generic. Class Generic ini dapat memudahkan dalam implementasi Stack pada berbagai tipe data yang ada.
Untuk Apa Stack?
Stack digunakan pada berbagai aplikasi dan program, di antaranya:
- Balanced symbols, umumnya digunakan saat pemeriksaan tanda kurung dan tanda kutip pada kode program, validasi tag HTML.
- Tower of Hanoi, salah satu permainan yang menggunakan konsep rekursif dan juga menggunakan Stack. Bukan ini saja permainan yang menggunakan Stack di dalamnya, namun permainan ini cukup mudah dipahami.
- Call stack, umumnya digunakan saat menjalankan sebuah program. Setiap program yang dijalankan diselesaikan satu persatu di dalam komputer menggunakan Stack.
- Maze Runner, permainan lainnya yang menggunakan Stack untuk mencari jalur keluar sebuah labirin.
- Algoritma Depth First Search, umumnya digunakan pada saat mencari jalur labirin, mencari langkah untuk memenangkan permainan dan sebagainya.
Karakteristik Stack
Untuk lebih mengenal tentang Stack, perlu pahami beberapa karakteristik dari Stack, yaitu:
- Stack adalah salah satu dari struktur data yang menggunakan prinsip Last In, First Out (LIFO).
- Stack memiliki fungsi push yang digunakan untuk menambahkan data ke dalam Stack.
- Stack memiliki fungsi pop yang digunakan untuk mengambil data dari dalam Stack.
- Stack memiliki fungsi untuk memeriksa data yang berada paling atas.
- Stack memiliki fungsi untuk memeriksa apakah Stack memiliki data atau kosong.
- Data pada Stack dapat berupa Array atau Linked List
Memahami Fungsi Push Pada Stack
Istilah push sangat umum digunakan pada Stack, yaitu untuk menambahkan sebuah data ke dalam Stack. Umumnya fungsi push hanya menambahkan sebuah data ke dalam Stack, namun implementasinya dapat disesuaikan dengan kasus yang ada.
Algoritma push pada Stack sangat sederhana, menambahkan sebuah data pada tumpukan paling atas. Hanya saja, ketika diterapkan ke dalam bahasa Java, ada beberapa langkah tambahan yang harus dilakukan.
Ilustrasi di atas menunjukkan fungsi push pada sebuah Stack. Ketika Stack melakukan fungsi push, data yang dimasukkan akan diletakkan pada posisi paling atas pada Stack. Proses ini dilakukan setiap kali melakukan push sampai Stack penuh.
Memahami Fungsi Pop Pada Stack
Fungsi pop pada Stack cukup sederhana. Ketika dilakukan pop pada sebuah Stack, data yang berada paling atas dikeluarkan dari dalam Stack. Proses ini dilakukan setiap kali melakukan pop sampai Stack menjadi kosong.
Memahami Fungsi Peek Pada Stack
Fungsi peek pada Stack digunakan untuk mengetahui data yang akan di keluarkan ketika melakukan pop. Namun, fungsi ini tidak menghapus data yang ada di dalam Stack. Proses ini dilakukan selama Stack tidak kosong. Jika Stack kosong, maka tidak ada data yang dihasilkan oleh fungsi peek ini.
Memahami Fungsi Empty pada Stack
Fungsi empty pada Stack digunakan untuk mengetahui apakah Stack kosong atau tidak. Fungsi ini biasanya digunakan sebelum melakukan fungsi pop dan peek. Karena kedua fungsi tersebut tidak dapat dilakukan jika Stack sedang kosong.
Fungsi Lain Pada Stack
Selain fungsi-fungsi yang dibahas sebelumnya, terdapat beberapa fungsi lain yang dapat ditambahkan pada Stack sesuai kebutuhan, di antaranya:
- Fungsi Full, digunakan pada Stack yang memiliki kapasitas yang terbatas.
- Fungsi Top, digunakan untuk mengetahui posisi indeks data paling atas di dalam Stack.
- Fungsi Clear, digunakan untuk menghapus semua data di dalam Stack menjadi Stack kosong.
Selanjutnya
Setelah memahami konsep dan fungsi-fungsi pada Stack, saatnya membuat Stack.