Pure function

Fungsi pure punya dua sifat: hasilnya hanya bergantung pada argumennya, dan ia tidak mengubah apa pun di luar dirinya. Fungsi pure mudah diuji (tanpa setup), mudah dipahami, dan aman dipakai ulang. Fungsi yang memutasi argumennya adalah sumber bug yang sulit dilacak. Fungsi yang menyentuh jaringan, waktu, atau DOM tidak mungkin pure — pisahkan bagian itu ke tepi program dan biarkan inti logikanya tetap pure agar mudah diuji.

👀 Contoh dulu

// ❌ TIDAK pure: mengubah object milik pemanggil
function naikkanHargaBuruk(p) {
  p.harga = p.harga + 1000;
  return p;
}

// ✅ pure: object baru, aslinya utuh
function naikkanHarga(p) {
  return { ...p, harga: p.harga + 1000 };
}

const produk = { nama: 'Kopi', harga: 5000 };
const baru = naikkanHarga(produk);
console.log(produk.harga, baru.harga);

Hasilnya: 5000 6000

💡 Fungsi pure: input sama → output selalu sama, dan tidak menyentuh apa pun di luar dirinya. Mudah diuji, aman dipakai ulang.

📝 Sekarang giliranmu

Ubah tambahItem menjadi pure: jangan push ke array asli, tapi kembalikan array baru memakai spread. Tampilkan array asli dan hasilnya untuk membuktikan aslinya utuh.

Preview