There are 12 ways to get from Jakarta Kota 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 via Selatan St. Gondangdia
best- Take the train from Jakarta Gambir to Surabaya Pasar Turitrain Argo Bromo Anggrek / ...
9h 12mRp 326,500–451,500Bus
cheapest- Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus Jakarta - Surabaya Kota
12h 4mRp 212,849–802,849Drive 733.9 km
- Drive from Jakarta Kota to Surabayacar 733.9 km
9h 25mRp 1,448,334–2,092,037Train, bus to Halim Perdanakusuma Airport, fly to Juanda International Airport
- Take the train from Jakarta Kota to Cawangtrain
- Take the bus from St. Cawang 3 to PGC Dalambus
- Fly from Halim Perdanakusuma Airport (HLP) to Juanda International Airport (SUB)plane HLP - SUB
- Take the train from Waru to Surabaya Gubengtrain
6h 20mRp 1,212,500–2,378,000Train
- Take the train from Pasar Senen to Surabaya Pasar Turitrain Gumarang / ...
12h 1mRp 322,849–442,849Bus, shuttle
- Take the bus from Jakarta Daan Mogot to Kudusbus
- Take a shuttle bus from Kudus to SurabayaSurabaya
18h 40mRp 483,500–753,500Bus to Soekarno–Hatta International Airport, fly to Juanda International Airport, train
- Take the bus from Pasar Baru to Jakarta Airportbus
- Fly from Soekarno–Hatta International Airport (CGK) to Juanda International Airport (SUB)plane CGK - SUB
- Take the train from Waru to Surabaya Gubengtrain
6h 21mRp 1,028,000–2,531,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 27mRp 1,738,000–6,938,000Bus to Soekarno–Hatta International Airport, fly to Abdul Rachman Saleh Airport, train
- Take the bus from Pasar Baru to Jakarta Airportbus
- Fly from Soekarno–Hatta International Airport (CGK) to Abdul Rachman Saleh Airport (MLG)plane CGK - MLG
- Take the train from Lawang to Gubengtrain
6h 33mRp 1,453,500–2,591,500Bus to Soekarno–Hatta International Airport, fly to Ahmad Yani, train
- Take the bus from Pasar Baru to Jakarta Airportbus
- Fly from Soekarno–Hatta International Airport (CGK) to Ahmad Yani (SRG)plane CGK - SRG
- Take the train from Semarang Tawang to Surabaya Pasar Turitrain
7h 17mRp 1,248,500–2,781,500Bus to Soekarno–Hatta International Airport, fly to Kediri, shuttle
- Take the bus from Pasar Baru to Jakarta Airportbus
- Fly from Soekarno–Hatta International Airport (CGK) to Kediri (DHX)plane CGK - DHX
- Take a shuttle bus from Nganjuk to Surabaya
6h 3mBus to Soekarno–Hatta International Airport, fly to Adisumarmo International Airport, train
- Take the bus from Pasar Baru to Jakarta Airportbus
- Fly from Soekarno–Hatta International Airport (CGK) to Adisumarmo International Airport (SOC)plane CGK - SOC
- Take the train from Solo Balapan to Surabaya Gubengtrain
8h 13mRp 1,125,500–1,988,500
Jakarta Kota to Surabaya by train and bus
Questions & Answers
The cheapest way to get from Jakarta Kota to Surabaya is to train which costs Rp320000 - Rp450000 and takes 12h 1m.
The fastest way to get from Jakarta Kota to Surabaya is to train and bus and fly which takes 6h 20m and costs Rp1200000 - Rp2400000.
No, there is no direct bus from Jakarta Kota to Surabaya. However, there are services departing from Kota and arriving at Surabaya Kota via Term. Senen and DAMRI Bus Station Jakarta. The journey, including transfers, takes approximately 12h 4m.
No, there is no direct train from Jakarta Kota to Surabaya. However, there are services departing from Jakarta Kota and arriving at Surabaya Pasar Turi via Jakarta Gambir. The journey, including transfers, takes approximately 9h 12m.
The distance between Jakarta Kota and Surabaya is 726 km. The road distance is 733.9 km.
The best way to get from Jakarta Kota to Surabaya without a car is to train via Selatan St. Gondangdia which takes 9h 12m and costs Rp320000 - Rp460000.
It takes approximately 9h 12m to get from Jakarta Kota to Surabaya, including transfers.
Jakarta Kota to Surabaya bus services, operated by Damri, depart from DAMRI Bus Station Jakarta.
Jakarta Kota to Surabaya train services, operated by Kereta API, depart from Jakarta Gambir station.
The best way to get from Jakarta Kota to Surabaya is to train via Selatan St. Gondangdia which takes 9h 12m and costs Rp320000 - Rp460000. Alternatively, you can bus, which costs Rp210000 - Rp850000 and takes 12h 4m.
What companies run services between Jakarta Kota, 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 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 Soekarno–Hatta International Airport to Juanda International Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- Rp 1,200,000–2,900,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,500,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 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 Juanda International Airport
- Ave. Duration
- 1h 39m
- When
- Every day
- Estimated price
- Rp 1,000,000–2,500,000
Flights from Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- Rp 1,200,000–1,800,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 12m
- When
- Every day
- Estimated price
- Rp 950,000–2,600,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 16m
- When
- Every day
- Estimated price
- Rp 900,000–2,800,000
- Website
- citilink.co.id
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 Juanda International Airport
- Ave. Duration
- 1h 36m
- When
- Every day
- Estimated price
- Rp 1,000,000–1,600,000
Flights from Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- Rp 1,200,000–1,800,000
Flights from Soekarno–Hatta International Airport to Ahmad Yani
- Ave. Duration
- 1h 7m
- When
- Every day
- Estimated price
- Rp 950,000–1,500,000
Flights from Soekarno–Hatta International Airport to Adisumarmo International Airport
- Ave. Duration
- 1h 15m
- When
- Every day
- Estimated price
- Rp 900,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,400,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,000,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 Pasar Senen to Surabaya Pasar Turi
- Ave. Duration
- 10h 28m
- Frequency
- 5 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 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-3453535
- [email protected]
Train from Jakarta Kota to Cawang
- Ave. Duration
- 21 min
- Frequency
- Every 20 minutes
- Estimated price
- Rp 3,000–8,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
Bus from Pasar Baru to Jakarta Airport
- Ave. Duration
- 43 min
- Frequency
- Every 15 minutes
- Estimated price
- Rp 12,000–250,000
- Book at
- https://12go.asia/en/operator/damri
Bus from Pasar Baru to Jakarta Airport
- Ave. Duration
- 43 min
- Frequency
- Every 15 minutes
- Estimated price
- Rp 12,000–250,000
- Book at
- https://12go.asia/en/operator/damri
Bus from Pasar Baru to Jakarta Airport
- Ave. Duration
- 43 min
- Frequency
- Every 15 minutes
- Estimated price
- Rp 12,000–250,000
- Book at
- https://12go.asia/en/operator/damri
Bus from Pasar Baru to Jakarta Airport
- Ave. Duration
- 43 min
- Frequency
- Every 15 minutes
- Estimated price
- Rp 12,000–250,000
- Book at
- https://12go.asia/en/operator/damri
Bus from Pasar Baru to Jakarta Airport
- Ave. Duration
- 43 min
- Frequency
- Every 15 minutes
- Estimated price
- Rp 12,000–250,000
- Book at
- https://12go.asia/en/operator/damri
- Phone
- 1500102
- [email protected]
- Website
- transjakarta.co.id
Bus from St. Cawang 3 to PGC Dalam
- Ave. Duration
- 19 min
- Frequency
- Every 5 minutes
- Schedules at
- transjakarta.co.id
- Phone
- +62291440019
- [email protected]
- Website
- nu3tara.com
Bus from Jakarta Daan Mogot to Kudus
- Ave. Duration
- 13h 30m
- Frequency
- Once daily
- Estimated price
- Rp 260,000–450,000
- Book at
- https://12go.asia/en/operator/nusantara
- [email protected]
- Website
- indahjayatrans.com
Shuttle from Kudus to Surabaya
- Ave. Duration
- 2h 27m
- Frequency
- Twice daily
- Estimated price
- Rp 220,000–300,000
- Schedules at
- 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 How to get from Luton Airport into central London, Need to know: Eurostar, and Travelling Croatia’s Dalmatian Coast by boat, bus, car and train - to help you get the most out of your next trip.
More Questions & Answers
Jakarta Kota to Surabaya bus services, operated by Damri, arrive at Surabaya Kota station.
Jakarta Kota to Surabaya train services, operated by Kereta API, arrive at Surabaya Pasar Turi station.
Yes, the driving distance between Jakarta Kota to Surabaya is 734 km. It takes approximately 9h 25m to drive from Jakarta Kota to Surabaya.
Book your Jakarta Kota to Surabaya train tickets online with 12go.asia.
Book your Jakarta Kota to Surabaya bus tickets online with 12go.asia.
There are 976+ hotels available in Surabaya.

















