Pengertian Query String Pada URL: Fungsi dan Contohnya

Query string adalah bagian dari URL yang digunakan untuk mengirimkan data dari browser klien ke server melalui mekanisme HTTP GET. Bagian ini diawali dengan tanda tanya (?) dan terletak di ujung URL, memuat pasangan kunci dan nilai (key-value pairs) yang dipisahkan oleh tanda ampersand (&).

Dalam arsitektur web modern, query string memainkan peran vital dalam menyampaikan parameter spesifik tanpa harus mengubah struktur path utama sebuah halaman. Data di dalamnya dapat dibaca baik oleh skrip sisi klien (seperti JavaScript melalui URLSearchParams) maupun sisi server (seperti PHP, Node.js, atau Python) untuk memproses logika tertentu, seperti penyaringan data, pelacakan kampanye pemasaran, atau penomoran halaman (pagination).

Struktur Dasar Query String

Sebuah URL yang mengandung query string memiliki format spesifik yang memisahkan antara alamat dasar (path) dengan parameter data. Perhatikan anatomi berikut:

https://www.contoh.com/halaman?kunci1=nilai1&kunci2=nilai2

Penjelasan anatomi di atas:

  • https://www.contoh.com/halaman: Merupakan alamat dasar atau path dokumen yang dituju.
  • ?: Penanda dimulainya query string. Hanya ada satu tanda tanya di dalam satu URL.
  • kunci1=nilai1: Pasangan parameter pertama. 'kunci1' adalah nama variabel, sedangkan 'nilai1' adalah data yang dikirimkan.
  • &: Pemisah antar-parameter jika terdapat lebih dari satu data yang dikirimkan.

Komparasi Komponen URL dan Peran Query String

Untuk memahami posisi query string secara utuh di dalam struktur Uniform Resource Locator, berikut adalah matriks perbandingannya dengan bagian URL lainnya:

Komponen URL Fungsi Utama Contoh Penerapan
Protocol Menentukan aturan transfer data (skema). https:// atau http://
Domain / Host Mengidentifikasi alamat server atau situs web. www.tokopedia.com
Path Menunjuk lokasi direktori atau file spesifik di server. /search atau /kategori/buku
Query String Mengirimkan parameter data dinamis ke server/klien. ?q=laptop&sort=lowest
Fragment / Anchor Menunjuk bagian atau elemen spesifik di dalam halaman web. #ulasan

Kasus Penggunaan Umum Query String

Pengembang web memanfaatkan query string untuk berbagai fungsionalitas dinamis yang tidak memerlukan pembuatan halaman fisik baru secara terpisah. Beberapa penggunaan paling sering dijumpai meliputi:

  • Mesin Pencari (Search Engine): Mengirimkan kata kunci yang diketik pengguna ke halaman hasil pencarian. Contoh: https://google.com/search?q=belajar+pemrograman.
  • Filter dan Pengurutan (Filtering & Sorting): Mengatur tampilan produk berdasarkan kategori, rentang harga, atau urutan abjad dalam toko daring.
  • Pelacakan Kampanye (UTM Parameters): Digunakan oleh pemasar digital untuk melacak sumber lalu lintas iklan menggunakan parameter seperti utm_source, utm_medium, dan utm_campaign.
  • Penomoran Halaman (Pagination): Menentukan nomor halaman saat menampilkan daftar artikel atau produk yang panjang. Contoh: ?page=3.

Cara Membaca Query String dengan JavaScript

Di sisi klien, JavaScript menyediakan objek bawaan yang sangat efisien untuk mengurai (parse) query string tanpa perlu membuat fungsi manual menggunakan regex. Objek tersebut adalah URLSearchParams.

// Contoh URL: https://situs.com/produk?kategori=elektronik&id=452

const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);

// Mengambil nilai parameter 'kategori'
const kategori = urlParams.get('kategori'); 
console.log(kategori); // Output: elektronik

// Memeriksa apakah suatu parameter ada
const adaDiskon = urlParams.has('diskon');
console.log(adaDiskon); // Output: false

Kelebihan dan Kekurangan Penggunaan Query String

Meskipun sangat praktis dan mudah diimplementasikan, penggunaan query string memiliki batasan arsitektural yang perlu diperhatikan oleh pengembang:

  • Kelebihan: Sangat transparan, mudah dibaca, dapat dibagikan (shareable) bersama URL, serta tidak memerlukan penyimpanan status sesi (stateless) yang rumit di server.
  • Kekurangan: Rentan terhadap manipulasi oleh pengguna karena terlihat langsung di bilah alamat, memiliki batasan panjang karakter tergantung pada jenis peramban (browser) dan server, serta tidak aman untuk mengirimkan data sensitif seperti kata sandi atau token rahasia.