Quick Answer
The best and most common way to get from Hang Nadim Airport (BTH) in Batam, Indonesia to Johor Bahru (JB), Malaysia is via a ferry to Singapore, followed by a road crossing. There is no direct flight or ferry. The fastest door-to-door journey takes 2.5 to 4 hours and costs roughly SGD $50 - $80 per person using a combination of taxi, ferry, and another taxi/bus. The cheapest option (public bus + ferry + public bus) can cost under SGD $30 but takes 4-6 hours. The key transit hub is the Batam Centre (Batam Center) Ferry Terminal.
Option 1: Ferry to Singapore, Then to Johor Bahru (The Main Route)
This is the de facto standard route for 95% of travelers. Batam is an island in Indonesia, separated from Malaysia by the Singapore Strait. Since there's no direct ferry to Malaysia, you must transit through Singapore, making it a multi-leg journey. The process is well-established but requires navigating two countries' immigration checkpoints.
Step-by-Step Guide: The Ferry Route
Leg 1: Hang Nadim Airport (BTH) to Batam Ferry Terminal
- Distance: About 15-25 km, depending on the terminal.
- Primary Terminal: Batam Centre (Batam Center) is the main international ferry terminal with the most frequent departures to Singapore.
- Other Terminal: Sekupang Terminal (closer but fewer Singapore departures).
- How to get there:
- Taxi: The most convenient. Official airport taxis cost ~IDR 150,000 - 250,000 ($10-$17 USD) to Batam Centre. Takes 20-30 minutes.
- Ride-Hailing App (Gojek/Grab): Often cheaper. Use the app to book a car to the ferry terminal.
- Shuttle Bus: Rare and infrequent. Not recommended for time-sensitive travel.
Leg 2: Batam to Singapore by Ferry
You must book a ferry ticket. The main operators are:
| Operator | Batam Terminal | Singapore Terminal | Approx. Duration | Approx. Fare (One Way) |
|---|---|---|---|---|
| BatamFast | Batam Centre | HarbourFront (Most Common) | 45-60 mins | SGD $28 - $40 |
| Majestic Fast Ferry | Batam Centre | HarbourFront / Tanah Merah | 45-60 mins | SGD $25 - $38 |
| HarbourFront Ferries / Others | Sekupang | HarbourFront | 60 mins | SGD $22 - $35 |
Key Tip: Arrive at the ferry terminal at least 60-90 minutes before departure for check-in, baggage drop, and Indonesian immigration clearance.
Leg 3: Singapore to Johor Bahru
After clearing Singapore immigration at HarbourFront or Tanah Merah, you have several options to reach JB:
- Taxi / Grab: Direct and convenient. Tell the driver "Johor Bahru City" or your specific hotel. The driver will take you across the Woodlands Causeway. You will alight for Singapore exit immigration and Malaysia entry immigration. Fare: SGD $40 - $60 + potential tolls. Total time: 45-90 mins (highly traffic-dependent).
- Public Bus: The budget choice. From HarbourFront, take the MRT to Kranji Station or Queen Street Bus Terminal.
- SBS 170 / Causeway Link CW2: From Queen Street. Very frequent.
- SMRT 950: From Woodlands Temporary Bus Interchange.
Option 2: Domestic Flight (Almost Always a Bad Idea)
This option is not recommended for 99% of travelers. While Batam has an airport and Johor Bahru has Senai International Airport (JHB), there are no direct connecting flights. Attempting this route involves flying in the wrong direction with massive layovers.
Why Flying is Inefficient
To "fly" from BTH to JHB, you would need to:
- Fly from Batam (BTH) to Jakarta (CGK) or Kuala Lumpur (KUL). Flight time: ~1.5 hours.
- Wait for a connecting flight (layover: 3-8 hours).
- Fly from Jakarta/KL to Johor Bahru (JHB). Flight time: ~1.5-2 hours.
- Travel from Senai Airport to JB city center (30-45 mins by taxi).
Total "Door-to-Door" Time: 8 to 14+ hours. Total Cost: $150 - $400+ USD.
Comparison: The ferry+road route is faster, cheaper, and simpler. Only consider flying if you have a pre-existing ticket that requires you to be in Jakarta or Kuala Lumpur anyway.
Option 3: Direct/International Bus (The Overland Adventure)
This is a scenic and very budget-friendly overland option, but it is lengthy and involves multiple modes of transport. It essentially combines the ferry route with a long-distance coach on the Singapore-Malaysia leg, often booked as a single ticket.
How It Works
Some bus operators (primarily based in Singapore) sell combined tickets that include:
- Ferry ticket from Batam to Singapore.
- Coach/bus ticket from a Singapore point (e.g., Golden Mile Complex) directly to a major bus terminal in Johor Bahru (e.g., JB Larkin Sentral or JB CIQ).
Procedure:
- Take taxi from BTH Airport to Batam Centre Ferry Terminal.
- Take ferry to Singapore HarbourFront.
- Clear Singapore immigration.
- Take a taxi/public transport to the bus departure point in Singapore (not included in combined ticket usually).
- Board the coach, which crosses the Woodlands or Tuas Causeway. You will disembark for immigration with your luggage.
- Arrive at a JB bus terminal.
Pros: Can be cost-effective if booked as a package; comfortable coach for the final leg.
Cons: Very long total journey time (5-7 hours); rigid timing; multiple vehicle changes.
Where to Book: Check with travel agents in Batam or Singapore bus company websites like Easybook or BusOnlineTicket for "Batam to Johor Bahru" routes.
Option 4: Taxi & Private Transfer (Door-to-Door Convenience)
This refers to a private car service that handles the entire journey from BTH airport lobby to your JB hotel. The driver will coordinate the ferry tickets and guide you through both immigration checkpoints. This is the most expensive but hassle-free option.
What's Included & What to Expect
- Service: A private vehicle and driver meet you at BTH arrivals.
- Ferry Leg: The driver takes you to Batam Centre, provides pre-booked ferry tickets, and assists until you board. They do not travel on the ferry with you.
- In Singapore: A different driver (from the same company) meets you at the Singapore ferry terminal arrivals hall, holding a sign with your name.
- Final Leg: This driver takes you in a private car across the Causeway to your final destination in JB, navigating both immigration complexes.
Cost: This premium service typically costs SGD $250 - $400+ for 1-3 passengers, depending on the company and vehicle type. This usually includes all car transfers, ferry tickets, and tolls.
Best For: Families with young children, groups of 3-4, travelers with heavy luggage, those arriving on late flights (if coordinated), or anyone prioritizing comfort and zero stress over cost.
How to Book: Search for "Batam to Johor Bahru private transfer" online. Book well in advance and confirm all details (meeting points, ferry times, contact numbers).
Option 5: Ticket & Cost Comparison Table
Use this table to quickly compare all your options from Hang Nadim Airport to central Johor Bahru.
| Transport Method | Approx. Total Travel Time | Approx. Cost (Per Person)* | # of Transfers / Modes | Convenience & Notes | Best For |
|---|---|---|---|---|---|
| Taxi + Ferry + Taxi/Grab | 2.5 - 4 hours | SGD $50 - $90 | 3 (Car, Boat, Car) | ⭐️⭐️⭐️⭐️ (Fastest & Flexible) Manageable hassle, traffic-dependent. | Most travelers, couples, small groups. |
| Taxi + Ferry + Public Bus | 3.5 - 5 hours | SGD $30 - $50 | 3 (Car, Boat, Bus) | ⭐️⭐️⭐️ (Best Value Balance) Extra time for bus waiting/boarding. | Budget-conscious solo travelers & backpackers. |
| Private Transfer (All-inclusive) | 3 - 4.5 hours | SGD $250 - $400+ (for car) | 2 (Car, Boat) *Seamless | ⭐️⭐️⭐️⭐️⭐️ (Most Convenient) Door-to-door, no thinking required. | Families, groups, luxury travelers, those with heavy luggage. |
| Bus + Ferry + Bus (Full Budget) | 4.5 - 7 hours | Under SGD $30 | 4+ (Bus, Boat, Train, Bus) | ⭐️⭐️ (Most Economical) Long, tiring, many changes. | Ultra-budget travelers, adventure seekers. |
| Domestic Flight | 8 - 14+ hours | $150 - $400+ USD | 3+ (Car, Plane, Plane, Car) | ⭐️ (Not Recommended) Impractical, expensive, indirect. | Only if you have a mandatory stop in Jakarta/KL. |
*Costs are estimates in Singapore Dollars (SGD) for mid-2024 and can fluctuate with fuel, season, and exchange rates. Ferry fares are higher on weekends/public holidays.
Traveler Experience & Essential Tips
Beyond schedules and tickets, here are crucial insights from seasoned travelers to make your journey smooth.
Top 5 Practical Tips
- 1. Time Your Arrival in Batam: If you land at BTH after ~4:00 PM, it's risky to try to reach JB the same day due to last ferry times. Book a night in Batam (Novotel Batam or Harris Hotel Batam Center are near the ferry terminal) and travel fresh in the morning.
- 2. The "Luggage Drag": You will handle your luggage through four immigration checkpoints (ID exit, SG arrival, SG exit, MY arrival). PACK LIGHT. A backpack or wheeled cabin bag is ideal. Large suitcases are a major hassle on public buses. 3. Currency & Payments: Have multiple currencies in small bills: Indonesian Rupiah (IDR) for Batam taxi, Singapore Dollars (SGD) for ferry ticket & Singapore transport, and Malaysian Ringgit (MYR) for final taxi/bus/food in JB. ATMs are available but having cash saves time.
- 4. Mobile Data & Connectivity: Buy a local Indonesian SIM card with data at BTH airport to use Grab/Gojek and navigate in Batam. Your Singapore/Malaysian SIM will not work until you reach those countries.
- 5. Causeway Traffic is King: The single biggest variable in your total travel time is traffic at the Woodlands Causeway. Avoid crossing during:
- Weekday mornings (7-10am): Heavy traffic into Singapore.
- Weekday evenings (5-9pm) & Friday nights: Heavy traffic into Malaysia.
- Weekend evenings & Sunday nights: Congestion in both directions.
FAQs: Hang Nadim Airport to Johor Bahru
What is the fastest way to get from Hang Nadim Airport to Johor Bahru?
The fastest overall route is a combination of taxi, ferry, and another taxi. Take a taxi from Hang Nadim Airport to Batam Centre Ferry Terminal (20-30 mins), then a fast ferry to Singapore's HarbourFront or Tanah Merah (45-60 mins). After clearing Singapore immigration, take a taxi across the Causeway to Johor Bahru (30-60 mins depending on traffic). Total travel time is approximately 2 to 3.5 hours.
What is the cheapest way to travel from BTH Airport to JB?
The cheapest option is a combination of local bus and ferry. Take a public bus or shuttle from the airport to Batam Centre (costs a few dollars), then a budget ferry to Singapore's HarbourFront. From Singapore, use public bus services like SBS 170 or Causeway Link CW from Queen Street Terminal to cross into JB. Total cost can be under SGD $30 per person, but travel time can exceed 4-5 hours.
Are there direct flights from Hang Nadim Airport to Johor Bahru?
No, there are no direct commercial flights from Hang Nadim Airport (BTH) in Batam to Senai International Airport (JHB) in Johor Bahru. The only air option requires flying from Batam to Kuala Lumpur (KUL) or Singapore (SIN) first, followed by a separate domestic flight or long overland journey to JB, making it highly inefficient and expensive compared to the ferry.
How long is the ferry ride from Batam to Singapore?
The ferry ride from Batam Centre or Sekupang terminals to Singapore (HarbourFront or Tanah Merah) typically takes between 45 to 60 minutes. Total journey time from Hang Nadim Airport to a Singapore ferry terminal, including check-in, waiting, and sailing, is usually 2 to 3 hours before you even reach Singapore.
Can I travel from Batam to Johor Bahru late at night?
Travel late at night is very challenging. The last ferries from Batam to Singapore usually depart between 6:00 PM and 8:00 PM. Upon reaching Singapore, you must clear immigration and find transport to JB, where the Causeway may be congested. It is strongly recommended to complete the journey during daylight hours. For late-night airport arrivals, an overnight stay in Batam is the best option.
Is it difficult to cross the Singapore-Malaysia border with luggage?
It can be cumbersome. You must handle your luggage through multiple checkpoints: Indonesian exit, Singapore arrival, Singapore departure, and Malaysian arrival. Using buses requires carrying luggage on and off. Taxis offer more convenience. For heavy luggage, consider using the taxi/ferry combination and be prepared for potential inspections. Pack light if possible.
Do I need a visa for Singapore to transit to Johor Bahru?
Visa requirements depend entirely on your passport nationality. Singapore is a separate country. Most travelers will need to clear Singapore immigration (even for a short transit) before proceeding to Malaysia. Ensure you meet the entry requirements for both Singapore and Malaysia. Many nationalities qualify for Visa-Free Entry or Visa on Arrival for short visits to both countries, but always check official government sources like the ICA of Singapore before travel.
Should I book ferry tickets from Batam to Singapore in advance?
Yes, it is highly recommended, especially on weekends, public holidays, and during peak travel seasons (school holidays, year-end). Advanced booking guarantees you a seat on your preferred departure time. You can book online through official ferry operators like BatamFast or Majestic Fast Ferry. Walk-in tickets are often available but risk being sold out or facing long waits.