Memahami Slice Dalam Golang : Panduan Lengkap dengan Contoh Kode
Tipe data slice adalah salah satu tipe data yang unik di bahasa pemerograman golang. Tipe data ini sering kali membingungkan bagi para pemula yang baru terjun dalam dunia pemerograman, di karenakan tipe data ini sering kali di sebut dengan tipe data array tapi nyatanya berbeda dengan array. Nah kali ini Code Dadakan akan membahas tipe data slice di golang dan cara menggunakannya dalam project.
Apa Itu Slice
Komponen Utama Slice
- Length : Panjang data yang tersimpan dalam tipe data slice ( jumlah elemen yang ada di dalamnya )
- Pointer : Menunjuk ke elemen pertama dalam array yang di rujuk oleh slice ( kita akan membahas slice pada module lain )
- Capacity : Kapasitas maksimal dari slice ( berapa banyak elemen data yang dapat di simpan )
Contoh Kode Dari Slice
names := [...]string{"Agus", "Ahyar", "Indra", "Wahid", "Obo", "Dayat", "Iqbal", "Roni"}
slicesNames := names[2:5]
fmt.Println(slicesNames)
Pada contoh kode di atas, " sliceNames " adalah variable dengan tipe data slice yang di buat dari array names dan mengambil elemen names mulai dari indeks ke 2 hingga ke 4 [2:5], elemen ke 5 tidak termasuk dalam hasil di karenakan slice selalu mengambil elemen dengan batas atas ekslusif.
Coba jalankan code di atas dan lihat output pada layar anda nama siapa yang akan muncul.
Sifat Dari Slice
Slice adalah referensi dari array, yang berarti jika perubahan di lakukan pada array akan tercermin ke slice, begitupun sebaliknya. Berikut adalah contoh kode nya :
animals := [...]string{"Horse", "Cat", "Cow", "Ant", "Zebra", "Crocodile", "Fish", "Snake"}
theAnimals := animals[0:4]
waterAnimals := animals[5:7]
fmt.Println(theAnimals) // Output: ["Horse", "Cat", "Cow", "Ant"]
fmt.Println(waterAnimals) // Output: ["Crocodile", "Fish"]
// Mengubah elemen di array asli
animals[5] = "Plankton"
animals[0] = "Dog"
fmt.Println(theAnimals) // Output: ["Dog", "Cat", "Cow", "Ant"]
fmt.Println(waterAnimals) // Output: ["Plankton", "Fish"]
Setiap perubahan pada array animals langsung memengaruhi nilai dalam slice theAnimals dan waterAnimals
Fungsi di Slice
Fungsi len(), yang dapat di gunakan untuk mengambil panjang dari sebuah slice.
fmt.Println(len(waterAnimals)) // Output: 2
Fungsi cap(), yang dapat di gunakan untuk mengetahui kapasitas dari sebuah slice
fmt.Println(cap(waterAnimals)) // Output: 3
Fungsi append(), Menambahkan elemen baru ke dalam slice. Jika kapasitas penuh, maka akan membuat array baru
var days = [...]string{
"Senin",
"Selasa",
"Rabu",
"Kamis",
"Jumat",
"Sabtu",
"Minggu",
}
theDays := days[5 : 7];
fmt.Println(theDays)
// menggunakan fungsi append()
var newDays = append(theDays, "Libur");
// output yang muncul ialah [Sabtu Minggu Libur]
fmt.Println(newDays)
Buat Slice Dengan Fungsi Make()
Di golang juga menyediakan fungsi make() untuk membuat slice yang lebih efisien. Fungsi ini memungkinkan programmer dapat menentukan panjang dan kapasitas slice saat di buat. Berikut contoh kode nya :
myNames := make([]string, 2, 6)
myNames[0] = "Code"
myNames[1] = "Dadakan"
fmt.Println(myNames)
fmt.Println(len(myNames))
fmt.Println(cap(myNames))
Coba tebak output yang akan muncul di layar ketika code di atas di jalankan
Menyalin Data Slice
Golang memiliki fungsi copy() yang terdapat 2 parameter slice di dalam fungsi tersebut. Ini dapat di gunakan untuk menyalin elemen-elemen dari slice ke slice lainnya. Berikut contoh code nya :
copyNames := make([]string, len(myNames), cap(myNames))
copy(copyNames, myNames)
fmt.Println(copyNames)
Kesimpulan
Selanjutnya anda bisa lanjut pada module :
Posting Komentar