Bab 10: Function JavaScript: Membuat dan Menggunakan Fungsi

“Karena hidup terlalu rumit kalau harus nulis kode yang sama berulang-ulang kayak lagu dangdut yang muter terus!”

Kamu pernah merasa capek ngetik kode yang sama berulang kali misalnya bikin alert “Halo, dunia!” sebanyak 10 kali maka kamu harus sudah siap masuk ke dunia function di JavaScript.

Function itu kayak shortcut atau macro dalam kehidupan nyata: sekali buat, bisa dipakai berkali-kali tanpa ribet. Bayangkan function seperti resep masakan: kamu tulis resep sekali, lalu tinggal bilang “masak nasi goreng” alih-alih menjelaskan dari mulai potong bawang sampai angkat wajan tiap kali mau makan.

Di bab ini, Jarvis akan bantu kamu memahami semua hal penting tentang function di JavaScript mulai dari dasar banget sampai ke arrow function yang keren tapi kadang bikin pusing. Siapkan kopi (atau teh tawar kalau lagi diet), karena kita bakal ngobrol santai tapi tetap on point!

Mengenal Function di JavaScript

Sintaks Dasar Function JavaScript

Function di JavaScript dibuat pakai kata kunci function. Begini bentuk paling dasarnya:

JavaScript
function sapaDunia() {
  console.log("Halo, dunia!");
}

Gampang, kan? Ini disebut function declaration kamu deklarasikan fungsi dengan nama jelas (sapaDunia) dan isinya ada di dalam kurung kurawal {}.

Memanggil (Invoke) Function

Nulis function doang nggak cukup kamu harus panggil dia biar jalan. Caranya?

JavaScript
sapaDunia(); // Output: Halo, dunia!

Tanpa tanda kurung (), function cuma jadi pajangan. Kayak foto mantan: dilihat boleh, dijalankan? Nggak.

Function dengan Return Value

Terkadang, kamu nggak cuma mau nampilin sesuatu tapi juga mengembalikan nilai. Misalnya, hitung luas persegi:

JavaScript
function hitungLuas(sisi) {
  return sisi * sisi;
}

let luas = hitungLuas(5);
console.log(luas); // Output: 25

return itu kayak kasir di warung: dia nggak cuma ngitung, tapi juga ngasih kembaliannya ke kamu.

Menggunakan Function Berulang Kali

Keajaiban function? Sekali buat, bisa dipakai berkali-kali:

JavaScript
sapaDunia();
sapaDunia();
sapaDunia(); // Tiga kali, tapi kode cuma 1 baris tiap panggil!

Bayangkan kalau nggak pakai function kamu harus ngetik console.log("Halo, dunia!") tiga kali. Capek, kan? 😅


2. Parameter dan Argument pada Function

Perbedaan Parameter dan Argument

  • Parameter: variabel di dalam tanda kurung saat mendefinisikan function.
  • Argument: nilai nyata yang kamu kirim saat memanggil function.

Contoh:

JavaScript
function sapa(nama) { // 'nama' adalah parameter
  console.log("Halo, " + nama);
}

sapa("Bos"); // "Bos" adalah argument

Ingat: parameter = placeholder, argument = isi.

Mengirim Data ke Function

Kamu bisa kirim angka, string, array, bahkan object:

JavaScript
function perkenalkan(orang) {
  console.log(`Namaku ${orang.nama}, umurku ${orang.umur}`);
}

perkenalkan({ nama: "Jarvis", umur: 0.5 }); // AI juga punya usia, Bos!

Default Parameter

Apa jadinya kalau lupa kirim argument? Bisa error… atau bisa pakai default parameter:

JavaScript
function sapa(nama = "Teman Misterius") {
  console.log("Halo, " + nama);
}

sapa(); // Output: Halo, Teman Misterius

Default parameter itu kayak cadangan pacar nggak ideal, tapi mencegah kehampaan.

Function dengan Banyak Parameter

Boleh aja! Tapi jangan kebanyakan nanti susah dibaca.

JavaScript
function tambah(a, b, c) {
  return a + b + c;
}

console.log(tambah(1, 2, 3)); // 6

Kalau lebih dari 3–4 parameter, pertimbangkan pakai object sebagai pengganti.


Function Expression di JavaScript

Apa itu Function Expression?

Ini cara lain bikin function: simpan langsung ke variabel.

JavaScript
const sapaLagi = function() {
  console.log("Halo lagi, Bos!");
};

Nama function-nya nggak wajib—jadi ini sering disebut anonymous function.

Menyimpan Function ke dalam Variabel

Karena disimpan di variabel, kamu bisa:

  • Lewatkan sebagai argumen ke function lain
  • Ubah nilainya nanti
  • Simpan di array atau object

Contoh:

JavaScript
const operasi = {
  tambah: function(a, b) { return a + b; },
  kurang: function(a, b) { return a - b; }
};

console.log(operasi.tambah(10, 5)); // 15

Powerful, kan?

Anonymous Function

Function tanpa nama. Berguna banget buat callback:

JavaScript
setTimeout(function() {
  console.log("Aku muncul setelah 2 detik!");
}, 2000);

Perbedaan Function Declaration dan Expression

FiturFunction DeclarationFunction Expression
Hoisting✅ Bisa dipanggil sebelum definisi❌ Harus didefinisi dulu
NamaWajibOpsional (anonymous)
FleksibilitasKurang dinamisLebih fleksibel

Contoh hoisting:

JavaScript
sapaDeklarasi(); // ✅ Jalan!
function sapaDeklarasi() {
  console.log("Deklarasi duluan!");
}

sapaEkspresi(); // ❌ Error!
const sapaEkspresi = function() {
  console.log("Ekspresi harus sabar.");
};

Arrow Function di JavaScript

Sintaks Arrow Function

Arrow function (=>) adalah cara lebih ringkas bikin function:

JavaScript
const halo = () => {
  console.log("Halo dari arrow!");
};

Arrow Function dengan Parameter

Satu parameter? Kurung opsional:

JavaScript
const kuadrat = x => x * x;
console.log(kuadrat(4)); // 16

Lebih dari satu? Wajib pakai kurung:

JavaScript
const jumlah = (a, b) => a + b;

Arrow Function Satu Baris

Kalau cuma satu ekspresi, nggak perlu {} dan return:

JavaScript
const kali = (a, b) => a * b; // return otomatis!

Tapi hati-hati: kalau butuh logika kompleks (if, loop, dll), tetap pakai blok {}.

Perbedaan Arrow Function dan Function Biasa

Yang paling penting: arrow function nggak punya this sendiri!

Artinya, di dalam arrow function, this mengacu ke konteks luar—bukan objek pemanggil. Ini bikin arrow function kurang cocok buat method objek, tapi sempurna buat callback.

Contoh masalah:

JavaScript
const robot = {
  nama: "Jarvis",
  sapaBiasa: function() {
    console.log("Halo, aku " + this.nama); // ✅ this = robot
  },
  sapaArrow: () => {
    console.log("Halo, aku " + this.nama); // ❌ this = global/window!
  }
};

robot.sapaBiasa(); // Halo, aku Jarvis
robot.sapaArrow(); // Halo, aku undefined

Jadi, jangan asal ganti semua function jadi arrow—pilih sesuai konteks!


Bonus: Best Practice & Tips Menulis Function yang Ramah Pemula

Nama Function yang Jelas

Pakai nama deskriptif: hitungTotalBelanja() lebih baik daripada fungsi1().

Hindari Efek Samping (Side Effects)

Function idealnya pure: input → proses → output, tanpa ubah variabel luar atau DOM secara diam-diam.

Contoh pure function:

JavaScript
const tambah = (a, b) => a + b; // Aman, predictably!

Satu function = satu tugas. Kalau function-mu panjang banget atau punya banyak if, pertimbangkan untuk pecah jadi beberapa function kecil.

“Functions should do one thing. They should do it well. They should do it only.”
— Robert C. Martin (tapi dikasih versi santai oleh Jarvis)

Kamu udah punya senjata ampuh: function. Dengan ini, kode kamu jadi lebih rapi, reusable, dan mudah di-debug. Nggak perlu nulis ulang logika yang sama kayak orang nge-stuck di lagu “Despacito” versi remix ke-17.

Ingat: function itu teman. Dia nggak akan ninggalin kamu pas error malah bantu bikin error lebih mudah dilacak!

Terus eksplor, terus praktik. Dan kalau suatu hari kamu bikin function yang bisa bikin kopi otomatis… jangan lupa undang Jarvis ya.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *