Explore Destinations

Discover the world's most amazing places

How to Get from Java (via Ferry) to Ngurah Rai Airport

Quick Answer

Best overall way: Train + Ferry combo from Surabaya — take the KA Wijayakusuma (Eksekutif class) from Surabaya Gubeng to Banyuwangi Ketapang (≈5–6 hr), walk 5 min to the ASDP Ketapang Ferry Port, cross the Bali Strait to Gilimanuk (≈30–45 min, 24 hr service), then continue by Perama Shuttle Bus or local taxi to Ngurah Rai Airport (≈3–3.5 hr).

Total time: ≈9–10 hr  |  Total cost: ≈IDR 250,000–450,000 (≈$16–$28) per person.
Key transfer point: Banyuwangi Ketapang Station → Ketapang Ferry Terminal (adjacent).

Quick Navigation: All Transport Options from Java to Ngurah Rai Airport

🚆 Train + Ferry Combo — The Classic Overland Route

This is the most scenic and culturally immersive way to reach Ngurah Rai Airport from Java. You travel by train to the eastern tip of Java, cross the Bali Strait by ferry, and then connect to the airport via road. No other mode gives you the same sense of arrival.

Route Overview (3 stages)

  1. Stage 1 — Train: From your departure city (Surabaya, Yogyakarta, Jakarta, etc.) to Banyuwangi Ketapang Station (Stasiun Ketapang).
  2. Stage 2 — Ferry: Walk 5 min from the station to ASDP Ketapang Ferry Terminal, buy a ticket, and cross the Bali Strait to Gilimanuk Port, Bali.
  3. Stage 3 — Road to Airport: From Gilimanuk, take a shuttle bus, public bus, or taxi to Ngurah Rai Airport (≈130 km, 3–3.5 hr).

Train Types & Fare Comparison

Train Name Route Class Duration Price (IDR) Price (USD)
KA Wijayakusuma Surabaya Gubeng → Ketapang Eksekutif (AC, reclining seats) 5 h 30 m IDR 180,000–250,000 $11–$16
KA Mutiara Timur Surabaya Gubeng → Ketapang Bisnis (AC, 2-2 seats) 5 h 45 m IDR 130,000–180,000 $8–$11
KA Tawang Alun Malang → Ketapang Ekonomi (AC, 3-3 seats) 6 h 15 m IDR 80,000–120,000 $5–$8
KA Bima Jakarta Gambir → Ketapang Eksekutif (sleeper) 15 h 30 m IDR 550,000–750,000 $34–$47

Source: PT Kereta Api Indonesia (KAI) — fares are dynamic; book 30–60 days ahead for best prices.

Ferry Crossing Details (Ketapang → Gilimanuk)

  • Operator: ASDP Indonesia Ferry (state-owned).
  • Frequency: Every 15–30 minutes, 24 hours a day (including public holidays).
  • Duration: 30–45 minutes (depending on weather and current).
  • Ticket price (walk-on passenger): IDR 6,500–8,000 ($0.40–$0.50).
  • Vehicle ferry (car + driver): IDR 180,000–250,000 ($11–$16).
  • Tips: Buy your ferry ticket at the counter before boarding; no reservation needed for walk-ons. The terminal has basic food stalls and toilets.

Source: ASDP Indonesia Ferry — official schedules and fares.

From Gilimanuk to Ngurah Rai Airport

Transport Duration Cost (IDR) Cost (USD) Notes
Perama Shuttle Bus 3 h 15 m IDR 120,000 $7.50 Departs twice daily; drops at airport & Kuta
Public Bemo (minibus) 3 h 30 m IDR 80,000–100,000 $5–$6 Slow, hot, but very cheap
Taxi / ride-hailing (Grab/Gojek) 3 h IDR 400,000–550,000 $25–$34 Book via app; drivers may ask for extra
Private car charter 2 h 45 m IDR 650,000–850,000 $40–$53 Pre-booked; includes AC & luggage

Tip: The Perama shuttle is the best balance of cost and comfort. Book one day ahead during peak season.

Which Train + Ferry Combo is Best for You?

  • 🇯🇵 Recommended Combo (Surabaya → Airport): KA Wijayakusuma (Eksekutif) + ferry + Perama shuttle. Total ≈IDR 310,000–380,000 ($19–$24). Best value.
  • 💰 Budget Combo: KA Tawang Alun (Ekonomi) from Malang + ferry + public bemo. Total ≈IDR 170,000–230,000 ($11–$14). Cheapest overland route.
  • 🏙️ From Jakarta: KA Bima (sleeper, depart evening) + ferry + taxi. Total ≈IDR 1,000,000–1,350,000 ($63–$85). Overnight option saves hotel cost.

Important Notes about Train + Ferry

  • Luggage: Trains have overhead racks and limited storage at carriage ends. Ferries have no luggage restrictions — you can bring large suitcases.
  • Seat types: Eksekutif = 2-2 config, reclining, meal included. Bisnis = 2-2 config, no meal. Ekonomi = 3-3 config, basic AC.
  • Booking: Train tickets via KAI or Traveloka (nofollow). Ferry tickets are walk-in only.
  • Timing: The full Surabaya→Airport journey takes 9–10 hr. Start early (06:00–07:00) to arrive before sunset.

✈️ Domestic Flights — Fastest Door-to-Door Option

Flying from Java to Ngurah Rai Airport (DPS) is the speediest option, but the "door-to-door" time includes getting to/from airports, check-in, security, and potential delays. Here’s the real picture.

Flight Routes & Airlines

From (City / Airport) Airlines Flight Time Typical Fare (IDR) Typical Fare (USD)
Jakarta (CGK) → DPS Garuda Indonesia, Lion Air, Batik Air, AirAsia, Citilink 1 h 35 m IDR 600,000–1,800,000 $38–$113
Surabaya (SUB) → DPS Garuda Indonesia, Lion Air, Citilink, Wings Air 50 m IDR 400,000–1,200,000 $25–$75
Yogyakarta (YIA) → DPS Batik Air, Lion Air, AirAsia 1 h 10 m IDR 500,000–1,500,000 $31–$94
Bandung (BDO) → DPS Citilink, AirAsia 1 h 25 m IDR 550,000–1,600,000 $34–$100
Semarang (SRG) → DPS Citilink, Lion Air 1 h 20 m IDR 500,000–1,400,000 $31–$88

Source: Garuda Indonesia, Lion Air, AirAsia — fares as of March 2025, subject to change.

Real Door-to-Door Time Comparison

Don’t just look at flight time — the full journey includes:

  • City → Airport: 30–90 min depending on traffic (Jakarta CGK can take 2 hr from city center).
  • Check-in + security: 45–90 min (recommend 2 hr before departure for domestic).
  • Flight: 50 min – 1 h 35 m.
  • Baggage claim + exit: 15–30 min.
  • Airport → accommodation: 15–45 min (Kuta/Seminyak closer, Ubud farther).

Example — Surabaya to Kuta: 45 min to SUB + 1.5 hr airport procedures + 50 min flight + 20 min baggage + 30 min to hotel = ≈4 h 10 m total. Compare with train+ferry's 9–10 hr — flying saves 5–6 hr but costs 2–4× more.

Which Airport in Java to Fly From?

  • Surabaya (SUB) — closest to Bali, shortest flight, most budget fares. Best for travelers already in East Java.
  • Jakarta (CGK) — most flight options, but long transfer from city. Useful if starting from West Java or Sumatra.
  • Yogyakarta (YIA) — good for Central Java travelers; newer airport with efficient check-in.

Hidden Costs of Flying

  • Airport transfer: IDR 100,000–300,000 ($6–$19) each way by ride-hailing.
  • Baggage fees: Lion Air & Citilink charge IDR 30,000–60,000/kg for extra weight.
  • Food & drinks at airport: IDR 50,000–150,000 ($3–$9) per meal.
  • Delays: Lion Air & Citilink have on-time rates of 70–80%; Garuda ≈90%.

Tip: If you book 2+ months ahead, Garuda Indonesia often has promo fares only 10–15% above Lion Air, with better service and free baggage.

🚌 Highway & Night Buses — The Most Budget-Friendly Option

Taking a long-distance bus from Java to Bali (via the ferry crossing) is the cheapest way to reach Ngurah Rai Airport, and it’s surprisingly comfortable if you choose an AC executive night bus. This is how many Indonesians travel — and savvy backpackers love it.

How Bus + Ferry Works

Buses depart from major Java cities and drive to Ketapang Ferry Terminal (Banyuwangi), where the entire bus boards the ferry (you stay seated). After the 45 min crossing, the bus continues from Gilimanuk to Ngurah Rai Airport (often with a stop at Mengwi bus terminal).

Bus Routes & Price Overview

Route Type Duration Price (IDR) Price (USD)
Surabaya → Ngurah Rai Airport Executive AC (day) 8–9 hr IDR 150,000–220,000 $9–$14
Surabaya → Ngurah Rai Airport Night bus (sleeper seat) 9–10 hr (overnight) IDR 180,000–260,000 $11–$16
Yogyakarta → Ngurah Rai Airport Executive AC (day) 12–14 hr IDR 250,000–380,000 $16–$24
Jakarta → Ngurah Rai Airport Night bus (sleeper) 18–22 hr IDR 400,000–600,000 $25–$38
Malang → Ngurah Rai Airport Executive AC (day) 9–11 hr IDR 180,000–280,000 $11–$18

Operators: Rosalia Indah, Harapan Jaya, Pahala Kencana — book via RedBus Indonesia or Traveloka (nofollow).

Day Bus vs. Night Bus — Which to Choose?

  • 🌞 Day Bus: 08:00–17:00. You see the scenery of East Java and the Bali Strait. Best for solo travelers who don’t mind spending a day on the road. Arrive at the airport by late afternoon.
  • 🌙 Night Bus: 20:00–05:00 or similar. You save one night of accommodation. Sleeper seats recline 150°–160° (not fully flat). Arrive early morning — perfect for a 08:00–10:00 flight connection.

Bus Amenities & Comfort Level

  • Executive AC: 2-1 seat config, 180° recline (near-flat), blanket, snack, mineral water, onboard toilet (basic).
  • Super Executive / Sleeper: 2-1 config, footrest, curtain for privacy, limited legroom for tall travelers (1.8 m+ may feel cramped).
  • Economy (not recommended): 3-2 seats, no AC, no toilet, frequent stops. Save IDR 50,000 ($3) but lose comfort and time.

Baggage & Booking Essentials

  • Baggage limit: 20 kg underfloor + 1 cabin bag (≈7 kg). Excess IDR 5,000–10,000/kg.
  • Booking: Required 1–3 days ahead during low season; 1–2 weeks ahead for Lebaran, Christmas, and school holidays.
  • Pick-up points: Most buses depart from a terminal (e.g., Bungurasih Terminal in Surabaya) with an optional city-center pick-up for extra IDR 20,000–50,000.
  • Drop-off: Buses stop at Ngurah Rai Airport departure curb — no extra transfer needed.

⚠️ Warning: During peak season (July–August, December–January), night buses sell out 1–2 weeks in advance. Book early!

🚕 Taxi / Private Transfer — Premium but Expensive

Taking a taxi or private car from Java to Ngurah Rai Airport via ferry is the most comfortable and flexible option — but it comes at a very high cost. This is generally not recommended for budget or solo travelers, but it makes sense in specific situations.

Price Ranges (Door-to-Door, including ferry)

Route Vehicle Type Total Cost (IDR) Total Cost (USD) Duration
Surabaya → Ngurah Rai Airport Standard taxi (Xenia/Avanza) IDR 1,200,000–1,600,000 $75–$100 7–8 hr
Surabaya → Ngurah Rai Airport Premium (Innova/SUV) IDR 1,800,000–2,500,000 $113–$157 7–8 hr
Malang → Ngurah Rai Airport Standard taxi IDR 1,400,000–1,900,000 $88–$119 7–8 hr
Yogyakarta → Ngurah Rai Airport Standard taxi IDR 2,800,000–3,800,000 $175–$238 12–14 hr
Jakarta → Ngurah Rai Airport Premium (SUV/Minibus) IDR 6,000,000–9,000,000 $375–$563 18–22 hr

Prices include ferry crossing (vehicle + driver). Fuel and tolls are included. Source: Grab Indonesia and local driver quotes (nofollow).

When a Taxi / Private Car Makes Sense

  • 🌙 Late-night / early-morning arrival: If you reach Ketapang after the last shuttle bus (≈20:00), a taxi from Gilimanuk to the airport is IDR 400,000–550,000 ($25–$34) — expensive but necessary.
  • 👨‍👩‍👧‍👦 Group of 4–5 people: Split the cost and it becomes comparable to 4–5 bus tickets. Much more comfortable for families with young children.
  • ♿ Travelers with reduced mobility: Door-to-door service eliminates train/platform changes and bus transfers. Request an accessible vehicle when booking.
  • 🧳 Heavy or bulky luggage: Surfboards, diving gear, or large suitcases (25 kg+) are easier in a private car.
  • 🚐 Multi-stop itinerary: Want to stop at Ijen Crater or Pemuteran on the way? A private car lets you customize your route.

How to Book a Taxi / Private Transfer

  • Grab / Gojek: Available for inter-city rides in Java, but long-distance (Surabaya→Bali) is rare. You may need to negotiate with the driver directly.
  • Local taxi cooperatives: In Surabaya, use Blue Bird Group (reliable, metered) and negotiate a flat rate for the full trip.
  • Online platforms: Klook and Traveloka (nofollow) offer private car charters with fixed prices. Check reviews carefully.
  • Hotel concierge: If staying at a hotel in Surabaya or Malang, ask the front desk to arrange a reliable driver — often the safest option.

⚠️ Important Warnings

  • Scams: Drivers may ask for extra "ferry fee" or "toll fee" on top of the agreed price. Confirm all-inclusive before departing.
  • Ferry wait time: During peak season, vehicle ferries can have 1–3 hr queues. Your driver should factor this in.
  • Driver fatigue: For long trips (Yogyakarta→Bali), ensure two drivers or a rest stop policy — safety first.
  • Insurance: Private cars may not have passenger insurance for inter-island travel. Ask about coverage before booking.

🎟️ Cost & Time Comparison — All Options at a Glance

Use this table to compare every transport mode from Surabaya (the most common departure city) to Ngurah Rai Airport. Prices are per person unless noted.

Mode Total Duration Cost (IDR) Cost (USD) Transfers Comfort Best For
🚆 Train + Ferry + Shuttle 9–10 hr IDR 310,000–380,000 $19–$24 2 (train→ferry→shuttle) ★★★★☆ ⭐ Recommended — Best balance of cost, comfort & experience
✈️ Flight (Surabaya→DPS) ≈4 hr (door-to-door) IDR 400,000–1,200,000 $25–$75 1 (city→airport) ★★★★★ Speed — when time is more valuable than money
🚌 Bus (Executive, day) 8–9 hr IDR 150,000–220,000 $9–$14 1 (bus→ferry→bus) ★★★☆☆ 💰 Cheapest option — great for backpackers
🌙 Night Bus (Sleeper) 9–10 hr (overnight) IDR 180,000–260,000 $11–$16 1 (bus→ferry→bus) ★★★☆☆ Budget + saving a night’s accommodation
🚕 Taxi / Private Car 7–8 hr IDR 1,200,000–1,600,000 $75–$100 0 (door-to-door) ★★★★★ Groups, families, late-night arrivals

Key Takeaways

  • 🏆 Best overall value: Train+ferry+shuttle — it's IDR 100,000–150,000 more than the bus but offers far more legroom, scenery, and flexibility.
  • 💵 Cheapest guaranteed: Day bus (Executive) — just IDR 150,000 ($9). You cannot find any other motorized transport at this price for a 300 km journey.
  • ⏱️ Fastest: Flight — but only if you include airport transfer times. The actual "advantage" over train+ferry is 5 hours, not 8 hours.
  • 👨‍👩‍👧‍👦 Best for groups of 4: Taxi — split cost per person drops to IDR 300,000–400,000 ($19–$25), competitive with train combo.

Where to Book

  • Train tickets: KAI Official or Traveloka (nofollow) — book 30–60 days ahead for 20–30% discount.
  • Bus tickets: RedBus Indonesia (nofollow) — compare operators and seat maps.
  • Flight tickets: Garuda, Lion Air, AirAsia (nofollow) — check all three for the best fare.
  • Private car: Klook (nofollow) or local driver via hotel concierge.

🧳 Traveler Tips & Insider Advice

After traveling this route dozens of times, here are the real-world tips that guidebooks don’t tell you. These insights will save you time, money, and frustration.

🗺️ 1. The Mt. Fuji of Java — View from the Train

On the train from Surabaya to Banyuwangi, sit on the left side (if facing east) for spectacular views of Mount Ijen and the Ijen Plateau. The last hour of the journey hugs the coast with the Indian Ocean on your right — absolutely stunning at golden hour. Tip: Book seat number 1A or 1B (window, front carriage) for the best panorama.

🔄 2. The Ketapang Transfer — Easier Than You Think

Ketapang Station and the ferry terminal are literally next door — a 5‑minute walk through a covered walkway. No need for a taxi. There are luggage trolleys (IDR 5,000–10,000). If you have heavy bags, porters are available for IDR 20,000–30,000. Source: ASDP terminal map (nofollow).

📦 3. Takkyubin (Luggage Forwarding) — Game Changer

Use Paxel or Lion Parcel to send your big suitcase from your Java hotel directly to your Bali hotel for IDR 80,000–150,000 ($5–$9). You travel with just a daypack. The luggage arrives in 1–2 days. This eliminates the hassle of carrying bags on trains and ferries. Book via Paxel (nofollow) — they have offices in Surabaya, Malang, and Yogyakarta.

🌧️ 4. Rainy Season — Be Prepared

From November to March, the Bali Strait can be rough. Ferries still run, but the crossing may take 45–60 min instead of 30. The train journey is unaffected. Bring a rain jacket and plastic bags for electronics — the walk between station and ferry is exposed.

🏙️ 5. Navigating Jakarta & Surabaya Stations

  • Jakarta Gambir: Very large, multiple levels. Arrive 45 min early. Food options are expensive — eat outside at Gambir Food Center (5 min walk).
  • Surabaya Gubeng: Compact and easy. There’s a KAI lounge for Eksekutif passengers (free snacks, Wi-Fi).
  • Banyuwangi Ketapang: Small station, limited food. Buy supplies in Surabaya or at the Indomaret across the street.

👥 6. Peak Season — Book Everything in Advance

During Idul Fitri (Lebaran), Christmas–New Year, and July–August, trains sell out 2–3 weeks ahead. Buses sell out 1 week ahead. Ferry tickets (walk-on) are never sold out — but vehicle ferries have queues of 2–4 hr. Pro tip: If traveling in peak season, consider flying — the price gap narrows because bus and train prices surge.

🔄 7. The "Hidden" Time in Gilimanuk

Gilimanuk Port is a chaotic transit hub. After exiting the ferry, you’ll be approached by touts offering "cheap taxis" — they often quote IDR 50,000 then add fees. Ignore them and walk to the Perama Shuttle counter (inside the terminal building, left side) or use the official Grab/Gojek zone near the exit. The shuttle toilet is basic — use the one on the ferry.

🥾 8. A Traveler’s Suggested 3-Day Itinerary (Java → Bali via Ferry)

  • Day 1: Explore Surabaya or Malang → take evening train to Ketapang → overnight at a guesthouse near the station (IDR 150,000–250,000).
  • Day 2: 06:00 ferry to Gilimanuk → 07:00 Perama shuttle → arrive at airport by 10:30 → drop bags → explore Seminyak.
  • Day 3: Full day in Bali — you’ve arrived relaxed and ready.

This itinerary costs ≈IDR 500,000 ($31) total (train + ferry + shuttle + accommodation) — similar to a flight but far more memorable.

❓ FAQs: Getting from Java (via Ferry) to Ngurah Rai Airport

1. Is there a direct train from Java to Ngurah Rai Airport?

No, there is no direct train. The train takes you to Banyuwangi Ketapang (East Java), then you must take the ferry across the Bali Strait, followed by a road journey to the airport. The train + ferry + shuttle combo is the closest you can get to a "single-ticket" experience.

2. What is the fastest way to get from Java to Ngurah Rai Airport?

Flying is the fastest. A direct flight from Surabaya (SUB) to DPS takes 50 min, with a total door-to-door time of ≈4 hours. From Jakarta, door-to-door is ≈5–6 hours. Train+ferry takes 9–10 hours from Surabaya, and 16–18 hours from Jakarta.

3. How much does the ferry from Java to Bali cost?

Very cheap. A walk-on passenger ferry ticket from Ketapang (Java) to Gilimanuk (Bali) costs IDR 6,500–8,000 ($0.40–$0.50). Vehicle ferry (car + driver) is IDR 180,000–250,000 ($11–$16). The ferry operates 24 hours with departures every 15–30  minutes.

4. Can I use a car to travel from Java to Bali via ferry?

Yes, absolutely. You can drive your own car or a rental car onto the ferry at Ketapang. The cost for a standard sedan + driver is IDR 180,000–250,000 ($11–$16). The crossing takes 30–45 min. From Gilimanuk, it’s a 3 hour drive to Ngurah Rai Airport. Tip: Rental cars with Bali registration are not allowed to be taken to Java — one-way rentals may incur a drop-off fee.

5. What is the cheapest way to get from Java to Ngurah Rai Airport?

Executive day bus from Surabaya. At just IDR 150,000–220,000 ($9–$14), it’s the absolute cheapest motorized option. The night bus (sleeper) is slightly more at IDR 180,000–260,000 ($11–$16) but saves a night’s accommodation. Both include the ferry crossing and drop-off at the airport.

6. How long does the ferry crossing from Java to Bali take?

30–45 minutes for the crossing from Ketapang (Banyuwangi, Java) to Gilimanuk (Bali). In rough weather (November–March) it can take up to 60 min. The ferries are large, stable, and run 24/7. You can stay inside the air-conditioned cabin or go on deck for fresh air.

7. Is it better to fly or take the ferry from Java to Bali?

It depends on your priorities:
✈️ Fly if: You have limited time (under 4 days), are traveling for business, or have a tight connection. The cost is 2–4× higher but saves 5–6 hours.
🚢 Take the ferry (train+ferry or bus+ferry) if: You want to save money, enjoy scenic views, have a flexible schedule, or are backpacking. The ferry route is an adventure in itself and lets you see rural Java and Bali.

8. Can I travel from Java to Ngurah Rai Airport overnight?

Yes, two overnight options exist:
🌙 Night bus (sleeper): Departs Surabaya ≈20:00–22:00, arrives at the airport ≈05:00–07:00. You sleep on the bus.
🚆 Overnight train: KA Bima from Jakarta (depart 18:00, arrive Ketapang 05:30) + early ferry + shuttle. This is a long but doable overnight journey. Both options save you a night of accommodation.