Posts

Kenapa Golang Itu Keren? (Tanpa Basa-basi Teknis yang Bikin Ngantuk)

February 2, 2026
Jujur aja, pertama kali gue denger tentang Go (atau Golang), gue agak skeptis. "Ah, paling bahasa baru lagi yang 6 bulan lagi juga ilang hypenya," pikir gue waktu itu. Tapi ternyata gue salah besar. Sekarang, Go udah kayak "bahasa wajib" kalau lo mau mainan di ranah Cloud Native, Microservices, atau bikin sistem backend yang high-performance tapi nggak bikin rambut rontok kayak C++. Buat lo yang masih ragu mau belajar Go atau nggak, yuk kita bedah kenapa bahasa buatan Google ini layak banget masuk tech stack lo tahun ini. Kalau lo biasa pake Java atau C#, mungkin lo bakal kaget pas liat sintaks Go. Rasanya... kosong. Go didesain oleh legenda kayak Ken Thompson (yang bikin UNIX) dan Rob Pike. Filosofi mereka jelas: Kurangi fitur yang nggak perlu. Di Go, lo nggak bakal nemu:
  • Inheritance yang ribet
  • Generics yang bikin pusing (walaupun sekarang udah ada di versi baru, tapi tetep simpel)
  • Method overloading
Intinya: Go memaksa kita nulis kode yang explicit dan mudah dibaca orang lain. Kode yang gampang dibaca = gampang di-maintain.

Ini dia fitur yang bikin Go menang banyak: Goroutines. Bayangkan lo lagi masak. Kalau pakai bahasa lain, lo harus nunggu air mendidih dulu baru bisa potong bawang (Synchronous). Atau lo harus bikin "thread" baru yang berat banget resource-nya (kayak nyewa koki baru buat motong bawang). Di Go, Goroutine itu kayak lo bisa membelah diri jadi ribuan minion kecil yang cuma butuh memori super kecil (sekitar 2KB). Coba liat betapa simpelnya bikin proses concurrent di sini:
package main

import (
	"fmt"
	"time"
)

func ngopi(jenis string) {
	for i := 0; i < 3; i++ {
		fmt.Println("Lagi nyeruput:", jenis)
		time.Sleep(100 * time.Millisecond)
	}
}

func main() {
	// Tinggal tambah keyword "go" di depan function
	go ngopi("Arabica")
	go ngopi("Robusta")

	// Tunggu sebentar biar ke-print semua
	time.Sleep(1 * time.Second)
	fmt.Println("Kopi habis, lanjut coding!")
}
Cuma tambah go di depan fungsi, dan boom! Jalan barengan. Nggak pake ribet setup thread pool.
Go itu compiled language. Artinya, kode lo langsung diubah jadi machine code (biner). Nggak perlu Virtual Machine (VM) kayak Java atau interpreter kayak Python/JS. Hasilnya?
  1. Startup time super cepat.
  2. File binary tunggal. Lo bisa compile di laptop lo, terus copy satu file itu ke server, dan langsung jalan. Nggak perlu install dependency atau runtime environment di server. Goodbye, "It works on my machine"!

Biar adil, nggak semua tentang Go itu indah. Ada satu hal yang pasti bakal lo temui tiap hari: Error Handling. Di Go, nggak ada try-catch. Kita ngecek error secara manual. Lo bakal sering banget nulis kode kayak gini:
file, err := os.Open("rahasia.txt")
if err != nil {
    log.Fatal(err)
}

data, err := io.ReadAll(file)
if err != nil {
    log.Fatal(err)
}
Awalnya emang kerasa repetitif. Tapi lama-lama lo bakal sadar kalau cara ini bikin lo lebih aware sama setiap kemungkinan error yang bisa terjadi di aplikasi lo.
Jawaban singkat: Banget. Kalau lo pengen jadi Backend Engineer yang ngerjain sistem skalabel, Go adalah investasi skill yang solid. Learning curve-nya landai, gajinya lumayan (eh, ini fakta lho), dan komunitasnya suportif. Saran gue buat next step:
  1. Install Go di laptop lo.
  2. Ikutin A Tour of Go.
  3. Coba bikin API sederhana pake library standar net/http.
Selamat ngoding dan jangan lupa istirahat! ☕