On this page
Tropical beach

Public Transport in Indonesia: A Beginner’s Guide to Buses, Trains & Ferries

Indonesia’s transport system looks chaotic from the outside. In 2026, first-time visitors often arrive at Soekarno-Hatta or Ngurah Rai with a rough idea of where they want to go and very little idea of how to get there without paying tourist prices for every single trip. The country spans over 17,000 islands, five time zones, and a population of nearly 280 million people — and the public transport options reflect all of that variety. There is no single answer, no universal app, no one pass that covers everything. What there is, however, is a surprisingly functional network of trains, buses, boats, and rail systems that — once you understand the logic — can move you efficiently and cheaply almost anywhere you want to go.

Domestic Flights: When Flying Is Actually the Practical Choice

Indonesia is an Archipelago. For most inter-island travel, flying is not a luxury — it is simply the most sensible option. A journey from Jakarta to Makassar that would take days by sea takes under two hours by air. Understanding the domestic airline landscape saves money and frustration.

The four main carriers you will deal with are Garuda Indonesia (garuda-indonesia.com), the national flag carrier with full-service standards; Citilink (citilink.co.id), Garuda’s low-cost arm; Lion Air (lionair.co.id), the largest private low-cost carrier; and Batik Air (batikair.com), Lion Air’s full-service subsidiary. For budget travel, Citilink and Lion Air are your main tools. For slightly more comfort and more reliable baggage allowances, Batik Air and Garuda are worth the premium.

Tickets are best booked through the airlines’ own apps or websites, or through Indonesian OTAs like Traveloka or Tiket.com, which often display all airlines on one screen for easy comparison. Book at least two to three weeks ahead for popular routes.

What Fares Look Like in 2026

  • Short routes (Jakarta–Bandung, Bali–Lombok): IDR 400,000 – IDR 900,000 one-way economy
  • What Fares Look Like in 2026
    📷 Photo by Jalal Kelink on Unsplash.
  • Medium routes (Jakarta–Surabaya, Jakarta–Bali): IDR 700,000 – IDR 1,500,000
  • Long routes (Jakarta–Medan, Jakarta–Jayapura): IDR 1,200,000 – IDR 3,500,000+

Low-cost carriers typically include only 7–10 kg of cabin baggage. Checked luggage costs extra and must be added at booking — adding it at the airport is significantly more expensive. Batik Air and Garuda Indonesia usually include 20 kg of checked baggage for economy class, but always verify when booking because policies shift periodically.

One practical note: domestic airport terminals in Indonesia vary enormously. Jakarta’s Terminal 1, 2, and 3 serve different airlines. Always check which terminal your airline uses before arriving.

Jakarta’s Urban Rail Network: MRT, LRT Jakarta, and Jabodebek LRT

If you are spending time in Jakarta, understanding the rail network saves you from sitting in some of the worst traffic in Southeast Asia. The city now runs three distinct rail systems, and they cover more ground than most visitors realise.

Jakarta MRT

The Jakarta MRT runs its North-South Line between Lebak Bulus Grab in the south and Bundaran HI in the city centre. Trains run from approximately 05:00 to 24:00 daily, with five-minute intervals during peak hours and around ten minutes off-peak. Fares are distance-based, ranging from IDR 3,000 to IDR 15,000 — a full end-to-end journey from Lebak Bulus Grab to Bundaran HI costs IDR 14,000. That is less than a single kilometre in a taxi.

Payment works via Multi-Trip Cards (MTT), available at any MRT station for IDR 25,000 (the card fee itself, reloadable), bank-issued electronic money cards like e-Money (Mandiri), Flazz (BCA), Brizzi (BRI), TapCash (BNI), and JakCard (Bank DKI), or QR code payment via apps including MyMRTJ, Gojek, Grab, DANA, OVO, AstraPay, iSaku, and LinkAja. The official website is jakartamrt.co.id.

LRT Jakarta

The LRT Jakarta covers the Velodrome (Rawamangun) to Pegangsaan Dua (Kelapa Gading) corridor, operating approximately 05:30 to 23:00 with 10–15 minute intervals. The fare is a flat IDR 5,000 for any distance. Payment uses the same bank-issued electronic money cards as the MRT, with QR code integration being progressively added. Find schedules at lrtjakarta.co.id.

LRT Jakarta
📷 Photo by Indah Angga on Unsplash.

Jabodebek LRT

The Jabodebek LRT, which fully came into service in late 2023 and has been improving its operations throughout 2024 and 2025, connects Jakarta’s central Dukuh Atas hub to the satellite areas of Cibubur (Harjamukti) and Bekasi (Jatimulya). It runs from around 05:00 to 23:30, with six to twelve-minute peak-hour intervals. Fares start at IDR 5,000 for the first kilometre, then IDR 700 per subsequent kilometre, capping at around IDR 25,000 for the full line. Payment requires electronic money cards or QR code via the KAI Access app. Full details at lrtjabodebek.co.id.

Pro Tip: In 2026, the single most useful item for navigating Jakarta’s rail and bus network is a Flazz card (BCA) or e-Money card (Mandiri). Both work on the MRT, all three LRT lines, TransJakarta buses, and KRL commuter trains. Pick one up at any BCA or Mandiri branch, or at select convenience stores, and load at least IDR 50,000 before you start exploring. It removes the need to queue for single-trip tickets at every station.

TransJakarta and KRL Commuter Trains: Getting Around Greater Jakarta on the Ground

The rail lines cover key corridors, but Jakarta’s surface transport — TransJakarta buses and the KRL Commuter train network — fills in the rest of the map.

TransJakarta BRT

TransJakarta is one of the largest bus rapid transit networks in the world by route length. It runs over 200 routes, including main dedicated-lane corridors and feeder services that connect residential neighbourhoods to the trunk lines. Air-conditioned buses run on the main corridors essentially 24 hours, though frequency drops significantly late at night. During daytime hours the network is busy, functional, and deeply cheap.

TransJakarta BRT
📷 Photo by Robbi on Unsplash.

The flat fare is IDR 3,500 per journey, regardless of how far you travel or how many transfers you make within the system without exiting. Cash is not accepted — only electronic money cards (e-Money, Flazz, Brizzi, TapCash, JakCard). Tap in when boarding, tap out when exiting. The official site is transjakarta.co.id.

In recent years, TransJakarta has worked to improve connections with MRT and KRL stations, meaning you can now build quite efficient multi-modal journeys across the city using just one card and two or three different transport systems.

KRL Commuter Trains (Jabodetabek)

The KRL Commuterline (Kereta Rel Listrik) is the commuter backbone connecting Jakarta to Bogor, Depok, Tangerang, and Bekasi. Trains run from around 04:00 to 24:00, air-conditioned, and very frequent during peak hours — five to ten-minute intervals. Off-peak, expect fifteen to thirty minutes between trains.

Fares are distance-based: IDR 3,000 for the first 25 km, then IDR 1,000 for every additional 10 km. A Bogor to Jakarta Kota journey (roughly 55 km) costs around IDR 6,000. For reference, the same trip in a taxi would cost IDR 200,000 or more depending on traffic.

The official reusable card is the KMT (Kartu Multi Trip), available at any KRL station for IDR 30,000 including IDR 10,000 of starting balance. Bank electronic money cards (e-Money, Flazz, etc.) also work. Since 2024, QR code payment via the Gojek app’s GoTransit feature and LinkAja has been available, which is convenient if you already have Gojek set up on your phone. The KRL website is commuterline.id.

Intercity Trains on Java: The KAI Network and the Whoosh High-Speed Option

For travel between cities on Java — Jakarta to Yogyakarta, Surabaya, Bandung — the train is often the best combination of comfort, price, and scenery. Watching the terraced rice fields slide past as you roll through Central Java at sunrise is one of those travel moments that stays with you.

Intercity Trains on Java: The KAI Network and the Whoosh High-Speed Option
📷 Photo by Bayu Prahara on Unsplash.

PT Kereta Api Indonesia (KAI) operates the intercity network. Booking is easiest through the KAI Access app (strongly recommended) or at booking.kai.id. You can also use Traveloka or Tiket.com. Station ticket counters exist, but for popular routes and executive class, trains sell out days or even weeks in advance — always book online.

Train Classes

  • Ekonomi (Economy): Air-conditioned, non-reclining seats in a 3-2 configuration. Functional but basic for overnight routes.
  • Ekonomi Premium: A newer class introduced more widely across the fleet, offering reclining seats and more legroom than standard economy.
  • Eksekutif (Executive): Fully reclining seats in a 2-2 configuration, power outlets, more legroom. The right choice for journeys over four hours.

Key Routes and Fares

  • Jakarta – Yogyakarta: Executive IDR 300,000 – IDR 550,000 / Economy IDR 150,000 – IDR 300,000 (approximately 6–7 hours)
  • Jakarta – Surabaya: Executive IDR 400,000 – IDR 700,000 / Economy IDR 200,000 – IDR 400,000 (approximately 9–11 hours)
  • Jakarta – Bandung (Argo Parahyangan): Executive IDR 150,000 – IDR 200,000 / Economy IDR 100,000 – IDR 150,000 (approximately 3 hours)

The Whoosh High-Speed Train

Since its full launch in late 2023, the Whoosh high-speed train has fundamentally changed Jakarta–Bandung travel. Running from Halim station in East Jakarta to Padalarang or Tegalluar near Bandung, it covers the route in approximately 30–45 minutes. Fares sit at IDR 250,000 – IDR 350,000 one-way. You then connect to Bandung city centre via a short feeder train. It is not the cheapest option, but for a day trip to Bandung, it is genuinely transformative compared to sitting on the Cipularang toll road in traffic.

Gojek and Grab: The Unofficial Backbone of Daily Urban Travel

Ask any expat or long-term visitor what single app made the biggest difference to life in Indonesia, and most will say Gojek. In 2026, Gojek and Grab together cover essentially every urban area in the country and have quietly become the default solution for the “last kilometre” problem that public transport networks everywhere struggle with.

Gojek and Grab: The Unofficial Backbone of Daily Urban Travel
📷 Photo by luthfian alfajr on Unsplash.

Gojek offers GoRide (motorcycle taxi) and GoCar (car). Grab offers GrabBike and GrabCar. Both apps work on the same principle: enter your destination, see the price upfront, confirm, and your driver comes to you.

Setting Up

  1. Download Gojek or Grab from the Google Play Store or Apple App Store.
  2. Register — a local Indonesian SIM number makes this significantly smoother, though international numbers work.
  3. For payment, link a credit or debit card, or use the in-app wallets: GoPay for Gojek and OVO for Grab. Both wallets can be topped up via bank transfer or at convenience stores. Cash payment to the driver is also accepted on most rides.

What to Expect to Pay

For a five-kilometre ride: ojek (motorcycle) runs IDR 10,000 – IDR 25,000, while a car sits at IDR 20,000 – IDR 50,000. Both are subject to dynamic pricing — fares spike during rush hour, rain, and busy public holidays. The fare shown in-app before you confirm is what you pay, so always check it.

Always confirm the driver’s name and vehicle plate number match what the app shows before you get in or get on. For GoRide and GrabBike, the driver is required to bring a spare helmet — wear it.

PELNI Ferries: Slow Travel Across the Archipelago

PELNI (Pelayaran Nasional Indonesia) operates a fleet of large passenger ships connecting Indonesia’s major islands. These are not fast boats. A PELNI journey from Jakarta’s Tanjung Priok port to Surabaya takes around 24 hours. From Surabaya to Makassar in Sulawesi, expect around 36 hours. From Makassar to Ambon in Maluku, roughly 48 hours.

This sounds like a drawback, but for budget travellers or anyone wanting a genuine cross-archipelago experience, PELNI is remarkable. The economy class dormitories with bunk beds fill up with Indonesian families, traders, students, and soldiers. The smell of instant noodles and ocean air, the sound of shared conversations across a dozen regional languages, the slow appearance of new island profiles on the horizon — it is Indonesia at its most unfiltered.

PELNI Ferries: Slow Travel Across the Archipelago
📷 Photo by Kenny Letsoin on Unsplash.

Classes and Fares

  • Ekonomi: Large shared dormitories with bunk beds. Basic but functional. Food is typically included for multi-day routes.
  • Classes 1A, 1B, 2A, 2B: Private or semi-private cabins with air-conditioning and fewer beds per room.

Sample economy fares: Jakarta (Tanjung Priok) to Surabaya IDR 250,000 – IDR 400,000; Surabaya to Makassar IDR 350,000 – IDR 600,000; Makassar to Ambon IDR 400,000 – IDR 700,000. Cabin class fares are higher depending on the route.

Book at pelni.co.id, through the Pelni Mobile app, at PELNI branch offices in port cities, or through local travel agents. PELNI schedules change, so always confirm departure times on the official site before committing to plans around them.

Fast Boats Between Bali, Lombok, and the Gili Islands

For the Bali–Lombok–Gili triangle, fast boats are the standard connection. The journey from Padang Bai on Bali’s east coast to Gili Trawangan takes roughly 1.5 to 3 hours depending on your departure port and the number of stops. From Sanur or Serangan in southern Bali, routes are longer but often more convenient if you are already staying in that area.

Departure Ports and Operators

  • From Bali: Padang Bai, Sanur, Serangan
  • To: Gili Trawangan, Gili Meno, Gili Air, Bangsal (mainland Lombok)
  • Reputable operators: BlueWater Express, Gili Getaway, Eka Jaya
  • Booking platforms: GiliTickets.com, 12Go.asia, or directly with operators

Fares

  • Padang Bai to Gili Trawangan: IDR 300,000 – IDR 600,000 one-way
  • Sanur/Serangan to Gili Trawangan: IDR 400,000 – IDR 750,000 one-way

Since 2024, safety oversight on fast boat operators has been tightened, with stricter vessel maintenance requirements now in effect. Prices have edged slightly upward as a result of these compliance costs — but given past incidents on this crossing, the improved standards are genuinely welcome. Always choose operators who enforce life jacket wearing as standard. If the weather looks rough and the boat captain seems hesitant, take that hesitation seriously — cancellations happen and are far preferable to the alternative.

Fares
📷 Photo by Abdul Ridwan on Unsplash.

Becak and Bajaj: Traditional Transport That Still Has Its Place

In a country where ride-hailing apps have disrupted almost every corner of urban transport, the becak and bajaj survive — not as a relic kept alive for tourists, but because they genuinely serve needs that motorcycles and cars cannot always meet.

A becak is a three-wheeled cycle rickshaw where the passenger sits in front. They are largely gone from central Jakarta, but still very much present in smaller cities, older urban neighbourhoods, and towns across Java and Sumatra. Around Kota Tua (Batavia Old Town) in Jakarta, they remain part of the streetscape — and riding one through the narrow colonial-era lanes, with the clatter of the driver pedalling behind you and the faint smell of clove cigarettes in the air, is a different kind of Jakarta entirely.

A bajaj is a three-wheeled motorised auto-rickshaw — the orange tuk-tuks that still navigate Jakarta’s tighter streets where cars cannot easily go. Both becak and bajaj require price negotiation before you get in. No exceptions.

Approximate Fares

  • Becak (1–2 km): IDR 15,000 – IDR 50,000, depending on location and bargaining
  • Bajaj (2–5 km): IDR 20,000 – IDR 70,000

These fares have crept upward slightly in 2026 as the number of operators has declined. The reduced supply gives remaining drivers a bit more pricing power. Always agree on a number before the wheels start moving.

2026 Budget Reality: What Public Transport Actually Costs

Here is a straightforward breakdown of what you will spend getting around Indonesia on public transport in 2026, across three spending levels.

2026 Budget Reality: What Public Transport Actually Costs
📷 Photo by Abdul Ridwan on Unsplash.

Budget Traveller

  • Jakarta city day (MRT + TransJakarta + KRL): IDR 15,000 – IDR 30,000 total
  • Ojek ride (5 km): IDR 10,000 – IDR 25,000
  • Intercity train economy (Jakarta–Yogyakarta): IDR 150,000 – IDR 300,000
  • PELNI ferry economy (Jakarta–Surabaya): IDR 250,000 – IDR 400,000
  • Fast boat Bali–Gili Trawangan: IDR 300,000 – IDR 450,000

Mid-Range Traveller

  • GrabCar ride (5 km): IDR 20,000 – IDR 50,000
  • Intercity train executive class (Jakarta–Yogyakarta): IDR 300,000 – IDR 550,000
  • Domestic flight economy (Jakarta–Bali, Lion Air/Citilink): IDR 700,000 – IDR 1,200,000
  • Fast boat (Sanur–Gili Trawangan, named operator): IDR 500,000 – IDR 650,000

Comfortable Traveller

  • Domestic flight economy (Jakarta–Bali, Garuda/Batik Air): IDR 1,000,000 – IDR 1,500,000
  • Whoosh high-speed train (Jakarta–Bandung): IDR 250,000 – IDR 350,000
  • Intercity train executive (Jakarta–Surabaya): IDR 400,000 – IDR 700,000
  • PELNI cabin class: varies by route, typically 2x–3x economy fare

Common Mistakes Beginners Make (and How to Avoid Them)

A few specific errors come up again and again with first-time visitors navigating Indonesian transport.

Trying to pay cash on TransJakarta or the MRT

Both systems are fully cashless. Turning up without an electronic money card means you cannot board. Get a Flazz or e-Money card on arrival and keep it loaded.

Booking intercity train tickets too late

Executive class on Jakarta–Yogyakarta or Jakarta–Surabaya routes sells out fast, especially around Indonesian public holidays (Lebaran, Natal, Tahun Baru). If your travel dates are fixed, book the moment KAI opens tickets — usually 90 days in advance via the KAI Access app.

Ignoring the baggage rules on low-cost carriers

Lion Air and Citilink include only carry-on baggage by default. Adding checked luggage at the airport counter costs significantly more than pre-purchasing it at booking. Check and add baggage when you buy the ticket.

Negotiating after the ride with becak or bajaj

This ends badly. The price conversation happens before you get in, always. If no price is set beforehand, the driver names whatever number they like when you arrive, and the resulting disagreement is unpleasant for everyone.

Negotiating after the ride with becak or bajaj
📷 Photo by dulz muhammad on Unsplash.

Choosing an unknown fast boat operator to save IDR 50,000

The Bali–Gili crossing has seen serious incidents with boats from poorly maintained operators. The price difference between a known operator and an unknown one is marginal. Stick to BlueWater Express, Gili Getaway, Eka Jaya, or similarly established companies, and book through GiliTickets.com or 12Go.asia rather than a random beachside stall.

Assuming Gojek or Grab coverage everywhere

Both apps work well across Java and Bali. In smaller towns, remote areas, and many parts of eastern Indonesia, coverage is patchy or non-existent. In those situations, local ojek drivers near markets and transport hubs are your practical alternative — cash only, negotiate first.

Frequently Asked Questions

Do I need cash to use public transport in Indonesia?

For Jakarta’s MRT, LRT, TransJakarta, and KRL trains, cash is not accepted — you need an electronic money card or supported payment app. For intercity trains, you pay at booking online. For PELNI ferries, becak, bajaj, and local ojek, cash remains essential. Always carry a mix of both, especially outside major cities.

What is the easiest way to travel between Bali and Lombok?

Fast boats are the standard choice for most travellers. Journey time is 1.5 to 3 hours depending on departure port. Fares run IDR 300,000 – IDR 750,000 one-way. Short domestic flights are also available and competitive on time, particularly if you are heading to Lombok city rather than the Gili Islands directly.

Is the KAI Access app the only way to book train tickets in Indonesia?

No, but it is the most practical. You can also book at booking.kai.id, through Traveloka or Tiket.com, or at station ticket counters. The KAI Access app is recommended because it lets you pick seats, manage changes, and receive your ticket digitally without a printed version.

How do I get from central Jakarta to the airport using public transport?

The Airport Railink Service (KCIC Railink) connects Manggarai station in central Jakarta to Soekarno-Hatta International Airport (CGK). Trains run every 30 minutes, the journey takes approximately 50–60 minutes, and the fare is IDR 70,000. This is the fastest and most predictable option, especially during peak traffic hours when taxis can take over two hours.

Are Gojek and Grab safe to use in Indonesia?

Yes, both platforms are widely used and generally reliable in urban areas across Indonesia. Always verify the driver’s name, photo, and vehicle plate in the app before boarding. For GoRide and GrabBike, wear the helmet provided. Avoid requesting pick-up from unmarked or poorly lit locations late at night, as you would anywhere.


📷 Featured image by Salman Rameli on Unsplash.

Accessibility Menu (CTRL+U)

EN
English (USA)
Accessibility Profiles
i
XL Oversized Widget
Widget Position
Hide Widget (30s)
Powered by PageDr.com