Jakarta to Yogyakarta by Train: Best and Cheapest in 2024

Traveling from Jakarta to Yogyakarta is one of the most popular routes on Java. There are three ways to get between them:

  • Airplane: expensive (and could be slower when you consider travel to and from the airports, especially in Jakarta);
  • Bus: slower and more uncomfortable (see for yourself);
  • Train: Quick, cheap, and comfortable.

As you can see, the best way to get from Jakarta to Yogyakarta is by train. In this article, you will find all the information to plan your trip between these two cities in Java.

Jakarta and Yogyakarta are both part of my 14-day Java Backpacking Itinerary.

Timetables & Prices of Trains from Jakarta to Yogyakarta

You can check the up-to-date train timetables at the official Indonesian Railways Kereta Api website.

Honestly, it’s not the most user-friendly website (and it doesn’t have an English version unless you auto-translate it with Google Translate but then the search function breaks), so here’s the distilled information you need.

Trains from above
Train travel in Java is popular and convenient

Prices depend on the train, the class, and the subclass. There are only two classes on the trains between Jakarta and Yogyakarta – Eksekutif and Ekonomi (‘bisnis class’ exists, but not on this route).

The two available classes are further divided into subclasses using letters:

  • A, AA, AB, H, I, J for Eksekutif;
  • C, CA, CB, P, Q, S for Ekonomi;

The price also depends on how far in advance you book your ticket.

Pasar Senen to Yogyakarta Lempuyangan (Ekonomi and Eksekutif trains, CHEAPEST OPTION)

The following trains go from Jakarta’s Pasar Senen station to Yogyakarta Lempuyangan station. The cheapest possible train between Jakarta and Yogyakarta does this route, although it’s a little slower at 8.5 hours.

Train name, times, and starting price for Ekonomi Class:

  • Bengawan (246): 06:00 – 14:25, 74.000 IDR (5$), CHEAPEST OPTION;
  • Gajahwong (138): 07:35 – 15:33, 180.000 IDR (12$);
  • Gaya Baru Malam Selatan (106): 11:00 – 19:10, 235.000 IDR (15.5$);
  • Jaka Tingkir (222): 12:00 – 19:47, 190.000 IDR (12.5$);
  • Jayakarta (218): 17:10 – 00:54, 215.000 IDR (14$);
  • Singasari (104): 20:55 – 05:25, 300.000 IDR (20$);
  • Bogowonto (136): 21:45 – 05:48, 210.000 IDR (13.5$);
  • Progo (248): 23:00 – 07:05, 175.000 IDR (11.5$).

Jakarta Pasar Senen to Yogyakarta Tugu (Ekonomi and Eksekutif trains)

Train name, times, and starting price for Ekonomi Class:

  • Fajar Utama Solo (88): 05:45 – 12:32, 255.000 IDR (17$);
  • Fajar Utama YK (142): 06:40 – 14:37, 220.000 IDR (14.5$);
  • Bangunkarta (124): 12:25 – 19:59, 290.000 IDR (19$);
  • Senja Utama YK (140): 19:05 – 02:35, 220.000 IDR (14.5$);
  • Bogowonto (136): 21:45 – 05:38, 210.000 IDR (14$);
  • Mataram (90): 22:05 – 05:11, 255.000 IDR (17$).

Jakarta Gambir to Yogyakarta Tugu (Eksekutif trains only)

Train name, times, and starting price:

  • Argo Semeru (18): 6:20 – 12:54, 400.000 (26$);
  • Argo Dwipangga (10): 8:50 – 14:58, 420.000 (27.5$);
  • Tarsaka (68): 9:20 – 15:40, 425.000 (28$);
  • Bima (60): 17:00 – 23:28, 425.000 (28$);
  • Gajayana (56): 18:50 – 01:26, 425.000 (28$);
  • Argo Lawu (8): 20:45 – 02:49, 420.000 (27.5$);
  • Tarsaka (70): 21:40 – 04:00, 425.000 (28$);

Jakarta and Yogyakarta Train Stations

The stations of Jakarta that have trains going towards Yogyakarta are Gambir and Pasar Senen. Gambir is the more central one, being right next to MONAS, the National Monument.

Pasar Senen is close though, only 30 minutes on foot away.

There is no easy public transportation between the two. However, a Grab or GoJek car costs no more than 20.000 IDR (1.3$).

Inside Gambir Station, Jakarta
Inside Gambir Station, Jakarta

In Yogyakarta, the two stations are Tugu (Yogyakarta Central) and Lempuyangan. They are about 20 mins on foot away from each other. Tugu is more central, as Malioboro starts 100 meters from the entrance of the station.

Lempuyangan is the train station for trains towards Ketapang for the ferry to Bali.

Ekonomi vs. Eksekutif tickets- Is the price worth it?

Are you wondering if it’s worth paying more for the premium train tickets? Don’t we all…

The main difference between the economy and executive classes is the seats.

Executive usually has 2 rows of 2 seats, whereas Economy is two rows of benches seating 2 and 3 people respectively in alternating orientation so as to face each other.

Executive has individual reclinable seats and armrests, whereas Economy’s benches cannot be moved back or forth and only the aisle seat (part of the bench) has an armrest.

Another difference is travel time.

The purely Eksekutif trains that depart from Gambir take 6:30 hours on average to reach Yogyakarta, whereas the cheaper Ekonomi class trains take on average 7:30 hours. Which makes the prices different too.

Apart from the seats, duration, and price, practically all other variables of train travel are the same: Both classes have AC on trains, both have electrical plugs, and the food carts offer the same food.

Seating2×2 seats2×3 benches
El. plugs1 per seat2 per bench
Comparing Executive to Economy class

The Eksekutif Luxury

The Executive Luxury class deserves its own section, as it’s quite different from the normal Executive class.

For starters, it has two rows of 1 and 2 seats respectively. The seats look modern, even luxurious (the name doesn’t disappoint).

There is also a blanket and a small pillow provided for every passenger. Seats recline, but not to a fully horizontal position.

There is a TV at every seat, just like what you’d expect in an airplane. Prices are significantly higher than Executive, up to 1.2 million IDR (79$) at which point a flight would be cheaper. But the Executive Luxury allows you to travel in style, so there’s that.

Overnight train – Is it a good idea?

There is no sleeper train running between Jakarta and Yogyakarta.

Yes, there are overnight trains, but they offer the same seating as the daylight trains. There are no beds/berths and you cannot lie down.

This begs the question: Should you travel from Jakarta to Yogyakarta during the night? For me, the answer is a simple no.

Inside an executive class train from Jakarta to Yogyakarta
Executive class – possible to sleep in, but not ideal

What you will save in time you will lose in fatigue the next day. I’d much prefer to spend 7-8 hours looking out of the window at beautiful rolling rice fields and having a good night’s sleep in a proper bed, than saving a few dollars from accommodation and feeling drowsy the whole next day.

Moreover, the executive trains (with seats that allow at least some sleep) arrive too early in the morning, the latest being 5:48 on the Bogowonto train. This means you’ll have even less time to sleep and feel even more tired during the day.

To summarize: Take the daylight train!

When to book a ticket for trains in Indonesia

Ideally, you’d know exactly when you want to travel and book your tickets well in advance.

Train tickets do sell out!

Sold out tickets on the Kereta Api website
I checked tickets A MONTH in the future and there were many sold out already!

On Tiket.com, tickets become available about 6 weeks before departure, so if you know when you want to travel, book.

Tickets are not more expensive if you buy too far in advance (unlike certain airfares), but they do get more expensive if you buy just a few days before.

There’s one exception. If you are feeling adventurous, need to travel urgently, and/or want to get a cheap ticket, go to the train station an hour before any train departs (without a ticket).

Available seats are sold at a discount if you book at the train station just before the train departs.

How to book a ticket for the Indonesian trains

Are you ready to travel from Jakarta to Yogyakarta? Then let’s get you a ticket!

You can buy a ticket for Kereta Api both online and in person. Why would you want to buy in person? Well, the official Kereta Api booking site only accepts Indonesian cards, that’s why.

Buy a ticket in person at Alfamart or Indomaret

Indomaret store
Can’t book online? Indomaret is around the corner!

The first step is to reserve your ticket at the Kereta Api booking site.

It’s only in Indonesian, but everything is quite straightforward to follow. You can always auto-translate the page and if anything breaks (stations’ names input in the search box don’t get recognized if the page is auto-translated) just revert to Indonesian.

When you reach the payment screen, pick Retail Shops on the left and then the closest shop to you: Alfamart, Alfamidi, or Indomaret.

You will then see a payment code and a 1-hour timer. Go to the nearest retail shop, show the code to the cashier, and pay within the allotted time. The cashier will issue you the ticket confirmation.

Buy a ticket online at Tiket.com or Traveloka

Since the Official Kereta Api booking site doesn’t allow booking with a foreign card, you have to go to a reseller to buy tickets online. The two most popular and trustworthy resellers are Tiket.com and Traveloka.

Ticket dot com Logo

The procedure there is pretty straightforward until it comes to paying.

I had this problem the first time I tried to book a ticket (and so have several other travelers): my card was declined until I proved ownership.

I had to email them asking what that was about, and they then required a picture of my card (like that’s not something anyone could fake). After a manual review, they unblocked it for future use.

It might not even happen to you, but if it does, don’t worry, you can always book a ticket in person.

Checking in and printing your ticket

Note that no matter which booking procedure you follow, the confirmation you receive after payment is NOT the actual ticket!

Think of it more like booking confirmation as in air travel. You must check in!

Checking in is no longer mandatory if you have a QR code on your ticket. Most tickets are issued with a QR code.

Inside Yogyakarta Tugu Station
Inside Yogyakarta Tugu Station. Notice the check-in desks on the right.

To do that, arrive at the station a little earlier, 25-30 minutes is usually enough. On most stations in Indonesia, including all stations mentioned in this article, there are self-service kiosks for checking in. Type down the number from your confirmation and the actual ticket will be issued.

There are always attendants at the train stations who will help you with the check-in if you struggle.

The Experience on the train from Jakarta to Yogyakarta

Trains in Indonesia are quite good by Southeast Asian standards. I recently traveled by train in Vietnam and let me tell you: train travel in Java is so much better!

Let’s take a quick look inside the trains from Jakarta to Yogyakarta.

Seats and Legroom

In Executive Class, the seats are individual and have adequate legroom. One level up in Executive Luxury and you have a seat that’s on par with airplane’s business class – a ton of legroom and adjustable seat.

In Economy Class, the seats are usually (not all trains, but most) in the form of benches. On one side of the train they are 3×3 facing each other, on the other side, they are 2×2 again facing each other.

I’d argue there’s enough legroom if you coordinate with the person in front of you.

Regardless, I’d not pick an economy class if I’m traveling in an overnight train – it’s just not comfortable enough to sleep.

Overhead Luggage Compartments

All train classes have similar overhead bins for luggage. Officially the limit is 20 kg, but nobody ever checks and the bins will of course hold things even above 100 kg.

Overhead bins in an economy class train
Overhead bins in an economy train

The difference comes when you consider the number of people in the wagon. In Economy, the overhead bins get filled up pretty quickly and you might have to keep your backpack with you.

But usually, people are understanding and will help you fit it above by squeezing other luggage around. There’s always a way!

Food on the Trains

Food in all classes is pretty much the same. The food carts that go through the wagons offer snacks, drinks, and hot food like instant noodles, nasi goreng, bakso meatballs soup, etc.

The prices are severely inflated. For example, you can get Nasi Goreng in the city for 10.000 IDR (0.66$), whereas it’s 35.000 IDR (2.3$) on the train.

More importantly, the food is just not too good. You’re better off buying some Indonesian fried snacks or a sandwich from Indomaret before boarding.

Train Toilets

A toilet in an Indonesian train

There’s a toilet between any two wagons in every class of train.

The toilets are surprisingly clean and use a vacuum suction system to pull your *delivery* away, just like the toilets in airplanes.

There’s toilet paper, running water, and liquid soap. Honestly, what a nice surprise the toilets are!

Safety on the Trains

Indonesia is a very safe country on its own and the trains are no exception. I’ve never had to deal with any issues, ever. People are welcoming and understanding.

You can leave your bag in the overhead bins unattended to go to the toilet or walk around the train to stretch your legs.

As for train accidents, they are incredibly rare.

Possible stops between Jakarta and Yogyakarta

If you travel directly from Jakarta to Yogyakarta, you’ll be missing a lot of Java.

A few good stops to break up the journey are:

Explore more options in my extensive 14-day itinerary for Java from Jakarta to Bali.


Yay, you arrived in the Indonesian city of universities, wisdom, ancient history, culture, and food!

Can I interest you in some of the best things to do in Yogyakarta? I bet you’re hungry – check out these places to eat in Yogyakarta that locals (and I) love!

What about watching the sunrise at Borobudur?

Or maybe you don’t have much time and want to visit Borobudur and Prambanan in 1 day? While you’re there, you really should consider watching the Ramayana Theater at Prambanan!

Do you want more? What about 20 more ancient temples or a bizarre chicken-shaped church?

One thing is certain – you will not be bored in Yogyakarta!


  1. THANK YOU !!
    ive been pulling my hair out trying to make sense out of trains between jogja and porbolinggo
    – and now i know just about everything i need to know (save for whether or not id take the train itself 🙂 )

    1. Glad I could help. Bottom line, the KAI website or app is quite user-friendly and shows the train times 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *