Pengertian Functional Programming
Pemrograman Fungsional adalah cara pemrograman yang berdasarkan teori fungsi matematika, dimana proses komputasi diperlakukan sebagai evaluasi fungsi-fungsi matematika. Cara pemrograman fungsional bisa menjadikan program lebih ekpresif (menggunakan koding lebih sedikit untuk mengimplementasikan sesuatu ide) sehingga programer dapat menjadi lebih produktif.
Bahasa pemrograman fungsional yang paling banyak digunakan oleh yaitu Javascript. Mula-mula Javascript yang diciptakan oleh Netscape bertujuan melengkapi bahasa Java pada pemrograman web dengan menarik untuk programmer nonprofesional pada pemrograman sisi client, sehingga sintaks Javascript banyak diambil dari bahasa C dan juga menyamar seolah-olah sebagai bahasa prosedural sampai programmer siap untuk pindah ke tingkat berikutnya yaitu pemrograman fungsional. Sebenarnya prinsip-prinsip desain kunci dalam JavaScript diambil dari bahasa pemrograman Self dan Scheme, yang bukan lain adalah bahasa pemrograman fungsional. Sehingga tanpa memahami paradigma fungsional ini, banyak programmer akan gagal memahami script yang ditulis dalam bahasa Javascript dengan baik.
- Procedural Functions
- Function as Variables
- Passing Functions To Function
Fungsi, dalam Javascript, adalah juga sekaligus sebuah objek. Sehingga selain memiliki fungsi sendiri, maka juga Anda memiliki objek fungsi, yang berarti memiliki metode dan properti sebagai objek, yang selanjutnya dapat diperluas oleh programmer sesuai kebutuhan.
Setiap fungsi memiliki properti berikut:
- Arguments – Sebuah array / objek yang mengandung argumen dilewatkan ke fungsi
- Alength – menyimpan sejumlah argumen dalam array
- Acallee – pointer ke fungsi pelaksana (memungkinkan fungsi anonim untuk rekursi).
- Constructor – fungsi pointer ke fungsi konstruktor.
- Length – jumlah argumen fungsi
- Prototype – memungkinkan penciptaan prototipe
Setiap fungsi memiliki metode berikut:
- Apply – sebuah metode yang memungkinkan Anda lebih easilly melewati argumen fungsi.
- Call – memungkinkan Anda untuk memanggil fungsi dalam konteks yang berbeda.
- ToSource – mengembalikan kode sumber dari sebuah objek.
- ToString – mengembalikan sumber fungsi sebagai string.
- ValueOf – Mengembalikan nilai primitif dari objek Boolean