Kembali ke Projects

Prediksi Diabetes

A Machine Learning-based diabetes risk prediction website using 5 key health indicators. This project integrates the Scikit-Learn model with a FastAPI backend and a modern React frontend.

NextJSFastAPIScikit-LearnPandasNumpyJoblibDocker

Prediksi Diabetes Fullstack App

Aplikasi web fullstack untuk melakukan prediksi risiko diabetes berbasis Machine Learning menggunakan 5 indikator kesehatan utama. Proyek ini mengintegrasikan model Scikit-Learn dengan backend FastAPI dan frontend React modern.

DISCLAIMER: Aplikasi ini adalah alat bantu komputasi dan bukan pengganti diagnosa medis profesional. Hasil prediksi hanya untuk tujuan edukasi dan screening awal.

Halaman Utama

image image

Halaman Perhitungan & Hasil

image image

🌟 Fitur Utama

  • Prediksi Real-time: Menggunakan model Machine Learning (Random Forest/Logistic Regression - sesuaikan dengan model training Anda) yang telah dilatih untuk memberikan hasil instan beserta tingkat kepercayaan (confidence score).
  • Secure Authentication: Sistem login dan register pengguna menggunakan JWT (JSON Web Tokens) dan hashing password (Bcrypt).
  • Riwayat Prediksi: Menyimpan log hasil prediksi pengguna ke dalam database untuk pemantauan tren kesehatan pribadi.
  • Manajemen Data: Pengguna dapat melihat dan menghapus riwayat prediksi mereka sendiri.
  • Responsive UI: Antarmuka modern yang dibangun dengan React + Tailwind CSS.

šŸ›  Teknologi yang Digunakan

Backend (API)

  • Language: Python 3.10+
  • Framework: FastAPI
  • ML Libraries: Scikit-Learn, Pandas, NumPy, Joblib
  • Database ORM: SQLAlchemy
  • Authentication: Python-Jose (JWT), Passlib (Bcrypt)

Frontend (Client)

  • Framework: React 19 (via Vite)
  • Styling: Tailwind CSS
  • HTTP Client: Axios
  • Routing: React Router DOM

šŸ“‚ Struktur Project

.
ā”œā”€ā”€ backend/                # Kode sumber API (FastAPI)
│   ā”œā”€ā”€ models/             # File model .joblib dan scaler
│   ā”œā”€ā”€ main.py             # Entry point aplikasi
│   ā”œā”€ā”€ diabetes_app.db     # SQLite Database (jika mode lokal)
│   └── requirements.txt    # Daftar dependensi Python
ā”œā”€ā”€ frontend/               # Kode sumber Antarmuka (React)
│   ā”œā”€ā”€ src/                # Komponen dan Logika React
│   └── package.json        # Dependensi Node.js
└── ml_training/            # Notebook dan script training model

šŸš€ Prasyarat & Instalasi

Pastikan Anda telah menginstal:

  • Python 3.10 atau lebih baru
  • Node.js 18 atau lebih baru
  • Git

1. Setup Backend

Masuk ke direktori backend dan buat virtual environment:

cd backend
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate

Instal dependensi:

pip install -r requirements.txt

Buat file .env di dalam folder backend/ dan isi konfigurasi berikut:

SECRET_KEY=rahasia_super_aman_ganti_ini
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# Ganti user:password@host/dbname jika menggunakan MySQL/PostgreSQL
# Jika kosong atau tidak ada, default menggunakan SQLite
DATABASE_URL=sqlite:///./diabetes_app.db
MODEL_PATH=./models/diabetes_model_5_fitur.joblib
SCALER_PATH=./models/diabetes_scaler_5_fitur.joblib

Jalankan server backend:

# Menjalankan server pada port 8000
python main.py

2. Setup Frontend

Buka terminal baru, masuk ke direktori frontend:

cd frontend
# Instal dependensi Node.js:
npm install
# Jalankan server development:
npm run dev

Akses aplikasi di browser melalui URL yang muncul (biasanya http://localhost:5173).

Setup via Docker

Jalankan perintah di directory PredikriDiabetes/

docker compose up --build

Cara Penggunaan

  • 1. Registrasi: Buat akun baru pada halaman Sign Up.
  • 2. Login: Masuk menggunakan username dan password yang telah dibuat.
  • 3. Prediksi: _ Masuk ke menu Dashboard/Predict. _ Isi data kesehatan: Kehamilan (Pregnancies), Glukosa, Tekanan Darah, BMI, dan Usia. * Klik tombol "Prediksi".
  • 4. Lihat Hasil: Sistem akan menampilkan apakah Anda berisiko Diabetes atau tidak beserta skor keyakinannya.
  • 5.History: Lihat riwayat prediksi Anda di halaman Profile/History.

šŸ¤ Kontribusi

Kontribusi sangat diterima! Silakan ikuti langkah berikut:

    1. Fork repository ini.
    1. Buat branch fitur baru (git checkout -b fitur-keren).
    1. Commit perubahan Anda (git commit -m 'Menambahkan fitur keren').
    1. Push ke branch tersebut (git push origin fitur-keren).
    1. Buat Pull Request.

šŸ“„ Lisensi

Didistribusikan di bawah Lisensi MIT. Lihat file LICENSE untuk informasi lebih lanjut.