There are 6 ways to get from Pulau Batam to Surabaya by plane, train, ferry, or bus
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Juanda International Airport, train
best- Fly from Hang Nadim International Airport (BTH) to Juanda International Airport (SUB)plane BTH - SUB
- Take the train from Waru to Surabaya Gubengtrain
5h 23mRp 1,938,018–3,121,885Ferry, bus
cheapest- Take the ferry from Batu Ampar to Port of Tanjung Priokferry KM Kelud
- Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus Jakarta - Surabaya Kota
2dRp 657,490–1,353,375Ferry, train
- Take the ferry from Batu Ampar to Port of Tanjung Priokferry KM Kelud
- Take the train from Jakarta Gambir to Surabaya Pasar Turitrain Argo Bromo Anggrek / ...
47h 36mRp 821,963–1,050,593Fly to Abdul Rachman Saleh Airport, train
- Fly from Hang Nadim International Airport (BTH) to Abdul Rachman Saleh Airport (MLG)plane BTH - MLG
- Take the train from Lawang to Gubengtrain
7h 41mRp 2,763,518–4,481,885Fly to Ahmad Yani, train
- Fly from Hang Nadim International Airport (BTH) to Ahmad Yani (SRG)plane BTH - SRG
- Take the train from Semarang Tawang to Surabaya Pasar Turitrain
6h 24mRp 2,258,518–3,371,885Ferry
- Take the ferry from Telaga Punggur Ferry Terminal to Sri Bintan Pura Ferry Terminalferry
- Take the ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Portferry Km Umsini
3d 2hRp 672,144–905,652
Hang Nadim International Airport (BTH) to Juanda International Airport (SUB) flights
Questions & Answers
The cheapest way to get from Pulau Batam to Surabaya is to ferry which costs Rp650000 - Rp950000 and takes 3 days 2h.
The fastest way to get from Pulau Batam to Surabaya is to fly and train which takes 5h 23m and costs Rp1900000 - Rp3200000.
No, there is no direct ferry from Pulau Batam to Surabaya. However, there are services departing from Telaga Punggur Ferry Terminal and arriving at Surabaya - Tanjung Perak Port via Pelabuhan Sri Bayintan Kijang. The journey, including transfers, takes approximately 3 days 2h.
The distance between Pulau Batam and Surabaya is 1391 km.
The best way to get from Pulau Batam to Surabaya without a car is to ferry and train which takes 47h 36m and costs Rp800000 - Rp1100000.
It takes approximately 5h 23m to get from Pulau Batam to Surabaya, including transfers.
There are 977+ hotels available in Surabaya.
What companies run services between Pulau Batam, Indonesia and Surabaya, Indonesia?
You can take a vehicle from Pulau Batam to Surabaya via Telaga Punggur Ferry Terminal, Sri Bintan Pura Ferry Terminal, Pelabuhan Sri Bayintan Kijang, and Surabaya - Tanjung Perak Port in around 3d 2h.
- Website
- batikair.com
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- Rp 1,900,000–5,500,000
Flights from Hang Nadim International Airport to Abdul Rachman Saleh Airport via Soekarno–Hatta
- Ave. Duration
- 5h 52m
- When
- Every day
- Estimated price
- Rp 2,500,000–8,500,000
Flights from Hang Nadim International Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 4h
- When
- Every day
- Estimated price
- Rp 2,200,000–6,000,000
- Website
- citilink.co.id
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,600,000
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 27m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,600,000
Flights from Hang Nadim International Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 4h 50m
- When
- Every day
- Estimated price
- Rp 2,100,000–2,800,000
- Website
- garuda-indonesia.com
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- Rp 1,900,000–2,600,000
Flights from Hang Nadim International Airport to Juanda International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 10m
- When
- Every day
- Estimated price
- Rp 1,800,000–4,800,000
Flights from Hang Nadim International Airport to Ahmad Yani via Soekarno–Hatta
- Ave. Duration
- 4h 27m
- When
- Every day
- Estimated price
- Rp 2,100,000–5,500,000
- Website
- lionair.co.id
Flights from Hang Nadim International Airport to Juanda International Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- Rp 1,800,000–2,400,000
- Website
- superairjet.com
Flights from Hang Nadim International Airport to Ahmad Yani
- Ave. Duration
- 2h
- When
- Every day
- Estimated price
- Rp 1,600,000–3,800,000
- Phone
- 021-121
- [email protected]
- Website
- kai.id
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 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 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
- 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
- +62 811-1621-162
- [email protected]
- Website
- facebook.com
Ferry from Batu Ampar to Port of Tanjung Priok
- Ave. Duration
- 36h 45m
- Frequency
- Once daily
- Estimated price
- Rp 390,000–470,000
- Schedules at
- pelni.co.id
- Economy Class
- Rp 390,000–470,000
Ferry from Batu Ampar to Port of Tanjung Priok
- Ave. Duration
- 36h 45m
- Frequency
- Once daily
- Estimated price
- Rp 390,000–470,000
- Schedules at
- pelni.co.id
- Economy Class
- Rp 390,000–470,000
Ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Port
- Ave. Duration
- 2d 23h
- Frequency
- Once daily
- Estimated price
- Rp 490,000–600,000
- Book at
- pelni.co.id
- Economy Class
- Rp 490,000–600,000
Ferry from Telaga Punggur Ferry Terminal to Sri Bintan Pura Ferry Terminal
- Ave. Duration
- 1h
- Frequency
- Every 15 minutes
- Estimated price
- Rp 70,000–140,000
- Economy
- Rp 75,000–90,000
- VIP
- Rp 100,000–140,000
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 Which side of Niagara Falls should I choose (and how do I get there)?, Travel Insider: Top Japan travel tips by Beatrix Holland, and French strikes 2018: What are my alternative transport options? - to help you get the most out of your next trip.










