Lompat ke konten utama
←

Backend Node.js Dasar: Rute, Middleware, dan Pengujian

Pelajaran 12 dari 16

Data: repositori, pagination, dan filter

Pagination dan filter di server

Setelah pelajaran ini kamu bisa membaca parameter halaman dari query yang berupa teks dengan nilai bawaan dan batas, lalu menyaring, menghitung total, dan memotong satu halaman dengan urutan yang benar.

±13 menitDiperiksa 23 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Di sisi klien, pagination berarti meminta halaman demi halaman, seperti di kelas HTTP dan API Web. Di sisi server, handler membaca query, menyaring data, menghitung total, lalu memotong satu halaman. Semua nilai query datang sebagai teks: dokumentasi Node.js menunjukkan request.url berisi path dan query sekaligus, misalnya /produk?hal=2&per=20, yang dipecah dengan new URL menjadi path dan pasangan nama–nilai berupa teks. Di latihan, req.query sudah berupa objek teks hasil pemecahan itu.

Mengubah teks menjadi angka perlu hati-hati. MDN mencatat Number() mengubah teks kosong atau berisi spasi saja menjadi 0, membuang spasi di tepi, dan menghasilkan NaN bila gagal; jadi ?hal= menjadi 0, bukan galat. Periksa bentuknya lebih dulu, misalnya dengan pola /^[0-9]+$/, baru ubah menjadi angka. Parameter yang tidak dikirim memakai nilai bawaan, ukuran halaman diberi batas atas supaya satu permintaan tidak menarik seluruh katalog, dan nilai yang bentuknya salah dijawab 400.

// GET /ulasan?bintang=5&hal=2&per=3, 8 ulasan berbintang 5
const cocok = ulasan.filter((u) => u.bintang === 5); // saring dulu
const total = cocok.length;                           // 8
const data = cocok.slice((2 - 1) * 3, 2 * 3);         // ulasan ke-4 sampai ke-6
const jumlahHalaman = Math.ceil(total / 3);           // 3

Urutannya tetap: saring, hitung total dari hasil saringan, baru potong. slice tidak mengubah larik asalnya dan indeks akhirnya tidak ikut diambil (MDN). Di API Mentari, halaman di luar jangkauan dijawab 200 dengan data kosong, sehingga klien tahu ia sudah melewati halaman terakhir.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Katalog Mentari memuat 120 produk, 18 di antaranya kue. Handler GET /produk?kategori=kue&per=10 menyaring dengan benar, tetapi menghitung total dan jumlahHalaman dari seluruh katalog. Aplikasi pelanggan membaca jumlahHalaman lalu mengambil semua halaman satu per satu. Apa yang terjadi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi