String, Byte & Rune

Memahami string sebagai byte UTF-8, rune, dan paket strings.

Part 14 dari 23 ± 35 menit Gratis

String di Go

String adalah deretan byte (disandikan UTF-8) dan bersifat immutable (tidak bisa diubah setelah dibuat).

s := "Halo"
// s[0] = 'h'   // ERROR: tidak bisa diubah

Untuk string multi-baris gunakan backtick:

teks := `baris 1
baris 2`

len menghitung byte

Huruf Latin = 1 byte, tetapi huruf seperti 世 atau emoji memakai 3-4 byte.

s := "Go 世界"
fmt.Println(len(s))           // 9 (byte)
fmt.Println(len([]rune(s)))   // 5 (karakter)

rune

rune adalah satu code point Unicode (alias int32). Ubah string ke []rune agar bisa mengiris atau menghitung karakter dengan benar. for range pada string menelusuri rune:

for i, r := range "Go世" {
    fmt.Println(i, string(r))
}

Menggabung & membandingkan

a := "Halo" + " " + "Dunia"
fmt.Println(a == "Halo Dunia")   // true

Menggabung banyak string dalam perulangan lebih efisien dengan strings.Builder.

Paket strings

FungsiContoh
------
strings.ToUpper(s) / ToLower"go" → "GO"
strings.Contains(s, sub)apakah mengandung
strings.HasPrefix / HasSuffixawalan / akhiran
strings.Split(s, sep)"a,b" → ["a" "b"]
strings.Join(slice, sep)gabungkan
strings.Fields(s)pecah berdasarkan spasi
strings.TrimSpace(s)buang spasi tepi
strings.ReplaceAll(s, a, b)ganti semua
strings.Repeat(s, n)ulangi
strings.Index(s, sub)posisi pertama (-1 jika tidak ada)

strconv

n, err := strconv.Atoi("42")
s := strconv.Itoa(42)
f, _ := strconv.ParseFloat("3.14", 64)

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X