Leaving behind the surf breaks and temple ceremonies of Bali for the volcanic landscapes and cultural heartlands of Java marks a shift from island relaxation to deep Indonesian heritage. While Bali feels like a boutique tropical escape, Java is the bustling engine of the archipelago, home to ancient wonders like Borobudur and the vibrant street food scenes of Semarang and Magelang.
Crossing the Bali Strait involves moving between two very different worlds. You can fly to Central Java in little over an hour or take the long route by road and ferry. Whether you are heading to the colonial port city of Semarang or the highland town of Salatiga, you can book your tickets on GoAsia.cc.
Bali to Java by Flight
For those who want to spend their time exploring Javanese culture rather than sitting on a road, flying is the most efficient choice. AirAsia's route page lists direct flights from Bali (DPS) to Semarang (SRG) with Super Air Jet, Lion Air, Indonesia AirAsia and Pelita Air, with a flight time of 1 hour 20 minutes.[1] One-way fares start at IDR 1,058,736, with the sample flights shown at about IDR 1,700,000 (October 2026).[1]
Flights depart from Ngurah Rai International Airport (DPS). The flight saves you nearly an entire day of travel compared to ground transport and avoids the ferry crossing and long highway stretches.
Bali to Java by Bus
The bus journey from Bali to Java is an overland adventure. Buses cross the Bali Strait by ferry between Gilimanuk in Bali and Ketapang in Java, a crossing managed by ASDP,[2] before continuing across Java. Booking platforms list departures from Denpasar, Mengwi and Tabanan to Semarang, Salatiga, Magelang, Temanggung and other towns in Central Java.[3]
The Executive class is the standard for long-distance travel in Indonesia. On booking platforms, executive buses to Semarang or Salatiga cost about $25 to $53 and take 11 hours 30 minutes to 18 hours 30 minutes, depending on where in Bali you board and on traffic (October 2026). Buses to Magelang or Temanggung cost about $35 to $50 and take 17 to 22 hours.[3]
Sleeper Class Buses
For more comfort on a long road trip, booking platforms also list sleeper departures to Semarang and Salatiga, priced within the same range as the executive buses to those cities.[3] Sleeper seats let you lie back during the overnight legs and arrive in Java more rested.
Delays at the Strait
Queues at the ferry port can add hours. In late September 2026, ASDP put 26 ships on the Ketapang to Gilimanuk crossing to clear vehicle queues after about 3 days of congestion, with a queue of about 17 km on the Ketapang side.[4] By 29 September 2026 the queue on the Ketapang side had fallen to about 8.5 km with a waiting time of about 34 minutes, and 27 ships were operating.[2] Allow extra time in your plans.
Book in Advance: Bus seats, especially sleeper seats, can fill up quickly during weekends and public holidays. It is wise to secure your seat a few days early.
Prepare for the Ferry: If you take the bus, you will cross the strait by ferry. Keep your valuables, a jacket and some water with you rather than leaving everything on the bus.
Pack Layers: Indonesian buses are famous for their powerful air conditioning. Even if it is hot outside, the bus interior can feel like a refrigerator. Bring a jacket or a small blanket.
Check the Boarding Point: Departures leave from different places in Bali, not only Denpasar. Confirm your boarding point and aim to be there well before departure.
Snacks and Water: Meal stops can be unpredictable. Carry enough water and light snacks to keep you going through the long stretches of the highway.
Use the booking tool on this page to compare the transport options currently available from Bali to Java, including current prices and schedules.
What is the cheapest way to get from Bali to Java?
The cheapest way is usually an executive bus. On booking platforms, tickets to Semarang start at about $25 (October 2026). Prices depend on your destination in Java.
What is the fastest way to get from Bali to Java?
The fastest way is to fly. AirAsia's route page lists a direct flight from Bali to Semarang of 1 hour 20 minutes, much quicker than the bus, which takes at least 11 hours 30 minutes.
How long does it take to get from Bali to Java?
A flight takes about 1 hour 20 minutes. Bus journeys are listed at about 11 hours 30 minutes to 22 hours, depending on the destination, where you board and traffic at the ferry crossing.
Is the ferry crossing included in the bus ticket price?
Ask the operator when you book. The bus crosses the Bali Strait by ferry between Gilimanuk and Ketapang, and the booking confirmation should state whether the ferry fare is part of your ticket.
Are there sleeper buses available for this route?
Yes. Booking platforms list sleeper departures to Semarang and Salatiga, at prices within the range of the executive buses to those cities.
Can the ferry crossing at Gilimanuk and Ketapang cause delays?
Yes. In late September 2026, ASDP reported a vehicle queue of about 17 km on the Ketapang side after about 3 days of congestion. Allow extra time and check for updates before you travel.
Sources and background
Numbers in the text such as [1] refer to these sources.
Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.