Yogyakarta’s Adisucipto International Airport (IATA: JOG), 8 km east of town, is a small but busy mostly-domestic hub. There are frequent (every two hour) connections on Garuda, the national airline, to Jakarta (50 minutes) and 2-3 times a day (60 mins) to Denpasar, while other domestic airlines service both Jakarta and Denpasar, as well as major cities in Java, Sumatra, Kalimantan and Sulawesi. For international services, AirAsia connects Yogyakarta to both Kuala Lumpur and Singapore while Malaysia Airlines  flies between Yogyakarta and Kuala Lumpur. Silkair and Tigerair also flies from Singapore.
There is a tourist information desk, ATM and taxi stand in the arrival hall. Official airport taxis are available for around Rp 50,000 depending on your destination, pay at the taxi desk in arrival terminal and then head for the official taxi rank. Give the receipt to your driver, there is no need for any additional payment. It is about half the price to use a taxi dropping passengers off at the departure terminal – insist on using the meter, do expect to pay the Rp 2,000 airport entrance fee, even though this has already been paid by the previous passenger on the way in. A departure tax of Rp 35,000 (as of January, 2011) is charged for domestic flights and Rp 100,000 for international flights(as of Feb, 2014).
There is a travel agent at the arrival hall in the airport called Arga Tour. A 5-hour car hire inclusive of driver to Prambanan, Ratu Boko, lunch followed by a 2-hour drive to Borobudur cost Rp 600,000. Good service and english speaking driver. Be sure to haggle, though the price will not drop much, any savings could go toward a more luxurious meal.
Yogyakarta airport is the sole rail-connected airport in Indonesia. Those arriving from (and departing into) the airport can take a Prambanan Ekspres regional train to/from Kutoarjo (west of Yogyakarta), Palur (just east of Surakarta) and several stations in between, including Tugu (just off Malioboro Street in Yogyakarta) and Solobalapan station at Solo. The station at the airport is just a few minutes walk from the terminal, with an air-conditioned underpass leading all the way to the platform for trains into Yogyakarta.
Bandar Udara Internasional Adisucipto (Adisucipto International AIrport), Jl. Solo km9, ☎ +62 274 484261 (fax: +62 274 488155).
Trains to Jakarta take between 7-12 hr from the main Yogyakarta station, commonly called Tugu Station. The Argo-class trains (Argo Lawu and Argo Dwipangga) are the best of the lot being the most comfortable and fastest (~8 hours, Rp 255,000-360,000 (Sep 2012) including mineral water and snacks). Taksaka is almost as good at Rp 235,000-265,000. These express services connect Yogyakarta and Jakarta in 7-8 hours, either at daytime or overnight. Price and schedules are available online . The line between Kroya and Prupuk, where the railway crosses the main backbone mountains of Java, is scenic.
Passengers to/from Bandung should take the Argo Wilis or Lodaya expresses which traverse a scenic part of Java during daylight hours, with rice fields and mountains (although there is an overnight Lodaya and the Turangga from Surabaya also travels overnight. The fare is Rp 155,000 including mineral water and food (or more like snacks).
Passengers to Surabaya are served by the twice-daily Sancaka service departing in the morning and afternoon.
Yogyakarta and Solo are connected by several Prambanan Ekspres trains. Despite the name, the train does not stop at Prambanan station, and even if it does make an unscheduled stop, the station is rather far from the temple complex of Prambanan. The Prambanan Ekspres does stop at Maguwo station (for the airport) making it easy for travelers to change modes.
Stasiun Tugu (Tugu Central Railway Station), Jl. Mangkubumi 1. +62 274 589685+62 274 589685. The main central station, serves big city destinations such as Jakarta, Bandung, Surabaya, and Solo. To buy tickets, enter on Jl. Pasar Kembang and get a queue number from the stand facing the ticket windows. Then go to the opposite side of the room and fill out a ticket request slip, consulting the timetables on the wall to your left. You will be called to the appropriate ticket window, the announcement will be called (in Indonesian only) and displayed on the electronic sign on the wall. You can also buy tickets for up to 90 days prior to departure from many offline channels, and two online channels.
Stasiun Lempuyangan (Lempuyangan Railway Station), Jl. Lempuyangan. Serves economy class trains with several destinations, including Jakarta Gambir Station (Rp 85,000-120,000 (USD 7-9.7) ~8 hours night train) and Surabaya Gubeng Station (Rp 50,000-60,000 (USD 4-4.9) ~6 hours journey [Jan 2014]).
Terminal Penumpang Giwangan (Giwangan Bus Terminal). Jl. Imogiri, Giwangan. +62 274 378288 , +62 274 7482222 (fax: +62 274 7483333)
There is also a bus station inside the airport which is part of the Trans Jogja Busway System. From there you can get to any one of the many bus stations in their system. It costs Rp 3,000 for a ticket.
If you are going north, to Borobudur temple or Semarang for example, head to Jombor terminal located just above the northern Ringroad. Expect to be ripped off on any bus to Borobudur, the going rate for westerners at the moment is Rp 15,000-25,000 (local Rp 7,000).
If you are planning to come to Yogyakarta from Bandung then you need to go to Cicaheum Terminal in Bandung to get bus. If direct bus is not available then take bus to Purwokerto (6-7 hr, Rp 45,000). From Purwokerto there are regular buses available for Yogyakarta (4-5 hr, Rp 30,000).
Since Yogyakarta is in close proximity with Semarang and Solo, there’s also a shuttle bus that operates between these cities, called Joglosemar (Jogja-Solo-Semarang), Rp 45,000 to Semarang, and Rp 25.000 to Solo.