Memetakan jaringan bus Transjakarta
Posted by NaufalFarras on 10 August 2025 in Indonesian (Bahasa Indonesia).Transjakarta, jaringan rute Bus Raya Terpadu (BRT) terpanjang di dunia ini menjadi tulang punggung transportasi umum di dalam Kota Jakarta. Dengan ratusan rute dan ribuan kendaraannya, Transjakarta menjadi bagian penting dalam identitas Kota Jakarta. Namun sayangnya, data rute dan infrastruktur pendukung Transjakarta kurang diminati untuk dipetakan. Hal ini mendorong saya untuk memetakan Transjakarta, setidaknya jaringan koridor utamanya terlebih dahulu.
Mengenal sistem Transjakarta
Transjakarta merupakan sistem jaringan bus kota di Jakarta. Ditinjau dari rutenya, rute Transjakarta terbagi menjadi dua, yakni rute BRT dan non-BRT. Rute BRT merupakan rute yang berjalan sepenuhnya di jalur khusus dan hanya berhenti di halte BRT. Sementara itu, rute non-BRT merupakan rute bus kota yang melayani halte di pinggir jalan dan biasanya tidak melewati jalur khusus. Sebagian kalangan membagi lagi rute non-BRT menjadi rute non-BRT yang juga melayani halte BRT dan rute yang sama sekali tidak melayani halte BRT (sepenuhnya melayani halte biasa di pinggir jalan).
Jalur khusus yang dimaksud pada kenyataannya tidak benar-benar “khusus”. Sebagian jalur khusus memang memiliki pembatas atau separator untuk memisahkan jalur untuk bus dan kendaraan lain. Namun, sebagian lainnya hanya berupa jalan yang diberi marka, sehingga pada kenyataannya juga dipakai oleh kendaraan lain. Sebagian lainnya bahkan tidak memiliki penanda apapun, sehingga bus “BRT” berjalan di jalan yang tidak memiliki perlakuan khusus apapun terhadap bus Transjakarta.
Halte Transjakarta juga cukup unik. Lantai halte di koridor jalur khusus (halte BRT) selalu memiliki level atau ketinggian yang lebih tinggi jika dibandingkan dengan jalan atau trotoar, layaknya peron di stasiun. Desain seperti ini awalnya dimaksudkan untuk melatih penumpang untuk naik bus hanya di halte, berhubung pintu bus BRT juga tinggi sehingga tidak dapat masuk bus dari sembarang tempat. Untuk mengakses halte, sebagian halte dapat diakses dengan pelican crossing (fasilitas penyeberangan jalan, lengkap dengan zebra cross dan lampu lalu lintas) yang kemudian terhubung dengan tangga atau ramp. Sebagian besar lainnya memiliki jembatan penyeberangan orang (JPO), dengan akses masuk halte yang terhubung melalui tangga atau elevator ke JPO.
Bukan hanya halte BRT yang tinggi, Transjakarta juga melayani halte rendah yang biasa ditemui di pinggir jalan. Rute-rute Transjakarta yang melayani halte-halte rendah di pinggir jalan seperti ini sudah pasti merupakan rute non-BRT. Penumpang yang ingin mengakses halte seperti ini tidak perlu menyeberang jalan.
Untuk mengetahui lebih lanjut mengenai Transjakarta, Anda dapat membaca halaman-halaman di situs web Transjakarta atau Wikipedia Transjakarta. Silakan baca pula informasi mengenai transportasi umum di Jakarta yang disusun oleh rekan-rekan Transport for Jakarta.
Masalah dalam data eksisting di OSM
Meskipun sebelumnya saya menyebut bahwa pemetaan transportasi umum di OSM kurang diminati, saya bukanlah kontributor pertama yang menginisiasi pemetaan rute dan infrastruktur Transjakarta. Sebelumnya, sebagian halte, bus stop, dan jalur khusus Transjakarta sudah pernah dipetakan di OSM. Bahkan, terdapat beberapa relation rute Transjakarta yang sudah dibuat. Namun, tentunya dengan kualitas data yang kurang terkoordinasi.
Sebagian besar halte BRT sudah pernah dipetakan di OSM, tetapi hanya berupa point yang mengandung tag “description=”. Point tanpa tagging yang benar tentunya tidak akan muncul di tile peta manapun. Hal serupa juga terjadi di halte biasa, selain halte BRT. Sebagian halte di pinggir jalan sudah pernah dipetakan dengan meletakkan point bus stop, dengan nama “Transjakarta Feeder” atau kesalahan ketik menjadi “Tansjakarta Feeder”. Hal ini bisa dimaklumi karena informasi mengenai transportasi umum baru berkembang dalam beberapa tahun terakhir.
Beberapa relation rute Transjakarta juga sudah dipetakan di OSM. Sebagian besarnya merupakan rute BRT yang hanya memiliki member jalan (highway). Jalan yang digunakan pun tidak sepenuhnya benar karena jalur khusus (busway) saat itu belum sepenuhnya terpetakan.
Sulitnya mencari cara memetakan
Menurut saya, mencari dan mempelajari cara memetakan transportasi umum di OSM cukup sulit (mungkin hal ini pula yang menjadikan sedikitnya minat memetakan transportasi umum). Kontributor yang sebelumnya memetakan transportasi umum biasanya merupakan kontributor yang hanya memetakan daerah sekitarnya dan kebetulan ada fasilitas transportasi umum, atau kontributor yang saat ini sudah tidak aktif. Mencari daerah lain sebagai acuan tagging juga tidak mungkin dilakukan karena pada saat itu hanya Kota Bandung yang sudah terpetakan jaringan transportasi umumnya, itupun hanya jaringan angkot (saya akan bercerita tentang data transportasi umum Bandung di diary berikutnya).
Cara terbaik yang akhirnya saya lakukan ialah trial-and-error, berbasis “konsensus” panduan yang tertulis di OpenStreetMap wiki. Saya membaca belasan atau mungkin puluhan laman di OSM wiki hingga menemukan skema tagging terbaru, yakni Public Transport version 2 (PTv2). Dengan dokumentasi yang ada di OSM wiki, apakah saya sudah dapat memetakan Transjakarta dengan baik dan benar? Tentu saja belum.
Sepanjang memetakan jaringan Transjakarta, saya selalui menemui hal-hal baru yang seharusnya diterapkan dalam proses pemetaan. Contohnya, jalur khusus bus seharusnya diberi tag “highway=busway” alih-alih “highway=service”, jalur tanpa separator yang seharusnya tidak perlu dipetakan terpisah, dan hal-hal lainnya. Saya juga seringkali berdiskusi di Telegram Perkumpulan OpenStreetMap Indonesia (POI) dan DM beberapa kontributor lain untuk mendapatkan wawasan-wawasan baru. Saya juga secara rutin melakukan pengecekan terhadap hasil rendering data di layer Standard dan Transport, serta Geofabrik OSM Inspector untuk memastikan bahwa peta yang dihasilkan sesuai yang saya inginkan. Melalui pendekatan ini, tak jarang saya harus mengulang memetakan koridor BRT dari awal atau melakukan perubahan besar-besaran terhadap suntingan-suntingan saya sebelumnya.
Skema tagging
Berikut adalah skema tagging atau cara menyunting yang saya gunakan saat ini. Sebagian mungkin tidak benar-benar sesuai dengan cara menyunting data OSM pada umumnya, entah memang sengaja saya lakukan maupun tidak.
Jalur khusus
Foto jalur khusus dengan separator (RasyaAbhirama13)
Untuk jalur khusus yang hanya dapat digunakan oleh bus Transjakarta dan dilengkapi dengan separator, berikut adalah tag yang saya sematkan:
https://wiki.openstreetmap.org/wiki/Tag:access=no
https://wiki.openstreetmap.org/wiki/Tag:bus=designated
https://wiki.openstreetmap.org/wiki/Tag:highway=busway
https://wiki.openstreetmap.org/wiki/Tag:motor_vehicle=no
https://wiki.openstreetmap.org/wiki/Tag:lanes=1
https://wiki.openstreetmap.org/wiki/Tag:name=Transjakarta Busway Koridor [nomor koridor]
https://wiki.openstreetmap.org/wiki/Tag:oneway=yes
https://wiki.openstreetmap.org/wiki/Tag:operator=Transjakarta
Selain beberapa tag wajib tersebut, terdapat beberapa informasi yang bisa membantu kelengkapan data:
https://wiki.openstreetmap.org/wiki/Tag:maxspeed=50
https://wiki.openstreetmap.org/wiki/Tag:surface=[asphalt/concrete]
Busway dipetakan terpisah untuk tiap arahnya karena tidak ada atau sangat jarang ditemui jalur bus yang tidak terpisahkan oleh separator atau median jalan, kecuali jalur Koridor 13 yang dapat diklasifikasikan sebagai jalan dua arah untuk segmen busway antara halte-haltenya.
Foto jalur khusus yang hanya berupa marka atau perkerasan yang berbeda (Irvan Cahyo N)
Untuk jalur bus yang tidak memiliki separator, tetapi memiliki marka, seperti di Koridor 14, tidak perlu memetakan busway secara terpisah, melainkan cukup tambahkan tag berikut ke highway eksisting:
https://wiki.openstreetmap.org/wiki/Tag:busway=lane
Sayangnya, jalur khusus bus Transjakarta dengan tag highway=busway tidak di-render oleh layer Standard.
Halte BRT
Seperti yang disebutkan sebelumnya, halte BRT merupakan halte dengan lantai tinggi dan hanya dilayani oleh bus-bus BRT. Menurut saya, dan diskusi dengan kontributor lainnya, halte BRT seharusnya dibedakan secara visual di peta dibandingkan halte atau bus stop biasa. Hal ini karena halte BRT memiliki ukuran dan kapasitas yang cukup besar. Oleh karena itu, tagging OSM untuk halte BRT dianggap sebagai bus station, alih-alih bus stop.
Tiap halte BRT memiliki tiga elemen, yakni sebuah point untuk mendeskripsikan letak halte, sebuah bangunan halte, dan umumnya dua tempat berhenti bus. Meskipun demikian, jumlah masing-masing elemen bergantung pada haltenya. Sebagai contoh, halte-halte di Koridor 9 umumnya memiliki dua bangunan dan dua point halte untuk masing-masing arahnya. Selain itu, jumlah titik berhenti (bus stopping location) bergantung pada jumlah dermaga/pintu halte.
Berikut adalah contoh tag untuk point halte:
https://wiki.openstreetmap.org/wiki/Tag:amenity=bus_station
https://wiki.openstreetmap.org/wiki/Tag:bus=yes
https://wiki.openstreetmap.org/wiki/Tag:highway=bus_stop
https://wiki.openstreetmap.org/wiki/Tag:name=Pasar Senen
https://wiki.openstreetmap.org/wiki/Tag:network=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:network:wikidata=Q1671143
https://wiki.openstreetmap.org/wiki/Tag:old_name=Senen
https://wiki.openstreetmap.org/wiki/Tag:operator=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:public_transport=platform
https://wiki.openstreetmap.org/wiki/Tag:ref=2-12;14-1
route_ref 2;2A;14;7F;14B;M14
https://wiki.openstreetmap.org/wiki/Tag:shelter=yes
https://wiki.openstreetmap.org/wiki/Tag:wikidata=Q19733046
https://wiki.openstreetmap.org/wiki/Tag:wikipedia=en:Pasar Senen
Terdapat dua ref, dengan tag “ref=” digunakan untuk menyatakan nomor halte, sedangkan “route_ref=” sebagai tag opsional untuk rute-rute yang melayani halte.
Apabila dilihat secara seksama, selain tag amenity=bus_station, saya juga menyematkan tag highway=bus_stop dan public_transport=platform. Hal ini supaya halte BRT tetap dapat di-render sebagai titik pemberhentian bus di layer Transportation.
Bangunan halte dipetakan secara terpisah:
https://wiki.openstreetmap.org/wiki/Tag:building=transportation
https://wiki.openstreetmap.org/wiki/Tag:name=Halte Pasar Senen
https://wiki.openstreetmap.org/wiki/Tag:network=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:old_name=Halte Senen
https://wiki.openstreetmap.org/wiki/Tag:operator=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:service=Transjakarta
Penggunaan tambahan kata “Halte” dalam tag “name=” mengikuti kebiasaan yang dilakukan dalam pemetaan bangunan stasiun kereta api sekaligus memberikan variasi nama yang mungkin dicari mengunakan Nominatim.
Titik berhenti bus (bus stopping location) diletakkan di jalan tempat bus berhenti, tepat di samping pintu peron halte yang menjadi akses dari halte ke bus, atau sebaliknya. Untuk halte dengan dua sisi dermaga tempat bus berhenti, minimal terdapat dua titik berhenti bus untuk mengakomodasi tiap arah jalan (contohnya Halte Halim). Halte bus dapat memiliki hanya satu titik berhenti jika hanya melayani satu arah (contohnya Halte Gambir. Halte bus juga bisa memiliki lebih dari dua titik berhenti, terkadang mencapai 6-8 titik untuk mengakomodasi tiap dermaga, contohnya Halte Cawang Sentral.
Foto interior Halte Bundaran HI. Tampak beberapa pintu/dermaga menuju bus yang melayani rute yang berbeda-beda. (RasyaAbhirama13)
Berikut adalah tag untuk bus stopping location, dengan stop Cawang Sentral sebagai contoh:
https://wiki.openstreetmap.org/wiki/Tag:bus=yes
https://wiki.openstreetmap.org/wiki/Tag:local_ref=S-T-U
https://wiki.openstreetmap.org/wiki/Tag:name=Cawang Sentral
https://wiki.openstreetmap.org/wiki/Tag:old_name=Cawang UKI
https://wiki.openstreetmap.org/wiki/Tag:public_transport=stop_position
https://wiki.openstreetmap.org/wiki/Tag:ref=7-9;9-3;10-20
Tag “local_ref=” diisi kode abjad pintu halte. Umumnya, tiap dua atau tiga pintu di halte Transjakarta melayani rute-rute yang sama. Oleh karena itu, dapat dikelompokkan menjadi satu. Tag ini penting untuk disematkan jika Anda ingin memetakan tiap titik berhenti bus.
Tiga elemen di atas kemudian dikelompokkan menjadi satu menggunakan relation Transit Stop Area sebagai berikut:
https://wiki.openstreetmap.org/wiki/Tag:name=Cawang Sentral
https://wiki.openstreetmap.org/wiki/Tag:public_transport=stop_area
https://wiki.openstreetmap.org/wiki/Tag:type=public_transport
Bangunan halte diberi role “building”, titik point halte diberi role “platform”, dan titik berhenti bus diberi titik “stop”. Relation ini juga bisa memiliki member akses halte dari path atau JPO yang diberi role “entrance”. Untuk meringkas relation yang dibutuhkan, transit stop area halte BRT juga dapat memiliki member yang beranggotakan titik bus stop biasa di sekitarnya (lihat relation Cawang Sentral di atas).
Untuk bus stop biasa yang melayani bus non-BRT, tagging yang digunakan cukup simpel karena hanya mengacu pada dokumentasi di (osm.wiki/Public_transport#Buses).
Relation rute
Relation rute bus dalam sistem Transjakarta mengikuti sistem tagging PTv2, contohnya sebagai berikut:
colour=#264598
https://wiki.openstreetmap.org/wiki/Tag:from=Pulogadung
https://wiki.openstreetmap.org/wiki/Tag:name=Transjakarta BRT 2: Pulo Gadung → Monumen Nasional
https://wiki.openstreetmap.org/wiki/Tag:network=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:network:wikidata=Q1671143
https://wiki.openstreetmap.org/wiki/Tag:opening_hours=Mo-Su 05:00-22:00
https://wiki.openstreetmap.org/wiki/Tag:public_transport:version=2
https://wiki.openstreetmap.org/wiki/Tag:ref=2
https://wiki.openstreetmap.org/wiki/Tag:route=bus
https://wiki.openstreetmap.org/wiki/Tag:to=Monumen Nasional
https://wiki.openstreetmap.org/wiki/Tag:type=route
https://wiki.openstreetmap.org/wiki/Tag:wikidata=Q12492246
https://wiki.openstreetmap.org/wiki/Tag:wikipedia=id:Koridor 2 Transjakarta
Tag “colour=” mengikuti warna rute yang ditetapkan oleh Transjakarta.
Tiap rute umumnya memiliki dua relation untuk masing-masing arah. Sebagai contoh, Transjakarta Koridor 2 memiliki sebuah relation untuk rute arah Pulogadung dan relation lain untuk arah Monas. Kedua rute kemudian dikelompokkan menggunakan relation route master, sebagai berikut:
https://wiki.openstreetmap.org/wiki/Tag:name=Transjakarta BRT 2
https://wiki.openstreetmap.org/wiki/Tag:network=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:network:wikidata=Q1671143
https://wiki.openstreetmap.org/wiki/Tag:operator=Transjakarta
https://wiki.openstreetmap.org/wiki/Tag:route_master=bus
https://wiki.openstreetmap.org/wiki/Tag:type=route_master
https://wiki.openstreetmap.org/wiki/Tag:wikidata=Q12492246
https://wiki.openstreetmap.org/wiki/Tag:wikipedia=id:Koridor 2 Transjakarta
Fasilitas pendukung
Hal-hal lain yang harus diperhatikan ialah JPO dan zebra cross. Fitur-fitur ini mengikuti apa yang ada dalam dokumentasi di OSM wiki.
Render
Selain keakuratan tagging dan informasi yang tertera, penting supaya hasil pemetaan dapat muncul di peta. Berikut adalah contoh data yang berhasil terpetakan.
Render halte di layer Transport
Render halte di layer Standard
Render halte di layer Tracestack Topo
Saran
Ketersediaan informasi transportasi umum merupakan salah satu cara untuk mendukung mobilitas yang berkelanjutan. Ketika saya mulai menyunting topik transportasi umum, beberapa kontributor lainnya juga turut membantu, contohnya memberi saran, atau ikut bergerak secara langsung melengkapi koridor yang belum sempat saya sunting. Harapannya, dengan langkah kecil ini, dapat mendorong lebih banyak kontributor untuk berkontribusi di topik transportasi umum. (Saya tidak dapat menyebutkan kontributor lain yang terlibat karena lupa. Meskipun demikian, saya berterima kasih kepada siapapun itu).
Satu hal menggelitik saat saya melakukan proyek kecil-kecilan ini ialah ketika saya meminta kejelasan mengenai data kepada pihak Transjakarta. Transjakarta merilis GTFS di situs PPID mereka. Salah satu isinya ialah koordinat halte dan rute. Saya berencana melakukan import massal GTFS tersebut ke OSM, tetapi OSM memiliki sebuah aturan yang mengharuskan lisensi data yang diimpor sesuai dengan lisensi OSM. Oleh karena itu, saya mengajukan klarifikasi atas lisensi data GTFS tersebut ke pihak Transjakarta melalui email, tetapi jawaban yang saya dapatkan ialah sebagai berikut:
bisa bersurat terlebih dahulu ya mas
Rupanya ekspektasi saya terlalu berlebihan. Meminta kejelasan lisensi saja tetap harus bersurat terlebih dahulu ke Transjakarta yang berkantor di Cawang. Akhirnya, saya beranggapan bahwa import massal membutuhkan usaha yang terlalu besar untuk kegiatan saya yang sukarela ini dan membatalkan rencana tersebut.
Saya berharap operator layanan dan instansi pemerintah untuk lebih terbuka terhadap data transportasi umum. Dengan lebih tersebarnya data transportasi umum, saya yakin banyak hal positif yang bisa dihasilkan.
Discussion