How to Get from Surabaya to Yogyakarta
Contents
Surabaya is East Java's capital and Yogyakarta, or Jogja, is the cultural center of Java with its royal court and arts scene. Between them lies a landscape of rice paddies and volcanic silhouettes. The two main ways to travel are the train and the bus.
Surabaya to Yogyakarta by Bus
Booking platforms list bus tickets at about $7 to $21 (October 2026), with listed travel times of 3 hours 40 minutes to 7 hours 30 minutes depending on traffic and the service.[1] The listings include Executive, Luxury and Premium seat services.[1]
Executive and Luxury Services
Executive buses have reclining seats and air conditioning. The Luxury class offers a more spacious seating arrangement, and booking platforms list one Luxury departure at night, at 22:30.[1] Premium seat services run throughout the day.
Surabaya to Yogyakarta by Train
Booking platforms list train tickets at about $6 to $35 (October 2026), with listed travel times of 4 hours 30 minutes to 6 hours 4 minutes.[1] The trains have Executive and Economy classes. Executive carriages have reclining seats, while Economy seats are more upright and the space is tighter. The price depends on the class and how early you book.
Comparing Your Options
| Mode | Price (USD) | Duration | Comfort |
|---|---|---|---|
| Bus (Executive, Luxury, Premium seat) | About $7 to $21[1] | 3h 40min to 7h 30min | Moderate to high |
| Train (Economy and Executive) | About $6 to $35[1] | 4h 30min to 6h 4min | Moderate to high |
Tips for Traveling from Surabaya to Yogyakarta
- Book in advance: This is a busy corridor, and trains in particular can sell out on weekends and public holidays.
- Bring a layer: Trains and buses are often strongly air conditioned, so a light jacket or sarong is useful.
- Check the station: Surabaya and Yogyakarta each have more than one station, so check the station name on your ticket before you head out.
- Snacks and water: Bring your own water and snacks for the journey.
- Arrive early: Be at the station or bus terminal well before departure to handle check-in without stress.
Timetable
| Bus Surabaya - Yogyakarta $ 7.01–21.30 3h 40m – 7h 30m | |
|
|
| Train Surabaya - Yogyakarta $ 14.66–34.82 5h 8m – 6h 4m | |
|
| Train Surabaya - Jogja $ 6.02–34.82 4h 30m – 5h 18m | |
|
Frequently Asked Questions
Use the booking tool on this page to compare the transport options currently available from Surabaya to Yogyakarta, including current prices and schedules.
Booking platforms list train tickets from about $6 and bus tickets from about $7 (October 2026). The price depends on the class and the service.
Booking platforms list the shortest bus trips at about 3 hours 40 minutes, against about 4 hours 30 minutes for the fastest train. Actual times depend on traffic and the service.
Booking platforms list 3 hours 40 minutes to 7 hours 30 minutes by bus and 4 hours 30 minutes to 6 hours 4 minutes by train.
Yes, the route passes rice fields and rural villages, with views of Java's volcanic peaks on clear days.
Tugu Station is close to Malioboro Street. Yogyakarta has more than one station, so check the station name on your ticket.
Booking platforms list a Luxury bus departure at 22:30 (October 2026), which lets you arrive in Yogyakarta early the next morning.
Sources and background
Numbers in the text such as [1] refer to these sources.
- [1] 12Go: 12Go timetable: Surabaya to Yogyakarta. Retrieved October 15, 2026.
Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.