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.