Dasar Pemrograman Golang untuk Pemula

Ilustrasi Sederhana Bahasa Go

Golang, atau sering disebut Go, adalah bahasa pemrograman yang dikembangkan oleh Google. Dirancang untuk efisiensi, kecepatan kompilasi, dan konkurensi yang kuat, Go telah menjadi pilihan utama untuk pengembangan backend, layanan mikro (microservices), dan infrastruktur cloud. Bagi Anda yang baru memulai, memahami dasar-dasar Go adalah langkah awal yang krusial.

1. Struktur Dasar Program Go

Setiap program Go dimulai dengan deklarasi paket (package) dan seringkali diikuti oleh impor pustaka (libraries) yang diperlukan. Program yang dapat dieksekusi harus berada dalam paket main dan memiliki fungsi main() sebagai titik masuk.

package main

import "fmt"

func main() {
    // Ini adalah komentar
    fmt.Println("Halo, Dunia Pemrograman Go!")
}

Perintah fmt.Println digunakan untuk mencetak teks ke konsol, yang merupakan bagian dari paket standar fmt (format).

2. Variabel dan Tipe Data

Go adalah bahasa yang sangat ketat mengenai tipe data. Deklarasi variabel bisa dilakukan dengan dua cara utama:

Deklarasi Penuh:

var nama string = "Budi"
var umur int = 25

Inisialisasi Singkat (Short Variable Declaration):

Di dalam fungsi, kita sering menggunakan operator :=. Tipe data akan disimpulkan secara otomatis oleh compiler.

pesan := "Selamat datang" // Tipe string disimpulkan
nilai := 90.5                // Tipe float64 disimpulkan

Tipe data dasar di Go meliputi: int (bilangan bulat), float64 (angka desimal), bool (boolean: true/false), dan string (teks).

3. Kontrol Alur (Flow Control)

Mengontrol bagaimana kode dieksekusi adalah fundamental. Go memiliki sintaks yang relatif sederhana untuk kondisi dan perulangan.

Kondisional (If-Else)

Tidak seperti beberapa bahasa lain, Go tidak memerlukan tanda kurung untuk kondisi if.

angka := 10
if angka > 10 {
    fmt.Println("Lebih besar dari 10")
} else if angka == 10 {
    fmt.Println("Sama dengan 10")
} else {
    fmt.Println("Kurang dari 10")
}

Perulangan (For Loop)

Go hanya memiliki satu jenis perulangan, yaitu for. Ini sangat fleksibel dan dapat digunakan untuk iterasi standar, while-style, atau infinite loop.

// For Loop Klasik
for i := 0; i < 3; i++ {
    fmt.Println("Iterasi ke", i)
}

// For Loop Mirip While
counter := 0
for counter < 2 {
    fmt.Println("Counter:", counter)
    counter++
}

4. Fungsi

Fungsi adalah blok kode yang dapat digunakan kembali. Go memungkinkan fungsi mengembalikan banyak nilai, yang sangat berguna untuk menangani error.

func tambah(a int, b int) int {
    return a + b
}

func bagi(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("pembagi tidak boleh nol")
    }
    return a / b, nil // nil berarti tidak ada error
}

Fungsi bagi menunjukkan cara mengembalikan dua nilai: hasil dan potensi error.

5. Konkurensi: Goroutines

Inilah fitur utama Go. Untuk menjalankan fungsi secara konkuren (paralel), kita menggunakan kata kunci go di depan pemanggilan fungsi, menciptakan Goroutine. Goroutine jauh lebih ringan daripada thread OS tradisional.

func cetakPesan(msg string) {
    fmt.Println(msg)
}

func main() {
    go cetakPesan("Ini dijalankan secara konkuren!")
    fmt.Println("Ini dijalankan lebih dulu atau bersamaan.")
    // Perlu waktu sebentar agar goroutine selesai di program sederhana
    time.Sleep(time.Second * 1) 
}

Untuk mengelola komunikasi antar goroutine, Go menggunakan Channels, namun itu adalah topik lanjutan dari dasar-dasar ini.

Penutup

Dasar-dasar pemrograman Golang mencakup sintaksis yang bersih, manajemen variabel yang eksplisit, dan dukungan luar biasa untuk konkurensi. Dengan menguasai konsep variabel, kontrol alur, fungsi, dan sedikit sentuhan goroutine, Anda siap melangkah lebih jauh untuk membangun aplikasi modern dengan Go.