- Esteria Rohanauli Sidauruk (122450025)
- Fadhil Fitra Wijaya (122450082)
- Baruna Abirawa (122450097)
- Rendra Eka Prayoga (122450112)
- Bastian Heskia Silaban (122450130)
Proyek ini adalah implementasi sistem prediksi harga rumah menggunakan Machine Learning yang di-deploy menggunakan Docker. Proyek ini terdiri dari dua komponen utama:
- Backend API: Server yang memproses data dan memberikan prediksi harga.
- Frontend: Antarmuka pengguna berbasis Web (Streamlit) untuk kemudahan penggunaan.
Sebelum memulai, pastikan komputer Anda telah terinstal:
- Git
- Docker Desktop (Pastikan statusnya Running)
Ikuti langkah-langkah berikut untuk menjalankan aplikasi ini di komputer lokal Anda.
Buka Terminal (Mac/Linux) atau Command Prompt/PowerShell (Windows) dan jalankan perintah berikut untuk mengunduh proyek:
# Clone repository ke folder bernama 'ML_Project_Rumah'
git clone https://github.com/sains-data/MLOPS-8-RA.git ML_Project_RumahPindah ke dalam folder yang baru saja dibuat:
cd ML_Project_RumahKita tidak perlu menginstal Python atau library secara manual. Docker akan menyiapkan semuanya untuk Anda. Jalankan perintah ini:
docker compose up -dup: Membangun dan menjalankan container.-d: Menjalankan di latar belakang (detached mode) agar terminal tidak terkunci.
Pastikan kedua layanan (house_price_api dan house_price_frontend) berjalan dengan baik:
docker compose psPastikan status pada kolom STATUS adalah Up.
Setelah langkah di atas berhasil, Anda dapat mengakses aplikasi melalui browser.
Gunakan ini untuk mencoba prediksi secara visual.
- URL: http://localhost:8501
- Cara Pakai: Masukkan data fitur rumah (luas, jumlah kamar, lokasi, dll) pada form yang tersedia, lalu klik tombol "Prediksi".
Gunakan ini jika Anda ingin mengintegrasikan model dengan aplikasi lain atau melakukan testing via Postman/cURL.
- Base URL: http://localhost:5000
- Contoh Request (cURL):
curl -X POST http://localhost:5000/predict \
-H "Content-Type: application/json" \
-d '{"luas_tanah": 100, "kamar_tidur": 3, "kamar_mandi": 2}'Jika terjadi error atau Anda ingin melihat apa yang terjadi di belakang layar:
# Melihat log backend
docker compose logs -f house_price_api
# Melihat log frontend
docker compose logs -f house_price_frontendJika Anda sudah selesai menggunakan aplikasi, matikan container untuk menghemat resource komputer:
docker compose downProyek ini dilengkapi dengan pipeline CI/CD yang berjalan otomatis setiap minggu (Weekly Retrain).
- Jadwal: Setiap Minggu pukul 00:00 UTC (07:00 WIB).
- Proses:
- Scraping: Mengambil data properti terbaru dari internet.
- Validasi: Memastikan kualitas data sebelum masuk ke training.
- Training: Melatih ulang model dengan data gabungan (lama + baru).
- Auto-Push: Menyimpan model terbaru (
.pkl) dan metrics kembali ke GitHub.
Sistem menggunakan dua model sekaligus:
- Model 1 (Linear Regression): Model standar.
- Model 2 (Random Forest): Model cadangan (Backup).
- Mekanisme: Saat prediksi, sistem akan otomatis memilih model dengan akurasi (R2 Score) tertinggi berdasarkan training terakhir.
Dilengkapi dengan Evidently AI untuk mendeteksi perubahan pola data (Data Drift).
- Membandingkan data yang diinput user saat ini dengan data training.
- Memberikan peringatan jika data lapangan mulai melenceng jauh dari data training.
Setiap prediksi yang masuk dicatat (log) untuk keperluan audit dan monitoring performa, dapat diakses via API endpoint /logs atau menu Admin di Frontend.
├── .github/workflows/ # CI/CD Pipeline Configuration
├── api/ # Backend Flask API
│ ├── app.py # Main API Logic
│ ├── data_preparation.py # Data Validation Script
│ └── models/ # Trained Models (.pkl) & Metrics
├── frontend/ # Frontend Streamlit
├── config/ # Konfigurasi parameter (params.yaml)
├── data/ # Dataset (Raw & Processed)
├── scripts/ # Utility Scripts
│ ├── scraper.py # Web Scraper Rumah123
│ └── train.py # Training Pipeline
└── docker-compose.yml # Konfigurasi orkestrasi container
Tim MLOps - Kelompok 8