Quick Answer
Best way: Ferry + Taxi – Total time 1.5–2 hours, total cost SGD 38–52 (USD 28–38). Take the ferry from Stulang Laut Ferry Terminal (Johor Bahru) to Batam Center Ferry Terminal (45–60 min), then a taxi to Hang Nadim Airport (15–20 min). No direct ferry to the airport exists. This is the fastest, most reliable, and most popular option for most travellers.
Cheapest way: Bus + Ferry via Singapore – SGD 35–55 (USD 26–41), takes 3–4 hours. Fastest way: Ferry + Taxi (as above). For door-to-door convenience, a Private Transfer costs SGD 80–150 (USD 60–110) and saves you navigating ferry schedules on your own.
🚢 Ferry + Taxi (Recommended Route via Batam Center)
This is the most common and efficient way to reach Hang Nadim Airport from Johor Bahru. The journey combines a short ferry crossing across the Singapore Strait with a quick taxi ride across Batam Island. Total door-to-door time: 1.5–2 hours.
Step-by-Step Breakdown
- Departure Point: Stulang Laut Ferry Terminal (also called JB Ferry Terminal), located about 5 km from Johor Bahru city centre. A taxi from JB Sentral costs about SGD 3–5 (USD 2–4).
- Ferry Crossing: Operators include Batam Fast Ferry and Sindo Ferry. Ferries run from 7:00 AM to 8:00 PM, with 6–8 daily departures. Crossing time: 45–60 minutes. One-way ticket: SGD 25–35 (USD 18–25).
- Arrival at Batam: Disembark at Batam Center Ferry Terminal. Clear Indonesian immigration (Visa on Arrival available – see Tips section).
- Taxi to Airport: From Batam Center, take a metered taxi or ride-hail (Grab) to Hang Nadim Airport (BTH). Distance: ~15 km. Travel time: 15–20 minutes. Fare: IDR 150,000–200,000 (SGD 13–17 / USD 10–13).
Typical Case Example
"Sarah has a 3:00 PM flight to Singapore from Hang Nadim Airport. She takes the 12:30 PM ferry from Stulang Laut, arrives at Batam Center at 1:15 PM, clears immigration by 1:30 PM, takes a Grab to the airport by 1:50 PM, and checks in with 70 minutes to spare."
Ferry Operators & Schedule Summary
| Operator | First Ferry | Last Ferry | Frequency | Price (SGD) |
|---|---|---|---|---|
| Batam Fast Ferry | 7:00 AM | 7:30 PM | Every 2 hours | 28–35 |
| Sindo Ferry | 7:30 AM | 8:00 PM | Every 2–3 hours | 25–32 |
※ Schedules vary seasonally. Always check the operator's website for real-time departures.
Pros & Cons
- ✅ Pros: Fastest overall; frequent departures; reliable; scenic crossing; no need to go via Singapore.
- ❌ Cons: Requires two separate tickets (ferry + taxi); immigration queue at Batam Center can be 15–30 minutes during peak hours.
✈️ Flight via Singapore Changi (Alternative but Costly)
No direct commercial flights operate between Senai International Airport (JHB) and Hang Nadim Airport (BTH) because the straight-line distance is only ~40 km and cross-border air rights are restricted. The only realistic flying option is to route via Singapore Changi Airport (SIN), but this is more expensive and slower than the ferry + taxi combination.
Step-by-Step Breakdown
- Johor Bahru → Singapore Changi: Take a cross-border bus (e.g., Causeway Link CW1/CW2, SGD 2–5) or a taxi (SGD 30–50) from JB to Changi Airport. Travel time: 1–1.5 hours via the Causeway or Second Link.
- Check-in & Security: Arrive at least 1.5 hours before departure for regional flights.
- Flight to Batam: Scoot or Singapore Airlines (via SilkAir) operates flights from Singapore to Hang Nadim Airport. Flight time: 40 minutes. One-way fare: SGD 100–200 (USD 75–150).
- Arrival at Hang Nadim: You are already at the airport – no additional transfer needed.
Total Time & Cost Summary
| Segment | Time | Cost (SGD) |
|---|---|---|
| JB → Singapore Changi | 1–1.5 hr | 2–50 |
| Check-in & security | 1.5 hr | — |
| Flight SIN → BTH | 40 min | 100–200 |
| Total | 3.5–5 hr | SGD 102–250 |
Note: Total door-to-door time is at least 3.5–5 hours, and cost is SGD 150–300 (USD 110–220) including all segments. Not recommended unless you have a compelling reason to fly (e.g., medical requirements, airline miles).
Pros & Cons
- ✅ Pros: Single ticket to final destination; frequent flyer miles may apply; no separate taxi needed at Batam.
- ❌ Cons: Much longer total time; significantly more expensive; requires clearing Singapore immigration twice (in and out); luggage may need to be rechecked.
🚌 Bus + Ferry via Singapore (Budget Option)
If you are on a tight budget and have extra time, this combination offers the lowest possible cost from Johor Bahru to Hang Nadim Airport. It involves taking a cross-border bus to Singapore, then a ferry to Batam Center, and finally a taxi to the airport. Total time: 3–4 hours.
Step-by-Step Breakdown
- JB → Singapore HarbourFront: Take bus Causeway Link CW1 from JB Sentral to Kranji MRT (SGD 2.00). Then take MRT to HarbourFront station (SGD 2.50). Alternatively, take a direct private bus like KTG Executive (SGD 8–12) from JB to HarbourFront.
- Ferry to Batam Center: From HarbourFront Ferry Terminal, take a ferry operated by Sindo Ferry or Batam Fast Ferry to Batam Center. Duration: 50–60 minutes. Fare: SGD 23–33 (USD 17–24).
- Taxi to Hang Nadim Airport: Same as the recommended route: IDR 150,000–200,000 (SGD 13–17 / USD 10–13).
Total Cost Breakdown
| Segment | Cost (SGD) |
|---|---|
| Bus JB → HarbourFront | 2–12 |
| Ferry HarbourFront → Batam Center | 23–33 |
| Taxi Batam Center → Airport | 13–17 |
| Total | SGD 38–62 |
With careful booking, total cost can be as low as SGD 35–55 (USD 26–41).
Day Bus vs. Night Bus
Daytime: Bus+ferry combinations run regularly from 6:00 AM to 9:00 PM. Nighttime: After 9:00 PM, ferry frequency drops sharply; the last ferry from HarbourFront to Batam Center usually departs around 8:30 PM. Plan accordingly.
Pros & Cons
- ✅ Pros: Cheapest option; good if you need to do something in Singapore en route; frequent departures.
- ❌ Cons: Requires 2–3 transfers; bus can be crowded during peak hours; longer total time; luggage space on buses is limited.
🚗 Private Transfer / Charter (Door-to-Door Convenience)
For travellers who value maximum convenience, privacy, and zero hassle, a private transfer handles everything from your hotel in Johor Bahru to the departure gate at Hang Nadim Airport. This is the most expensive option but can be worthwhile for families, groups, business travellers, or anyone with heavy luggage.
What's Included
- Hotel pickup in Johor Bahru (any location).
- Ferry ticket (business class or premium seat on Batam Fast Ferry).
- VIP immigration assistance at Batam Center (fast-track).
- Private car from Batam Center to Hang Nadim Airport.
- Total time: ~2–2.5 hours door-to-door.
Cost Range
| Service Level | Price per person (SGD) | Price per person (USD) |
|---|---|---|
| Standard (shared ferry + private taxi) | 50–70 | 37–52 |
| Premium (business ferry + private car + fast-track) | 80–120 | 60–90 |
| Executive (VIP lounge + luxury car + dedicated guide) | 120–150 | 90–110 |
Prices are estimates. Reputable providers include Batam Fast Ferry's private transfer service and local operators like JB-Batam Transfer.
When to Choose Private Transfer
- 🔹 Late-night / early-morning travel – when public ferries are not running (after 8:00 PM or before 7:00 AM).
- 🔹 Family with young children – minimises queuing and transfers.
- 🔹 Business travellers – saves time and provides a professional experience.
- 🔹 Passengers with reduced mobility – door-to-door assistance.
- 🔹 Group of 4+ people – cost per person becomes comparable to standard ferry+taxi.
Pros & Cons
- ✅ Pros: Zero planning; personalised service; fast-track immigration; comfortable; works for any flight time.
- ❌ Cons: 2–3× more expensive than DIY ferry+taxi; must book at least 24 hours in advance; cancellation policies can be strict.
📊 Cost & Time Comparison – All Options at a Glance
Use this table to quickly compare every transport method from Johor Bahru to Hang Nadim Airport. Best overall and cheapest options are highlighted.
| Mode | Total Time | Total Cost (SGD) | Total Cost (USD) | Transfers | Best For |
|---|---|---|---|---|---|
| 🚢 Ferry + Taxi ★ Best | 1.5–2 hr | 38–52 | 28–38 | 2 | Most travellers |
| ✈️ Flight via Singapore | 3.5–5 hr | 150–300 | 110–220 | 2–3 | Mileage runners / special needs |
| 🚌 Bus + Ferry ★ Cheapest | 3–4 hr | 35–55 | 26–41 | 3–4 | Budget travellers |
| 🚗 Private Transfer | 2–2.5 hr | 80–150 | 60–110 | 0 (door-to-door) | Families / business / late night |
※ Costs are per adult one-way. Prices may vary based on season, booking time, and operator. Always verify current fares before travel.
Where to Book Tickets
- Ferry tickets: Batam Fast Ferry | Sindo Ferry – book online to secure your seat, especially on weekends.
- Bus tickets: Causeway Link – no advance booking needed; tap-on card or cash.
- Flight tickets: Scoot | Singapore Airlines – book at least 2 weeks ahead for best fares.
- Private transfer: Batam Fast Ferry Private Transfer | KAYAK – compare packages.
💡 Traveler Tips & Real Experience
Practical advice gathered from frequent travellers and local experts to make your journey smoother.
📌 Visa & Immigration
- Visa on Arrival (VOA): Available at Batam Center for IDR 500,000 (~SGD 43 / USD 32). Valid for 30 days. Accepted nationalities: Chinese, Indian, Russian, US, EU, and many others. Check the latest list before travel.
- Malaysian passport holders: Visa-free entry to Indonesia up to 30 days.
- Passport validity: Must be at least 6 months from date of entry.
- Queue times: At Batam Center, immigration can take 15–30 minutes during peak times (9:00–11:00 AM and 4:00–6:00 PM).
🧳 Luggage & Baggage
- Ferry luggage limit: Typically 20 kg per person + one carry-on. Excess baggage costs SGD 5–10 per 10 kg.
- Bus luggage: On Causeway Link buses, luggage space is very limited – a small backpack is fine, but large suitcases may be refused during peak hours.
- Takkyubin (baggage delivery): Not available on this route. You must carry your luggage throughout.
- Grab at Batam: Grab cars can fit 2–3 standard suitcases. For larger groups, book a GrabCar XL or a private transfer.
⏰ Timing & Booking
- Weekends & holidays: Ferries often sell out, especially Friday evening and Monday morning. Book at least 3–4 days in advance.
- Golden Week (April/May) & Ramadan: Expect 2–3× normal passenger volume. Avoid travelling during these periods if possible.
- Last ferry: The last ferry from Stulang Laut to Batam Center is usually around 7:30–8:00 PM. If your flight arrives late, consider an overnight stay in JB or a private transfer with a charter boat (very expensive).
- Arrival buffer: For a flight from Hang Nadim Airport, aim to arrive at the airport at least 2 hours before departure. That means taking a ferry that gets you to Batam Center no later than 3 hours before your flight.
💰 Money & Connectivity
- Currency: Indonesia uses Indonesian Rupiah (IDR). ATMs are available at Batam Center and at Hang Nadim Airport. Credit cards are accepted at most taxi counters and larger restaurants.
- SIM card: You can buy a local SIM (Telkomsel, XL) at Batam Center for about IDR 50,000 (SGD 4 / USD 3) with 5–10 GB of data.
- Tipping: Not expected but appreciated – IDR 10,000–20,000 for taxi drivers is standard.
🗣️ Language & Navigation
- Bahasa Indonesia is the official language, but English is widely understood at the ferry terminal and airport.
- Download Google Maps offline for Batam – mobile coverage is good but data roaming can be expensive.
- Airport code: Hang Nadim Airport code is BTH. Make sure your flight booking uses this code.
❓ FAQs: Johor Bahru to Hang Nadim Airport
1. Is there a direct ferry from Johor Bahru to Hang Nadim Airport?
No, there is no direct ferry to the airport. You must take a ferry from Stulang Laut (JB) to Batam Center (45–60 min), then a taxi to Hang Nadim Airport (15–20 min). Total journey: 1.5–2 hours.
2. What is the fastest way from Johor Bahru to Hang Nadim Airport?
The fastest combination is ferry + taxi, with a total time of 1.5–2 hours. The ferry from Stulang Laut to Batam Center takes ~45 minutes, followed by a 15–20 minute taxi ride.
3. Can I fly directly from Senai Airport to Hang Nadim Airport?
There are no direct commercial flights between Senai (JHB) and Hang Nadim (BTH) due to the short distance (~40 km) and cross-border regulations. The only flight option is via Singapore Changi, which takes 4–5 hours total and costs SGD 150–300.
4. How much does it cost to go from Johor Bahru to Hang Nadim Airport?
Costs vary: ferry+taxi SGD 38–52 (USD 28–38); bus+ferry SGD 35–55 (USD 26–41); flight via Singapore SGD 150–300 (USD 110–220); private transfer SGD 80–150 (USD 60–110). The cheapest is bus+ferry via Singapore.
5. What is the cheapest way from Johor Bahru to Hang Nadim Airport?
The cheapest way is bus + ferry via Singapore, costing SGD 35–55 (USD 26–41). Take a bus from JB to Singapore's HarbourFront, then a ferry to Batam Center, then a taxi to the airport. Total time: 3–4 hours.
6. How long is the ferry from Johor Bahru to Batam Center?
The ferry takes 45–60 minutes. Operators include Batam Fast Ferry and Sindo Ferry, with 6–8 daily departures from 7:00 AM to 8:00 PM.
7. Do I need a visa to travel from Johor Bahru to Hang Nadim Airport?
Visa requirements depend on your nationality. Malaysian passport holders get visa-free entry for up to 30 days. Many other nationalities (Chinese, Indian, EU, US, etc.) can get a Visa on Arrival (VOA) at Batam Center for IDR 500,000 (~SGD 43 / USD 32). Check with Indonesian Immigration before travel.
8. Is there a bus from Johor Bahru to Hang Nadim Airport?
No direct bus operates between Johor Bahru and Hang Nadim Airport. The most practical bus option is to take a cross-border bus from JB to Singapore's HarbourFront (SGD 2–5), then connect to a ferry to Batam Center, and finally a taxi to the airport.