Apa itu Golang dan sejarah singkatnya
Kalau kamu baru mulai belajar pemrograman, mungkin sering dengar tentang bahasa yang satu ini: Golang atau sering disebut Go. Bahasa pemrograman ini dibuat oleh Google sekitar tahun 2007 dan resmi dirilis ke public pada tahun 2009. Alasan utama dibuatnya Go adalah untuk menyederhankan proses pembuatan software yang saat itu semakin kompleks. Tim yang mengembangkan bahasa ini adalah Robert Griesemer, Rob Pike, dan Ken Thompson, tiga insinyur senior di Google yang melihat perlunya bahasa pemrograman baru yang lebih ringan, cepat, dan mudah dioperasikan.
Golang di desain dengan sintaks yang simpel dan mudah dibaca, cocok buat pemula yang baru terjun ke dunia coding. Meski mudah, bahasa ini punya performa yang tinggi setara dengan bahasa C atau C++. Golang juga dilengkapi fitur bawaan untuk membuat aplikasi skala besar lebih efesien, seperti dukungan concurrency yang memudahkan program berjalan paralel tanpa ribet. Karena alasan inilah banyak perusahaan besar memakai Go untuk aplikasi dengan trafik tinggi.
Selain itu, komunitas Golang terus bertumbuh pesat. Banyak developer berbagi pengalaman, modul, dan library open source yang bisa dipakai gratis. Hal ini bikin Golang makin populer di kalangan pemula sampai profesional. Kalau kamu tertarik serius belajar bahasa ini, sekarang banyak banget kursus online seperti BuildWithAngga yang menyediakan materi dasar hingga mahir untuk Go. Dengan panduan yang tepat, Golang bisa jadi langkah awal yang mantap buat kamu yang mau masuk dunia software engineering.
Alasan Golang populer di kalangan developer

Golang jadi salah satu bahasa pemrograman yang lumayan cepet naik daun sejak dirilis oleh Google. Banyak developer suka pakai bahasa ini karena beberapa alasan yang bikin kerjaan mereka lebih ringan dan efesien. Salah satu hal utama adalah performanya yang tinggi. Go di desain buat jalanin program dengan kecepatan hampir setara bahasa tingkat rendah seperti C, tapi sintaksnya lebih sederhana, jadi nggak perlu pusing mikirin detail kecil yang bikin ribet.
Selain cepat, Golang terkenal karena mendukung concurrency dengan mudah lewat fitur goroutine. Kalau bikin aplikasi yang harus nangani banyak request secara bersamaan, kayak server web atau sistem skala besar, pakai Go bisa bikin prosesnya lancar tanpa harus nulis kode ribet. Inilah alasan banyak startup dan perusahaan besar pake Go buat ngehandle trafik jutaan user sekaligus.
Bahasa ini juga punya sistem kompilasi yang ringkas. Cukup satu perintah, kode langsung jadi file biner yang bisa dijalankan di berbagai sistem operasi. Developer nggak perlu ribet mikirin dependency yang berantakan. Hal kayak gini bikin proses deploy aplikasi lebih cepat dan aman.
Yang bikin Go makin populer adalah komunitasnya yang solid dan sumber belajar yang lengkap. Kamu bisa nemuin banyak dokumentasi resmi, forum diskusi, sampai kursus di BuildWithAngga yang jelasin konsep Go dari dasar sampe level mahir. Bahkan banyak library open source yang siap pakai biar nggak harus bikin semua dari nol.
Selain itu, Go juga cocok buat berbagai kebutuhan, mulai dari bikin API, sistem backend, sampai tools buat DevOps. Kombinasi kecepatan, kesederhanaan, dan dukungan komunitas bikin bahasa ini jadi pilihan favorit banyak developer yang pengen kerja lebih efisien tanpa ngorbanin performa.
Kelebihan dan kekurangan Golang

Kalau ngomongin soal bahasa pemrograman, pasti nggak ada yang sempurna, termasuk Golang. Bahasa ini punya banyak kelebihan yang bikin developer tertarik, tapi juga ada kekurangan yang perlu kamu tahu supaya bisa pertimbangin sebelum belajar lebih dalam. Dengan begini, kamu bisa punya gambaran jelas tentang kapan dan kenapa Golang cocok dipakai.
Berikut adalah beberapa kelebihan Golang:
- Sintaks sederhana dan mudah dipahami Golang dirancang supaya gampang dibaca dan dipelajari, cocok buat pemula yang baru terjun ke dunia pemrograman.
- Performa tinggi Go bisa jalan hampir secepat C atau C++ tanpa ribet mikirin detail teknis tingkat rendah.
- Concurrency bawaan lewat goroutine Kamu bisa bikin aplikasi yang nangani banyak request sekaligus tanpa perlu nulis kode ribet.
- Proses kompilasi cepat Cukup satu perintah, kode langsung jadi file biner yang siap dijalankan di berbagai platform.
- Ekosistem dan komunitas kuat Banyak library open source dan forum aktif, jadi lebih gampang nyari solusi saat ada masalah.
- Banyak sumber belajar Kursus seperti BuildWithAngga nyediain materi lengkap dan step-by-step buat belajar Go dari nol.
Nah, selain kelebihan di atas, ada juga beberapa kekurangan Golang yang perlu kamu tahu:
- Fitur generics masih terbatas Walaupun udah ada dukungan generics, tapi masih baru dan belum sesempurna bahasa lain.
- Kurangnya dukungan bawaan untuk GUI Kalau mau bikin aplikasi dengan tampilan grafis, perlu library tambahan atau pakai bahasa lain.
- Pengelolaan error manual Kamu bakal sering nulis kode tambahan buat nge-handle error secara eksplisit.
- Aturan kode ketat Variabel yang nggak dipakai bikin kode nggak bisa jalan, kadang terasa ribet tapi sebenernya buat bikin kode lebih rapi.
Dengan semua kelebihan dan kekurangan ini, Golang lebih cocok buat backend, API, atau sistem berskala besar, tapi kurang pas untuk proyek yang butuh tampilan grafis kompleks.
Instalasi dan setup Golang di komputer
Sebelum mulai ngoding pakai Golang, tentu langkah pertama yang harus kamu lakuin adalah instalasi dan setup di komputer. Prosesnya sebenernya nggak terlalu ribet, tapi buat pemula kadang terasa bikin bingung kalau belum pernah setup bahasa pemrograman sebelumnya. Makanya, kita bahas secara pelan-pelan supaya kamu bisa langsung praktik tanpa kebingungan.

Langkah-langkah utama untuk install Golang:
- Download installer Golang Pertama, kamu bisa kunjungi situs resmi Golang untuk download installer sesuai sistem operasi yang kamu pake, baik itu Windows, macOS, atau Linux. Pilih versi terbaru supaya dapet fitur dan keamanan yang lengkap. Kadang pemula suka salah pilih versi, jadi pastiin kamu pilih file yang sesuai sistem komputer kamu.
- Jalankan installer Setelah file installer selesai diunduh, klik dua kali file tersebut lalu ikutin semua instruksi yang muncul di layar. Biasanya cuma klik next, setujuin lisensi, lalu tunggu proses selesai. Bagian ini simpel, tapi sering ada yang buru-buru klik tanpa baca, padahal penting untuk pastiin lokasi instalasi sesuai kebutuhan.
- Set environment variable (PATH) Nah, ini langkah penting supaya kamu bisa menjalankan perintah
golangsung dari terminal atau command prompt. Biasanya installer udah otomatis nambahin PATH, tapi kalau belum, kamu bisa masuk ke pengaturan sistem, cari environment variable, dan tambahin folder bin dari Golang secara manual. - Cek instalasi Setelah selesai, buka terminal atau command prompt lalu ketik perintah
go version. Kalau muncul versi Golang, artinya instalasi sukses. Banyak pemula yang sering bingung kenapa perintah nggak jalan, biasanya karena PATH belum diatur dengan benar.

Selain itu, ada beberapa tips supaya setup Golang kamu lebih enak dipakai buat belajar:
- Gunakan text editor atau IDE yang mendukung Golang Editor seperti VS Code bisa banget dipakai karena ringan dan punya ekstensi khusus buat Go.
- Bikin folder khusus untuk project Golang Supaya semua file rapih dan gampang dicari.
- Pasang Go modules Modul ini bakal bantu kamu buat ngatur dependency project, jadi nggak perlu ribet nyimpen library secara manual.
- Ikuti panduan dari BuildWithAngga Kalau masih bingung, kamu bisa cari kursus instalasi dan setup Golang yang disediain BuildWithAngga. Penjelasannya step-by-step dan cocok banget buat pemula.
Kalau semua langkah di atas udah kamu ikutin, sekarang kamu siap banget buat mulai belajar coding pakai Golang. Proses instalasi ini jadi pondasi penting biar ke depannya kamu nggak keteteran waktu bikin project.
Dasar Sintaks Golang
Sebelum bikin API, penting banget buat memahami dasar-dasar sintaks Golang. Bahasa ini terkenal simpel dan rapi, jadi mudah dipelajari pemula. Berikut ringkasan materi dasar:
1. Deklarasi Variabel, Tipe Data, dan Konstanta
Di Golang, variabel bisa dideklarasikan dengan kata kunci var, atau langsung pakai := untuk inisialisasi cepat. Konstanta dideklarasikan dengan const.
package main
import "fmt"
func main() {
// Deklarasi variabel dengan tipe data
var name string = "Golang"
var age int = 10
// Deklarasi variabel dengan tipe inferensi
version := 1.20
// Deklarasi konstanta
const pi = 3.14
fmt.Println("Bahasa:", name)
fmt.Println("Umur:", age)
fmt.Println("Versi:", version)
fmt.Println("Nilai Pi:", pi)
}

2. Struktur Kontrol: if, for, dan switch
Golang punya sintaks sederhana untuk percabangan dan perulangan.
package main
import "fmt"
func main() {
// if statement
num := 10
if num > 5 {
fmt.Println("Angka lebih besar dari 5")
} else {
fmt.Println("Angka kurang atau sama dengan 5")
}
// for loop
for i := 0; i < 5; i++ {
fmt.Println("Iterasi ke:", i)
}
// switch case
day := "Senin"
switch day {
case "Senin":
fmt.Println("Hari ini Senin")
case "Selasa":
fmt.Println("Hari ini Selasa")
default:
fmt.Println("Hari tidak diketahui")
}
}

3. Fungsi, Package, dan Import
Setiap program Golang dimulai dari fungsi main. Kita bisa bikin fungsi tambahan, lalu panggil dari main. File bisa dipisah ke package berbeda untuk modularitas.
package main
import "fmt"
// Fungsi sederhana
func greet(name string) string {
return "Halo, " + name
}
func main() {
message := greet("BuildWithAngga")
fmt.Println(message)
}

Kalau proyek besar, kamu bisa pecah kode jadi beberapa file dan package. Misalnya, bikin folder utils lalu file math.go, isi dengan fungsi, lalu import di main.go.
4. Error Handling Dasar
Di Golang, error ditangani dengan mengembalikan nilai error. Biasanya, fungsi yang bisa gagal akan mengembalikan dua nilai: hasil dan error.
package main
import (
"errors"
"fmt"
)
// Fungsi yang mengembalikan error
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("pembagian dengan nol tidak diperbolehkan")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Terjadi error:", err)
} else {
fmt.Println("Hasil:", result)
}
}

Kode di atas menunjukkan cara umum menangani error di Golang: selalu cek err sebelum pakai hasil fungsi.
Kenapa Dasar Ini Penting?
Dengan memahami dasar ini, pemula akan lebih siap membangun API atau proyek yang kompleks. Kamu bisa lanjut belajar praktik nyata dengan materi lengkap di BuildWithAngga, karena kursusnya sudah tersusun step-by-step untuk pemula sampai expert.
Kesalahan yang sering terjadi buat pemula biasanya ada di penamaan file atau lokasi file. Kadang orang lupa ekstensi .go atau salah ketik perintah di terminal, jadi program nggak jalan. Karena itu, biasakan teliti sejak awal biar nggak kebingungan.
Membuat API Sederhana Menggunakan Golang
Setelah kamu memahami dasar-dasar Golang, langkah selanjutnya yang bisa dicoba adalah membuat API sederhana. API (Application Programming Interface) ini berguna untuk menghubungkan front-end dengan back-end, atau antar aplikasi. Kita bisa mulai dengan project kecil seperti menampilkan daftar data dummy lewat endpoint sederhana.
Membuat API dengan Golang bisa dibilang cukup mudah karena syntax-nya ringkas dan performanya bagus. Kamu nggak perlu setup yang ribet, cukup manfaatkan library bawaan seperti net/http. Berikut contoh sederhana API menggunakan dummy data:
package main
import (
"encoding/json"
"fmt"
"net/http"
)
// Struktur data untuk menampung dummy data
type Produk struct {
ID int `json:"id"`
Nama string `json:"nama"`
Harga int `json:"harga"`
}
// Data dummy
var produkList = []Produk{
{ID: 1, Nama: "Buku Golang Dasar", Harga: 50000},
{ID: 2, Nama: "Kaos Golang Developer", Harga: 120000},
{ID: 3, Nama: "Stiker Golang", Harga: 10000},
}
// Handler untuk endpoint /produk
func getProdukHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(produkList)
}
func main() {
http.HandleFunc("/produk", getProdukHandler)
fmt.Println("Server berjalan di <http://localhost:8080>")
http.ListenAndServe(":8080", nil)
}
Kalau kamu jalankan kode di atas dengan go run main.go, server akan berjalan di http://localhost:8080. Akses endpoint /produk, maka kamu akan melihat data dummy dalam format JSON:

[
{
"id": 1,
"nama": "Buku Golang Dasar",
"harga": 50000
},
{
"id": 2,
"nama": "Kaos Golang Developer",
"harga": 120000
},
{
"id": 3,
"nama": "Stiker Golang",
"harga": 10000
}
]
Dengan cara ini, kamu sudah bisa bikin API sederhana yang menampilkan data. Selanjutnya, kamu bisa coba kembangkan fitur lain seperti menambahkan produk baru, menghapus, atau mengedit data.
Kalau ingin lebih dalam belajar bikin API dengan praktik nyata, kamu bisa ikutan kursus Full Stack Golang Next.js Blog Portal News di BuildWithAngga. Di sana kamu bakal belajar bikin API lebih kompleks dengan database dan integrasi front-end yang profesional.
Penjelasan Goroutine dan Concurrency
Salah satu hal yang membuat Golang terkenal adalah kemampuannya dalam menangani concurrency dengan sangat efisien. Concurrency adalah konsep di mana beberapa proses bisa berjalan secara bersamaan, sehingga aplikasi terasa lebih cepat dan responsif. Di Golang, kita bisa menjalankan fungsi secara bersamaan dengan cara yang sangat mudah menggunakan fitur bernama goroutine.
Goroutine adalah unit eksekusi ringan yang dikelola oleh Golang runtime. Untuk membuat sebuah goroutine, kita cukup menambahkan kata kunci go di depan pemanggilan fungsi. Fitur ini sangat membantu jika kamu ingin menjalankan beberapa tugas sekaligus, misalnya mengambil data dari beberapa sumber atau memproses banyak permintaan API secara paralel.
Berikut contoh kode sederhana penggunaan goroutine untuk menjalankan dua fungsi secara bersamaan:
package main
import (
"fmt"
"time"
)
// Fungsi pertama
func cetakPesan1() {
for i := 1; i <= 5; i++ {
fmt.Println("Pesan dari fungsi 1:", i)
time.Sleep(time.Millisecond * 500) // jeda 0.5 detik
}
}
// Fungsi kedua
func cetakPesan2() {
for i := 1; i <= 5; i++ {
fmt.Println("Pesan dari fungsi 2:", i)
time.Sleep(time.Millisecond * 500)
}
}
func main() {
// Menjalankan cetakPesan1 sebagai goroutine
go cetakPesan1()
// Menjalankan cetakPesan2 secara normal
cetakPesan2()
// Menunggu goroutine selesai
time.Sleep(time.Second * 3)
fmt.Println("Program selesai")
}

Pada kode di atas, cetakPesan1() dijalankan sebagai goroutine dengan menambahkan kata go sebelum pemanggilan fungsi. Sementara cetakPesan2() dijalankan secara normal. Hasilnya, kedua fungsi akan berjalan secara bersamaan dan output-nya akan bercampur. Kita juga menambahkan time.Sleep agar program tidak langsung berhenti sebelum goroutine selesai dijalankan.
Kalau kamu penasaran ingin belajar lebih dalam soal concurrency di Golang, di BuildWithAngga ada kelas khusus yang membahas Golang mulai dari dasar hingga tingkat lanjut. Kamu bisa cek langsung di BuildWithAngga.
Contoh Penerapan Goroutine dalam API
Kalau sebelumnya kita sudah lihat cara kerja goroutine secara sederhana, sekarang kita coba lihat penerapannya dalam sebuah API sederhana. Biasanya, API akan memproses permintaan pengguna seperti mengambil data dari database, melakukan perhitungan, atau memanggil layanan lain. Dengan goroutine, semua proses itu bisa dikerjakan secara bersamaan, sehingga respon API jadi lebih cepat.
Berikut contoh API sederhana menggunakan package net/http. API ini akan memproses dua tugas berat secara paralel menggunakan goroutine, lalu mengembalikan hasilnya ke pengguna.
package main
import (
"encoding/json"
"fmt"
"net/http"
"sync"
"time"
)
type Response struct {
Task1 string `json:"task1"`
Task2 string `json:"task2"`
}
// Fungsi simulasi tugas berat pertama
func doTask1() string {
time.Sleep(2 * time.Second) // Simulasi proses lama
return "Hasil dari tugas 1"
}
// Fungsi simulasi tugas berat kedua
func doTask2() string {
time.Sleep(2 * time.Second)
return "Hasil dari tugas 2"
}
func handler(w http.ResponseWriter, r *http.Request) {
var wg sync.WaitGroup
response := Response{}
wg.Add(2) // Kita akan menjalankan 2 goroutine
// Goroutine pertama
go func() {
defer wg.Done()
response.Task1 = doTask1()
}()
// Goroutine kedua
go func() {
defer wg.Done()
response.Task2 = doTask2()
}()
// Tunggu semua goroutine selesai
wg.Wait()
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(response)
}
func main() {
http.HandleFunc("/process", handler)
fmt.Println("Server berjalan di <http://localhost:8080>")
http.ListenAndServe(":8080", nil)
}

Penjelasan singkat:
Program di atas membuat server HTTP sederhana di port 8080 dengan endpoint /process. Saat endpoint ini diakses, dua fungsi doTask1() dan doTask2() akan dijalankan secara bersamaan menggunakan goroutine. Dengan begitu, total waktu eksekusi hanya sekitar 2 detik, bukan 4 detik (kalau dikerjakan secara berurutan). Kita pakai sync.WaitGroup untuk memastikan semua goroutine selesai sebelum hasilnya dikirim ke pengguna.
Cara mencoba:
- Simpan kode di atas sebagai
main.go. - Jalankan dengan
go run main.go. - Akses
http://localhost:8080/processdi browser atau pakaicurl.
Kalau kamu serius mau jadi backend engineer dengan Golang, BuildWithAngga juga menyediakan kelas dengan pembahasan mulai dari dasar pemrograman Golang, cara bikin REST API, hingga optimasi performa. Kamu bisa cek kursus lengkapnya langsung di BuildWithAngga.
Tips belajar Golang untuk pemula
Kalau kamu baru mulai belajar Golang, wajar banget kalau awalnya terasa agak bingung. Bahasa ini memang terlihat sederhana, tapi ada banyak konsep baru yang harus dipahami. Golang dirancang untuk bikin aplikasi cepat, ringan, dan stabil. Kalau kamu serius mempelajarinya, skill ini bisa jadi modal besar buat karier di dunia teknologi. Supaya nggak bingung dan bisa belajar lebih fokus, berikut beberapa tips yang bisa kamu coba.
- Mulai dari dasar dan jangan terburu-buru Pelajari dulu konsep paling dasar seperti variabel, tipe data, fungsi, dan struktur program. Kalau fondasi ini sudah kuat, belajar materi lanjutan bakal lebih mudah.
- Praktik langsung setiap hari Jangan cuma baca teori, coba tulis kode setiap hari walau cuma program sederhana. Semakin sering latihan, kamu bakal lebih cepat terbiasa dengan aturan penulisan kode Golang yang ketat.
- Pahami konsep concurrency Golang unggul karena fitur goroutine yang mendukung concurrency. Walau awalnya terdengar rumit, coba pelajari perlahan karena fitur ini sangat berguna saat membuat aplikasi berskala besar.
- Manfaatkan dokumentasi resmi Dokumentasi resmi Golang sangat lengkap dan jelas. Biasakan baca dokumentasi supaya kamu bisa lebih mandiri saat belajar.
- Ikut kursus online terstruktur Supaya proses belajar lebih cepat dan terarah, kamu bisa ikut kursus online di BuildWithAngga. Ada kelas Golang Fundamental untuk belajar konsep dasar, Pemrograman Golang Dasar yang lebih lengkap untuk pemula, serta Full Stack Golang Next.js Blog Portal News untuk mempelajari cara membangun project nyata dengan Golang dan Next.js.
- Kerjakan mini project secara rutin Setelah belajar dasar, langsung terapkan dengan bikin project kecil seperti todo list, kasir sederhana, atau API. Latihan ini bikin teori lebih mudah dipahami.
- Gabung komunitas Golang Ikut forum atau grup diskusi bisa bikin kamu lebih semangat belajar. Kamu juga bisa dapat insight baru dan solusi dari pengalaman orang lain.
Kalau mau cepat mahir, kuncinya ada di konsistensi dan banyak latihan. Golang sebenernya nggak sesulit kelihatannya kalau kamu udah terbiasa sama cara kerjanya. Ikutin kursus di BuildWithAngga, rajin latihan, dan jangan takut salah. Dari kesalahan itulah kamu bisa berkembang dan siap bikin aplikasi nyata dengan Golang.