MODUL PRAKTIKUM · SOAL 03
Pembersihan & Normalisasi Data
Menangani missing value dengan mean imputation lalu mengubah skala nilai menggunakan Min-Max normalization.
03/ 05
Hasil proses data
Nilai kosong ditandai sebagai missing value, lalu diganti menggunakan mean dari nilai valid.
Mean nilai valid82,50tanpa null dan string kosong
Nilai minimum65,00setelah imputasi
Nilai maksimum100,00setelah imputasi
| Indeks | Data awal | Status | Setelah imputasi | Min-Max (0–1) |
|---|---|---|---|---|
| 1 | 80 | Valid | 80,00 | 0,4286 |
| 2 | null | Diimputasi | 82,50 | 0,5000 |
| 3 | 75 | Valid | 75,00 | 0,2857 |
| 4 | "" (kosong) | Diimputasi | 82,50 | 0,5000 |
| 5 | 90 | Valid | 90,00 | 0,7143 |
| 6 | null | Diimputasi | 82,50 | 0,5000 |
| 7 | 65 | Valid | 65,00 | 0,0000 |
| 8 | 85 | Valid | 85,00 | 0,5714 |
| 9 | 100 | Valid | 100,00 | 1,0000 |
Kode PHP Native
Rumus normalisasi Min-Max: (x − nilai minimum) / (nilai maksimum − nilai minimum).
$data = [80, null, 75, "", 90, null, 65, 85, 100];
// Ambil nilai valid untuk menghitung mean
$valid = array_filter($data, fn($v) =>
$v !== null && $v !== "" && is_numeric($v)
);
$mean = array_sum($valid) / count($valid);
// Ganti null dan string kosong dengan mean
$clean = array_map(fn($v) =>
($v === null || $v === "") ? $mean : (float)$v,
$data
);
// Normalisasi Min-Max ke rentang 0 sampai 1
$min = min($clean);
$max = max($clean);
$normalized = array_map(fn($x) =>
($max == $min) ? 0 : ($x - $min) / ($max - $min),
$clean
);
Interpretasi: Nilai kosong diganti dengan rata-rata nilai valid, yaitu 82,50. Setelah normalisasi, nilai minimum menjadi 0 dan nilai maksimum menjadi 1.