The train network though not the best or fastest, can be quite a good alternative to taking bus in Indonesia.
Double-tracking have been done on most major congested lines and the effort is still ongoing.
Types of Train
The types of train are Air-conditioned Eksekutif Class (Eksekutif Class), Business (Bisnis) and Economy Class (Ekonomi Class). Economy class are for the budget traveler who are willing to sacrifice comfort and a little bit of safety due to congestion and longer travel time. There are no sleeper trains in Indonesia. Generally tickets are available to be bought immediately, if not during peak holiday season, else it can always be reserved up to a month in advance.
As usual take note of your belongings as the train can be crowded and theft can be quite common, especially on overnight journeys, so please lock your doors / bags whenever possible.
Train Travel in Java
Java has the best train railway network, connecting Jakarta in West Java to various other main cities like Surabaya, Yogyakarta and Solo, covering Central and East Java. If you want to get to Bali, you may take the train to Banyuwangi and then connect with ferries to the island. Traveling on train in Java can be one of the best choice if you are not in a hurry as the route is scenic, for example the train that climbs into the hills before Bandung are beautiful.
Train Departing from Jakarta
Gambir Train Station
The most convenient train station in Jakarta, on the eastern side of Merdeka Square or 15 minutes walk from Jalan Jaksa. This train goes to Bogor, Bandung, Yogyakarta, Solo, Semarang and Surabaya. Express train tickets can be bought in advance in booking offices here at the northern end of the station.
Pasar Senen Train Station – goes to the east of Jakarta and have the most economy-class trains.
Tanah Abang Train Station – goes to the west of Jakarta and have economy trains.
Train from Jakarta goes to Bogor, Bandung, Cirebon, Yogyakrta and Solo.
How or Where to Buy Train Tickets
First of all of course you may purchase the train tickets at the respective train stations itself but if you want alternative to that you may buy train tickets at any Indomaret outlet in Indonesia. Here you may just need to pay a small fee for the transaction, truly worth it for saving time and transport money. Before departure at the train station, just bring the receipt to the special counter that shows Indomaret on the sign and exchange for a train ticket.