Java, the fifth largest island in Indonesia, is a beautiful island with incredible scenery, including massive volcanoes, green rice fields, palm trees, and quaint villages. If you're not keen to rent a car, then traveling around Java by train is the best way to appreciate these incredible landscapes. In this article, I'll share what you need to know to book a train as well as what it's like to ride the train across Java.
More...
This post contains affiliate links which means I receive a small commission if you purchase something using the links. This won’t cost you anything extra but helps keep this blog going. Thank you for your support!
Railways in Indonesia
Indonesia's railways are primarily operated by the state-owned company Kereta Api Indonesia (KAI). It also has a commuter subsidy - KAI Commuter - as well as an airport rail link subsidy - KAI Bandara.
Although Indonesia has announced big plans to continue expanding its national rail networks, at the moment, most of its islands do not have rail service. The exceptions are:
Pro Tip: Although Indonesia's railways do not connect any of its islands, Java is linked to its neighbors by trains and ferries. Take the train on Java all the way east to Ketapang, then hop on a ferry to reach Bali. Similarly, go west on a Java train to Merak and catch a ferry to Sumatra.
Traveling by Train on Java
Since the rail lines on Java run between the major cities, we found trains a great way to travel between Jakarta and Central Java. If you have the time, I'd highly recommend riding the trains. But here are a few things you might want to consider if you're debating between air or train travel in Java.
Pros of Riding the Train in Java
A few of the reasons we enjoyed taking the train in Java:
Cons of Taking the Train in Java
Some of the drawbacks to riding the train in Java:
How to Book Train Tickets in Java
Because train travel is a popular mode of transportation for many locals on Java, seats tend to sell out. As a result, I highly recommend booking train tickets at least a couple weeks in advance to secure your seat.
Where to Book Java Train Tickets Online
One of the most frustrating things I found about booking Java train tickets in advance was finding a site which accepts payment by foreign credit card. Here's what I encountered when trying to book our train tickets.
Kereta Api Indonesia (KAI) Website - Indonesians Only
The official Indonesian Railways website - Kereta Api Indonesia (KAI) - can only be accessed using an Indonesian IP address (you could use a VPN to access the site). However, I've read that you can only purchase tickets on that site using an Indonesian bank card, so I didn't bother looking into it further.
Booking Train Tickets with a Foreign Credit Card
If you don't have an Indonesian credit card, you'll have to book through a third-party site. However, the site listed in several blog posts that I read (ticket.com) did not accept my credit card either.
Eventually, I found the Indonesian Traveloka site which allows you to book trains in Indonesia using an overseas bank card. Another website that should work with foreign credit cards is 12Go. One thing I like about 12Go is that it shows a preview of what the seat looks like for the class you're booking so there's no confusion.
Using either Traveloka or 12Go, booking Java train tickets in advance is pretty easy. Once booked, you'll receive an email with your confirmation. When you arrive at the train station, check-in at the counter or self-check-in machines to get your boarding pass.
Which Seat Class to Book
Deciding which seat class to book on a train ride in Java depends on your budget, desired level of comfort, and timing of your trip. Seats range from basic and cheap to luxurious and expensive. Many trains are comprised of only one or two types of seating class, i.e. the Argo Bromo Anggrek train only offers luxury and executive seats.
Below is a basic overview of the seating class options on Java trains, though I've only experienced riding in the Executive Class. All trains are air-conditioned (perhaps too much so) and have luggage storage above the seats.
Economy Class
Economy Class (ekonomi - EKO) is the most basic seating option on Java trains. The non-reclining bench seats are typically arranged in a 2 x 3 configuration. Though some newer Economy trains have a 2 x 2 configuration. In Economy class, there's a small drinks ledge under the window with two power outlets.
Business Class
Business Class (bisnis - BIS) is the same as Economy but is always in a 2 x 2 configuration. The drinks table and power sockets are the same as in Economy.
Executive Class
Executive Class (eksekutif - EKS) is the closest seating option to second class seats on Amtrak or trains in Europe. Individual reclining seats are in a 2 x 2 configuration with plenty of legroom and all face forward unless you request the porter to turn the seat. Each seat has its own a tray table and 2 power sockets are on the wall.
Executive Luxury Classes
A few different Executive Luxury Class trains exist which offer a luxurious way to ride across Java. Luxury tickets are usually twice the price of Executive seats, but look like a comfortable way to travel. There are a few train routes which offer these ultra-luxurious seats though.
To see photos of the different classes on Indonesian trains, I recommend this article by The Man in Seat 61.
Why Are There Different Prices for Each Class?
When you begin to book, you'll notice that each class seems to have different fares. For example, you'll see Eksekutif (AA), Eksekutif (AB), etc. And each one will have a different price listed next to it. So, what is the difference between these seats?
Absolutely nothing. Just book the cheapest one available at the time you're booking. You'll get the same seat as someone who books later when only the more expensive ones are available.
This pricing scale is the same as how airlines do their pricing, except for whatever reason, the Indonesian railways show all the fares at the same time.
Route Duration Also Determines Ticket Costs
Another factor that determines the cost of seats is the trip duration. Several different trains run between the major cities on Java each day. On the same route, seats on trains with fewer stops are more expensive than seats on trains with more stops.
For example, our train ride from Jakarta to Yogyakarta was 6.5 hours in duration. If we'd taken a different train whose route was 7.5 hours, the tickets would have been around 8 USD cheaper per ticket. The cheaper train also left from a different, though still central, station in Jakarta.
Our Experience Riding Trains in Java
During our 9-day trip to Java, we took two train journeys between Jakarta and Central Java in Executive Class.
Java Train #1 - Taksaka 68
Our first train ride in Java was on the Taksaka 68 from Jakarta to Yogyakarta. The journey took just under 6.5 hours, departing at 9:20 am and arriving at 3:40 pm. Given my previous experiences on trains in Southeast Asia, I was shocked and impressed by how on schedule the Java trains we took were.
Ticket Costs: We purchased our tickets on Traveloka ~2 weeks in advance. Our tickets were 590,000 IDR (36 USD) each. We purchased a 100% refund guarantee from Traveloka, plus paid a small booking fee bringing our total to 1,254,800 IDR (78 USD) for 2 adult tickets in executive class.
Departure: Gambir Station, Jakarta
Although Jakarta has many rail stations, Gambir Station is one of the major ones and is conveniently located in central Jakarta. Given it's a central hub, it tends to be busy any time of day.
Inside, it has lots of cafes and shops where you can snack while you wait for your train. There are even a few massage places in case you need to relax.
Gambir Station Check-In Counters
We arrived an hour early for our train, mostly because we weren't sure about how long we'd sit in traffic on the way there. Once we arrived at Gambir Station, it was easy to check-in at the KAI counter. We showed our confirmation from Traveloka and received our orange boarding passes.
Departures Hall
Once we got our boarding passes, we could enter the Departures section of Gambir Station. Inside the Departures Hall, they have more seating, clean toilets, and TV monitors with the departures schedule.
Inside the station is air-conditioned, so I'd recommend waiting to go up to the tracks until a few minutes before your train is scheduled to arrive. It gets sweaty on the train platform really quickly.
Riding the Taksaka 68 Train
Since Jakarta was the point of departure for the Taksaka 68, we had plenty of time to find our car and board the train.
Luggage Storage
We packed light for our trip to Java, so it was easy to store our bags in the overhead luggage racks above our seats.
Pro Tip: If you need help with your bags, hire a porter at the train station. They'll help you get your luggage onto the train and up onto the luggage racks.
Executive Class Seats
Our seats were in the middle of the car and were quite comfortable. All the seats have plenty of legroom and a foot rest. Plus, they face forward unless you request for the porter to turn yours. As I've mentioned, the car was very cold. But I suppose that's better than being hot. Just be sure to bring a jacket for the ride.
The highlight of the journey, was of course, the incredible views outside of our window. Jakarta was polluted and smoggy the day we left. But as we got away from the city, the air cleared and the scenery was spectacular.
As with any mode of public transportation, one downside was something the rail service cannot control - other people. Unfortunately, we ended up with a noisy family next to us that didn't believe in headphones or volume control for their phones or children. The rest of the car was much quieter, so it's the luck of the draw.
Dining Options
Throughout the journey, attendants would wheel a car around (maybe once per hour?) with snacks and drinks for purchase. Each train also has a dining car with a few hot meal options. If you order during the lunch hour, expect it to take a while for them to prepare it. Also, they ran out of some options towards the later part of the journey, so order early.
We tried the nasi goreng (fried rice) and the se'i sapi (smoked beef) and both were tasty. Since they prepare the hot food in batches, it's easier to order the same food if you're traveling with someone else. Otherwise, one person will get their meal much later than the other.
Toilets
At the end of each car, they have a male and female toilet. Both had western-style toilets and seemed to be cleaned frequently throughout the journey. I was pleasantly surprised that the women's had toilet paper and soap each time I went in.
Arrival: Yogyakarta Station (Tugu Station), Yogyakarta
We arrived at Yogyakarta Station (also called Tugu Station) on time at 3:40 pm. The station is relatively small and seemed overwhelmed by the number of people exiting our train.
Although we considered getting a taxi to our hotel, traffic was quite congested and the price they quoted was high. Since our hotel was relatively close (~1km) to the station, we decided to walk. That's one perk of taking the train!
If you decide to fly to Yogyakarta, something to keep in mind...
Yogyakarta International Airport is ~45 km (28 mi) from Yogyakarta. Getting there takes ~40 min by airport train (from Yogyakarta Station) and ~1.5 hrs by car.
Looking for Fun Activities in Java?
Check out these tours for ideas on what to do while visiting Java, Indonesia, including hiking Mount Bromo - an active volcano - or visiting a traditional village.
Java Train #2 - Argo Bromo Anggrek 1
Our second train ride in Java was on the Argo Bromo Anggrek 1 from Semarang to Jakarta. From Semarang, the trip to Jakarta took ~5 hours, departing at 12:17 pm and arriving at 5:15 pm. Again, our train ran on schedule.
For a longer journey, you can ride the Argo Bromo Anggrek all the way from Surabaya (East Java) to Jakarta (West Java). The entire trip takes ~8 hours.
Ticket Costs: We purchased our tickets on Traveloka ~3 weeks in advance. Our tickets were 660,000 IDR (41 USD) each. We purchased a 100% refund guarantee from Traveloka, plus paid a small booking fee bringing our total to 1,403,200 IDR (87 USD) for 2 adult tickets in executive class.
Departure: Tawang Station, Semarang
Given Semarang is a much smaller town than Jakarta, its train station is as well. Built in the early 1900s, the Tawang Station is charming architecturally with a pleasant atmosphere, including a live band at one point.
Most of the station is not air-conditioned. However, I believe I saw a special air-conditioned waiting room for luxury-class passengers.
Checking In at Tawang Station
To get our orange boarding pass in Semarang, we used the ticket kiosk machines to check in, much like you would at an airport. The process was easy using the booking code on our Traveloka confirmation and only took ~5 minutes.
Loko Cafe Semarang Tawang
The night before our train ride, we'd stayed at a MesaStila Resort in Central Java. Staff advised us to leave much earlier than we needed to for our train (worried about traffic). As a result, we arrived almost 2 hours before our scheduled departure.
Since we had plenty of time, we decided to go next door to the coffee shop - Loko Cafe Semarang Tawang. The coffee was quite delicious and the air-conditioning made it a more comfortable place to wait.
Riding the Argo Bromo Anggrek
Our experience with the train service and executive class on the Argo Bromo Anggrek was pretty much exactly the same as Taksaka train from Jakarta to Yogyakarta.
Boarding the Argo Bromo Anggrek
One difference in boarding the train was that Semarang is a stop in the middle of the Argo Bromo Anggrek route. So, once the train arrived, we only had a few minutes to board. It was still plenty of time, especially as most people had porters to efficiently load their luggage on the train.
Executive Class on Argo Bromo Anggrek
Although the seats and such were the same as the Taksaka train, other aspects of our journey were better on the Argo Bromo Anggrek. For one, we didn't have noisy passengers next to us. Also, sitting on the sunny side of the train made the car feel slightly less frigid. Though I still wore my sweater for the entire ride.
One major difference between our two train rides was the scenery. Since we were on a different line, we saw new parts of Java. As the train sped along the tracks, we saw a lot of flood rice paddies as well as caught a brief glimpse of the sea .
Meals on the Argo Bromo Anggrek
The Argo Bromo Anggrek had the same meal options as the Taksaka. This time, we boarded the train at lunchtime, so we immediately ordered our food. To get our food at the same time, we both ordered the nasi goreng (fried rice) with chicken. Again, the meal was surprisingly tasty for train food and the sauce they give you is so spicy!
Arrival: Gambir Station, Jakarta
When we arrived back at Gambir Station, it was just as chaotic as it was when we left in the morning. I think that's just its natural state.
Luggage Storage Woes at Gambir Station
The initial plan for that evening was to leave our suitcases at a left luggage or luggage storage shop in Gambir Station for a couple of hours. Our flight back to Hong Kong wasn't until midnight, so we had several hours to burn. We'd hoped to walk around a bit and see some of the Jakarta sights we'd missed earlier in our trip.
Unfortunately, (as of July 2024) the luggage storage facilities in Gambir Station are not set up for foreign credit card or cash payments. Since we did not have an Indonesian bank account, we were out of luck.
Taxi at Gambir Station
Calling a Grab taxi for pick-up at Gambir Station is an experience. Given the number of people being picked up the various entrances, it's a lot to figure out. It took us several minutes of searching, but we finally found our driver and headed to the airport.
Is It Worth It to Travel by Train in Java?
In my opinion, traveling by train in Java is a great option and totally worth it if you can make it work with your schedule. For us, just avoiding all the hassle that comes with airports for only a one hour flight was great. Plus, the trains were comfortable and allowed us to see more of Java's beautiful countryside and rural villages.
Even though domestic flights are not too expensive, traveling by train in Java is a more budget-friendly option. I think it's great that Indonesia's railways have such a wide range of options which means you can customize your travel experience to fit your budget and comfort-level.
Final Thoughts
Traveling by train in Java is a great way to appreciate more of this beautiful island while getting to your next destination. I hope this article helped answer questions about how to you plan your Java train journey.
Check out the next post in my Java series >> Awesome 2-Day Itinerary in Yogyakarta.
Other Articles You Might Enjoy
If you're planning a trip to Indonesia or Southeast Asia, you might also enjoy the following articles:
Happy travels!