Pernah bikin fungsi tapi kamu gak tahu bakal ada berapa banyak data yang masuk? Misalnya, fungsi buat menjumlahkan angka, tapi user bisa masukin 2 angka, 5 angka, atau bahkan 100 angka. Di sinilah Rest Parameter jadi pahlawan!
🧩 Apa yang Akan Dipelajari
- Memahami perbedaan Rest Parameter vs Spread Operator.
- Cara menangkap banyak argumen dalam satu variabel Array.
- Menggabungkan parameter biasa dengan Rest Parameter.
- Tips menggunakan Rest Parameter di fungsi matematika.
⚙️ Persiapan
- Buka Console browser (F12).
- Pastikan kamu sudah paham materi Function dan Array dari bab sebelumnya.
🚀 Langkah-Langkah
1. Apa itu Rest Parameter?
Rest Parameter memungkinkan kita untuk mewakili jumlah argumen yang tidak terbatas sebagai sebuah Array. Tujuannya agar fungsi kita lebih fleksibel.
function cetakDaftar(...daftar) {
console.log(daftar);
}
cetakDaftar("Apel", "Mangga", "Jeruk");
// Hasil: ["Apel", "Mangga", "Jeruk"] (Jadi Array!)
2. Menjumlahkan Banyak Angka
Ini contoh paling populer. Kita bisa bikin fungsi hitung yang bisa nerima berapa pun angkanya.
function jumlahkanSemua(...angka) {
let total = 0;
for (let a of angka) {
total += a;
}
return total;
}
console.log(jumlahkanSemua(10, 20, 30)); // Hasil: 60
console.log(jumlahkanSemua(1, 2, 3, 4, 5)); // Hasil: 15
3. Digabung dengan Parameter Biasa
Kamu bisa menaruh parameter biasa di awal, lalu sisanya ditampung oleh Rest Parameter. Tapi ingat, Rest Parameter harus selalu ada di posisi paling terakhir.
function pemenangLomba(juara1, juara2, ...pesertaLainnya) {
console.log("Juara 1: " + juara1);
console.log("Juara 2: " + juara2);
console.log("Peserta lainnya: ", pesertaLainnya);
}
pemenangLomba("Kay", "Shala", "Budi", "Sena", "Andi");
// "Budi", "Sena", "Andi" bakal masuk ke array pesertaLainnya.
4. Beda Rest vs Spread (Biar Gak Bingung!)
- Spread (
...): Memecah Array jadi elemen individu. (Biasanya saat panggil fungsi atau buat array baru). - Rest (
...): Mengumpulkan elemen individu jadi Array. (Biasanya ada di dalam kurung parameter fungsi).
💡 Tips Tambahan
- Satu Fungsi, Satu Rest: Kamu gak boleh punya dua Rest Parameter dalam satu fungsi. Cukup satu saja dan taruh di akhir.
- Pengganti
arguments: Dulu orang pakai kata kunciarguments, tapi itu bukan array beneran. Sekarang, Rest Parameter jauh lebih disukai karena hasilnya adalah Array asli yang bisa langsung di-looping atau di-map.
❗ Troubleshooting
Masalah: Muncul error Rest parameter must be last formal parameter.
Solusi: Pastikan ...variabel kamu ada di paling kanan dalam kurung fungsi.
- Salah:
function tes(...sisa, nama) {} - Benar:
function tes(nama, ...sisa) {}
🎯 Kesimpulan
Rest Parameter adalah cara keren buat bikin fungsi yang "tahan banting" terhadap jumlah data yang masuk. Dengan tiga titik ini, semua argumen sisa bakal otomatis dibungkus jadi Array yang rapi.