Fungsi adalah blok kode bernama yang bisa dipanggil berulang kali. Kamu kirim masukan, fungsi mengerjakan sesuatu, lalu mengembalikan hasilnya. Kayak blender: masukkan buah, keluar jus, dan blender yang sama bisa dipakai buat buah apa saja.
🧪 Tebakan cepat: sebuah fungsi gak punya
return. Kalau dipanggil, hasilnya apa? Tebak dulu, jawabannya ada di bagian "return: mengembalikan hasil".
Bikin dan memanggil fungsi
function salam(nama) {
return "Selamat pagi, " + nama + "!";
}
console.log(salam("Budi")); // Selamat pagi, Budi!
console.log(salam("Sari")); // Selamat pagi, Sari!
functionadalah kata kunci buat bikin fungsi, dansalamnama fungsinya.(nama)adalah parameter: nama untuk nilai yang dikirim waktu fungsi dipanggil. Anggap saja variabel yang isinya datang dari luar.{sampai}adalah badan fungsi (body), kode yang jalan setiap kali fungsi dipanggil.returnmengembalikan hasil ke tempat fungsi itu dipanggil.salam("Budi")memanggil fungsinya."Budi"adalah argumen, yaitu nilai yang dikirim. Nilainya masuk ke parameternama.
Menulis fungsi belum menjalankannya. Kodenya baru jalan waktu dipanggil, dengan nama fungsi dan tanda kurung. Panggil lagi dengan "Sari", hasilnya ikut berubah: mesinnya sama, masukannya beda.
return: mengembalikan hasil
function kali(a, b) {
return a * b;
}
const hasil = kali(3, 5);
console.log(hasil); // 15
- Parameter lebih dari satu dipisah koma. Argumennya masuk sesuai urutan:
aberisi 3,bberisi 5. return a * b;mengembalikan 15. Pemanggilnya boleh menyimpan hasil itu (const hasil = ...) atau langsung mencetaknya.returnjuga menghentikan fungsi. Baris sesudahnya gak dijalankan.- Pakai parameternya, jangan angka tetap.
return 3 * 5;cuma benar kalau argumennya kebetulan 3 dan 5.
Jawaban tebakan: fungsi tanpa return mengembalikan undefined. Hati-hati, console.log di dalam fungsi cuma mencetak ke console, gak mengembalikan apa-apa. Di latihan, yang dinilai adalah nilai yang dikembalikan, jadi selalu pakai return.
Cara lain menulis fungsi
function nama() { ... } adalah cara tradisional. Fungsi juga bisa disimpan di variabel, termasuk dalam bentuk pendek bernama arrow function (=>):
const salam2 = function (nama) {
return "Halo, " + nama;
};
const kaliDua = (n) => n * 2;
const kaliTiga = (n) => { n * 3; };
console.log(kaliDua(4)); // 8
console.log(kaliTiga(4)); // undefined
salam2adalah function expression: fungsi yang disimpan di variabel. Cara memanggilnya sama,salam2("Budi").kaliDuaadalah arrow function. Badannya satu ekspresi tanpa kurung kurawal, jadi hasilnya langsung dikembalikan tanpa menulisreturn.kaliTigamemakai{ }. Begitu ada kurung kurawal, badannya jadi blok biasa yang butuhreturn. Tanpareturn, hasilnyaundefined.
Arrow function dibahas lebih lengkap di lesson berikutnya.
⚠️ Jebakan yang sering ketemu
- Mencetak, bukan mengembalikan.
console.log(a + b)di dalam fungsi membuat hasil fungsinyaundefined. Tulisreturn a + b;. - Lupa tanda kurung waktu memanggil.
salamtanpa("Budi")gak menjalankan fungsinya. - Teks hasil gak persis.
"Halo," + namatanpa spasi menghasilkanHalo,Budi. Spasi dan tanda baca di dalam kutip ikut jadi hasil.
TL;DR: Fungsi dibuat dengan function nama(parameter) { ... } dan baru jalan waktu dipanggil, misalnya salam("Budi"). Argumen yang dikirim masuk ke parameter sesuai urutan. return mengembalikan hasil dan menghentikan fungsi. Tanpa return hasilnya undefined, dan console.log gak bisa menggantikannya. Arrow function (n) => n * 2 mengembalikan hasilnya langsung, tapi begitu pakai { } harus ada return.