Riding the Train in Java: What You Need to Know

August 8, 2024


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:

  • Java: Extensive railway system linking the major cities around the island. 
  • Sumatra: Several discontinuous rail networks around the island which do not link up yet.
Java countryside

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: 

  • Convenience: Train stations are often located in the heart of the city, nearby to where we were staying. This meant we had a quick(er) ride between the stations and our hotels. Airports are often on the outskirts of the cities, so you have to work that into your timing.
  • Avoid Airport Hassle: Taking the train, you avoid having to arrive ~2 hours early and don't have to worry about checked bag fees. In Indonesia, trains stations have porters to help you load your luggage onto the trains (for a fee). So, even if you have large luggage, it's manageable.
  • Scenery: The biggest draw of a train adventure is the incredible views you'll have along the way. If you fly, you miss out on a chance to see the Java countryside.
Scenery from Java train

Rice paddies in Central Java

Cons of Taking the Train in Java

Some of the drawbacks to riding the train in Java: 

  • Timing: Depending on where you're going, the train journey might be too long to fit into your schedule. Traveling the full length from east to west Java is a quite far, so a plane might make more sense. But going from Jakarta to Yogyakarta, the train only takes a bit longer than flying if you take an express route. (It's roughly a 1.25-hr flight. Then, factor in the 1+ hr on each side traveling to/from the airports, plus needing to arrive ~2 hrs early to the airport.)
  • FREEZING Train Cars: The amount of air-conditioning used in the train cars was a big downside for me since I only brought a light sweater to Indonesia. It was SO COLD. Bring a jacket if you plan to ride the trains 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.

  • Executive Luxury: Individual, padded, reclining seats arranged in a 2 x 1 configuration.
  • Executive Luxury Sleeper: Padded lie-flat seats like you'd find in Business Class on an airline in 1 x 1 configuration. Each seat also has a TV, side table, and privacy walls.
  • Executive Luxury Compartment Suites: Built like the First Class Suites on certain airlines, these compartments offer the most privacy and luxury possible. A singe, lie-flat seat in its own room with doors.  

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.

Crowded Gambir Station

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. 

Gambir Station Jakarta
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. 

Taksaka train in Java Indonesia
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.

Taksaka train executive class

I love that the lady behind my seat was also smiling for the photo! 

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.

Rural village on Java

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.

Se'i sapi meal on Java train

Se'i Sapi meal on an Indonesian train - that sauce is SPICY!

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.

Semarang Tawang Station exterior

Most of the station is not air-conditioned. However, I believe I saw a special air-conditioned waiting room for luxury-class passengers.

Semarang Tawang Station interior
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.

Coffee at Loko Cafe Semarang Tawang

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.

Argo Bromo Anggrek Executive class

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 .

Flooded rice fields in Java

Flooded rice paddies on the northern coast of Java

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. 

Riding the train in Java

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.

Happy travels!


Like this article? Pin it!

Riding the Train in Java, Indonesia
Riding the Train in Java green
{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>