dasarfungsiparameterPemula3 mnt baca

Parameter dan Argumen

Memberi input ke fungsi lewat parameter, memahami argumen, default parameter, dan rest parameter.

Parameter vs argumen

Parameter adalah "slot" input yang dideklarasikan saat membuat fungsi. Argumen adalah nilai nyata yang dikirim saat fungsi dipanggil. Analoginya: parameter seperti kolom isian di formulir, argumen seperti tulisan yang kamu isi di kolom itu.

javascript
function sapa(nama) { // nama = parameter
  console.log("Halo, " + nama + "!");
}

sapa("Rizky"); // "Rizky" = argumen
sapa("Sinta"); // fungsi sama, input beda

Banyak parameter

Fungsi bisa menerima banyak parameter, dipisah koma. Urutannya penting:

javascript
function tambah(a, b) {
  return a + b;
}
console.log(tambah(3, 4)); // 7
console.log(tambah(10, 20)); // 30

Default parameter

Kalau argumen tidak dikirim, parameter bisa punya nilai default agar fungsi tetap berjalan:

javascript
function sapa(nama = "tamu") {
  console.log("Halo, " + nama + "!");
}
sapa(); // "Halo, tamu!"
sapa("Rizky"); // "Halo, Rizky!"

Ini berguna untuk opsi yang sifatnya opsional, misalnya konfigurasi dengan nilai umum.

Parameter tidak terbatas dengan rest

Tidak tahu berapa banyak argumen yang akan datang? Pakai rest parameter (tiga titik):

javascript
function jumlahkan(...angka) {
  let total = 0;
  for (let n of angka) total += n;
  return total;
}
console.log(jumlahkan(1, 2, 3)); // 6
console.log(jumlahkan(5, 5, 5, 5)); // 20

Rest mengumpulkan semua argumen sisa menjadi satu array.

Catatan teknis: Kalau argumen kurang dari jumlah parameter, parameter yang kosong bernilai undefined. Ini sering jadi sumber NaN misterius: tambah(5) menghasilkan 5 + undefined = NaN. Default parameter atau validasi input bisa mencegahnya.

arguments: cara lama

Sebelum rest parameter ada, fungsi memakai object khusus bernama arguments untuk mengakses semua argumen:

javascript
function lama() {
  console.log(arguments.length);
  console.log(arguments[0]);
}
lama("a", "b", "c"); // 3, lalu "a"

arguments terlihat seperti array tapi bukan array asli (tidak punya map atau forEach). Di kode modern, pakai rest parameter (...args) yang menghasilkan array beneran dan lebih jelas dibaca.

javascript
function modern(...args) {
  return args.map(a => a * 2);
}
console.log(modern(1, 2, 3)); // [2, 4, 6]

Kamu cukup tahu arguments ada karena masih muncul di kode lama dan tutorial lama. Untuk kode baru, selalu pakai rest parameter.

Kesimpulan

Parameter membuat fungsi fleksibel: satu fungsi, banyak kemungkinan input. Kuasai default dan rest parameter karena keduanya membuat fungsi lebih tahan terhadap variasi pemakaian.