Jakarta to surabaya train time

Posted on


How much is the cost of train tickets for Jakarta Surabaya route?

The train ticket price for Jakarta Bandung route averagely starts from Rp. 100.000

How many train stations in Surabaya that has route from Jakarta?

There are two stations in Surabaya that have route from Jakarta, which are Surabaya Gubeng (SGU) and Surabaya Pasar Turi (SBI)/p>

How long will it take to go from Jakarta to Surabaya?

Averagely, it will take around 10 – 11 hours to go from Jakarta to Surabaya.

How many train trip per day that serve from Jakarta to Surabaya?

There are around 3 trips per day for trains that serve Jakarta to Surabya route.

How much is the cheapest train ticket from Jakarta to Surabaya?

The cheapest train ticket for Jakarta Surabaya route is Rp 104.000 for Economy Class of Gaya Baru Malam Selatan train.

Jakarta Surabaya Train

Either Jakarta or Surabaya is a metropolis. Jakarta is the largest city in Indonesia while Surabaya is on the second in the term of area width. Both cities do have many similarities mainly as the center of business and education. It’s no wonder; Jakarta’s people never skip out Surabaya when it comes to the holiday destination.

The City of Surabaya is within a 796 kilometer- distance, in the east of Jakarta. A train is the main transportation that connects the two cities, taking a route from Gambir Station to Pasar Turi Station. Traveling by the mass transportation, your journey to Surabaya taking only 9 to 10.5 hours seems more worthwhile as you don’t need to encounter traffic problem. The ticket fare for an executive class ranges from 375,000 IDR to 485,000 IDR. 

Train Schedule Jakarta – Surabaya

Train NameClassPriceDeparture TimeArrival TimeDuration

DharmawangsaEconomyRp225.00008:5519:3510h 40m

DharmawangsaExecutiveRp475.00008:5519:3510h 40m

Gaya Baru Malam SelatanEconomyRp355.00010:5500:2713h 32m

Gaya Baru Malam SelatanExecutiveRp460.00010:5500:2713h 32m

AirlanggaEconomyRp104.00011:1022:5011h 40m

KertajayaEconomyRp280.00014:1001:2511h 15m

GumarangBusinessRp325.00015:5002:4510h 55m

JayabayaEconomyRp355.00016:4503:3910h 54m

JayabayaExecutiveRp560.00016:4503:3910h 54m

JayakartaEconomyRp370.00017:1006:3713h 27m

BimaExecutiveRp650.00017:1004:1111h 1m


Sembrani LuxuryExecutiveRp1.210.00019:0004:009h 0m

Argo Bromo AnggrekExecutiveRp785.00020:3504:458h 10m

Argo Anggrek Luxury SleeperExecutiveRp1.220.00020:3504:458h 10m

Gambir Station

Gambir Station is located on Medan Merdeka Timur Street No. 1, Gambir, Kota Jakarta Pusat, DKI Jakarta 10110 in the heart of Jakarta. Due to its great location, close to National Monument, the place is easy to find. To reach there, you can take some public transportation such as taxi, ojek (motorcycle taxi), and Transjakarta bus (Corridor 2). 

Gambir Station popularly known as Jakbir Station is the largest, as well as the oldest railway station in Jakarta. Although the 133-year-old building built during Dutch colonial period has existed for many years, the interior is stylish and modern. It’s equipped with airport-standard facilities such as online ticketing system, web check-in, boarding pass machine, few restaurants and famous coffee shops. 

Pasar Turi Surabaya Station

Stasiun Surabaya Pasar Turi

Pasar Turi Surabaya Station, situated on Semarang Street 1, Tembok Dukuh, Bubutan, Surabaya 60172, boasts a strategic location, close to the grocery center (PGS), and is accessible from anywhere else in Surabaya. To reach the site, you can go by bus or bemo then stop at the PGS. Continue your trip by taking a 10-minute walk to Pasar Turi Station.

The A-class station is the second largest railway stop in the city of hero. Why it’s named Pasar Turi since it used to be a traditional market filled with vendors selling turi flowers (the basic ingredients to make the pecel dish). Another its unique attraction is the visitors will hear the sound of an instrumental song of “Surabaya Oh Surabaya” when the train arrives.

Popular Tourist Destinations in Surabaya

Dubbed as the city of hero, you will find the capital so charming, full of historic sites reminding the heroic time. Here are some famous destinations in Surabaya you need to go for a visit.

Hero Monument

Hero Monument is the Surabaya’s iconic landmark and pride. The 41.15-meter towering obelisk in the hub of the city is a symbol commemorating a battle occurred on November 10th, 1945. It looks like a spike upside down, depicting the historical date. Within a 7-meter underground depth, it sits a museum collecting some stories about how the local youngsters fought against colonialism and the documentation about the building’s construction. Find the appeal on Pahlawan Street, Alun-Alun Contong, Bubutan, the city of Surabaya, East Java 60174.

Red Bridge

Jembatan Merah Kota Surabaya Jawa Timur

Red Bridge is an important monument which used to be a trading area connecting Kalimas and Surabaya’s Residential Building. The structure remains as one of the busiest business centers in the capital linked to Rajawali Street and Kembang Jepun Street. The legendary bridge is a must-visit tourist destination, great for having a picture and enjoying views. The vibrant red color of the bridge does match with the dramatic landscape of Surabaya. Find this charm on Krembangan Selatan Street, the city of Surabaya, East Java 60175.

Other Train Routes to Surabaya (SBI)

Train Tickets Semarang (SMT) – Surabaya (SBI)


Google Plus Share Scroll Top

  • Heroes Monument

    Heroes Monument, also known as Heroic Monument (Indonesian:Tugu Pahlawan) is a monument in Surabaya, Indonesia. It is the main symbol of the city, dedicated to the people who died during the Battle of Surabaya on November 10, 1945.

  • Surabaya Zoo

    Surabaya Zoo (Indonesian Kebon Binatang Surabaya or KBS), also known as Bonbin (abbreviation of Kebon Binatang, Indonesian for “zoo”), is a 37 acre zoo located in the city of Surabaya in East Java, Indonesia.

  • Mas River

    The Kali Mas (“Golden river” in Javanese), is a distributary of the Brantas River in East Java, flowing north easterly towards the Madura Strait. This river also forms part of the border between Sidoarjo and Gresik regencies.

  • Jalesveva Jayamahe Monument

    Jalesveva Jayamahe Monument or can be locally referred to as Monjaya is a Statue of an Indonesian Navy officer wearing Ceremonial Service Dress, complete with his sword of honor, staring far to the sea as if he’s ready to challenge the ocean’s tide and storms. It represents the preparedness of the Indonesian Navy for glory. The statue is standing tall above a building, the total height of the building and the statue reaches 60.6 meters (approximately 198 feet and 9 inches). Jalesveva Jayamahe Monument representing the nation’s future generation’s optimism towards the accomplishment of Indonesian dream.

  Taking the train in Indonesia


Travel Java by train, the civilised way!

Buy train tickets


Train travel on Java…

An excellent train system links all the main cities on Java, including Jakarta, Bandung, Yogyakarta, Solo, Surabaya, Probolinggo (for Mt Bromo) and Ketapang (for the ferry to Bali).  Trains are cheap, comfortable and air-conditioned, an ideal way to get around.  Indonesian trains run on narrow-gauge 3′ 6″ tracks, but are fast and usually punctual, with efficient computerised reservations.  The Indonesian for train is Kereta Api – literally fire carriage…

small bullet point  Useful country information: Visas, currency, etc.

small bullet point  How to buy tickets

small bullet point  Classes explained: Luxury, Eksekutif, Bisnis & Ekonomi

small bullet point  Luggage on trains

small bullet point  Food, drink & travel tips

small bullet point  A train ride from Jakarta to Bali in pictures

small bullet point  Jakarta airport train link

small bullet point  Recommended hotels on Java & Bali

Times & fares for Java…

small bullet point  Jakarta – Surabaya

small bullet point  Jakarta – Bandung

small bullet point  Jakarta – Yogyakarta & Solo

small bullet point  Yogyakarta – Solo

small bullet point  Bandung – Yogyakarta – Solo – Surabaya

small bullet point  Surabaya – Probolinggo – Ketapang (for Bali)

Sumatra & Bali…

It’s easy to travel by train & ferry between Java and Bali, or Java & Sumatra.

small bullet point  Java to Bali by train & ferry

small bullet point  Java to Sumatra by train & ferry

small bullet point  Train travel on Sumatra

Other routes…

small bullet point  Ferries to Borneo, Sulawesi & Papua

small bullet point  Ferries between Singapore & Jakarta

small bullet point  Europe – Indonesia by Trans-Siberian Railway

Route map:  Click for larger map

© OpenStreetMap contributors, available under the creative commons licence.

Train operator in Indonesia:

PT Kereta Api – website www.kai.id.  It’s easier to use www.tiket.com.


Ferry operator in Indonesia:


Pelni – www.pelni.co.id

Time zone:

Java & Sumatra GMT+7, Bali & central Indonesia GMT+8

Eastern Indonesia GMT+9.

Dialling code:




£1 = approx 18,000 rupiah;  $1 = 15,000 rupiah.  Currency converter

Tourist information:




Search hotels in Indonesia



Search flights to Indonesia


Citizens of many countries including the UK, USA, Canada, New Zealand, Malaysia, Thailand & Singapore do not require a visa for stays of up to 30 days.  Some other nationalities including Australia can get a tourist visa on arrival for a stay of up to 30 days.  You must enter through a major airport or designated seaport and a return or onward ticket is required, see www.indonesianembassy.org.uk for details.

Page last updated:

1 February 2023.

Train travel on Java…


  • The easiest way to check times & fares is to use agency site www.tiket.com, see the advice in the how to buy tickets section below.

  • Alternatively, you can use the official Indonesian Railways site www.kai.id, but it’s currently only in Indonesian (and you may find it 403 forbidden).  If you click Reservasi you’ll get onto their sales site tiket.kereta-api.co.id and can use the journey planner to check train times and fares.  Google’s Chrome browser will translate anything you don’t understand.

  • These online systems are for long-distance trains, they don’t cover suburban trains around Jakarta or Surabaya, or the local trains to Merak or local trains between Yogyakarta & Solo.  The website for Jakarta commuter trains and Yogyakarta-Solo local trains is www.krl.co.id (Indonesian only).

Back to top

Option 1, buy online at tiket.kereta-api.co.id, only Indonesian cards accepted

  • tiket.kereta-api.co.id is the official Indonesian Railways (Kereta Api Indonesia or KAI) ticket sales website which has offered online booking since 2012.  However, it’s only available in Indonesian and it only accepts Indonesian credit cards so is of little use to overseas travellers.  At the time I write this their website is inaccessible, too, for some reason.  I recommend overseas travellers use www.tiket.com instead.

Option 2, buy online at www.tiket.com, recommended

  • www.tiket.com is a reliable ticketing agency which connects directly to the Indonesian Railways (KAI) ticketing system to sell train tickets online.  www.tiket.com is the easiest way for overseas travellers to buy tickets or just check Indonesian train times & fares.  It’ll work on your mobile, too, or you can download the Tiket app.  They charge a small booking fee.

  • Booking should open 90 days ahead, but it can open as few as 30 days ahead.  Tickets can be bought online until the day before departure, they cannot be bought online on the day of travel.

  • For English, click the red & white Indonesian flag at top right and select English.  Then click Trains.

    Before you start, make sure you have passport numbers and exact names for each passenger.  If you want them to get a text alert, have their mobile number handy too, or you can use your own contact number for all passengers.

    Any passenger 3 or over counts as an adult.  Children under 3 travel free, but they don’t get their own seat.

  • Which station to select in which city?

    Jakarta:  Type Jakarta and select the Jakarta all stations option.  Jakartakota is the historic 1929 terminus that’s now only used by local trains, station code JAKK.  Gambir is Jakarta’s modern central station used by the best Eksekutif class trains to most destinations, station code GMR.  If trains from Gambir are full or the times don’t suit you or you want to travel in Ekonomi class, try typing station code PSE and selecting Pasar Senen which is the second most important station in Jakarta and also pretty central.

    Yogyakarta:  Type Yogya and select Yogyakarta or enter station code YK.

    Solo (Surakarta):  Type Solo and select Solobalapan or enter station code SLO.

    Surabaya:  Type Surabaya and select the Surabaya all stations option.  Surabaya Pasar Turi (SBI) is the station for travel to/from the Semerang & Jakarta direction and Surabaya Gubeng (SGU) is for travel to/from Solo, Yogyakarta, Bandung, Probolinggo or Ketapang (Banyuwangi).

  • Use the filter!  To simplify the long list of train/class/price level combinations in the search results, use the filter on the left to select only the class you want, let’s say Eksekutif.

  • Which class to select?  KAI trains have 4 classes, Luxury Eksekutif, Eksekutif, Bisnis & Ekonomi.  Most trains just offer Eksekutif & Ekonomi, though some of the best trains are Eksekutif class only.  Eksekutif is the most popular choice for western visitors though Ekonomi class is perfectly acceptable.  Read more about classes.

  • Which price to select?  You should always select the cheapest price level shown for the train & class you want.

    First-timers get confused here, so I’ll explain:  You’ll see each train listed multiple times, the same class on the same train may be repeated several times with different prices.

    For example, you might see Jakarta to Yogyakarta on train 10 in Eksekutif class repeated 4 times with 4 different fares, Rp.490,000, Rp.510,000, Rp.550,000 and Rp.570,000. What’s the difference, and which one should you select?

    Answer:  There is no difference, you get exactly the same seats in the same carriages whichever price you pick, so always pick the cheapest.

    What you’re seeing here is a primitive attempt at airline-style dynamic pricing, with various ‘price buckets’ on offer.  An airline would of course only show you one price, the cheapest that’s available, with all the other higher-priced fare buckets hidden away behind the scenes.  But Indonesian railways rather unhelpfully show you all the possible price buckets, not just the cheapest.

  • Which seat to select?  See the Travel Tips section for advice on choosing a seat.

  • Credit card acceptance: Important!

    At the payment stage, try using your non-Indonesian credit card – it may now work.

    If it’s declined, don’t worry, follow this procedure:  Use the online chat to ask how to proceed.  They will tell you to email them a photo of your credit card & passport both in the same photo (but do not include the back of your card or tell them the card’s CVV security code), and they will then reply usually quite promptly with confirmation that they have white-listed your credit card.  You will need to start the booking process again from scratch, but once white-listed online booking is a breeze however many tickets you want.

  • Booking confirmation:  After payment you’ll be sent an email with a printable booking confirmation attached.  This has an alphanumeric booking code and a QR barcode.  Print this out and take it with you.  If you can’t access a printer, don’t worry as the alphanumeric Indonesian Railways booking reference is all you need to print a boarding pass at the station. 

  • You still need a boarding pass:  You cannot board the train with the Tiket.com confirmation, you must get a boarding pass at the station.  Getting the boarding pass at the station is easy, read the advice below about boarding passes.

  • Feedback if you use www.tiket.com is always welcome.

Tiket.com confirmation   Train boarding pass

Booking confirmation from www.tiket.com with booking reference and QR barcode…


You must exchange this for an orange boarding pass at the station.

Option 3, buy tickets at Indomaret convenience stores…

  • Many branches of Indomaret convenience stores and some branches of other chains such as Alfamart have a touch-screen terminal selling various types of ticket including train tickets.  You’ll find Indomaret stores almost everywhere, it’s often easier to buy your tickets from a local Indomaret than to go to the station.

  • Go inside and find the touch-screen terminal, the photo below shows what to look for.  Touch i-tiket, then Kereta Api which means train.

  • A journey planner appears.  It’s in Indonesian but easy to work out.  Enter from, to & date of travel, remembering that in Jakarta the main station is Gambir (station code GMR), in Yogya the station you want is Yogyakarta (YK), in Solo the station you want is Solobalapan (SLO), and in Surabaya the station you usually want is Surabaya Gubeng (SGU) unless you’re going to or from Jakarta or Semarang in which case you want Surabaya Pasar Turi (SBI).

  • Enter the number of passengers.  Dewasa means adult, which here means anyone aged 3 or over.  Infants means children under 3.

  • Click Next and you’ll see a list of train/class/price combinations.  Sort the results by departure time to see them in a logical order.  Then use the filters to see only the class you want, let’s say Eksekutif.  If you see more than one price for the train/class combo you want, simply pick the cheapest price – there is no difference in actual seating, this is just a primitive attempt at airline-style variable pricing.  Then click Next.

  • If you now see the passenger details screen, tickets are available!  If you get an error message in Indonesian, then that train/class/price combo is sold out.  Don’t worry, simply go back to the previous page and select the next price level up (or select a different train or class if you’ve already tried all the price levels for the train & class you want).  Repeat as necessary until clicking Next gets you to the passenger details screen.

  • Enter passenger names and ID (passport) numbers.  HP number means Hand Phone (mobile phone) number, just leave this blank or make one up if you don’t have an Indonesian mobile phone number, it doesn’t matter.

  • When you’ve entered passenger details, click to continue.  A small paper ticket is printed out below the screen.  Take this to the cash desk and pay for your train tickets in cash – according to one report, you may even get a free box of teabags.  You’ll get a reference number which you use to get a boarding pass from the check-in counters at the station, see the advice below about boarding passes.

Indomaret convenience store   Ticket selling terminal

Many though not all Indomaret stores have these terminals…


Ticket terminal…

Option 4, buy tickets at the station…

  • It’s not usually difficult to buy tickets at the station a day or two before departure or even on the day of travel, although trains are busy so be prepared to travel in another class or train if your first choice is fully-booked.

  • Busy periods:  There are certain times of year when trains get fully booked many weeks ahead so early online booking is a must.  These include the period around Chinese new year and especially the Islamic national holiday of Idul Fitri (Eid) at the end of Ramadan. 

  • Remember to take your passport.  If you’re buying more than one ticket you’ll need the passport number for each passenger.

  • Fill out an order form first…  At most stations you’ll find a desk with pens and blank booking forms near the ticket windows.  Fill in a form with your required journey, date, class, number of passengers and passenger names & passport numbers.  This will save time at the ticket window, indeed they may send you away if you haven’t filled one out.

  • Pick the right ticket window…  These words above each ticket window may help you find the right one:

    Loket = ticket counter

    Pemesanan = Ticket booking = ticket window, often followed by the classes sold at that window..

    Pembatalan, pengembalian = window for cancellations & refunds.

    Penujalan haru ini (Go Show) or Penjualan langsung (Go Show) = tickets for today including Go Show tickets.  Go Show tickets are discounted tickets only sold within 2 hours of train departure, if seats remain available.

    Tutup = closed!

    Some major stations have separate booking windows for long-distance tickets.  At Surabaya Gubeng there’s a reservation centre for long-distance tickets on the left side of the station, separate from the short-distance ticket windows near the entrance to the platforms.  Jakarta Pasar Senen has a reservations centre for long-distance tickets closest to where you drive or walk into the station driveway.

  • Self-service machines…  Major stations may also have one or more self-service touch-screen ticket machines.  They may only be in Indonesian, but they are easy enough to use as the process is straightforward and almost identical to using the touch-screen terminals in Indomaret convenience stores – so if you read option 4 below you’ll know how to use the machines at stations too.  You pay with rupiah banknotes.

Train ticket office at Gambir   Self-service ticket machines

The north concourse ticket office at Jakarta Gambir.  You’ll find a desk with pens & blank booking forms nearby, fill one out before going to the window.


The desk with pens & blank booking forms at Ketapang ticket office, together with a self-service ticket machine which accepts banknotes…

Important Orange boarding passes…

  • At all the most important stations such as Jakarta, Surabaya, Yogyakarta, Solo, Bandung, Semarang, Purwokerto, Jember, Malan & Ketapang (Banyuwangi Baru), a boarding pass system has operated since 2016.

  • If you buy a ticket online at Tiket.com or from an Indomaret mini-market or a travel agency, you’ll get a booking reference or QR barcode. You cannot board the train with this booking confirmation, you must use it to get an orange boarding pass at one of the self-service check-in counters at least 10 minutes before departure.

  • If you buy at a station more than 3 days before departure, they’ll give you a blue ticket.  You cannot board the train with the blue ticket, you must use it to get an orange boarding pass at one of the self-service check-in counters at least 10 minutes before departure.

  • If you buy at a station less than 3 days before departure, they’ll give you the orange boarding pass and you can board the train.

  • To get a boarding pass, go to one of the touch-screen computer terminals marked Check-in counter at the station entrance and either scan the barcode or type in the booking reference.  Your booking will appear on the screen.  Touch print and the paper roller printer will print your boarding passes.  No ID is needed.  You can do this at any time between several days before departure right up until a few minutes before departure.  However, you can only get boarding passes at the station where your journey starts, not at other stations.

  • ID check before accessing the platforms:  You will be asked to show the boarding pass and your passport at the ID check desk at the entrance to the platforms, it’s all part of a drive to eliminate ticket scalping.

  • At smaller stations where they have not introduced the boarding pass system, you can board the train with the blue ticket.

Train check-in machines, Jakarta Gambir   Train check-in counters, Surabaya Gubeng

1.  Check-in to get your orange boarding pass by scanning your QR barcode or typing in your booking reference.  These are the check-in counters at Jakarta Gambir (above left) and more basic ones at Yogyakarta (above right)…

ID check gate at Jakarta Gambir   Checking passports & boarding passes at Jakarta Gambir

2.  ID check before accessing platforms.  Your orange boarding pass is scanned (beep!) and your passport checked at the entrance gate to the platforms.  This is the South Concourse departures gate at Jakarta Gambir…

On board Indonesian trains…

  • Eksekutif class is air-conditioned with individual reclining seats, usually reclining to a good 30 degrees, arranged 2+2 across the car width.  Seats normally face forwards, but can be rotated to face either direction by depressing the foot pedal on the aisle side.  There’s a small drinks table on the wall by each pair of seats with two power sockets underneath, European 2-pin type.  The best trains are Eksekutif class only.

    A handful of the very best trains have Eksekutif Luxury class with individual flatbed seats in addition to normal Eksekutif class seats.

  • Bisnis class is air-conditioned with non-reclining padded seats, 2+2 across the car width.  Seats normally face forwards, but have a walkover back that can be pulled from one side of the seat bottom to the other so the seat can face either way.  There’s a small drinks table on the wall by each pair of seats with two power sockets underneath, European 2-pin type.  Bisnis class is a perfectly acceptable alternative if Eksekutif class is fully booked or if you want to save money.  Bisnis class is getting rare, available on relatively few trains.

  • Ekonomi class is air-conditioned with non-reclining padded seats, usually 2+3 across the car width.  Seats are usually arranged in face-to face bays of 4 or 6  There’s usually a small drinks table on the wall by each pair of seats with two power sockets underneath, European 2-pin type.  Many trains are Ekonomi class only, and it’s perfectly safe and comfortable to use Ekonomi class trains if the timings suit you better, or if other classes or trains are full.  A few Ekonomi trains are now equipped with modern cars with 2+2 reclining seats, notably on the Jakarta-Semarang-Surabaya route.  These are not dissimilar to Eksekutif class but with significantly less legroom.

Eksekutif class train seats   Bisnis class train seats

Eksekutif class…


Bisnis class…

Power sockets on the Argo Dwipangga   Ekonomi class train seats

Sockets in all classes, European 2-pin type.


Ekonomi class…

Available on the Argo Bromo Anggrek & Sembrani between Jakarta & Surabaya, Argo Dwipangga between Jakarta, Yogyakarta & Solo.  This is a major step above normal Eksekutif class, introduced in 2018.  It only exists on a few trains, including the premier Argo Bromo Anggrek & Sembrani between Jakarta & Surabaya and Argo Dwipangga between Jakarta, Yogyakarta & Solo, in addition to the normal Eksekutif class seats.  There is usually just one Eksekutif Luxury car on each train.  The first generation cars used between Jakarta & Surabaya have 18 flatbed seats arranged 1+1 across the car width, with a 170 degree power-recline with surround walls for privacy and individual flat-screen TV entertainment.  It’s the closest thing to a sleeper you’ll find on any Indonesian overnight train, although only a blanket is provided, not sheets.  The second generation luxury class cars (used on the Jakarta-Yogyakarta route amongst others) have seats arranged 2+1 across the car width and only a 140 degree recline.  See www.kaorinusantara.or.id/newsline/111626 for photos & video at www.youtube.com/watch?v=Kn3Yt52H5TM.  Photos courtesy of www.discoverbyrail.com.

Luxury class, first generation.  Operates day and night between Jakarta Gambir & Surabaya.  Click for larger photos.

Luxury class, second generation.  Routes include Jakarta Gambir to Yogyakarta on the Argo DwipanggaClick for larger photos

  • Luggage arrangements on Indonesian trains are simple:  You take your bags with you onto the train, and stick them on the overhead racks above your seat.  These take anything up to backpack or medium suitcase size, see the photo below.  If you have larger cases or you have difficulty lifting your bags up, you can put your bags in the gap behind the rearmost seats at the rear of the carriage in Eksekutif or Bisnis class cars, see the photos below.

  • Kereta Api Indonesia (KAI) introduced a 20 Kg luggage allowance per person in all classes in 2016.  KAI are reasonably serious about the 20 Kg limit, and luggage may be weighed before boarding if it looks heavier than 20 Kg.

  • If you have more than 20 Kg of luggage, don’t worry.  You can take up to 40 Kg per person if you pay an excess baggage fee at the departures gate.  The cost is Rp 10,000 ($0.68) per excess Kg in Eksekutif class, Rp 6,000 in Bisnis class, Rp 2,000 in Ekonomi.  Indeed, at Jakarta Gambir you may find a little desk with electronic scales next to the departure gate for payment of excess luggage fees.

  • KAI apply the 20 Kg per person limit to the total of all passengers travelling together, so if there are two of you and one has a 15 Kg bag and the other 25 Kg, that’s fine as you’re within the 20 Kg x 2 = 40 Kg limit in total.  They also seem to apply the 20 Kg limit to your main bags, without worrying too much about handbags or the 6 Kg daypack you’re wearing on your back.

  • In theory KAI also have a maximum size limit for luggage and you may see airline-style does your bag fit in here displays near the departure gate, 70cm x 48cm x 30cm.  Fortunately they don’t seem to bother with this, as long as you stay within the 20Kg limit.  So there is absolutely no problem taking backpacks or suitcases onto the train, indeed I have travelled with people who took two large 23 Kg hard-sided suitcases that were well beyond KAI’s theoretical size limit and we were never stopped or questioned about our luggage on any journey.  Although of course they may simply go easy on overseas visitors!

Luggage scales at Jakarta Gambir   Overhead luggage racks on an indonesian train   Suitcases can go behind the rear seats

Luggage limit sign at Gambir.


Luggage goes on the overhead racks…


Or behind the rearmost seats…

  • Every long-distance train has a catering car in the centre of the train with a counter selling tea, coffee, bottled water, soft drinks, crisps and various types of microwaveable tray meals, typically with rice and chicken (chicken = ayam) or fried rice (nasi goreng) and meatballs (bakso).  The catering car usually has one or two bays of seats with tables.

  • However, there’s no need to visit the catering car as a refreshment trolley passes up and down the train so you can buy all of these things at your seat.  Orders for tray meals may be taken and delivered later once microwaved back at base.  A typical tray meal costs around Rp 30,000, about $2.50.  Go for it, they’re tastier than they look!

  • You are of course free to take your own food and drink.

Preparing the microwaved tray means on train 102, the Ranggajati   Typical Indonesian train food

Orders taken, staff start the complex process of microwaving batches of rice and meat then restoring them to the plastic trays.  This is train 102, the Ranggajati.


A typical microwaved tray meal.  Chicken (ayam), rice (nasi) and beans.  Tastier than it looks and only around Rp 30,000, about $2.50.

  • Toilets:  All cars have one or two toilets, sometimes basic but usually reasonably clean and I have yet to find any KAI toilet without toilet roll, soap & water.  The most modern cars have two western-style toilets or one western and one squat toilet.  Only the oldest cars have two squat toilets.

  • Smoking is not allowed anywhere on a KAI train, although you can smoke briefly on the platform at station stops.  As the on-train announcements warn, “The passenger who carry smoke onto the train, we will carry off you at the next station…”.

  • Car numbers:  Cars are numbered by class, usually starting from the front.  So car 1 is usually the first car behind the locomotive, car 8 at the rear.  If the train has two or more classes, numbers are repeated in each class, with an Eksekutif car 1, 2 & 3 and a Bisnis car 1, 2 & 3.  So don’t mistakenly board Bisnis car 1 if your seat is in Eksekutif car 1.

  • Seat numbering:  Seat numbering is similar to planes, with the rows numbered typically from 1 to 13 in Eksekutif or 1 to 17 in Bisnis and the seats in each row lettered A, B, C, D across the car width, where A and D are the window seats and the aisle is between seats B and C.

    In most Eksekutif cars there are a couple of exceptions to this rule.  In the first & last rows the seats are reduced to 2+1 or 1+2 across the car width to make space for the access door and in these rows seat B (where seats shown are B, C & D) or seat C (where seats shown are A, B & C) is a ‘solo’ seat that is both window & aisle.

  • Choosing a seat:  If you book online at Tiket.com or use a self-service ticket machine or Indomaret ticket terminal you can choose an exact seat from a highly-simplified seating plan, see the picture below.  Seat numbers appear if you hover over a seat.  The plan doesn’t show the aisle, this is between seats B and C.  Remember that A and D are normally the window seats on either side.

    Remember that Eksekutif class cars typically have 13 rows of seats and Bisnis class 17 rows.  The plan you see may not show all the rows, only those seats & rows which are available to book online (although the example below does show all rows 1-13).  So if you only see rows 7 to 11 on the plan, it doesn’t mean rows 1-6 and 12-13 don’t exist, only that they are not bookable.  Also note that you cannot tell whether row 1 or row 13 will be at the front as the car could run either way round, although all seats will be turned to face forwards.

    I recommend choosing mid-car seats, avoiding rows 1-2 in any class, rows 12-13 in Eksekutif or 16-17 in Bisnis, as the ride is smoother on any train in mid-car and you get a better view of the scenery if you’re not right up close to the forward bulkhead and (in Eksekutif class) the distracting bulkhead TV screen.

Indonesian train seat plan

Back to top

  • A rail link from Jakarta’s Soekarno–Hatta International airport to BNI City (formerly Sudirman Baru) station in central Jakarta opened in December 2017, now extended to Manggarai station.  Trains now run every 30 minutes from around 05:00 until around 23:00.  The fare is 70,000 rupiah ($5) and the journey takes 55 minutes from the airport to BNI City.

  • For times, fares & tickets, see reservation.railink.co.id.

Back to top

A range of trains links Jakarta with Surabaya, but the best train is the Argo Bromo Anggrek with Eksekutif Luxury & Eksekutif classes, clean, modern and powerfully air-conditioned.  It has comfortable reclining seats with footrests and a catering car.  There is both a daytime service and a time-effective overnight service.  The overnight train doesn’t have sleepers (these disappeared from Indonesian trains in the 1990s), but the Eksekutif Luxury class car (shown as Lux in the timetable below) has flatbed seats that go completely flat, blanket provided.

 Jakarta ► Surabaya

Train number:
















 Jakarta Gambir depart





 Jakarta Pasar Senen depart








 Semarang arrive/depart





(via Y)



 Surabaya Pasar Turi arrive








 Surabaya Gubeng arrive



 Surabaya ► Jakarta

Train number:
















 Surabaya Gubeng depart



 Surabaya Pasar Turi depart








 Semarang arrive/depart



(via Y)





 Jakarta Pasar Senen arrive








 Jakarta Gambir arrive





Shaded = the best quality trains, recommended.  There are no sleepers on the overnight trains, only reclining seats and (in Eksekutif Luxury class) flatbed seats.

This timetable is only a summary, there are other trains, check times & fares at www.tiket.com (in English) or tiket.kereta-api.co.id (in Indonesian).

The station in Semarang is Semarang Tawang.   See map of Jakarta showing stations

(via Y) = runs via Yogyakarta & Solo, not Semarang, see route map at top of page.

Trains 1, 2, 3 & 4 are the Argo Bromo Anggrek (the Bromo Orchid), all Eksekutif class, fully-air-conditioned.  As well as regular Eksekutif class seats these trains have one car of Eksekutif Luxury class with 18 flatbed seats similar to airline business class, the closest thing to a sleeper on any Indonesian train, see above.

Trains 75 & 76 are the Bima, Eksekutif class only, air-conditioned

Trains 77 & 78 are the Sembrani, Luxury Eksekutif class, Eksekutif class, air-conditioned.

Trains 129 & 130 are the Dharmawangsa, Eksekutif & Ekonomi class, air-conditioned

Trains 105 & 106 are the Jayabaya, Ekonomi class only, air-conditioned.

Trains 255 & 256 are the Kertajaya, Ekonomi class only, air-conditioned.

Jakarta to Surabaya is 725 km, 450 miles.

 How much does it cost?

 Example one-way fare in rupiah

Eksekutif Luxury




 Jakarta – Surabaya





£1 = approx 18,000 rupiah;  $1 = 15,000.  Prices vary by date & train, check fares at tiket.kereta-api.co.id or www.tiket.com.

Children under 3 travel free, no ticket required.  Passengers 3 and over count as adults.

Prices vary significantly, with cheaper fares if you pre-book, for example Eksekutif class from 400,000 rupiah.

How to buy tickets:  At the station, at Indomaret minimarkets or online at Tiket.com as shown here.

A journey on the Argo Bromo Anggrek

The Argo Bromo Anggrek (the Bromo Orchid) is Indonesia’s premier train, linking Java’s two largest cities in 9 hours at a creditable average speed of 80 km/h (50mph) start to stop on its narrow gauge tracks.  The train keeps up a relentless 110 km/h (75 mph) between the few stops it makes, hooting ceaselessly at each level crossing, speeding non-stop through most smaller stations on its 9 hour dash – the same journey would take 15 hours by road.  As you pass through each station, look for the station master in his red and gold hat, standing to attention outside his office watching the train pass through.  The countryside is largely flat, rice paddies, villages, towns, palms and the occasional mosque.  After Semarang there’s a brief stretch where the train skirts the Java Sea, and around Cirebon you’ll see the vast shadow of Mt Cereme in the distance to the south, its summit usually hidden by cloud.  It’s an active volcano and the highest point in west Java.

Train 1, Argo Bromo Aggrek at Surabaya Pasar Turi

Indonesia’s premier train, the Argo Bromo Anggrek, is ready to leave Surabaya on its 9 hour dash to Jakarta.

Refreshment trolley   Driver of the train to Jakarta about the leave Surabaya

Trolley serving tea, coffee, soft drinks, crisps & tray meals.


The driver of the Argo Bromo Anggrek is ready to go…

Eksekutif class seats on the Argo Bromo Anggrek

Eksekutif class on the Argo Bromo Anggrek, comfortable and powerfully air-conditioned…

Catering car on the Argo Bromo Anggrek   Passing Semarang

The catering car on the Argo Bromo Anggrek


Coastline seen from the train   Rice fields

The train briefly skirts the Java Sea…


Rice, rice and more rice…

Rice fields and Mt Cereme seen from the train

Around Cirebon you’ll see the imposing shadow of Mt Cereme to the south, an active volcano & highest point in West Java.

Back to top

There is a train every hour or two from Jakarta Gambir station to Bandung, with Eksekutif & Bisnis class, taking about 3 hours 10 minutes for the 173 km, fare about 100,000 Rupiah in Eksekutif, 80,000 in Ekonomi.  See www.kereta-api.co.id or www.tiket.com to check times & fares for your date.

A high-speed line is under construction from Jakarta to Bandung, which is now due to open in mid-2023.

Back to top

Jakarta may be Java’s capital, but Yogyakarta, known locally at Yogya, is its heart.  Solo, also known as Surakarta, is Yogya’s long-standing rival an hour to the east.  Both cities should feature on any sensible trip to Java.  It’s easy to travel from Jakarta to Yogya or Solo by comfortable air-conditioned train, indeed it’s the best way.

 Jakarta ► Yogyakarta & Solo

Train number:




















 Jakarta Gambir (GMR) depart





 Jakarta Pasar Senen (PSE) depart










 Yogyakarta (YK) arrive










 Solo (Solobalapan, SLO) arrive







 Solo & Yogyakarta ► Jakarta

Train number:


















 Solo (Solobalapan, SLO) depart






 Yogyakarta (YK) depart









 Jakarta Pasar Senen (PSE) arrive









 Jakarta Gambir (GMR) arrive





Shaded = the best quality recommended trains.  See map of Jakarta showing stations

There are no sleepers on the overnight trains, only reclining seats and (on trains 8 & 9) flatbed seats in Eksekutif Luxury class.

You can check train times & fares using www.tiket.com (in English) or tiket.kereta-api.co.id (in Indonesian).

Trains 7 & 8 are the Argo Lawu, Eksekutif Luxury class flatbed seats & regular Eksekutif class seats, air-conditioned.

Trains 9 & 10 are the Argo Dwipangga, Eksekutif Luxury class flatbed seats & regular Eksekutif class seats, air-conditioned.

Trains 75 & 76 are the Bima, Eksekutif class only, air-conditioned.

Trains 81 & 82 are the Taksaka, Eksekutif Luxury class & Eksekutif class, air-conditioned.

Trains 121 & 122 are the Bangunkarta, Eksekutif & Ekonomi class, air-conditioned.

Train 134 is the Fajar Utama Solo, Eksekutif & Ekonomi class, air-conditioned.

Trains 135 & 136 are the Mataram, Eksekutif & Ekonomi class, air-conditioned.

Trains 137 & 138 are the Bogowonto, Eksekutif & Ekonomi class, air-conditioned.

Trains 143 & 144 are the Fajar Utama Yogya, Eksekutif & Ekonomi class, air-conditioned.

Jakarta to Yogyakarta is 522 km, 326 miles.

 How much does it cost?

 Example one-way fare in rupiah

Eksekutif luxury class

Eksekutif class


 Jakarta – Yogyakarta




£1 = approx 18,000 rupiah;  $1 = 15,000.  Prices vary by date & train, check fares at www.kereta-api.co.id or www.tiket.com.

Children under 3 travel free, no ticket required.  Passengers 3 and over count as adults.

How to buy tickets:  At the station, at Indomaret minimarkets or online at Tiket.com as shown here.

A journey on the Argo Dwipangga

Approaching Cirebon you’ll see the vast shadow of Mt Cereme in the distance to the south, its summit usually hidden by cloud.  It’s an active volcano and the highest point in west Java.  The nicest part of the journey from Jakarta to Yogya or Solo comes beyond Cirebon, where the train slows right down and snakes through gentle hills, past rice paddies nestling in narrow valleys amongst the jungle…

Train 10, Argo Dwipangga about to leave Jakarta Gambir   Steward selling tea & coffee

Train 5, the Argo Dwipangga boarding at Jakarta Gambir…


Refreshments on board…

Eksekutif class seats on the Argo Dwipangga

Eksekutif class seating on the Argo Dwipangga, one of the new air-conditioned trainsets introduced in 2016.  The Bima, Argo Lawu & Argo Dwipangga have similar new trainsets like this

Locomotive at the fron of the Argo Dwipangga at Gambir   The catering car on the Argo Dwipangga

The Argo Dwipangga ready to leave Gambir…


Buffet car on the Argo Dwipangga

Rice fields and Mt Cereme seen from the train

Around Cirebon you’ll see the imposing shadow of Mt Cereme to the south, an active volcano & highest point in West Java.  See more photos of this journey.

Watch the video…

Back to top

Yogyakarta to Solo…

These two Javan cities are only an hour apart by train.  Both are key stops on the tourist trail, Yogya is a must-see and Solo is well worth visiting.  You can see Solo as a day trip from Yogyakarta by train if you like.  There are two options for travel between Yogya & Solo:

  • Option 1, mainline express trains:  These take less than an hour between the two cities, but must be reserved in advance, they are less frequent and cost significantly more than the KAI Commuter local trains.  Check times & buy online at Ticket.com as shown above.

  • Option 2, KAI Commuter local trains:  This is the easiest option.  Comfortable air-conditioned electric commuter trains now link Yogyakarta & Solo every hour or two through the day, journey time 1h10.  The fare is a mere Rp 8,000, less than $1.

    These electric trains took over from the Prameks diesel trains in 2021, and operation was handed to KAI Commuter.

    You can check times at the KAI Commuter website, commuterline.id/perjalanan-krl/jadwal-kereta (please let me know if that link stops working).  It’s in Indonesia, but easy enough to understand:

    For Yogyakarta to Solo, select Yogyakarta as the starting station, enter a timeframe (00:00 to 23:00 if you like) and click Lihat.  All departures shown in red go to Solo’s Solobalapan station, whether the final destination is shown as Solo or Palur.

    For Solo to Yogyakarta, select Solo as the starting station, enter a timeframe and click Lihat.  You want a departure shown as going to Yogyakarta, departures to Palur head in the opposite direction.

    Tickets cannot be booked in advance, just buy at the station.  Until 2021, the old Prameks service used to have its own dedicated ticket windows, feedback on the new arrangements or photos of these new trains would be appreciated.

Back to top

Bandung – Yogyakarta – Solo – Surabaya…

 Bandung Yogyakarta, Solo ► Surabaya

Train number:






















 Bandung depart






 Yogyakarta arrive






 Yogyakarta depart











 Solo (Surakarta) arr/dep











 Surabaya Gubeng arrive









 Probolinggo arrive



 Surabaya ► Solo, Yogyakarta Bandung

Train number:




















 Probolinggo depart



 Surabaya Gubeng depart








 Solo (Surakarta) arr/dep








 Yogyakarta arrive








 Yogyakarta depart






 Bandung arrive






The station in Yogyakarta is Yogyakarta, station code YK.  The station in Solo is Solobalapan, station code SLO.

Probolinggo is the usual railhead for visiting Mt Bromo.  Surabaya Gubeng station code is SGU.

You can check train times & fares using www.tiket.com (in English) or tiket.kereta-api.co.id (in Indonesian).

There are no sleeping-cars, night trains just have reclining seats.

Trains 5 & 6 are the Argo Wilis, Eksekutif class only, air-conditioned.

Trains 75 & 76 are the Bima, Eksekutif class only, air-conditioned.

Trains 79 & 80 are the Turangga, Eksekutif class only, air-conditioned.

Trains 111 & 112 are the Ranggajati, Eksekutif & Bisnis class, air-conditioned.

Trains 115 & 116 are the Wijayakusuma, Eksekutif & Ekonomi classes, air-conditioned.

Train 119 is the Malabar, Eksekutif, Bisnis & Ekonomi classes, air-conditioned.

Trains 131 & 132 are the Mutiara Selatan, Eksekutif & Ekonomi class, air-conditioned.

Trains 159 & 160 are the Lodaya, Eksekutif & Bisnis class, air-conditioned.

Trains 175, 176, 178 are Sancaka, Eksekutif & Ekonomi class, air-conditioned.

Bandung to Surabaya is 696 km, 435 miles.  Yogyakarta to Surabaya is 308 km, 193 miles. 

 How much does it cost?

 Example one-way fares in rupiah

Eksekutif class

Bisnis class

Ekonomi class

 Bandung – Surabaya


 Bandung – Yogyakarta




 Yogyakarta – Surabaya




£1 = approx 18,500 rupiah;  $1 = 15,000.  Prices vary significantly by date & train, check fares at tiket.kereta-api.co.id or www.tiket.com.

Children under 3 travel free, no ticket required.  Passengers 3 and over count as adults.

How to buy tickets:  At the station, at Indomaret minimarkets or online at Tiket.com as shown here.

Traveller William Bernstein reports:  “The Argo Wilis is one of the world’s great trains in terms of scenery, particularly the first 100 km east of Bandung; if Bali had a railroad, this is what the scenery would look like.  Reserving in advance wasn’t really necessary, service was about on a level with a local European second class train.”

Traveller Edmund Carew travelled Surabaya-Bandung on the Argo Wilis:  “The aircon trains were only 50 to 75 per cent full: it was incredibly easy to book, with no queues at Surabaya or Bandung.  However, third class trains around Surabaya were packed as were local trains on the ‘snappy’ Bogor line from Jakartakota station.  The Indonesian railways make a real effort to run on time.  Mostly they seem to be no more than 15 minutes late, which is good although schedules between Surabaya and Bandung (hilly last bits) was only an average speed of 57 – 58 km/h.”

Traveller William Bernstein reports:  “The Yogyakarta -Surabaya train was squeaky clean, the service was exquisite and the scenery as gorgeous as from the Bandung-Surabaya train.  The Indonesians have definitely upgraded their system, and particularly their day trains, from what we’ve seen, over the past 40 years.”

A journey on the Ranggajati

Train 102 Ranggajati at Solo Balapan

Train 102, the Ranggajati calls at Solobalapan.

Eksekutif seats on the Ranggajati   Bisnis class seats on the Ranggajati

Eksekutif class on the Ranggajati


Bisnis class on the Ranggajati

More rice fields

Rice fields from the train.  See more photos of this journey.

Java to Bali

by train & ferry…

It’s easy, cheap and fun.  Take a comfortable air-conditioned train from Surabaya to Ketapang (the station was called Banyuwangi Baru until 2020) at the eastern tip of Java.  It’s then a 350m 5-minute walk from the station to Ketapang ferry terminal, from where ferries sail every 15 minutes to Gilimanuk on Bali, crossing time just 45 minutes.  Buses run from Gilimanuk to Bali’s capital Denpasar, or you can take a taxi or get your hotel to arrange a transfer from Gilimanuk to anywhere on Bali.  See the video guide here.

It’s safe, comfortable, cheap and easy to arrange.  The train needs a reservation, but you can buy the ferry ticket at the ferry terminal and just find a bus or taxi on arrival at Gilimanuk.  With great scenery on the train ride through eastern Java, this is the best way to travel from cities on Java to anywhere on Bali.

Surabaya & Probolinggo ► Bali

  • Step 1, take a comfortable air-conditioned train from Surabaya or Probolinggo to Ketapang, see the timetable above.

    There used to be a convenient daytime express with Eksekutif class called the Mutiara Timur (Eastern Pearl) leaving Surabaya Gubeng at 09:00 and arriving Ketapang at 15:25, but this did not resume post-pandemic, so currently you’ll need to use one of the two ekonomi-class trains shown in the timetable above – but these are fine.  There’s great scenery as the train curves around the rice fields and jungles of eastern Java.

    You can also travel time-effectively overnight, leaving Surabaya Gubeng at 22:44 arriving Ketapang 04:40, or at leaving Surabaya Gubeng at 23:35 and arriving at Ketapang at 05:45.  Both those trains have Eksekutif & Ekonomi class, but they only have reclining seats, no sleepers.

    Buy tickets online at www.tiket.com following the advice here or buy at the station. 

  • Step 2, take a ferry from Ketapang to Gilimanuk…

    Ketapang railway station is just 350m from Ketapang ferry terminal, a 5 minute walk, see walking map. 

    Walk out of Ketapang station exit and look for the main station approach road leading directly away from the station.  It’s across the forecourt in front of you, a little to the right.  Walk 150m down this station approach road to the busy main road, turn right and walk another 150m, and Ketapang ferry terminal is on your left on the other side of the road.

    The passenger entrance is marked Passengers.  Walk down the narrow retail passage, and buy a prepaid smartcard where you see these sold, then add a ferry ticket to it at the little ticket office at the end.  You must fill in a little paper slip for each passenger with name, age, sex, passport number and address and take them to the ticket office to buy ferry tickets.  You then use the smartcard ticket to go through one of the two turnstiles, sliding your luggage underneath.  You can then catch the next available ferry.

    Ferries sail from Ketapang to Gilimanuk every 15 minutes, 24 hours a day, the crossing takes about 45 minutes.  The fare is 9,650 rupiah for an adult foot passenger, less than $1.

    The main ferry operator website is www.indonesiaferry.co.id, in Indonesian only.  You usually board the ferry via the vehicle ramp onto the semi-open car deck, you climb stairs to the passenger deck above where you’ll find shaded seats, toilets, and a kiosk selling drinks and snacks.  If you can’t get your bags up the stairs, leave them on the car deck against the side.

    If you arrive at Ketapang by train at 12:30 you can easily be on a ferry leaving at 13:15 arriving at Gilimanuk on Bali at 15:00 Bali time – remember that Bali is one hour ahead of Java.

    If you arrive at Ketapang by train at 20:05 you can be on a ferry leaving at 21:00 and arriving in Gilimanuk on Bali at 22:45 Bali time.

  • Step 3, take a bus from Gilimanuk to Denpasar or use a taxi…

    Gilimanuk Bus Terminal is right outside the ferry terminal, just walk out of the ferry terminal exit onto the road and turn right.

    Local buses link the ferry terminal at Gilimanuk with Denpasar’s Mengwi bus terminal, distance 125 km or 78 miles, journey time 3 hours, fare around 30,000 to 50,000 rupiah (£2-£4 or $3-$6).  You’ll need to change at Denpasar Mengwi bus terminal for local buses to places like Ubud, Bali’s cultural and tourist capital – there are no direct buses from Gilimanuk. Long-distances buses were moved from the former Ubung bus station to the new Mengwi bus terminal in 2017.  Feedback appreciated.

    Alternatively you can take a taxi direct to your destination on Bali, which will be a lot quicker but more expensive.  You’re looking at 750,000 rupiah ($57) for a private taxi from Gilimanuk to Ubud, for example.  Or your hotel on Bali may also be able to arrange a transfer from Gilimanuk.  Feedback appreciated.

Bali ► Probolinggo & Surabaya

  • Step 1, travel to Gilimanuk on the western tip of Bali by bus, taxi or private transfer.

    Regular local buses link Denpasar’s Mengwi bus terminal with Gilimanuk bus terminal, 125km, journey time about 3½ hours, fare around Rp 30,000 to Rp 50,000 (£2-£4 or $3-$6).  Long-distances buses were moved from the former Ubung bus station to the new Mengwi bus terminal in 2017.  In Gilimanuk the bus terminal is right next to the ferry terminal.  Starting in somewhere like Ubud, you’ll need to take a local bus to Denpasar first.

    A taxi direct from Ubud to Gilimanuk will take about 3½ hours and cost around Rp 750,000 ($57), not too bad if there are two or three of you to share the cost.  Your hotel may be able to arrange a private transfer.

  • Step 2, take a ferry from Gilimanuk on Bali to Ketapang on Java, ferries sail every 15 minutes 24/7, crossing time 45 minutes.

    The ticket office is at the passenger entrance to Gilimanuk ferry terminal.  You must fill in a little paper slip for each passenger with name, age, sex, passport number and address and present them at the ticket office to buy ferry tickets.  You then use the smartcard ticket to go through one of the two turnstiles, sliding your luggage underneath.  You walk up the stairs and over the walkway to the next available ferry.  Staff will tell you which that is.

    The fare is 9,650 rupiah for an adult foot passenger, less than $1.  The ferry operator website is www.indonesiaferry.co.id, in Indonesian only.

    You usually board the ferry via the vehicle ramp onto the semi-open car deck, you climb stairs to the passenger deck above where you’ll find shaded seats, toilets, and a kiosk selling drinks and snacks.  If you can’t get your bags up the stairs, leave them on the car deck against the side.

    On arrival at Ketapang, walk off the ferry and out of the ferry terminal following the exit signs.  Turn right onto the main road and walk 150m.  Turn left and walk another 150m up the station approach road to Ketapang station (formerly known as Banyuwangi Baru), there’s a blue and white sign to the station at the road junction.  See walking map.

    Remember that Java time is 1 hour behind Bali time.

  • Step 3, take a train from Ketapang to Probolinggo or Surabaya Gubeng, see the train timetable above.

    Depending where you’re starting on Bali, if you left early enough you might make the 11:30 Wijayakusuma to Probolinggo & Surabaya, arriving late afternoon.  Otherwise there’s the mid-afternoon Ekonomi class Probowangi arriving in Surabaya in the evening, see the timetable above.

    Alternatively, you might prefer to travel from your starting point on Bali to Gilimanuk and across on the ferry to Ketapang on day 1 at your leisure, stay overnight in Ketapang then take a train to Surabaya next morning.  You’ll find more places to stay in Ketapang than in Gilimanuk, although the choice is still limited.  For something reasonably nice try the Ketapang Indah Hotel, 1.7 miles south of the ferry terminal, with rooms set in gardens, a good swimming pool, free WiFi, bar & restaurant.

    There’s also a night train leaving Ketapang at 19:30 but it arrives at Surabaya Gubeng at silly o’clock.  But it’s an option, if you’ve a hotel room waiitng!

    Book the train online at www.tiket.com following the advice here, buy at the station in Ketapang, or buy at an Indomaret convenience store including many on Bali.

    In Denpasar, the Indonesian railway website lists the ‘Rama Duta Bali’ agency as selling train tickets, at Jl.Diponogoro Pertokoan Gontong Biru, No.150 Blok B No.04, Denpasar, Bali.

Java to Bali in pictures…

Train arrived at Banyuwangi station   Banyuwangi Baru station

1.  The train arrives at Ketapang station, renamed from Banyuwangi Baru in 2020.  Walk forward to find the station exit (keluar).

Ketapang ferry terminal   Ketapang ferry ticket office

2.  Walk 150m directly away from Ketapang station down the station approach road, turn right onto the main road and walk another 150m.  The ferry terminal is on your left on the far side of the road (pictured above left), see it on Google Maps.  Or you can take a taxi or cycle rickshaw.  Walk into the passengers entrance (marked by the blue arrow above), along the retail tunnel to the ticket office (pictured above right)…

Ferry to Bali boarding at Ketapang   Seats on the ferry

3.  Ferries sail every 15 minutes around the clock.  Board the next ferry via the car ramp and go upstairs into the passenger area.  There’s a kiosk selling water, drinks, biscuits & crisps.

Crossing by ferry from Java to Bali

4,  Bali ahead!  The crossing takes just 45 minutes…

Ferry arrived at Gilimanuk on Bali

5.  Arrival at Gilimanuk on Bali…  The bus terminal is right next to the ferry terminal for buses to Denpasar.  See more photos of this journey.

Watch the video…

Back to top

Java to Sumatra

by train & ferry…