- Must visit
Museum Batik Danar Hadi
City museum focused on batik heritage, production tools, motifs, and Solo’s textile identity. A practical stop before shopping in local batik districts.
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 $18 if you buy it on the day, but the cheapest tickets can be found for only $13.
On Sat, Oct 31, we found 77 buses from Jakarta to Surakarta, including 77 direct services.
On Sat, Oct 31 the direct buses cover the 465 km distance in an average of 8 h but if you time it right, some buses will get you there in just 8 h .
On Sat, Oct 31 the slowest buses will take 8 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.
PO MAJOE MUDA MANDIRI
|
| ||||||||||||
PO MAJOE MUDA MANDIRI
|
| ||||||||||||
PO MAJOE MUDA MANDIRI
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
HARAPAN JAYA
|
| ||||||||||||
Buses from Jakarta to Surakarta run on average 39 times per day, taking around 10h 29m. Cheap bus tickets for this journey start at $12 if you book in advance.
There are 39 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 8h 49m.
Plan this route
Use these quick route answers to check fares, travel time, departure options, and direct services before booking from Jakarta to Surakarta.
| Operator | Departure Time | Arrival Time | Duration | Departure days | Cheapest price |
|---|---|---|---|---|---|
Operator PO Majoe Muda Mandiri | Departure Time 02:00AM | Arrival Time 11:15AM | Duration 9h15 | Departure days Mon, Thu, Fri, Sun | Cheapest price $12 |
Operator Harapan Jaya | Departure Time 05:00AM | Arrival Time 03:30PM | Duration 10h30 | Departure days Thu | Cheapest price $20 |
Operator Harapan Jaya | Departure Time 06:00AM | Arrival Time 02:00PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:15AM | Arrival Time 02:15PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:20AM | Arrival Time 02:20PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:30AM | Arrival Time 05:00PM | Duration 10h30 | Departure days Tue, Wed, Fri, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:40AM | Arrival Time 02:40PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:45AM | Arrival Time 04:45PM | Duration 10h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 07:00AM | Arrival Time 05:30PM | Duration 10h30 | Departure days Tue, Wed, Thu, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 07:30AM | Arrival Time 06:00PM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 07:45AM | Arrival Time 06:15PM | Duration 10h30 | Departure days Mon, Fri, Sun | Cheapest price $25 |
Operator Kramat Djati | Departure Time 08:30AM | Arrival Time 06:37PM | Duration 10h07 | Departure days Mon, Sun | Cheapest price $22 |
Operator PO Majoe Muda Mandiri | Departure Time 09:00AM | Arrival Time 06:15PM | Duration 9h15 | Departure days Sat | Cheapest price $13 |
Operator Kramat Djati | Departure Time 09:30AM | Arrival Time 10:19PM | Duration 12h49 | Departure days Mon, Fri | Cheapest price $18 |
Operator PO Majoe Muda Mandiri | Departure Time 10:00AM | Arrival Time 07:11PM | Duration 9h11 | Departure days Sat | Cheapest price $13 |
Operator PO Majoe Muda Mandiri | Departure Time 11:00AM | Arrival Time 07:49PM | Duration 8h49 | Departure days Sat | Cheapest price $13 |
Operator Harapan Jaya | Departure Time 11:10AM | Arrival Time 09:40PM | Duration 10h30 | Departure days Mon, Thu, Fri, Sun | Cheapest price $16 |
Operator Harapan Jaya | Departure Time 11:30AM | Arrival Time 10:00PM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 12:00PM | Arrival Time 10:30PM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 12:30PM | Arrival Time 11:00PM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 01:00PM | Arrival Time 09:00PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 01:15PM | Arrival Time 11:45PM | Duration 10h30 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 01:30PM | Arrival Time 09:30PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 01:45PM | Arrival Time 09:45PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $20 |
Operator Harapan Jaya | Departure Time 02:00PM | Arrival Time 12:30AM | Duration 10h30 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 02:15PM | Arrival Time 12:45AM | Duration 10h30 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 02:30PM | Arrival Time 10:30PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 02:45PM | Arrival Time 10:45PM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 03:00PM | Arrival Time 01:00AM | Duration 10h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 03:15PM | Arrival Time 01:45AM | Duration 10h30 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 03:30PM | Arrival Time 02:00AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $20 |
Operator Kramat Djati | Departure Time 03:30PM | Arrival Time 01:37AM | Duration 10h07 | Departure days Wed | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 04:00PM | Arrival Time 02:30AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $20 |
Operator Kramat Djati | Departure Time 04:30PM | Arrival Time 05:19AM | Duration 12h49 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 04:30PM | Arrival Time 03:00AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator PT DELIMA SRI GEMILANG | Departure Time 04:40PM | Arrival Time 03:45AM | Duration 11h05 | Departure days Wed | Cheapest price $34 |
Operator Harapan Jaya | Departure Time 05:00PM | Arrival Time 03:30AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 05:15PM | Arrival Time 01:15AM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 05:30PM | Arrival Time 04:00AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 05:45PM | Arrival Time 01:45AM | Duration 8h00 | Departure days Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:00PM | Arrival Time 04:30AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 06:15PM | Arrival Time 04:45AM | Duration 10h30 | Departure days Wed | Cheapest price $20 |
Operator Harapan Jaya | Departure Time 06:30PM | Arrival Time 05:00AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
Operator Harapan Jaya | Departure Time 07:00PM | Arrival Time 05:30AM | Duration 10h30 | Departure days Tue, Wed, Sat | Cheapest price $17 |
The table below shows live departures for Jakarta to Surakarta buses for today, Friday, October 30. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
![]() | 2:00 AM Jakarta | 9h15 | 11:15 AM Surakarta | 0 transfersDirect | |
![]() | 6:30 AM Jakarta | 10h30 | 5:00 PM Surakarta | 0 transfersDirect | |
![]() | 7:45 AM Jakarta | 10h30 | 6:15 PM Surakarta | 0 transfersDirect | |
![]() | 9:30 AM Jakarta | 12h49 | 10:19 PM Surakarta | 0 transfersDirect | |
![]() | 11:10 AM Jakarta | 10h30 | 9:40 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:00 AM Jakarta, Ampera | 8h00 | 2:00 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:15 AM Jakarta, Bus Terminal Kalideres | 8h00 | 2:15 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:15 AM Jakarta, Ampera | 10h30 | 4:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:20 AM Jakarta, Cengkareng | 8h00 | 2:20 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Pondok Pinang | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Bus Terminal Kalideres | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Lebak Bulus | 8h00 | 2:30 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Taman Kota | 8h00 | 2:30 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Cengkareng | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Pondok Pinang | 8h00 | 2:30 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:30 AM Jakarta, Lebak Bulus | 10h30 | 5:00 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 6:40 AM Jakarta, Grogol | 8h00 | 2:40 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 6:45 AM Jakarta, Taman Kota | 10h00 | 4:45 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:00 AM Jakarta, Grogol | 10h30 | 5:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
HARAPAN JAYA | 7:00 AM Jakarta, Pasar Rebo | 8h00 | 3:00 PM Surakarta | 0 transfersDirect | |
HARAPAN JAYA | 7:00 AM Jakarta, Pasar Rebo | 10h30 | 5:30 PM Surakarta, Bus Terminal Tirtonadi | 0 transfersDirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Buses from Jakarta to Surakarta with Harapan Jaya, PO Majoe Muda Mandiri, and Kramat Djati. Use the details below to compare onboard facilities.
Review the details behind your booking, from operators and ticket rules to luggage, onboard amenities, accessibility, and route-specific travel policies.
Discover the best of Surakarta — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Surakarta trip today.
City museum focused on batik heritage, production tools, motifs, and Solo’s textile identity. A practical stop before shopping in local batik districts.
Popular museum on the palace grounds displaying wayang puppets, kris, masks, and royal artifacts that introduce Central Javanese court traditions.
Compact museum in Mangkunegaran with royal heirlooms, photos, and historical objects. Worth visiting for a closer look at aristocratic life in Solo.
Broad avenue linking key heritage sites, often used for festivals and city events. Good for walking, architecture, and seeing Surakarta’s civic heart.
Historic batik neighborhood with workshops, old houses, murals, and community spaces. A rewarding area to explore local craft traditions on foot.
Main public square beside the palace, known for open space, traditional atmosphere, and evening activity. An easy place to feel everyday Solo life.
Rice with shredded chicken in light coconut milk, served with labu siam and areh. A classic Solo breakfast tied to royal court culinary traditions.
Thin savory pancake rolled with minced beef or chicken, egg, and scallions. A long-standing Solo snack with Chinese-Indonesian influence.
Sweet coconut milk pancake, often plain or topped with chocolate, banana, or jackfruit. A beloved Solo specialty sold fresh in soft folded rounds.
Well-known casual eatery specializing in Timlo Solo, selat, and other local favorites with a busy, straightforward atmosphere.
Historic spot for fresh Serabi Solo, especially the original plain and chocolate versions. Best for snacks, takeaway, and local food souvenirs.
Traditional Javanese restaurant known for Nasi Liwet and classic Solo dishes in a heritage-style setting popular with families and visitors.
Surakarta is budget-friendly versus Bali or Jakarta, with low hotel, meal, and local transport costs for most travelers.
Tipping is not required. Restaurants may add service. Round up for cafes or taxis, or leave 5-10% for very good service.
Get destination-focused answers for the end of your trip, including what to do, when to go, practical entry details, and tips for making the most of your time in 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.

Most Jakarta to Surakarta buses use the Jakarta, Pintu Terminal Pulo Gebang to Surakarta, Terminal Tirtonadi station pair. Use this guide to compare Jakarta and Surakarta bus stations on this route, check city-centre transport, alongside checking practicalities like bus station facilities and services.
Jakarta, Pintu Terminal Pulo Gebang is 11 km from Jakarta city centre. Public transport options include:
Jakarta, Pintu Terminal Pulo Gebang has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Food court and various food stalls available
Free Wi-Fi in terminal building. ATMs are several ATMs from different banks.
Ticket office support is available at Jakarta, Pintu Terminal Pulo Gebang.
Available at Jakarta, Pintu Terminal Pulo Gebang: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Pintu Terminal Pulo Gebang: Wheelchair ramps, dedicated assistance.
Jakarta, Pasar Rebo is 12 km from Jakarta city centre. Public transport options include:
Jakarta, Pasar Rebo has practical services for this route, including Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Local food stalls and small restaurants nearby
ATMs are several ATMs from major banks nearby.
Ticket office support is available at Jakarta, Pasar Rebo.
Available at Jakarta, Pasar Rebo: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Pasar Rebo: Basic ramps available.
Jakarta, Pondok Pinang is 10 km from Jakarta city centre. Public transport options include:
Jakarta, Pondok Pinang has practical services for this route, including Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Local food stalls and small restaurants nearby
ATMs are several ATMs from major banks nearby.
Ticket office support is available at Jakarta, Pondok Pinang.
Available at Jakarta, Pondok Pinang: Parking, Taxis, WC.
Accessibility facilities are available at Jakarta, Pondok Pinang: Basic ramps available.
Surakarta, Terminal Tirtonadi is 1 km from Surakarta city centre. Public transport options include:
Surakarta, Terminal Tirtonadi has practical services for this route, including Wifi, Parking, Dining, ATM, Taxis, Accessibility, WC, and Ticket Office.
Food options include: Food court and various food stalls available
Free Wi-Fi available. ATMs are aTMs from several banks available.
Ticket office support is available at Surakarta, Terminal Tirtonadi.
Available at Surakarta, Terminal Tirtonadi: Parking, Taxis, WC.
Accessibility facilities are available at Surakarta, Terminal Tirtonadi: Wheelchair ramps, assistance available.
Check bus stations information for Jakarta and Surakarta, including where buses depart and arrive on this route.