Query Parameter: Filter & Paginasi

Membaca ?done=true, ?page= dan ?limit= untuk memfilter dan memecah daftar todo per halaman.

Part 10 dari 17 ± 35 menit Gratis

Apa itu query parameter?

Bagian alamat setelah tanda ?, berbentuk nama=nilai dan dipisah &. Cocok untuk opsi tambahan pada GET tanpa mengubah alamat utamanya:

GET /todos?done=true               → hanya yang sudah selesai
GET /todos?page=2&limit=5          → halaman 2, 5 data per halaman

Membacanya di Go

q := r.URL.Query()          // semua query parameter
done := q.Get("done")       // "true" / "false" / "" bila tidak dikirim

Get selalu mengembalikan string, dan string kosong jika parameter tidak ada. Angka diubah dengan strconv.Atoi; jika gagal, kita pakai nilai bawaan.

Filter

if done != "" {
    want := done == "true"          // true / false
    // simpan hanya todo yang t.Done == want
}

Paginasi (halaman)

Mengirim ribuan data sekaligus itu boros. Paginasi memecahnya per halaman. Dari page dan limit kita hitung irisan slice:

start := (page - 1) * limit      // page 1 → 0, page 2 → limit, ...
end   := start + limit
items[start:end]
pagelimitstartendData
1202item ke-1 dan 2
2224item ke-3 dan 4

Jangan sampai panic

Mengiris slice di luar batas membuat program panic. Karena itu start dan end dibatasi paling besar len(items). Halaman yang melewati data akan menghasilkan [], bukan error.

Nilai bawaan: page = 1, limit = 10 bila tidak dikirim atau tidak valid.

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