Memahami Slice Dalam Golang : Panduan Lengkap dengan Contoh Kode

Table of Contents
Memahami Slice Dalam Golang : Panduan Lengkap

Tipe data slice adalah salah satu tipe data yang unik di bahasa pemerograman golang. Tipe data ini sering kali membingungkan bagi para pemula yang baru terjun dalam dunia pemerograman, di karenakan tipe data ini sering kali di sebut dengan tipe data array tapi nyatanya berbeda dengan array. Nah kali ini Code Dadakan akan membahas tipe data slice di golang dan cara menggunakannya dalam project.

Apa Itu Slice 

Tipe data slice adalah merupakan tipe data yang merepresentasikan potongan dari tipe data array. Slice memungkinkan kita untuk menambah atau mengurangi jumlah elemen tanpa harus membuat ulang struktur datanya. 

Komponen Utama Slice

Ada 3 komponen utama dari tipe data slice, yaitu : 
  • Length : Panjang data yang tersimpan dalam tipe data slice ( jumlah elemen yang ada di dalamnya )
  • Pointer : Menunjuk ke elemen pertama dalam array yang di rujuk oleh slice ( kita akan membahas slice pada module lain ) 
  • Capacity : Kapasitas maksimal dari slice ( berapa banyak elemen data yang dapat di simpan ) 
Silahkan buat project golang terlebih dahulu yaa dan membuka folder golang tersebut di teks editor yang anda gunakan. Kemudian ikuti panduan di bawah ini dan simak baik baik penjelasannya.

Contoh Kode Dari Slice

names := [...]string{"Agus", "Ahyar", "Indra", "Wahid", "Obo", "Dayat", "Iqbal", "Roni"}
slicesNames := names[2:5]
fmt.Println(slicesNames)

Pada contoh kode di atas, " sliceNames " adalah variable dengan tipe data slice yang di buat dari array names dan mengambil elemen names mulai dari indeks ke 2 hingga ke 4 [2:5], elemen ke 5 tidak termasuk dalam hasil di karenakan slice selalu mengambil elemen dengan batas atas ekslusif. 

Coba jalankan code di atas dan lihat output pada layar anda nama siapa yang akan muncul.

Sifat Dari Slice

Slice adalah referensi dari array, yang berarti jika perubahan di lakukan pada array akan tercermin ke slice, begitupun sebaliknya. Berikut adalah contoh kode nya : 

animals := [...]string{"Horse", "Cat", "Cow", "Ant", "Zebra", "Crocodile", "Fish", "Snake"}
theAnimals := animals[0:4]
waterAnimals := animals[5:7]

fmt.Println(theAnimals)    // Output: ["Horse", "Cat", "Cow", "Ant"]
fmt.Println(waterAnimals)  // Output: ["Crocodile", "Fish"]

// Mengubah elemen di array asli
animals[5] = "Plankton"
animals[0] = "Dog"

fmt.Println(theAnimals)    // Output: ["Dog", "Cat", "Cow", "Ant"]
fmt.Println(waterAnimals)  // Output: ["Plankton", "Fish"]

Setiap perubahan pada array animals langsung memengaruhi nilai dalam slice theAnimals dan waterAnimals

Fungsi di Slice 

Fungsi len(), yang dapat di gunakan untuk mengambil panjang dari sebuah slice. 

fmt.Println(len(waterAnimals)) // Output: 2

Fungsi cap(), yang dapat di gunakan untuk mengetahui kapasitas dari sebuah slice

fmt.Println(cap(waterAnimals)) // Output: 3

Fungsi append(), Menambahkan elemen baru ke dalam slice. Jika kapasitas penuh, maka akan membuat array baru

var days = [...]string{
		"Senin",
		"Selasa",
		"Rabu",
		"Kamis",
		"Jumat",
		"Sabtu",
		"Minggu",
	}

theDays := days[5 : 7];
fmt.Println(theDays)

// menggunakan fungsi append()
var newDays = append(theDays, "Libur");

// output yang muncul ialah [Sabtu Minggu Libur]
fmt.Println(newDays)

Buat Slice Dengan Fungsi Make()

Di golang juga menyediakan fungsi make() untuk membuat slice yang lebih efisien. Fungsi ini memungkinkan programmer dapat menentukan panjang dan kapasitas slice saat di buat. Berikut contoh kode nya : 

myNames := make([]string, 2, 6)
myNames[0] = "Code"
myNames[1] = "Dadakan"

fmt.Println(myNames)   
fmt.Println(len(myNames)) 
fmt.Println(cap(myNames)) 

Coba tebak output yang akan muncul di layar ketika code di atas di jalankan

Menyalin Data Slice

Golang memiliki fungsi copy() yang terdapat 2 parameter slice di dalam fungsi tersebut. Ini dapat di gunakan untuk menyalin elemen-elemen dari slice ke slice lainnya. Berikut contoh code nya : 

copyNames := make([]string, len(myNames), cap(myNames))
copy(copyNames, myNames)
fmt.Println(copyNames)

Kesimpulan

Tipe data slice di bahasa pemerograman golang adalah fitur yang sangat kuat dan fleksibel, terutama ketika kita membutuhkan data yang dapat berubah. Dengan memahami fungsi fungsi di slice seperti len(), cap(), append(), anda dapat menggunakan tipe data ini dengan efektif. Tetaplah belajar dan kembangkan skill pemerograman anda. Jangan lupa untuk memakai slice yaa di proyek anda hehe. Terima Kasih.

Selanjutnya anda bisa lanjut pada module :

Panduan Lengkap Menggunakan Map dalam Bahasa Pemrograman Go

Posting Komentar