Surabaya to Yogyakarta by Train

Four to five hours west along the southern line — the leg that connects East Java to Borobudur country, and the one where picking the right Surabaya station matters.
Which class to book
Sancaka in ekonomi — but leave from Gubeng, not Pasarturi. That mistake costs more than any class upgrade.

Roughly 310km west from Surabaya Gubeng to Yogyakarta Tugu, taking four to five and a half hours through Jombang, Madiun and Klaten.

Start at the right station. Gubeng serves the southern line and is where every Yogyakarta service departs. Pasarturi, on the other side of the city, handles only the northern coastal line to Semarang and Jakarta. Turning up at the wrong one means a taxi across Surabaya and a missed train.

Which trains run this route: Sancaka is the dedicated service with both eksekutif and ekonomi carriages. Ranggajati and Wijayakusuma pass through on longer runs, and Bima and Turangga call here heading west.

This is one of the easier legs on the network — short enough not to need an overnight, frequent enough to be flexible, and cheap enough that class barely matters. If you are working east to west through Java, it slots neatly between Bromo and Borobudur.

Route details

Journey times vary by service and season. Confirm against current schedules before booking.

Departures Per Day
8
Destination City
Yogyakarta
Destination Station
Yogyakarta Tugu
Distance
310
Journey Time
4h - 5h 30m
Ferry Connection
No
Named Trains
Sancaka, Ranggajati, Wijayakusuma, Bima, Turangga
Origin City
Surabaya
Origin Station
Surabaya Gubeng
Overnight Service
No
Scenery
Good - worth a window seat
Service Status
Operating
Highest Class Available
Eksekutif

Fares

Indicative bands only. KAI adjusts fares by season and subclass, so treat these as a guide to the order of magnitude rather than a quote.

Fare Range (Ekonomi)
Rp 150-260k
Fare Range (Eksekutif)
Rp 300-520k

Categories

From Surabaya

Last updated 8 Sep 2026

© Indonesia By Train 2026. All rights reserved