3. Pembersihan & Transformasi Data
Nilai kosong diisi dengan rata-rata, lalu seluruh nilai diskalakan ke rentang 0 sampai 1.
Perintah soal
Diberikan array 1 dimensi berisi nilai ujian numerik: [80, null, 75, "", 90, null, 65, 85, 100]. Buat skrip PHP Native untuk:
- Menghitung nilai rata-rata (mean) dari nilai-nilai yang valid
- Melakukan imputasi (mengganti) semua elemen kosong (null atau "") dengan nilai rata-rata tersebut
- Melakukan transformasi normalisasi Min-Max pada seluruh array baru tersebut ke dalam rentang 0 hingga 1
Total elemen
9
Nilai valid
6
Nilai kosong
3
Mean (imputasi)
82,50
Hitung mean
Hanya nilai valid yang dijumlahkan, nilai kosong tidak ikut dihitung.
mean = 80 + 75 + 90 + 65 + 85 + 100
= 495 / 6
= 82,50
Imputasi
Elemen null dan "" diganti dengan nilai mean.
[80, 82.5, 75, 82.5, 90, 82.5, 65, 85, 100]
Normalisasi Min-Max
Min = 65, Max = 100.
x' = (x - 65) / (100 - 65) [0.4286, 0.5000, 0.2857, 0.5000, 0.7143, 0.5000, 0.0000, 0.5714, 1.0000]
Perbandingan data mentah, imputasi, dan normalisasi
Sel kuning adalah nilai hasil imputasi| Indeks | Data mentah | Setelah imputasi | Normalisasi (Min-Max) | Skala 0 sampai 1 |
|---|---|---|---|---|
| 0 | 80 | 80,00 | 0,4286 | |
| 1 | null | 82,50 | 0,5000 | |
| 2 | 75 | 75,00 | 0,2857 | |
| 3 | "" | 82,50 | 0,5000 | |
| 4 | 90 | 90,00 | 0,7143 | |
| 5 | null | 82,50 | 0,5000 | |
| 6 | 65 | 65,00 | 0,0000 | |
| 7 | 85 | 85,00 | 0,5714 | |
| 8 | 100 | 100,00 | 1,0000 |
Kelola elemen array nilai ujian (CRUD)
9 elemen
| Indeks | Jenis elemen | Nilai (jika angka) | Aksi |
|---|---|---|---|
| 0 | |||
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 |
Elemen baru ditambahkan di akhir array. Bila jenis bukan "Angka", kolom nilai diabaikan.