Stack (Tumpukan)
STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dimana
dalam stack ini kumpulan data yang masuk diletakkan di atas data yang
lain. Dan berdasar konsep LIFO maka data yang terakhir kali disimpan
dalam stack akan menjadi data yang pertama kali diambil.
Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan
Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan
menjadi
elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk
Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen
terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan,
maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.
Dalam
prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata
lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.
Definisi Stack
Stack adalah suatu
koleksi atau kumpulan item data yang teroganisasi dalam bentuk urutan
linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada
salah satu sisinya.
Elemen-elemen yang berada dalam stack, memiliki prinsip dasar dalam pengoperasiannya yaitu prinsip LIFO (Last In First Out) atau elemen yang masuk paling terakhir akan memiliki prioritas untuk keluar paling pertama.
Gambar 1.1 - Ilustrasi sebuah Stack
|
Suatu stack dapat digambarkan sebagai suatu array berdimensi satu yang elemen-elemennya berkisar antara 1 sampai N elemen. Dengan demikian jika suatu stack didefinisikan dengan N elemen maka dapat dikatakan jumlah maksimum dari stack adalah N, sehingga penambahan elemen stack yang ke N+1 tidak diperkenankan atau stack tersebut dalam kondisi Overflow.
Hal tersebut juga berlaku untuk stack dengan nilai minimum yaitu stack
dalam kondisi 0, jika dilakukan operasi pengambilan elemen atas stack
tersebut akan mengakibatkan stack tersebut dalam kondisi Underflow. Dua kondisi tersebut merupakan dasar dalam merancang suatu aplikasi pemrograman komputer.
Ciri-ciri Stack
· Elemen teratas / puncaknya diketahui.
· Penambahan atau pengambilan elemen stack selalu dilakukan pada elemen teratas stack.
· LIFO (Last In First Out).
Pemanfaatan Stack
· Penghitungan ekspresi matematika (postfix).
· Algoritma Backtracking (runtut balik).
· Algoritma Rekursif.
O Operasi-operasi Stack
Dalam penggunaannya suatu stack memiliki beberapa operasi yang dapat diterapkan. Adapun operasi-operasi dasar dari suatu stack adalah :
1. 1. Create (Stack)
Operasi Create (Stack) digunakan untuk membuat suatu stack baru dengan nama stack, yang nilai elemen saat stack tersebut dibuat 0 dan elemen teratasnya belum ada.
Spesifikasi :
· Input : Stack
· Syarat awal : Tidak ada
· Output : Kosong
· Syarat akhir : Stack dalam keadaan kosong
2. 2. IsEmpty (Stack)
Operasi
ini digunakan untuk memeriksa isi suatu stack dalam keadaan kosong atau
tidak. Operasi ini memiliki 2 kondisi boolean, yaitu:
· True, apabila stack berada dalam kondisi kosong atau nilai elemennya = 0.
· False, apabila stack tidak berada dalam kondisi kosong atau nilai elemennya > 0.
Spesifikasi :
· Input : Stack
· Syarat awal : Tidak ada
· Output : Boolean
· Syarat akhir : Sesuai kondisi Boolean di atas
Program IsEmpty :
3. 3. IsFull (Stack)
Operasi ini digunakan untuk memeriksa isi suatu stack dalam keadaan penuh atau tidak.
Spesifikasi :
· Input : Stack
· Syarat awal : Tidak ada
· Output : Boolean
· Syarat akhir : Bernilai True apabila stack dalam keadaan penuh
Gambar 1.2 - Ilustrasi IsFull dan Programnya
|
4. 4. Push (Stack, Elemen)
Operasi
ini digunakan untuk menambahkan sebuah elemen dengan nilai X pada
puncak suatu stack, sehingga posisi paling atas stack bernilai X,
penerapan operasi Push pada suatu Stack(S) akan berakibat Overflow
apabila nilai stack tersebut telah lebih dari maksimum.
Spesifikasi :
· Input : Stack dan elemen baru
· Syarat awal : Stack tidak penuh
· Output : Stack
· Syarat akhir : Stack bertambah satu elemen
5. 5. Pop (Stack)
Operasi
ini digunakan untuk menghapus elemen teratas sebuah stack, sehingga
jumlah nilai stack akan berkurang satu elemen dan nilai teratas stack
akan berubah. Operasi Pop dapat menyebabkan kondisi Underflow apabila
suatu stack telah berada dalam kondisi minimum saat dilakukan operasi
Pop.
Spesifikasi :
· Input : Stack
· Syarat awal : Stack tidak dalam kondisi kosong
· Output : Stack dalam informasi Pop
· Syarat akhir : Stack berkurang satu elemen
Gambar 1.4 - Ilustrasi Pop dan Programnya
|
6. 6. Clear (Stack)
Operasi ini digunakan untuk mengosongkan stack (membuat nilainya menjadi 0).
7. 7. Top of Stack
Operasi ini digunakan untuk mengetahui elemen teratas pada sebuah stack.