Selalu ingin mencoba hal - hal yang baru meski penuh resiko dan tantangan yang sulit. "Kain kafan tidak berkantung".

Golang tutorial indonesia – Slice

0
Degananda.com -

Slice

Slice dalam bahasa indonesia berarti potongan atau bagian. Dalam konteks array slice dipemrograman golang adalah potongan dari suatu array. Array dan slice berbeda yakni array memiliki panjang yang fix atau kapasitas array tidak dapat ditambahkan. Sedangkan dengan menggunakan slice kita dapat membuat array yang panjangnya bisa berubah-ubah. Sehingga lebih dinamis.

Meski slice dapat berubah panjangnya namun slice sendiri tidak dapat lebih panjang dari array tersebut. Karena slice adalah bagian dari suatu array.

Membuat slice

Contohnya disini kita memiliki array [1,2,3,4,5]. Kita ingin membuat slice atau potongan dari array tersebut maka kode yang kita gunakan adalah sebagai berikut ini

package main

import (
	"fmt"
)

func main() {

	nilai_ujian := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

	ujianBulan1 := nilai_ujian[0:5]

	fmt.Println(ujianBulan1)

}

penentuan slice ditentukan oleh nilai [a,b] yang berada didalam bracket. A adalah index awal dan b adalah index ahir. Namun hasil slice adalah dari range A hingga B-1. Contohnya pada kode diatas akan menghasilkan 1,2,3,4,5  Ini berarti dari index ke 0 hingga index ke empat. Ketentuan lain adalah nilai A harus kurang dari nilai B. Karena index awal harus < dari index ahir. Jika tidak seperti itu maka akan error.

Slice kosong

Jika ingin menginisiasi suatu slice kosong (bukan dari array) maka kita dapat menggunakan fungsi make yang disediakan oleh golang

package main

import (
	"fmt"
)

func main() {

	nilaiUjian := make([]int, 5, 10)
	fmt.Println(nilaiUjian)

}

kode diatas akan membuat slice dengan panjang 5 dari kapasitas maksimal sebesar 10. Sehingga kita panjang dari array dapat berubah – ubah dari 5 ~ 10. Slice diatas kosong kita dapat mengisinnya sesuai dengan index yang di inginkan

Append

Seperti kita ketahui bahwa slice lebih dinamis jika dibandingkan dengan array pada golang. kita dapat menambahkan elemen diahir slice (mirip dengan array push pada javascript). Untuk mencapai tujuan tersebut(menambahkan elemen) kita menggunaan fungsi append(slice/array, elemenbaru1,elemenbaru2).

  1. Parameter awal adalah array atau slice yang ingin ditambahkan elemen diahir
  2. Parameter kedua hingga … (tak terbatas) adalah elemen-elemen yang akan ditambahkan

Untuk lebih jelasnya silahkan perhatikan contoh kode dibawah ini

package main

import (
	"fmt"
)

func main() {

	nilai_ujian := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

	nilai_ujian = append(nilai_ujian, 11)

	fmt.Println(nilai_ujian)

}

kode diatas jika kita eksekusi akan menghasilkan tampilan seperti dibawah ini pada konsol

maka sekarang array nilai ujian telah berubah dengan tambahan berupa satu elemen dengan nilai “11” diahir array atau di index array.length.

apakah slice = array. Untuk mempermudah maka kita dapat menganggap seperti itu karena kita lihat bahwa append juga berfungsi pada suatu array meski kita tidak menginisiasinnya dengan menggunakan make

Copy

kita juga dapat melakukan copy pada suatu array dengan menggunakan perintah copy(). Perhatikan kode dibawah ini

package main

import (
	"fmt"
)

func main() {

	nilai_ujian := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

	nilai_ujian = append(nilai_ujian, 11)
	var nilai_ujian_slice = make([]int, 5)
	nilai_ujian_copy := copy(nilai_ujian_slice, nilai_ujian)
	fmt.Println(nilai_ujian_copy)

}

copy memiliki dua parameter yang harus didefinisikan

  1. pertama adalah nilai slice sebagai wadah untuk copy
  2. kedua adalah array/slice yang ingin dicopy

perlu diperhatikan bahwa penulisan variable seperti diatas sangat tidak dianjurkan. golang menganjurkan ktia untuk tidak menggunakan underscores(“_”).

don’t use underscores in Go names; var nilai_ujian_copy should be nilaiUjianCopy