Java Train Travel Guide: KAI Classes, Routes, Booking & Tips

· 8 min read Practical
KAI locomotive at Madiun station, East Java, Indonesia

Java’s intercity rail network, operated by Kereta Api Indonesia (KAI), is one of Southeast Asia’s most practical rail systems. Trains connect Jakarta with Yogyakarta, Solo, Surabaya, Bandung, Malang, and dozens of smaller cities, running on time and at fares that undercut air travel once you factor in airport transfers. Here is how to navigate it.

Understanding KAI Train Classes

Every long-distance KAI train runs with at least two or three classes on the same locomotive. The class you choose affects seat comfort, price, and in-carriage facilities — not journey time.

ClassSeat TypeACPrice RangeBest For
EksekutifWide reclining, adjustable footrestYesIDR 250,000–650,000Long journeys (5+ hours), overnight travel
BisnisMedium recliningYesIDR 150,000–400,000Medium journeys (3–5 hours)
EkonomiFixed uprightYesIDR 80,000–200,000Short trips under 3 hours

Prices approximate as of 2026. Vary by train name, departure time, and how far ahead you book.

Ekonomi seats are fully functional and have AC, but the fixed upright position becomes uncomfortable over 3–4 hours. For anything over the Bandung–Jakarta corridor (3 hours), most travellers opt for at least bisnis.

Eksekutif seats on premium trains like Gajayana Express, Argo Bromo Anggrek, and Taksaka are wide enough to sleep in during overnight runs. A blanket pillow set is sometimes provided; bring a travel pillow regardless.

How to Book KAI Tickets

The KAI Access app (available free on iOS and Android) is the simplest booking method for foreign visitors. It supports English, shows real-time seat availability, allows seat selection, and accepts:

  • Indonesian bank transfer (ATM / internet banking)
  • Credit and debit cards (Visa, Mastercard)
  • GoPay, OVO, DANA e-wallets
  • Convenience store payment (Indomaret, Alfamart)

Your ticket arrives as a QR code — scan it at the station gate or show it to the carriage attendant. No physical print required.

KAI Website (kai.id)

The website kai.id mirrors the app functionality and works well on desktop. The payment options are the same. Use this if you have trouble with the app’s Indonesian UI.

Station Ticket Counters

Available at all major stations. You will need your passport number (required for all KAI ticket purchases — it is printed on the ticket and checked against your ID at the gate). Queues at Jakarta stations can be long on weekday mornings.

Third-Party Booking

Traveloka and Tiket.com also sell KAI tickets with a small service fee (IDR 7,500–15,000). Useful if you already use one of these platforms. Bookaway is a useful English-language option for multi-leg journeys — it covers island ferries and intercity buses alongside train searches. If you’re also planning onward flights between islands, compare fares early via flights-indonesia.

Booking window: Tickets go on sale 90 days in advance. For weekend or public holiday travel on busy routes (Jakarta–Yogyakarta, Jakarta–Surabaya), book as early as possible — eksekutif seats sell out 2–3 weeks ahead of peak dates.

Major Routes and Sample Fares

Jakarta to Yogyakarta

The most popular long-distance route. Distance is approximately 500 km; journey time is 7.5–9.5 hours depending on the train.

TrainClassDurationApprox Fare (IDR)
Argo Lawu / Argo DwipanggaEksekutif~7.5 hrs350,000–550,000
TaksakaEksekutif~8.5 hrs300,000–500,000
Gajayana ExpressEksekutif~8 hrs350,000–600,000
SancakaEksekutif/Bisnis~8 hrs200,000–400,000
Ekonomi servicesEkonomi~10 hrs80,000–150,000

All fares approximate as of 2026.

Overnight options: The Taksaka Malam departs Jakarta Gambir around 20:00 and arrives Yogyakarta Tugu around 05:00. Eksekutif seats recline fully enough to sleep. This saves a night’s hotel.

Departure stations in Jakarta: Gambir (central, for premium trains) and Pasar Senen (south, for economy trains). Gambir connects to the TransJakarta bus network and is accessible by Grab.

Arrival stations in Yogyakarta: Tugu station (central, walking distance to Malioboro) and Lempuyangan (slightly east, served by budget trains).

Jakarta to Surabaya

Distance approximately 780 km; journey time 9–12 hours. The northline (via Semarang) is faster than the southline (via Yogyakarta).

TrainRouteDurationApprox Fare (IDR)
Argo Bromo AnggrekJakarta–Surabaya (north)~9 hrs400,000–700,000
SembraniJakarta–Surabaya (north)~9.5 hrs250,000–500,000
BimaJakarta–Yogyakarta–Surabaya~12 hrs200,000–450,000

Surabaya has two main stations: Gubeng (central, most trains) and Pasar Turi (northwest, used by Argo Bromo).

Surabaya to Malang

A short, popular route through the East Java highlands — one of the most scenic rail journeys on Java.

TrainDurationApprox Fare (IDR)
Gajayana (stopping service)~2.5 hrs80,000–200,000
Malioboro Express~2.5 hrs80,000–180,000
Commuter line (Surabaya–Malang)~3 hrs20,000–30,000

The commuter line (KRL Surabaya–Malang) is the cheapest option — IDR 20,000–30,000 — though it stops at every station and is slower. For comfort, take an intercity train.

Yogyakarta to Surabaya

Popular eastward continuation for travellers doing the Bromo-Ijen circuit.

TrainDurationApprox Fare (IDR)
Sancaka~4.5 hrs150,000–300,000 (eksekutif)
Harina~5 hrs100,000–200,000

Bandung to Jakarta

One of the busiest corridors, served by Argo Parahyangan trains every 1–2 hours.

  • Duration: approximately 2.5–3 hours
  • Fare: IDR 100,000–250,000 (eksekutif)
  • Departs from Bandung station (central) to Gambir (Jakarta)

Note: The Whoosh high-speed train (KCIC) now also connects Bandung (Tegalluar) to Jakarta (Halim) in approximately 45 minutes for IDR 250,000–350,000. Worth it if you are heading specifically to East Jakarta — but the station at Halim is less central than Gambir.

Station Tips

At large Jakarta stations (Gambir, Pasar Senen):

  • Arrive 20–30 minutes before departure — the security check and gate queue adds time
  • Have your passport and booking QR code ready at the gate
  • There is no assigned boarding lane — find your carriage number on the platform board
  • Porters (redcap) will approach you; their services are optional, not mandatory

Luggage: KAI allows up to 20 kg in the overhead rack and under your seat. There is no formal luggage check-in for intercity trains. Large backpacks fit in the overhead rack or at the end of the carriage.

Food and drink: Most long-distance trains have a dining car (kereta makan) selling basic meals (nasi goreng, indomie, sandwiches) at IDR 25,000–60,000. Snack vendors also walk the aisles. You can bring your own food with no restrictions.

Toilets: Present on all intercity trains. Cleanliness varies — wet floor, squat toilet on most trains, sit-down on premium eksekutif trains.

Seat numbers: Printed on your ticket and displayed above each seat. KAI enforces assigned seating on all long-distance trains. On commuter lines (KRL), seating is unassigned.

Commuter Lines (KRL)

Within greater Jakarta, the KRL Jabodetabek commuter network runs on a flat fare of approximately IDR 3,000–5,000 per journey using a rechargeable card (e-money or Multi Trip Card, available at station customer service counters). It connects to Soekarno-Hatta Airport via Sudirman–Manggarai stations (requires a free shuttle bus from Duri station to the airport terminal).

Surabaya and Yogyakarta also have local commuter lines (Solo–Yogyakarta KRL runs approximately every 30 minutes for IDR 10,000–15,000), useful for day trips between cities.

Practical Notes

  • Passport required: KAI requires a national ID or passport number at booking. Foreign tourists use their passport. The name and ID number are printed on the ticket and checked at the gate.
  • Station Wi-Fi: Available at major stations; quality varies. Download your QR code ticket before arriving at a station.
  • Currency: Fares are in rupiah. Payment at station counters requires rupiah cash or Indonesian bank card. The KAI Access app accepts international cards. A local data connection helps in transit — pick up a SIM card for Indonesia before your first train journey.
  • Delays: Most long-distance trains run within 10–20 minutes of schedule. Occasional delays of up to an hour occur on busy lines; ekonomi trains are more likely to be late than premium services.

See Also


Plan Your Trip

✈️ Book your flights to Indonesia 🛡️ Get travel insurance 📱 Stay connected with an eSIM 🚗 Rent a car

Ready to Plan Your Trip?

See our itineraries for inspiration:

Book an experience

Top tours to book now

Already planning? These are the most popular experiences for this destination.

Frequently Asked Questions

How do I book KAI trains in Indonesia?
Book via the KAI Access app (iOS and Android), the KAI website at kai.id, or authorised ticket counters at major stations. KAI Access is the most convenient option — you can select seats, pay by credit card or bank transfer, and receive a QR code valid as your ticket. Booking opens 90 days in advance; popular routes like Jakarta–Yogyakarta sell out on weekends and public holidays weeks ahead.
What is the difference between eksekutif, bisnis, and ekonomi class?
Eksekutif (executive) offers wide reclining seats with adjustable footrests, AC, and more legroom — comparable to business class on a budget airline. Bisnis (business) has narrower seats that recline slightly less; perfectly comfortable for medium journeys. Ekonomi (economy) seats are fixed, upright, and suitable for short trips under 3 hours. All classes run on the same train, so the journey time is identical.
How long does the Jakarta to Yogyakarta train take?
The fastest services — Gajayana Express and Argo Lawu — take approximately 7.5–8 hours on the premium northline route. The popular Sancaka and Taksaka trains take 8–9 hours. Budget economy trains on the southline can take 10–11 hours. Overnight options depart around 20:00 and arrive in Yogyakarta around 05:00–07:00, saving a night's accommodation.
Is the Jakarta to Yogyakarta train cheaper than flying?
For eksekutif class, prices are comparable to budget airline fares (IDR 350,000–650,000 versus IDR 400,000–900,000 by air). But the train drops you at Gambir or Pasar Senen in central Jakarta and Tugu or Lempuyangan in central Yogyakarta — both far more convenient than airports. The experience is also significantly more comfortable on eksekutif trains than on budget carriers.
Can I buy KAI train tickets at the station on the day?
Yes, if seats remain available. Station ticket windows open from 07:00 and you can queue to buy same-day tickets. For popular routes on weekends or public holidays, last-minute tickets are often sold out. Economy class is more likely to have walk-up availability than executive class on peak days.

Airport Transfers

Book Your Transfer in Advance

Fixed-price airport transfers with a driver who meets you at arrivals — straightforward and priced upfront. No haggling, no surprises.

Search Kiwitaxi →

Same price as booking direct — we earn a small commission at no extra cost to you.