Istilah paradigma pemrograman terkait dengan suatu gaya dalam memrogram dan tidak terkait dengan suatu bahasa pemrograman tertentu [1]. Suatu bahasa pemrograman dapat diklasifikasikan dalam lebih dari satu paradima [2], yang sebagai contohnya adalah JavaScript yang mengijinkan untuk membuat kode dalam berbagai paradima berbeda atau mengombinasikannya dalam suatu pendekatan multi-paradigma [3]. Saat berbicara mengenai empat paradigma utama pemrograman, terdapat imperatif, logikal, fungsional, dan berorientasi-obyek [4] ataupun prosedural, berorientasi-obyek, fungsional, dan logikal [5], di mana pada pembagian lain paradigma prosedural dan berorientasi-obyek merupakan bagian dari paradigma imperatif, sedangkan paradigma logikal dan fungsional merupakan bagian dari paradigma deklaratif [6]. Selain itu terdapat juga pembagian yang lebih menerus yang sampai menggunakan istilah paradigma yang lebih deklaratif dan paradigma yang lebih imperatif dan terdapat satu kelompok paradigma di antara keduanya [2]. Di sini akan dibahas dua kelompok paradigma, yaitu yang termasuk imperatif dan deklaratif serta beberapa contoh yang termasuk di dalamnya.
Berapa bahasa pemrograman secara alamiah termasuk dalam paradigma deklaratif dan lainnya dalam imperatif, serta terdapat pula yang dapat mengakomodasi keduanya [7].
Tabel 1. Paradigma dan contoh bahasa pemrogramannya.
Paradigma | Bahasa [6] | Bahasa [7] |
---|---|---|
Imperatif | C, Fortran, Basic Prosedural: C, C++, Java, ColdFusion, Pascal Berorientasi obyek: Simula, Java, C++, Objective-C, Visual Basic .NET, Python, Ruby, SmallTalk |
C, C++, Java |
Deklaratif | Logikal: Prolog Fungsional: JavaScript, Haskwell, Scala, Erlang, Lisp, ML, Clojure |
SQL, HTML |
Mix | JavaScript, C#, Python |
Termasuk ke dalam paradigma mana suatu bahasa pemrograman, kelihatannya masih dapat diperdebatkan, seperti disajikan dalam Tabel 1, di mana dua rujukan menggolongkan dalam kategori yang berbeda.
Paradigma pemrograman imperatif dan deklaratif memiliki fitur-fitur yang dapat dibandingkan, kekurangan dan kelebihannya [8].
Tabel 2. Paradigma pemrograman dan fiturnya.
Paradigma | Imperatif | Deklaratif |
---|---|---|
Operasi | Mendefiniskan bagaimana pekerjaan diselesaikan |
Mendefinisikan apa tugas yang diselesaikan |
Komputasi | Mendefinisikan aliran kendali dan perubahan keadaan |
Hanya mendefinisikan logika |
Mutating Variables |
Sangat biasa | Tidak biasa dan tidak disarankan |
Kekuatan | Notasi mudah dipelajari; Sesuai arsitektur mesin |
Kode mudah dioptimasi; Tingkat abstraksi tinggi |
Kelemahan | Debugging sulit; Rentan untuk data pacu |
Notasi tidak akrab; Kode kurang dapat disesuaikan |
Paradima Turunan Populer |
Prosedural; Berorientasi obyek |
Fungsional; Logikal |
Programer dapat memilih paradigma pemrograman mana yang lebih cocok pada permasalahan yang akan diselesaikan.
Salah satu cara untuk membayangkan kedua kelompok besar paradigma pemrograman, imperatif dan deklaratif adalah dengan analogi contoh pada kehidupan sehari-hari [5, 9].
Pendekatan imperatif akan seperti
Masuk ke toko minuman kopi,
Antri dan tunggu barista melayani,
Pesan,
Sampaikan bahwa untuk dibawa,
Bayar,
Tunjungan kartu anggota untuk mengumpulkan poin,
Ambil pesanan dan pergi,
sedangkan pendekatan deklaratif
Tolong satu porsi besar latte untuk dibawa.
Pendekatan imperatif akan seperti
Teman mendengarkan saran pelukis bagaimana melukis pemandangan,
Pelukis yang baik tidak benar-benar memerintah,
Pelukis hanya memberikan arahan langkah per langkah untuk mendapatkan hasil yang diinginkan,
sedangkan pendekatan deklaratif
Minta teman untuk menggambar pemandangan.
Dengan demikian dapat disarikan, sebagaimana juga telah ditegaskan dalam Tabel 2 bahwa
Paradigma Imperatif
Menjelaskan bagaimana langkah-langkah untuk mencapai tujuan.
Paradigma Deklaratif
Menjelaskan apa tujuan yang akan dicapai.
Penting untuk disadari bahwa banyak pendekatan deklaratif yang telah memiliki sejumlah layer abstraksi imperatif [7]. Dapat terjadi bahwa asumsi ini kadang diambil tanpa sadar dan bila asumsi ini salah maka pendekatan menjadi kurang tepat. Sebagai contoh pendekatan deklaratif seperti
Sampai bertemu di toko buku sore ini jam 1530,
mengasumsikan bahwa Anda telah mempunyai layer abstraksi interaktif tentang bagaimana mencapai toko buku dengan kendaraan umum dan menentukan waktu perjalanan yang tepat. Bila tidak mungkin langkah-langkah berikut
Jam 14 keluar dari rumah,
Berjalan menuju halte bus terdekat,
Tunggu bus menuju pusat kota,
Turun di halte taman kota,
Berjalan ke utara selama 15 menit sampai sebelum perempatan,
Menyeberang jalan ke barat dan belok ke kiri sejauh 20 meter,
Masuk ke gedung sebelah kiri berwarna biru,
Naik ke tingkat dua dan sampai ke toko buku,
diperlukan sebagai pendekatan deklaratif.
— Sparisoma Viridi (@6unpnp) January 21, 2022