Lompat ke konten utama
←

Go dari Nol

Pelajaran 9 dari 15

Fungsi, slice, dan map

Slice: append dan pemotongan

Setelah pelajaran ini kamu bisa memprediksi hasil append dan pemotongan s[a:b], dan menjelaskan kapan perubahan pada potongan ikut mengubah slice asalnya.

±13 menitDiperiksa 5 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Array di Go berukuran tetap, dan ukurannya bagian dari tipenya: [3]int dan [4]int adalah dua tipe berbeda. Yang dipakai sehari-hari adalah slice, ditulis []int, yaitu jendela ke sebuah array yang bisa tumbuh. Slice dibuat dengan literal []string{"Ani", "Budi"} atau dengan make([]int, 3), yang berisi tiga nilai nol. len(s) memberi jumlah elemennya.

append(s, x) mengembalikan slice yang sudah memuat x, dan slice lama tidak bertambah panjang. Karena itu hasilnya selalu disimpan kembali: antrean = append(antrean, "Dodi"). Memanggil append tanpa menyimpan hasilnya ditolak kompilator karena nilainya tidak dipakai.

Ekspresi s[a:b] mengambil elemen dari indeks a sampai sebelum indeks b, jadi s[1:3] berisi dua elemen. Hasil pemotongan tidak menyalin data: ia menunjuk array yang sama, sehingga mengubah elemen potongan ikut mengubah slice asalnya. Salinan terpisah dibuat dengan copy atau, sejak Go 1.21, slices.Clone.

package main

import "fmt"

func main() {
	antrean := []string{"Ani", "Budi"}
	antrean = append(antrean, "Citra")
	fmt.Println(antrean, len(antrean)) // [Ani Budi Citra] 3

	depan := antrean[0:2]
	depan[1] = "Bayu"
	fmt.Println(antrean) // [Ani Bayu Citra]
}

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa yang dicetak program ini?

package main

import "fmt"

func main() {
	hari := []string{"Sen", "Sel", "Rab", "Kam", "Jum"}
	tengah := hari[1:3]
	fmt.Println(tengah, len(tengah))
}
Pilih satu jawaban

Latihan 2 dari 3

Apa yang terjadi saat program ini dijalankan dengan go run?

package main

import "fmt"

func main() {
	antrean := []string{"Ani", "Budi", "Citra"}
	append(antrean, "Dodi")
	fmt.Println(len(antrean))
}
Pilih satu jawaban

Latihan 3 dari 3

Apa yang dicetak program ini?

package main

import "fmt"

func main() {
	kota := []string{"Medan", "Padang", "Palembang", "Jambi"}
	sumatra := kota[1:3]
	sumatra[0] = "Bukittinggi"
	fmt.Println(kota)
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke