Fungsi dalam JavaScript

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 metode fullName.
  • 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.