How to get from Bali to Yogyakarta

Cultural & Heritage · Indonesia · Urban & Cultural · Bali · Yogyakarta

Bali (Denpasar) to Yogyakarta is easiest by direct flight to Yogyakarta International Airport (YIA). Overlanders can cross by ferry to Java and continue by train (scenic) or take a direct overnight bus. Private car + ferry is the most flexible for families or lots of luggage. Compare the options below with step-by-steps and map links.

At A Glance (Bali to Yogyakarta)

Mode Duration Best For
✈️ Flight (DPS → YIA) ~1h20 flight + ~60–90m YIA→city Fastest overall
🏷️ Cost: ~IDR 700k–2.0m one-way (seasonal) » search flights | Trip.com fares
⛴️🚆 Ferry (Bali→Java) + Trains via Banyuwangi/Surabaya ~13–18h total (connections) Scenic journey, rail fans
🏷️ Cost: Ferry ~IDR 8k–10k + trains ~IDR 250k–700k » compare trains
🚌 Direct Overnight Bus (via ferry) ~15–20h door-to-door Cheapest single-ticket overland
🏷️ Cost: ~IDR 350k–700k one-way » compare buses
🚐 Private Car/Driver + Ferry ~13–16h (breaks/traffic-dependent) Families, bulky luggage, full flexibility
🏷️ Cost: ~IDR 3.8m–7.5m per vehicle + ferry » get quotes

Which Option or Route Should You Choose?

  • Fastest/least hassle: Fly DPS→YIA, then airport train/bus or car to central Yogyakarta.
  • Most scenic overland: Ferry + trains via Banyuwangi/Surabaya to Yogyakarta Tugu (YK).
  • Lowest cost single ticket: Direct overnight bus Bali→Yogyakarta (ferry included).
  • Door-to-door + custom stops: Private car/driver with ferry crossing and flexible breaks.

How to Book and Practical Tips

  • Buy early for weekends/holidays: Compare flights on Booking.com Flights and Trip.com; overland seats on 12Go.
  • Airports & transfers: Bali’s airport is Ngurah Rai (DPS); Yogyakarta’s main commercial airport is YIA (farther from town). Use Grab/Gojek at both ends or prebook a car via GetTransfer.
  • Luggage storage: Sightseeing before departure/after arrival? Use Radical Storage Bali or Radical Storage Yogyakarta.
  • Rail notes: Most rail journeys from East Java require a change in Surabaya/Jember; bring snacks, keep e-tickets handy.
  • Safety & comfort: Overnight buses are comfortable but bring a layer (A/C) and earplugs. For self-drive, consider flying instead—road is long.

✈️ Option #1 — Flight (DPS → YIA) — Fastest & Easiest

Fastest Many daily flights Airport transfer at YIA

  • Overview: Nonstop flights run from Bali (DPS) to Yogyakarta International (YIA). From YIA, continue to the city by airport train/bus, taxi, or ride-hailing.
  • How to book (with price): ~IDR 700k–2.0m one-way depending on season. Compare on Booking.com Flights and Trip.com.
  • Official info: Yogyakarta International Airport provides on-site train/bus signage and schedules (check at terminal on arrival).
  • Pros: Quick, frequent, minimal planning. Cons: YIA is ~40–60 km from the city; factor 60–90 minutes transfer.

Step-by-step: Flight DPS→YIA

  1. Get to Ngurah Rai Airport (DPS) from your Bali hotel using Grab/Gojek, or compare a meet-and-greet car via GetTransfer.
  2. Search and book your DPS→YIA flight on Booking.com Flights or Trip.com; check in online and arrive ~2 hours before departure.
  3. Land at YIA; follow signs for the airport train (when timings align) or take the airport bus/taxi/Grab to central Yogyakarta (Tugu/Malioboro).
  4. Ride ~60–90 minutes to your hotel; many properties are near Tugu Station and Malioboro Street.

Getting to the main embarking points (DPS & YIA)

  • DPS departures: Domestic departures level; allow time for traffic from Ubud/Canggu/Seminyak.
  • YIA arrivals: Signage for train/bus/taxi is clear; ride-hailing zones are marked.
  • Locations/Trip Planner: 🔗 Google Map / 🔗 OpenStreetMap

⛴️🚆 Option #2 — Ferry to Java + Trains via Banyuwangi/Surabaya (Most Scenic Overland)

Scenery Budget-friendly Long travel day

  • Overview: Travel by road from Bali to Gilimanuk, take the short ferry to Ketapang (Banyuwangi), then continue by train—usually via Surabaya Gubeng—to Yogyakarta Tugu (YK).
  • How to book (with price): Ferry ~IDR 8k–10k (pay at terminal); trains from ~IDR 250k–700k depending on class. Compare and buy e-tickets on 12Go.
  • Official info: Ferry operator ASDP publishes port info/schedules (check at Gilimanuk/Ketapang). Indonesian Railways: KAI.
  • Pros: Classic Java rail experience, scenic coast and rice fields. Cons: One or two train changes; total time is long.

Step-by-step: Ferry + Trains

  1. From your Bali base (e.g., Denpasar/Ubud), ride to Gilimanuk Port by shuttle/minivan or car (4–6h from south Bali). Use Grab/Gojek for the first hop, or charter via GetTransfer.
  2. Buy a passenger ticket at Gilimanuk and board the frequent ferry to Ketapang (Banyuwangi) (~45–60 minutes crossing).
  3. From Ketapang, go to Banyuwangi Baru/Ketapang Station or Banyuwangi Kota and take a train toward Surabaya Gubeng, then connect to a Yogyakarta-bound train (Tugu station). Compare departures/classes on 12Go.
  4. Arrive at Yogyakarta Tugu (YK); walk/Grab to Malioboro hotels.

Getting to the main embarking points (Gilimanuk, Ketapang & Surabaya Gubeng)

  • Gilimanuk Port: Bemos/minivans from Bali towns; most travelers arrange a car/van from Denpasar/Canggu/Ubud.
  • Ketapang Port/Stations: Port is close to Ketapang Station; Banyuwangi Kota is a short ride away.
  • Surabaya Gubeng: Major hub with frequent Yogyakarta trains—aim for a tight but realistic connection.
  • Locations/Trip Planner: 🔗 Google Map / 🔗 OpenStreetMap

🚌 Option #3 — Direct Overnight Bus (Cheapest Single Ticket Overland)

Budget One ticket Long ride

  • Overview: Executive/night buses run Bali→Yogyakarta with the ferry crossing included. Seats vary from 2+2 executive to sleeper pods on some lines.
  • How to book (with price): ~IDR 350k–700k one-way. Compare companies and boarding points on 12Go.
  • Pros: Direct, simple logistics; saves a hotel night. Cons: 15–20 hours, rest-stop lights/AC can disturb sleep.

Step-by-step: Overnight Bus

  1. Pick a Bali boarding point (e.g., Mengwi/Ubung terminals or operator offices). Check schedules/seating on 12Go.
  2. Arrive 30–45 minutes early for check-in; stow big luggage under the coach, keep valuables with you.
  3. Bus drives to Gilimanuk, boards the ferry to Ketapang, then continues across East/Central Java overnight.
  4. Arrive at Yogyakarta (often Giwangan/Jombor/agency stop); use Grab/Gojek to reach your hotel.

Getting to the main embarking points (Bali terminals & Yogya arrival)

  • Bali boarding: Operators have different pickup points—confirm exact address on your e-ticket.
  • Yogyakarta arrival: Giwangan (south) or Jombor (north) are common; taxis/Grab/Gojek available.
  • Locations/Trip Planner: 🔗 Google Map / 🔗 OpenStreetMap

🚐 Option #4 — Private Car/Driver + Ferry (Door-to-Door Flexibility)

Door-to-door Custom stops Costly vs. bus/train

  • Overview: Charter a car/van in Bali to Gilimanuk, cross as foot or vehicle passengers, then continue by prearranged Java-side car to Yogyakarta—or keep the same long-haul driver if arranged.
  • How to book (with price): From ~IDR 3.8m–7.5m per vehicle depending on size and whether one or two cars are used. Get quotes on GetTransfer or browse day-charter listings on Klook.
  • Pros: Hotel pickup/drop, total control of stops/timing. Cons: Long day, higher cost than bus/train; driver rest breaks needed.

Step-by-step: Private Car + Ferry

  1. Request a quote with pickup time, passengers, and luggage via GetTransfer (Bali). Ask if they cover both islands or plan a car change at Ketapang.
  2. Ride to Gilimanuk; buy ferry tickets (if vehicle, the driver handles this). Cross to Ketapang.
  3. Continue Java-side to Yogyakarta with planned meal/fuel stops in Situbondo/Probolinggo/Surabaya area.
  4. Arrive at your Yogya hotel (Malioboro/Tugu are central).

Getting to the main embarking points (Hotel→Gilimanuk→Yogya)

  • Pickup: Any Bali hotel/villa/airport; confirm child seats if needed.
  • Route: Northwest Bali to Gilimanuk → ferry to Ketapang → Trans-Java route to Yogyakarta.
  • Locations/Trip Planner: 🔗 Google Map / 🔗 OpenStreetMap

FAQ (Bali to Yogyakarta)

Is there a direct train from Bali to Yogyakarta?
No. Bali is an island without rail. You must ferry to Java (Ketapang) and continue by train—usually with a change in Surabaya.

How long does the ferry take?
Roughly 45–60 minutes Gilimanuk↔Ketapang, with frequent departures day and night.

Which airport serves Yogyakarta?
YIA (Yogyakarta International) handles most flights. It’s ~60–90 minutes to central Yogyakarta depending on the train/bus timing and traffic.

What’s the most budget-friendly way?
A direct overnight bus (ferry included) is usually the cheapest single ticket. Ferry + trains can also be economical if you book economy classes.

Where should I stay on arrival?
Around Malioboro/Tugu for easy station access; Prawirotaman for cafés; near Prambanan for quieter nights. Compare on Booking.com.

Can I rent a scooter in Yogyakarta?
Yes—many travelers use scooters for temples and countryside. Compare options on BikesBooking.