The cheapest and fastest coaches from Semarang to Surakarta
Cheapest price
$5
Average price
$6
Fastest journey
1 h
Average duration
1 h
Buses per day
139
Distance
77 km
The best way to find a cheap coach ticket from Semarang to Surakarta is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Semarang to Surakarta will cost around $6 if you buy it on the day, but you can find cheap coach tickets today for only $5.
Of the 139 buses that leave Semarang for Surakarta every day 139 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
These direct buses cover the 77 km distance in an average of 1 h but if you time it right, some buses will get you there in just 1 h .
The slowest buses will take 1 h and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANS
DAYTRANSTravel Information
Compare train and coach for Semarang to Surakarta
Omio recommends booking the train as it is the most popular option from Semarang to Surakarta among Omio's users. If you are prioritising price take the coach with prices starting from $4. For those with little time consider booking a train which can get you there in 1h 38m. The ticket price range depends on the travel mode: a coach costs an average of $4, and a train costs an average of $20.
Distance: 77 km
Compare bus with
| Coach | Most popular Train |
|---|---|
$5 Average Price Cheapest | $20 Average Price |
2h 13m Average total duration 1h 43m Onboard + 30m Additional time* | 2h 8m Average total duration Fastest 1h 38m Onboard + 30m Additional time* |
Direct Options | Direct Options |
Live departures
Semarang to Surakarta bus times
The table below shows live departures for Semarang to Surakarta coaches for today, Saturday, 20 December. You can also manually refresh the results below to see updated coach journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
DAYTRANS | 5:15 am Semarang Barat | 1h30 | 6:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 5:20 am Semarang, Banyumanik | 1h20 | 6:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 5:45 am Semarang, Banyumanik | 1h00 | 6:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 6:00 am Semarang Barat | 1h45 | 7:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 6:15 am Semarang Barat | 1h30 | 7:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 6:45 am Semarang, Banyumanik | 2h10 | 8:55 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 6:45 am Semarang, Banyumanik | 1h00 | 7:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 6:45 am Kota Semarang | 2h30 | 9:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 6:50 am Kota Semarang | 2h25 | 9:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 6:55 am Semarang, Gajahmungkur | 2h20 | 9:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 7:00 am Semarang Barat | 1h45 | 8:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 7:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 9:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 7:15 am Semarang Barat | 1h30 | 8:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 7:15 am Semarang, Banyumanik | 2h00 | 9:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 7:30 am Semarang Barat | 1h45 | 9:15 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 7:45 am Kota Semarang | 2h30 | 10:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 7:45 am Semarang Barat | 1h30 | 9:15 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 7:45 am Semarang, Banyumanik | 1h00 | 8:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 7:50 am Kota Semarang | 2h25 | 10:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 7:55 am Semarang, Gajahmungkur | 2h20 | 10:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 8:00 am Semarang, Gayamsari | 1h40 | 9:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 8:00 am Semarang Barat | 1h45 | 9:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 8:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 10:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 8:15 am Semarang, Banyumanik | 2h00 | 10:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 8:15 am Semarang, Banyumanik | 1h00 | 9:15 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 8:15 am Semarang Barat | 1h30 | 9:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 8:20 am Semarang, Banyumanik | 1h20 | 9:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 8:45 am Semarang, Banyumanik | 1h00 | 9:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 8:45 am Kota Semarang | 2h30 | 11:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 8:50 am Kota Semarang | 2h25 | 11:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 8:55 am Semarang, Gajahmungkur | 2h20 | 11:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 9:00 am Semarang Barat | 1h45 | 10:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 11:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 9:15 am Semarang Barat | 1h30 | 10:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:15 am Semarang, Banyumanik | 2h00 | 11:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:45 am Kota Semarang | 2h30 | 12:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 9:45 am Semarang, Banyumanik | 1h00 | 10:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:50 am Kota Semarang | 2h25 | 12:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:55 am Semarang, Gajahmungkur | 2h20 | 12:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 10:00 am Semarang Barat | 1h45 | 11:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 12:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:15 am Semarang, Banyumanik | 2h00 | 12:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 10:15 am Semarang Barat | 1h30 | 11:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 10:45 am Semarang, Banyumanik | 1h00 | 11:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:00 am Semarang Barat | 1h45 | 12:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:00 am Semarang, Gayamsari | 1h40 | 12:40 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:15 am Semarang Barat | 1h30 | 12:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:20 am Semarang, Banyumanik | 1h20 | 12:40 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:45 am Semarang, Banyumanik | 1h00 | 12:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:45 am Kota Semarang | 2h30 | 2:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:45 am Semarang, Banyumanik | 2h10 | 1:55 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:50 am Kota Semarang | 2h25 | 2:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:55 am Semarang, Gajahmungkur | 2h20 | 2:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:00 pm Semarang, Candisari (SPBU Akpol) | 2h15 | 2:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 12:00 pm Semarang Barat | 1h45 | 1:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:15 pm Semarang, Banyumanik | 2h00 | 2:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 12:15 pm Semarang Barat | 1h30 | 1:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 12:45 pm Semarang, Banyumanik | 1h00 | 1:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:45 pm Kota Semarang | 2h30 | 3:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:50 pm Kota Semarang | 2h25 | 3:15 pm Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:55 pm Semarang, Gajahmungkur | 2h20 | 3:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 1:00 pm Semarang Barat | 1h45 | 2:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 1:00 pm Semarang, Candisari (SPBU Akpol) | 2h15 | 3:15 pm Surakarta, Banjarsari | 0 changesdirect | |
HARAPAN JAYA | 1:00 pm Semarang, Candisari (SPBU Dokter Wahidin) | 1h30 | 2:30 pm Surakarta, Terminal Tirtonadi | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 1:15 pm Semarang, Banyumanik | 2h00 | 3:15 pm Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 1:15 pm Semarang Barat | 1h30 | 2:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 1:45 pm Semarang, Banyumanik | 1h00 | 2:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:00 pm Semarang Barat | 1h45 | 3:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:30 pm Semarang, Banyumanik | 1h15 | 3:45 pm Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
HARAPAN JAYA | 3:00 pm Semarang, Candisari (SPBU Dokter Wahidin) | 1h30 | 4:30 pm Surakarta, Terminal Tirtonadi | 0 changesdirect | |
HARAPAN JAYA | 4:30 pm Semarang, Candisari (SPBU Dokter Wahidin) | 1h30 | 6:00 pm Surakarta, Terminal Tirtonadi | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:45 pm Kota Semarang | 2h30 | 12:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:50 pm Kota Semarang | 2h25 | 12:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 9:55 pm Semarang, Gajahmungkur | 2h20 | 12:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:00 pm Semarang, Candisari (SPBU Akpol) | 2h15 | 12:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:05 pm Semarang, Banyumanik | 2h10 | 12:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 10:30 pm Semarang Barat | 1h45 | 12:15 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:45 pm Kota Semarang | 2h30 | 1:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:50 pm Kota Semarang | 2h25 | 1:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 10:55 pm Semarang, Gajahmungkur | 2h20 | 1:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 11:00 pm Semarang, Banyumanik | 1h15 | 12:15 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:00 pm Semarang, Gayamsari | 1h40 | 12:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:00 pm Semarang Barat | 1h45 | 12:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:00 pm Semarang, Candisari (SPBU Akpol) | 2h15 | 1:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:15 pm Semarang, Banyumanik | 2h00 | 1:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 11:20 pm Semarang, Banyumanik | 1h20 | 12:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 11:30 pm Semarang, Banyumanik | 1h15 | 12:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:45 pm Kota Semarang | 2h30 | 2:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:50 pm Kota Semarang | 2h25 | 2:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 11:55 pm Semarang, Gajahmungkur | 2h20 | 2:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 12:00 am Semarang Barat | 1h45 | 1:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 2:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:15 am Semarang, Banyumanik | 2h00 | 2:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 12:30 am Semarang, Banyumanik | 1h15 | 1:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:45 am Kota Semarang | 2h30 | 3:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:50 am Kota Semarang | 2h25 | 3:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 12:55 am Semarang, Gajahmungkur | 2h20 | 3:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 1:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 3:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 1:00 am Semarang Barat | 1h45 | 2:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 1:15 am Semarang, Banyumanik | 2h00 | 3:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 1:15 am Semarang Barat | 1h30 | 2:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 1:45 am Semarang, Banyumanik | 1h00 | 2:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:00 am Semarang Barat | 1h45 | 3:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:00 am Semarang, Gayamsari | 1h40 | 3:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:15 am Semarang Barat | 1h30 | 3:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:20 am Semarang, Banyumanik | 1h20 | 3:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 2:45 am Semarang, Banyumanik | 1h00 | 3:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 2:45 am Kota Semarang | 2h30 | 5:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 2:50 am Kota Semarang | 2h25 | 5:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 2:55 am Semarang, Gajahmungkur | 2h20 | 5:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 3:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 5:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 3:00 am Semarang Barat | 1h45 | 4:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 3:15 am Semarang Barat | 1h30 | 4:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 3:15 am Semarang, Banyumanik | 2h00 | 5:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 3:45 am Kota Semarang | 2h30 | 6:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 3:45 am Semarang, Banyumanik | 1h00 | 4:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 3:50 am Kota Semarang | 2h25 | 6:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 3:55 am Semarang, Gajahmungkur | 2h20 | 6:15 am Surakarta, Banjarsari | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 4:00 am Semarang, Candisari (SPBU Akpol) | 2h15 | 6:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 4:00 am Semarang Barat | 1h45 | 5:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 4:15 am Semarang Barat | 1h30 | 5:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
JOGLOSEMAR SHUTTLE BUS | 4:15 am Semarang, Banyumanik | 2h00 | 6:15 am Surakarta, Banjarsari | 0 changesdirect | |
DAYTRANS | 4:45 am Semarang, Banyumanik | 1h00 | 5:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 5:00 am Semarang Barat | 1h45 | 6:45 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
DAYTRANS | 5:00 am Semarang, Gayamsari | 1h40 | 6:40 am Surakarta, Jl. Brigjen Slamet Riyadi (Solo Square) | 0 changesdirect | |
Find all the dates and times for this journey
Compare prices and tickets Semarang to Surakarta by train or coach
Compare train and coach prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
21 Dec
22 Dec
23 Dec
24 Dec
25 Dec
26 Dec
27 Dec
Journey information
Overview: Bus from Semarang to Surakarta
Buses from Semarang to Surakarta run on average 56 times per day, taking around 1h 43m. Cheap bus tickets for this journey start at $4 if you book in advance.
There are 56 coaches per day. The earliest coach runs at 04:45, the last at 21:45. The fastest coach covers the 77 km distance in 1h 21m.
Distance 77 km |
Average bus duration 1h 43m |
Cheapest ticket price $4 |
Buses per day 56 |
Direct buses 56 |
Fastest bus 1h 21m |
First bus 04:45 |
Last bus 21:45 |
FAQs: Semarang to Surakarta coach
Find answers to the most common questions about traveling from Semarang to Surakarta by coach. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest coach, the cheapest option, or tips for making the most of your visit at Surakarta, this guide helps you travel smarter and with confidence.

To find the cheapest bus tickets for your trip from Semarang to Surakarta, follow these tips:
Start your search now and compare ticket prices to find the best deal!
popular bus stations
Important Stations and Airports in Semarang and Surakarta
- 24 hours
- Free Wi-Fi
- Parking available on-site.
- Food stalls and small cafes are available nearby.
- Available outside the station.
- Elevators and ramps available for accessibility.
- Available with a small fee for use.
- Bus: 10, 12, 15
- 05:00-21:00
- Free Wi-Fi available
- Available in front of terminal
- Local food stalls and small restaurants nearby
- Available at designated taxi stands
- Basic ramps available
- Public toilets available
- Bus: Trans Semarang Corridor I, II
- Angkot: B.01, B.02
- 24 hours
- Free Wi-Fi available throughout the station.
- Parking available on-site for a fee.
- Food stalls and small cafes are available inside the station.
- Taxis available at the station entrance.
- Accessible facilities including ramps and elevators.
- Public toilets are available for a small fee.
- Bus: 1, 2, 3, 4
- Train: Kereta Api Indonesia
- 05:00-21:00
- Free Wi-Fi available
- Available in front of terminal
- Local food stalls and small restaurants nearby
- Available at designated taxi stands
- Basic ramps available
- Public toilets available
- Bus: BST Corridor 1, Local buses
- Angkot: Various routes
- 04:00-22:00
- Free Wi-Fi available
- Available for both cars and motorcycles
- Food court and various food stalls available
- Available at designated taxi stand
- Wheelchair ramps, assistance available
- Public toilets available
- Bus: City Bus, Inter-city Bus
- Angkot (public minivan)
More options for your journey from Semarang to Surakarta
Here are some other resources that might have the information you need


