Dalam ilmu komputer , pemrograman deklaratif adalah paradigma pemrograman yaitu gaya membangun struktur dan elemen program komputer yang mengekspresikan logika komputasi tanpa menjelaskan aliran kontrolnya. Banyak bahasa yang menerapkan gaya ini berusaha untuk meminimalkan atau menghilangkan efek samping dengan menjelaskan apa yang harus dicapai program dalam hal domain masalah , daripada menggambarkan bagaimana menyelesaikannya sebagai urutan primitif bahasa pemrograman ( bagaimana dibiarkan hingga implementasi bahasa). Ini berbeda dengan pemrograman imperatif, yang mengimplementasikan algoritma dalam langkah-langkah eksplisit.
Pemrograman deklaratif sering menganggap program sebagai teori logika formal , dan perhitungan sebagai pengurang dalam ruang logika itu. Pemrograman deklaratif dapat sangat menyederhanakan penulisan program paralel .
Bahasa deklaratif umum termasuk bahasa query database (misalnya, SQL , XQuery ), ekspresi reguler , pemrograman logika , pemrograman fungsional , dan sistem manajemen konfigurasi .
Pemrograman deklaratif sering didefinisikan sebagai gaya pemrograman yang tidak penting . Sejumlah definisi umum lainnya berupaya mendefinisikannya hanya dengan
membandingkannya dengan pemrograman imperatif.
Sebagai contoh:
- Program tingkat tinggi yang menggambarkan apa yang harus dilakukan komputasi.
- Bahasa pemrograman apa pun yang tidak memiliki efek samping (atau lebih spesifik, transparan referensial )
- Bahasa dengan korespondensi yang jelas dengan logika matematika .
Definisi-definisi ini tumpang tindih secara substansial. Pemrograman deklaratif berbeda dengan pemrograman imperatif dan prosedural . Pemrograman deklaratif adalah gaya pemrograman non-imperatif di mana program menggambarkan hasil yang diinginkan tanpa secara eksplisit mencantumkan perintah atau langkah yang harus dilakukan. Bahasa pemrograman fungsional dan logis ditandai oleh gaya pemrograman deklaratif. Dalam bahasa pemrograman logis , program terdiri dari pernyataan logis, dan program dijalankan dengan mencari bukti pernyataan.
Dalam bahasa fungsional murni , seperti Haskell , semua fungsi tanpa efek samping , dan perubahan status hanya direpresentasikan sebagai fungsi yang mengubah keadaan, yang secara eksplisit direpresentasikan sebagai objek kelas pertama dalam program. Meskipun bahasa fungsional murni adalah non-imperatif, mereka sering menyediakan fasilitas untuk menggambarkan efek fungsi sebagai serangkaian langkah. Bahasa fungsional lainnya, seperti Lisp , OCaml dan Erlang , mendukung campuran pemrograman prosedural dan fungsional.
Beberapa bahasa pemrograman logis , seperti Prolog , dan bahasa query basis data , seperti SQL , sementara pada prinsipnya deklaratif, juga mendukung gaya pemrograman prosedural.
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H