Mengenal Cara Menulis Function
Pada Bahasa Pemrograman Javascript
Definisi Function
Function atau fungsi merupakan sebuah paradigma pemrograman yang berperan sebagai struktur utama untuk menjalankan proses serta memodelkan komputasi dan evaluasi ekspresi dari program yang dibuat. fungsional programming memiliki keuntungan termasuk kemudahan dalam pembuatan kode, konsistensi hasil input dan output. Fungsional programming memiliki beberapa konsep dan karakteristik. yaitu :
1. Fungsi yang murni
Fungsi yang murni merupakan function yang tidak memengaruhi dan bergantung pada keadaan di luar scope nya, yang berarti function yang dibuat memiliki keluaran yang hanya bergantung pada inputannya sehingga tidak memiliki efek samping yang dapat mengubah keadaan di luar scope funtion itu sendiri.
2. Berorientasi pada ekspresi
Functional programming bukan terbentuk dari serangkaian instruksi yang memanipulasi keadaan program, melainkan cenderung berfokus pada evaluasi ekspresi yang dievaluasi untuk menghasilkan nilai.
3. High Order Functions
Functional programming memiliki konsep high order function yang merupakan function yang dapat mengembalikan function lain sebagai nilai atau mengambil function lain sebgai argumen sehingga dapat mengekspresikan pola umum dalam kode yang kita buat tanpa harus mengulang-ulang kode yang serupa.
4. Recursion
Functional programing seringkali mengganti iterasi tradisional menggunakan rekursi yang merupakan teknik yang memanggil dirinya sendiri untuk menyelesaikan tugasnya.
5. Immutability
Dalam funtional programming kita bisa menghindari efek samping dan mempermudah pemrograman paralel dengan membuat salinan yang dimodifikasi dari data asli sehingga data aslinya tidak berubah.
Pada bahasa pemrograman javascript ada beberapa cara yang bisa kita gunakan dalam membuat function, yuk kita pelajari bersama apa saja caranya.
1. Function expression atau Ekspresi Fungsi
Ekspresi fungsi sedikit berbeda dengan penulisan function javascript secara tradisional dimana function yang kita definisikan menggunakan statement function disematkan pada sebuah variable. ekspresi function sering digunakan ketika kita menggunakannya pada suatu scope tertenttu atau sebagai parameter untuk function lain yang disebut dengan high order function.
function ekspresi memiliki beberapa karakteristik dasar, pertama, ekspresi function tunduk dengan aturan scope javascript yang membuat variable yang ada di dalam function tersebut tidak dapat diakses atau digunakan di luar function tersebut kecuali menggunakan closure tertentu.
kedua, dalam expression function dapat didefinisikan tanpa harus diberi nama atau disebut juga anonymous function, namun kita sematkan pada variable sehingga dapat digunakan seperti biasa.
ketiga, function didefinisikan menggunakan sintaks function diikuti dengan parameter dan body function, yang hasilnya akan direturn ke dalam variable.
contoh pendeklarasian function expression
1. function tanpa return value dan parameter const kerja = function() { console.log('Hari senin waktunya bekerja kembali') } //memanggil function kerja() /* output: Hari senin waktunya bekerja kembali */ 2. dengan parameter let pekerja = 'Jaka' const kerja = function(pekerja) { console.log(`Hari senin waktunya ${peekrja} bekerja kembali`) } //memanggil function yang berisi parameter kerja(pekerja) /* output: Hari senin waktunya Jaka bekerja kembali */ 3. dengan return value let pekerja = 'Jaka' const kerja = function(pekerja) { return pekerja } //memanggil function yang berisi parameter kerja(pekerja) console.log(`Hari senin waktunya ${pekerja} bekerja kembali`) /* output: Hari senin waktunya Jaka bekerja kembali */
2. Higher-order Function
Higher-order function merupakan salah satu konsep pemrograman functional yang memungkinkan function yang kita buat dapat menerima function lain sebagai parameter atau mengembalikan function sebagain return value dari higher-order function. dengan mengunakan konsep jenis ini kita dapat mengurangi redudansi, meningkatkan kegunaan dan maintainability program serta meningkatkan kejelasan kode yang dibuat.
Ada beberapa karakteristik yang dimiliki oleh Higher-order function, yaitu :
pertama, Higher-order function dapat mengabstraksi pola operasi umum ke dalam function yang dapat digunakan secara fleksibel dengan berbagai operasi dan jenis input yang berbeda.
kedua, Closure. Closure merupakan referensi terhadap variable yang lebih tinggi yang dipertahankan melalui return value sehingga function yang dibuat memiliki state yang `diingat` di antara pemanggilan lainnya.
ketiga, Higher-order function dapat menerima satu bahkan lebih function sebagai parameter atau argumen yang dapat dipanggil dan dieksekusi di dalam blok kode higher-order function tersebut.
keempat, Higher-order function dapat mengembalikan function lain sebagai return value sehingga dapat digunakan di luar higher-order function yang memanggilnya.
Higher-order function juga memiliki beberapa manfaat, yaitu dapat membantu untuk memisahkan logika program menjadi unit terpisah yang lebih kceil, membantu mengabstarksi operasi kompleks dan pola umum ke dalam function yang lebih kecil dan terfokus, dan memungkinkan kita untuk menulis kode yang reusable karena fungsi yang dibuat dapat beroperasi dengan berbagai jenis operasi.
contoh pendeklarasian hihger-order function
1. menambahkan function lain ke dalam function function kurang(a,b) { return a-b } function jalan(c,d,operasi) { return operasi(c,d) } console.log(jalan(5,3, kurang) /* Output: 2 */ 2. menjadikan function lain sebagai return value function jalan(operasi) { return function(a) { return a-operasi } } let jalanin = jalan(5) console.log(jalanin(5)) /* Output: 0 */
3. Arrow Function
Arrow function merupakan alternatif pendefinisian function pada javascript yang penulisannya lebih singkat dan lebih ekspresif dari jenis function lainnya, terutama pada kasus dimana function digunakan sebagai callbak atau function yang dideklarasikan secara sederhana.
Arrow Function memiliki beberapa karakteristik, yaitu:
pertama, jika function yang dibuat terdiri dari satu pernyataan body arrow saja, maka hasilnya menjadi return value dari function tersebut.
ketiga, arrow function dapat digunakan dalam higher-order function karena sintaksnya yang mudah dipahami dan terlihat lebih ringkas.
kedua, dalam pendefinisian parameter, ketika parameter nya hanya satu, kita dapat menghapus tanda kurung `()` dan membuat function yang ditulis lebih ringkas.
contoh penggunaan arrow function
1. function tanpa parameter const arrow = () => { console.log('panah') } arrow() /* Output: panah */ 2. function dengan parameter const a = b => b+b; console.log(a(2)) /* Output: 4 */
Begitulah cara menulis function pada bahasa pemrograman javascript. semoga bermanfaat dan sampai jumpa pada artikel selanjutnya.
Terus Bergerak Maju~