# GTFS, GTFS-RT, dan GBFS: Apa Perbedaannya?

> Bandingkan GTFS, GTFS-RT, dan GBFS untuk memilih data mobilitas Anda: jadwal terencana, informasi terkini, stasiun, dan kendaraan berbagi.

Source: https://www.roote.ai/id/guides/gtfs-gtfs-rt-dan-gbfs-apa-perbedaannya/
Language: id
Author: ROOTE

GTFS Schedule menjelaskan penawaran transportasi yang terencana. GTFS Realtime, sering disebut GTFS-RT, menyampaikan informasi layanan yang diperbarui. GBFS menjelaskan layanan mobilitas berbagi, termasuk stasiun dan kendaraan yang tersedia berdasarkan aliran data yang dipublikasikan. Pilih format berdasarkan pertanyaan yang harus diselesaikan aplikasi Anda.

Format-format ini mengorganisasi data; mereka tidak menjamin ketersediaannya di mana saja maupun kualitas setiap aliran data.

## GTFS untuk merepresentasikan penawaran yang terencana

Satu set GTFS Schedule mengumpulkan file tabular yang menjelaskan antara lain operator, pemberhentian, jalur, perjalanan, dan jadwal kedatangan mereka. Kalender menunjukkan hari-hari terkait. File-file ini dihubungkan lewat pengenal. [Referensi GTFS Schedule](https://gtfs.org/documentation/schedule/reference/).

Ini memungkinkan menjawab pertanyaan seperti “di mana pemberhentian ini?” atau “jadwal kedatangan apa yang direncanakan untuk layanan ini?”. Untuk memanfaatkan jadwal, Anda harus menginterpretasi kalender dan hubungan antar file.

Membaca hanya daftar pemberhentian saja tidak cukup untuk membangun jadwal kedatangan. Sebaliknya, posisi pemberhentian bisa berguna tanpa menampilkan jadwal.

## GTFS-RT untuk memperbarui informasi layanan

GTFS Realtime dapat menyediakan pembaruan perjalanan, posisi kendaraan, dan peringatan. Pembaruan perjalanan mencakup jadwal kedatangan dan perubahan layanan. Aliran menggunakan Protocol Buffers, yaitu format serialisasi terstruktur. [Pengenalan GTFS Realtime](https://gtfs.org/documentation/realtime/reference/).

Pengelola layanan dapat menerbitkan beberapa kategori tanpa menyediakan yang lainnya. Adanya aliran posisi tidak menjamin estimasi untuk semua pemberhentian.

Untuk antarmuka, bedakan antara jadwal terencana dan estimasi yang diperbarui. Panduan kami [jadwal teoritis dan waktu nyata](https://www.roote.ai/id/guides/jadwal-bus-perbedaan-antara-jadwal-teoritis-dan-waktu-nyata/) menjelaskan perbedaan ini dari sudut pandang pengguna.

## GBFS untuk mobilitas berbagi

GBFS menggunakan aliran JSON untuk menjelaskan layanan mobilitas berbagi. Bergantung pada sistem dan versi, mereka dapat memberikan informasi tentang stasiun, statusnya, kendaraan, dan karakteristik layanan lainnya. Dokumentasi membedakan khususnya antara informasi stasiun dan status ketersediaan. [Dokumentasi GBFS](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md).

Pisahkan dalam aplikasi Anda lokasi yang relatif stabil dari status yang berubah cepat. Simpan versi format dan cap waktu relevan saat menginterpretasi.

Aliran ketersediaan bukanlah API untuk pemesanan atau membuka kunci. Aliran ini membantu menemukan penawaran; operasi penyewaan menjadi tanggung jawab layanan terkait.

## Bandingkan sesuai kasus penggunaan

| Kebutuhan | Format yang perlu diperiksa |
| --- | --- |
| Menggambarkan pemberhentian dan jalur yang terencana | GTFS Schedule |
| Menginterpretasi jadwal kedatangan dan hari layanan | GTFS Schedule |
| Memperbarui jadwal kedatangan atau menerima informasi layanan | GTFS-RT, sesuai aliran yang diterbitkan |
| Menemukan lokasi stasiun atau kendaraan mobilitas berbagi | GBFS, sesuai data yang diterbitkan |

Contoh desain: sebuah peta menampilkan pemberhentian trem dan stasiun sepeda. Peta menggunakan data struktural untuk lokasi dan status diperbarui untuk ketersediaan sepeda. Dua lapisan ini membutuhkan mekanisme cache dan pembaruan yang berbeda.

## Perkirakan batasan masing-masing sumber

Periksa versi, kolom opsional, cakupan, dan hak penggunaan. Pengenal hanya bermakna dalam konteksnya: dua penyedia dapat memakai string identik untuk entitas berbeda.

Siapkan pula data yang hilang atau kadaluwarsa. Daftar kosong dari aliran yang tidak tersedia tidak boleh dianggap sebagai tidak adanya layanan. Hindari secara diam-diam mengganti informasi yang tidak diketahui dengan nol.

## Menggunakan aliran langsung atau API

Integrasi langsung membuat Anda bertanggung jawab mengumpulkan, memvalidasi, dan menginterpretasi sumber. API dapat menawarkan kontrak umum, tapi Anda harus selalu membaca cakupan, peringatan, dan ketentuannya.

Untuk kasus penggunaan pertama dengan ROOTE, lihatlah [cara mencari pemberhentian terdekat dengan API](https://www.roote.ai/id/guides/cara-mencari-henti-transit-terdekat-dengan-api/). Mulailah dari kebutuhan antarmuka Anda, lalu periksa kolom yang benar-benar tersedia.

## Membaca ekstrak dan memilih arsitektur

Dalam GTFS Schedule, ekstrak stop_times.txt menghubungkan sebuah perjalanan, sebuah pemberhentian, dan sebuah jadwal keberangkatan yang direncanakan. Contoh ringkas di bawah ini bersifat pembelajaran: ini bukanlah keseluruhan set data GTFS lengkap dan pengidentifikasinya harus dihubungkan dengan trips.txt, stops.txt, dan kalender.

Untuk GTFS Realtime, cari entitas yang berguna: sebuah TripUpdate dapat memperbarui keberangkatan, VehiclePosition menggambarkan posisi, dan Alert menyampaikan informasi layanan. Posisi kendaraan bukan secara otomatis merupakan perkiraan waktu kedatangan. Format yang dikirimkan adalah Protocol Buffers; representasi JSON untuk diagnosis bukan aliran biner referensi.

Dalam GBFS, station_information mendeskripsikan stasiun sedangkan station_status menjelaskan status yang dipublikasikan. Nama beberapa penghitung dan file yang tersedia berubah sesuai versi. Ekstrak JSON di bawah ini menggambarkan GBFS 2.3 dan bidang num_bikes_available serta num_docks_available; pastikan versi sebelum menggunakan contoh.

Peta lokasi dapat dimulai dengan data struktural. Layar keberangkatan berikutnya kemudian membutuhkan pembaruan yang sesuai dan fallback yang secara eksplisit direncanakan. Layar sepeda tersedia harus mengelola penghitung, kondisi penyewaan, dan validitas waktu. Ketiga layar ini tidak secara otomatis berbagi kebijakan cache yang sama.

```
# Extrait pédagogique de stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
trip_demo,08:10:00,08:10:00,stop_demo,1

# Extrait pédagogique de station_status en GBFS 2.3
{
  "station_id": "station_demo",
  "num_bikes_available": 3,
  "num_docks_available": 7,
  "is_installed": true,
  "is_renting": true,
  "is_returning": true,
  "last_reported": 1720000000
}
```

[Memformat ketersediaan sepeda dan kesegarannya](https://www.roote.ai/id/guides/ketersediaan-sepeda-waktu-nyata-cara-penampilan-aplikasi/)

[Memilih API atau MCP untuk produk Anda](https://www.roote.ai/id/guides/api-atau-mcp-pilih-integrasi-mobilitas/)

## Pertanyaan yang sering diajukan

### Apakah GTFS secara otomatis mengandung data waktu nyata?

Tidak. GTFS Schedule merepresentasikan penawaran terencana; informasi terkini terdapat pada aliran lain, terutama GTFS-RT.

### Apakah GBFS memungkinkan membuka kunci sepeda?

GBFS menggambarkan layanan dan data publiknya. Penyewaan dilakukan lewat kemampuan yang disediakan operator.

### Apakah format standar menjamin cakupan lengkap?

Tidak. Format hanya mendefinisikan struktur; cakupan dan informasi yang dipublikasikan tergantung sumber.
