Server Pertama: http.ServeMux & ListenAndServe

Menyiapkan proyek Go, mendaftarkan handler ke alamat, dan menjalankan server sungguhan.

Part 2 dari 17 ± 30 menit Gratis

Menyiapkan proyek

Pastikan Go terpasang (go version), lalu buat folder proyek:

mkdir todo-api
cd todo-api
go mod init todo-api      # membuat go.mod (identitas modul/proyek)
touch main.go

go.mod mencatat nama proyek dan versi Go. Untuk kursus ini kita tidak butuh library pihak ketiga — semuanya dari pustaka standar.

Server paling sederhana

package main

import (
    "fmt"
    "log"
    "net/http"
)

func Hello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Halo dari server Go!")
}

func main() {
    mux := http.NewServeMux()          // 1. buat "papan petunjuk" alamat
    mux.HandleFunc("/hello", Hello)    // 2. alamat /hello ditangani Hello

    log.Println("Server jalan di http://localhost:8080")
    log.Fatal(http.ListenAndServe(":8080", mux))   // 3. buka port 8080
}

Jalankan dengan go run ., lalu di terminal lain coba:

curl -i http://localhost:8080/hello
HTTP/1.1 200 OK
Halo dari server Go!

Tiga bagian penting

  • http.NewServeMux() — router: daftar "alamat → handler". Saat request masuk, mux mencocokkan alamatnya lalu memanggil handler yang tepat.
  • mux.HandleFunc(alamat, handler) — mendaftarkan satu pasangan alamat + handler.
  • http.ListenAndServe(":8080", mux) — membuka port dan menunggu request tanpa henti. Karena tidak pernah selesai (kecuali error), ia dibungkus log.Fatal agar error-nya tercetak.

Alamat yang tidak terdaftar

Jika request datang ke alamat yang tidak ada di mux, Go otomatis menjawab 404 dengan isi 404 page not found. Kita tidak perlu menulis apa-apa untuk itu.

Catatan untuk latihan

Di kotak latihan, ListenAndServe tidak dipakai (tidak ada port yang bisa dibuka). Sebagai gantinya, kita memanggil mux langsung lewat fungsi call yang sudah disediakan. Untuk handler dan mux, hasilnya sama persis dengan server sungguhan — salin kodenya ke komputermu dan tambahkan ListenAndServe untuk mencobanya.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X