GoAsia
How to Get from Jakarta to Surabaya

How to Get from Jakarta to Surabaya

Last updated: October 16, 2026
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.

Train, Bus, Flight and Ferry tickets

Booking and payment are handled by 12Go, not GoAsia. We may receive a commission when you book through our links.

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]

A KAI Argo train at Gambir Station in Jakarta
A KAI Argo train at Gambir Station in JakartaPhoto: Gunawan Kartapranata / Wikimedia Commons, CC BY-SA 3.0

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

ModePriceDuration
FlightFrom IDR 773,722[4]About 1h 30min[4]
BusAbout $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
  • →  Economy 06:00, 07:05, 08:10, 08:20, 08:45, 10:50, 11:10, 11:30, 12:50, 14:25, 15:30, 16:00, 16:30, 17:15, 17:30, 18:30, 18:40
Flight Jakarta - East Java $ 70.29–115.55 1h 25m – 1h 35m
  • →  Economy 05:30, 05:55, 08:40, 12:35, 13:30, 14:25, 15:25, 16:55, 17:45, 18:30, 19:20
Bus Jakarta - East Java $ 15.39–30.00 9h 25m – 20h
  • →  Executive 06:15, 06:35, 12:00, 12:50, 13:00, 13:30, 13:40, 13:44, 13:51, 13:59, 14:00, 14:17, 14:25, 14:35, 14:52, 15:00, 15:12, 16:00, 16:15, 16:20, 18:00, 18:05, 18:33, 19:00, 19:33, 20:00
Train Jakarta - East Java $ 7.27–157.36 8h 5m – 13h 13m
  • →  EKS A 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKS AA 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKS AB 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKS H 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKS I 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKS J 06:20, 08:20, 08:40, 09:50, 11:00, 17:00, 17:25, 19:30, 20:05, 20:30, 20:45
  • →  EKO C 08:40, 11:00, 11:20, 14:30, 17:10, 17:25
  • →  EKO CA 08:40, 11:00, 14:30, 17:10, 17:25
  • →  EKO CB 08:40, 11:00, 14:30, 17:10, 17:25
  • →  EKO P 08:40, 11:00, 14:30, 17:10, 17:25
  • →  EKO Q 08:40, 11:00, 14:30, 17:10, 17:25
  • →  EKO S 08:40, 11:00, 14:30, 17:10, 17:25
  • →  BIS B 20:45
  • →  BIS BA 20:45
  • →  BIS BB 20:45
  • →  BIS K 20:45
  • →  BIS N 20:45
  • →  BIS O 20:45
Bus Bekasi - East Java $ 18.18–29.72 8h 53m – 16h 40m
  • →  Executive 06:45, 13:10, 13:20, 13:50, 14:10, 14:19, 14:26, 14:30, 14:32, 14:56, 14:59, 15:01, 15:14, 15:32, 15:44, 15:51, 15:57, 16:15, 16:50, 17:35, 17:50, 18:05, 18:20, 19:00

Frequently Asked Questions

How can I book tickets from Jakarta to Surabaya?

Use the booking tool on this page to compare the transport options currently available from Jakarta to Surabaya, including current prices and schedules.

What is the cheapest way to get from Jakarta to Surabaya?

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.

What is the fastest way to get from Jakarta to Surabaya?

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.

How long does it take to get from Jakarta to Surabaya?

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.

Which train station in Jakarta should I use?

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.

Is it better to take the train or the bus?

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. [1] PT Kereta Api Indonesia (KAI): 31 Tahun Jadi Andalan, Layanan Argo Terus Bawa Pengalaman Perjalanan yang Lebih Nyaman. Retrieved October 15, 2026.
  2. [2] PT Kereta Api Indonesia (KAI): Layanan Kereta Suite Class dan Luxury Terus di Minati. Retrieved October 15, 2026.
  3. [3] PT Kereta Api Indonesia (KAI): PT KAI: Home (Access by KAI app, passenger services). Retrieved October 15, 2026.
  4. [4] AirAsia: Cheap flights from Jakarta (CGK) to Surabaya (SUB). Retrieved October 15, 2026.
  5. [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.