How to Get to Yogyakarta 2026: Flights, Trains & Best Routes
Key Takeaways: Most international visitors fly into Yogyakarta International Airport (YIA) via Jakarta or Bali. Direct international flights from Singapore (AirAsia, 2h) and Kuala Lumpur (AirAsia, 2h) avoid Jakarta altogether. The Jakarta-Yogyakarta train (8-9h) is excellent for budget travelers who enjoy scenic overland travel and want to skip the airport. From Bali, fly (1h) or take the overnight ferry-bus combo (12-16h budget option). The YIA airport is 40km from the city center — factor in transfer time.
[ORIGINAL DATA] Yogyakarta International Airport (YIA, IATA: YIA) opened in June 2020, replacing the original Adi Sutjipto Airport (JOG) which closed. YIA is located in Kulon Progo Regency, 40km west of the city center. Current airlines serving YIA include: Lion Air, Batik Air, Citilink, Garuda Indonesia, AirAsia, and Scoot. The Yogyakarta-Jakarta (Gambir) train route (Taksaka and Argo Dwipangga services) operates 8-9 times daily in each direction, with premium Eksekutif carriages at 350,000-550,000 IDR and economy Ekonomi at 150,000-200,000 IDR.
For full trip context, see the Yogyakarta Travel Guide. For where to stay near the city center and transport options, see Where to Stay in Yogyakarta.
Getting to Yogyakarta: At a Glance
| Origin | Best option | Duration | Cost |
|---|---|---|---|
| Jakarta | Fly or train | 1h (fly) / 8-9h (train) | 200,000-500,000 IDR |
| Bali | Fly | 1h | 250,000-600,000 IDR |
| Singapore | AirAsia direct | 2h | $50-120 SGD |
| Kuala Lumpur | AirAsia direct | 2h | 150,000-450,000 IDR |
| Surabaya | Train or fly | 4.5h (train) / 1h (fly) | 200,000-400,000 IDR |
From Jakarta to Yogyakarta
Option 1: Fly (Fastest, Often Cheapest)
Airlines: Lion Air, Citilink, Batik Air, Garuda Indonesia
Duration: ~1 hour
Cost: 200,000-500,000 IDR one-way
Multiple flights daily from Jakarta’s airports to Yogyakarta YIA. Budget carriers (Lion Air, Citilink) offer the cheapest fares — book 2-4 weeks ahead for best prices. Garuda Indonesia is more expensive but includes luggage and meals.
Jakarta airports note: Most budget flights depart from Soekarno-Hatta International (CGK), Terminal 1A/1B/2D depending on airline.
Option 2: Train (Scenic and Reliable)
Route: Jakarta Gambir Station → Yogyakarta Tugu Station
Duration: 8-9 hours
Cost: 150,000-550,000 IDR (Ekonomi to Eksekutif class)
The Java train network is one of Asia’s best-maintained and most pleasant to travel. The Taksaka (overnight) and Argo Dwipangga (daytime) services are the primary Jakarta-Yogyakarta routes.
[UNIQUE INSIGHT] The overnight Taksaka Express (departs Jakarta Gambir ~8-10pm, arrives Yogyakarta Tugu ~5-6am) is an excellent budget option — Eksekutif class costs ~350,000-400,000 IDR but saves a night’s accommodation and puts you in Yogyakarta ready for the Borobudur day. Book via KAI Access app or website.
Book train tickets: KAI Access app (recommended) or Traveloka platform. Advance booking of 7-14 days required for popular departure times.
Option 3: Bus
Duration: 10-12 hours
Cost: 150,000-300,000 IDR
Express buses from Kampung Rambutan terminal (Jakarta) to Giwangan bus terminal (Yogyakarta). Slower than train with fewer amenities. Only worthwhile if train is fully booked.
From Bali to Yogyakarta
Option 1: Fly (Best Value)
Airlines: Lion Air, Citilink, AirAsia, Batik Air
Duration: ~1 hour
Cost: 250,000-600,000 IDR one-way
Ngurah Rai International Airport (DPS, Bali) → Yogyakarta International Airport (YIA). Multiple flights daily. Budget airlines dominate this route. Book 1-2 weeks ahead for prices under 300,000 IDR.
Bali-Yogyakarta is one of Indonesia’s most frequently flown domestic routes — flight availability is excellent year-round.
Book Bali to Yogyakarta flights on Klook
Option 2: Bus + Ferry (Budget Overland, 12-16 Hours)
Route: Bali → Gilimanuk ferry → East Java → overnight bus → Yogyakarta
Duration: 12-16 hours total
Cost: 150,000-250,000 IDR
Long but very cheap. Overnight buses from Denpasar’s Mengwi terminal cross the Bali Strait ferry (included) and continue through East Java to Yogyakarta. Budget travelers with time and no flight preference use this route.
From Singapore to Yogyakarta
Direct Flights (Best Option)
Airlines: AirAsia, Scoot
Duration: ~2 hours
Cost: $50-120 SGD one-way
AirAsia and Scoot operate direct flights from Singapore Changi to Yogyakarta YIA. Significantly more convenient than transiting Jakarta. Book 3-4 weeks ahead for prices under $70 SGD.
Singapore-Yogyakarta directs are often underpriced relative to Singapore-Bali for the same travel dates — check both routes when planning a Java+Bali trip.
From Kuala Lumpur to Yogyakarta
Direct Flights
Airlines: AirAsia (primary), Batik Air Malaysia
Duration: ~2 hours
Cost: 150,000-450,000 IDR (or RM50-150)
AirAsia dominates this route from Kuala Lumpur KLIA2. Direct flight 2h. Good option for travelers already in Malaysia who want to visit Java.
From Surabaya to Yogyakarta
Train (Best Option)
Route: Surabaya Gubeng Station → Yogyakarta Tugu Station
Duration: 4-5 hours
Cost: 150,000-380,000 IDR
Several trains daily. The Sancaka and Bima are the main services. 4.5-hour journey, comfortable Eksekutif class.
Fly (Fast, Comparable Cost)
Duration: ~1 hour
Cost: 200,000-400,000 IDR
Lion Air, Citilink. Faster than the train when accounting for city-to-city travel but adds airport transfer time.
Arriving at Yogyakarta International Airport (YIA)
Airport location: Kulon Progo Regency, 40km west of Yogyakarta city center
YIA to city center transfer options:
| Option | Duration | Cost | Notes |
|---|---|---|---|
| Damri bus | 60-70 min | 75,000 IDR | Departs every 30-60 min, stops Jl. Malioboro |
| Taxi (metered) | 50-60 min | 250,000-350,000 IDR | More door-to-door |
| Grab | 50-60 min | 150,000-220,000 IDR | App-based, pickup may take 10-15 min |
| Hotel shuttle | 50-60 min | Free-100,000 IDR | Pre-arrange with hotel |
Damri bus is the best budget option — frequent departures, stops at key Yogyakarta points including Jl. Malioboro. Buy tickets at the bus counter in arrivals. No advance booking needed.
Arriving at Yogyakarta Tugu Station (Train)
Tugu Station (Yogyakarta) is centrally located — 5-minute walk to Malioboro Street and within 1km of most budget accommodation. The most convenient arrival point in the city for train travelers.
From Tugu Station:
– Walk to Malioboro: 5 min
– Grab to Prawirotaman: 10,000-15,000 IDR, 10 min
– Walk to most Sosrowijayan guesthouses: 8-12 min
Arriving at Giwangan Bus Terminal
Giwangan bus terminal is 6km southeast of the city center.
From Giwangan to city:
– Grab: 20,000-35,000 IDR (10-15 min to Malioboro)
– TransJogja bus (line 1A/1B): 3,500 IDR but longer journey
See also: Yogyakarta itinerary | best things to do in Yogyakarta | Yogyakarta hotels
Frequently Asked Questions
Is there a direct train from Jakarta to Yogyakarta?
Yes — multiple trains daily from Jakarta Gambir Station to Yogyakarta Tugu Station. Journey time 8-9 hours. The Taksaka (overnight) and Argo Dwipangga (daytime) are the main services. Book via KAI Access app.
How far is Yogyakarta airport from the city center?
40km. Transfer takes 50-70 minutes. The Damri airport bus (75,000 IDR) runs every 30-60 minutes to Malioboro. A Grab costs 150,000-220,000 IDR.
What is the easiest way to get from Bali to Yogyakarta?
Fly — 1 hour, multiple daily flights on Lion Air, AirAsia, and Citilink. The overland bus-ferry combo takes 12-16 hours and is suitable only for travelers with time and a very tight budget.
Can I take a train from Bali to Yogyakarta?
No — there is no train service to Bali (it’s an island). From Bali: fly to Yogyakarta (1h) or take the Gilimanuk ferry to Java and then a bus/train (10-14h total).
Affiliate Disclosure: This post may contain affiliate links to Klook. We earn a small commission at no extra cost to you if you book through these links.
Sources:
1. KAI Access — Indonesia Rail Network, Jakarta-Yogyakarta train schedules and fares, 2025
2. Yogyakarta International Airport (YIA) — transfer and transport guide, 2025
3. Tourism Indonesia — Yogyakarta getting there guide, 2025


