Aplikasi ini adalah sistem pakar inovatif yang menggabungkan teknologi chatbot dengan metode Certainty Factor (CF) untuk mendeteksi dan menilai risiko stunting pada anak. Sistem bekerja dengan cara:
- Pengumpulan Data: Pengguna memasukkan data dasar anak (tinggi, berat, usia, jenis kelamin)
- Penilaian Interaktif: Chatbot melakukan wawancara terstruktur tentang kondisi anak
- Analisis Pakar: Sistem memproses data menggunakan algoritma Certainty Factor dengan aturan yang ditentukan pakar
- Hasil: Memberikan penilaian risiko stunting dengan tingkat kepercayaan dan rekomendasi
Fitur Utama:
- Autentikasi pengguna yang aman melalui WhatsApp OTP
- Percakapan chatbot dinamis berdasarkan respon pengguna
- Perhitungan risiko stunting secara real-time
- Rekomendasi berbasis bukti
- Pelacakan riwayat yang komprehensif
Pengguna Target:
- Orang Tua/Wali
- Petugas Kesehatan
- Spesialis Perkembangan Anak
- Petugas Kesehatan Masyarakat
Aplikasi sistem pakar berbasis web yang mengimplementasikan mekanisme Certainty Factor untuk mendeteksi stunting pada anak melalui antarmuka chatbot interaktif.
Aplikasi ini dikembangkan sebagai bagian dari penelitian berjudul: "Inovasi Aplikasi Deteksi Stunting Menggunakan Chatbot Sebagai Strategi Mencapai Universal Health Coverage dalam SDGs"
- Autentikasi pengguna dengan verifikasi WhatsApp OTP
- Antarmuka chatbot interaktif untuk pengumpulan data
- Implementasi sistem pakar menggunakan Certainty Factor
- Analisis pengukuran fisik (tinggi, berat)
- Penilaian perilaku dan perkembangan
- Pelacakan riwayat detail
- Evaluasi risiko stunting komprehensif
- Rekomendasi profesional berdasarkan hasil
- Python 3.8 atau lebih tinggi
- MongoDB 4.4 atau lebih tinggi
- Framework web Flask
- Paket Python tambahan (lihat requirements.txt)
- Clone repositori
- Install dependensi:
pip install -r requirements.txt
- Install MongoDB di sistem Anda
- Buat database baru
- Perbarui string koneksi MongoDB di
config.py
:
self.MONGDB_URI = "mongodb://username:password@host:port/database"
- Siapkan layanan WhatsApp OTP
- Perbarui alamat server OTP di
config.py
:
self.SERVER_WA_OTP_ADDRESS = "http://your_otp_server:port"
- Generate kunci acak yang aman
- Perbarui secret key di
config.py
:
self.APP_SECRET = "your_secure_secret_key"
Aplikasi menggunakan WhatsApp OTP (One-Time Password) untuk verifikasi pengguna. Sistem ini memastikan registrasi dan autentikasi pengguna yang aman melalui pesan WhatsApp.
- Pengguna memasukkan detail registrasi
- Sistem menghasilkan OTP 6 digit
- OTP dikirim ke nomor WhatsApp pengguna
- Pengguna memasukkan OTP untuk verifikasi
- Akun diaktifkan setelah verifikasi berhasil
Hubungi pengembang untuk integrasi:
- Telepon: 082113791904
- Fitur:
- Pengiriman pesan WhatsApp otomatis
- Pembuatan dan validasi OTP
- Enkripsi pesan aman
- Perlindungan rate limiting
- Pemantauan percobaan gagal
Bangun sistem OTP sendiri menggunakan:
- WhatsApp Business API
- Bot WhatsApp Kustom
- Contoh implementasi: Go-OpenAI-WhatsApp-Bot
- Modifikasi yang diperlukan:
# Tambahkan pembuatan OTP # Tambahkan template pesan # Implementasikan endpoint verifikasi
- Masa Berlaku OTP: 10 menit
- Maksimum Percobaan: 3 kali
- Masa Jeda: 10 menit setelah percobaan gagal
- Rate Limiting berbasis IP
- Validasi Nomor Telepon
- Perlindungan Anti-Spam
Aplikasi menggunakan koleksi MongoDB berikut:
account
- Data autentikasi penggunauser_log
- Data sesi aktifuser_history
- Catatan riwayat penilaian
Sistem mengevaluasi risiko stunting menggunakan beberapa faktor:
-
Pengukuran Fisik (G1, G2)
- Rasio tinggi-untuk-usia
- Rasio berat-untuk-tinggi
-
Indikator Kesehatan (G3, G4)
- Perkembangan kognitif
- Kerentanan terhadap infeksi
-
Pola Pertumbuhan (G5)
- Perubahan komposisi tubuh
- Kecepatan pertumbuhan
-
Indikator Perilaku (G6-G9)
- Interaksi sosial
- Praktik pemberian makan
- Riwayat medis
Aturan-aturan yang digunakan dalam sistem ini tersimpan dalam format Excel (RULE_STUNTING_CRITERIA.xlsx) dengan struktur sebagai berikut:
-
Input Awal (G1-G2)
- G1: Tinggi Badan/Usia, Panjang Badan/Usia (CF: 1.0)
- G2: Berat Badan/Panjang Badan, Berat Badan/Tinggi Badan beberapa bulan terakhir (CF: 0.8)
-
Indikator Perkembangan (G3-G4)
- G3: Kemampuan Kognitif [Ya/Tidak] (CF: 0.6)
- G4: Riwayat penyakit infeksi (demam, muntah, diare) [Text] (CF: 0.6)
-
Indikator Fisik (G5-G6)
- G5: Proporsi tubuh (gemuk pendek) [5 opsi] (CF: 0.6)
- G6: Perilaku sosial (kontak mata) [5 opsi] (CF: 0.6)
-
Riwayat Kesehatan (G7-G9)
- G7: Anemia/TBC [Text] (CF: 0.6)
- G8: Riwayat ASI Eksklusif [Ya/Tidak] (CF: 0.6)
- G9: MPASI dini [Ya/Tidak] (CF: 0.6)
Uncertain Term | CF PAKAR |
---|---|
Definitely (Pasti) | 1.0 |
Almost Certainty (Hampir Pasti) | 0.8 |
Probably (Kemungkinan Besar) | 0.6 |
Maybe (Mungkin) | 0.4 |
Unknown (Tidak Tahu) | -0.2 to 0.2 |
Maybe Not (Mungkin Tidak) | -0.4 |
Probably Not (Kemungkinan Besar Tidak) | -0.6 |
Almost Certainly Not (Hampir Pasti Tidak) | -0.8 |
Definitely Not (Pasti Tidak) | -1.0 |
1. Perhitungan CF per Gejala:
CFGx = CF_user * CF_pakar
2. Kombinasi CF:
CF_combine1 (CF_gejala1, CF_gejala4) = CF_gejala1 + CF_gejala4 * (1 - CF_gejala1)
3. Kombinasi dengan CF Sebelumnya:
CF_combine2 (CF_old, CF_gejala2) = CF_old + CF_gejala2 * (1 - CF_old)
4. Urutan Evaluasi:
- Hitung CFG1 = CF_user * CF_pakar
- Hitung CFG4 = CF_user * CF_pakar
- Hitung CFG2 = CF_user * CF_pakar
- Kombinasikan menggunakan rumus CF_combine
Mulai aplikasi:
python app.py
Aplikasi akan tersedia di http://localhost:5000
- Selalu gunakan HTTPS di produksi
- Perbarui dependensi secara teratur
- Terapkan rate limiting untuk permintaan OTP
- Gunakan manajemen sesi yang aman
- Validasi semua input pengguna
- Fork repositori
- Buat branch fitur Anda
- Commit perubahan Anda
- Push ke branch
- Buat Pull Request baru
Untuk dukungan integrasi WhatsApp OTP atau pertanyaan, hubungi:
- Pengembang: 082113791904
- Alternatif: Bangun solusi kustom menggunakan contoh di Go-OpenAI-WhatsApp-Bot
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE untuk detail.