Sebelum menyentuh Gin, kalian perlu menguasai dasar bahasa Go, konsep HTTP dan REST, serta toolchain Go. Di episode ini kalian juga menyiapkan environment, menginstall Gin v1.12.0, dan memverifikasi instalasi pertama.

Selamat datang di series Belajar Gin! Series ini akan membawa kalian menguasai Gin — web framework HTTP paling populer untuk bahasa Go — dari fondasi konsep sampai production readiness. Total ada 23 episode yang tersusun dari enam fase: pre-requisites, basic operational, data management, security, scaling, dan production.
Sebelum masuk ke kode Gin, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena Gin bukan framework ajaib: dia adalah lapisan tipis di atas net/http standar Go. Semua konsep seperti method HTTP, status code, header, dan body JSON harus sudah kalian pahami agar tidak bingung saat membaca kode handler.
Episode 0 ini adalah peta jalan kalian: memastikan skill dasar, menyiapkan Go toolchain, menginstall Gin v1.12.0, dan melakukan verifikasi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
Gin ditulis dalam Go dan dipakai dari Go, jadi kalian wajib nyaman dengan sintaks dasar: variabel, fungsi, struct, interface, slice, dan map. Pahami juga sistem modul modern Go:
go.mod.json, yang menjadi fondasi binding Gin.package main
import "fmt"
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
u := User{Name: "Arman", Email: "arman@example.com"}
fmt.Printf("%s - %s\n", u.Name, u.Email)
}Struct tag seperti json:"name" inilah yang nanti dibaca Gin saat melakukan binding request ke struct. Tanpa paham konsep ini, episode 5 tentang binding akan terasa membingungkan.
Gin adalah framework HTTP, jadi pahami setidaknya hal-hal berikut:
Content-Type dan Authorization.REST (Representational State Transfer) adalah gaya arsitektur yang memetakan resource ke URL. Contohnya GET /users/1 untuk membaca user dengan id 1. Konsep ini akan terus dipakai sejak episode 3.
curl -i http://example.comPerhatikan bahwa perintah curl -i http://example.com menampilkan status line dan header. Kebiasaan memakai curl untuk menguji API akan menjadi rutinitas sepanjang series ini.
Untuk fase data management (episode 9-12), kalian butuh dasar database:
SELECT, INSERT, UPDATE, DELETE.Gunakan juga Git untuk versioning:
git --version
git config --global user.name "Nama Kalian"
git config --global user.email "kalian@example.com"Pastikan Go terinstall dengan versi stabil terbaru, minimal Go 1.24:
go version
go env GOPATH GOROOTOutput go version harus menampilkan go1.24 atau lebih baru. Jalankan juga go env GOPATH untuk mengetahui lokasi modul global kalian.
Setelah Go siap, buat direktori project dan inisialisasi modul, lalu install Gin v1.12.0:
mkdir belajar-gin
cd belajar-gin
go mod init belajar-gin
go get github.com/gin-gonic/gin@v1.12.0Perintah go get github.com/gin-gonic/gin@v1.12.0 akan menambahkan Gin ke go.mod dan go.sum. Versi v1.12.0 adalah stable release terbaru per penulisan series ini (Februari 2026). Setelah install, verifikasi versi yang tertulis:
go list -m github.com/gin-gonic/ginDisarankan memakai VS Code dengan ekstensi Go resmi dari golang.go. Ekstensi ini menyediakan IntelliSense, formatting, dan debugging terintegrasi. Untuk menguji API, kalian bisa memakai:
Semua contoh pengujian di series ini memakai curl agar mudah disalin ke terminal.
Sebelum lanjut ke episode 1, buat file main.go di root project dan jalankan:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "pong"})
})
r.Run(":8080")
}Jalankan server di satu terminal, lalu tes dari terminal lain:
go run main.gocurl http://localhost:8080/pingJika output menampilkan {"message":"pong"}, environment kalian sudah siap. Fungsi gin.Default() menciptakan engine dengan middleware Logger dan Recovery bawaan — detailnya akan kita bedah di episode 3.
Info
Jika port 8080 sudah terpakai, ubah argumen r.Run menjadi r.Run(":9090") dan sesuaikan perintah curl.
Rangkuman prasyarat yang sudah kalian siapkan di episode 0:
go list -m.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Fondasi yang kuat akan membuat 22 episode berikutnya terasa jauh lebih ringan.
Inti yang harus dibawa pulang:
net/http: kuasai dulu dasar Go dan HTTP.json:"name" adalah fondasi binding Gin.go get github.com/gin-gonic/gin@v1.12.0.gin.Default() dan tes endpoint /ping.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan Gin — dari evolusi net/http, kelahiran Gin sebagai fork dari Martini pada 2014, hingga perbandingan awal dengan Echo, Fiber, chi, dan net/http polos. Pastikan environment kalian sudah siap, karena perjalanan Belajar Gin baru saja dimulai!