alurail alurail
Beranda Portal Peta Perjalanan KA Jadwal & Rute Pencarian Rute Kereta Luar Biasa Direktori KA Database Sarana Daftar Stasiun Prasarana & Depo Wilayah Operasi Catatan PLH Kabar & Wawasan Galeri Foto alurail pass
Portal Akun
Peta Beranda Jadwal Sarana
alurail alurail
Beranda Portal Direktori & Wawasan
Peta Perjalanan KA Pantauan Perjalanan KA
Jadwal & Rute Perjalanan KA
Pencarian Rute Cari Rute & Transit
Kereta Luar Biasa (KLB) Kereta Tidak Terjadwal
Direktori Kereta Daftar Layanan KA
Armada Sarana Database Armada
Daftar Stasiun Fasilitas & Daop
Prasarana & Depo Depo & Balai Yasa
Wilayah Operasi Daop & Divre
Catatan PLH Peristiwa Luar Biasa
Kini (Berita & Kabar) Kabar & Wawasan Terkini
Galeri Foto Koleksi Terkurasi
alurail pass Keanggotaan & Fitur
Tentang alurail Informasi & Visi
Masuk / Akun
Radar Live Sumber Terbuka FAQ / Bantuan Rekayasa Mesin (/git) Kontak
🇬🇧 EN (English) Radar Live alurail Pass Kirim Foto
Beranda Rekayasa & Arsitektur Sistem (/git)
Rekayasa Sistem & Whitepaper Arsitektur Peta

Bagaimana Mesin Peta alurail Direkayasa & Dibangun

Eksplorasi mendalam mengenai topologi geospasial, kinematika pergerakan dead-reckoning, penyatuan rute berantai (bundle), serta jalur kompilasi indeks spasial statis yang menggerakkan simulasi perkeretaapian real-time di Indonesia.

Edisi Aktif: GAPEKA 2025 Mesin Spasial: Viterbi Kinematic Mesh v2.8 Penyimpanan Data: Indeks Spasial Statis Terkompilasi Status: Stabil (Produksi)
3,673 Jadwal Perjalanan Harian Sinkronisasi jadwal KA antarkota, komuter, bandara, dan barang setiap hari.
750+ Stasiun Kereta Api Titik simpul stasiun tergeokode dan bertopologi presisi di Jawa & Sumatra.
< 45ms Latensi Pipeline P95 Interpolasi frame pergerakan kereta di sisi klien tanpa query berulang ke database.
100% Determinisme Statis Nol beban query reproyeksi koordinat berat saat lonjakan trafik pengguna.
1. Topologi Rel & Mesh Spasial 2. Kinematika Dead Reckoning 3. Penyatuan Rute Terusan (Bundle) 4. Caching Geospasial Statis 5. Arsitektur Antarmuka & Token UI 6. Sumber Terbuka & Riset

1. Pengolahan Geometri Jalur Rel & Ingesti Topologi Spasial

Dari geometri mentah OpenRailwayMap menuju grafik vektor berarah terhubung stasiun

Pemetaan jaringan perkeretaapian di wilayah kepulauan Indonesia memiliki tantangan geospasial yang unik. Berbeda dengan jaringan jalan raya yang bersifat bebas arah, jalur kereta api tunduk pada batasan fisik yang ketat: radius lengkung minimum sesuai lebar sepur (1.067 mm Cape Gauge dan 1.435 mm Standard Gauge pada Whoosh), titik percabangan wesel, serta segmentasi petak jalan blok yang membatasi pergerakan armada.

Guna menyatukan ribuan segmen koordinat poliline mentah antar-stasiun menjadi satu koridor terusan yang mulus tanpa ketergantungan API pihak ketiga yang berbayar atau lambat, sistem menerapkan tahapan pra-pemrosesan bertingkat:

  • Ingesti Geometri Vektor: Mengekstraksi garis vektor rel dari kontribusi OpenRailwayMap (ORM) dan OpenStreetMap secara presisi.
  • Pruning Spasial Bounding Box (AABB): Memangkas segmen rel non-kandidat menggunakan batas koordinat 2D (Axis-Aligned Bounding Box) sebelum menjalankan kalkulasi trigonometri bola geodesik, mereduksi kompleksitas pencarian dari $O(N)$ menjadi $O(\log N)$.
  • Penyelarasan Simpul Stasiun (Snapping): Mengoreksi koordinat geografis WGS-84 stasiun resmi ke as rel terdekat dalam toleransi radius 500 meter, memperhitungkan spoor lurus dan spoor belok emplasemen.
  • Klasifikasi Lebar Sepur (Gauge): Membedakan koridor sepur sempit 1.067 mm (lintas utama Jawa-Sumatra), sepur standar 1.435 mm (KCIC Whoosh & Sulawesi), serta jalur sepur ganda gancet / dual gauge (lintas Purwosari – Solo Kota).
  • Verifikasi Topologi Grafik Antar-Stasiun: Mengkompilasi jalur terpendek dan paling logis yang menghubungkan urutan stasiun persinggahan sesuai Grafik Perjalanan Kereta Api (GAPEKA 2025).
OPTIMIZATION: FAST AABB BOUNDING BOX SPATIAL PRUNING PHP / O(log N) SPATIAL PRUNING
function isPointNearSegmentAABB(float $pLat, float $pLon, array $segA, array $segB, float $bufferDeg = 0.005): bool {
    // Quick rectangular boundary check before executing trigonometric formulas
    $minLat = min($segA[0], $segB[0]) - $bufferDeg;
    $maxLat = max($segA[0], $segB[0]) + $bufferDeg;
    $minLon = min($segA[1], $segB[1]) - $bufferDeg;
    $maxLon = max($segA[1], $segB[1]) + $bufferDeg;

    return ($pLat >= $minLat && $pLat <= $maxLat && $pLon >= $minLon && $pLon <= $maxLon);
}
ALGORITHM: VECTOR DISTANCE BUFFER CALCULATION PHP / GEODESY
function geodesicTrackSnap($nodeLat, $nodeLon, array $trackPolylinePoints, $toleranceMeters = 500.0) {
    $minDistance = 1e9;
    $snappedCoord = null;
    for ($i = 0; $i < count($trackPolylinePoints) - 1; $i++) {
        // Fast AABB pruning to bypass distant segments instantly
        if (!isPointNearSegmentAABB($nodeLat, $nodeLon, $trackPolylinePoints[$i], $trackPolylinePoints[$i+1])) {
            continue;
        }
        $dist = haversineSegmentDist($nodeLat, $nodeLon, $trackPolylinePoints[$i], $trackPolylinePoints[$i+1]);
        if ($dist < $minDistance && $dist <= $toleranceMeters) {
            $minDistance = $dist;
            $snappedCoord = projectPointOnSegment($nodeLat, $nodeLon, $trackPolylinePoints[$i], $trackPolylinePoints[$i+1]);
        }
    }
    return $snappedCoord ?: [$nodeLat, $nodeLon];
}

2. Kinematika Gerak Dead Reckoning & Interpolasi Spasial

Mengonversi manifes jadwal GAPEKA menjadi koordinat pergerakan kereta kontinu berpresisi tinggi

Berbeda dengan pesawat terbang yang memancarkan sinyal ADS-B atau kapal laut dengan transponder AIS publik, armada kereta api penumpang belum seluruhnya menyiarkan koordinat GPS terbuka untuk konsumsi publik. Untuk menghadirkan visualisasi radar yang mencerminkan posisi fisik kereta di lintas secara realistis, sistem menerapkan model kinematika dead reckoning berbasis fisika gerak.

Setiap armada yang berdinas dievaluasi berdasarkan siklus waktu real-time:

  • Sistem mendeteksi petak blok aktif perjalanan: stasiun keberangkatan awal ($t_{\text{berangkat}}$) menuju stasiun kedatangan berikutnya ($t_{\text{tiba}}$).
  • Dihitung rasio progres waktu tempuh $\alpha \in [0, 1]$: $\alpha = \frac{t_{\text{sekarang}} - t_{\text{berangkat}}}{t_{\text{tiba}} - t_{\text{berangkat}}}$.
  • Alih-alih menggunakan kecepatan linear datar, sistem menerapkan kurva percepatan dan perlambatan dinamis (S-curve) yang mempertimbangkan batas kecepatan lintas (TASPAT): fase akselerasi saat meninggalkan emplasemen, kecepatan konstan di petak bebas, dan fase pengereman saat memasuki stasiun berikutnya.
  • Jarak tempuh akumulatif tersebut kemudian diproyeksikan ke garis vektor rel, menghasilkan titik koordinat lintang dan bujur yang presisi di atas peta.
Sinergi Telemetri GPS Lapangan (Live Casting)
Ketika penumpang di atas kereta memancarkan koordinat GPS sukarela melalui aplikasi mobile (Live Casting), sistem secara halus menyelaraskan estimasi posisi matematis dengan titik sensor aktual. Filter algoritma Viterbi mengoreksi lonjakan *drift* sinyal satelit agar marker tetap menempel tepat di garis rel.
KINEMATICS: S-CURVE SMOOTHSTEP INERTIA INTERPOLATION PHP / KINEMATIC KERNEL
function calculateKinematicProgress(float $tDepUnix, float $tArrUnix, float $tNowUnix): float {
    if ($tNowUnix <= $tDepUnix) return 0.0;
    if ($tNowUnix >= $tArrUnix) return 1.0;

    // Linear time progress alpha clamped to [0.0, 1.0]
    $alpha = ($tNowUnix - $tDepUnix) / ($tArrUnix - $tDepUnix);

    // Cubic Hermite smoothstep polynomial (3t^2 - 2t^3) emulating train mass, acceleration, and deceleration
    return $alpha * $alpha * (3.0 - 2.0 * $alpha);
}
HEADING: TANGENT BEARING ANGLE FOR CANVAS MARKER ORIENTATION JAVASCRIPT / SPHERICAL TRIGONOMETRY
function calculateTrackBearing(lat1, lon1, lat2, lon2) {
    const toRad = Math.PI / 180;
    const dLon = (lon2 - lon1) * toRad;
    const phi1 = lat1 * toRad;
    const phi2 = lat2 * toRad;

    const y = Math.sin(dLon) * Math.cos(phi2);
    const x = Math.cos(phi1) * Math.sin(phi2) - Math.sin(phi1) * Math.cos(phi2) * Math.cos(dLon);

    // Normalize forward azimuth bearing to [0, 360) degrees
    return (Math.atan2(y, x) * (180 / Math.PI) + 360) % 360;
}

3. Penyatuan Perjalanan Terusan Rangkaian Berantai (Bundle Trains)

Menghubungkan nomor perjalanan ganda menjadi satu kesatuan armada fisik yang konsisten

Dalam operasional perkeretaapian nyata, sejumlah layanan kereta api berganti nomor dinas perjalanan di tengah rute operasionalnya karena perubahan arah lokomotif (langsir putar di stasiun percabangan) maupun regulasi izin trayek lintas Daop.

Sebagai contoh, KA Serayu melayani relasi Kroya – Pasar Senen melalui rute selatan (Bandung), berganti nomor KA secara berantai (misal 283A → 284B). Basis data relasional standar kerap memisahkan nomor KA ini sebagai perjalanan terputus, menampilkan waktu tempuh parsial yang membingungkan (hanya 5 jam untuk segmen terpendek) dan peta yang terpotong.

Sistem menyelesaikan tantangan ini melalui lapisan penyatuan armada (Train Bundling Engine):

  • Penyambungan Segmen Berkelanjutan: Mengelompokkan nomor-nomor KA berantai yang berdinas menggunakan satu rangkaian fisik yang sama ke dalam satu kesatuan koridor.
  • Metrik Perjalanan Riil: Menghitung total jarak kumulatif dari stasiun awal pemberangkatan hingga tujuan akhir (misal Kroya hingga Jakarta), total stasiun persinggahan, dan durasi perjalanan menyeluruh (+9 jam).
  • Tampilan Peta Adaptif: Menampilkan peta menyeluruh saat pengguna membuka profil induk kereta, dan menampilkan segmen spesifik saat pengguna meninjau detail jadwal nomor KA tertentu.
DATA STRUCTURE: THROUGH-TRAIN CONSIST & SWITCHBACK STITCHING PHP / GRAPH STITCHING
class ThroughTrainCorridor {
    public string $consistCode;      // Physical train consist identifier
    public string $masterName;       // e.g. "KA Serayu"
    public array $legs = [];         // Sequential trip legs [ '283A' => [...], '284B' => [...] ]

    public function stitchContinuousPolyline(): array {
        $unifiedPolyline = [];
        foreach ($this->legs as $idx => $leg) {
            $coords = $leg['polyline'];
            // Normalize reverse terminal switchbacks (e.g. Kroya/Kiaracondong turn-around)
            if ($idx > 0 && !empty($unifiedPolyline)) {
                $lastVertex = end($unifiedPolyline);
                $headVertex = $coords[0];
                $tailVertex = end($coords);
                // If tail is closer to the previous leg endpoint than head, reverse sequence
                if (haversineDistance($lastVertex, $tailVertex) < haversineDistance($lastVertex, $headVertex)) {
                    $coords = array_reverse($coords);
                }
            }
            $unifiedPolyline = array_merge($unifiedPolyline, $coords);
        }
        return $unifiedPolyline;
    }
}

4. Caching Geospasial Statis Berkecepatan Tinggi

Menghasilkan waktu respon sub-milidetik tanpa bottleneck database saat lonjakan trafik masa mudik

Melayani ribuan pengguna dan komunitas yang memantau pergerakan kereta secara bersamaan—terutama pada periode angkutan puncak seperti masa Mudik Lebaran dan Libur Nataru—menuntut arsitektur yang bebas dari beban query spasial berat pada basis data relasional.

Platform mencapai keandalan dan kecepatan tinggi ini melalui strategi caching spasial berlapis:

  • Pra-Kompilasi Geometri Jadwal: Setiap kali edisi GAPEKA resmi diaktifkan, seluruh koridor stasiun ke stasiun, daftar pemberhentian, dan geometri poliline rel langsung dikompilasi ke dalam struktur data statis berbobot ringan.
  • Arsitektur Penyimpanan Ganda: Memori server lokal berkecepatan tinggi bertindak sebagai penyaji data primer, disinkronkan secara mulus dengan jaringan edge CDN global guna menjamin ketersediaan data secara andal.
  • Manajemen Data Sisi Klien (Client Mesh): Koordinat stasiun dan ringkasan rute di-cache di sisi browser pengguna, memungkinkan filter pencarian instan pada ratusan perjalanan kereta tanpa memicu request berulang ke server.
PIPELINE: DETERMINISTIC ETAG & CONDITIONAL HTTP 304 CLIENT CACHING PHP / HIGH CONCURRENCY
function serveStaticSpatialPayload(string $indexKey, string $jsonPayload, int $maxAgeSeconds = 300): void {
    // Non-cryptographic fast 64-bit hash for ETag validation
    $etag = '"' . hash('xxh64', $jsonPayload) . '"';

    header('Content-Type: application/json; charset=UTF-8');
    header('ETag: ' . $etag);
    header("Cache-Control: public, max-age={$maxAgeSeconds}, stale-while-revalidate=600");

    // If client cache matches ETag, return 304 Not Modified immediately with 0 bytes body
    if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) === $etag) {
        http_response_code(304);
        exit;
    }

    echo $jsonPayload;
    exit;
}

5. Arsitektur Antarmuka & Token Desain Sistem

Bebas framework berat, CSS custom properties bersih, dan rendering kanvas terakselerasi perangkat keras

Antarmuka pengguna {$brandName} dibangun sepenuhnya memanfaatkan standar platform web modern: HTML5 semantik, CSS custom properties dinamis, dan modul JavaScript ringan tanpa framework monolitik yang membengkak, memastikan pemuatan halaman instan serta konsumsi memori yang hemat pada ponsel pengguna.

  • Token Variabel CSS Terpadu: Pengalihan tema dinamis (--up-bg, --up-surface, --up-brand) menjaga konsistensi visual antara tema gelap dan terang di seluruh halaman platform.
  • Marker Berakselerasi Perangkat Keras: Marker kereta dan ikon stasiun dirender pada kanvas Leaflet dengan optimasi GPU, menjamin kelancaran interaksi zoom dan pan hingga 60fps di berbagai perangkat.
  • Sistem Fallback Media Cerdas: Dokumentasi foto interior kabin dan armada sarana dilengkapi penanganan otomatis; jika foto belum tersedia, sistem secara anggun menampilkan lencana identitas resmi sarana.
RENDERER: GPU-ACCELERATED WEB MERCATOR CANVAS PROJECTION JAVASCRIPT / SINGLE-PASS CANVAS RENDERER
function projectWGS84ToCanvasPixel(lat, lon, zoom, tileSize = 256) {
    // Project geographical WGS-84 coordinate into normalized Mercator screen-space pixel coordinates
    const sinLat = Math.sin(lat * (Math.PI / 180));
    const scale = tileSize * Math.pow(2, zoom);

    const pixelX = scale * ((lon + 180) / 360);
    const pixelY = scale * (0.5 - Math.log((1 + sinLat) / (1 - sinLat)) / (4 * Math.PI));

    return { x: Math.round(pixelX), y: Math.round(pixelY) };
}

6. Fondasi Perangkat Lunak Sumber Terbuka & Rekayasa Geospasial

Dibangun di atas karya komunitas pemetaan terbuka global dan teori graf komputasi matematis

Mesin simulasi alurail berakar kuat pada filosofi keterbukaan data dan rekayasa perangkat lunak sumber terbuka. Kami memberikan penghargaan formal serta mengintegrasikan komponen-komponen terbuka utama berikut:

  • OpenStreetMap (OSM) [ODbL 1.0]: Menyediakan basis data vektor peta dunia, garis pantai, batas administratif wilayah, dan kontur geografis primer.
  • OpenRailwayMap (ORM) [CC-BY-SA 2.0]: Menyediakan infrastruktur rel terperinci, wesel percabangan, klasifikasi lebar sepur (Cape Gauge 1.067 mm & Standard Gauge 1.435 mm), serta tata letak emplasemen stasiun di Indonesia.
  • PostgreSQL & PostGIS [GPL-2.0+]: Basis data relasional spasial performa tinggi yang memproses topologi jalur rel, kalkulasi jarak geodesik, dan komputasi rute terpendek Dijkstra / pgRouting.
  • Leaflet.js [2-Clause BSD]: Menggerakkan kanvas visualisasi peta interaktif yang ringan, proyeksi koordinat cepat, serta pergerakan marker kereta dinamis berbasis GPU.
  • Pemulusan Kurva Chaikin (Corner-Cutting): Memotong sudut-sudut poliline tajam secara proporsional (25% dan 75%) dalam siklus iteratif, menghasilkan garis lengkung rel alami yang mencerminkan radius lengkung fisik jalur ($R_{\text{min}} \ge 250\text{m}$).
  • Filter HMM Viterbi (Map-Matching): Memisahkan probabilitas emisi sensor ($p(z_t | x_t)$ dengan distribusi Gauss $\sigma \approx 10\text{m}$) dari probabilitas transisi topologi ($p(x_t | x_{t-1})$ yang mengukur selisih jarak jaringan rel versus jarak sensor $|\Delta d|$), menangkal lonjakan *GPS jumping* saat kereta melintasi terowongan, ngarai, maupun kawasan padat gedung.
Lihat Dokumentasi Lisensi & Atribusi Sumber Terbuka Lengkap →
ALGORITHM: CHAIKIN PROCEDURAL CORNER-CUTTING CURVE SMOOTHING PHP / PROCEDURAL GEOMETRY
function chaikinCurveSmoothing(array $vertices, int $refinements = 2): array {
    if (count($vertices) < 3) return $vertices;

    for ($it = 0; $it < $refinements; $it++) {
        $refined = [$vertices[0]]; // Always preserve starting station origin
        for ($i = 0; $i < count($vertices) - 1; $i++) {
            $p0 = $vertices[$i];
            $p1 = $vertices[$i + 1];

            // Point Q: 75% P0 + 25% P1
            $q = [$p0[0] * 0.75 + $p1[0] * 0.25, $p0[1] * 0.75 + $p1[1] * 0.25];
            // Point R: 25% P0 + 75% P1
            $r = [$p0[0] * 0.25 + $p1[0] * 0.75, $p0[1] * 0.25 + $p1[1] * 0.75];

            $refined[] = $q;
            $refined[] = $r;
        }
        $refined[] = end($vertices); // Always preserve terminal destination
        $vertices = $refined;
    }
    return $vertices;
}

Butuh Informasi Lebih Lanjut atau Ingin Berkolaborasi?

Tim rekayasa alurail terbuka untuk kolaborasi data geospasial, riset perkeretaapian komunitas, maupun integrasi sistem telemetri. Hubungi kami langsung melalui WhatsApp resmi, email langsung, atau formulir kontak.

WhatsApp (628998021757) alurail.web.id@gmail.com Form Kontak
alurail alurail
Dibuat berdasarkan GAPEKA 2025, divisualisasikan secara open-source menggunakan OpenRailwayMap dan Leaflet.js. Diperkaya dengan PostgreSQL (PostGIS, pgRouting), Algoritma Dijkstra/A* dan Algoritma Viterbi
Hak Cipta ©️ 2024-2026 alurail oleh alula
Dibuat dengan 💗 dari Pejaten, ID
Hak Cipta ©️ 2024-2026 alurail oleh alula
Dibuat dengan 💗 dari Pejaten, ID

Komunitas & Kreator

  • alurail Pass PRO
  • Kirim Foto Dokumentasi
  • Suite Pengguna
  • Koleksi Terkurasi
  • Galeri Personal

Platform & Legal

  • Tentang Platform
  • Syarat & Ketentuan
  • Kebijakan Privasi
  • Lisensi Sumber Terbuka
  • Soal Sering Ditanya (FAQ)
Pass PRO PRO Kirim Foto Suite Galeri
Tentang
Syarat
Privasi
Lisensi
FAQ
© 2026 alurail. Hak cipta dilindungi.
alurail

alurail Legal & Info

Tentang alurail

<section id="about-id" class="about-section lang-content">
<article class="about-card">

<h2>Tentang AluRail</h2>

<p class="lead">
AluRail (Aluline TGV) adalah platform berbasis web gratis yang memvisualisasikan operasi dan perjalanan kereta api di Indonesia. Layanan ini tersedia melalui <a href="https://aluline.id" target="_blank">aluline.id</a> dan <a href="https://aluline.my.id" target="_blank">aluline.my.id</a>, dikembangkan secara independen oleh <strong>alula</strong> (<a href="https://alula.web.id" target="_blank">alula.web.id</a>) untuk para pencinta kereta api (railfans) maupun masyarakat yang ingin memahami perjalanan kereta secara lebih intuitif.
</p>

<h3>Bagaimana Cara Kerjanya?</h3>

<p>
AluRail mengubah data resmi <strong>GAPEKA 2025 (Grafik Perjalanan Kereta Api)</strong> menjadi visualisasi geospasial interaktif. Setiap perjalanan kereta direkonstruksi berdasarkan jadwal keberangkatan, kedatangan, urutan stasiun, jaringan rel, serta hasil perhitungan rute sehingga sistem dapat mengestimasi bagaimana sebuah perjalanan berlangsung di sepanjang lintasan.
</p>

<p>
Berbeda dengan sekadar menampilkan jadwal, AluRail menjalankan simulasi pergerakan kereta menggunakan <strong>Railway Physics Engine</strong> yang dikembangkan secara khusus. Mesin simulasi ini memperhitungkan berbagai parameter operasional seperti percepatan, perlambatan, kecepatan jelajah, waktu berhenti di stasiun, geometri lintasan, batas kecepatan, serta berbagai asumsi fisika lainnya untuk menghasilkan estimasi posisi kereta secara berkelanjutan.
</p>

<p>
Selain simulasi tersebut, AluRail juga mendukung fitur <strong>Live Tracking berbasis Crowdsourcing</strong>. Penumpang yang sedang berada di dalam kereta dapat secara sukarela membagikan lokasi GPS mereka. Sistem kemudian memvalidasi keaslian data tersebut menggunakan algoritma <em>map-matching</em> sebelum ditampilkan kepada pengguna lain.
</p>

<h3>Teknologi di Balik AluRail</h3>

<ul>
<li><strong>PostgreSQL (PostGIS):</strong> Menjadi basis data geospasial utama untuk menyimpan jaringan rel, koordinat stasiun, dan berbagai informasi spasial.</li>

<li><strong>Custom Railway Routing Engine:</strong> Menggunakan algoritma graf seperti Dijkstra dan A* untuk menghitung jalur perjalanan, konektivitas rel, serta rute operasional kereta.</li>

<li><strong>Railway Physics Engine:</strong> Menjalankan simulasi pergerakan kereta berdasarkan model percepatan, perlambatan, kecepatan operasi, waktu berhenti, batas kecepatan lintas, serta parameter fisika perjalanan lainnya.</li>

<li><strong>Algoritma Viterbi (Map Matching):</strong> Digunakan untuk memvalidasi data GPS crowdsourcing agar tetap berada pada jalur rel yang paling mungkin sehingga meningkatkan akurasi Live Tracking.</li>

<li><strong>Leaflet.js &amp; OpenRailwayMap:</strong> Digunakan sebagai mesin visualisasi peta interaktif dan penyedia lapisan jaringan rel.</li>
</ul>

<h3>Layanan Kereta yang Didukung</h3>

<p>
AluRail mendukung visualisasi berbagai layanan perkeretaapian di Indonesia, mulai dari kereta antarkota, komuter, angkutan perkotaan, kereta wisata, hingga angkutan barang. Bergantung pada ketersediaan data, layanan yang saat ini didukung meliputi:
</p>

<ul>
<li>KA Antar Kota</li>
<li>Whoosh (Kereta Cepat)</li>
<li>KA Commuter Line</li>
<li>KA Feeder</li>
<li>KA Lokal</li>
<li>KA Logistik (Peti Kemas, Kargo, Tanker, Batu Bara, Semen, dan layanan barang lainnya)</li>
<li>LRT Jakarta</li>
<li>LRT Jabodebek</li>
<li>LRT Sumatera Selatan (Palembang)</li>
<li>MRT Jakarta</li>
<li>KA Heritage Ambarawa</li>
</ul>

<p>
Daftar layanan ini akan terus berkembang seiring bertambahnya data prasarana, sarana, maupun jadwal perjalanan yang tersedia.
</p>

<h3>Fitur Utama Platform</h3>

<p>
AluRail menggabungkan simulasi perjalanan, analisis geospasial, serta partisipasi komunitas dalam satu platform visualisasi perjalanan kereta api. Beberapa fitur utama yang tersedia antara lain:
</p>

<ul>

<li>
<strong>Follow Mode</strong><br>
Mengikuti perjalanan sebuah kereta secara otomatis sepanjang rute dengan memperbarui posisi estimasi maupun posisi Live Tracking secara berkelanjutan.
</li>

<li>
<strong>Live GPS Cast</strong><br>
Penumpang dapat secara sukarela membagikan lokasi GPS selama perjalanan sehingga posisi kereta dapat ditampilkan menggunakan data aktual yang telah divalidasi.
</li>

<li>
<strong>Spotting Mode</strong><br>
Membantu railfans mengetahui kereta yang akan melintas di stasiun maupun titik tertentu sehingga memudahkan aktivitas train spotting dan fotografi kereta.
</li>

<li>
<strong>Enhanced Railway Physics</strong><br>
Simulasi pergerakan memperhitungkan gradien lintasan (permil), profil elevasi, kelengkungan rel, percepatan, perlambatan, kemampuan traksi, batas kecepatan, serta berbagai parameter operasional sehingga menghasilkan simulasi yang lebih realistis.
</li>

<li>
<strong>Analisis Rute Terperinci</strong><br>
Menyediakan grafik interaktif seperti profil elevasi lintasan, kurvatur rute, gradien antar stasiun, profil kecepatan, serta karakteristik operasional sepanjang perjalanan.
</li>

<li>
<strong>Informasi Layanan Kereta</strong><br>
Menampilkan informasi operasional seperti operator, kategori layanan, nomor kereta, rute perjalanan, jadwal, hingga informasi rangkaian.
</li>

<li>
<strong>Basis Data Rolling Stock</strong><br>
Menyediakan informasi mengenai lokomotif, KRL, KRDE, kereta penumpang, gerbong barang, maupun sarana lain yang digunakan pada layanan yang didukung.
</li>

<li>
<strong>Informasi Kelas Kereta</strong><br>
Menampilkan kelas layanan beserta ilustrasi atau gambar referensi apabila tersedia sehingga memudahkan pengguna mengenali fasilitas setiap kelas perjalanan.
</li>
<li>
<strong>Adaptive Train Rendering</strong><br>
Tampilan kereta akan menyesuaikan tingkat pembesaran (zoom) peta secara otomatis. Sistem menggunakan beberapa mode visualisasi agar ribuan kereta dapat ditampilkan dengan tetap ringan dan responsif.
</li>

<li>
<strong>Filter Jenis Kereta</strong><br>
Pengguna dapat memfilter tampilan berdasarkan jenis layanan seperti KA Antar Kota, Whoosh, Commuter Line, MRT, LRT, KA Lokal, KA Barang, KA Heritage, dan layanan lainnya yang didukung.
</li>

<li>
<strong>Filter Wilayah Operasi</strong><br>
Menampilkan kereta berdasarkan wilayah operasional seperti Daerah Operasi (DAOP), Divisi Regional (Divre), maupun wilayah operasi lain yang tersedia sehingga pemantauan menjadi lebih mudah.
</li>

<li>
<strong>Railway Points of Interest (POI)</strong><br>
Menyediakan berbagai titik menarik di sepanjang jalur kereta seperti lokasi spotting atau hunting kereta, jembatan, terowongan, emplasemen, bangunan bersejarah, serta berbagai titik penting lainnya.
</li>

<li>
<strong>Depo & Fasilitas Perawatan</strong><br>
Menampilkan lokasi depo kereta, depo lokomotif, Balai Yasa, jalur stabling, fasilitas pencucian, serta berbagai fasilitas operasional dan perawatan sarana perkeretaapian.
</li>

</ul>



<div class="disclaimer-box">

<h4>Pernyataan Penting (Disclaimer)</h4>

<p>
<strong>AluRail pada dasarnya merupakan platform simulasi perjalanan kereta berdasarkan jadwal.</strong>
Kecuali apabila tersedia data <strong>Live Tracking</strong> yang telah tervalidasi dari pengguna, seluruh posisi kereta yang ditampilkan pada peta merupakan <strong>hasil estimasi komputasi</strong> berdasarkan jadwal GAPEKA dan perhitungan Railway Physics Engine, <strong>bukan posisi aktual kereta secara real-time</strong>.
</p>

<p>
Meskipun model simulasi dirancang agar sedekat mungkin dengan kondisi operasional nyata, posisi yang ditampilkan dapat berbeda dengan kondisi sebenarnya akibat berbagai faktor, seperti perubahan pola operasi, keterlambatan, keberangkatan lebih awal, persilangan dan penyusulan kereta, pembatasan kecepatan sementara, pekerjaan prasarana, gangguan sinyal, kondisi cuaca, maupun faktor operasional lain yang tidak dapat diketahui oleh sistem.
</p>

<p>
Data Live Tracking sendiri juga bergantung pada partisipasi sukarela pengguna, kualitas perangkat GPS, penerimaan sinyal satelit, serta kondisi lingkungan sekitar. Oleh karena itu, informasi posisi kereta tetap harus dipandang sebagai informasi estimatif dan bukan referensi operasional resmi.
</p>

<p>
<strong>Layanan ini tidak boleh digunakan sebagai acuan resmi</strong> untuk perencanaan perjalanan, pembelian tiket, pengambilan keputusan operasional, maupun informasi resmi mengenai perjalanan kereta api. Untuk informasi yang akurat dan bersifat resmi, selalu gunakan kanal resmi PT Kereta Api Indonesia (Persero).
</p>

<p>
AluRail / Aluline TGV merupakan proyek independen komunitas dan tidak berafiliasi, tidak bermitra, tidak didukung, maupun tidak mewakili PT Kereta Api Indonesia (Persero), OpenStreetMap, OpenRailwayMap, ataupun organisasi lain yang disebutkan di dalam platform ini.
</p>

</div>

<p class="footer-note">
Dibuat dengan ❣️ dari Pejaten, Indonesia.
</p>

</article>
</section>

Syarat & Ketentuan

<section id="terms-id" class="lang-content">
<h2>Syarat & Ketentuan Penggunaan</h2>
<p class="effective-date"><strong>Berlaku sejak:</strong> 1 Januari 2025 (Diperbarui untuk GAPEKA 2025)</p>

<h3>1. Penerimaan Ketentuan</h3>
<p>Dengan mengakses AluRail melalui aluline.id, aluline.my.id, dan subdomain terkait ("Layanan"), Anda menyatakan telah membaca, memahami, dan menyetujui seluruh Syarat & Ketentuan ini. Jika tidak menyetujuinya, Anda wajib menghentikan penggunaan Layanan.</p>

<h3>2. Layanan Independen</h3>
<p>AluRail merupakan proyek komunitas independen yang dikembangkan oleh Alula dan tidak berafiliasi, didukung, ataupun dioperasikan oleh operator kereta api maupun instansi pemerintah, kecuali dinyatakan secara tegas.</p>

<h3>3. Sifat Layanan</h3>
<p>Layanan menyediakan visualisasi jadwal, estimasi posisi kereta, simulasi operasional, serta validasi lokasi berbasis crowdsourcing menggunakan data publik, GAPEKA, dan pemrosesan algoritmik. Informasi yang ditampilkan dapat berbeda dari kondisi operasional sebenarnya.</p>

<h3>4. Tidak Menjamin Operasional</h3>
<p>Jadwal, posisi kereta, keterlambatan, pembatalan, perubahan jalur, maupun keputusan operasional dapat berubah sewaktu-waktu. Layanan ini bukan sumber informasi operasional resmi.</p>

<h3>5. Kontribusi Crowdsourcing</h3>
<p>Pengguna dapat secara sukarela mengirimkan data GPS saat berada di atas kereta. Pengiriman lokasi palsu (fake GPS), manipulasi data, spam, maupun tindakan yang mengganggu akurasi sistem dilarang keras.</p>

<h3>6. Penggunaan yang Diperbolehkan</h3>
<p>Pengguna tidak diperkenankan menyalahgunakan layanan, mengganggu infrastruktur, mengeksploitasi celah keamanan, melakukan scraping berlebihan, ataupun menggunakan sistem otomatis yang berdampak negatif terhadap layanan.</p>

<h3>7. Hak Kekayaan Intelektual</h3>
<p>Perangkat lunak, antarmuka, desain, dan konten asli AluRail tetap menjadi hak pemiliknya masing-masing. Komponen open source tetap tunduk pada lisensi masing-masing.</p>

<h3>8. Ketersediaan Layanan</h3>
<p>Kami berhak mengubah, membatasi, menghentikan sementara, maupun menghentikan layanan kapan saja tanpa pemberitahuan sebelumnya.</p>

<h3>9. Penafian ("AS IS")</h3>
<p>LAYANAN DISEDIAKAN "SEBAGAIMANA ADANYA" ("AS IS") DAN "SEBAGAIMANA TERSEDIA" ("AS AVAILABLE") TANPA JAMINAN DALAM BENTUK APA PUN, BAIK TERSURAT MAUPUN TERSIRAT.</p>

<h3>10. Batasan Tanggung Jawab</h3>
<p>Sepanjang diperbolehkan oleh hukum, Alula tidak bertanggung jawab atas kerugian langsung maupun tidak langsung, kehilangan waktu, kerugian finansial, keputusan perjalanan, kehilangan data, maupun kerugian lainnya akibat penggunaan atau ketidakmampuan menggunakan Layanan.</p>

<h3>11. Perubahan Ketentuan</h3>
<p>Kami dapat memperbarui syarat ini sewaktu-waktu. Penggunaan Layanan setelah perubahan dianggap sebagai persetujuan terhadap versi terbaru.</p>

<h3>12. Kontak</h3>
<p>Pertanyaan mengenai ketentuan ini dapat disampaikan melalui kanal resmi AluRail.</p>
</section>

<h3>Pernyataan Independensi Layanan</h3>

<p>AluRail merupakan platform independen yang dikembangkan oleh komunitas melalui Alula untuk keperluan visualisasi, penelitian, edukasi, dan komunitas pecinta kereta api.</p>

<p>AluRail <strong>tidak berafiliasi, tidak memiliki hubungan resmi, tidak memperoleh otorisasi, tidak didukung, tidak disponsori, tidak dipelihara, tidak dioperasikan, dan tidak memiliki keterkaitan resmi</strong> dengan PT Kereta Api Indonesia (Persero), PT Kereta Commuter Indonesia, PT Kereta Api Logistik, PT Kereta Api Pariwisata, PT Kereta Cepat Indonesia China (Whoosh), MRT Jakarta, LRT Jabodebek, LRT Jakarta, LRT Sumatera Selatan (Palembang), anak perusahaan, perusahaan afiliasi, instansi pemerintah, otoritas transportasi, maupun operator perkeretaapian lainnya, kecuali secara tegas dinyatakan.</p>

<p>Seluruh nama perusahaan, nama layanan kereta, nama stasiun, nama perjalanan kereta, logo, merek dagang, merek layanan, identitas visual, maupun hak kekayaan intelektual lainnya yang ditampilkan pada Layanan tetap menjadi milik pemegang hak masing-masing dan digunakan semata-mata untuk tujuan identifikasi, penyajian informasi, interoperabilitas, referensi historis, pemetaan, edukasi, maupun tujuan deskriptif.</p>

<p>Visualisasi yang ditampilkan merupakan hasil pengolahan informasi publik, estimasi algoritma, referensi historis, serta kontribusi sukarela komunitas, sehingga tidak boleh dianggap sebagai sistem operasional resmi, sistem informasi penumpang resmi, pusat kendali perjalanan, maupun representasi resmi dari operator perkeretaapian mana pun.</p>

Kebijakan Privasi

<section id="privacy-id" class="lang-content">
<h2>Kebijakan Privasi</h2>
<p class="effective-date"><strong>Terakhir diperbarui:</strong> Juni 2026</p>

<h3>1. Komitmen Privasi</h3>
<p>Kami hanya mengumpulkan informasi yang diperlukan untuk mengoperasikan dan meningkatkan Layanan.</p>

<h3>2. Pengumpulan GPS</h3>
<p>Lokasi GPS hanya diakses setelah Anda secara sadar mengaktifkan fitur Live Tracking. Kami tidak melacak lokasi di latar belakang tanpa tindakan Anda.</p>

<h3>3. Pengolahan Data</h3>
<p>GPS diproses menggunakan algoritma pencocokan rute seperti Viterbi terhadap jaringan rel untuk memvalidasi posisi kereta dan tidak dikaitkan dengan identitas pribadi.</p>

<h3>4. Log Server</h3>
<p>Server dapat menyimpan log teknis seperti alamat IP, jenis browser, waktu akses, dan informasi diagnostik untuk keamanan, analitik, dan pemeliharaan.</p>

<h3>5. Penyimpanan Data</h3>
<p>Data Live GPS bersifat sementara dan akan dihapus otomatis setelah perjalanan selesai, kecuali diperlukan lebih lama untuk investigasi keamanan.</p>

<h3>6. Pihak Ketiga</h3>
<p>Kami tidak menjual atau menyewakan data GPS Anda. Pemrosesan teknis oleh penyedia infrastruktur hanya dilakukan untuk menjalankan layanan.</p>

<h3>7. Keamanan</h3>
<p>Kami menerapkan langkah-langkah keamanan yang wajar, namun tidak ada sistem daring yang dapat menjamin keamanan 100%.</p>

<h3>8. Keselamatan Pengguna</h3>
<p>Kami menyarankan penggunaan mode anonim dan tidak membagikan lokasi real-time kepada publik.</p>

<h3>9. Tanggung Jawab Pengguna</h3>
<p>Penggunaan fitur Live GPS maupun spotting sepenuhnya bersifat sukarela dan menjadi tanggung jawab pengguna.</p>
</section>

Lisensi & Sumber Terbuka

<section id="opensource-id" class="lang-content">
<h2>Pemberitahuan Open Source</h2>
<p>AluRail dibangun menggunakan berbagai perangkat lunak sumber terbuka dan data terbuka. Kami mengucapkan terima kasih kepada komunitas yang memeliharanya.</p>
<ul>
<li><strong>PostgreSQL, PostGIS &amp; pgRouting</strong> — Basis data spasial, ekstensi GIS, dan mesin routing.</li>
<li><strong>OpenStreetMap &amp; OpenRailwayMap</strong> — Penyedia data jaringan rel dan peta.</li>
<li><strong>Leaflet.js</strong> — Pustaka JavaScript untuk peta interaktif.</li>
</ul>
<p>Seluruh hak cipta, merek dagang, dan lisensi tetap dimiliki oleh masing-masing pemiliknya. Penggunaan dalam AluRail tidak berarti adanya dukungan atau afiliasi resmi.</p>
</section>
alurail Pass Prime GRATIS!
early access

alurail Pass Prime GRATIS!