Web Development Query Parameters: Panduan & Praktik

Query parameters adalah bagian dari URL yang digunakan untuk mengirimkan data tambahan dari klien (browser) ke server melalui metode HTTP GET. Bagian ini terletak setelah tanda tanya (?) di dalam URL dan antar parameter dipisahkan oleh karakter ampersand (&). Dalam pengembangan web modern, query parameters memegang peran krusial untuk menangani pemfilteran data, pagination, pencarian, hingga pengelolaan state halaman tanpa harus memuat ulang seluruh struktur aplikasi.

Memahami struktur dasar query parameters membantu pengembang dalam membangun antarmuka web yang dinamis, ramah mesin pencari (SEO-friendly), dan mudah dibagikan. Karakteristik utama dari komponen ini adalah nilainya yang bersifat publik, terlihat langsung di address bar, serta tidak cocok untuk menyimpan informasi sensitif seperti kata sandi atau token otentikasi utama.

Struktur dan Anatomi Query Parameters

Sebuah URL yang mengandung query parameters terdiri dari beberapa komponen terstruktur. Perhatikan contoh URL berikut:

https://example.com/search?category=electronics&sort=price_asc&page=2

Komponen URL Bagian Contoh Fungsi Utama
Protocol & Domain https://example.com/search Alamat dasar server dan rute endpoint (path) yang dituju.
Delimiter ? Tanda pemisah antara path URL dengan awal query string.
Parameter Key-Value category=electronics Pasangan kunci dan nilai data yang dikirimkan ke server.
Separator & Tanda ampersand untuk memisahkan lebih dari satu parameter.

Implementasi di Sisi Frontend dan Backend

Pengembang web harus mampu membaca dan memanipulasi query parameters di berbagai lapisan aplikasi. Di lingkungan browser modern, objek JavaScript URLSearchParams menyediakan API yang bersih dan efisien untuk mengelola parameter tanpa harus melakukan parsing string manual.

// Membaca query parameters di JavaScript
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);

// Mendapatkan nilai spesifik
const category = urlParams.get('category'); // 'electronics'
const page = urlParams.get('page');         // '2'

// Menambah atau mengubah parameter baru
urlParams.set('sort', 'desc');
window.history.replaceState({}, '', `${window.location.pathname}?${urlParams}`);

Di sisi server, misalnya menggunakan Node.js dengan framework Express, pembacaan parameter dilakukan melalui objek req.query yang secara otomatis mengubah string URL menjadi objek JavaScript siap pakai.

// Contoh penanganan di Backend (Express.js)
const express = require('express');
const app = express();

app.get('/search', (req, res) => {
    const { category, sort, page } = req.query;
    
    // Lakukan query database berdasarkan parameter
    res.json({
        filterKategori: category,
        urutan: sort,
        halamanKe: page
    });
});

app.listen(3000);

Praktik Terbaik dan Keamanan

Meskipun sederhana, penggunaan query parameters memerlukan perhatian khusus terhadap aspek keamanan dan performa aplikasi web:

  • Validasi dan Sanitasi: Selalu lakukan sanitasi input di sisi server untuk mencegah kerentanan keamanan seperti SQL Injection atau Cross-Site Scripting (XSS) yang masuk melalui parameter URL.
  • Hindari Data Sensitif: Jangan pernah mengirimkan informasi rahasia seperti password, API key, atau data pribadi melalui query parameters karena data tersebut terekam dalam riwayat browser, log server, dan header HTTP Referer.
  • Encoding Karakter: Gunakan fungsi seperti encodeURIComponent() di JavaScript untuk memastikan karakter khusus (seperti spasi, simbol &, atau tanda Tanya) diterjemahkan dengan aman ke dalam format URL-encoded.
  • Batasan Panjang URL: Perhatikan batas panjang URL (biasanya hingga 2048 karakter tergantung pada browser dan server) saat mengirimkan data dalam jumlah besar.