Implementasi Struktur Data Stack Java

[S]tack merupakan suatu struktur data yang berbentuk tumpukan di mana proses memasukkan dan mengeluarkan data dilakukan pada satu “pintu” yang sama. Hal ini berbeda dengan struktur data Queue/antrian yang menggunakan dua “pintu”, satu pintu untuk masuk antrian dan pintu lainnya untuk keluar dari antrian.

Algoritma dan Struktur Data


Stack atau tumpukan biar mudah memahaminya bisa diibaratkan sebagai suatu tumpukan kardus di mana hanya data yang terletak paling atas yang bisa diambil. Data yang terletak ditengah-tengah atau pun yang berada paling bawah bisa diambil jika data yang terletak di atasnya sudah diambil terlebih dahulu.

Struktur data Stack merupakan struktur data yang bersifat LIFO (Last in First Out) artinya data yang masuk terakhir adalah data yang bisa keluar terlebih dahulu.

Perhatikan gambar ilustrasi di bawah.

Data E adalah data yang terakhir dimasukkan (method Push) oleh karenanya berada pada posisi paling atas. Jika ingin mengambil data B maka terlebih dahulu harus mengeluarkan (method Pop) berturut-turut data E, D dan C.

Stack

Oke, berikut adalah method-method yang wajib ada pada sebuah struktur data Stack:

1. Push, digunakan untuk memasukkan data ke dalam Stack

2. Pop, digunakan untuk mengeluarkan data teratas dari Stack

3. Peek, digunakan untuk melihat data yang berada di posisi paling atas

4. Count, digunakan untuk mengetahui jumlah isi data pada Stack

5. Clear, digunakan untuk mengapus seluruh data yang ada pada Stack

Stack, karena bersifat menyimpan data maka memerlukan struktur data yang lain, dalam kasus ini saya gunakan ArrayList.

Berikut adalah implementasi Stack dalam bahasa pemrograman Java

Mari kita bahas line per line.

ArrayList di sini digunakan untuk menyimpan objek yang dimasukkan ke Stack. Seperti sudah saya katakan tadi bahwa Stack butuh struktur data lain untuk menyimpan data. Selanjutnya variabel currentIndex digunakan untuk menandai index teratas pada list. Index teratas adalah 0 oleh karena itu variabel ini bernilai awal -1.

Method di atas digunakan untuk menambah data ke dalam Stack yang sebenarnya adalah menambah data ke dalam array list, kemudian nilai currentIndex dinaikkan sebesar 1 angka.

Berkebalikan dengan push, pop digunakan untuk membuang data dari Stack (data teratas). Karena dalam Stack yang dikeluarkan adalah data teratas maka kita perlu mengetahui index teratas dari list maka digunakanlah variabel currentIndex tadi. Setelah data dibuang selanjutnya nilai dari currentIndex dikurangi sebesar 1 angka.

Method di atas dipanggil untuk mengetahui jumlah data pada Stack. Sesugguhnya yang dipanggil adalah method pada array list untuk mengetahui jumlah datanya.

peek() berfungsi melihat data teratas yang ada pada Stack. Lagi, karena melihat data teratas perlu mengetahui index teratas seperti layaknya melakukan pop maka variabel currentIndex memegang peranan penting.

Terakhir adalah method clear yang digunakan untuk menghapus seluruh data pada Stack dan mengembalikan index ke nilai semula.

Silahkan coba kelas ini pada method main atau coba tes menggunakan JUnit

Ouput program pada console :

Semoga bermanfaat tulisan mengenai stack java ini 🙂
Tetap mampir ke sini karena pada kesempatan mendatang saya akan menulis salah satu implementasi Stack dalam ilmu komputer

[followme]

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

2 thoughts on “Implementasi Struktur Data Stack Java

  1. mas master tlong bantuannya ya,,,, gimana ya cara bikin program DOUBLE LINKED LIST, untuk mendata data dari suatu nasabah Bank yang terdiri dari NOMER NASABAH, NAMA NASABAH, dan SALDO TABUNGAN. Yang harus anda buat adalah program : – TAMBAH DATA, yaitu program untuk menambah data di depan, di tengah, dan di belakang. – TAMPIL DATA, yaitu program untuk menampilkan DATA NASABAH secara urut ascending sesuai dengan SALDO NASABAH. mohon bantuanya, trimakasih…

  2. Min, mau request buat yang queue dong. Materi seperti Stack ini sangat membantu 😀 makasih ya min. Ditunggu materi Queue-nya 😀

Leave a Reply

Your email address will not be published. Required fields are marked *