Query String URL Dinamis dalam Pemrograman Web PHP

Query string adalah bagian dari URL yang digunakan untuk mengirimkan data dari klien (browser) ke server menggunakan metode HTTP GET. Bagian ini biasanya diletakkan setelah tanda tanya (?) di dalam alamat URL dan terdiri dari pasangan kunci dan nilai (key-value pairs) yang dipisahkan oleh tanda ampersand (&).

Dalam ekosistem pengembangan web, khususnya menggunakan bahasa pemrograman PHP, pemanfaatan query string sangat esensial untuk membangun halaman dinamis, sistem filter data, pencarian, hingga penomoran halaman (pagination). Data yang dikirimkan melalui URL ini dapat diakses secara langsung di dalam skrip PHP melalui variabel superglobal $_GET.

Struktur Dasar URL Dinamis dengan Query String

Sebuah URL yang mengandung query string memiliki struktur baku yang mudah dikenali. Perhatikan format anatomi URL dinamis di bawah ini:

https://namadomain.com/halaman.php?kategori=teknologi&id=45

Berdasarkan contoh di atas, URL tersebut terbagi menjadi beberapa komponen penting yang harus dipahami oleh setiap pengembang web:

Komponen URL Keterangan Contoh pada URL
Protocol & Domain Alamat utama server tempat website di-host. https://namadomain.com/halaman.php
Tanda Tanya (?) Pemisah antara alamat skrip fisik dengan awal query string. ?
Key-Value Pair 1 Parameter pertama berupa kunci dan nilai data. kategori=teknologi
Pemisah (&) Karakter penghubung jika terdapat lebih dari satu parameter. &
Key-Value Pair 2 Parameter kedua untuk mengirimkan data tambahan. id=45

Cara Mengambil Nilai Query String dengan PHP

PHP menyediakan variabel superglobal $_GET untuk menangkap data yang dikirimkan melalui URL. Variabel ini berupa sebuah array asosiatif yang menyimpan seluruh parameter beserta nilainya.

Berikut adalah contoh kode implementasi penangkapan data query string di dalam file PHP:

<?php
// Memeriksa apakah parameter 'kategori' dan 'id' telah dikirimkan
if (isset($_GET['kategori']) && isset($_GET['id'])) {
    $kategori = htmlspecialchars($_GET['kategori']);
    $id = htmlspecialchars($_GET['id']);
    
    echo "Kategori yang dipilih: " . $kategori . "<br>";
    echo "ID Data: " . $id;
} else {
    echo "Parameter URL tidak lengkap.";
}
?>

Keamanan dan Validasi Query String

Karena data pada query string diekspos secara terbuka langsung di bilah alamat browser, pengembang tidak boleh mempercayai data yang masuk begitu saja. Beberapa langkah mitigasi keamanan yang wajib diterapkan meliputi:

  • Sanitasi Input: Selalu gunakan fungsi seperti htmlspecialchars() atau strip_tags() saat menampilkan kembali data ke layar untuk mencegah kerentanan Cross-Site Scripting (XSS).
  • Validasi Tipe Data: Pastikan parameter numerik seperti ID benar-benar berupa angka menggunakan fungsi is_numeric() atau intval() sebelum digunakan dalam kueri basis data.
  • Prepared Statements: Jika data query string digunakan untuk mengambil data dari database MySQL, wajib menggunakan prepared statements (PDO atau MySQLi) untuk mencegah serangan SQL Injection.