Menambahkan kecerdasan prediktif ke sistem IoT: predictive maintenance yang memperkirakan kegagalan sebelum terjadi, pipeline machine learning untuk data sensor, streaming ML untuk keputusan real-time, serta praktik membangun model prediksi sederhana.

Di episode 12 kita mendeteksi anomali dengan aturan statistik, dan di episode 13 kita menjalankan ML di perangkat. Episode ini menggabungkan keduanya ke level strategi: memprediksi masa depan — kapan mesin akan rusak, berapa sisa umur komponen, kapan perawatan paling tepat.
Mengapa prediktif adalah nilai tertinggi IoT? Karena predictive maintenance mengubah biaya dari reaktif (mesin rusak, produksi berhenti) dan preventif (ganti part secara terjadwal walau masih sehat) menjadi prediktif (ganti tepat saat dibutuhkan). Di industri, satu jam downtime bisa bernilai ratusan juta rupiah.
Predictive maintenance (PdM) menggunakan data untuk memperkirakan kegagalan sebelum terjadi. Alurnya:
Sensor (getaran, suhu, arus) → riwayat kegagalan (label)
→ feature engineering → training model
→ deploy → skor risiko real-time per perangkat
→ alert saat risiko melewati ambangPerbandingan strategi perawatan:
| Strategi | Kapan | Biaya | Risiko |
|---|---|---|---|
| Reaktif | Setelah rusak | Downtime besar | Tertinggi |
| Preventif | Terjadwal tetap | Over-maintenance | Sedang |
| Prediktif | Berdasarkan data | Optimal | Terkendali |
Kunci PdM: data kegagalan historis + label. Tanpa riwayat "mesin ini rusak tanggal X", model tidak punya target untuk belajar.
Pipeline ML IoT berbeda dari ML web karena datanya time series dan distribusi antar perangkat:
Telemetry → feature extraction (rolling window)
→ training (offline, data historis)
→ deploy model → scoring (real-time)
→ alert/action → feedback (data baru masuk training)| Tahap | Tugas | Contoh Tools |
|---|---|---|
| Ingestion | Kumpulkan telemetry | Pipeline episode 8 |
| Feature engineering | Rolling mean, std, slope | Python/pandas |
| Training | Latih model klasifikasi/regresi | scikit-learn, XGBoost |
| Deploy | Sajikan model untuk scoring | API/Lambda, edge (episode 13) |
| Monitoring | Pantau drift & akurasi | Episode 17/24 |
Studi kasus: memprediksi risiko kegagalan dari suhu dan getaran mesin. Fitur dari rolling window:
import pandas as pd
def extract_features(df, window=60):
df = df.set_index("ts").sort_index()
feats = df.groupby("device_id")["vibration"].rolling(window).agg(
["mean", "std", "min", "max"]
).reset_index()
feats["temp_mean"] = (
df.groupby("device_id")["temperature"].rolling(window).mean().values
)
return feats.dropna()Fitur ini menangkap pola: getaran yang meningkat bertahap dan lebih bervariasi adalah tanda umum ausnya komponen — jauh sebelum kegagalan nyata.
from sklearn.ensemble import RandomForestClassifier
# X: fitur rolling (mean, std, max getaran, suhu)
# y: 1 jika mesin gagal dalam 24 jam ke depan, 0 jika aman
model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X_train, y_train)
print("akurasi:", model.score(X_test, y_test))akurasi: 0.91Akurasi 91% di test set adalah titik awal yang baik — tapi akurasi bukan segalanya untuk PdM (lihat pitfalls di bawah).
Model disajikan sebagai API, dan setiap batch telemetry diberi skor risiko:
import joblib
import json
model = joblib.load("failure_model.joblib")
def score_device(features) -> str:
risk = model.predict_proba([features])[0][1] # probabilitas gagal
if risk > 0.8:
return "KRITIS - jadwalkan perawatan"
if risk > 0.5:
return "WASPADA - perketat monitoring"
return "AMAN"Output alert dipublish ke topik MQTT dan ditampilkan di dashboard fleet (episode 9/12).
Untuk keputusan yang butuh respons cepat, model berjalan streaming — setiap batch data langsung diskor tanpa menunggu batch besar:
Telemetry → window 5 menit → extract features → score → alert
(semua otomatis, tanpa batch)Di cloud, ini diimplementasikan dengan Kafka + consumer yang menjalankan model per window (pola episode 21). Di edge, model kecil dideploy ke perangkat (episode 13) untuk deteksi instan saat sinyal putus.
Important
Untuk predictive maintenance, jangan pakai akurasi sebagai satu-satunya metrik. Karena kegagalan itu langka, model yang selalu menjawab "aman" bisa punya akurasi 99%. Gunakan precision, recall, dan F1 untuk kelas kegagalan — kesalahan prediksi yang terlewat (false negative) adalah yang paling mahal di dunia nyata.
Inti yang harus dibawa pulang:
Di episode 24 selanjutnya, kita akan memodernisasi infrastruktur: IoT + cloud-native — serverless IoT, arsitektur event-driven, dan Kubernetes di edge — plus praktik membangun komponen cloud-native untuk sistem IoT kalian. Dari server biasa menuju otomasi penuh!