There are 8 ways to get from Jakarta to Surakarta by plane, train, bus, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly Soekarno–Hatta International Airport to Adisumarmo International Airport
best- Fly from Soekarno–Hatta International Airport (CGK) to Adisumarmo International Airport (SOC)CGK - SOC
3h 30mRp 965,566–1,552,825Bus
cheapest- Take the bus from DAMRI Bus Station Jakarta to SurakartaJakarta - Surakarta
11h 21mRp 150,000–600,000Train
- Take the train from Jatinegara to Solo Balapan
6h 50mRp 320,000–370,000Drive 528.7 km
- Drive from Jakarta to Surakarta528.7 km
6h 14mRp 979,444–1,414,753Fly Halim Perdanakusuma Airport to Adisutjipto International Airport, train
- Fly from Halim Perdanakusuma Airport (HLP) to Adisutjipto International Airport (JOG)HLP - JOG
- Take the train from Stasiun Maguwo to Solobalapan
5h 2mRp 1,417,026–1,817,026Fly Soekarno–Hatta International Airport to Ahmad Yani, train
- Fly from Soekarno–Hatta International Airport (CGK) to Ahmad Yani (SRG)CGK - SRG
- Take the train from Semarang Poncol Station to Solobalapan
5h 33mRp 953,566–1,901,825Fly Soekarno–Hatta International Airport to Yogyakarta International Airport, train
- Fly from Soekarno–Hatta International Airport (CGK) to Yogyakarta International Airport (YIA)CGK - YIA
- Take the train from Yogyakarta International Airport to Yogyakarta Tugu Station
- Take the train from Yogyakarta to Solo Balapan
5h 6mRp 743,566–1,715,825Bus via Pondok Pinang
- Take the bus from Pondok Pinang to Solo Terminal Tirtonadi
11h 33mRp 183,500–273,500
Jakarta to Surakarta by train
Questions & Answers
The cheapest way to get from Jakarta to Surakarta is to bus via Pondok Pinang which costs Rp180000 - Rp280000 and takes 11h 33m.
The fastest way to get from Jakarta to Surakarta is to fly which takes 3h 30m and costs Rp950000 - Rp1600000.
No, there is no direct bus from Jakarta to Surakarta. However, there are services departing from Term. Senen and arriving at Surakarta via DAMRI Bus Station Jakarta. The journey, including transfers, takes approximately 11h 21m.
Yes, there is a direct train departing from Jatinegara and arriving at Solo Balapan. Services depart three times a day, and operate every day. The journey takes approximately 6h 50m.
The distance between Jakarta and Surakarta is 520 km. The road distance is 528.7 km.
The best way to get from Jakarta to Surakarta without a car is to train which takes 6h 50m and costs Rp320000 - Rp370000.
It takes approximately 3h 30m to get from Jakarta to Surakarta, including transfers.
Jakarta to Surakarta bus services, operated by Damri, depart from DAMRI Bus Station Jakarta.
Jakarta to Surakarta train services, operated by Kereta API, depart from Jatinegara station.
The best way to get from Jakarta to Surakarta is to fly which takes 3h 30m and costs Rp950000 - Rp1600000. Alternatively, you can train, which costs Rp320000 - Rp370000 and takes 6h 50m, you could also bus, which costs Rp150000 - Rp600000 and takes 11h 21m.
What companies run services between Jakarta, Indonesia and Surakarta, Indonesia?
Citilink Indonesia, Batik Air, and two other airlines fly from Soekarno–Hatta International Airport (CGK) to Adisumarmo International Airport (SOC) every 4 hours. Alternatively, Kereta API operates a train from Jatinegara to Solo Balapan 3 times a day. Tickets cost Rp 320,000–370,000 and the journey takes 6h 50m.
Transport is disrupted due to the Russia-Ukraine war. Read more
- Website
- batikair.com
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- Rp 1,000,000–1,300,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 950,000–1,400,000
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 900,000–2,600,000
- Website
- garuda-indonesia.com
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 16m
- When
- Every day
- Estimated price
- Rp 900,000–4,700,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 850,000–1,200,000
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 17m
- When
- Every day
- Estimated price
- Rp 700,000–1,200,000
- Website
- citilink.co.id
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- Rp 900,000–1,200,000
Flights from Halim Perdanakusuma Airport to Adisutjipto International Airport
- Ave. Duration
- 1h 25m
- When
- Every day
- Estimated price
- Rp 1,400,000–1,800,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 850,000–1,100,000
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 12m
- When
- Every day
- Estimated price
- Rp 700,000–1,100,000
- Website
- lionair.co.id
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 20m
- When
- Friday
- Estimated price
- Rp 750,000–2,200,000
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 700,000–1,300,000
- Website
- air-connect.com
Flights from Halim Perdanakusuma Airport to Adisutjipto International Airport
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- Rp 800,000–5,500,000
- Website
- transnusa.co.id
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 700,000–1,100,000
- Website
- pelita-air.com
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 20m
- When
- Every day
- Estimated price
- Rp 800,000–1,100,000
- Website
- flynamair.com
Flights from Soekarno–Hatta International Airport to Yogyakarta International Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 500,000–3,600,000
Train from Jatinegara to Solo Balapan
- Ave. Duration
- 6h 50m
- Frequency
- 3 times a day
- Estimated price
- Rp 320,000–370,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 320,000–370,000
- Business
- Rp 470,000–550,000
- Executive
- Rp 600,000–850,000
Train from Semarang Poncol Station to Solobalapan
- Ave. Duration
- 1h 49m
- Frequency
- 5 times a day
- Estimated price
- Rp 65,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 65,000–320,000
- Business
- Rp 310,000–550,000
- Executive
- Rp 120,000–650,000
Train from Yogyakarta to Solo Balapan
- Ave. Duration
- 45 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
- admin@prameks.com
Train from Stasiun Maguwo to Solobalapan
- Ave. Duration
- 56 min
- Frequency
- Every 3 hours
- Estimated price
- Rp 13,526
- Schedules at
- jadwalkereta.net
Train from Yogyakarta to Solo Balapan
- Ave. Duration
- 1h 13m
- Frequency
- Every 3 hours
- Estimated price
- Rp 15,000
- Schedules at
- jadwalkereta.net
- info@railink.co.id
- 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
- Phone
- (021) 1500 825
- humas@damri.co.id
- Website
- damri.co.id
Bus from DAMRI Bus Station Jakarta to Surakarta
- Ave. Duration
- 10h
- Frequency
- Once daily
- Estimated price
- Rp 150,000–600,000
- Book at
- https://12go.asia/en/operator/damri
- Phone
- 021-769 3000
- kramatdjati.jakarta@gmail.com
- Website
- kramat-djati.com
Bus from Pondok Pinang to Solo Terminal Tirtonadi
- Ave. Duration
- 9h 8m
- Frequency
- Once daily
- Estimated price
- Rp 180,000–270,000
- Website
- http://www.kramat-djati.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 How do I get from Sydney to Melbourne, Getting to Milan from the airport, and How to travel India's Golden Triangle - to help you get the most out of your next trip.
More Questions & Answers
Jakarta to Surakarta bus services, operated by Damri, arrive at Surakarta station.
Jakarta to Surakarta train services, operated by Kereta API, arrive at Solo Balapan station.
Yes, the driving distance between Jakarta to Surakarta is 529 km. It takes approximately 6h 14m to drive from Jakarta to Surakarta.
Book your Jakarta to Surakarta train tickets online with Omio.
There are 256+ hotels available in Surakarta.













