followthewiatr

All posts

Getting around Java by train: routes, classes, tickets

Jakarta to Yogyakarta by train is 6 h 30 min and 490,000–570,000 IDR in Eksekutif class. KAI routes, classes, and why you book on tiket.com, not the KAI app.

The Prambanan temple complex near Yogyakarta — stone towers at the end of a garden path under a cloudy sky

The easiest way to move around Java is the train. The KAI network (Kereta Api Indonesia) links Jakarta, Bandung, Yogyakarta, Solo, Surabaya, Malang and Banyuwangi, and the run from Jakarta to Yogyakarta in Eksekutif class takes 6 h 30 min for 490,000–570,000 IDR. There is one catch that trips up most visitors: you cannot register on the official KAI Access app without an Indonesian phone number. So you buy through tiket.com or 12go.asia instead. After that it is just a matter of class and departure time.

One thing to know upfront: the rails only cover Java and parts of Sumatra. No train reaches Bali or Lombok, so to keep heading east you switch to a ferry or a flight.

The main routes and prices

Route Class Price (IDR) Time
Jakarta (Gambir) → Yogyakarta (Tugu) Eksekutif 490,000–570,000 6 h 30 min
Jakarta (Pasar Senen) → Yogyakarta Ekonomi 74,000–350,000 ~7 h 30 min
Yogyakarta (Tugu) → Surabaya (Gubeng) Ekonomi/Eksekutif 80,000–320,000 3 h 27 min (fastest)
Surabaya → Banyuwangi (base for Ijen) Ekonomi/Panoramic 56,000–600,000 ~6–7 h
Solo → Yogyakarta (KRL) Commuter 8,000 ~1 h 10–15 min
Jakarta (Halim) → Bandung (Whoosh) Kereta Cepat 250,000–600,000 50 min

Yogyakarta to Surabaya runs 15 times a day, so you can almost always find a seat. Bandung is served by the Whoosh high-speed line at up to 350 km/h with 31 departures a day, but it leaves from Halim station on the east side of Jakarta, not Gambir.

Classes: from Ekonomi to Eksekutif

Ekonomi has air conditioning and fixed bench seats reclined to about 90 degrees. It is fine under three hours and tiring beyond that. Bisnis gives seats that recline to roughly 120 degrees. Eksekutif has roomy seats adjustable to 140 degrees, USB sockets and leg rests, and it is what most travellers pick for anything six hours or longer. Above it sit Luxury Eksekutif and a two-berth Suite Class, though those creep toward the price of a flight.

A station detail worth remembering in Jakarta: Eksekutif and Luxury leave from Gambir (GMR) in the centre, while cheaper Ekonomi trains go from Pasar Senen (PSE). They are two separate stations, easy to mix up when you book.

How to buy a ticket as a foreigner

This is where the whole thing turns. The official KAI Access app and the kai.id site both need an Indonesian phone number for SMS verification, so you cannot open an account. Buy through resellers that take foreign cards:

Channel Foreign cards Note
tiket.com/en yes English interface, easiest for foreigners
12go.asia yes Issues a voucher; works around the no-Indonesian-number problem, higher fees
Traveloka yes Simple interface; will not sell Whoosh tickets
KAI Access (app) no Needs an Indonesian phone number
Indomaret / Alfamart yes (cash) Print your boarding pass at least 10 min before departure

Booking opens 45 days before departure (D-45), and the most popular trains (Taksaka from Jakarta to Yogyakarta, Sancaka from Yogyakarta to Surabaya) vanish within hours. Buy 7–14 days out. Since 2025 a QR e-ticket on your phone is enough; no paper needed. You give a passport number when booking, so carry the passport on the train for the occasional check.

The cheapest ride on Java: Solo–Yogyakarta KRL

If you are doing the Yogyakarta–Solo loop, you take the KRL Commuter Line for a flat 8,000 IDR, whatever the distance. The trip is about 1 h 10–15 min. It does not work like a long-distance train: you don't buy in the KAI app or at the gate. You tap in with a Kartu Multi Trip card (KMT, 30,000 IDR including 10,000 of credit), a regular e-money card, or QRIS through the Gojek app (its GoTransit feature). No advance booking. It is the best transport deal on the whole island.

On the train: what to pack and expect

The air conditioning on KAI trains can be brutal, so a hoodie earns its place even in the heat. The official baggage limit is 20 kg, 4 pieces, max 70×48×30 cm per person; a big suitcase may not fit the Ekonomi rack, so a backpack is easier. Eksekutif and Luxury have a meal cart at 15,000–30,000 IDR a dish. Ekonomi can run 15–45 minutes late, while Eksekutif usually keeps time. One date to dodge if you can: around Lebaran (Eid al-Fitr), tickets sell out weeks ahead and prices jump.

Where the rails take you

The same line delivers you to Java's two loudest volcanoes. From Surabaya you ride to Banyuwangi, the base for a night hike to the blue fire of Kawah Ijen. And to catch sunrise on Bromo without a tour, you pair the train with a local bus. From Banyuwangi you cross to Bali on the ferry from Ketapang to Gilimanuk: a foot passenger pays 10,600 IDR, the boat runs around the clock every 30–60 minutes, and foot passengers don't need a booking.

The full day-by-day route is in the guide

This post explains the train system itself. The full overland across Java, with connection times, ticket prices and a daily budget, is in the East Java guide. And if you're still shaping a first trip, start with the free 5-day Java plan: the route, prices and stays, step by step.

FAQ

What is the best way to get around Java?

KAI trains. The network links Jakarta, Bandung, Yogyakarta, Solo, Surabaya, Malang and Banyuwangi. Jakarta to Yogyakarta is 6 h 30 min in Eksekutif class, with 19 departures a day. Trains only run on Java and parts of Sumatra; Bali and Lombok have none.

How do I buy a KAI ticket as a foreigner?

Through tiket.com/en or 12go.asia; both take foreign cards. The official KAI Access app needs an Indonesian phone number for its SMS code, so it won't work for tourists. Booking opens 45 days before departure; buy 7–14 days ahead on popular routes.

How much is the train from Jakarta to Yogyakarta?

Eksekutif from Gambir station: 490,000–570,000 IDR, about 6 h 30 min. Ekonomi from Pasar Senen: 74,000–350,000 IDR, about 7 h 30 min. These are two different stations, so check which one your train leaves from when you book.

What is the cheapest train on Java?

The Solo–Yogyakarta KRL Commuter Line: a flat 8,000 IDR regardless of distance, about 1 h 10–15 min. You pay with a KMT card, e-money, or QRIS through the Gojek app (GoTransit), not the KAI app, and not a paper ticket.

Free plan: 5 days on Java

All the times, prices and names are in the full PDF plan — route, budget, mistakes. One email, the plan lands right away.

Get the plan (PDF)