Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu. Fungsi dapat digunakan kembali (reusable) dan dapat dieksekusi kapan saja setelah didefinisikan. Berikut adalah berbagai cara untuk mendefinisikan dan menggunakan fungsi dalam JavaScript.
Deklarasi Fungsi (Function Declaration) #
Deklarasi fungsi adalah cara mendefinisikan fungsi yang paling umum. Fungsi yang dideklarasikan dengan cara ini memiliki nama dan dapat dipanggil di mana saja dalam cakupan (scope) mereka.
function greet(name) {
return "Hello, " + name;
}
console.log(greet("John")); // Output: Hello, John
Ekspresi Fungsi (Function Expression) #
Ekspresi fungsi adalah cara lain untuk mendefinisikan fungsi. Fungsi ini dapat anonim (tanpa nama) dan biasanya didefinisikan sebagai bagian dari ekspresi, seperti menetapkan fungsi ke variabel.
let greet = function(name) {
return "Hello, " + name;
};
console.log(greet("Jane")); // Output: Hello, Jane
Arrow Function #
Arrow function adalah cara yang lebih ringkas untuk mendefinisikan fungsi. Mereka menggunakan sintaksis panah (=>
) dan memiliki beberapa perbedaan perilaku dari fungsi biasa, terutama dalam hal penanganan this
.
let greet = (name) => {
return "Hello, " + name;
};
console.log(greet("Alice")); // Output: Hello, Alice
Jika fungsi hanya memiliki satu baris pernyataan, Anda bisa menghilangkan return
dan kurung kurawal.
let greet = (name) => "Hello, " + name;
console.log(greet("Bob")); // Output: Hello, Bob
Fungsi dengan Parameter Default #
JavaScript memungkinkan untuk mendefinisikan parameter default untuk fungsi. Jika argumen tidak diberikan saat fungsi dipanggil, parameter default akan digunakan.
function greet(name = "Guest") {
return "Hello, " + name;
}
console.log(greet()); // Output: Hello, Guest
console.log(greet("Eve")); // Output: Hello, Eve
Fungsi dengan Jumlah Parameter Tidak Terbatas (Rest Parameters) #
Rest parameters memungkinkan Anda untuk mengoperasikan fungsi dengan jumlah argumen yang tidak terbatas. Parameter ini didefinisikan dengan menggunakan tiga titik (...
).
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3)); // Output: 6
console.log(sum(4, 5, 6, 7)); // Output: 22
Fungsi dalam Objek (Method) #
Fungsi juga dapat didefinisikan sebagai properti objek. Fungsi ini disebut metode.
let person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
console.log(person.fullName()); // Output: John Doe
Fungsi Rekursif #
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini berguna untuk memecahkan masalah yang dapat dibagi menjadi sub-masalah yang lebih kecil, seperti faktorial atau Fibonacci.
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // Output: 120
Contoh Penggunaan Fungsi #
Berikut adalah contoh yang menggabungkan beberapa konsep fungsi dalam JavaScript:
<!DOCTYPE html>
<html>
<head>
<title>Contoh Fungsi dalam JavaScript</title>
<script>
// Deklarasi Fungsi
function greet(name = "Guest") {
return "Hello, " + name;
}
// Ekspresi Fungsi
let sum = function(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
};
// Arrow Function
let multiply = (a, b) => a * b;
// Fungsi dalam Objek (Method)
let person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
// Fungsi Rekursif
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
function displayResults() {
console.log(greet("Alice")); // Hello, Alice
console.log(greet()); // Hello, Guest
console.log(sum(1, 2, 3, 4)); // 10
console.log(multiply(5, 6)); // 30
console.log(person.fullName()); // John Doe
console.log(fibonacci(5)); // 5
}
</script>
</head>
<body onload="displayResults()">
</body>
</html>
Pada contoh di atas:
greet
adalah fungsi deklaratif dengan parameter default.sum
adalah fungsi ekspresi yang menggunakan rest parameters.multiply
adalah arrow function.person
adalah objek dengan metodefullName
.fibonacci
adalah fungsi rekursif.
Dengan memahami dan menggunakan fungsi dalam JavaScript, Anda dapat menulis kode yang lebih modular, dapat digunakan kembali, dan mudah dikelola. Jika ada pertanyaan lebih lanjut atau bagian yang perlu diperjelas, jangan ragu untuk bertanya.