Kecerdasan Buatan — 2026

Proyek ini mengimplementasikan dan membandingkan 5 algoritma machine learning untuk memprediksi nilai tukar USD/IDR. Dataset mencakup data historis harian dari 2001 hingga Oktober 2025, dengan 15 fitur teknikal termasuk lag features dan rolling statistics.

🐍 Python 3.11 🌶 Flask 2.3 🧠 TensorFlow 2.13 🔬 scikit-learn 🐼 pandas 🔢 numpy 🚀 Railway 🦄 gunicorn
Fitur Platform
🔮
Prediksi Multi-Model
5 model ML berjalan paralel untuk setiap prediksi, memberikan perspektif komparatif yang komprehensif.
📅
Dukungan Tanggal Fleksibel
Mendukung prediksi tanggal historis (2001–2025) dan tanggal masa depan (2026+) menggunakan fitur terbaru sebagai basis.
📊
Komparasi Metrik
Halaman komparasi menampilkan MAE, RMSE, dan R² untuk semua model dengan visualisasi bar chart.
🎯
Identifikasi Rezim Pasar
K-Means clustering mengidentifikasi kondisi pasar saat ini: stabil, volatile, tren naik, atau ekstrem.
Deskripsi Algoritma
📈
Linear Regression
Model baseline statistik. Cocok untuk pemahaman hubungan linier antara fitur tanggal dan nilai tukar.
🧠
Artificial Neural Network
Arsitektur deep learning dengan 3 hidden layer, ReLU activation, dan dropout untuk regularisasi.
🔄
LSTM (Long Short-Term Memory)
Recurrent neural network yang dirancang untuk time-series. Memori jangka panjang menangkap pola musiman.
⚙️
Backpropagation Manual
Implementasi neural network dari scratch menggunakan numpy. Forward dan backward pass tanpa framework.
Fitur Input Model (15 Features)
day
month
year
dayofweek
lag_1
lag_3
lag_7
lag_14
lag_30
rolling_mean_7
rolling_mean_14
rolling_mean_30
rolling_std_7
rolling_std_14
rolling_std_30

Lag features menggunakan nilai kurs pada hari-hari sebelumnya (1, 3, 7, 14, 30 hari). Rolling statistics menghitung rata-rata dan standar deviasi pada window 7, 14, dan 30 hari. Semua fitur distandarisasi menggunakan StandardScaler sebelum dimasukkan ke model.

API Endpoints
EndpointMethodDeskripsi
/api/predictPOSTPrediksi berdasarkan tanggal atau fitur
/api/statusGETStatus semua model yang termuat
/api/latest_rateGETKurs terbaru dari dataset
/healthGETHealth check untuk Railway/deployment