Setelah kamu paham cara menyimpan banyak data dengan array, sekarang waktunya upgrade ke slice—struktur data yang lebih fleksibel dan sering dipakai di aplikasi Golang modern. Slice bikin kamu bisa menambah, mengurangi, dan memanipulasi data dengan mudah tanpa ribet urusan ukuran tetap seperti array.
Apa Itu Slice?
Slice adalah struktur data di Golang yang mirip array, tapi ukurannya bisa berubah-ubah. Slice sangat fleksibel untuk menyimpan data yang jumlahnya tidak pasti.
Deklarasi dan Inisialisasi Slice
Deklarasi Slice
var angka []int
Inisialisasi Slice
buah := []string{"apel", "jeruk", "mangga"}
Membuat Slice dari Array
Slice bisa dibuat dari array dengan sintaks [start:end]
.
angka := [5]int{10, 20, 30, 40, 50}
slice := angka[1:4]
fmt.Println(slice) // Output: [20 30 40]
Menambah Data ke Slice
Gunakan fungsi append
untuk menambah data ke slice.
angka := []int{1, 2, 3}
angka = append(angka, 4, 5)
fmt.Println(angka) // Output: [1 2 3 4 5]
Menghapus Data dari Slice
Untuk menghapus data, gunakan teknik slicing dan append
.
angka := []int{1, 2, 3, 4, 5}
angka = append(angka[:2], angka[3:]...)
fmt.Println(angka) // Output: [1 2 4 5]
Iterasi Slice dengan For Range
buah := []string{"apel", "jeruk", "mangga"}
for i, nama := range buah {
fmt.Printf("Buah ke-%d: %s\n", i+1, nama)
}
Output:
Buah ke-1: apel
Buah ke-2: jeruk
Buah ke-3: mangga
Copy Slice
Gunakan fungsi copy
untuk menyalin data slice.
src := []int{1, 2, 3}
dst := make([]int, len(src))
copy(dst, src)
fmt.Println(dst) // Output: [1 2 3]
Slice Multidimensi
Slice bisa bersarang seperti array multidimensi.
matrix := [][]int{
{1, 2, 3},
{4, 5, 6},
}
for i, baris := range matrix {
for j, val := range baris {
fmt.Printf("matrix[%d][%d] = %d\n", i, j, val)
}
}
Output:
matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
Latihan: Manipulasi Data Slice
Buat program yang menambah, menghapus, dan menampilkan data slice.
package main
import "fmt"
func main() {
buah := []string{"apel", "jeruk"}
buah = append(buah, "mangga")
fmt.Println("Setelah tambah mangga:", buah)
buah = append(buah[:1], buah[2:]...)
fmt.Println("Setelah hapus jeruk:", buah)
for i, nama := range buah {
fmt.Printf("Buah ke-%d: %s\n", i+1, nama)
}
}
Output:
Setelah tambah mangga: [apel jeruk mangga]
Setelah hapus jeruk: [apel mangga]
Buah ke-1: apel
Buah ke-2: mangga
Ringkasan
Slice adalah struktur data yang sangat fleksibel untuk menyimpan dan memanipulasi data di Golang. Dengan slice, kamu bisa menambah, menghapus, dan mengelola data dengan mudah.
- Deklarasi dan inisialisasi slice
- Membuat slice dari array
- Menambah dan menghapus data
- Iterasi dan copy slice
- Slice multidimensi
Di bab berikutnya, kita akan belajar tentang map—struktur data untuk menyimpan data berpasangan (key-value) yang sangat berguna untuk berbagai aplikasi!