ANNAS TRI WIDAGDO/PORTFOLIO · 2026
VOL. 01 // TECHNICAL ARCHIVE
■annastriwidagdo.me
SOFTWARE ENGINEER·FULL-STACK WEB DEVELOPER·MACHINE LEARNING ENGINEER
ENTRY 001MEMBUKA ARSIP TEKNIS00% · 01 / 01
Lewati ke konten
■annastriwidagdo.me
  • 01Beranda
  • 02Tentang
  • 03Proyek
  • 04Blog●
  • 05Kontak
LANGEN/ID
■annastriwidagdo.me
  • Software Engineer
  • Full-Stack Web Developer
  • Machine Learning Engineer

JAKARTA, INDONESIA · UTC+7

EMAILannastriw6@gmail.com↗ (dibuka di tab baru)LINKEDIN/in/annastriw↗ (dibuka di tab baru)GITHUB@annastriw↗ (dibuka di tab baru)CONTACTBuka Kontak→

© 2026 Annas Tri Widagdo. Drafted in grids, shipped in code.

←Kembali ke indeksBLOG / 02
[CATATAN // 02]/Machine Learning Terapan·3 menit baca

Mengintegrasikan Machine Learning ke dalam Aplikasi Web

Tinjauan praktis tentang menghubungkan iHealth Edu, data kesehatan pasien, dan purwarupa prediksi risiko Random Forest yang disajikan terpisah tanpa mengaburkan batas klinis.

Ditulis olehAnnas Tri Widagdo
  • #Random Forest
  • #Flask
  • #Laravel
  • #Next.js
  • #Docker
[01]

Mempersiapkan Dataset untuk Machine Learning

Membangun sarana prediksi risiko kesehatan yang praktis dimulai dari pengolahan data yang bersih. Proyek ini menggunakan dataset publik berisi 158.355 catatan kesehatan dengan 22 kolom, mencakup 21 indikator demografis, klinis, dan gaya hidup dengan target biner heart_attack. Fitur kategorikal di-encode, dan nilai numerik dinormalisasi menggunakan MinMaxScaler agar setiap fitur memiliki bobot yang seimbang selama pelatihan model.

Untuk mencegah kebocoran data (data leakage), dataset dibagi 80:20 (126.684 baris training dan 31.671 baris testing) menggunakan stratified sampling. SMOTE hanya diterapkan pada data training untuk menangani ketidakseimbangan kelas sehingga seimbang menjadi 151.766 sampel, sementara data testing tetap murni. Hyperparameter tuning dengan RandomizedSearchCV mengevaluasi F1-Score pada empat algoritma: Random Forest, Linear SVM, K-Nearest Neighbors, dan Logistic Regression.

Dataset
158,355 rows / 22 columns
Pembagian stratified
80:20
Accuracy Random Forest
71.93%
ROC-AUC Random Forest
0.8015
Output terdokumentasi dari purwarupa prediksi risiko serangan jantung
Visual evaluasi yang menunjukkan output inferensi prediksi risiko dan metrik fitur terdokumentasi.
[02]

Menyajikan Prediksi Melalui Flask API Mandiri

  1. 01Data Kesehatan Pasien di iHealth Edu
  2. 02Backend Aplikasi Laravel
  3. 03Microservice Flask REST API
  4. 04Artefak Preprocessing Terserialisasi
  5. 05Inferensi Random Forest
  6. 06Payload Risiko Terstruktur

Pada iHealth Edu yang dikembangkan bersama Puskesmas Padangsari di Semarang, fitur screening pasien, modul edukasi, rekam medis, dan perangkat IoT ESP32 berada di dalam aplikasi web Next.js dan Laravel. Alih-alih menjalankan model Python langsung di server web utama, alur machine learning dipisahkan ke dalam microservice Flask REST API mandiri.

Menggunakan Joblib, artefak model Random Forest (.pkl), MinMaxScaler, dan kamus pemetaan fitur disimpan bersama. Langkah ini memastikan data pasien yang masuk secara real-time mengalami transformasi matematis yang persis sama dengan saat pelatihan offline. Layanan Flask dikemas menggunakan Docker dan di-deploy pada server Linux Ubuntu.

[03]

Menerjemahkan Probabilitas Menjadi Pendukung Keputusan

Random Forest dipilih untuk purwarupa ini karena meraih akurasi terdokumentasi tertinggi sebesar 71,93% dan ROC-AUC tertinggi sebesar 0,8015 di antara algoritma yang dibandingkan, meskipun Logistic Regression memiliki F1 tertinggi (0,6618) dan KNN memiliki recall tertinggi (70,40%).

Saat tenaga kesehatan yang berwenang memasukkan data pemeriksaan pasien, API Flask mengembalikan respons JSON terstruktur yang memuat kategori risiko prediksi, probabilitas numerik, faktor risiko pendukung berbasis aturan, dan lima feature importance global teratas. Frontend menampilkan indikator ini sebagai konteks visual yang informatif di dalam riwayat kesehatan pasien.

Antarmuka iHealth Edu untuk pasien yang terdokumentasi
Workflow prediksi berada di dalam sistem pasien, screening, edukasi, dan catatan kesehatan yang lebih luas.
[04]

Batasan Medis yang Jelas dan Dampak Praktis

Batasan kesehatan

Implementasi ini adalah purwarupa prediksi risiko dan pendukung keputusan. Implementasi ini bukan diagnosis klinis, tidak menggantikan tenaga kesehatan, dan tidak memiliki validasi klinis yang terdokumentasi.

  • Sajikan hasil prediksi dan skor probabilitas sebagai indikator statistik, bukan diagnosis medis.
  • Tampilkan faktor risiko berbasis aturan sebagai referensi pendukung, bukan penyebab mutlak.
  • Posisikan feature importance teratas sebagai wawasan perilaku model global, bukan saran medis individual.
  • Lindungi data rekam medis pasien melalui kontrol akses berbasis peran yang ketat.

Penerapan machine learning di bidang kesehatan paling bermanfaat saat batasannya disampaikan secara transparan. Dengan memadukan pelatihan model yang terstruktur dan penyajian pendukung keputusan yang jelas, platform ini memberikan indikator risiko awal yang bermanfaat sambil tetap menempatkan keputusan klinis pada tenaga medis profesional.

Pengalaman proyek terkait

iHealth Edu↗Machine Learning Model for Heart Attack Risk Prediction↗
← ARTIKEL SEBELUMNYAMembangun ERP Multi-Cabang dari Workflow hingga Production
Semua Artikel
ARTIKEL BERIKUTNYA →Dari Android Print Framework ke ESC/POS