Procedural dan Fungsional Programming
Pendahuluan
Dalam pemrograman komputer, terdapat dua paradigma pemrograman utama, yaitu :
- prosedural
- fungsional.
Yaa, walaupun nanti akan ada declarative, object oriented, structured, modular, etc yang menyasar pembahasan yang berbeda.
Akan tetapi secara kasat mata yang biasanya kita temui adalah 2 hal diatas.
Yang kadang kalau kita menggunakan bahasa pemrograman OOP, tetapi tetap saja di dalamnya ada sisi prosedural yang kita tulis.
Lalu ?
Kita akan coba membahas 2 pendekatan paradigma ini :
Kedua paradigma ini memiliki pendekatan yang berbeda dalam memecahkan masalah.
Pemrograman prosedural
Pemrograman prosedural adalah paradigma pemrograman yang berfokus pada urutan langkah-langkah yang harus diikuti untuk menyelesaikan suatu tugas.
Dalam pemrograman prosedural, program dibangun dengan urut-urutan instruksi dan langkah.
Terkadang memerlukan dan menggunakan fungsi dan prosedur.
Fungsi adalah blok kode yang dapat dipanggil kembali.
Prosedur adalah blok kode yang tidak mengembalikan nilai.
Sehingga karakteristik pemrograman prosedural:
- Berfokus pada urutan langkah-langkah
- Menggunakan fungsi dan prosedur
- Menggunakan variabel global dan lokal
- Mengandung banyak referensi ke memori
Pemrograman fungsional
Pemrograman fungsional adalah paradigma pemrograman yang berfokus pada fungsi-fungsi yang mengubah data.
Dalam pemrograman fungsional, program dibangun dengan menggunakan fungsi-fungsi murni, yaitu fungsi yang bisa dipanggil berulang-ulang tanpa mengakibatkan kesalahan data/program.
Sehingga beberapa karakteristik pemrograman fungsional:
- Berfokus pada fungsi-fungsi yang mengubah data
- Menggunakan fungsi murni
- Tidak menggunakan variabel global
- Tidak mengandung banyak referensi ke memori
Lalu apa Perbedaan antara Procedural dan Fungsional Programming ?
Perbedaan utama antara prosedural dan fungsional programming adalah pada cara mereka memandang data.
Dalam pemrograman prosedural, data dipandang sebagai sesuatu yang dapat diubah oleh langkah-langkah yang berurutan.
Sedangkan dalam pemrograman fungsional, data dipandang sebagai sesuatu yang dapat dimanipulasi oleh fungsi.
Tabel perbandingannya :
Karakteristik | Procedural | Fungsional |
---|---|---|
Fokus | Urutan langkah-langkah | Fungsi-fungsi yang mengubah data |
Penggunaan fungsi | Fungsi dan prosedur | Fungsi murni |
variabel | Variabel global dan lokal | Tidak menggunakan variabel global |
Referensi ke memori | Banyak referensi ke memori | Tidak mengandung banyak referensi ke memori |
Keunggulan Pemrograman prosedural
- Mudah dipahami dan dipelajari
- Efisien untuk tugas-tugas yang membutuhkan urutan langkah-langkah yang kompleks
Kelemahan Pemrograman prosedural
- Sulit untuk menjaga agar program tetap bersih dan bebas bug
- Sulit untuk menguji program
- Program dapat menjadi kompleks dan sulit di maintain
Keunggulan Pemrograman fungsional
- Program lebih bersih dan bebas bug
- Mudah untuk menguji program
- Program lebih mudah di maintain
- Efisien untuk tugas-tugas yang membutuhkan manipulasi data yang kompleks
Kelemahan Pemrograman fungsional
- Sulit dipahami dan dipelajari pada awalnya
- Kurang efisien untuk tugas-tugas yang membutuhkan urutan langkah-langkah yang kompleks
Kesimpulan
Pemilihan paradigma pemrograman yang tepat tergantung pada kebutuhan dan tujuan program yang akan dibangun.
Pemrograman prosedural lebih cocok untuk tugas-tugas yang membutuhkan urutan langkah-langkah yang kompleks.
Sedangkan pemrograman fungsional lebih cocok untuk tugas-tugas yang membutuhkan manipulasi data yang kompleks, seperti pemrosesan Data Warehouse, Machine Learning dll.