How to get from Yogyakarta to Bali?
Bali is an island paradise with a compelling mix of nature and culture. It is a constant item on many travellers’ bucket lists for its iconic white-sand beaches, limestone cliffs, rice terraces, and age-old temples.
It has an overall laidback and hippie vibe, also making it a go-to destination for surfers and digital nomads. The south Bali beach resort towns like Kuta and Seminyak are the top draw but it’s an eclectic island with so much to offer adventurous travellers.
There is the famed art heritage of Ubud, miles of rolling paddy fields, hidden waterfalls and volcanoes to hike. Bali is also a great base to explore the many offshore islands such as Nusa Penida or a side trip to nearby Lombok.
When travelling the 700 km distance from Yogyakarta to Bali, you have 2 options: :you can take a flight for a little less than 3 hours, including airport transfers, or you can take a combined train and ferry journey for at least 19 hours. Rates range between 483,000 IDR ($30) to 605,000 IDR ($37).
Flying is by far the fastest and easiest way to reach Bali to get from Yogyakarta to Bali. The flight takes less than 3 hours with tickets starting from 605,000 IDR ($37). Note that this includes short taxi transfers to and from the airports.
If you’re craving adventure and have the time to do it, you can also take a combined train and ferry ride from Yogyakarta to Bali. The journey takes at least 19 hours across East Java and down the West Coast of Bali, including an additional bus ride from the harbour to central or south Bali. The total cost is about 483,000 IDR ($30). If you decide to go overland, we also strongly recommend to visit the Bromo and Ijen Volcano as well as the Sewu waterfalls..
There is also an option to take the bus, but this is an uncomfortable 20-hour journey that involves several transfers, and is often impacted by delays. Long distance buses can be very tiring and are not the safest way to travel, especially at night.
|Flight||2 hours 40 minutes||605,000 IDR ($37)||Check Flights|
|Train||19 hours||483,000 IDR ($30)||Read article for info|
Quick Answer on Getting from Yogyakarta to Bali
If you are short on time, we highly recommend flying to Bali. This is especially true if your final destination is one of the South Bali resort towns such as Kuta or Seminyak, which are both just a short drive from Bali’s airport.
However, taking a flight or a direct train means you’ll miss out on some beautiful places along the way from Yogyakarta to Bali.
If you have more time, we recommend to get the most out of this journey by visiting the Bromo and Ijen Volcano on the way. You can check out our guides to do this independently, or book an organized tour that includes transport from Yogya to Bromo, Ijen and Bali.
These tours from Yogyakarta are usually 3 day/2 night itineraries visiting Mount Bromo and Mount Ijen en route before taking the ferry to Bali.
They include overnight accommodation and rates are around 1.5-3 million IDR per person ($100-200) inclusive. Several tour companies In Yogyakarta operate these trips year round.
View itinerary from Yogyakarta to Bali
- Yogyakarta City Centre
- 1 hour 10 minutes
- Yogyakarta International Airport
- 1 hour 10 minutes
- Ngurah Rai International Airport
- 20 minutes
- Bali City Centre
- Lempuyangan Railway Station
- 14 hours
- Banyuwangi Baru Railway Station
- 10 minutes
- Ketapang Harbour
- 45 minutes
- Gilimanuk Harbour
- 4 hours
- Bali City Centre
Yogyakarta to Bali by Flight
Duration: 2 hours 40 minutes
Cost: 605,000 IDR ($37)
As of 2020, most domestic flights to and from Yogyakarta are now operating at Yogyakarta International Airport (YIA), located about 42 kms east of the city centre. This should not be confused with the older Adisucipto International Airport, which doesn’t have direct flights to Bali anymore.
Departing from Yogyakarta International Airport (YIA) adds a little more to the travel time from the city centre, but it’s still an easy journey. See below for a step-by-step guide when taking a flight from Yogyakarta to Bali.
Step 1: Yogyakarta City Center to Yogyakarta International Airport
Duration: 1 hour 10 minutes
Cost: 45,000 IDR ($2.70)
From the city centre, you can either take a direct taxi or a combined train and taxi ride to reach Yogyakarta International Airport.
If you’re coming from the main tourist district of Malioboro St, you can take the train from Yogyakarta Station as far as Wojo Station. This is the train station nearest to the airport. Travel time is around 1 hour and a ticket costs 30,000 IDR ($1.80).
From Wojo Station, Damri shuttle buses are available to take you to the airport for at least 15,000 IDR ($0.90). In case they are not available when you arrive, you can also opt to take a 5-min taxi ride for 49,000 IDR ($3).
To save yourself the hassle of making a transfer at the train station, you can also just take a taxi directly to the airport.
Make sure to reiterate that you need to go to the new Yogyakarta International Airport and are flying to Bali (there are no longer direct flights to Bali from Adisucipto Airport).
We recommend booking a car via ride hailing apps Grab or Go-Jek for cheaper fares. It takes a little over an hour to get there and costs around 247,000 IDR ($15) depending on your exact city centre location.
Step 2: Yogyakarta to Bali by Flight
Duration: 1 hour 10 minutes
Cost: 460,000 IDR ($28)
From Yogyakarta International Airport, the nonstop flight to Bali takes 1hr 10mins. Airfares start at 369,000 IDR ($24).
Lion Air, AirAsia and Garuda Indonesia operate at least 3 direct flights daily starting in the early morning and then late afternoon and evening, such as at 07:25, 16:20 and 20:50.
Step 3: Bali Airport to City Center by Taxi
Duration: 20 minutes
Cost: 100,000 IDR ($6)
From Bali Airport, you can go to anywhere in Bali via taxi or private car.
Airport taxis are easily available outside the arrivals hall. Keep in mind that rides are prepaid at the taxi counter and are more expensive than metered fares if hailing one on the street. Rates start at 120,000 IDR ($7.50) for the short trip to Kuta, and travel time is about 20 mins, depending on where your accommodation is located.
Ride hailing apps like Grab are a cheaper option but these are prohibited from picking up passengers inside Denpasar-Bali Airport. They wait outside the airport perimeter which is behind the main multi-storey car park. It’s more than a 5 min walk from the arrivals area and the route is quite difficult if you are travelling with large, heavy luggage.
You can also pre-book an airport ride at least a day prior to your arrival. A private car booked via Klook costs at least 100,000 IDR ($6) depending on the destination. You can book a ride through the link below.
Yogyakarta to Bali by Train
Duration: 19 hours
Cost: 483,000 IDR ($30)
Travelling via a combined train and ferry journey from Yogyakarta to Bali is long and fairly tiring.
However, it is an option to consider for travellers with time and a craving to see rural East Java beyond Indonesia’s famous tourist spots. There are many iconic natural attractions between Yogyakarta and the ferry port for Bali, such as Mount Bromo and Mount Ijen.
Note that the total travel time by train and ferry is in excess of 19 hours. If you wish to break up the journey to visit some of these on the way, a dedicated multi-day overland tour is arguably a better option for the Yogyakarta to Bali route.
Step 1: Yogyakarta Lempuyangan Station to Banyuwangi Baru Station by Train
Duration: 13 hours 35 minutes
Cost: 165,000 IDR ($10)
There’s only one direct train that operates on this route daily which departs from Lempuyangan Railway Station, just a few minutes’ walk from Yogyakarta’s backpacker area.
It departs at 07:00 and arrives at Banyuwangi Baru Station at 20:34. Depending on which class you book, a ticket costs between 165,000 IDR ($10) to 247,000 IDR ($15).
Step 2: Banyuwangi Baru Station to Ketapang Harbour by Foot
Duration: 10 minutes
From Banyuwangi Baru Station, Ketapang Harbour is less than a kilometre away. You can reach it on foot in just 10 mins.
If you are weighed down with heavy luggage, you can also take a taxi. Bear in mind the short distance and negotiate a price beforehand to avoid any expensive surprises.
Step 3: Ketapang Harbour to Gilimanuk Harbour by Ferry
Duration: 45 minutes
Cost: 8,000 IDR ($0.50)
As long as weather permits, ferries from Ketapang to Gilimanuk operate 24 hrs a day, with departures every 15 to 20 mins on average. The journey takes only 45 mins and a ticket costs 8,000 IDR ($0.50). You can buy your ticket at the pier.
Step 4: Gilimanuk Harbour to Bali City Centre by Minibus or Taxi
Duration: 4 hours
Cost: 310,000 IDR ($19)
The first consideration should be the unofficial option. There is usually a vehicle-owner on the ferry with a free seat or two in their car heading to the capital Denpasar or one of the South Bali beach towns.
They might not have the best vehicle, but will get you to, or close to, your destination for a bargain. We know it’s a risk to trust strangers, but it’s worth considering. Check out the condition of their car and agree on a price first.
If you’re not comfortable with that set-up, there is a transport terminal just 500m from Gilimanuk Harbour. From here, you can take a minibus.
The minibus goes direct to Mengwi Bus Terminal, which is located about 25km north of Denpasar, or about one hour from Kuta. A ticket costs about 65,000 IDR ($4). For another 65,000 IDR ($4) you can take another bus direct to Kuta or to the beach town of Sanur priced at 55,000 IDR ($3.70). You can book your journey online at 12GoAsia.
From Mengwi, you can take a taxi direct to your hotel. Fares cost around 245,000 IDR ($15). You can also take a taxi all the way from Gilimanuk Terminal to your Bali destination. Rates start at 1,226,000 IDR ($75) for destinations in the south such as Kuta or Legian.
From Gilimanuk there is also a direct bus service to Singaraja in North Bali which passes through the main beach resort area of Lovina. Fares are from 45,000 IDR ($3) and it takes about 1.5 hrs.
More routes to Bali
More routes from Yogyakarta
Most popular routes in Indonesia
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?