unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Slice

Slice #

Slice dalam bahasa pemrograman Golang adalah tipe data yang lebih fleksibel daripada array. Slice merupakan referensi ke bagian dari array dan memiliki ukuran yang dinamis, memungkinkan kita untuk menambah, mengurangi, dan memanipulasi elemen-elemen dengan lebih mudah. Berikut adalah penjelasan tentang slice dan berbagai operasi yang dapat dilakukan pada slice di Golang:

Deklarasi dan Inisialisasi Slice #

Slice dapat dideklarasikan dan diinisialisasi dengan beberapa cara.

var s []int // Deklarasi slice kosong
s = []int{1, 2, 3} // Inisialisasi slice dengan elemen

Membuat Slice dari Array #

Slice dapat dibuat dari array yang sudah ada.

arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // Slice dari elemen ke-1 sampai ke-3
fmt.Println(s) // Output: [2 3 4]

Mengakses dan Memodifikasi Elemen Slice #

Elemen slice dapat diakses dan dimodifikasi seperti array.

s[0] = 10
fmt.Println(s[0]) // Output: 10

Menambah Elemen ke Slice #

Fungsi append digunakan untuk menambah elemen ke slice. Jika slice tidak memiliki kapasitas yang cukup, array baru akan dibuat secara otomatis.

s = append(s, 6, 7)
fmt.Println(s) // Output: [2 3 4 6 7]

Menghitung Panjang dan Kapasitas Slice #

Fungsi len digunakan untuk mendapatkan panjang slice, sedangkan cap digunakan untuk mendapatkan kapasitas slice.

fmt.Println("Length:", len(s)) // Output: Length: 5
fmt.Println("Capacity:", cap(s)) // Output: Capacity: 5

Menggunakan Fungsi make untuk Membuat Slice #

Fungsi make digunakan untuk membuat slice dengan panjang dan kapasitas tertentu.

s := make([]int, 5, 10) // Slice dengan panjang 5 dan kapasitas 10
fmt.Println(s) // Output: [0 0 0 0 0]
fmt.Println("Length:", len(s)) // Output: Length: 5
fmt.Println("Capacity:", cap(s)) // Output: Capacity: 10

Menyalin Slice #

Fungsi copy digunakan untuk menyalin elemen dari satu slice ke slice lain.

source := []int{1, 2, 3}
destination := make([]int, len(source))
copy(destination, source)
fmt.Println(destination) // Output: [1 2 3]

Mengiris Slice (Slicing) #

Slice dapat diiris untuk membuat slice baru yang merupakan bagian dari slice yang sudah ada.

s := []int{1, 2, 3, 4, 5}
subslice := s[1:4] // Mengiris elemen dari indeks ke-1 hingga ke-3
fmt.Println(subslice) // Output: [2 3 4]

Iterasi melalui Slice #

Anda dapat menggunakan loop for atau range untuk iterasi melalui elemen-elemen slice.

for i := 0; i < len(s); i++ {
    fmt.Println(s[i])
}

for index, value := range s {
    fmt.Printf("Index: %d, Value: %d\n", index, value)
}

Contoh Lengkap Penggunaan Slice #

package main

import "fmt"

func main() {
    // Deklarasi dan inisialisasi slice
    s := []int{1, 2, 3, 4, 5}

    // Mengakses dan memodifikasi elemen slice
    s[0] = 10
    fmt.Println(s[0]) // Output: 10

    // Menambah elemen ke slice
    s = append(s, 6, 7)
    fmt.Println(s) // Output: [10 2 3 4 5 6 7]

    // Menghitung panjang dan kapasitas slice
    fmt.Println("Length:", len(s)) // Output: Length: 7
    fmt.Println("Capacity:", cap(s)) // Output: Capacity: 10

    // Menggunakan make untuk membuat slice
    newSlice := make([]int, 5, 10)
    fmt.Println(newSlice) // Output: [0 0 0 0 0]
    fmt.Println("Length:", len(newSlice)) // Output: Length: 5
    fmt.Println("Capacity:", cap(newSlice)) // Output: Capacity: 10

    // Menyalin slice
    source := []int{1, 2, 3}
    destination := make([]int, len(source))
    copy(destination, source)
    fmt.Println(destination) // Output: [1 2 3]

    // Mengiris slice
    subslice := s[1:4]
    fmt.Println(subslice) // Output: [2 3 4]

    // Iterasi melalui slice
    for i := 0; i < len(s); i++ {
        fmt.Println(s[i])
    }

    for index, value := range s {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}

Kesimpulan #

Dengan menggunakan slice, Anda dapat membuat program yang lebih fleksibel dan dinamis dalam mengelola kumpulan data. Slice menawarkan cara yang efisien untuk menangani data tanpa harus menentukan ukuran tetap, seperti pada array.

« Array
Map »