Tentang Aplikasi
Informasi lengkap mengenai sistem, algoritma KNN, dan confusion matrix model
Sistem Deteksi Stunting Balita
Berbasis Web menggunakan KNN
Aplikasi web ini mengimplementasikan algoritma K-Nearest Neighbors (KNN) untuk mendeteksi status gizi balita. Dibangun dengan Flask (Python), dataset dari Kaggle, dan antarmuka Bootstrap 5 yang responsif.
Fitur Utama Aplikasi
Dashboard Informatif
Statistik model, distribusi kelas, cara kerja KNN, dan 2 chart interaktif.
Prediksi Stunting
Form input dengan validasi JavaScript dan Python, prediksi real-time menggunakan model KNN.
Eksplorasi Dataset
Preview 100 baris acak berimbang, statistik deskriptif, filter interaktif per label dan gender.
Visualisasi Data (6 Chart)
Donut, bar grouped/stacked, scatter plot, histogram interaktif, lengkap dengan interpretasi.
Mobile Responsive
Sidebar collapsible, layout Bootstrap 5 menyesuaikan semua ukuran layar.
Spesifikasi Teknis
| Backend | Python Flask 3.0 |
| Frontend | Bootstrap 5.3 |
| Algoritma ML | KNN (scikit-learn) |
| Dataset | Kaggle 121K rows |
| Preprocessing | LabelEncoding + MinMaxScaler |
| K Optimal | K = 4 (loop K=1 sampai 20) |
| Akurasi | 97.5% (data testing 20%) |
| Split Data | 80% training / 20% testing |
| Visualisasi | Chart.js 4.4 |
Teori Algoritma K-Nearest Neighbors (KNN)
Apa itu KNN?
K-Nearest Neighbors (KNN) adalah algoritma instance-based learning yang melakukan klasifikasi berdasarkan kedekatan data baru dengan data training yang sudah ada. KNN tidak membangun model eksplisit saat training karena ia menyimpan semua data training dan melakukan komputasi saat prediksi (lazy learner).
Keunggulan KNN
- Sederhana dan mudah dipahami
- Tidak membutuhkan proses training yang kompleks
- Efektif untuk data non-linear
- Dapat digunakan untuk klasifikasi maupun regresi
Kelemahan KNN
- Lambat pada dataset besar (hitung jarak ke semua titik)
- Sensitif terhadap skala fitur (perlu normalisasi)
- Bergantung pada pemilihan nilai K
- Sensitif terhadap outlier dan data tidak relevan
Formula Matematika
1. Jarak Euclidean (digunakan dalam sistem ini):
2. Jarak Manhattan:
3. Normalisasi MinMaxScaler:
Langkah-langkah KNN
- Tentukan nilai K (jumlah tetangga)
- Normalisasi semua fitur dengan MinMaxScaler
- Hitung jarak Euclidean ke semua data training
- Urutkan data berdasarkan jarak terkecil
- Ambil K data dengan jarak terkecil (tetangga)
- Voting mayoritas: kelas dengan suara terbanyak jadi hasil prediksi
Confusion Matrix Model KNN
Akurasi: 97.5%Confusion Matrix adalah tabel yang digunakan untuk mengevaluasi performa model klasifikasi. Setiap baris mewakili kelas aktual (data nyata), sedangkan setiap kolom mewakili kelas prediksi (hasil model KNN).
Kotak hijau pada diagonal menunjukkan prediksi yang benar (True Positive), sedangkan kotak oranye menunjukkan prediksi yang salah (misklasifikasi). Semakin banyak nilai di diagonal hijau dan semakin kecil nilai di kotak oranye, semakin baik performa model. Model ini diuji pada 2.000 baris data testing dengan hasil akurasi 97.5%.
| PREDIKSI MODEL | ||||
|---|---|---|---|---|
| Sev.Stunted | Stunted | Normal | Tinggi | |
| AKTUAL Sev.Stunted | 492 | 8 | 0 | 0 |
| AKTUAL Tinggi | 10 | 490 | 0 | 0 |
| AKTUAL Tinggi | 0 | 22 | 471 | 7 |
| AKTUAL Tinggi | 0 | 0 | 3 | 497 |
Ringkasan Performa per Kelas
Referensi dan Sumber
Stunting Toddler (Balita) Detection - 121K rows.
Sumber: Kaggle, dataset pertumbuhan balita Indonesia.
WHO Child Growth Standards - kurva pertumbuhan tinggi badan balita berdasarkan usia dan jenis kelamin.
Buka Kurva Tinggi WHO
Cover, T. dan Hart, P. (1967).
"Nearest Neighbor Pattern Classification."
IEEE Transactions on Information Theory.
Flask 3.0
scikit-learn 1.3
pandas 2.1
numpy 1.26
Chart.js 4.4
Bootstrap 5.3