Stack in Java

Halo Arek Blodhil! hari ini kita akan belajar... yap you guessed it. Stack!!!

Jadi Arek Blodhil, Stack adalah struktur data linier yang digunakan untuk menyimpan kumpulan objek. Ini didasarkan pada Last-In-First-Out (LIFO). Kerangka koleksi Java menyediakan banyak antarmuka dan kelas untuk menyimpan koleksi objek. Salah satunya adalah kelas Stack yang menyediakan operasi berbeda seperti push, pop, search, dan lain lain.

Struktur data tumpukan memiliki dua operasi terpenting yaitu push dan pop. Operasi dorong memasukkan elemen ke dalam tumpukan dan operasi pop menghapus elemen dari atas tumpukan. Mari kita lihat cara kerjanya di stack.

Mari dorong masing-masing 20, 13, 89, 90, 11, 45, 18 ke dalam stack.
Mari remove (pop) 18, 45, dan 11 dari tumpukan.
Empty Stack: Jika stack tidak memiliki elemen disebut sebagai empty stack. Ketika tumpukan kosong, nilai variabel teratas adalah -1.
Saat kita mendorong elemen ke dalam tumpukan, bagian atas bertambah 1. Pada gambar berikut,

Push 12, top = 0
Push  6,  top = 1
Push  9,  top = 2
Ketika kita mengeluarkan sebuah elemen dari stack, nilai top berkurang 1. Pada gambar berikut, kita telah pop 9.
Tabel berikut menunjukkan nilai yang berbeda dari atas.







Maka, dapat kita simpulkan method-method yang wajib ada pada sebuah struktur data Stack adalah:
  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 aku gunakan ArrayList.

Berikut adalah implementasi Stack dalam Java
Mari kita bahas line per line.
ArrayList di sini digunakan untuk menyimpan objek yang dimasukkan ke Stack. Seperti sudah aku 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.

Mari Arek Blodhil kita implementasikan method-method yang kita pelajari di atas dengan input yang kita masukkan di bawah ini :D
Maka input di atas akan menghasilkan output sebagai berikut
Mantap jadi itu dia Stack dalam Java Arek Blodhil! sampai ketemu di blog selanjutnya! semangat!

Comments

Popular posts from this blog

Linked List in Java