Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

2
0
0
SHARE

Kenapa di Golang Selalu Cek Error Dulu? Ini Penjelasan Lengkapnya!

like emoticon 2
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Kenapa di Golang Selalu Cek Error Dulu? Ini Penjelasan Lengkapnya!

Halo teman-teman semuanya, jika kita baru belajar Golang (Go), pasti pernah merasa heran: "Kenapa setiap habis manggil fungsi harus selalu cek error dulu?"

Contohnya seperti ini:

user, err := FindUserByID(id)
if err != nil {
    // tangani error
    return
}

// lanjut gunakan user

Sekilas, ini terasa repetitif dan membosankan, apalagi kalau kita sebelumnya menggunakan JavaScript, PHP, atau Python yang punya try-catch. Tapi percayalah, ada alasan kuat kenapa Go didesain seperti ini.

Yuk kita bahas kenapa di Go kita harus selalu cek error dulu.

1. Go Tidak Punya try-catch

Berbeda dengan banyak bahasa lain, Go tidak memiliki mekanisme try-catch. Alih-alih melempar exception, Go lebih memilih pendekatan yang eksplisit: fungsi yang berpotensi gagal akan mengembalikan nilai error.

Contoh:

data, err := ReadFile("config.json")
if err != nil {
    fmt.Println("Gagal baca file:", err)
    return
}

fmt.Println("Isi file:", string(data))

Daripada error "meledak" di tengah-tengah program, Go meminta kita untuk mengecek dan menangani error di tempat kejadian.

2. Prinsip "Fail Fast"

Go menganut prinsip fail fast:

"Kalau ada masalah, hentikan dan tangani secepat mungkin."

Dengan memeriksa err segera, kita tahu persis kapan dan di mana error terjadi, sehingga:

  • Aplikasi jadi lebih aman
  • Debugging jadi lebih mudah
  • Kode jadi lebih mudah dirawat

3. Lebih Aman dari Panic

Coba lihat contoh ini:

var user User
err := db.First(&user, 999).Error
if err != nil {
    // user tidak ditemukan
    return
}

// lanjut akses user.Name

Bayangkan jika kita tidak cek err, lalu langsung akses user.Name. Bisa jadi:

  • user belum diisi
  • Program crash karena akses ke data kosong

Dengan mengecek error lebih dulu, kita mencegah kesalahan logika dan panic yang tidak perlu.

4. Kenapa Tidak Cek result != nil?

Karena tidak semua result == nil berarti error.

Contoh:

  • Query database bisa mengembalikan hasil kosong (bukan error)
  • Fungsi bisa mengembalikan nilai default walau ada error

Maka dari itu, Go memisahkan return value dan error secara eksplisit agar tidak ambigu.

Contoh Perbandingan JavaScript vs Go

  • JavaScript:

    try {
        const data = await fetchData();
        console.log(data);
    } catch (err) {
        console.error("Gagal fetch:", err);
    }
    
    
  • GoLang:

    data, err := fetchData()
    if err != nil {
        fmt.Println("Gagal fetch:", err)
        return
    }
    
    fmt.Println(data)
    

    Di GoLang, kita menangani error dengan logika sendiri, bukan diserahkan ke mekanisme runtime seperti try-catch.

Kesimpulan

Cek error dulu di Go bukan karena gaya lama atau aturan ketat, tapi karena:

  • Go tidak punya try-catch
  • Go lebih suka pendekatan eksplisit dan aman
  • Prinsip fail fast bikin kode lebih stabil dan mudah ditelusuri

Semoga artikel ini membantumu memahami filosofi di balik cek error dulu di Go.

Terima Kasih

Blog ini dibaca sebanyak 2.538 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...