Instalasi
Prasyarat
Section titled “Prasyarat”Sebelum memulai, pastikan kamu sudah menginstall:
- Go 1.20 atau yang lebih baru - Download Go
- Text editor - VS Code dengan Go extension sangat direkomendasikan
- Terminal - Command prompt, PowerShell, atau terminal favorit kamu
Untuk mengecek versi Go:
go version# Output: go version go1.21.0 darwin/amd64 (atau sejenisnya)Cara Install
Section titled “Cara Install”Opsi 1: Pakai Starter Project (Recommended)
Section titled “Opsi 1: Pakai Starter Project (Recommended)”Cara tercepat untuk memulai project baru:
# Clone repositorygit clone https://github.com/semutdev/goignitercd goigniter
# Copy starter ke folder project barucp -r starter/ ~/projects/myappcd ~/projects/myapp
# Setup go.modmv go.mod.example go.mod# Edit go.mod: ganti "myapp" dengan nama module kamu
# Install dependenciesgo mod tidy
# Jalankango run main.goBuka browser ke http://localhost:8080/welcomecontroller dan kamu akan melihat halaman welcome.
Opsi 2: Jalankan Contoh
Section titled “Opsi 2: Jalankan Contoh”GoIgniter menyediakan beberapa contoh di folder examples/:
git clone https://github.com/semutdev/goignitercd goigniter
# Contoh sederhanago run examples/simple/main.go
# Contoh dengan auto-routinggo run examples/autoroute/main.go
# Contoh lengkap dengan databasecd examples/full-crudgo mod tidygo run main.goBuka browser ke http://localhost:8080 dan kamu akan melihat hasilnya.
Struktur Folder
Section titled “Struktur Folder”Jika kamu familiar dengan CI3, struktur folder GoIgniter akan terasa seperti rumah:
CodeIgniter 3: GoIgniter:─────────────── ──────────application/ application/├── controllers/ ├── controllers/├── models/ ├── models/├── views/ ├── views/├── config/ ├── config/└── libraries/ └── libs/
system/ system/ ├── core/ ├── middleware/ ├── libraries/ └── helpers/
index.php main.goPerbedaan utama:
index.phpdigantimain.gosebagai entry point- Folder
system/berisi framework core (mirip CI3, tapi jangan dimodifikasi) - Tidak ada folder
cache/ataulogs/- Go handle ini secara berbeda
Hello World
Section titled “Hello World”Berikut contoh main.go paling sederhana:
package main
import ( "goigniter/system/core" "goigniter/system/middleware")
func main() { // Buat aplikasi baru app := core.New()
// Pasang middleware app.Use(middleware.Logger()) app.Use(middleware.Recovery())
// Route sederhana app.GET("/", func(c *core.Context) error { return c.JSON(200, core.Map{ "message": "Hello GoIgniter!", }) })
// Jalankan server app.Run(":8080")}Jalankan dengan:
go run main.goBuka http://localhost:8080 di browser, kamu akan melihat response JSON:
{"message": "Hello GoIgniter!"}Hot Reload untuk Development (Opsional)
Section titled “Hot Reload untuk Development (Opsional)”Secara default, kamu harus restart server setiap kali ada perubahan kode. Untuk development yang lebih nyaman, gunakan Air:
# Install airgo install github.com/cosmtrek/air@latest
# Jalankan dengan hot reloadairSekarang setiap kali kamu save file .go, server akan otomatis restart.
Sudah berhasil running? Lanjut ke Routing untuk belajar cara mendefinisikan routes.