Yogyakarta is a very accessible city thanks to its modern and relatively large international airport. In addition, there are two other domestic airports nearby.
A very popular way to travel to Yogyakarta is by comfortable long-distance trains, with the tracks often running through the mountains through beautiful countryside.
Buses are by far the cheapest and most frequent mode of transport to Java's major cities.
By air
Major airports Yogyakarta-International YIA is located 40 km from the city, but is connected to the centre by a fast commuter train.
There are very frequent services to other Indonesian cities, as well as two international routes that offer cheap flights:
- Kuala Lumpur - AirAsia and Malaysia Airlines
- Singapore - Scoot
Former main airport Adisutjipto JOG located 17 km from the city centre, now serves only a single route to Halim HLP in Jakarta.
Alternatively, you can also use the airport 65 km away to travel to Yogyakarta Adi Sumarno SOC in Solo. However, the connections to this airport are poorer than to Yogyakarta and prices tend to be very similar.
Flight prices and how to buy a ticket
In general, flights to Yogyakarta from abroad are expensive if you buy them on one booking.
It's usually worth the price to fly into Jakarta or Kuala Lumpur, take a stopover in these cities for 1 or 2 days, sightsee, and then continue on a local flight to Yogyakarta.
It's preferable to fly to Jakarta because some low-cost airlines automatically include checked baggage up to 20kg on domestic flights within Indonesia, but not on international flights.
Examples are AirAsia or Lion Air.
Search for flights at airasia.com
Most flights to Yogyakarta depart from Jakarta and Bali, up to 7 times a day.
The normal price of a one-way ticket from both destinations is around 55 usd and it is worth buying at the relatively last minute (about 2-5 weeks before departure).
For example, you can compare prices for all airlines on skyscanner.com. Click on the "Select Flights" button to see several retailers. Ideally, you should click through to the airline's website.
Trains and buses
Ground transportation from Yogyakarta around Java is very frequent, modern and quite comfortable.
Buses tend to be cheaper, but this may not always be the rule, so it's worth comparing prices and frequencies on a particular route via some reliable search engines.
From some countries, tickets cannot be purchased through the official websites of the rail or bus companies, as they do not come with confirmation text messages to a foreign number. In that case, feel free to buy train and bus tickets via these search engines, for example:
Train - routes, tickets
Long-distance trains in Java are very comfortable and extremely clean. Although the ride is often slow due to the absence of electric locomotives and the tracks winding through the mountains, it is still faster than a bus on some routes (for example to Bandung or Jakarta).
Yogyakarta is a major rail hub with direct trains to many cities in Java.
The only rail carrier is Kereta Api Indonesia.
Timetables, prices and ticket purchases are available on the official kai.id website. If you are unable to buy a ticket, use the above websites traveloka.com or 12go.asia with a small surcharge (usually around 20 000 idr).
Ticket prices vary considerably depending on the class you choose, but the cheapest economy class is convenient.
Ideally, buy tickets at least 14 days in advance and if you want to travel on a Friday, Saturday or Sunday, it is safer to buy tickets even further in advance.
You can always get a last-minute ticket, but it may not be available at a time that suits you better, and the cheapest classes may be sold out.
For example, the following destinations can be reached by train from Yogyakarta:
Price from | Travel time | Frequency | |
---|---|---|---|
Jakarta-Gambir | 410 000 idr | 6.5 hours | 3-4 times a day |
Bandung | 225 000 idr | 7 hours | 7-10x daily |
Surabaya | 210 000 idr | 4 hours | 10-12x daily |
Malang | 240 000 idr | 6.5 hours | 6x daily |
Cilacap | 135 000 idr | 3 hours | 2 times a day |
Solo Balapan (Surakarta)* | 65 000 idr | 1 hour | 10-14 times a day |
* A significantly cheaper service to Surakarta (Solo) is the Y line suburban trains, which run only about 20 minutes longer and cost 8 000 idr. For detailed information about these trains, see the Transport chapter.
Yogyakarta-Tugu station
There is only one station in the city where long-distance trains stop. It is named "Yogyakarta (YK)".
For locals, the station is known as "Tugu" after a nearby important monument.
The station is located right in the centre of the city and is equipped with a large number of shops and minimarkets. However, most of them are in the outdoor area on the street before you pass through the turnstile.
You don't need to print your ticket, just scan the QR code from your mobile phone at the turnstile.
The station also has showers and luggage storage in the "Shower & Locker" branch.
- Shower - 70 000 idr
- Luggage - 50 000 idr to 140 000 idr for 24 hours depending on the size of the luggage
Leaving by train early in the morning or arriving late in the evening? Stay in one of the many hotels right in front of the station building. We recommend these hotels:
- Hotel Neo Malioboro by ASTON ***
- Royal Malioboro by ASTON ****
- Andrea Hotel ** (the cheapest decently rated hotel with rates from 10 usd per night)
Buses - routes, tickets
There are dozens of different bus companies operating in Java and it is virtually impossible to book tickets directly on their websites.
However, you can reliably purchase tickets through the aforementioned traveloka.com or 12go.asia websites. Especially the Traveloka website shows the exact departure and arrival station very clearly.
On some routes the buses are slower than the train, but in general they are much busier and it is not a problem to buy tickets at the last minute.
Below are examples of the most popular routes, but direct services run to many more places.
Price from | Travel time | Frequency | |
---|---|---|---|
Jakarta | 165 000 idr | 11 hours | Up to 4 times per hour |
Bandung | 210 000 idr | 9.5 hours | 8-10 times a day |
Surabaya | 100 000 idr | 8.5 hours | up to 5 times per hour |
Semarang | 70 000 idr | 3 hours | up to 5 times per hour |
Malang | 145 000 idr | 7 hours | 12-20x per day |
Solo (Surakarta) | 45 000 idr | 2 hours | up to 5 times per hour |
Banyuwangi | 200 000 idr | 14 hours | 5 times a day |
Merak | 210 000 idr | 13 hours | 1x per day |
Many of the routes are not served by large buses, but only by small minibuses. However, all vehicles are air-conditioned and mostly modern.
Bus stations
There are two main long-distance bus stations in Yogyakarta:
- Giwangan Terminal - in the southeast of the city
- City buses - 3A, 3B, 4A, 4B, 7, 9, 11
- Jombor Terminal - in the northwest of the city
- City buses - 2A, 2B, 5A, 5B, 8, 9
However, a large number of companies have their own stations often in the yards of houses or on the street outside the big station. Always check the position on a map, for example via traveloka.com when choosing a connection.
Before buying a ticket, also compare with the departure stations of other carriers.
Some companies have their stops very far from the city centre and just a taxi ride (Grab / Gojek) can take over 45 minutes.