KuloDev
1 Hari
0 XP
intermediate15 menitModul: 04-functions-modularity

Fungsi Murni (Pure Functions) & Efek Samping

Menulis kode yang mudah diprediksi, teruji (testable), dan bebas dari bug mutasi data global (Side Effects).

1. Dua Kriteria Fungsi Murni (Pure Function)

Fungsi Murni adalah fondasi dari paradigma Functional Programming (dan sangat krusial dalam library modern seperti React). Suatu fungsi dikatakan 'Pure' jika memenuhi dua syarat mutlak:

Kriteria Pure Function
1. **Deterministic (Deterministik)**: Diberikan input yang sama, fungsi SELALU mengembalikan output yang sama persis. 2. **No Side Effects (Tanpa Efek Samping)**: Tidak mengubah variabel di luar dirinya, tidak mengubah data input secara in-place (mutasi), dan tidak bergantung pada state eksternal (seperti waktu sekarang atau angka random).
Perbandingan Impure vs Pure Function
1// ❌ IMPURE FUNCTION (Mengubah array asli di luar & tidak murni)
2let keranjangGlobal = ["Buku"];
3function tambahItemImpure(item) {
4 keranjangGlobal.push(item); // Efek samping: merusak state luar
5}
6
7// ✅ PURE FUNCTION (Immutability: menghasilkan array baru tanpa merusak aslinya)
8function tambahItemPure(keranjang, itemBaru) {
9 return [...keranjang, itemBaru]; // Mengembalikan copy baru
10}
11
12const keranjangAwal = ["Buku"];
13const keranjangBaru = tambahItemPure(keranjangAwal, "Laptop");
14
15console.log(keranjangAwal); // ["Buku"] -> Tetap aman!
16console.log(keranjangBaru); // ["Buku", "Laptop"]
Kuis Pemahaman
+10 XP

Mengapa fungsi `function ambilWaktuSaatIni() { return new Date(); }` BUKAN merupakan Pure Function?

Selesaikan Materi Ini?

Dapatkan +25 XP dan simpan progres belajarmu.