Apa itu stack?
Stack adalah salah satu yang biasa digunakan dalam pemrograman atau sistem penyimpanan komputer. Bagi programmer
atau biasanya berkecimpung di dunia IT, pasti sudah familiar dengan istilah ini. Stack digunakan untuk mempermudah mengorganisasikan suatu data. Jadi sebenarnya apa sih Stack itu? Apa kelebihan dan kekurangan saat menggunakannya? Baik, Santekno akan menjelaskan kepada Anda lebih detail dan Santekno akan memberikan sample
yang sangat mudah untuk mengimplementasikan stack.
Pengertian dari Stack dikutip dari TechTerm, Stack adalah salah satu struktur data yang digunakan untuk menyimpan sekumpulan object ataupun variabel. Sesuai dengan namanya kita pasti memahami dan membayangkan data tersebut akan terlihat seperti tumpukan.
Karakteristik Stack sendiri bersifat LIFO (last in first out). Apa itu LIPO? Artinya, data yang terakhir masuk merupakan data yang akan keluar terlebih dahulu. Seperti halnya tumpukan pada umumnya, misalnya tumpukan buku, yang diatas atau yang terakhir masuk harus dikeluarkan terlebih dahulu untuk mendapatkan buku yang berada di tumpukan paling bawah.
Sebagai contoh, kamu mempunyai buku matematika, fisika, kimia dan biologi, Buku fisika kamu masukkan terlebih dahulu, lalu buku selanjutnya kimia, biologi, dan matematika. Nah, untuk mendapatkan buku kimia, kamu harus mengeluarkan buku biologi dan matematika terlebih dahulu karena kedua buku tersebut posisinya paling atas karena yang terakhir masuk.
Analogi ini seperti stack yang memiliki sifat LIPO. Data terakhir yang masuk harus keluar terlebih dahulu. Konsep ini pada umumnya digunakan untuk pemrograman dan mengorganisir penyimpanan komputer.
Kelebihan Stack
- membantu mengelola data dengan metode LIFO
- secara otomatis membersihkan objek
- tidak mudah rusak
- ukuran variabel tidak dapat diubah
- mengontrol memori secara mandiri
Kekurangan Stack
- memori stack sangat terbatas
- ada kemungkinan stack akan meluap atau overflow jika terlalu banyak objek
- tidak memungkinkan akses acak, karena harus mengeluarkan tumpukan paling atas terlebih dahulu untuk mengakses tumpukan paling bawah
Metode pada Implementasi Stack
Santekno saat ini mencontohkan atau mengimplementasikan menggunakan bahasa Go (Golang) dengan sampel yang lebih mudah. Disini kita contohkan dengan 2 method fungsi yang wajib ada dalam struktur data Stack. Jika Kamu ingin tahu juga cara implementasi menggunakan bahasa C++ bisa dilihat disini
Terlebih dahulu kita membuat struct
yang digunakan untuk menyimpan data nantinya.
type Stack struct {
items []int
}
Push()
, berfungsi untuk memasukkan data
func (s *Stack) Push(item int) {
s.items = append(s.items, item)
}
Pop()
, berfungsi untuk mengambil data yang mana akan diambil pada data yg paling terakhir dimasukkan
func (s *Stack) Pop() int {
left := len(s.items)
if left == 0 {
return -1
}
item, items := s.items[left-1], s.items[0:left-1]
s.items = items
return item
}
Contoh Impelemntasi Stack
4
3
2
1
-1
-1
-1