Belajar Dasar JavaScript: Fungsi
Fungsi sangat berguna untuk mengelompokkan kode agar mudah di baca dan juga agar bisa dengan mudah digunakan kembali. Fungsi merupakan kumpulan kode yang dapat dijalankan, dapat membutuhkan input dan dapat mengeluarkan nilai.
Deklarasi Fungsi
Dalam JavaScript, fungsi dideklarasikan dengan keyword function
. Berikut adalah contohnya:
function sayHello() {
console.log("Hello!");
}
Pada kode di atas, kita mendeklarasikan fungsi bernama sayHello
. Pada saat fungsi tersebut
dipanggil, maka blok kode (kode di dalam kurung kurawal/{}
) akan di jalankan. Untuk memanggil
fungsi tersebut kita tinggal menggunakan namanya:
sayHello();
Keluarannya adalah:
Hello!
Parameter
Fungsi kadang membutuhkan input. Parameter adalah variabel yang diberikan ke sebuah fungsi sebagai input. Parameter hanya bisa diakses di dalam fungsi yang bersangkutan. Argumen merupakan nilai sebuah parameter yang diberikan saat memanggil fungsi.
Parameter dapat dideklarasikan seperti berikut:
function sayName(name) {
console.log(`My name is ${name}`);
}
sayName("Marno");
// My name is Marno
sayName("Gito");
// My name is Gito
Fungsi sayName
memiliki parameter bernama name
. "Marno"
dan "Gito"
merupakan argument dari
parameter name
.
Fungsi dapat memiliki lebih dari 1 parameter. Parameter harus dipisah dengan koma (,
). Contohnya
adalah:
function greet(name, time) {
console.log(`Good ${time}! ${name}`);
}
greet("Agus", "Morning");
// Good Morning! Agus
greet("Andri", "Noon");
// Good Noon! Andri
Fungsi greet
mempunyai dua parameter yaitu name
dan time
. "Morning"
dan "Noon"
merupakan
argument dari parameter name
, karena sama-sama berada pada urutan 1. "Agus"
dan "Andri"
merupakan argument dari parameter time
, karena sama-sama berada pada urutan 2. Jadi, argumen dan
parameter dipasangkan sesuai urutan.
Default Parameter
Pada JavaScript, jika argumen untuk sebuah parameter tidak ditentukan maka nilainya undefined
.
Contohnya:
greet("Agus");
// Good undefined! Agus
greet();
// Good undefined! undefined
Untuk menghindari nilai dari parameter menjadi undefined
maka kita bisa menggunakan default
parameter. Default parameter adalah nilai yang diberikan ke parameter jika nilainya/argumennya tidak
ditentukan.
function greet(name = "Toto", time = "Morning") {
console.log(`Good ${time}! ${name}`);
}
greet("Agus", "Noon");
// Good Noon! Agus
greet("Agus");
// Good Morning! Agus
greet();
// Good Morning! Toto
Saat argument untuk parameter time
tidak ditentukan maka "Morning"
digunakan sebagai nilai
parameter. Saat argument untuk parameter name
tidak ditentukan maka "Toto"
sebagai nilai
parameter.
Keluaran Fungsi
Fungsi juga dapat menghasilkan sebuah nilai keluaran (output). Untuk menghasilkan nilai kita bisa
menggunakan keyword return
. Contohnya:
function square(x) {
return x * x;
}
console.log(square(4)); // 16
Fungsi square
akan menghasilkan nilai x * x
.
Jika suatu fungsi tidak menentukan nilai keluarannya, maka keluarannya adalah undefined
.
function sayName(name) {
console.log(`My name is ${name}`);
}
console.log(sayName("Yusri"));
// My name is Yusri
// undefined
Fungsi sayName
tidak menentukan keluarannya jadi keluarannya adalah undefined
.
return
akan meloncati semua kode setelahnya. return
juga bisa digunakan tanpa nilai dan akan
menghasilkan nilai undefined
. Contohnya:
function sayName(name) {
if (!name) {
console.log("Name is empty");
return;
}
console.log(`My name is ${name}`);
}
sayName();
// Name is empty
sayName("Wagiman");
// My name is Wagiman
Maksud dari !name
adalah nilai dari name tidak truthy (falsy). Saat name = undefined
,
return
di jalankan, sehingga console.log(`My name is ${name}`);
diloncati.
Menyimpan Fungsi di Variabel
Kita bisa menyimpan fungsi ke variabel. Pemanggilan dan deklarasi sama dengan fungsi biasa. Yang berbeda adalah nama fungsi bisa dihilangkan. Contohnya:
const plus = function (a, b) {
return a + b;
};
console.log(plus(10, 20)); // 30
Fungsi Bersarang
Dalam JavaScript, kita bisa mendeklarasikan fungsi di dalam fungsi. Fungsi yang berada di dalam fungsi lain dinamakan fungsi bersarang. Fungsi jenis ini dapat mengakses dan mengubah variabel fungsi luar. Contohnya:
function distribute(a, b, factor) {
function times(x) {
return x * factor;
}
return times(a) + times(b);
}
console.log(distribute(2, 3, 10)); // 50
Fungsi times
hanya bisa dipanggil di dalam fungsi distribute
. Fungsi times
juga bisa mengakses
parameter dari fungsi distribute
.