Menu
CoddyTech

Buat Slice dengan make

Pelajaran 12 dari 21 dalam kursus Slice dan Map di Go di Coddy.

Di pelajaran sebelumnya, kita membuat slice menggunakan literal slice. Namun, ada fungsi lain yang disebut <strong>make</strong>. Fungsi ini memungkinkanmu mengalokasikan backing array untuk slice dengan panjang dan kapasitas tertentu. Fungsi seperti <strong>make</strong> diperlukan karena panjang slice belum ditentukan sebelumnya. Jadi, fungsi <strong>make</strong> memungkinkanmu membuat slice dengan panjang yang ditentukan.

Namun, jangan salah paham, panjangnya tidak menjadi tetap. Kamu tetap bisa menambahkan elemen ke dalamnya.

Sintaks fungsi <strong>make</strong> adalah sebagai berikut:

mySlice = make([]string, 4)

Kamu hanya perlu menggunakan <strong>make</strong>, dan argumen pertama (<strong>[]string</strong>) menjelaskan tipe slice, sedangkan argumen kedua (<strong>4</strong>) memberi tahu <strong>make</strong> panjang yang kita perlukan untuk slice. Argumen kedua juga menjelaskan kapasitas backing array. Jadi, panjang dan kapasitas slice yang dikembalikan menjadi sama.

 

Sekarang, pertanyaannya adalah mengapa kita perlu menggunakan fungsi <strong>make</strong> untuk membuat slice jika kita bisa menggunakan literal slice sederhana?

Jawabannya, dalam beberapa situasi, kita perlu menambahkan nilai baru ke slice. Jika kapasitasnya tidak cukup, slice akan membuat backing array baru. Operasi ini membutuhkan cukup banyak memori karena memerlukan alokasi ulang. Fungsi <strong>make</strong> mencegah alokasi ulang ini dengan mengalokasikan ruang terlebih dahulu di memori.

Dengan <strong>make</strong>, kita bisa menentukan panjang dan kapasitas dengan nilai yang berbeda seperti ini:

mySlice = make([]string, 4, 6)

Secara umum, fungsi <strong>make</strong> dapat direpresentasikan seperti yang ditunjukkan di bawah ini:


challenge icon

Tantangan

Mudah

Gunakan fungsi <strong>make</strong> untuk membuat slice bernama <strong>coddy</strong> dengan panjang 4 dan kapasitas 5.

  • Tambahkan nilai "Learn Golang" ke indeks 0. 
  • Tambahkan nilai "Coddy.tech" ke indeks 3.
  • Lakukan perulangan pada slice ini menggunakan kata kunci <strong>range</strong>, lalu cetak indeks dan nilai ke layar.

Coba sendiri

package main

import "fmt"

func main() {
    // Buat slice coddy dengan make  
    
 	// Tambahkan elemen pada indeks 0 dan 3


    // Iterasi slice coddy



}

Semua pelajaran di Slice dan Map di Go

Latihan sendiri: Compiler Go online