Quick Answer
The most common and cost-effective way to get from Ngurah Rai Airport (DPS) to Java is by a combination of taxi/bus + ferry + bus/train. There are no direct flights or bridges connecting Bali and Java. The journey typically involves traveling to Bali's western port, Gilimanuk, crossing the Bali Strait to Java's port of Ketapang (near Banyuwangi), and then continuing your journey into Java. The cheapest total cost can be under $10 USD, while the fastest option (domestic flight to a Java airport) takes about 1 hour of flight time, plus airport transit.
Option 1: Ferry & Overland Combo (Most Popular & Budget)
This is the classic route for budget travelers, backpackers, and locals. It's an adventure that splits the journey into three clear legs: getting to Bali's port, crossing the sea, and entering Java's transport network.
The 3-Step Journey Breakdown:
- Ngurah Rai Airport (DPS) to Gilimanuk Port (Bali): Distance ~140 km. Takes 3-4 hours.
- By Tourist Shuttle Bus (Cheapest from Airport): Companies like Perama Tour offer direct transfers. Cost: ~IDR 200,000 ($13 USD). Requires waiting for departure times.
- By Public Bus (Cheapest Overall): Take a taxi to Ubung Terminal in Denpasar (~IDR 150k), then a public bus to Gilimanuk (~IDR 50k). Total: ~$13 USD but more complex.
- By Private Taxi (Most Convenient): Direct door-to-port service. Cost: IDR 600,000 - 800,000 ($40-$55 USD). Negotiate or use ride-hail apps (Grab/Gojek) for better rates.
- Gilimanuk to Ketapang Ferry Crossing (Bali Strait): Distance ~5 km. Takes 20-30 minutes.
- Ferries run 24/7, departing every 15-30 minutes during peak times. No need for advance booking.
- Ferry Cost: IDR 8,000 - 15,000 ($0.50 - $1 USD) per person. Vehicles cost extra.
- It's a simple roll-on, roll-off ferry. You can stay in your vehicle or walk on.
- Ketapang Port (Java) to Your Final Destination (e.g., Surabaya, Yogyakarta):
- By Train (Recommended for Comfort): From Banyuwangi Baru Station (a short taxi ride from the port), you can take executive trains to Surabaya (4-5 hrs, ~IDR 150k), Malang, or even overnight to Yogyakarta (8-9 hrs). Book on KAI.
- By Bus: Numerous buses depart from Ketapang terminal to major cities like Surabaya (5-6 hrs, ~IDR 80k) and Probolinggo (for Mount Bromo).
Sample Itinerary & Cost Table (Per Person):
| Route (Example: to Surabaya) | Total Time | Estimated Cost (USD) | Comfort Level |
|---|---|---|---|
| Airport Taxi -> Public Bus -> Ferry -> Economy Train | 9-11 hours | $15 - $25 | Basic |
| Tourist Shuttle -> Ferry -> Executive Train | 8-10 hours | $25 - $40 | Good |
| Private Taxi -> Ferry -> Private Driver in Java | 7-9 hours | $100+ | Excellent (Door-to-Door) |
Option 2: Domestic Flight (Fastest Point-to-Point)
While there's no bridge, flying is the fastest way to cover the large distance between islands, though "total travel time" is often underestimated.
Key Considerations:
- Java Airports: You can fly from DPS to Surabaya (SUB), Yogyakarta (YIA), Jakarta (CGK), or Bandung (BDO). Surabaya is the closest major gateway to East Java attractions.
- Realistic "Door-to-Door" Time:
- Taxi to DPS Airport (1-2 hrs before flight): 1.5 hours
- Check-in, Security, Boarding: 1.5 - 2 hours
- Flight Time (DPS to SUB): ~1 hour
- Deplaning, Baggage Claim: 0.5 hours
- Taxi from SUB Airport to City Center: 1 hour
- TOTAL: ~5.5 - 6 hours
Note: This is often comparable to or even longer than the private taxi+ferry+train combo for East Java destinations.
- Cost: Budget airlines (Lion Air, AirAsia, Citilink) offer fares from $30 - $80 USD one-way if booked in advance. Full-service carriers (Garuda) cost more.
- Best For: Travelers heading to West or Central Java (Jakarta, Bandung, Yogyakarta), those with limited time who dislike long overland journeys, or business travelers.
Pro Tip: Use flight comparison sites like Skyscanner and always factor in the cost and time of getting to/from the airports on both ends.
Option 3: Private Car Transfer with Driver (Door-to-Door Convenience)
This is the most comfortable and hassle-free, but also the most expensive, option. A private driver will pick you up from DPS, drive you to Gilimanuk, accompany you on the ferry, and then drive you to your exact destination in Java.
What to Know:
- Cost: Typically starts from $150 USD and can go up to $300+ USD for long distances (e.g., to Yogyakarta). The price usually covers the driver, fuel, tolls, ferry tickets, and the driver's return trip.
- Travel Time: Direct driving time to Surabaya is roughly 7-8 hours, but with ferry and breaks, plan for a 9-11 hour day.
- Booking: Arrange through reputable tour companies, your hotel, or platforms like Klook or Viator.
- Best For:
- Families with young children or a lot of luggage.
- Small groups (splitting the cost makes it reasonable).
- Travelers arriving on a late flight or with specific time constraints.
- Those prioritizing comfort, privacy, and a seamless experience.
Warning: This is not a budget option. For solo or budget travelers, the ferry+bus/train combo is dramatically cheaper.
Ticket & Cost Comparison: Bali (DPS) to Java
This table summarizes all options to help you decide based on budget, time, and comfort.
| Transport Method | Total Door-to-Door Time* (to Surabaya) | Estimated Cost (Per Person) | # of Transfers/ Hassle | Best For |
|---|---|---|---|---|
| Public Bus + Ferry + Economy Train | 10-12 hours | $10 - $20 USD (Cheapest) | High (3-4 changes) | Ultra-budget backpackers, adventurous travelers. |
| Tourist Shuttle + Ferry + Executive Train | 9-11 hours | $25 - $40 USD | Medium (2-3 changes) | Most budget travelers (Best Value). |
| Domestic Flight (DPS → SUB) | 5.5 - 6.5 hours (Fastest) | $40 - $100+ USD | Low (Airport transfers only) | Time-pressed travelers, going to far destinations in Java. |
| Private Car & Driver | 9-11 hours | $150 - $300+ (for the car) | None (Door-to-Door) | Families, groups, luxury/comfort seekers. |
*Time includes assumed airport/terminal wait times and local transfers.
Traveler Experience & Essential Tips
Practical Advice from Those Who've Done It:
- Luggage Strategy: If you have large suitcases, the ferry+private taxi/tourist shuttle+train combo is manageable. For the public bus, pack light. Consider sending luggage ahead via services like JNE or TIKI if you're moving between fixed addresses.
- The Ferry Crossing: It's usually calm, but can be choppy in the rainy season (Dec-Feb). The ferry is basic; buy snacks and drinks beforehand. Keep your belongings with you.
- Payment: Carry ample Indonesian Rupiah (IDR) cash, especially for taxis to/from ports, ferry tickets, and public buses. Card payments are rare in these segments.
- Connectivity: Your Indonesian SIM card will work throughout the journey. Data is useful for navigation and ride-hail apps at terminals.
- Night Travel: Overnight buses or trains from Banyuwangi can save on a night's accommodation. Book sleeper berths (Kereta Api) for comfort.
- Peak Season Warning: During Indonesian holidays (Eid, Nyepi, Christmas), ferries and buses experience long queues. Add 2-3 extra hours to your travel estimate and book train tickets far in advance.
- First/Last Leg from DPS: If you arrive late at night (after 10 PM), your only safe options are a pre-booked private transfer or a hotel near the airport to start your journey fresh in the morning. Public options cease in the late evening.
FAQs: Traveling from Bali to Java by Ferry
Is there a direct train or bus from Ngurah Rai Airport to Java?
No, there is no direct service. All overland routes require taking a vehicle (bus/car) to Gilimanuk Port in Bali, crossing the Bali Strait by ferry (~30 mins), and then continuing your journey in Java from Ketapang Port.
What is the cheapest way to get from Bali Airport to Java?
The absolute cheapest way is: Taxi to Ubung Bus Terminal (Denpasar) → Public Bus to Gilimanuk → Ferry to Ketapang → Public Bus/Train in Java. This can cost under $15 USD total but requires multiple changes and good local navigation skills.
Is the ferry from Bali to Java safe?
Yes, it is generally very safe. The ferries are large, roll-on/roll-off vessels that have been operating this route for decades. They run 24/7. Always follow crew instructions and be mindful of your belongings in crowded areas.
How long does the entire journey from DPS to Surabaya take?
With the ferry combo, plan for a full travel day of 8-11 hours, depending on your chosen level of comfort and connections. A private driver takes a similar time. A flight is faster in the air but total door-to-door time is still 5.5-6.5 hours.
Can I book the ferry ticket in advance?
No, and it's not necessary. Ferries depart so frequently (every 15-30 mins during the day) that you simply buy a ticket at the port counter (Gilimanuk) right before boarding. The process is quick and straightforward.
What if my flight arrives late at night (after 10 PM)?
Your options are limited. We strongly recommend booking a hotel near the airport and starting your journey in the morning. Alternatively, you can pre-book a private car transfer which can operate at night, but it will be expensive.
Is it better to fly or take the ferry to Java?
It depends on your destination and priorities.
Fly if: You're going to West/Central Java (Jakarta, Yogyakarta), are very time-pressed, or dislike long road trips.
Take the ferry if: You're heading to East Java (Surabaya, Bromo, Ijen), are on a budget, enjoy overland travel, or have flexible time.
Can I rent a car in Bali and drive it to Java?
Technically yes, but it's complex and not recommended for most tourists. You must ensure your rental agreement permits inter-island travel. You will pay extra for the ferry crossing for the vehicle. Dealing with Java's traffic and different rules can be stressful. Hiring a private car with a local driver is a much more practical solution.