For a budget traveler, bus always be a make sense options to move from a city to another. Cities and towns in Indonesia are served by wide range of bus routes, with reasonable fares and variety of class. According to the route, Inter city bus classified into AKDP (Antar Kota Dalam Propinsi) or inter city within province and AKAP (Antar Kota Antar Provinsi) or inter-city inter-province.
There are flights, train and bus route connecting Surabaya and Yogyakarta or locals also call it Jogja. You can find flight schedules between two cities with traveloka or tiket.com (recommended), and using official Indonesia Railway Corp for train schedules.
Speaking about Yogyakarta – Surabaya route by bus, buses that serve this route are Sugeng Rahayu and Mira for economic class, and Sugeng Rahayu PATAS and Eka PATAS for executive class (there is no sleeper bus). For the economic class, all bus are air conditioned and passengers are forced to stand if the seating is full, but usually for a distance that is not too far away (you have to pay in advance in the bus to bus staff which is called kondektur – a bus staff who collects payment). For executive class, the ticket only sold for seats. You can also pay in advance in the bus or buy ticket online from bisbos, bustiket or redbus. There’s also minivan that serves this route.
Bus depart from Giwangan Bus Terminal and arrive to Purabaya (Bungur) Bus Terminal in Surabaya. For both class, bus leaves every 20 – 30 minutes (bus operation is 24 hours) so you can leaves the city anytime. Ticket fees for economic class is about IDR 50,000 and about IDR 90,000 for PATAS class (include a meal coupon for executive/PATAS class and a glass of mineral water, the bus will also stop in the restaurant). The bus will also stop at Solo and Madiun, and you can drop off to any city and town between Surabaya – Yogyakarta. For Jogja – Solo, you only pay IDR 12k or less than $1.
Bus depart from Jogja will also stop at Janti between 8pm to 4am, so you can stop the bus here. If you stay near to Janti area, than it’s easier to stop bus at Janti, usually there’s also another passanger who wait the bus here. Personally I always stop the bus at Janti (as I always use this bus at night to go to Solo), and it’s safe enough even when I’m all alone.