Belajar Pemrograman Java Dari Dasar

Mendesain Class Stack Untuk Menyimpan Objek-objek Dengan ArrayList

Stack atau tumpukan adalah container dari objek-objek yang disisipkan dan dilepas atau dihapus sesuai dengan LIFO (Last In First Out).

Pada stack hanya ada dua operasi yang yang paling penting yaitu memasukkan item ke dalam tumpukan, dan mengeluarkan item dari tumpukan.

Stack adalah struktur data akses terbatas karena elemen hanya dapat ditambahkan dan dihapus dari tumpukan hanya di dari bagian atas.

Item atau objek yang terakhir ditambahkan akan berada pada bagian paling atas dan ketika method untuk menghapus atau menghilangkan objek dipanggil, maka objek yang berada pada bagian paling atas dulu yang akan dihapus. Ini sesuai dengan prinsip LIFO.

Mendesain Class Stack Untuk Menyimpan Objek-objek Dengan ArrayList


Analogi yang bisa dengan mudah membantu anda memahami stack ini adalah dengan gambar di bawah ini:

1. Terdapat 4 dokumen dengan warna merah, hijau, kuning dan biru dengan posisi bertumpuk. Dengan gambar di bawah ini, anda bisa mengetahui jika warna merah adalah dokumen yang dimasukkan pertama dalam stack dan biru adalah dokumen yang terakhir. Jumlah objek adalah 4, dan posisi paling atas adalah dokumen atau objek Biru.


2.  Ketika anda memasukkan objek-objek lainnya kedalam tumpukan, maka objek yang terakhir dimasukkan akan berada di posisi paling atas. Misalkan selanjutnya anda memasukkan dokumen yang berwarna Hitam dan Putih, seperti gambar di bawah ini:


3. Sekarang di dalam stack anda memiliki 6 Objek. Dengan dokumen Putih adalah objek yang paling akhir anda tambahkan pada tumpukan sekaligus berada pada posisi paling atas.

4. Ketika anda menghapus objek pada stack dengan suatu method, maka objek yang berada pada posisi yang paling atas dahulu akan di hapus. Dalam hal ini adalah objek Putih. Selanjutnya jika anda kembali memanggil method untuk menghapus objek, maka dokumen Hitam yang akan di hapus. Demikian seterusnya.

Anda dapat menggunakan ArrayList untuk mengimplementasikan stack pada pemrograman Java. Pada contoh di bawah ini class StackObjek meng-enkapsulasi penyimpanan stack dan menyediakan operasi-operasi untuk memanipulasi stack.



Class StackObjek memiliki ArrayList. Hubungan antara keduanya adalah composition. Ketika model inheritance adalah is-a  maka model dari  composition adalah has-a.

Anda juga bisa menjadikan class StackObjek inherit dari class ArrayList. Namun, menggunakan komposisi adalah lebih baik. Ini karena dapat memudahkan anda untuk mendefinisikan class stack yang benar-benar baru tanpa harus mewarisi method lain dari class ArrayList yang tidak sesuai dan tidak anda butuhkan.

Share on Facebook
Share on Twitter
Share on Google+
Tags :

Artikel Menarik Lainnya :