STACK
Stack
(tumpukan) sebenarnya dapat diartikan sebagai urutan dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi
yang disebut top (puncak) dari stack.
Top adalah suatu variabel penanda dalam stack yang menunjukkan elemen teratas stack sekarang. Top Of Stack akan selalu bergerak
hingga mencapai Max Of Stack sehingga menyebabkan stack penuh.
Dengan
melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu Konsep utamanyanya adalah benda yang terakhir masuk
dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
Salah satu
analogi yang menjelaskan ilustrasi mengenai stack ini adalah tumpukan piring
atau kaset CD dll. Pada saat kita hendak menumpuk piring-piring tersebut
tentulah yang kita lakukan adalah meletakkan piring pertama pada tempatnya,
selanjutnya meletakkan piring kedua di atas piring pertama dan demikian
seterusnya. Kemudian ketika hendak mengambil satu piring dari tumpukan
tersebut, tentu yang diambil adalah piring teratas (yang terakhir kali
diletakkan), bukan yang terbawah (yang pertama kali diletakkan).
·
OPERASI PADA STACK dengan ARRAY
Operasi
– operasi yang dapat diterapkan adalah sebagai berikut :
1. IsFull
: adalah untuk memeriksa apakah stack sudah
penuh? Dengan cara
memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika
belum (masih lebih kecil dari MAX_STACK-1) maka belum full.
Ilustrasi
:
2. IsEmpty
: Untuk memeriksa apakah stack
masih kosong? Dengan cara memeriksa top of stack, jika masih -1 maka
berarti stack masih kosong.
3. Push
: Untuk memasukkan elemen ke stack,
selalu menjadi elemen teratas stack. Dengan cara tambah satu (increment) nilai top of stack
terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack masih
belum penuh, kemudian isikan nilai baru ke stack berdasarkan indeks top of
stack setelah ditambah satu (di increment).
Ilustrasinya:
4. Pop
: digunakan untuk mengambil item pada Stack pada Tumpukan paling atas.
Berkebalikan dengan Push, Pop terlebih dulu menghapus (decrement) nilai yang
diinganan.
Ilustrasi :
5. Print
: Untuk menampilkan semua
elemen-elemen stack. Dengan cara looping semua nilai array secara terbalik,
karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke
indeks yang kecil. Jika kita
ingin mengeprint elemen stack, kita harus membaca elemen array dari indeks yang ada
isinya tertinggi,
yaitu dari Top downto 0. Sehingga kita akan menampilkan elemen: Fairy Tail, Dragon Ball Super, Slam Dunk!, Kuroko No
Basuke.