Cara membuat Slice di Golang

Di dalam Go, slice adalah struktur data dinamis yang lebih fleksibel daripada array. Dibandingkan dengan array, slice tidak memiliki ukuran tetap; mereka dapat tumbuh atau menyusut sesuai kebutuhan. Slice mengelola array di bawah layar dan menyediakan antarmuka yang lebih mudah digunakan untuk memanipulasi data. Berikut adalah cara membuat, memanipulasi, dan perbedaan slice dengan array di Go:

Membuat Slice:

package main

import "fmt"

func main() {
    // Membuat slice kosong
    var mySlice []int

    // Membuat slice dengan nilai awal
    mySlice = append(mySlice, 1, 2, 3, 4, 5)

    // Membuat slice menggunakan operator slice pada array
    myArray := [5]int{1, 2, 3, 4, 5}
    mySliceFromArray := myArray[1:4] // Memotong array dari indeks 1 hingga 3 (indeks 4 tidak termasuk)

    // Menampilkan nilai slice
    fmt.Println("Slice kosong:", mySlice)
    fmt.Println("Slice dari array:", mySliceFromArray)
}

Memanipulasi Slice:

Menambahkan Elemen ke Slice:

mySlice = append(mySlice, 6) // Menambahkan elemen 6 ke slice
fmt.Println("Slice setelah ditambahkan elemen 6:", mySlice)

Menghapus Elemen dari Slice:

index := 2
mySlice = append(mySlice[:index], mySlice[index+1:]...) // Menghapus elemen ke-2 dari slice
fmt.Println("Slice setelah menghapus elemen ke-2:", mySlice)

Perbedaan dengan Array:

  1. Ukuran: Array memiliki ukuran tetap yang ditentukan saat deklarasi, sedangkan slice tidak memiliki ukuran tetap dan dapat tumbuh atau menyusut sesuai kebutuhan.

  2. Fleksibilitas: Slice lebih fleksibel daripada array karena mereka dapat berubah ukurannya secara dinamis.

  3. Referensi ke Array: Slice adalah referensi ke array di bawah layar. Ketika Anda membuat slice dari sebuah array, slice tersebut merujuk pada array tersebut. Jika Anda mengubah elemen dalam slice, itu juga mempengaruhi array yang diacu oleh slice tersebut.

  4. Pass by Reference: Saat Anda melewatkan slice ke sebuah fungsi, Anda sebenarnya melewatkan referensi ke data slice tersebut, bukan copy dari data tersebut. Sehingga perubahan pada slice dalam fungsi juga mempengaruhi slice di luar fungsi tersebut.

  5. Dynamic Size: Slice dapat bertambah atau berkurang ukurannya dengan menggunakan fungsi append() dan teknik slicing.

Dengan menggunakan slice, pengelolaan dan manipulasi data dinamis menjadi lebih mudah dan efisien dalam Go.

Di bab berikutnya akan dibahas tentang bagaimana membuat Map di Golang

Last updated