
Yogyakarta is Java's cultural heart, 430 kilometres (267 miles) southeast of Jakarta. It's the base for the temples of Borobudur and Prambanan, and for batik, gamelan and street food. Flying is the quickest way to get from Jakarta to Yogyakarta at 2h 40m. Overland, the bus is the cheapest at $11 (204,000 IDR), but it will take a long time, around 8h 55m - 15h. The train costs more.
Distance from Jakarta to Yogyakarta
Jakarta and Yogyakarta are about 430 km (267 miles) apart, and the journey itself covers around 531 km by road. The quickest way to get from Jakarta to Yogyakarta is by taking the flight, which takes around 2h 40m.
3 ways to travel from Jakarta to Yogyakarta
There are three ways to travel from Jakarta to Yogyakarta. You can choose between the train, bus, and flight. The journey takes 2h 40m–8h 55m and the quickest way is by flight. If you're on a budget, the cheapest option is by bus with tickets starting at $11 (204,000 IDR).
2 legs — see itinerary
- Jakarta→Yogyakarta1h 10m
- Yogyakarta, Java→Yogyakarta, Java40m
Reach out to our Community
3Jakarta to Yogyakarta by Train
The train is the most cost-efficient way to travel from Jakarta to Yogyakarta. Prices start from as low as $14 (250,000 IDR) when you take an economy train. Travel time is 6-9h.
For this route, you can choose between two seat classes: economy and executive. As this is quite a long journey, consider paying more for an executive-class seat with rates from $40 (710,000 IDR).
Check out our guide for Train Travel in Indonesia for more info on train classes.
Day or night train?
Both day and night trains are available on this route. We recommend taking a day train so that you can enjoy the scenic journey through the countryside.
With the overnight trains, you can sleep for some part of the trip. But note that you will arrive too early in Yogyakarta. You'll most likely still have to book a hotel for that night, unless you're okay to wander around without having enough rest.
Departure and arrival station
From Jakarta city centre, trains depart from two railway stations.
Both the economy and executive class trains are available at Pasar Senen Station. When coming from Gambir Station, you can only book an executive class seat.
In Yogyakarta city centre, trains arrive at either Tugu Station (Yogyakarta Station) or Lempuyangan Station, which are 2 km apart. Some trains from Pasar Senen make a stop at both Tugu and Lempuyangan. Trains from Gambir stop only at Tugu Station.
Train schedule from Pasar Senen Station
*Indicated ticket prices are for economy class.
Train tickets are available on Tiket.com.
Train schedule from Gambir Station
*Indicated ticket prices are for executive class.
Train tickets are available on 12go.asia.
Jakarta to Yogyakarta by Bus
The cheapest way to get from Jakarta to Yogyakarta is by bus. Ticket prices start from as low as $11 (204,000 IDR).
It's also the slowest and least comfortable option, though. Travel time can take between 8h 55m - 15h.
For comparison, the cheapest bus price costs only slightly less than a seat on an economy train. And if we are to choose between the economy train or the bus, we'd pick the train hands down. It's faster and overall more comfortable.
Some of the bus companies that operate on the Jakarta to Yogyakarta route are: Sumber Alam, Adibuzz and Royal Kencana.
You can expect plenty of departures throughout the day. But as this is quite a long bus journey, we recommend taking one of the overnight bus journeys.
Departure and arrival station
Jakarta does not have one single bus terminal for buses going to Yogyakarta. There are at least 5 bus stations scattered around the city. The catch? They're all quite far from Central Jakarta, which is where you'll most likely be staying if you're visiting the city for sightseeing.
The closest bus station to Jakarta city centre is Terminal Grogor Sumber Alam, some 5 km away. The other bus stations are much further, about 12 to 16 km from Jakarta city centre.
In Yogyakarta, there are 2 bus stations: Terminal Giwangan and Jurangkah Sumber Alam. These are about 1 km apart and 7 km from the tourist centre in Malioboro.
Bus schedule from Jakarta to Yogyakarta
Bus tickets are available on Bookaway.
Booking Tip
You can buy your tickets online beforehand or at the bus station on the day of your trip. We suggest arriving at the terminal at least 30 minutes before departure so you won't be too pressed for time.
Jakarta to Yogyakarta by Flight
Flying from Jakarta to Yogyakarta is the fastest option for this route. Travel time is only 2h 40m. It's also the most expensive, though, with prices from $67 (1,205,000 IDR).
There are two airports in both Jakarta and Yogyakarta:
Flights from Soekarno–Hatta International Airport (CGK) arrive at Yogyakarta International Airport (YIA).
Flights from Halim Perdanakusuma International Airport (HLP) arrive at Adisutjipto International Airport (JOG).
Choose your arrival and departure airports well so that you won't have a hard time with the transfers from and to your hotels in Jakarta and Yogyakarta.
TIP: If you decide to travel by plane, please consider including a carbon compensation fee to reduce your impact on the environment.
Step 1: How to get to Jakarta Airport
You can choose from 2 airports in Jakarta when taking a flight to Yogyakarta.
Soekarno–Hatta International Airport (CGK) is the main airport serving Indonesia's capital city and is 30 km away from the centre.
The other, smaller airport is Halim Perdanakusuma International Airport, just 15 km from Central Jakarta.
Jakarta city centre to Soekarno–Hatta International Airport
The fastest and easiest way to travel from Jakarta city centre to Soekarno-Hatta International Airport is by train. You can take the Railink train from BNI City (Sudirman Baru) Station to the airport.
There are departures every 30 minutes from 06:19 to 20:49 daily. Ticket prices start from $4.80 (85,000 IDR) for the train ride that takes 50 minutes.
Alternatively, you can take a bus or a taxi, but these can easily take at least 1.5 hours.
Damri buses depart from Gambir Train Station every 30 minutes from 05:16 to 19:46. You can get a seat for $4.80 (85,000 IDR).
If you prefer a private transfer, we recommend booking one with Klook beforehand. It is often the cheapest option with rates from $11 (200,000 IDR), depending on which area you’re staying in. Try to book your car at least 5 hours in advance to avoid any inconvenience.
For more info, check out our complete guide for Jakarta Airport.
Jakarta city centre to Halim Perdanakusuma International Airport
No direct buses or trains operate from Central Jakarta to Halim Perdanakusuma International Airport, so your best option is to take a private transfer.
For this route, it's best to hail a taxi through Grab or Gojek. Rates start from $3.90 (70,000 IDR) for the 40-minute ride.
Step 2: Jakarta to Yogyakarta by Flight
Flights from Soekarno–Hatta International Airport to Yogyakarta Airport take about 1h 10m. Airfares start from $62 (1,100,000 IDR).
There are plenty of airlines operating on this route from Jakarta to Yogyakarta. Some of them are Transnusa, Batik Air, Garuda Indonesia, and Citilink.
If you're looking to depart from Halim Perdanakusuma International Airport and arrive at Adisutjipto International Airport (JOG), flights are slightly more expensive, with rates from $78 (1,400,000 IDR).
Fly Jaya and Citilink operate on this route.
Step 3: Yogyakarta Airport to Yogyakarta City Centre
Both airports in Yogyakarta are easily accessible by public and private transport.
Yogyakarta International Airport to Yogyakarta city centre
Yogyakarta International Airport is the city's primary airport, about 45 km away from the city centre. The most convenient way to get to your hotel, especially if it's in the tourist centre in Malioboro, is by train.
A ticket for a regular free-seating train costs $1.10 (20,000 IDR) and travel time is about 40 minutes. The airport rail link is connected to Yogyakarta International Airport. You can get off the train at Tugu Station (Yogyakarta Station).
Alternative options are a bus that costs $4.50 (80,000 IDR) and a taxi with rates from $13 (240,000 IDR). For private transfers, prices are similar whether you take a Grab/Gojek or book one in advance via Klook.
Heads up: by bus or taxi, the journey from Yogyakarta International Airport to the city centre takes 1.5 to 2 hours.
For more details, you can visit our page on Yogyakarta Airport.
Yogyakarta Adisutjipto Airport to Yogyakarta city centre
From Adisutjipto Airport, the train is also the best way to get to the city centre.
You can board the train at Maguwo Station, which is connected to Adisutjipto Airport through an underpass. From here, it's a 15 to 20-minute ride to Tugu Station in central Yogyakarta.
A train ticket costs $0.40 (8,000 IDR).
Alternatively, you can take a 45-minute bus for $0.20 (4,000 IDR) or a 45-minute private transfer with rates from $3.90 (70,000 IDR).
Check out our complete guide for Adisutjipto Airport for more info.
Flight tickets are available on Skyscanner.
Our favourite places to stay in Yogyakarta
Here are our favourite places to stay in Yogyakarta for every budget.
Jogja Village
If you crave a tropical haven in the heart of the city with a stunning outdoor pool, Jogja Village is an ideal option.
It’s a 10-minute drive from Kraton Palace and is surrounded by a host of cool coffee shops and boutiques.
Choose from a range of colourfully decorated rooms, some with romantic four-poster beds and Bali-style open-air bathrooms. There is an excellent restaurant with seating by the pool as well as a fully equipped spa.
It’s one of Yogyakarta’s best family-friendly hotels in its price range and features an indoor play area.
- Swimming pool
- Spa
- Family-friendly
- Delicious on-site restaurant
Double rooms start from $27 per night
Rumah Mertua Heritage
- Outdoor swimming pool
- Stunning garden
- Spa
- On-site restaurant
Snooze
This adult-only cosy guest house is situated in the heart of the Kraton palace district, and is like nowhere else in town.
Rooms are set around a central courtyard filled with tropical plants. In fact, even in the rooms it feels like you have stepped into the rainforest. There are plants, natural bamboo fixtures and colourful jungle murals painted on the walls.
Dotted throughout the guesthouse are several areas to socialise. It features a shared kitchen and coffee shop and airport pickup is available for an additional charge.
- Social and fun atmosphere
- Convenient location
- Garden and terrace
- On-site cafe
Double rooms start from $10 per night
ABOUT YOUR DESTINATION
Why Visit Yogyakarta?
Yogyakarta is Java’s cultural capital, the only region in Indonesia still ruled by a sultan. Commonly called Jogja, the city strongly values its age-old traditions and way of life. Quite impressive, given that it’s an urban area of over 3 million inhabitants.
The nearby ancient temples Borobudur and Prambanan are the main reasons why travellers visit Yogyakarta, but the city has much more to offer. Art lovers will enjoy its street art, boutique cafes, and iconic batik fabric. Head over to Malioboro Road and Kotagede for some amazing finds and jewellery. Explore Kraton Sultan Palace and Taman Sari for a glimpse of the city’s architecture and history.
Rounding it up
That's the full picture for getting from Jakarta to Yogyakarta, roughly 430 kilometres (267 miles) apart. In all, there are 3 ways to make the trip. The cheapest fare is $11 (204,000 IDR). The quickest trip takes 2h 40m.
Prices and timetables change, so it's worth a quick check before you travel. Have a question, or travelled this route recently? Ask the community below and we'll do our best to help.
Frequently Asked Questions
What is the distance from Jakarta to Yogyakarta?
The distance from Jakarta to Yogyakarta is 430 kilometres (267 miles).
What is the fastest way to get from Jakarta to Yogyakarta?
The fastest way to get from Jakarta to Yogyakarta is by flight and takes 2h 40m.
What is the cheapest way to get from Jakarta to Yogyakarta?
The cheapest way to get from Jakarta to Yogyakarta is by bus with ticket costs starting from 204,000 IDR.
Route Update History
Updated flight prices.
- Updated bus prices.
- New train operators: from Pasar Senen Station (PSE), from Gambir Station (GMR).
- Train operator no longer listed: to Lempungayan Station.
- Updated train prices.
- Updated train departure times.
- New train operator: to Lempuyangan Station.
- Train operators no longer listed: from Pasar Senen Station (PSE), from Gambir Station (GMR).
- Bus operators no longer listed: Agramas, Sinar Jaya.
- Bus operator no longer listed: PO Santoso.
- Updated bus prices.
Affiliate Disclosure
Some links on this page are affiliate links. If you book through them, we earn a small commission at no extra cost to you. This helps us keep Gecko Routes free and up to date.





