Rome2Rio

How to get fromJakarta to Surabayaby train, bus, car, plane, or shuttle

Find Transport to Surabaya

See all options

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.

  1. Train

    best
    1. Take the train from Jakarta Gambir to Surabaya Pasar Turitrain train Argo Bromo Anggrek / ...
    7h 45m
    Rp 320,000–440,000
  2. Bus

    cheapest
    1. Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus bus Jakarta - Surabaya Kota
    11h 19m
    Rp 210,000–800,000
  3. Drive 725.5 km

    1. Drive from Jakarta to Surabayacar car 725.5 km
    9h 18m
    Rp 1,431,815–2,068,178
  4. Fly Soekarno–Hatta International Airport to Juanda International Airport, train

    1. Fly from Soekarno–Hatta International Airport (CGK) to Juanda International Airport (SUB)plane plane CGK - SUB
    2. Take the train from Waru to Surabaya Gubengtrain train
    5h 49m
    Rp 1,018,068–2,515,825
  5. Train via Bekasi

    1. Take the train from Bekasi to Surabaya Pasar Turitrain train Sembrani / ...
    9h 40m
    Rp 323,000–438,000
  6. Line 7 bus, bus to Halim Perdanakusuma Airport, fly to Juanda International Airport, train

    1. Take the bus from Kampung Melayu to Cawang Sentralbus bus
    2. Take the bus from Cawang Sentral 1 Polypaint to Komplek Angkasa Halim PKbus bus
    3. Fly from Halim Perdanakusuma Airport (HLP) to Juanda International Airport (SUB)plane plane HLP - SUB
    4. Take the train from Waru to Surabaya Gubengtrain train
    5h 54m
    Rp 1,213,000–2,373,500
  7. Fly Halim Perdanakusuma Airport to Abdul Rachman Saleh Airport, train

    1. Fly from Halim Perdanakusuma Airport (HLP) to Abdul Rachman Saleh Airport (MLG)plane plane HLP - MLG
    2. Take the train from Lawang to Gubengtrain train
    6h 2m
    Rp 1,738,500–6,933,500
  8. Fly Soekarno–Hatta International Airport to Abdul Rachman Saleh Airport, train

    1. Fly from Soekarno–Hatta International Airport (CGK) to Abdul Rachman Saleh Airport (MLG)plane plane CGK - MLG
    2. Take the train from Lawang to Gubengtrain train
    6h 1m
    Rp 1,443,568–2,475,825
  9. Fly Soekarno–Hatta International Airport to Ahmad Yani, train

    1. Fly from Soekarno–Hatta International Airport (CGK) to Ahmad Yani (SRG)plane plane CGK - SRG
    2. Take the train from Semarang Tawang to Surabaya Pasar Turitrain train
    6h 45m
    Rp 1,238,568–2,765,825
  10. Fly Soekarno–Hatta International Airport to Kediri, shuttle

    1. Fly from Soekarno–Hatta International Airport (CGK) to Kediri (DHX)plane plane CGK - DHX
    2. Take a shuttle bus from Nganjuk to Surabayashuttle bus
    5h 31m
  11. Fly Soekarno–Hatta International Airport to Adisumarmo International Airport, train

    1. Fly from Soekarno–Hatta International Airport (CGK) to Adisumarmo International Airport (SOC)plane plane CGK - SOC
    2. Take the train from Solo Balapan to Surabaya Gubengtrain train
    7h 42m
    Rp 1,115,568–1,972,825

Jakarta to Surabaya by train

Calendar28Weekly Trains
Duration7h 45mAverage Duration
TicketRp 320,000Cheapest Price
See schedules

Questions & Answers

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.

Airlines
Train operators
Bus operators

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