Indonesian railway locomotive at Tanah Abang station, Jakarta
Practical

Trains in Indonesia: Java, Jakarta and the limits of rail

Indonesia's railway is a Java story. The island has a fast, comfortable and cheap intercity network, while the rest of the country relies on buses, boats and planes. Knowing where the rails end is half the planning.

A KAI locomotive at Tanah Abang. Java's intercity trains run from city centre to city centre. Dasnusantara, CC BY-SA 4.0

The train is the most comfortable way to cross Java. City-centre stations, reclining seats, power sockets and a smooth ride make the eight-hour Jakarta to Surabaya journey feel shorter than the equivalent bus trip, and the fare is a fraction of a last-minute flight.

Outside Java the picture changes. Sumatra has a few short lines around Medan and Palembang's LRT, Sulawesi has no passenger rail, and Bali has none at all. For most of the archipelago, the train is not an option, which is why the domestic flight network matters so much.

The main Java routes

The busiest corridor runs from Jakarta through Cirebon, Purwokerto, Yogyakarta and Solo to Surabaya. The Argo Bromo Anggrek covers Jakarta to Surabaya in about eight hours; the Taksaka does Jakarta to Yogyakarta in seven. The Argo Parahyangan links Jakarta and Bandung in three hours through the mountains, one of the prettiest rides on the network.

East of Surabaya, trains continue to Malang and Banyuwangi, where the ferry to Bali waits. The route is slower and the scenery is agricultural, with rice fields and volcanoes on the horizon. For Bromo, the usual approach is a train to Malang or Surabaya followed by a road transfer to Cemoro Lawang.

  • Jakarta to Bandung: 3 hours, Argo Parahyangan
  • Jakarta to Yogyakarta: 7 hours, Taksaka
  • Jakarta to Surabaya: 8 hours, Argo Bromo Anggrek
  • Surabaya to Banyuwangi: onward to the Bali ferry

Classes and what you get

Eksekutif is the premium class: reclining seats, air conditioning, legroom and a meal or snack on longer routes. Bisnis is a step down with less space, and Ekonomi is basic but cheap and surprisingly comfortable on the newer trains. Prices vary by train and demand, and the cheapest seats sell out first.

On overnight trains, the eksekutif carriage converts to a flat berth on some services, and a blanket is provided. It is not a hotel, but it saves a night's accommodation and delivers you to the city centre in the morning. Breakfast is usually a box of rice and something fried, which is better than it sounds.

All classes are reserved, and the ticket is tied to your name and ID or passport. Arrive 30 minutes before departure for the security check and platform gate. Larger stations have lounges for eksekutif passengers, and most have food stalls on the platform.

Jakarta MRT train leaving ASEAN station
Jakarta's MRT is clean, cheap and the fastest way under the city's traffic.

Booking and tickets

Book on the KAI Access app or the KAI website, both of which accept foreign cards, or at a station counter. Sales usually open weeks ahead, and popular weekend trains sell out. The app issues an e-ticket with a QR code; you can board with the code on your phone at most stations.

If you book through a reseller, check that the name matches your passport exactly. Names cannot be changed after purchase, and a mismatch can mean buying a new ticket. Refunds are possible before departure with a fee, and no-shows lose the fare.

Jakarta's urban rail

Jakarta has an MRT line from Lebak Bulus to Bundaran HI, an LRT network linking the centre with Bekasi and Depok, and the KRL commuter trains that reach Bogor, Tangerang and Bekasi. Fares are cheap, paid with a stored-value card or a QR code, and the trains are air-conditioned and frequent.

For visitors, the MRT is useful for reaching the old town and the Sudirman business district, and the KRL for Bogor's botanical gardens. Avoid the commuter trains at 7am and 5pm on weekdays, when they are packed beyond anything a tourist expects.

Sumatra, Sulawesi and the rest

Sumatra has a limited network: the Medan to Belawan line, the airport rail link, and Palembang's LRT, built for the 2018 Asian Games. There is no rail connection between Sumatra and Java, despite the ferry link at Merak. Sulawesi, Kalimantan, Bali and the eastern islands have no passenger trains.

Plans for new lines appear regularly, but for now the practical advice is to check before assuming. A route that looks like a train on a map may be a bus with a railway name, or a proposed line that does not carry passengers yet.

Train versus plane and bus

On Java, the train wins for journeys between three and nine hours once you count the airport transfer and the security queue. It loses for very long trips, where a one-hour flight from Jakarta to Surabaya is cheaper than a last-minute eksekutif seat. Buses are cheaper still, but slower and less comfortable.

A useful comparison: Jakarta to Yogyakarta by train is about seven hours and drops you at Tugu station, ten minutes from the kraton. By plane it is an hour in the air plus two hours at Soekarno-Hatta and another hour into the city, so the saving is smaller than the timetable suggests. The train also lets you see the rice fields and the kampungs that the flight hides.

For Yogyakarta and Solo, the train is clearly the best option from Jakarta. For Bali, there is no train, only the ferry. For Lake Toba, the train goes as far as Medan and the rest is road.

Practical notes

Bring your passport, arrive early, and keep the e-ticket offline. Food is sold on board and at stations, but vegetarian options are limited. The air conditioning is strong, so a light layer helps on overnight trains.

Smoking is banned in the carriages and on the platforms of the larger stations, and the fine is enforced. Luggage racks are above the seats and fill quickly; a bag you can lift overhead is easier than a hard case on a busy Friday train.

  • Passport needed for ticket matching
  • Arrive 30 minutes before departure
  • Eksekutif for long daytime trips
  • Bring a layer for air conditioning
  • No trains on Bali, Sulawesi or Kalimantan

The practicalities

Everything below is a range, not a quote. Confirm ferry times and car rates locally; both move with fuel and season.

Operator
KAI, Java network
Best route
Jakarta to Yogyakarta
Classes
Eksekutif, bisnis, ekonomi
Booking
KAI Access app
Urban rail
Jakarta MRT, LRT, KRL
No trains
Bali, Sulawesi, Kalimantan

Questions people actually ask

Is there a train from Jakarta to Bali?

No. The railway ends at Banyuwangi in East Java, where you take the ferry to Gilimanuk in Bali and continue by road.

How do I book Indonesian train tickets?

Use the KAI Access app or website, which accept foreign cards, or buy at a station counter. Book ahead for weekends and holidays.

What is the difference between eksekutif and ekonomi?

Eksekutif has reclining seats, more legroom and air conditioning; ekonomi is basic and cheaper. All classes are reserved and comfortable on newer trains.

Does Jakarta have a metro?

Yes. The MRT runs from Lebak Bulus to Bundaran HI, with LRT and KRL commuter lines covering the wider city. Fares are cheap and paid by card or QR code.