author Ihsan Arif | 2 minutes

Cara Implementasi Stack Golang

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
comments powered by Disqus