How to Get from Jakarta to Yogyakarta: Flight, Train and Bus Guide

Share your love

Jakarta and Yogyakarta are two of Indonesia’s most visited cities, separated by roughly 560 kilometres across the island of Java. Jakarta is the sprawling commercial capital; Yogyakarta is the cultural heart, the gateway to Borobudur and Prambanan, and one of the most rewarding destinations in Southeast Asia. 

Getting between the two is straightforward, with three reliable options: flying, taking the train, or boarding a bus. Each suits a different type of traveller, has a different budget, and has a different idea of what the journey itself should feel like.

This guide covers all three in detail, including which airports to use, which train classes are worth booking, and why the sleeper bus is far more comfortable than most people expect, along with some safety tips and a comfortable clothing guide.

Before we continue to the main topic, please contact us if you need a tour in Yogyakarta City. We have an excellent review by Trip Advisor or Viator. You may check our tour package in this link : Yogyakarta Tour or MountBromoIjen.com. You can also contact us by send us an email at [email protected] or just simply contact us via by pressing the whatsapp button in the right corner.

Continue to explore more. 

1. Jakarta to Yogyakarta by Flight

Flying is the fastest way between Jakarta and Yogyakarta. The air distance is around 430 kilometres, and block time is typically 60 to 75 minutes. Several airlines operate the route daily, including Garuda Indonesia, Lion Air, Citilink, Batik Air, and AirAsia Indonesia. Prices vary significantly depending on how far in advance you book and which airport pair you use.

There are two airport combinations to consider, and the difference matters more than most travellers realise.

Main Route: Soekarno-Hatta (CGK) to Yogyakarta International Airport (YIA)

The primary route operates between Soekarno-Hatta International Airport (CGK) in Tangerang, west of Jakarta, and Yogyakarta International Airport (YIA) in Kulon Progo, approximately 45 kilometres west of Yogyakarta’s city center.

Soekarno-Hatta is Indonesia’s busiest airport and one of the largest in Southeast Asia. It handles the vast majority of domestic and international flights in and out of Jakarta. Terminal 1 serves most domestic budget carriers. Terminal 2 handles Garuda Indonesia domestic routes and some international flights. Terminal 3 is the newest and handles international carriers as well as some domestic Garuda services. If you are flying to Yogyakarta, confirm your terminal before arriving as the terminals are not connected internally and require shuttle buses or Airport Train between them.

Yogyakarta International Airport opened in 2020 and replaced Adisucipto as the main commercial gateway to Yogyakarta. It is a modern, well-designed facility with significantly more capacity than its predecessor. The trade-off is distance: YIA sits in Kulon Progo on the southern coast of Java, roughly 45 kilometres from the city centre. The drive to central Yogyakarta takes between 45 minutes and 75 minutes depending on traffic.

From YIA, transport options into the city include the Damri airport bus (approximately IDR 20,000 to 25,000), taxis via the official counter (approximately IDR 150,000 to 200,000), and Grab or Gojek ride-hailing from the designated pick-up zone outside the terminal. The airport train (Kereta Bandara) connecting YIA to Yogyakarta’s main Tugu Station is the most comfortable and reliable option, taking around 40 minutes and costing approximately IDR 20,000.

Typical ticket prices CGK to YIA:

  • Budget carriers (Lion Air, Citilink, Batik Air): IDR 400,000 to 800,000 one way
  • Full service (Garuda Indonesia): IDR 800,000 to 1,800,000 one way
  • Best prices: Book 2 to 4 weeks in advance, avoid peak holiday periods

Secondary Route: Halim Perdana Kusuma (HLP) to Adisucipto (JOG)

The secondary airport pairing is Halim Perdana Kusuma Airport (HLP) in East Jakarta and Adisucipto Airport (JOG) in Yogyakarta. This route is less well known but has genuine practical advantages for certain travellers.

Both HLP and JOG are primarily military airports that also handle limited commercial and private aviation. Halim Perdana Kusuma is located in East Jakarta, significantly closer to the city centre than Soekarno-Hatta, which sits far to the west in Tangerang. For travellers staying in South or East Jakarta, the journey to HLP can be 30 to 60 minutes shorter than reaching CGK, which makes a meaningful difference when factoring in total door-to-door travel time.

Adisucipto Airport in Yogyakarta similarly sits much closer to the city centre than YIA, approximately 8 kilometres east of central Yogyakarta. Getting from JOG into the city is quick and cheap: a Grab or Gojek costs around IDR 25,000 to 40,000 and takes 15 to 20 minutes.

The catch is that fewer airlines operate the HLP to JOG route and the reduced competition often means higher ticket prices compared to the CGK to YIA route. Batik Air has historically been the primary operator on this pairing. Flights also operate less frequently, so scheduling flexibility is more limited.

Read Also  Java in Four: A Comprehensive 4 Days Tour Itinerary

If you are travelling with a private jet or charter aircraft, both HLP and JOG are the standard departure and arrival points. Private aviation in Indonesia almost exclusively uses military-affiliated airports, and HLP in particular is the main private jet terminal for Jakarta. Mostly the world leaders or Most Important People with their private jet will arrive in Halim Perdana Kusuma Airport instead Soekarno Hatta International Airport.

Which airport pair should you choose?

Choose CGK to YIA if you are staying in West or Central Jakarta, travelling with a budget carrier, or want the most flight options and frequency. Choose HLP to JOG if you are staying in East or South Jakarta and the time saving on the ground outweighs the potential difference in ticket price, or if JOG’s proximity to central Yogyakarta is a significant advantage for your itinerary.

Plan you trip in Yogyakarta by check this articles :

2. Jakarta to Yogyakarta by Train

Bus from Bali to Yogyakarta

The train between Jakarta and Yogyakarta is one of the great rail journeys in Java and, for many travellers, the most enjoyable way to make the trip. The journey covers approximately 560 kilometres, takes between 7 and 9 hours depending on the service, and passes through a landscape that shifts from the dense urban sprawl of greater Jakarta through plantation country, volcanic hills, and eventually the flat fertile plains of Central Java.

For the full detailed guide on the Jakarta to Yogyakarta train, including timetables, train classes, seat recommendations and booking instructions, visit: Jakarta to Yogyakarta by Train

Departure and Arrival Stations

In Jakarta, long-distance trains to Yogyakarta depart from three main stations: Gambir, Pasar Senen, and Jakarta Kota. Gambir is the primary station for executive and premium class services and is centrally located near Monumen Nasional. Pasar Senen handles economy and some business class trains. Jakarta Kota, in the old city in North Jakarta, serves some additional routes.

In Yogyakarta, most trains arrive at Tugu Station, the main station located in the heart of the city, walking distance from Malioboro Street and most central hotels. Some services also stop at Lempuyangan Station, slightly further east. Tugu is the preferred arrival point for most visitors.

Train Classes

Indonesian Railways (KAI) operates several classes on the Jakarta to Yogyakarta route, and the difference in comfort between classes is significant.

Executive Class (Eksekutif) is the highest standard on standard intercity trains. Seats are wide, recline properly, and are arranged 2-2 across the carriage. Air conditioning is reliable. Each seat has a power socket. The carriages are quiet and well maintained. This is the recommended class for most travellers making the overnight or daytime journey in comfort.

Economy Class (Ekonomi) has improved substantially in recent years. Seats are now air-conditioned and the carriages are clean, but the seats are narrower, recline less, and the journey feels longer at 7 to 9 hours. For budget travellers, economy class is perfectly manageable but executive is worth the price difference if your budget allows.

Premium Economy / Business Class sits between the two and is available on certain services. Seat width and recline are better than economy but the carriages are slightly older on some trains.

Top Train Services on This Route

Several named express trains operate between Jakarta and Yogyakarta. The Argo Lawu and Argo Dwipangga are premium executive services with shorter journey times. The Taksaka operates a popular overnight service, departing in the evening and arriving in Yogyakarta in the early morning, effectively saving a night’s accommodation. The Gajayana and Bima are other well-regarded overnight options. Checking the current timetable on the KAI Access app or at kai.id will show all available services with real-time availability and pricing.

How to Book Train Tickets

Train tickets can be booked up to 90 days in advance through the official KAI Access app (available on iOS and Android), the KAI website at kai.id, or through third-party platforms including Traveloka and Tiket.com. Booking in advance is strongly recommended, particularly for travel during Lebaran, Christmas, New Year, and school holidays when trains sell out weeks ahead. If you book via Traveloka or Tiket.com, you need to set the currency in IDR in order to see the train booking option.

Payment can be made via credit card, debit card, bank transfer, GoPay, OVO, or at Indomaret and Alfamart convenience stores using the booking code. Tickets are digital and the QR code is shown at the gate on your phone.

Typical ticket prices Jakarta to Yogyakarta by train:

  • Economy class: IDR 200,000 to 350,000
  • Executive class: IDR 350,000 to 650,000
  • Premium overnight services: IDR 500,000 to 900,000

3. Jakarta to Yogyakarta by Bus

Indorent Bus. Picture by Traveloka
Indorent Bus. Picture by Traveloka

The bus between Jakarta and Yogyakarta is the budget option and, if you choose correctly, considerably more comfortable than the word “bus” might suggest. The journey takes between 8 and 12 hours depending on traffic, departure time, and the number of stops. Departing in the evening and travelling overnight is the standard approach, and on a proper sleeper bus, the experience is genuinely restful.

Read Also  Borobudur Prambanan Tour: Explore Two Iconic Temple

Departure: Pulo Gebang Terminal, Jakarta

The main bus terminal for long-distance services leaving Jakarta is Pulo Gebang Terminal, located in East Jakarta. Pulo Gebang is one of the largest bus terminals in Southeast Asia and handles inter-city routes across Java, Sumatra, and Bali. It is accessible via the Transjakarta bus network and by Grab or Gojek.

From Pulo Gebang, multiple operators run daily services to Yogyakarta, with evening departures typically leaving between 5:00 PM and 9:00 PM to arrive in Yogyakarta by early morning. Daytime services are also available but the overnight option is recommended for most travellers as it maximises time at both ends of the journey.

Arrival: Jombor Bus Terminal, Yogyakarta

Most buses arriving in Yogyakarta from Jakarta use Jombor Bus Terminal, located in the northern part of the city. Jombor is not the main Giwangan Terminal (which sits further south), but it is the more convenient arrival point for most visitors as it is significantly closer to the city centre, Malioboro Street, and the majority of hotels and guesthouses in central Yogyakarta.

From Jombor, a Grab or Gojek into central Yogyakarta costs approximately IDR 15,000 to 30,000 and takes 10 to 20 minutes. The Transjogja city bus also connects Jombor to the city centre for IDR 3,500.

Choose the Sleeper Bus

Sleeper Bus by Indorent

This is the most important advice in this section. If you are travelling by bus, book a sleeper bus rather than a standard reclining seat service. The price difference is modest and the experience is substantially better.

Sleeper buses on the Jakarta to Yogyakarta route feature fully flat or near-flat beds in individual pods or bays, blankets and pillows, curtains for privacy, and sometimes personal entertainment screens. On a good sleeper bus, the 8 to 10 hour overnight journey passes comfortably. You board in the evening, sleep, and wake up in Yogyakarta. It is not the same as a hotel bed, but it is a perfectly viable way to travel and saves the cost of a night’s accommodation.

Standard reclining seat buses are cheaper but the seats rarely recline far enough for comfortable sleep on a long overnight journey. For a 8 to 10 hour trip, the upgrade to a sleeper is worth every rupiah.

How to Book Bus Tickets

Bus tickets for the Jakarta to Yogyakarta route are conveniently available through Traveloka. Search for bus routes, select your departure date, choose Pulo Gebang as origin and Jombor or Yogyakarta as destination, and filter by bus type to find sleeper options. Traveloka shows real-time availability, operator ratings, bus type details, and passenger reviews, making it easy to compare options before booking. You need to set the currency in IDR in the apps or website in order to see the bus option.

Payment follows the same options as flight and train bookings: credit card, debit card, GoPay, OVO, or bank transfer. Your ticket QR code is stored in the app and shown at the terminal.

Typical ticket prices Jakarta to Yogyakarta by bus:

  • Standard reclining seat: IDR 100,000 to 200,000
  • Sleeper bus: IDR 250,000 to 450,000

Booking a few days in advance is sufficient for most travel periods. During Lebaran, book at least two to three weeks ahead as bus tickets sell out just as quickly as trains during peak holiday travel.

Here are the additional sections to add to the article:

Packing and Clothing Tips for the Journey

What you wear and pack for the Jakarta to Yogyakarta journey matters more than most travellers anticipate, particularly for overnight trips by train or bus.

For flights, dress comfortably but be aware that the cabin on short domestic Indonesian flights can be cold. Budget carriers like Lion Air and Citilink set the air conditioning aggressively, and the 60 to 75 minute flight gives you no time to warm up. A light jacket or long-sleeved layer is useful even if the temperature outside is 32 degrees Celsius. Carry your valuables in your hand luggage and check in anything you do not need during the flight.

For overnight trains, the executive class carriages are also heavily air-conditioned. Bring a light blanket or a travel jacket. Comfortable loose clothing is better than jeans for a 7 to 9 hour journey. Wear shoes you can slip on and off easily. A neck pillow makes a significant difference on an overnight train. Bring a power bank as the seat sockets, while available in executive class, are not always reliable on older rolling stock.

For sleeper buses, the air conditioning can be even colder than the train. Operators tend to set it extremely low and the bus will feel cold within the first hour. Bring a warm layer, socks, and if you run cold, a small travel blanket. Wear comfortable clothing you can sleep in. An eye mask and earplugs are genuinely useful. Avoid heavy meals immediately before boarding as the bus does sway more than a train on longer stretches of road.

Read Also  Numbers Speak: Borobudur Sunrise by the Digits

General clothing advice for Yogyakarta: Once you arrive, the climate is tropical and warm. Lightweight, breathable fabrics work best. If you are visiting Borobudur or Prambanan, shoulders and knees must be covered at the temples. Pack at least one outfit that meets this requirement. A light rain jacket is useful year-round as afternoon showers are common, particularly between November and March.

Safety Tips for the Journey

Travelling between Jakarta and Yogyakarta is safe and well-travelled, but a few practical precautions will make the trip smoother.

At the airport: Soekarno-Hatta is a large, busy airport. Arrive at least 90 minutes before domestic departure and 2 hours during peak periods. Keep your boarding pass and ID accessible. Use the official taxi counter or Grab and Gojek from the designated zones outside the terminal to avoid unofficial drivers who approach you inside the building. Politely decline any unsolicited assistance with luggage.

At train stations: Gambir and Pasar Senen stations in Jakarta are busy but generally safe. Keep your bag in front of you in crowded areas. Do not leave luggage unattended on the platform. Confirm your train number and carriage on your ticket before boarding as multiple trains sometimes depart within a short window. Once on board, store bags in the overhead rack or under the seat, not in the aisle.

On the train: Executive class carriages are secure and comfortable. Keep your valuables, including phone, wallet, and passport, in a bag close to your body rather than in the seat pocket. If you are sleeping overnight, consider a small combination lock for your bag. The dining car on longer services sells food and drinks, but you can also bring your own. Tap water on Indonesian trains is not safe to drink so bring bottled water or buy from the onboard service.

At bus terminals: Pulo Gebang in Jakarta is a large, busy terminal. Arrive with enough time to find your operator’s counter and confirm your bus. Stick to your confirmed operator and bus number. Do not board a bus that does not match your booking. Keep your bag with you at all times in the terminal. Your Traveloka ticket QR code is all you need to board. Be cautious of unofficial ticket sellers approaching you in the terminal offering deals outside the booking system.

On the sleeper bus: Your bag should stay either in the overhead compartment directly above your pod or under your legs, not stored in a separate luggage hold if you have valuables inside. Most reputable operators on the Traveloka platform have good safety records. Read passenger reviews before booking and choose operators with recent, consistent positive feedback. The bus will make one or two rest stops during the overnight journey at roadside restaurants where you can use the facilities and buy food. These stops typically last 20 to 30 minutes.

General safety: Keep digital and physical copies of your passport, travel insurance, and hotel booking. Share your itinerary with someone you trust. In Indonesia, emergency services can be reached on 112. Most hotels and guesthouses in Yogyakarta are accustomed to assisting foreign travellers and can help if anything goes wrong on arrival.

Best Time to Travel 

The timing of your journey between Jakarta and Yogyakarta affects both comfort and cost considerably.

Best days of the week: Tuesday, Wednesday, and Thursday are consistently the cheapest and least crowded days to travel in either direction. Flights are cheaper, trains have more available seats, and bus terminals are quieter. Mondays and Fridays see higher traffic as domestic business travellers move between cities. Weekends, particularly Sundays, are busy in both directions.

Best months: April, May, June, September, and October offer the best combination of good weather in Yogyakarta and reasonable travel prices. July and August are peak international tourism months so flights tend to be pricier. November through February is the rainy season in Java, which does not significantly affect the journey itself but means more rain and potential flooding in Yogyakarta.

Which Option Is Right for You?

Three routes, three different journeys, one destination.

  • Fly if time is your priority. Door-to-door takes around 4 to 5 hours including transfers. Fast, simple, done.
  • Take the train if you want the journey to feel like part of the trip. Comfortable, central, and crossing Java at ground level gives you something no flight can. First-time visitors, this one is for you.
  • Take the sleeper bus if budget comes first. Board in the evening, sleep, wake up in Yogyakarta. Book via Traveloka, filter for sleeper class, and check the reviews.

Whichever you choose, Yogyakarta is worth it.


Read also : Prambanan Ticket Price and Opening Hours

Read also : Borobudur Ticket Price and Opening Hours 

Read also : Sewu Temple Complete Guide

Share your love