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
IndeksJenis elemenNilai (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.