Declarative Query Language

Bagas Triaji
mtiakakom
Published in
1 min readOct 9, 2019

Terkadang kita bingung untuk mencari contoh bahasa yang menerapkan paradigma declarative. Memang sebagian besar bahasa pemrograman mendukung multi paradigma, namun ada contoh lebih mudah dan sering dijumpai yaitu Structured Query language (SQL) yang sering dipakai untuk melakukan operasi pada relational database management system (RDBMS) seperti MySQL, PostgreSQL, Oracle dan sebagainya.

SQL sudah tercipta sejak 1974, distandarisasi pada 1986 dan hingga sekarang masih dipakai secara luas. Bahkan beberapa DBMS NoSQL pun membuat interpreter agar bisa diakses menggunakan SQL atau setidaknya dengan gaya yang mirip. Paradigma declarative pada SQL ini membuat baris kode menjadi ringkas dan mudah dibaca, sehingga programmer lebih efisien dalam bekerja.

Mengapa SQL disebut termasuk declarative? Karena programmer hanya menuliskan perintah/sintaks, apa yang ingin ia dapatkan pada database tanpa mengetahui alur prosesnya. Misal:

SELECT nama, alamat, jeniskelamin FROM mahasiswa WHERE jeniskelamin = “L”;

Perintah tersebut akan memberi kembalian semua data mahasiswa yang berjenis kelamin “L” (Laki-laki). Bisa dilihat, tidak ada alur proses yang detil, seperti membuat variabel, melakukan looping, konversi tipe data, pointer, cursor, hingga menampilkan data. Alur rumit tersebut cukup dengan menuliskan satu baris kode SQL.

Kemudian, ada query language yang juga mendukung paradigma imperative yakni Gremlin. Sebuah query language untuk melakukan operasi pada basis data graph, khususnya untuk Apache TinkerPop. Contoh:

g.V().match(
as("a").has("name","gremlin"),
as("a").out("created").as("b"),
as("b").in("created").as("c"),
as("c").in("manages").as("d"),
where("a",neq("c"))).
select("d").
groupCount().by("name")

Singkatnya, query tersebut bermaksud mengambil data dengan melakukannya langkah per langkah sebelum ditampilkan.

Meskipun ada juga paradigma imperative pada query language, namun kebanyakan query language menggunakan paradigma declarative.

--

--

Bagas Triaji
mtiakakom

Data enthusiast. Weekday cyclist. Yogyakarta, ID