Slice
Slice merupakan tipe data reference di Golang yang hampir mirip dengan array. Perbedaanya tidak perlu ada length declaration seperti array. Kelebihan dari slice yaitu tidak perlu mendefinisikan berapa banyak value yang akan ditampung dalam data. Sementara kekurangan dari slice yaitu saat di inputkan value yang melebihi capasitas slice, maka capasitas slice akan menjadi 2 kali lipat.
Membuat Slice dari Array
Slice dapat dibuat dengan mengambil value dari suatu array seperti contoh di bawah ini.
package main
import "fmt"
func main() {
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4]
fmt.Println(slice)
fmt.Println(len(slice))
fmt.Println(cap(slice))
slice = append(slice, 5, 6)
fmt.Println(slice)
fmt.Println(len(slice))
fmt.Println(cap(slice))
}Membuat Slice dengan Fungsi Make
Make digunakan untuk membuat suatu slice. Fungsi make memiliki 3 input parameter yaitu tipe data, length dan capacity. Capacity harus lebih dari length (capacity > length). Capacity ibaratkan beberapa kotak untuk menyimpan suatu nilai, sementara length dapat diartikan berapa kotak yang sudah diisi suatu nilai. Make akan mengisi capacity dari suatu slice dengan default value dari tipe data yang digunakan.
Contoh Code Deklarasi Slice dengan Capacity > Length
Contoh Code Deklarasi Slice dengan Capacity < Length
Input Value lebih dari Length Slice
Kekurangan Slice
Saat kita menginputkan suatu value ke dalam slice yang melebihi length dari slice, capacity dari slice tersebut akan menjadi 2 kali lipatnya. Cotohnya seperti code dibawah ini. Slice s yang awalnya tidak mempunyai value, kemudian di isi value secara bertahap menggunakan looping. Lalu di tampilkan kapasitas dan length dari slice tersebut.
Add Value
Untuk menambahkan value dalam suatu slice dapat menggunakan fungsi append.
Update Value
Untuk memperbaruhi value dengan index tertentu dari suatu slice, dapat langsung diubah seperti contoh di bawah ini.
Delete Value
Untuk menghapus suatu value dengan index tertentu di slice dapat menggunakan fungsi append. Dimana append memiliki format append(slice, ...value). Parameter kedua dalam fungsi append merupakan variadic function, yang berarti append dapat menerima lebih dari 2 input.
Kodingan di atas sama memiliki algoritma yang sama dengan kodingan di bawah ini :
Informasi tambahan
Suatu slice misalkan s akan disimpan dengan memory address yang berbeda dengan value-value di dalam slice tersebut.
Last updated