GAPEKA Simulator — Simulasi Kapasitas Lintas & Deteksi Konflik Jadwal Kereta
Engine simulasi kapasitas lintas jalur tunggal dan deteksi konflik jadwal kereta api, dipakai untuk validasi teknis usulan trase/kereta fiksi railfans terhadap regulasi resmi PT KAI.
Overview
Sebagai railfan, salah satu diskusi yang paling sering muncul di komunitas adalah usulan trase atau jadwal kereta baru — tapi seberapa sering usulan itu benar-benar dicek terhadap kapasitas lintas yang ada? Jalur tunggal (single track) punya batas kapasitas yang keras: dua kereta nggak bisa berpapasan di petak jalan yang sama tanpa persilangan di stasiun. GAPEKA Simulator dibangun untuk mensimulasikan kapasitas lintas jalur tunggal dan mendeteksi konflik jadwal secara otomatis — baik untuk data eksisting maupun skenario kereta fiktif/usulan — mengikuti standar resmi PM 110/2017 (GAPEKA) dan PM 62/2013 (Waktu Antara Kereta). Data yang jadi basis: 32 kereta api riil pada 7 segmen jalur tunggal Sumatera Barat.
Tangkapan Antarmuka
Tantangan Teknis
- Kepatuhan Ganda Regulasi: Engine mematuhi dua regulasi berbeda sekaligus — PM 110/2017 untuk klasifikasi konflik (persilangan/persusulan/jalur stasiun) dan PM 62/2013 untuk perhitungan waktu antara kereta (WAK). Deteksi konflik dibangun sebagai sistem 3-tier, bukan sekadar pengecekan overlap sederhana.
- Time Rollover Lintas Tengah Malam: Kereta yang berangkat larut dan tiba dini hari keesokan harinya butuh representasi waktu yang konsisten. Waktu internal disimpan sebagai integer menit (0–2879, bukan 0–1439) agar logika perbandingan jadwal tetap linear tanpa percabangan khusus untuk kasus lewat tengah malam.
- Domain Logic Murni Terpisah dari Infrastruktur: Modul
engine/tidak bergantung pada FastAPI atau database — hanya menerima data terstruktur dan mengembalikan hasil deteksi. Pemisahan ini memungkinkan seluruh logika konflik diuji secara independen, termasuk untuk skenario kereta fiktif yang datanya cukup ditambahkan sebagai entry baru ditrains.jsontanpa menyentuh kereta eksisting.
Keputusan Arsitektur
- Dua Antarmuka, Satu Engine: CLI (baca JSON → render PNG via Matplotlib untuk arsip/laporan statis) dan Web (FastAPI + MariaDB + Plotly interaktif untuk eksplorasi skenario). Keduanya berbagi engine domain yang sama.
- Data Fiksi dan Data Riil Setara di Mata Engine: Karena validasi (
validate_trains.py) hanya peduli pada struktur dan konsistensi data — bukan sumbernya — kereta usulan/fiktif bisa diuji kelayakannya dengan cara yang persis sama seperti kereta yang sudah beroperasi.
Bukti Kualitas
- 140 test, 98% code coverage pada modul engine.
- 32 kereta api riil, 7 segmen jalur tunggal, berdasarkan data resmi KP DJKA 226/2024.
- Dokumentasi regulasi (PDF PM 110/2017, PM 62/2013) disertakan langsung di repo sebagai referensi sumber kebenaran.
Status & Arah Pengembangan
Yang sudah berjalan: simulasi kapasitas lintas jalur tunggal dan deteksi konflik jadwal, baik untuk data eksisting maupun skenario kereta fiktif/usulan.
Arah pengembangan berikutnya mengarah ke simulasi yang lebih sadar fisik infrastruktur — memasukkan parameter lokomotif, gradient, dan aturan dwell-time per kelas kereta (termasuk skenario khusus seperti pergantian lokomotif rel gigi) — supaya prediksi jadwal usulan makin dekat ke kondisi teknis riil di lapangan, dan bisa jadi sarana diskusi/advokasi yang lebih kuat di komunitas railfan.
Tertarik membangun sistem atau proyek serupa?
Mari obrolkan kebutuhan bisnis, estimasi waktu, dan arsitektur teknis proyek Anda.
Mulai Diskusi Proyek ➔