BAB 13: Mengelola Data Fleksibel dengan Slice di Golang - Abd. Asis

BAB 13: Mengelola Data Fleksibel dengan Slice di Golang

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!