There are 11 ways to get from Jakarta to Surabaya by train, bus, car, plane, or shuttle
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Jakarta Gambir to Surabaya Pasar Turitrain Argo Bromo Anggrek / ...
7h 45mRp 320,000–440,000Bus
cheapest- Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus Jakarta - Surabaya Kota
11h 19mRp 210,000–800,000Drive 725.5 km
- Drive from Jakarta to Surabayacar 725.5 km
9h 18mRp 1,431,815–2,068,178Fly Soekarno–Hatta International Airport to Juanda International Airport, train
- Fly from Soekarno–Hatta International Airport (CGK) to Juanda International Airport (SUB)plane CGK - SUB
- Take the train from Waru to Surabaya Gubengtrain
5h 49mRp 1,018,068–2,515,825Train via Bekasi
- Take the train from Bekasi to Surabaya Pasar Turitrain Sembrani / ...
9h 40mRp 323,000–438,000Line 7 bus, bus to Halim Perdanakusuma Airport, fly to Juanda International Airport, train
- Take the bus from Kampung Melayu to Cawang Sentralbus
- Take the bus from Cawang Sentral 1 Polypaint to Komplek Angkasa Halim PKbus
- Fly from Halim Perdanakusuma Airport (HLP) to Juanda International Airport (SUB)plane HLP - SUB
- Take the train from Waru to Surabaya Gubengtrain
5h 54mRp 1,213,000–2,373,500Fly Halim Perdanakusuma Airport to Abdul Rachman Saleh Airport, train
- Fly from Halim Perdanakusuma Airport (HLP) to Abdul Rachman Saleh Airport (MLG)plane HLP - MLG
- Take the train from Lawang to Gubengtrain
6h 2mRp 1,738,500–6,933,500Fly Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport, train
- Fly from Soekarno–Hatta International Airport (CGK) to Abdul Rachman Saleh Airport (MLG)plane CGK - MLG
- Take the train from Lawang to Gubengtrain
6h 1mRp 1,443,568–2,475,825Fly Soekarno–Hatta International Airport to Ahmad Yani, train
- Fly from Soekarno–Hatta International Airport (CGK) to Ahmad Yani (SRG)plane CGK - SRG
- Take the train from Semarang Tawang to Surabaya Pasar Turitrain
6h 45mRp 1,238,568–2,765,825Fly Soekarno–Hatta International Airport to Kediri, shuttle
- Fly from Soekarno–Hatta International Airport (CGK) to Kediri (DHX)plane CGK - DHX
- Take a shuttle bus from Nganjuk to Surabaya
5h 31mFly Soekarno–Hatta International Airport to Adisumarmo International Airport, train
- Fly from Soekarno–Hatta International Airport (CGK) to Adisumarmo International Airport (SOC)plane CGK - SOC
- Take the train from Solo Balapan to Surabaya Gubengtrain
7h 42mRp 1,115,568–1,972,825
Jakarta to Surabaya by train
Questions & Answers
The cheapest way to get from Jakarta to Surabaya is to train which costs Rp320000 - Rp440000 and takes 7h 45m.
The fastest way to get from Jakarta to Surabaya is to fly and train which takes 5h 49m and costs Rp1000000 - Rp2600000.
No, there is no direct bus from Jakarta to Surabaya. However, there are services departing from Term. Senen and arriving at Surabaya Kota via DAMRI Bus Station Jakarta. The journey, including transfers, takes approximately 11h 19m.
Yes, there is a direct train departing from Jakarta Gambir and arriving at Surabaya Pasar Turi. Services depart four times a day, and operate every day. The journey takes approximately 7h 45m.
The distance between Jakarta and Surabaya is 718 km. The road distance is 725.5 km.
The best way to get from Jakarta to Surabaya without a car is to train which takes 7h 45m and costs Rp320000 - Rp440000.
The train from Jakarta Gambir to Surabaya Pasar Turi takes 7h 45m including transfers and departs four times a day.
Jakarta to Surabaya bus services, operated by Damri, depart from DAMRI Bus Station Jakarta.
Jakarta to Surabaya train services, operated by Kereta API, depart from Jakarta Gambir station.
The best way to get from Jakarta to Surabaya is to train which takes 7h 45m and costs Rp320000 - Rp440000. Alternatively, you can bus, which costs Rp210000 - Rp800000 and takes 11h 19m.
What companies run services between Jakarta, Indonesia and Surabaya, Indonesia?
Kereta API operates a train from Jakarta Gambir to Surabaya Pasar Turi 4 times a day. Tickets cost Rp 320,000–440,000 and the journey takes 7h 45m. Alternatively, Damri operates a bus from DAMRI Bus Station Jakarta to Surabaya Kota once daily. Tickets cost Rp 210,000–800,000 and the journey takes 10h.
- Website
- batikair.com
Flights from Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- Rp 1,200,000–3,000,000
Flights from Halim Perdanakusuma Airport to Juanda International Airport
- Ave. Duration
- 1h 25m
- When
- Every day
- Estimated price
- Rp 1,600,000–4,100,000
Flights from Halim Perdanakusuma Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- Rp 1,600,000–6,500,000
Flights from Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- Rp 1,500,000–3,600,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- Rp 1,100,000–2,500,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- Rp 1,100,000–1,600,000
- Website
- garuda-indonesia.com
Flights from Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 39m
- When
- Every day
- Estimated price
- Rp 1,100,000–2,900,000
Flights from Halim Perdanakusuma Airport to Juanda International Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- Rp 1,200,000–1,800,000
Flights from Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- Rp 1,300,000–1,800,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 12m
- When
- Every day
- Estimated price
- Rp 1,000,000–3,200,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 16m
- When
- Every day
- Estimated price
- Rp 950,000–3,300,000
- Website
- citilink.co.id
Flights from Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 36m
- When
- Every day
- Estimated price
- Rp 1,000,000–1,600,000
Flights from Halim Perdanakusuma Airport to Juanda International Airport
- Ave. Duration
- 1h 31m
- When
- Every day
- Estimated price
- Rp 1,200,000–1,800,000
Flights from Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- Rp 1,300,000–1,800,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 7m
- When
- Every day
- Estimated price
- Rp 1,000,000–1,500,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- Rp 950,000–1,400,000
- Website
- lionair.co.id
Flights from Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- Rp 1,000,000–1,600,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 20m
- When
- Friday
- Estimated price
- Rp 800,000–3,500,000
- Website
- pelita-air.com
Flights from Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 34m
- When
- Every day
- Estimated price
- Rp 1,400,000–2,600,000
- Website
- flynamair.com
Flights from Soekarno–Hatta International Airport to Ahmad Yani via Pangkalanbun
- Ave. Duration
- 2h 55m
- When
- Every day
- Estimated price
- Rp 1,100,000–5,500,000
- Website
- superairjet.com
Flights from Soekarno–Hatta International Airport to Kediri
- Ave. Duration
- 1h 30m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- Rp 1,000,000–1,500,000
- Phone
- 021-121
- [email protected]
- Website
- kai.id
Train from Jakarta Gambir to Surabaya Pasar Turi
- Ave. Duration
- 7h 45m
- Frequency
- 4 times a day
- Estimated price
- Rp 320,000–440,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 320,000–440,000
- Business
- Rp 490,000–550,000
- Executive
- Rp 700,000–1,100,000
Train from Waru to Surabaya Gubeng
- Ave. Duration
- 21 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 6,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 6,000–320,000
- Business
- Rp 280,000–550,000
- Executive
- Rp 11,000–650,000
Train from Bekasi to Surabaya Pasar Turi
- Ave. Duration
- 7h 58m
- Frequency
- Every 4 hours
- Estimated price
- Rp 320,000–430,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 320,000–430,000
- Business
- Rp 490,000–550,000
- Executive
- Rp 700,000–1,100,000
Train from Waru to Surabaya Gubeng
- Ave. Duration
- 21 min
- Frequency
- Every 4 hours
- Estimated price
- Rp 6,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 6,000–320,000
- Business
- Rp 280,000–550,000
- Executive
- Rp 11,000–650,000
Train from Lawang to Gubeng
- Ave. Duration
- 1h 26m
- Frequency
- Once daily
- Estimated price
- Rp 45,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 45,000–320,000
- Business
- Rp 300,000–550,000
- Executive
- Rp 80,000–650,000
Train from Lawang to Gubeng
- Ave. Duration
- 1h 26m
- Frequency
- Once daily
- Estimated price
- Rp 45,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 45,000–320,000
- Business
- Rp 300,000–550,000
- Executive
- Rp 80,000–650,000
Train from Semarang Tawang to Surabaya Pasar Turi
- Ave. Duration
- 2h 53m
- Frequency
- Every 3 hours
- Estimated price
- Rp 160,000–330,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 160,000–330,000
- Business
- Rp 370,000–550,000
- Executive
- Rp 310,000–700,000
Train from Solo Balapan to Surabaya Gubeng
- Ave. Duration
- 3h 12m
- Frequency
- Every 3 hours
- Estimated price
- Rp 150,000–320,000
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- Rp 150,000–320,000
- Business
- Rp 360,000–550,000
- Executive
- Rp 280,000–700,000
- Phone
- (021) 1500 825
- [email protected]
- Website
- damri.co.id
Bus from DAMRI Bus Station Jakarta to Surabaya Kota
- Ave. Duration
- 10h
- Frequency
- Once daily
- Estimated price
- Rp 210,000–800,000
- Book at
- https://12go.asia/en/operator/damri
- Phone
- 1500102
- [email protected]
- Website
- transjakarta.co.id
Bus from Kampung Melayu to Cawang Sentral
- Ave. Duration
- 16 min
- Frequency
- Every 10 minutes
- Estimated price
- Rp 3,500
- Schedules at
- transjakarta.co.id
Bus from Cawang Sentral 1 Polypaint to Komplek Angkasa Halim PK
- Ave. Duration
- 15 min
- Frequency
- Every 10 minutes
- Schedules at
- transjakarta.co.id
- [email protected]
- Website
- indahjayatrans.com
Shuttle from Nganjuk to Surabaya
- Ave. Duration
- 1h 1m
- Frequency
- 4 times a day
- Schedules at
- indahjayatrans.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 Best ways to travel around Australia, How to get from Southend Airport into central London, and Travelling by boat in Italy - to help you get the most out of your next trip.
More Questions & Answers
Jakarta to Surabaya bus services, operated by Damri, arrive at Surabaya Kota station.
Jakarta to Surabaya train services, operated by Kereta API, arrive at Surabaya Pasar Turi station.
Yes, the driving distance between Jakarta to Surabaya is 726 km. It takes approximately 9h 18m to drive from Jakarta to Surabaya.
Book your Jakarta to Surabaya train tickets online with 12go.asia.
Book your Jakarta to Surabaya bus tickets online with Omio and 12go.asia.
There are 975+ hotels available in Surabaya.











