Setiap kali Anda membuka aplikasi mobile banking dan saldo langsung muncul, atau mengetik nama produk di toko online lalu hasilnya tampil dalam hitungan detik, ada satu hal yang bekerja diam-diam di belakang layar. Data yang Anda lihat tidak datang begitu saja — aplikasi harus meminta data tersebut ke tempat penyimpanannya, yaitu database. Permintaan itulah yang disebut query.

Query adalah permintaan terstruktur yang dikirim sebuah program ke database untuk mengambil, menambah, mengubah, atau menghapus data. Karena hampir semua aplikasi modern menyimpan datanya di database, query menjadi salah satu konsep paling mendasar dalam dunia pemrograman dan pengelolaan data. Artikel ini akan membahas pengertian query dari nol, jenis-jenisnya, bagaimana database memprosesnya, sampai contoh query yang bisa langsung Anda baca dan pahami.

Query Adalah Apa? Pengertian dan Asal Katanya

Secara sederhana, query adalah sebuah pertanyaan atau perintah yang Anda ajukan kepada database untuk mendapatkan atau memanipulasi data tertentu. Anda tidak mengambil data secara manual satu per satu; Anda cukup menuliskan permintaan yang spesifik, dan database yang akan mencarikannya untuk Anda.

Istilah ini berasal dari bahasa Inggris query yang berarti "pertanyaan" atau "permintaan keterangan". Akar katanya bahkan lebih tua, dari bahasa Latin quaerere yang berarti "mencari" atau "bertanya". Dalam bahasa Indonesia, Kamus Besar Bahasa Indonesia (KBBI) sudah menyerap istilah ini menjadi kueri. Jadi kalau Anda menemukan tulisan "kueri adalah" di sumber lain, maknanya sama persis dengan query.

Inti dari sebuah query selalu sama: Anda menyampaikan maksud Anda ("ambilkan semua pelanggan dari kota Bandung") dalam format yang bisa dimengerti mesin, lalu sistem mengembalikan jawabannya. Format inilah yang membedakan query dari sekadar pencarian biasa — ia punya aturan dan struktur yang baku.

Tiga Konteks "Query" yang Sering Tertukar

Sebelum masuk lebih dalam, ada satu hal yang perlu diluruskan. Kata "query" dipakai di beberapa konteks berbeda, dan ini sering membuat pemula bingung. Memahami perbedaannya akan menghemat banyak waktu Anda.

  1. Query database: permintaan ke database untuk mengelola data, biasanya ditulis dengan bahasa SQL. Inilah makna yang paling sering dicari dan yang menjadi fokus utama artikel ini.
  2. Search query: kata kunci yang Anda ketik di mesin pencari seperti Google. Saat Anda mengetik "query adalah" di kotak pencarian, kalimat itu adalah sebuah search query.
  3. Query string: potongan informasi yang menempel di belakang sebuah alamat web, ditandai dengan tanda tanya (?). Misalnya pada toko.com/produk?kategori=sepatu, bagian kategori=sepatu adalah query string yang merupakan bagian dari struktur sebuah URL.

Selain itu, Anda mungkin pernah mendengar istilah seperti jQuery, Power Query, atau BigQuery. Ketiganya adalah produk atau alat yang berbeda — sebuah library JavaScript, fitur pengolah data di Excel, dan layanan analitik dari Google — jadi jangan tertukar. Mulai sekarang, ketika kita menyebut "query" tanpa keterangan tambahan, yang dimaksud adalah query database.

Fungsi Query dalam Pengelolaan Data

Bayangkan sebuah database sebagai gudang raksasa berisi jutaan dokumen yang tertata rapi dalam rak-rak. Tanpa cara yang tepat untuk meminta, Anda harus menyusuri seluruh rak hanya untuk menemukan satu dokumen. Query berperan seperti petugas gudang yang cekatan: Anda sebutkan apa yang dicari, dan ia langsung mengambilkannya. Berikut fungsi-fungsi utamanya.

  1. Mengambil data secara spesifik: Query memungkinkan Anda menarik hanya data yang dibutuhkan, misalnya "tampilkan pesanan hari ini yang belum dibayar", bukan seluruh isi tabel.
  2. Menyaring dan mengurutkan: Anda bisa memberi syarat (hanya pelanggan dari kota tertentu) dan menentukan urutan tampil (dari yang terbaru), sehingga data langsung siap dipakai.
  3. Mengubah dan menghapus data: Query tidak hanya untuk membaca. Anda juga bisa memperbarui alamat pelanggan atau menghapus data yang sudah tidak relevan lewat perintah yang sama.
  4. Mengelola struktur dan akses: Pada level lebih lanjut, query dipakai untuk membuat tabel baru, mengubah strukturnya, hingga mengatur siapa yang boleh mengakses data.

Karena cakupannya luas inilah query menjadi tulang punggung hampir semua aplikasi berbasis data, dari sistem kasir sederhana sampai platform e-commerce berskala besar.

Mengenal SQL, Bahasa untuk Menulis Query

Query tidak ditulis dengan bahasa sehari-hari, melainkan dengan bahasa khusus. Bahasa yang paling umum untuk database relasional adalah SQL (Structured Query Language), sebuah standar yang sudah dipakai sejak pertengahan 1980-an. SQL inilah yang menjembatani maksud Anda dengan cara database bekerja.

Keunggulan SQL adalah sifatnya yang lintas platform. Perintah dasar yang Anda pelajari hari ini akan tetap berlaku di hampir semua sistem manajemen database populer, seperti MySQL, PostgreSQL, SQL Server, hingga Oracle. Karena itu, mempelajari query sama dengan mempelajari dasar-dasar SQL terlebih dahulu.

Database yang dimaksud di sini umumnya berbentuk basis data relasional, yaitu data yang disimpan dalam tabel-tabel dengan baris dan kolom, mirip spreadsheet. Query bekerja dengan membaca dan memodifikasi isi tabel-tabel tersebut.

Jenis-Jenis Query Berdasarkan Kategori Perintah SQL

Istilah lama seperti select query, crosstab query, atau make table query sebenarnya berasal dari aplikasi Microsoft Access dan kini jarang relevan untuk database modern. Cara pengelompokan yang lebih akurat dan banyak dipakai praktisi adalah berdasarkan kategori perintah SQL. Ada empat kategori utama.

KategoriKepanjanganTugasnyaContoh perintah
DDLData Definition LanguageMendefinisikan struktur tabelCREATE, ALTER, DROP
DMLData Manipulation LanguageMengelola isi dataSELECT, INSERT, UPDATE, DELETE
DCLData Control LanguageMengatur hak aksesGRANT, REVOKE
TCLTransaction Control LanguageMengontrol transaksiCOMMIT, ROLLBACK

Untuk pekerjaan sehari-hari, kategori DML adalah yang paling sering Anda gunakan, karena di sinilah perintah membaca dan mengubah data berada. Contohnya, perintah SELECT untuk membaca data, atau update query (UPDATE) untuk memperbarui nilai pada baris tertentu.

DDL dipakai saat Anda menyiapkan atau mengubah kerangka database, misalnya membuat tabel pelanggan baru. Sementara DCL dan TCL lebih banyak digunakan oleh administrator database untuk urusan keamanan dan menjaga agar serangkaian perubahan data berjalan utuh tanpa setengah jadi.

Anatomi Sebuah Query SELECT

Cara terbaik memahami query adalah membedah satu contoh nyata. Misalkan kita punya tabel bernama siswa yang berisi kolom nama, kelas, dan nilai. Kita ingin menampilkan nama siswa kelas 10 yang nilainya di atas 80, diurutkan dari nilai tertinggi. Query-nya seperti ini:

SQL
SELECT nama, nilai
FROM siswa
WHERE kelas = 10 AND nilai > 80
ORDER BY nilai DESC
LIMIT 5;

Sekilas terlihat rumit, tetapi sebenarnya query ini tersusun dari beberapa bagian (klausa) yang masing-masing punya tugas jelas:

  1. SELECT nama, nilai: menentukan kolom apa yang ingin ditampilkan. Di sini kita hanya minta kolom nama dan nilai, bukan seluruh kolom.
  2. FROM siswa: menyebutkan dari tabel mana data diambil.
  3. WHERE kelas = 10 AND nilai > 80: memberi syarat penyaringan. Hanya baris yang memenuhi kedua kondisi inilah yang lolos.
  4. ORDER BY nilai DESC: mengurutkan hasil berdasarkan nilai, dari yang terbesar (descending).
  5. LIMIT 5: membatasi jumlah hasil maksimal lima baris saja.

Setelah memahami pola ini, Anda akan menyadari bahwa kebanyakan query untuk mengambil data mengikuti kerangka yang sama. Anda tinggal mengganti nama tabel, kolom, dan syaratnya sesuai kebutuhan.

Bagaimana Database Memproses Query di Balik Layar

Saat Anda menekan tombol jalankan, database tidak langsung "membaca" query Anda begitu saja. Ada beberapa tahap yang dilalui sebelum hasilnya muncul, dan memahami alur ini membantu Anda menulis query yang lebih baik.

Diagram alur proses query database dari parsing hingga hasil.Diagram alur proses query database dari parsing hingga hasil.

Penjelasan tiap tahap:

  1. Parsing: database memeriksa apakah penulisan query Anda benar secara tata bahasa. Jika ada salah ketik pada perintah, di tahap inilah error muncul.
  2. Optimasi: bagian ini menarik. Sebuah query bisa dijalankan dengan beberapa cara, dan komponen bernama query optimizer akan memilih jalur tercepat untuk mengambil data, misalnya dengan memanfaatkan index jika tersedia.
  3. Eksekusi: database menjalankan rencana yang sudah dipilih dan benar-benar mengambil data dari tabel.
  4. Result set: hasilnya, berupa kumpulan baris data, dikembalikan ke aplikasi yang meminta.

Seluruh proses ini biasanya berlangsung dalam hitungan milidetik. Namun pada tabel berisi jutaan baris, perbedaan antara query yang ditulis baik dan asal-asalan bisa berarti selisih waktu yang sangat terasa.

Tips Menulis Query yang Efisien

Query yang menghasilkan data benar belum tentu query yang baik. Pada database besar, query yang ditulis sembarangan dapat membebani server dan memperlambat aplikasi. Berikut beberapa hal yang perlu Anda perhatikan agar query tetap ringan.

  1. Manfaatkan index: index ibarat daftar isi pada buku. Tanpa daftar isi, Anda harus membuka tiap halaman untuk mencari satu topik; dengan daftar isi, Anda langsung menuju halaman yang tepat. Memberi index pada kolom yang sering dipakai untuk penyaringan akan mempercepat pencarian secara signifikan.
  2. Hindari SELECT *: tanda bintang berarti "ambil semua kolom". Kebiasaan ini memboroskan sumber daya jika Anda sebenarnya hanya butuh dua atau tiga kolom. Sebutkan kolom yang benar-benar diperlukan.
  3. Persempit dengan WHERE dan LIMIT: semakin spesifik syarat yang Anda berikan, semakin sedikit data yang harus diproses database. Jangan menarik seluruh tabel jika hanya butuh sebagian kecil.
  4. Berhati-hati dengan JOIN: menggabungkan banyak tabel sekaligus memang kuat, tetapi juga berat. Pastikan kolom yang dipakai untuk menggabungkan sudah ter-index dengan baik.

Kebiasaan-kebiasaan kecil ini terlihat sepele saat data masih sedikit, tetapi dampaknya menjadi besar ketika aplikasi Anda tumbuh dan jumlah datanya bertambah ratusan kali lipat.

Kesimpulan

Query adalah permintaan terstruktur yang dipakai untuk mengambil dan mengelola data di dalam database, dan umumnya ditulis menggunakan bahasa SQL. Kita sudah membahas bahwa query punya beberapa jenis berdasarkan kategori perintahnya (DDL, DML, DCL, dan TCL), bagaimana database memprosesnya tahap demi tahap, serta cara membaca anatomi sebuah query SELECT.

Yang sama pentingnya, kualitas penulisan query ikut menentukan performa aplikasi Anda — query yang efisien menjaga sistem tetap cepat, sementara query yang asal jadi bisa membebani server saat datanya membesar. Untuk mulai berlatih, Anda cukup memahami pola dasar SELECT lalu mengembangkannya sedikit demi sedikit.

Semoga artikel ini membantu Anda memahami apa itu query dan bagaimana perannya dalam dunia pengelolaan data.