Itu perbedaan utama antara pemrograman fungsional dan pemrograman imperatif adalah bahwa pemrograman fungsional menganggap perhitungan sebagai fungsi matematis dan menghindari perubahan status dan data yang bisa berubah, sementara pemrograman imperatif menggunakan pernyataan yang mengubah status program.
Paradigma pemrograman menyediakan gaya membangun struktur dan elemen program komputer. Paradigma pemrograman membantu untuk mengklasifikasikan bahasa pemrograman berdasarkan fitur-fiturnya. Bahasa pemrograman mungkin memengaruhi lebih banyak paradigma. Dalam paradigma berorientasi objek, program disusun menggunakan objek, dan objek mengirimkan pesan menggunakan metode. Pemrograman logika dapat mengungkapkan komputasi secara eksklusif dalam hal logika matematika. Dua paradigma pemrograman lainnya adalah pemrograman fungsional dan pemrograman imperatif. Pemrograman fungsional memungkinkan ekspresi komputasi sebagai evaluasi fungsi matematika. Pemrograman imperatif memberikan pernyataan yang secara eksplisit mengubah status memori. Artikel ini membahas perbedaan antara pemrograman fungsional dan pemrograman imperatif.
1. Ikhtisar dan Perbedaan Utama
2. Apa itu Pemrograman Fungsional
3. Apa itu Pemrograman Imperatif
4. Kesamaan Antara Pemrograman Fungsional dan Pemrograman Imperatif
5. Perbandingan Berdampingan - Pemrograman Fungsional vs Pemrograman Imperatif dalam Bentuk Tabular
6. Ringkasan
Pemrograman Fungsional didasarkan pada Matematika. Prinsip utama di balik pemrograman fungsional adalah bahwa semua perhitungan dianggap sebagai kombinasi dari fungsi matematika yang terpisah. Fungsi matematika memetakan input ke output. Asumsikan ada fungsi yang disebut f (x) = x * x. Nilai x 1 dipetakan ke output 1. Nilai x 2 dipetakan ke output 4. Nilai x 3 dipetakan ke output 9 dan seterusnya.
Gambar 01: Contoh bahasa pemrograman Fungsional - Haskell
Dalam pemrograman fungsional, pola dipertimbangkan. Bahasa pemrograman Fungsional Haskell, menggunakan metode di bawah ini untuk menemukan penjumlahan dari angka-angka.
Fungsi penjumlahan memiliki nilai integer, dan hasilnya juga akan menjadi integer. Dapat ditulis sebagai jumlah: [int] -> int. Penjumlahan dapat dilakukan dengan mengikuti pola di bawah ini.
jumlah [n] = n, jumlah dari satu angka adalah angka itu sendiri.
Jika ada daftar angka, dapat ditulis sebagai berikut. N mewakili angka pertama, dan ns mewakili angka lainnya
jumlah (n, ns) = n + jumlah ns.
Pola di atas dapat diterapkan untuk menemukan penjumlahan dari tiga angka yaitu 3,4,5.
3 + jumlah [4,5]
3 + (4 + jumlah [5])
3+ 4 + 5 = 12
Suatu fungsi atau ekspresi dikatakan memiliki efek samping jika ia memodifikasi beberapa keadaan di luar ruang lingkupnya atau memiliki interaksi yang dapat diamati dengan fungsi pemanggilannya selain nilai yang dikembalikan. Pemrograman fungsional meminimalkan efek samping ini. Perubahan status tidak tergantung pada input fungsi. Ini berguna saat memahami perilaku program. Salah satu kelemahan pemrograman fungsional adalah bahwa belajar pemrograman fungsional lebih sulit dibandingkan dengan pemrograman imperatif.
Pemrograman imperatif adalah paradigma pemrograman yang menggunakan pernyataan yang mengubah status program. Ini berfokus pada menggambarkan bagaimana suatu program beroperasi. Bahasa pemrograman seperti Java, C dan C # adalah bahasa pemrograman yang sangat penting. Ini memberikan prosedur langkah demi langkah tentang apa yang harus dilakukan. Bahasa pemrograman imperatif berisi struktur seperti jika, yang lain, sementara, untuk loop, kelas, objek dan fungsi.
Gambar 02: Contoh bahasa pemrograman Imperatif - Java
Penjumlahan dari sepuluh angka dapat ditemukan di Jawa sebagai berikut. Dalam setiap iterasi, nilai i ditambahkan ke jumlah dan ditugaskan ke variabel jumlah. Dalam setiap iterasi, nilai penjumlahan terus menambahkan ke jumlah yang dihitung sebelumnya.
jumlah int = 0;
untuk (int i = 0; i< =10; i++)
jumlah = jumlah + i;
Pemrograman imperatif mudah dipelajari, dipahami, dan didebug. Sangat mudah untuk menemukan keadaan program karena menggunakan variabel keadaan. Beberapa kelemahannya adalah dapat membuat kode panjang dan juga dapat meminimalkan skalabilitas.
Pemrograman Fungsional vs Imperatif | |
Pemrograman Fungsional adalah paradigma pemrograman yang menganggap komputasi sebagai evaluasi fungsi matematika dan menghindari perubahan status dan data yang bisa berubah. | Pemrograman Imperatif adalah paradigma pemrograman yang menggunakan pernyataan, yang mengubah status program. |
Struktur | |
Pemrograman Fungsional berisi panggilan fungsi dan fungsi tingkat tinggi. | Pemrograman Imperatif berisi jika, selain itu, untuk loop, fungsi, kelas dan objek. |
Bahasa pemrograman | |
Scala, Haskell dan Lisp adalah bahasa pemrograman fungsional. | C, C ++, Java adalah bahasa pemrograman yang sangat penting. |
Fokus | |
Pemrograman Fungsional berfokus pada hasil akhir. | Pemrograman Imperatif berfokus pada menggambarkan bagaimana suatu program beroperasi. |
Kesederhanaan | |
Pemrograman fungsional sulit. | Pemrograman imperatif lebih mudah. |
Paradigma pemrograman menyediakan gaya membangun struktur dan elemen program komputer. Pemrograman Fungsional dan Pemrograman Imperatif adalah dua di antaranya. Perbedaan antara pemrograman fungsional dan pemrograman imperatif adalah bahwa pemrograman fungsional menganggap komputasi sebagai fungsi matematika dan menghindari perubahan status dan data yang bisa berubah, sementara pemrograman imperatif menggunakan pernyataan yang mengubah status program..
1. "Pemrograman Imperatif." Wikipedia, Wikimedia Foundation, 28 Maret 2018. Tersedia di sini
2. "Pemrograman Fungsional." Wikipedia, Wikimedia Foundation, 28 Maret 2018. Tersedia di sini
3. Komputer komputer. YouTube, YouTube, 30 Agustus 2013. Tersedia di sini
1.'Haskell Logo'By Haskell1965 - Pekerjaan sendiri, (CC BY-SA 3.0) via Commons Wikimedia
2.'14485179234 'oleh Linux Screenshot (CC BY 2.0) melalui Flickr