function()

Fungsi atau biar keren kita sebut saja function adalah suatu blok program yang bisa dipanggil berulang-ulang sesuai dengan kebutuhan. Program kayak gimana? Apa aja. Bebas.

Ini dia fungsi untuk mencetak hello henry pada console.

function helloHenry(){
  console.log("hello henry");
}

Untuk menjalankan fungsinya, cukup ketik aja nama fungsinya,

helloHenry();

Nanti bakalan ada tulisan hello henry di console.

Syntax

Saya akan ngebahas tiga cara nulis fungsi di javascript.

  1. The Basic
  2. Expression
  3. Arrow

1. The Basic Syntax (Declaration)

Ini adalah cara umum buat nulis fungsi. Gampil dipahami.

function namaFungsi(parameter) {
  // write your code here
}

Contohnya, ya itu tadi yang nampilin hello henry.

Ok, gue kasih lagi yang lebih keren. Mari kita menjumlahkan dua bilangan dengan fungsi.

function nambah(angka1, angka2) {
  return angka1 + angka2;
}

Ayo coba hitung 781735420395 ditambah 23793740 dengan fungsi nambah(),

nambah(781735420395, 23793740);

// hasilnya 781759214135

Kok bisa gitu? Gini.. Saya kan bikin fungsi ya. Fungsinya teh saya kasih nama nambah. Kenapa? Ya suka-suka saya dong. Terus di dalem tanda kurung kita kasih parameter-parameternya. Karena saya hanya ingin menjumlahkan dua angka, maka saya hanya ngasih dua parameter yaitu angka1 dan angka2. Kalau nanti kamu maunya nambahin tiga angka, ya kasih tiga parameter. Terus, saya bikin kodingannya yang di dalem kurung kurawal return angka1 + angka2;. Dan, fungsi nambah() siap digunakan.

1.1 Return

Pada fungsi nambah() ada return-nya kan? Itu teh berfungsi untuk mengembalikan suatu nilai ke fungsi tersebut ketika dipanggil. Yang saya kembalikan dari fungsi nambah() adalah penjumlahan angka1 dan angka2, maka nanti si javascript bakal ngembaliin hasil penjumlahan itu.

Tapi kok yang helloHenry() gak ada return-nya bisa ngembaliin kalimat hello henry? Berarti fungsi helloHenry() itu mengembalikan nilai default dari fungsi tersebut. Saya kan gak ngoper apa-apa ke fungsi helloHenry(), ga ada parameternya. Jadi helloHenry() hanya punya console.log('hello henry').

Beda ceritanya sama si nambah(), kalau gak direturn ya gak akan nampilin apa-apa.

Kalau di java mah itu teh disebut void.

2. Function Expression

Syntax ini nyuruh kita bikin fungsi kayak deklarasi variabel aja. Ini teh biasanya dipake buat fungsi tak bernama alias anonymous. Mari saya tulis fungsi nambah() pake expression

const nambah = function(angka1, angka2) {
  return angka1 + angka2;
}

Kalau untuk manggilnya mah sama aja,

nambah(781735420395, 23793740);

// hasilnya 781759214135

Kalau fungsinya mau dinamain juga boleh, jadi bisa dipake di dalem fungsinya sendiri atau biasa disebut dengan recursion. Saya pake contoh faktorial aja lah ya, yang umum buat ngejelasin recursion.

const fucktorial = function fuck(n) {
  if (n === 0) return 1;
  return n * fuck(n - 1);
}

fucktorial(3) // hasilnya 6

Bisa diliat tuh, fungsi fuck() bisa dipanggil di dalem fungsinya sendiri.

3. Arrow Function

Nah kalau ini, cirinya ada simbol panah => di fungsinya. Arrow Function mulai ada di ES6.

const nambah = (angka1, angka2) => {
  return angka1 + angka2;
}

Bedanya cuman ganti kata function dengan =>.
Manggilnya juga sama aja

nambah(1,2); // hasilnya 3

Remeh Temeh

Fungsi bisa juga dijadikan parameter.
Contoh, yang gampil aja ya

function nambahMasalah(fungsi1, fungsi2) {
  return fungsi1 + fungsi2;
}

const angka = function(angka) {
  return angka;
}

const angka2 = function(angka2) {
  return angka2;
}

nambahMasalah(angka(5), angka(2)); // hasilnya 7

Sebenernya itu contoh program tolol sih, tapi ya gitu lah. Saya nulis gini teh soalnya sempet penasaran, apakah fungsi bisa jadi jadi parameter fungsi lainnya? Oh ternyata bisa.