The cheapest and fastest buses from Jakarta to Surakarta
Cheapest price
$42
Average price
$45
Fastest journey
10 h 30 m
Average duration
10 h 30 m
Buses per day
14
Distance
465 km
The best way to find a cheap bus ticket from Jakarta to Surakarta is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Jakarta to Surakarta will cost around $45 if you buy it on the day, but the cheapest tickets can be found for only $42.
Of the 14 buses that leave Jakarta for Surakarta on Mon, Mar 16, 14 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Mon, Mar 16 the direct buses cover the 465 km distance in an average of 10 h 30 m but if you time it right, some buses will get you there in just 10 h 30 m .
On Mon, Mar 16 the slowest buses will take 10 h 30 m 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.
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYA
HARAPAN JAYATravel Information
Compare train, bus, and flight for Jakarta to Surakarta
Omio recommends booking the flight as it is the most popular option from Jakarta to Surakarta among Omio's users. If you are prioritising price take the bus with prices starting from $12. For those with little time consider booking a flight which can get you there in 1h 14m. The ticket price range depends on the travel mode: a bus costs an average of $12, and a flight costs an average of $49.
Distance: 288 miles (465 km)
Compare bus with
| Bus | Most popular Flight | Train |
|---|---|---|
$15 Average price Cheapest | $65 Average price | $32 Average price |
10h 2m Average total duration 9h 32m Onboard + 30m Additional time* | 4h 14m Average total duration Fastest 1h 14m Onboard + 3h 0m Additional time* | 7h 47m Average total duration 7h 17m Onboard + 30m Additional time* |
Direct Options | Direct Options | Direct Options |
Jakarta to Surakarta Bus Timetables
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator Harapan Jaya | Departure Time 06:15AM | Arrival Time 04:45PM | Duration 10h30 | Departure days Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:30AM | Arrival Time 05:00PM | Duration 10h30 | Departure days Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:45AM | Arrival Time 05:15PM | Duration 10h30 | Departure days Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:55AM | Arrival Time 05:25PM | Duration 10h30 | Departure days Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 07:00AM | Arrival Time 05:30PM | Duration 10h30 | Departure days Mon, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 07:10AM | Arrival Time 05:40PM | Duration 10h30 | Departure days Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 07:30AM | Arrival Time 06:00PM | Duration 10h30 | Departure days Mon, Fri, Sun | Cheapest price $28 |
Operator Kramat Djati | Departure Time 11:30AM | Arrival Time 05:23AM | Duration 17h53 | Departure days Fri | Cheapest price $43 |
Operator Harapan Jaya | Departure Time 11:30AM | Arrival Time 10:00PM | Duration 10h30 | Departure days Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 12:00PM | Arrival Time 10:30PM | Duration 10h30 | Departure days Mon, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 12:30PM | Arrival Time 11:00PM | Duration 10h30 | Departure days Mon, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 01:00PM | Arrival Time 11:30PM | Duration 10h30 | Departure days Mon, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 01:15PM | Arrival Time 11:45PM | Duration 10h30 | Departure days Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 01:30PM | Arrival Time 12:00AM | Duration 10h30 | Departure days Mon, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 02:00PM | Arrival Time 12:30AM | Duration 10h30 | Departure days Tue, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 02:15PM | Arrival Time 12:45AM | Duration 10h30 | Departure days Tue, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 02:30PM | Arrival Time 01:00AM | Duration 10h30 | Departure days Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 02:45PM | Arrival Time 12:45AM | Duration 10h00 | Departure days Tue, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 03:00PM | Arrival Time 01:30AM | Duration 10h30 | Departure days Tue, Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 03:15PM | Arrival Time 01:45AM | Duration 10h30 | Departure days Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 03:30PM | Arrival Time 02:00AM | Duration 10h30 | Departure days Tue, Thu, Fri, Sun | Cheapest price $32 |
Operator Kramat Djati | Departure Time 03:30PM | Arrival Time 01:37AM | Duration 10h07 | Departure days Fri, Sun | Cheapest price $39 |
Operator Harapan Jaya | Departure Time 03:45PM | Arrival Time 02:15AM | Duration 10h30 | Departure days Thu | Cheapest price $89 |
Operator Harapan Jaya | Departure Time 04:00PM | Arrival Time 02:30AM | Duration 10h30 | Departure days Mon, Tue, Thu, Fri, Sun | Cheapest price $32 |
Operator Harapan Jaya | Departure Time 04:15PM | Arrival Time 02:15AM | Duration 10h00 | Departure days Thu | Cheapest price $89 |
Operator Kramat Djati | Departure Time 04:30PM | Arrival Time 05:19AM | Duration 12h49 | Departure days Fri, Sun | Cheapest price $39 |
Operator Harapan Jaya | Departure Time 04:30PM | Arrival Time 03:00AM | Duration 10h30 | Departure days Mon, Tue, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 05:00PM | Arrival Time 03:30AM | Duration 10h30 | Departure days Mon, Thu, Fri, Sun | Cheapest price $32 |
Operator Harapan Jaya | Departure Time 05:30PM | Arrival Time 04:00AM | Duration 10h30 | Departure days Tue, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 05:45PM | Arrival Time 04:15AM | Duration 10h30 | Departure days Thu, Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:00PM | Arrival Time 04:30AM | Duration 10h30 | Departure days Mon, Tue, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:10PM | Arrival Time 04:40AM | Duration 10h30 | Departure days Thu, Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:15PM | Arrival Time 04:15AM | Duration 10h00 | Departure days Thu, Fri | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:30PM | Arrival Time 05:00AM | Duration 10h30 | Departure days Mon, Tue, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 06:45PM | Arrival Time 05:15AM | Duration 10h30 | Departure days Thu, Fri, Sun | Cheapest price $32 |
Operator Harapan Jaya | Departure Time 07:00PM | Arrival Time 05:30AM | Duration 10h30 | Departure days Mon, Thu, Fri, Sun | Cheapest price $28 |
Operator Harapan Jaya | Departure Time 07:05PM | Arrival Time 05:35AM | Duration 10h30 | Departure days Fri, Sun | Cheapest price $32 |
Operator Harapan Jaya | Departure Time 07:10PM | Arrival Time 05:10AM | Duration 10h00 | Departure days Thu, Fri, Sun | Cheapest price $32 |
Operator Harapan Jaya | Departure Time 07:15PM | Arrival Time 05:45AM | Duration 10h30 | Departure days Thu, Fri, Sun | Cheapest price $32 |
Live departures
Jakarta to Surakarta bus times
The table below shows live departures for Jakarta to Surakarta buses for today, Sunday, March 15. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
HARAPAN JAYA | 4:30 AM Jakarta, Pondok Pinang | 10h30 | 3:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 4:30 AM Jakarta, Lebak Bulus | 10h30 | 3:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 5:00 AM Jakarta, Pasar Rebo | 10h30 | 3:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 5:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 4:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:00 AM Jakarta, Pasar Rebo | 10h30 | 4:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:00 AM Jakarta, Ampera | 10h30 | 4:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:15 AM Jakarta, Bus Terminal Kalideres | 10h30 | 4:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Kapuk | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:00 AM Jakarta, Ampera | 10h30 | 5:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:15 AM Bus Terminal Tanjung Priok, Jakarta Utara | 10h30 | 5:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:15 AM Jakarta, Bus Terminal Kalideres | 10h30 | 5:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:30 AM Jakarta, Cengkareng | 10h30 | 6:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:45 AM Jakarta, Taman Kota | 10h00 | 5:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 8:30 AM Jakarta, Pondok Pinang | 10h30 | 7:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 8:30 AM Jakarta, Lebak Bulus | 10h30 | 7:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
KRAMAT DJATI | 8:30 AM Jakarta, Bus Terminal Kampung Rambutan | 10h07 | 6:37 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 9:00 AM Jakarta, Lebak Bulus | 10h30 | 7:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 9:00 AM Jakarta, Pasar Rebo | 10h30 | 7:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 9:00 AM Jakarta, Pondok Pinang | 10h30 | 7:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
KRAMAT DJATI | 9:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 12h49 | 10:19 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 9:30 AM Jakarta, Pasar Rebo | 10h30 | 8:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 9:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 8:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 10:00 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 8:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 10:30 AM Jakarta, Pondok Pinang | 10h30 | 9:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 10:30 AM Jakarta, Lebak Bulus | 10h30 | 9:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 11:00 AM Jakarta, Pasar Rebo | 10h30 | 9:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 11:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 10:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 11:45 AM Jakarta, Ampera | 10h30 | 10:15 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:00 PM Jakarta, Bus Terminal Kalideres | 10h30 | 10:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:05 PM Jakarta, Cengkareng | 10h30 | 10:35 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:10 PM Jakarta, Taman Kota | 10h00 | 10:10 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:15 PM Jakarta, Grogol | 10h30 | 10:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
| Monday, March 16 | |||||
HARAPAN JAYA | 12:00 AM Jakarta, Pasar Rebo | 10h30 | 10:30 AM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:30 AM Jakarta, Pasar Rebo | 10h30 | 11:00 AM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 12:30 AM Jakarta, Pintu Bus Terminal Pulo Gebang | 10h30 | 11:00 AM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Jakarta to Surakarta by train, bus, or flight
Compare train, bus, and flight 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.
Mar 16
Mar 17
Mar 18
Mar 19
Mar 20
Mar 21
Mar 22
Journey information
Overview: Bus from Jakarta to Surakarta
Buses from Jakarta to Surakarta run on average 43 times per day, taking around 9h 32m. Cheap bus tickets for this journey start at $12 (€10) if you book in advance.
There are 43 buses per day. The earliest bus runs at 06:15, the last at 21:15. The fastest bus covers the 288 miles (465 km) distance in 9h 15m.
Distance 288 miles (465 km) |
Average bus duration 9h 32m |
Cheapest ticket price $12 (€10) |
Buses per day 43 |
Direct buses 43 |
Fastest bus 9h 15m |
First bus 06:15 |
Last bus 21:15 |
Cheapest month Aug |
Cheapest day Sun |
High season Oct - Dec |
Low season Apr - Jun |
Bus providers: TransJakarta from Jakarta to SurakartaYou can travel by bus between Jakarta to Surakarta with TransJakarta for as low as $12 (€10). When you search for schedules and tickets, Omio will show you the best journey
TransJakarta
FAQs: Bus from Jakarta to Surakarta
Find answers to the most common questions about traveling from Jakarta to Surakarta by bus. 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 bus, the cheapest option, or tips for making the most of your visit at Surakarta, this guide helps you travel smarter and with confidence.

popular bus stations
Popular bus stations from Jakarta to Surakarta
- 05:00-22:00
- Free Wi-Fi in terminal building
- Large parking area available for cars and motorcycles
- Food court and various food stalls available
- Available at designated taxi stand
- Wheelchair ramps, dedicated assistance
- Public toilets available
- Bus: Transjakarta, AKAP buses
- Angkot: Various routes
- 05:00-22:00
- Available in surrounding area
- Local food stalls and small restaurants nearby
- Available at designated taxi stands
- Basic ramps available
- Public toilets available
- Bus: Transjakarta Corridor 7, Regular buses
- Angkot: Various routes
- 05:00-22:00
- Available in surrounding area
- Local food stalls and small restaurants nearby
- Available at designated taxi stands
- Basic ramps available
- Public toilets available
- Bus: TransJakarta Corridor 3, 8
- Angkot: M26, M27
- 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)
Most popular bus connections from Jakarta
More options for your journey from Jakarta to Surakarta
Here are some other resources that might have the information you need

