Contents
Traversing the heart of Java from the sprawling megalopolis of Jakarta to the historic port city of Surabaya is a rite of passage for many travelers in Indonesia. This route takes you from the political and financial hub of the nation to its second largest city, known as the City of Heroes.
You can go by train, by plane or by coach. Each mode gives a different perspective on Indonesian life, and the options are compared below.
Jakarta to Surabaya by Train
Trains run from Jakarta Gambir on KAI's Argo services. Argo Semeru ends at Surabaya Gubeng, while Argo Anjasmoro ends at Surabaya Pasar Turi.[1] Argo Bromo Anggrek now runs as KA Anggrek.[1] Sembrani (to Pasar Turi) and Bima (to Gubeng) are further long-distance trains between Gambir and Surabaya.[2]

KAI offers Suite Class Compartment and Luxury carriages on some of these trains, among them Argo Semeru, Bima, Anggrek and Sembrani.[2] Tickets are sold in the Access by KAI app, which also supports E-Boarding at the station.[3] Fares and travel times differ from train to train and from class to class, so check the current price and schedule of your chosen train in the app.
Jakarta to Surabaya by Flight
If time is your primary concern, flying is the fastest way to bridge the gap. Direct flights from Jakarta (Soekarno-Hatta, CGK) to Surabaya (SUB) are operated by Lion Air, Super Air Jet, Batik Air, Citilink, Pelita Air and Garuda Indonesia, among others, and the flight takes around 1 hour 30 minutes.[4]
AirAsia's fare listing shows one-way fares from IDR 773,722, and sample fares of IDR 889,000 to 1,100,000 for departures between 03:35 and 18:30 on 20 October 2026.[4] Hand luggage must not exceed 7 kg, otherwise checked baggage has to be bought, and AirAsia advises arriving at the airport 2 to 3 hours before departure.[4]
Jakarta to Surabaya by Bus
Executive coaches use the Trans-Java toll road and leave from Jakarta and from Bekasi throughout the day. Booking platforms list Jakarta to Surabaya coaches at about $15 to $30 for a seat and journeys of about 9.5 to 20 hours, depending on traffic and the route (October 2026).[5] From Bekasi, journeys are listed from just under 9 hours.[5]
Comparing Your Options
| Mode | Price | Duration |
|---|---|---|
| Flight | From IDR 773,722[4] | About 1h 30min[4] |
| Bus | About $15 to $30 on booking platforms[5] | About 9.5h to 20h[5] |
Tips for Traveling from Jakarta to Surabaya
- Book in Advance: Trains can sell out early around Indonesian public holidays and long weekends, so book ahead for those dates.
- Allow Time at the Airport: Plan 2 to 3 hours at the airport before departure, as AirAsia advises, and allow extra time for road traffic in Jakarta.[4]
Timetable
| Flight Tangerang - East Java $ 67.90–120.43 1h 25m – 1h 45m | |
|
| Flight Jakarta - East Java $ 70.29–115.55 1h 25m – 1h 35m | |
|
|
| Bus Jakarta - East Java $ 15.39–30.00 9h 25m – 20h | |
|
|
| Train Jakarta - East Java $ 7.27–157.36 8h 5m – 13h 13m | |
|
| Bus Bekasi - East Java $ 18.18–29.72 8h 53m – 16h 40m | |
|
Frequently Asked Questions
Use the booking tool on this page to compare the transport options currently available from Jakarta to Surabaya, including current prices and schedules.
Coaches are usually the cheapest option, listed on booking platforms at about $15 to $30 (October 2026). Train fares depend on the train and class, so check the Access by KAI app for current prices.
Flying is the fastest. A direct flight takes around 1 hour 30 minutes, much less than the time needed on the road or by train.
A direct flight takes around 1 hour 30 minutes. Coaches are listed at about 9.5 to 20 hours on booking platforms. Train times depend on the service, so check your train in the Access by KAI app.
KAI's Argo Semeru, Argo Anjasmoro, Anggrek, Sembrani and Bima trains to Surabaya run from Gambir Station. Argo Semeru and Bima end at Surabaya Gubeng, while Argo Anjasmoro, Anggrek and Sembrani end at Surabaya Pasar Turi.
The train offers several classes up to Suite Class Compartment, while the coach is usually cheaper and also leaves from Bekasi. Choose the option that fits your budget and the station or stop closest to you.
Sources and background
Numbers in the text such as [1] refer to these sources.
- [1] PT Kereta Api Indonesia (KAI): 31 Tahun Jadi Andalan, Layanan Argo Terus Bawa Pengalaman Perjalanan yang Lebih Nyaman. Retrieved October 15, 2026.
- [2] PT Kereta Api Indonesia (KAI): Layanan Kereta Suite Class dan Luxury Terus di Minati. Retrieved October 15, 2026.
- [3] PT Kereta Api Indonesia (KAI): PT KAI: Home (Access by KAI app, passenger services). Retrieved October 15, 2026.
- [4] AirAsia: Cheap flights from Jakarta (CGK) to Surabaya (SUB). Retrieved October 15, 2026.
- [5] 12Go: 12Go timetable: Jakarta to Surabaya. Retrieved October 15, 2026.
Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.