Taking the train across Java is one of the most scenic, comfortable, and reliable ways to travel through Indonesia. Connecting the cultural heartland of Yogyakarta to the bustling eastern hubs of Surabaya and Malang is an incredibly smooth journey handled entirely by the state railway operator, PT Kereta Api Indonesia (KAI).

Indonesia boasts a well-established rail network, particularly on the island of Java. Trains are generally an affordable and efficient mode of transportation, offering diverse classes of service that cater to all kinds of travelers. Given the stunning landscapes you'll pass through, taking the train not only saves time but also allows you to immerse yourself in the natural beauty of Java.
When traveling east from Yogyakarta (YK), the main rail spine splits in East Java. Depending on your final destination, you will either continue straight to the coastal hub of Surabaya or branch southeast toward the volcanic highlands of Malang.
Here is everything you need to know to navigate the southern and eastern lines of Java's rail network.

Snapshot:
Best Train Options:
Snapshot:
Best Train Options:
Traveling by train from Yogyakarta to Surabaya or Malang is not just a means of transportation; it’s an opportunity to experience Java at a leisurely pace. Pack your bags, grab your tickets, and set off on an unforgettable adventure in Indonesia!