There are 8 ways to get from Surabaya to Yogyakarta by train, bus, car, taxi, plane, or shuttle
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Surabaya Gubeng to Yogyakartatrain Sancaka / ...
4hRp 180,000–330,000Bus
cheapest- Take the bus from Terminal Purabaya to Yogyakarta Giwandanbus
7h 30mRp 126,230–460,000Drive 322.7 km
- Drive from Surabaya to Yogyakartacar 322.7 km
3h 44mRp 638,405–922,140Taxi
- Take the taxi from Surabaya to Yogyakartataxi 322.7 km
3h 44mRp 1,900,000–2,300,000Fly to Adisutjipto International Airport
- Fly from Juanda International Airport (SUB) to Adisutjipto International Airport (JOG)plane SUB - JOG
5hRp 1,739,792–3,664,554Fly to Yogyakarta International Airport, train
- Fly from Juanda International Airport (SUB) to Yogyakarta International Airport (YIA)plane SUB - YIA
- Take the train from Yogyakarta International Airport to Yogyakarta Tugu Stationtrain
5h 9mRp 2,256,191–2,810,953Fly to Adisumarmo International Airport, train
- Fly from Juanda International Airport (SUB) to Adisumarmo International Airport (SOC)plane SUB - SOC
- Take the train from Solo Balapan to Yogyakartatrain
5h 34mRp 1,558,191–3,587,953Shuttle
- Take a shuttle bus from Surabaya to YogyakartaSurabaya
3hRp 200,000–250,000
Surabaya to Yogyakarta by train
Questions & Answers
The cheapest way to get from Surabaya to Yogyakarta is to shuttle which costs Rp200000 - Rp250000 and takes 3h.
The fastest way to get from Surabaya to Yogyakarta is to shuttle which takes 3h and costs Rp200000 - Rp250000.
No, there is no direct bus from Surabaya to Yogyakarta. However, there are services departing from Terminal Purabaya and arriving at Yogyakarta Giwandan via . The journey, including transfers, takes approximately 7h 30m.
Yes, there is a direct train departing from Surabaya Gubeng and arriving at Yogyakarta. Services depart every three hours, and operate every day. The journey takes approximately 4h.
The distance between Surabaya and Yogyakarta is 310 km. The road distance is 322.7 km.
The best way to get from Surabaya to Yogyakarta without a car is to train which takes 4h and costs Rp180000 - Rp330000.
The train from Surabaya Gubeng to Yogyakarta takes 4h including transfers and departs every three hours.
Surabaya to Yogyakarta bus services, operated by Eka Cepat, depart from Terminal Purabaya station.
Surabaya to Yogyakarta train services, operated by Kereta API, depart from Surabaya Gubeng station.
The best way to get from Surabaya to Yogyakarta is to train which takes 4h and costs Rp180000 - Rp330000. Alternatively, you can bus, which costs Rp120000 - Rp460000 and takes 7h 30m, you could also fly, which costs Rp1700000 - Rp3700000 and takes 5h.
What companies run services between Surabaya, Indonesia and Yogyakarta, Indonesia?
Kereta API operates a train from Surabaya Gubeng to Yogyakarta every 3 hours. Tickets cost Rp 180,000–330,000 and the journey takes 4h. Alternatively, Eka Cepat operates a bus from Terminal Purabaya to Yogyakarta Giwandan 3 times a day. Tickets cost Rp 120,000–140,000 and the journey takes 6h.
- Website
- citilink.co.id
Flights from Juanda International Airport to Adisutjipto International Airport via Jakarta Halim Perdana Kusuma
- Ave. Duration
- 5h 5m
- When
- Every day
- Estimated price
- Rp 1,600,000–6,000,000
Flights from Juanda International Airport to Adisutjipto International Airport via Ngurah Rai, Jakarta Halim Perdana Kusuma
- Ave. Duration
- 9h 10m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- Rp 2,200,000–3,800,000
Flights from Juanda International Airport to Yogyakarta International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 37m
- When
- Every day
- Estimated price
- Rp 1,300,000–2,900,000
Flights from Juanda International Airport to Adisumarmo International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 5m
- When
- Every day
- Estimated price
- Rp 1,400,000–3,100,000
- Website
- lionair.co.id
Flights from Juanda International Airport to Yogyakarta International Airport via Sultan Hasanuddin
- Ave. Duration
- 5h 16m
- When
- Every day
- Estimated price
- Rp 2,300,000–4,500,000
Flights from Juanda International Airport to Yogyakarta International Airport via Soekarno–Hatta
- Ave. Duration
- 5h
- When
- Saturday
- Estimated price
- Rp 1,500,000–4,100,000
Flights from Juanda International Airport to Adisumarmo International Airport via Soekarno–Hatta
- Ave. Duration
- 6h 45m
- When
- Friday
- Estimated price
- Rp 1,600,000–4,200,000
- Website
- garuda-indonesia.com
Flights from Juanda International Airport to Yogyakarta International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 21m
- When
- Every day
- Estimated price
- Rp 1,800,000–4,800,000
Flights from Juanda International Airport to Adisumarmo International Airport via Soekarno–Hatta
- Ave. Duration
- 6h 50m
- When
- Every day
- Estimated price
- Rp 1,900,000–5,500,000
- Website
- batikair.com
Flights from Juanda International Airport to Yogyakarta International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 5m
- When
- Every day
- Estimated price
- Rp 1,900,000–5,000,000
Flights from Juanda International Airport to Adisumarmo International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- Rp 2,100,000–5,500,000
- Website
- superairjet.com
Flights from Juanda International Airport to Yogyakarta International Airport via Supadio
- Ave. Duration
- 4h 25m
- When
- Every day
- Estimated price
- Rp 2,000,000–4,000,000
Flights from Juanda International Airport to Yogyakarta International Airport via Sultan Aji Muhammad Sulaiman
- Ave. Duration
- 4h 25m
- When
- Every day
- Estimated price
- Rp 2,100,000–4,100,000
Flights from Juanda International Airport to Yogyakarta International Airport via Palangkaraya
- Ave. Duration
- 5h 15m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- Rp 1,700,000–3,700,000
Flights from Juanda International Airport to Adisumarmo International Airport via Ngurah Rai
- Ave. Duration
- 4h 30m
- When
- Every day
- Estimated price
- Rp 1,300,000–3,500,000
- Website
- air-connect.com
Flights from Juanda International Airport to Adisutjipto International Airport via Jakarta Halim Perdana Kusuma
- Ave. Duration
- 4h 20m
- When
- Sunday
- Estimated price
- Rp 2,300,000–6,000,000
- Website
- pelita-air.com
Flights from Juanda International Airport to Yogyakarta International Airport via Soekarno–Hatta
- Ave. Duration
- 4h
- When
- Every day
- Estimated price
- Rp 1,500,000–2,700,000
- Phone
- 021-121
- [email protected]
- Website
- kai.id
Train from Surabaya Gubeng to Yogyakarta
- Ave. Duration
- 4h
- Frequency
- Every 3 hours
- Estimated price
- Rp 180,000–330,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 180,000–330,000
- Business
- Rp 380,000–550,000
- Executive
- Rp 340,000–700,000
Train from Solo Balapan to Yogyakarta
- Ave. Duration
- 33 min
- Frequency
- Hourly
- Estimated price
- Rp 36,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 36,000–320,000
- Business
- Rp 290,000–550,000
- Executive
- Rp 65,000–650,000
- [email protected]
- Website
- railink.co.id
Train from Yogyakarta International Airport to Yogyakarta Tugu Station
- Ave. Duration
- 35 min
- Frequency
- Hourly
- Estimated price
- Rp 20,000–50,000
- Schedules at
- railink.co.id
- [email protected]
- Website
- kai.id
Train from Solo Balapan to Yogyakarta
- Ave. Duration
- 1h 15m
- Frequency
- Every 3 hours
- Estimated price
- Rp 15,001
- Schedules at
- kai.id
- Phone
- (031) 88198899
Bus from Terminal Purabaya to Yogyakarta Giwandan
- Ave. Duration
- 6h
- Frequency
- 3 times a day
- Estimated price
- Rp 120,000–140,000
- Schedules at
- ekapatas.com
- Book at
- redbus.id
- [email protected]
- Website
- indahjayatrans.com
Shuttle from Surabaya to Yogyakarta
- Ave. Duration
- 3h
- Frequency
- 4 times a day
- Estimated price
- Rp 200,000–250,000
- Schedules at
- indahjayatrans.com
- Ave. Duration
- 3h 44m
- Estimated price
- Rp 1,900,000–2,300,000
Blue Bird Group
- Phone
- +62 313 721234
- Website
- bluebirdgroup.com
Grab Taxi
- Website
- grab.com
Want to know more about travelling around the world?
Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including Need to know: Eurostar, 4 of the smartest ways to explore Australia, and Getting to Milan from the airport - to help you get the most out of your next trip.
More Questions & Answers
Surabaya to Yogyakarta bus services, operated by Eka Cepat, arrive at Yogyakarta Giwandan station.
Surabaya to Yogyakarta train services, operated by Kereta API, arrive at Yogyakarta station.
Yes, the driving distance between Surabaya to Yogyakarta is 323 km. It takes approximately 3h 44m to drive from Surabaya to Yogyakarta.
Book your Surabaya to Yogyakarta train tickets online with 12go.asia.
Book your Surabaya to Yogyakarta bus tickets online with Omio and 12go.asia.
There are 2407+ hotels available in Yogyakarta.










