Surakarta to Surabaya
Arrive in Surabaya to explore its lively harbor and modern skyline, a contrast to Surakarta’s historic temples and traditional markets. There’s no single way to travel from Surakarta to Surabaya; instead, several transport options are available, all compared here by schedule, duration, and price.
Travel options for Surakarta to Surabaya
Get from Surakarta to Surabaya quickly and affordably with bus for 94070 IDR, covering the journey in only 3 hours.
Bus from Surakarta to Surabaya
Catch a bus at multiple stations, including Indomaret Banyuanyar 2 Surakarta, Solo, Surabaya, Solo Bus Stop, Surakarta, Surakarta and others and start your journey from Surakarta. Services run frequently throughout the day, with the first departure at 00:15, allowing you to pick a departure that suits your schedule. The trip takes around 3 hours, and you'll arrive at multiple stations, including Rungkut Surabaya, Surabaya Ahmad Yani, Surabaya, Semeru Walk, Bungurasih and others, heading into Surabaya. Fares start from 94,070 IDR, and you can check availability and book your seat here.
Prices: 94,070 IDR
Duration: 3h – 5h 30m ⏱
Train from Surakarta to Surabaya
If you're taking the train from Surakarta to Surabaya, you can board at Purwosari, Surakarta and the journey typically takes around 3 hours 38 minutes. Tickets cost 140,996 IDR and you'll arrive at Surabaya Gubeng or Wonokromo, Surabaya. Be sure to reserve your seat and check schedules.
Prices: 140,996 IDR
Duration: 3h 38m – 4h 31m ⏱
Combined from Surakarta to Surabaya
For a combined transport route between Surakarta and Surabaya, departures are available from SOC Surakarta Airport, Central Java with fares starting at 1,578,886 IDR. Expect to reach SUB Surabaya Airport, East Java after roughly 3 hours. Plan ahead and secure your trip explore van options.
Prices: 1,578,886 IDR
Duration: 3h – 12h 50m ⏱
Bus Routes & Schedules from Surakarta to Surabaya
If you’re planning to reach Surabaya by bus from Surakarta, it’s useful to know that the route is served by multiple departure and arrival stations rather than a single bus terminal. This means you can choose the combination of stops that best suits where you’re staying or heading next. Travel times vary depending on the selected stops, but most services take around 3h to 5h 30m. Buses run throughout the day, with departures starting from 00:15 and continuing until 23:55. Prices usually begin at 94,070 to 332,580 IDR, with minor differences depending on the specific service or boarding point. Taking a moment to review the complete bus timetable for Surakarta to Surabaya allows you to compare station options and select the best bus for your journey.
Cheapest Bus Surakarta to Surabaya
94070 IDR, from Terminal Tirtonadi, Surakarta to Terminal Purabaya Bungurasih, Surabaya, departure at 15:00, duration 4h 30mFastest Bus Surakarta to Surabaya
207529 IDR, from Surakarta to Surabaya, departure at some times, duration 3hBus Timetable: Indomaret Banyuanyar 2 Surakarta → Embong Malang, Surabaya
- 05:25 09:30 4h 5m 201997 IDR
- 08:25 12:30 4h 5m 201997 IDR
- 10:25 14:30 4h 5m 201997 IDR
- 12:25 16:30 4h 5m 201997 IDR
- 14:25 18:30 4h 5m 201997 IDR
- 16:25 20:30 4h 5m 201997 IDR
- 18:25 22:30 4h 5m 201997 IDR
- 20:25 00:30 4h 5m 201997 IDR
Bus Timetable: Indomaret Banyuanyar 2 Surakarta → Rungkut Surabaya
- 04:50 09:15 4h 25m 187500 IDR
- 05:25 08:55 3h 30m 201997 IDR
- 06:25 10:15 3h 50m 187500 IDR
- 07:25 11:15 3h 50m 187500 IDR
- 08:25 12:15 3h 50m 187500 IDR
- 09:25 13:15 3h 50m 187500 IDR
- 10:25 14:15 3h 50m 187500 IDR
- 11:55 15:45 3h 50m 187500 IDR
- 12:25 15:55 3h 30m 201997 IDR
- 13:25 17:15 3h 50m 187500 IDR
- 14:25 17:55 3h 30m 201997 IDR
- 16:25 20:15 3h 50m 187500 IDR
- 17:25 21:15 3h 50m 187500 IDR
- 18:25 22:15 3h 50m 187500 IDR
- 19:55 23:45 3h 50m 187500 IDR
- 20:25 23:55 3h 30m 201997 IDR
- 20:55 00:45 3h 50m 187500 IDR
- 21:55 01:45 3h 50m 187500 IDR
- 22:55 02:45 3h 50m 187500 IDR
- 23:55 03:45 3h 50m 187500 IDR
Bus Timetable: Indomaret Banyuanyar 2 Surakarta → Semeru Walk, Bungurasih
- 05:25 09:00 3h 35m 201997 IDR
- 08:25 12:00 3h 35m 201997 IDR
- 10:25 14:00 3h 35m 201997 IDR
- 12:25 16:00 3h 35m 201997 IDR
- 14:25 18:00 3h 35m 201997 IDR
- 16:25 20:00 3h 35m 201997 IDR
- 18:25 22:00 3h 35m 201997 IDR
- 20:25 00:00 3h 35m 201997 IDR
Bus Timetable: Indomaret Banyuanyar 2 Surakarta → Surabaya
- 04:50 10:00 5h 10m 187500 IDR
- 06:25 11:00 4h 35m 187500 IDR
- 07:25 12:00 4h 35m 187500 IDR
- 08:25 13:00 4h 35m 187500 IDR
- 09:25 14:00 4h 35m 187500 IDR
- 10:25 15:00 4h 35m 187500 IDR
- 11:55 16:30 4h 35m 187500 IDR
- 13:25 18:00 4h 35m 187500 IDR
- 16:25 21:00 4h 35m 187500 IDR
- 17:25 22:00 4h 35m 187500 IDR
- 18:25 23:00 4h 35m 187500 IDR
- 19:55 00:30 4h 35m 187500 IDR
- 20:55 01:30 4h 35m 187500 IDR
- 21:55 02:30 4h 35m 187500 IDR
- 22:55 03:30 4h 35m 187500 IDR
- 23:55 04:30 4h 35m 187500 IDR
Bus Timetable: Indomaret Banyuanyar 2 Surakarta → Surabaya Ahmad Yani
- 04:50 09:30 4h 40m 187500 IDR
- 06:25 10:30 4h 5m 187500 IDR
- 07:25 11:00 3h 35m 187500 IDR
- 08:25 12:30 4h 5m 187500 IDR
- 09:25 13:30 4h 5m 187500 IDR
- 10:25 14:30 4h 5m 187500 IDR
- 11:55 16:00 4h 5m 187500 IDR
- 13:25 17:30 4h 5m 187500 IDR
- 16:25 20:30 4h 5m 187500 IDR
- 17:25 21:30 4h 5m 187500 IDR
- 18:25 22:30 4h 5m 187500 IDR
- 19:55 00:00 4h 5m 187500 IDR
- 20:55 01:00 4h 5m 187500 IDR
- 21:55 02:00 4h 5m 187500 IDR
- 22:55 03:00 4h 5m 187500 IDR
- 23:55 04:00 4h 5m 187500 IDR
Bus Timetable: Pool Slamet Riyadi Solo, Surabaya → Embong Malang, Surabaya
- 05:15 09:30 4h 15m 201997 IDR
- 08:15 12:30 4h 15m 201997 IDR
- 10:15 14:30 4h 15m 201997 IDR
- 12:15 16:30 4h 15m 201997 IDR
- 14:15 18:30 4h 15m 201997 IDR
- 16:15 20:30 4h 15m 201997 IDR
- 18:15 22:30 4h 15m 201997 IDR
- 20:15 00:30 4h 15m 201997 IDR
Bus Timetable: Pool Slamet Riyadi Solo, Surabaya → Rungkut Surabaya
- 05:15 08:55 3h 40m 201997 IDR
- 08:15 11:55 3h 40m 201997 IDR
- 10:15 13:55 3h 40m 201997 IDR
- 12:15 15:55 3h 40m 201997 IDR
- 14:15 17:55 3h 40m 201997 IDR
- 16:15 19:55 3h 40m 201997 IDR
- 18:15 21:55 3h 40m 201997 IDR
- 20:15 23:55 3h 40m 201997 IDR
Bus Timetable: Pool Slamet Riyadi Solo, Surabaya → Semeru Walk, Bungurasih
- 05:15 09:00 3h 45m 201997 IDR
- 08:15 12:00 3h 45m 201997 IDR
- 10:15 14:00 3h 45m 201997 IDR
- 12:15 16:00 3h 45m 201997 IDR
- 14:15 18:00 3h 45m 201997 IDR
- 16:15 20:00 3h 45m 201997 IDR
- 18:15 22:00 3h 45m 201997 IDR
- 20:15 00:00 3h 45m 201997 IDR
Bus Timetable: Solo Bus Stop, Surakarta → Rungkut Surabaya
- 04:30 09:15 4h 45m 187500 IDR
- 05:00 09:00 4h 187500 IDR
- 06:00 10:15 4h 15m 187500 IDR
- 06:45 11:15 4h 30m 187500 IDR
- 07:45 12:15 4h 30m 187500 IDR
- 08:00 12:00 4h 187500 IDR
- 09:00 13:15 4h 15m 187500 IDR
- 10:00 14:15 4h 15m 187500 IDR
- 11:00 15:00 4h 187500 IDR
- 11:30 15:45 4h 15m 187500 IDR
- 13:00 17:15 4h 15m 187500 IDR
- 14:00 18:00 4h 187500 IDR
- 16:00 20:15 4h 15m 187500 IDR
- 17:00 21:15 4h 15m 187500 IDR
- 18:00 22:15 4h 15m 187500 IDR
- 19:30 23:45 4h 15m 187500 IDR
- 20:00 00:00 4h 187500 IDR
- 20:30 00:45 4h 15m 187500 IDR
- 21:30 01:45 4h 15m 187500 IDR
- 22:30 02:45 4h 15m 187500 IDR
- 23:30 03:45 4h 15m 187500 IDR
Bus Timetable: Solo Bus Stop, Surakarta → Surabaya
- 04:30 10:00 5h 30m 187500 IDR
- 05:00 09:30 4h 30m 187500 IDR
- 06:00 11:00 5h 187500 IDR
- 06:45 12:00 5h 15m 187500 IDR
- 07:45 13:00 5h 15m 187500 IDR
- 08:00 12:30 4h 30m 187500 IDR
- 09:00 14:00 5h 187500 IDR
- 10:00 15:00 5h 187500 IDR
- 11:00 15:30 4h 30m 187500 IDR
- 11:30 16:30 5h 187500 IDR
- 13:00 18:00 5h 187500 IDR
- 14:00 18:30 4h 30m 187500 IDR
- 16:00 21:00 5h 187500 IDR
- 17:00 22:00 5h 187500 IDR
- 18:00 23:00 5h 187500 IDR
- 19:30 00:30 5h 187500 IDR
- 20:00 00:30 4h 30m 187500 IDR
- 20:30 01:30 5h 187500 IDR
- 21:30 02:30 5h 187500 IDR
- 22:30 03:30 5h 187500 IDR
- 23:30 04:30 5h 187500 IDR
Bus Timetable: Solo Bus Stop, Surakarta → Surabaya Ahmad Yani
- 04:30 09:30 5h 187500 IDR
- 05:00 09:15 4h 15m 187500 IDR
- 06:00 10:30 4h 30m 187500 IDR
- 06:45 11:00 4h 15m 187500 IDR
- 07:45 12:30 4h 45m 187500 IDR
- 08:00 12:15 4h 15m 187500 IDR
- 09:00 13:30 4h 30m 187500 IDR
- 10:00 14:30 4h 30m 187500 IDR
- 11:00 15:15 4h 15m 187500 IDR
- 11:30 16:00 4h 30m 187500 IDR
- 13:00 17:30 4h 30m 187500 IDR
- 14:00 18:15 4h 15m 187500 IDR
- 16:00 20:30 4h 30m 187500 IDR
- 17:00 21:30 4h 30m 187500 IDR
- 18:00 22:30 4h 30m 187500 IDR
- 19:30 00:00 4h 30m 187500 IDR
- 20:00 00:15 4h 15m 187500 IDR
- 20:30 01:00 4h 30m 187500 IDR
- 21:30 02:00 4h 30m 187500 IDR
- 22:30 03:00 4h 30m 187500 IDR
- 23:30 04:00 4h 30m 187500 IDR
Bus Timetable: Solo, Surabaya → Rungkut Surabaya
- 04:45 09:15 4h 30m 187500 IDR
- 05:15 09:00 3h 45m 187500 IDR
- 06:15 10:15 4h 187500 IDR
- 07:00 11:15 4h 15m 187500 IDR
- 07:55 12:15 4h 20m 187500 IDR
- 08:15 12:00 3h 45m 187500 IDR
- 09:15 13:15 4h 187500 IDR
- 10:30 14:15 3h 45m 187500 IDR
- 11:15 15:00 3h 45m 187500 IDR
- 11:45 15:45 4h 187500 IDR
- 13:15 17:15 4h 187500 IDR
- 14:15 18:00 3h 45m 187500 IDR
- 16:15 20:15 4h 187500 IDR
- 17:15 21:15 4h 187500 IDR
- 18:15 22:15 4h 187500 IDR
- 20:00 23:45 3h 45m 187500 IDR
- 20:15 00:00 3h 45m 187500 IDR
- 20:45 00:45 4h 187500 IDR
- 21:45 01:45 4h 187500 IDR
- 22:45 02:45 4h 187500 IDR
- 23:45 03:45 4h 187500 IDR
Bus Timetable: Solo, Surabaya → Surabaya
- 04:45 10:00 5h 15m 187500 IDR
- 05:15 09:30 4h 15m 187500 IDR
- 06:15 11:00 4h 45m 187500 IDR
- 07:00 12:00 5h 187500 IDR
- 07:55 13:00 5h 5m 187500 IDR
- 08:15 12:30 4h 15m 187500 IDR
- 09:15 14:00 4h 45m 187500 IDR
- 10:30 15:00 4h 30m 187500 IDR
- 11:15 15:30 4h 15m 187500 IDR
- 11:45 16:30 4h 45m 187500 IDR
- 13:15 18:00 4h 45m 187500 IDR
- 14:15 18:30 4h 15m 187500 IDR
- 16:15 21:00 4h 45m 187500 IDR
- 17:15 21:30 4h 15m 187500 IDR
- 18:15 23:00 4h 45m 187500 IDR
- 20:00 00:30 4h 30m 187500 IDR
- 20:15 00:30 4h 15m 187500 IDR
- 20:45 01:30 4h 45m 187500 IDR
- 21:45 02:30 4h 45m 187500 IDR
- 22:45 03:30 4h 45m 187500 IDR
- 23:45 04:30 4h 45m 187500 IDR
Bus Timetable: Solo, Surabaya → Surabaya Ahmad Yani
- 04:45 09:30 4h 45m 187500 IDR
- 05:15 09:15 4h 187500 IDR
- 06:15 10:30 4h 15m 187500 IDR
- 07:00 11:00 4h 187500 IDR
- 07:55 12:30 4h 35m 187500 IDR
- 08:15 12:15 4h 187500 IDR
- 09:15 13:30 4h 15m 187500 IDR
- 10:30 14:30 4h 187500 IDR
- 11:15 15:15 4h 187500 IDR
- 11:45 16:00 4h 15m 187500 IDR
- 13:15 17:30 4h 15m 187500 IDR
- 14:15 18:15 4h 187500 IDR
- 16:15 20:30 4h 15m 187500 IDR
- 17:15 21:30 4h 15m 187500 IDR
- 18:15 22:30 4h 15m 187500 IDR
- 20:00 00:00 4h 187500 IDR
- 20:15 00:15 4h 187500 IDR
- 20:45 01:00 4h 15m 187500 IDR
- 21:45 02:00 4h 15m 187500 IDR
- 22:45 03:00 4h 15m 187500 IDR
- 23:45 04:00 4h 15m 187500 IDR
Bus Timetable: Surakarta → Surabaya
- 00:15 03:15 3h 187929 IDR
- 04:30 09:30 5h 253647 IDR
- 05:00 09:00 4h 259412 IDR
- 06:00 10:00 4h 259412 IDR
- 07:00 11:00 4h 259412 IDR
- 08:00 13:00 5h 253647 IDR
- 09:00 13:00 4h 259412 IDR
- 10:00 14:00 4h 259412 IDR
- 11:00 15:00 4h 259412 IDR
- 11:10 14:10 3h 207529 IDR
- 11:31 14:31 3h 207529 IDR
- 12:00 16:00 4h 207529 IDR
- 12:15 17:15 5h 253647 IDR
- 13:00 17:00 4h 259412 IDR
- 13:10 16:10 3h 207529 IDR
- 13:31 16:31 3h 207529 IDR
- 14:00 18:00 4h 259412 IDR
- 15:15 20:15 5h 253647 IDR
- 16:15 20:15 4h 259412 IDR
- 17:00 20:00 3h 332580 IDR
- 17:15 21:15 4h 259412 IDR
- 17:30 21:00 3h 30m 332580 IDR
- 18:30 22:30 4h 253647 IDR
- 19:00 23:00 4h 259412 IDR
- 20:15 00:15 4h 259412 IDR
- 20:30 00:45 4h 15m 243892 IDR
- 21:10 00:10 3h 207529 IDR
- 21:15 02:15 5h 253647 IDR
- 22:00 01:00 3h 207529 IDR
- 22:10 01:10 3h 207529 IDR
- 23:00 03:00 4h 253647 IDR
Bus Timetable: Terminal Tirtonadi, Surakarta → Terminal Purabaya Bungurasih, Surabaya
- 15:00 19:30 4h 30m 94070 IDR
Train Routes & Schedules from Surakarta to Surabaya
- Starting at Purwosari, Surakarta, trains head toward Surabaya Gubeng, covering the distance in roughly 3h 48m to 4h 31m. Departures run from 18:04 until 20:19, with tickets from 140,996 to 292,838 IDR.
- Board the train at Purwosari, Surakarta and arrive at Wonokromo, Surabaya after about 3h 38m to 4h 18m. Rail services operate from 18:04 until 19:47 with fares starting at 140,996 to 216,917 IDR.
Cheapest Train Surakarta to Surabaya
140996 IDR, from Purwosari, Surakarta to Surabaya Gubeng, departure at 18:04, duration 4h 31mFastest Train Surakarta to Surabaya
216917 IDR, from Purwosari, Surakarta to Wonokromo, Surabaya, departure at 19:47, duration 3h 38mTrain Timetable: Purwosari, Surakarta → Surabaya Gubeng
- 18:04 22:35 4h 31m 140996 IDR
- 19:47 23:35 3h 48m 292838 IDR
- 20:19 00:40 4h 21m 211592 IDR
Train Timetable: Purwosari, Surakarta → Wonokromo, Surabaya
- 18:04 22:22 4h 18m 140996 IDR
- 19:47 23:25 3h 38m 216917 IDR
Combined Routes & Schedules from Surakarta to Surabaya
From SOC Surakarta Airport, Central Java, take a multi-leg ride across different vehicles to reach SUB Surabaya Airport, East Java. Expect the journey to last about 3h to 12h 50m with fares starting at 1,578,886 to 2,416,936 IDR and services running from 07:00 until 18:10. Check the timetable for trips linking Surakarta and Surabaya to pick your preferred departure.
Cheapest Combined Surakarta to Surabaya
1578886 IDR, from SOC Surakarta Airport, Central Java to SUB Surabaya Airport, East Java, departure at 11:40, duration 8h 5mFastest Combined Surakarta to Surabaya
2416936 IDR, from SOC Surakarta Airport, Central Java to SUB Surabaya Airport, East Java, departure at 10:45, duration 3hCombined Timetable: SOC Surakarta Airport, Central Java → SUB Surabaya Airport, East Java
- 07:00 10:35 3h 35m 1609558 IDR
- 09:45 22:10 12h 25m 1854604 IDR
- 10:45 13:45 3h 2416936 IDR
- 11:40 19:45 8h 5m 1578886 IDR
- 18:10 07:00 12h 50m 1964724 IDR
Frequently Asked Questions Surakarta to Surabaya
Below you will find answers to the most common questions about traveling from Surakarta to Surabaya.
How long does the Surakarta to Surabaya trip usually take?
The Surakarta to Surabaya trip varies a lot by transport. Bus services take about 3 hours to 5 hours 30 minutes, trains take about 3 hours 38 minutes to 4 hours 31 minutes, and flights range from about 3 hours to 12 hours 50 minutes depending on the service.
What is the cheapest way to travel from Surakarta to Surabaya?
The cheapest option on the Surakarta to Surabaya route is the bus. Bus fares start at IDR 94,070, which is lower than the train minimum of IDR 140,996 and far below the flight prices listed for this route.
Which Surakarta to Surabaya option is the fastest?
The fastest listed option for Surakarta to Surabaya is the flight, with some services taking about 3 hours. Bus and train journeys are longer, so air travel is the quickest based on the available data.
How much should I budget for Surakarta to Surabaya travel?
For Surakarta to Surabaya, bus tickets cost about IDR 94,070 to IDR 332,580, train tickets cost about IDR 140,996 to IDR 292,838, and flights are listed at about IDR 1,578,886 to IDR 2,416,936. The total depends on the transport type and service chosen.
Where do buses depart and arrive on the Surakarta to Surabaya route?
Bus departures for Surakarta to Surabaya include places such as Terminal Tirtonadi, Solo Bus Stop, and other Surakarta points. Arrivals include Terminal Purabaya Bungurasih, Surabaya Ahmad Yani, Rungkut Surabaya, Embong Malang, and other Surabaya stops.
Which train stations are used for Surakarta to Surabaya?
Trains on the Surakarta to Surabaya route depart from Purwosari, Surakarta. They arrive at either Surabaya Gubeng or Wonokromo, Surabaya. The available train services are limited to those station pairs in the provided data.
Are there flights available from Surakarta to Surabaya, and where do they use?
Yes, flights are listed for Surakarta to Surabaya. They depart from SOC Surakarta Airport, Central Java, and arrive at SUB Surabaya Airport, East Java. The flight schedule shown includes a first departure at 07:00 and a last departure at 18:10.
How often do buses run from Surakarta to Surabaya, and what are the first and last departures?
Bus services on the Surakarta to Surabaya route are frequent, with many departures listed, but no exact interval is provided. The first bus departs at 00:15 and the last one at 23:55, so there are options throughout the day.
What are the train times for Surakarta to Surabaya?
Train departures for Surakarta to Surabaya start at 18:04 and the last listed departure is at 20:19. The schedule does not show a fixed frequency, so the available trains appear to be limited to a few evening services.
Why does the Surakarta to Surabaya travel time change so much?
The Surakarta to Surabaya travel time changes because different services use different routes and stop patterns. Bus trips range from about 3 hours to 5 hours 30 minutes, train trips from about 3 hours 38 minutes to 4 hours 31 minutes, and flights vary widely in the listed data.
What are the main bus station pairs for Surakarta to Surabaya?
Several bus station pairs are listed for Surakarta to Surabaya. Examples include Terminal Tirtonadi to Terminal Purabaya Bungurasih, Solo Bus Stop to Surabaya Ahmad Yani, and Indomaret Banyuanyar 2 to Rungkut Surabaya. Travel times differ by pair and can be shorter or longer.
Can I book Surakarta to Surabaya tickets online, and where should I look?
Yes, tickets for Surakarta to Surabaya can be checked and booked online through TicketRoutes.com. The route has bus, train, and flight options in the data, so the site is the place to compare the listed services and schedules.
Search routes across Indonesia
Find transport connections between hundreds of destinations nationwide. Use the map to compare buses, trains, ferries, and flights and discover new travel possibilities.
More travel routes for Surakarta and Surabaya
Planning more stops after Surakarta to Surabaya?
If your journey doesn’t end with Surakarta to Surabaya, use the TicketRoutes Travel Planner to build a complete multi-city itinerary. Compare buses, trains, ferries, and flights for several destinations at once — faster and easier.
Try the Travel PlannerPerfect for travelers visiting multiple cities on one trip.