Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Menggabungkan String secara Efisien di Go

1 min read .
Menggabungkan String secara Efisien di Go

Penggabungan string adalah operasi umum di banyak aplikasi Go, mulai dari menghasilkan konten dinamis sampai membangun kueri yang kompleks. Tapi, cara menggabungkannya nggak bisa asal, terutama kalau jumlah string-nya banyak. Pemilihan metode yang tepat bisa bikin aplikasi jalan lebih efisien dan nggak boros memori.

Berikut beberapa cara menggabungkan string di Go, dari yang paling simpel sampai yang lebih optimal.

1. Operator +

Cara paling gampang: pakai +.

str1 := "Hello, "
str2 := "world!"
result := str1 + str2

Cocok untuk gabung 2–3 string kecil. Tapi kalau dipakai di loop atau data besar, bisa bikin performa drop karena tiap gabungan bikin string baru di memori.

2. strings.Join()

Kalau punya slice string, gunakan strings.Join().

stringsSlice := []string{"Hello", "world", "from", "Go!"}
result := strings.Join(stringsSlice, " ")

Lebih efisien daripada +, apalagi kalau datanya sudah berupa slice. Kurangnya: agak ribet kalau datanya bukan dalam bentuk slice.

3. bytes.Buffer

Sebelum ada strings.Builder, banyak yang pakai bytes.Buffer.

var buffer bytes.Buffer
buffer.WriteString("Hello, ")
buffer.WriteString("world!")
result := buffer.String()

Efisien buat bikin string panjang atau dibangun dalam loop. Sekarang agak jarang dipakai, tapi tetap berguna kalau masih main di Go lama (<1.10).

4. strings.Builder

Ini cara paling modern dan idiomatik (ada sejak Go 1.10).

var builder strings.Builder
builder.WriteString("Hello, ")
builder.WriteString("world!")
result := builder.String()

Minim alokasi memori, enak dipakai di loop besar, dan biasanya jadi pilihan default di Go versi terbaru.

Perbandingan Singkat

Metode Pakai kalau… Jangan pakai kalau…
+ Cuma gabung 2–3 string kecil Dipakai di loop besar, boros memori
strings.Join() Punya slice string dan mau digabung rapi Data bukan slice, atau jumlahnya dikit
bytes.Buffer Lagi di Go versi lama (<1.10), atau butuh kontrol lebih Udah pakai Go baru, ada strings.Builder
strings.Builder Go modern (≥1.10), butuh efisien, string banyak/looping Pakai Go lama

Kesimpulan

  • Butuh cepat dan simpel → pakai +.
  • Gabung isi slice → strings.Join().
  • Go versi lama → bytes.Buffer.
  • Go modern, performa penting → strings.Builder.

Pilih sesuai kebutuhan, jangan kebiasaan pakai satu cara di semua situasi.

Lihat Juga

chevron-up