Membawa kecerdasan buatan ke jaringan nyata: memahami Self-Organizing Networks dan tiga kemampuannya, predictive maintenance berbasis data, arsitektur O-RAN dengan RIC dan xApp, serta praktik melatih model ML untuk prediksi anomali KPI cell dari data monitoring yang sudah kalian bangun

Setelah di episode 21 kita memetakan arah 6G — termasuk visi AI-native network — kini kita turun ke realitas yang sudah terjadi hari ini: AI/ML di jaringan telecom produksi. Bukan sekadar buzzword rapat direksi: operator kini menjalankan model ML untuk menyeimbangkan trafik, mendeteksi gangguan sebelum pelanggan sadar, dan menghemat energi ribuan site.
Mengapa episode ini strategis untuk karir kalian? Karena telecom adalah lingkungan ML yang luar biasa subur: data telemetri masif, pola berulang (hari kerja/akhir pekan), dan nilai ekonomis per-perbaikan tinggi. Engineer yang paham domain + bisa membangun pipeline ML adalah profil termahal di pasar — dan semua bahan latihannya sudah kalian miliki dari episode-episode sebelumnya.
SON adalah bentuk paling matang otomasi cerdas di RAN, didefinisikan sejak LTE. Tiga kemampuan intinya:
| Kemampuan | Fungsi | Contoh Nyata |
|---|---|---|
| Self-configuration | Site baru mengatur diri saat plug-in | ANR (Automatic Neighbor Relations): gNB belajar tetangga sendiri |
| Self-optimization | Menyetel parameter berkelanjutan | Mobility load balancing, tuning CIO/hysteresis |
| Self-healing | Pulih dari kegagalan | Cell outage detection & compensation |
Contoh favorit untuk memahami nilai SON: cell outage detection. Saat satu cell mati diam-diam (bukan alarm keras), sel-sel tetangga "merasakan" perubahan pola measurement report UE — model deteksi anomali menyimpulkan ada outage → kompensasi: tetangga menaikkan power/mengubah tilt menutup lubangnya. Pelanggan hampir tak merasakan apa pun.
Pergeseran paradigma operasional:
Reaktif : rusak → tiket → perbaiki (mahal, downtime besar)
Preventif : jadwal rutin ganti/periksa (boros, sering terlalu dini)
Prediktif : prediksi kegagalan dari data (tindakan tepat sebelum rusak)Sinyal fisik yang diprediksi model:
Model tipikalnya sederhana namun efektif: time-series anomaly detection (z-score rolling, Prophet, atau autoencoder). Kuncinya bukan algoritma canggih, tapi kualitas label historis — data gangguan masa lalu yang tertata.
Tip
Mulailah predictive maintenance dari aset dengan biaya kunjungan lapangan tertinggi: site remote. Satu prediksi benar yang mencegah trip helikopter/kapal sudah membayar seluruh proyek ML tahun itu.
O-RAN Alliance membuka RAN yang tadinya kotak hitam vendor menjadi arsitektur terbuka:
Konsep penting:
Bagi engineer, O-RAN menciptakan pekerjaan baru: pengembang xApp/rApp — kombinasi skill networking + software + ML yang persis seperti profil series ini.
Kita bangun end-to-end: dari data KPI (seperti episode 11) sampai alert prediktif.
import pandas as pd
df = pd.read_csv("kpi_cells.csv", parse_dates=["date"])
# kolom: date, cell_id, dl_prb_util, drop_rate, avg_sinr, active_ues
def features(g):
g["util_ma7"] = g.dl_prb_util.rolling(7).mean()
g["util_std7"] = g.dl_prb_util.rolling(7).std()
g["drop_ma3"] = g.drop_rate.rolling(3).mean()
return g
df = df.sort_values("date").groupby("cell_id", group_keys=False).apply(features)
df = df.dropna()
print(df[["util_ma7", "util_std7", "drop_ma3"]].describe().round(3))Fitur rolling mean/std menangkap dinamika mingguan — fitur domain-informed yang jauh lebih baik daripada raw values.
from sklearn.ensemble import IsolationForest
X = df[["util_ma7", "util_std7", "drop_ma3", "avg_sinr"]]
model = IsolationForest(n_estimators=200, contamination=0.02, random_state=42)
df["anomaly_score"] = -model.score_samples(X)
alerts = df[df.anomaly_score > df.anomaly_score.quantile(0.98)]
top = alerts.groupby("cell_id").anomaly_score.mean().nlargest(5)
print("Top cell bermasalah:\n", top)IsolationForest unggul sebagai starting point: tak butuh label, robust, dan output score-nya bisa diranking untuk triase NOC.
Model tanpa validasi bisnis hanya mainan. Uji tiga hal:
# 1. Precision manual: sampling alert, cek apakah benar-benar bermasalah
sampled = alerts.sample(min(20, len(alerts)), random_state=1)
print(sampled[["cell_id", "date", "util_ma7", "drop_ma3"]])
# 2. Lead time: bandingkan tanggal alert vs tanggal tiket OSS per cell
# 3. False positive pada cell sehat
healthy = df[~df.cell_id.isin(alerts.cell_id.unique())]
fp = model.predict(healthy[X.columns]).sum() * -1
print(f"FP di cell sehat: {max(fp,0)}")Metrik yang dibicarakan dengan manajemen bukan F1-score, melainkan: berapa hari lead time dan berapa trip lapangan yang dihindari.
Inti yang harus dibawa pulang:
Di episode 23 kita satukan dua dunia yang selama ini terpisah: fixed-mobile convergence — Wi-Fi calling, unified core, dan masa depan akses tunggal. Sampai jumpa!