Getting Around Indonesia: Transport Options, Real Costs & Tips for Indian Travellers

✅ Last verified on-the-ground: 2026-07-22

Indonesia transport is not one thing. It is 17,000 islands stitched together by ferries, a thin slice of rail on Java, cheap domestic flights, and a Gojek driver who will find you in any alley in Jakarta at 2 a.m. For related planning, see our guide on Sea Backpacking Hub.

The transport system looks chaotic from the outside, but once you understand the three layers (intercity flights and trains, ride-hailing inside cities, and ferries between islands) you can move across the country for less than what an Uber costs you in Bengaluru.

Subodh’s Pro Tip: Get a working SIM card or eSIM the moment you land. Almost every booking (Grab, Gojek, KAI trains, ferries, even some bus operators) requires an Indonesian phone number for OTP. No data, no transport.

Quick Answers

WhatAnswerPrice (INR)
Cheapest way between Java cities?Train (KA Lokal/ekonomi) or overnight bus₹404-₹1,883 (~75,000-350,000 IDR or ~$4.19-$19.55)
Cheapest way island-to-island?Slow ferry (ASDP)₹269-₹807 (~50,000-150,000 IDR or ~$2.79-$8.38)
Cheapest city transport?Gojek or Grab bike (ojek)₹38-₹108 (~7,000-20,000 IDR or ~$0.39-$1.12)
Cheapest airport transfer from DPS Bali?Grab/Gojek to Kuta/Seminyak₹807-₹1,614 (~150,000-300,000 IDR or ~$8.38-$16.75)
Need a phone number for app OTPs?Yes, local SIM or eSIM is mandatory for Grab, Gojek, KAI(see SIM section)

Current rate at time of writing: 1 INR ≈ 185 IDR. Use this to sanity-check rupee conversions for any price not listed here.

The Three Layers of Indonesian Transport

Think of Indonesian transport as three layers stacked on top of each other, and pick the right one for each leg:

  1. Intercity and inter-island (flights, trains, long-distance buses, ferries) for legs over 200 km
  2. In-city (Gojek, Grab, KRL commuter train, TransJakarta BRT, taxi) for getting around once you arrive
  3. Last mile (ojek, angkot minibus, rented scooter) for short hops and reach

Most Indians overpay because they try to use layer 3 for layer 1 trips, or layer 1 for layer 2 trips. A Jakarta to Yogyakarta train is cheap and scenic; a Jakarta to Yogyakarta Grab is impossible. A Gojek across central Jakarta is cheap and fast; a Gojek from Jakarta to Bandung is a 3-hour nightmare you should never book.

Advertisement

Layer 1: Intercity and Inter-Island Transport

Indonesia is spread across 5,000 km of ocean. If you are skipping more than two islands, fly. Domestic flights on low-cost carriers (Citilink, Lion Air, AirAsia Indonesia) routinely sell Jakarta to Bali, Jakarta to Yogyakarta, Surabaya to Lombok, and Bali to Labuan Bajo for ₹2,152-₹6,456 (~400,000-1,200,000 IDR or ~$22.34-$67.01) one-way if you book 2 to 3 weeks ahead. Garuda Indonesia (the flag carrier) is 2x to 3x the price but includes 20 kg checked baggage and a meal, which matters if you are carrying dive gear.

Baggage is the trap. Lion Air and Citilink base fares often look like ₹1,883 (~350,000 IDR or ~$19.55), but a 20 kg checked bag adds another ₹807-₹1,345 (~150,000-250,000 IDR or ~$8.38-$13.96) at the counter. AirAsia Indonesia’s “Premium Flex” bundle includes 20 kg baggage and seat selection for a fair all-in price. Always check the final all-in price (fare + baggage + seat + payment fee) before comparing.

Safety Alert: Indonesian low-cost carriers have a solid safety record since 2007, but weather delays on routes like Denpasar to Labuan Bajo are common in wet season (Nov-Mar). Build a buffer day into Komodo or Raja Ampat trips.

Book on the airline’s official site or app. Third-party aggregators sometimes show lower headline prices that exclude the mandatory baggage and convenience fees.

Trains on Java and Sumatra

Java has the only useful rail network for tourists, and it is genuinely good. The flagship route is Jakarta to Yogyakarta (around 7 to 8 hours), with departures from Gambir station. The Jakarta to Yogyakarta train guide covers classes and schedules in detail. There are also reliable Jakarta to Surabaya, Jakarta to Bandung, and Jakarta to Cirebon routes.

For a first-time visitor, the Java train system is one of the few Indonesian transport experiences that beats the equivalent Indian Railways option. Trains leave on time. Stations are clean. Staff speak some English at the executive class level. The Argo Lawu (Jakarta to Solo) at night is a particular highlight for travellers who like sleeping through Java.

Train classes on Java, from cheapest to fanciest:

  • Ekonomi: bench seats, no AC, cheapest, fine for short hops like Jakarta to Bogor (₹81 (~15,000 IDR or ~$0.84)). Not great for 7-hour journeys.
  • Ekonomi Plus / Bisnis: reclining seats, AC, similar to Indian 3AC. Worth the upgrade for any trip over 3 hours.
  • Eksekutif: wide reclining seats, meals, similar to Indian 1AC. Jakarta to Yogyakarta runs about ₹1,883-₹2,959 (~350,000-550,000 IDR or ~$19.55-$30.71) in this class.

For train classes and seat pitch in detail, the Indonesia train classes guide is a good companion read.

Sumatra has a usable rail line from Medan to Padang via Bukit Lawang access, but it is slow and tourist services are limited. If you are heading to Bukit Lawang for orangutans, a tourist minibus from Medan is faster.

Tickets sell out in peak season (July, August, Eid, year-end). Book through the official KAI app (requires Indonesian phone number) or via 12go. The KAI app is the cheapest; 12go adds a ₹269-₹430 (~50,000-80,000 IDR or ~$2.79-$4.47) service fee but accepts international cards and works without an Indonesian number.

Long-Distance Buses

Buses are the cheapest way to cross Java, and the right call for budget travellers. Executive class (eksekutif) buses on the Java Trans route have reclining seats, AC, a USB port per seat, and an onboard toilet. Jakarta to Yogyakarta overnight executive buses run ₹1,345-₹2,152 (~250,000-400,000 IDR or ~$13.96-$22.34) and take 10 to 12 hours.

Operators to trust: Sinar Jaya, Pahala Kencana, and Gunung Harta. Avoid anything described as “patas” without AC on a long route. The cheapest ekonomi buses are slow, stop often, and are hot.

For Sumatra and Sulawesi, tourist minibuses (travel minibus services) are usually better than public buses. Book through your hostel or a known operator like Lombok Tour or Hotel Kura Kura (varies by island).

Ferries Between Islands

Ferries are the unsung hero of Indonesia travel. The state operator ASDP runs a network of large car ferries between the main islands at low cost. Key routes:

  • Bali to Gili Trawangan / Gili Air / Lombok: ₹807-₹1,345 (~150,000-250,000 IDR or ~$8.38-$13.96) per person, 1.5 to 4 hours depending on the operator. The fast boat (Eka Jaya, BlueWater) is faster but costlier; the slow ASDP ferry is the cheapest and most spacious.
  • Java (Surabaya) to Bali (Banyuwangi): this is the cross-island ferry between Java and Bali, around ₹269-₹404 (~50,000-75,000 IDR or ~$2.79-$4.19) for a foot passenger. Combined with a train from Jakarta to Surabaya, this is the cheapest overland route from Jakarta to Bali.
  • Sumatra to Java (Merak-Bakauheni): the main crossing, runs 24/7. About ₹134 (~25,000 IDR or ~$1.40) for a foot passenger.

Subodh’s Pro Tip: The Bali to Gili fast boats have a justified reputation for choppy crossings in wet season. If you get seasick, take the slow ferry from Padangbai to Lombok (5 hours, calm) and a quick boat from there to the Gilis.

You can book ferry tickets on 12go or buy at the port. Port ticket counters often give the best price for slow ferries. Fast boats are usually cheaper booked online.

For Bali specifically, the Bali airport to city centre guide covers the Bali to Gili connection in more detail.

Layer 2: In-City Transport

Ride-Hailing: Gojek and Grab

Gojek (Indonesian) and Grab (Singaporean, operating across SEA) are the two dominant apps. Both work in Jakarta, Bali, Bandung, Surabaya, Yogyakarta, Medan, and most other major cities. Both let you choose between:

  • Bike (ojek): ₹38-₹108 (~7,000-20,000 IDR or ~$0.39-$1.12) for short hops across a city. This is the workhorse of Indonesian urban transport. A 5 km trip that would be ₹323 (~60,000 IDR or ~$3.35) in a car is ₹65 (~12,000 IDR or ~$0.67) on a bike. The driver wears a green (Gojek) or pink (Grab) helmet and gives you one too. Drivers are rated and the route is GPS-tracked.
  • Car (regular): ₹134-₹430 (~25,000-80,000 IDR or ~$1.40-$4.47) for short to medium hops. Useful when you have luggage or it is raining.
  • CarPlus / XL: larger vehicles, around 1.5x the car price, good for groups of 3 to 4.

Both apps need an Indonesian phone number to register. Set up your SIM or eSIM at the airport first (see SIM section below), then download the app.

Safety Alert: Always wear the helmet on bike rides. Indonesian police run checkpoints in tourist areas (Kuta, Ubud, central Jakarta) and will fine riders without helmets. The fine is small (around ₹269 (~50,000 IDR or ~$2.79)) but the negotiation time costs more than the ride.

Cash payment is fine on both apps. Indonesian credit card penetration is low, so most drivers prefer cash and the apps handle cash trips cleanly. You see the price before you book, and the driver cannot overcharge. CarPlus drivers in tourist areas occasionally try to insist on “toll fee” or “parking fee” additions in cash. The app shows all tolls in the fare already; politely decline extras.

Public Transit: KRL, MRT, TransJakarta, LRT

Jakarta has the densest public transit network outside of Bali’s taxi culture:

  • KRL Commuterline: electric trains connecting Jakarta with Bogor, Depok, Tangerang, Bekasi. ₹27 (~5,000 IDR or ~$0.28) flat fare regardless of distance, which is absurdly cheap. The Jakarta airport train route article explains how to use it to reach Soekarno-Hatta from central Jakarta in about 45 minutes for ₹54 (~10,000 IDR or ~$0.56).
  • MRT Jakarta: the north-south line from Lebak Bulus to Bundaran HI, opened 2019. Around ₹46-₹75 (~8,500-14,000 IDR or ~$0.47-$0.78). Clean, fast, AC, signage in English. Best option for the Sudirman-Thamrin corridor.
  • TransJakarta BRT: bus rapid transit, dedicated lanes, ₹19 (~3,500 IDR or ~$0.20) flat fare. Covers 13 corridors. Useful but slow in peak hours. Air-conditioned and cheap.
  • LRT Jakarta: small line connecting Kelapa Gading to Velodrome. Useful only if you happen to be in that area.
  • Airport Rail Link (KA Bandara): from Sudirman Baru station to Soekarno-Hatta airport. ₹377 (~70,000 IDR or ~$3.91) one-way, 30 minutes. Beats a Grab in peak traffic (which can take 90 minutes).

Yogyakarta has a small KRL-style commuter line (KRL Solo Yogya) plus becak (pedicab) and andong (horse cart) in the tourist core.

Surabaya, Bandung, and Medan have city buses of varying quality. Gojek or Grab is usually easier.

Taxis

Blue Bird is the only taxi group worth trusting in Indonesia. Their drivers use meters and the company has a reputation for honest service. You can hail a Blue Bird, book via the Blue Bird app, or grab one at the airport taxi stand. Other taxi brands (especially at airports) often refuse meters, offer “fixed” tourist prices, or have unmetered drivers.

A 5 km taxi in Jakarta is around ₹134-₹215 (~25,000-40,000 IDR or ~$1.40-$2.23) with the meter. About 2x the Gojek bike price but 4x more comfortable if you have luggage.

Layer 3: Last-Mile and Rentals

Scooter and Motorbike Rental

Scooters are the single best way to get around Bali, Lombok, the Gili islands, and parts of Java. Daily rental runs ₹377-₹538 (~70,000-100,000 IDR or ~$3.91-$5.58) for a basic Honda Scoopy or similar 110cc scooter, around ₹430-₹807 (~80,000-150,000 IDR or ~$4.47-$8.38) for a more powerful 125 to 150cc bike. Weekly rates drop to ₹2,690-₹4,304 (~500,000-800,000 IDR or ~$27.92-$44.68).

The full licensing and rental playbook for Bali is in the Bali motorbike rental cost guide. The short version: an Indian car licence is NOT valid for scooters in Indonesia. You need an International Driving Permit (IDP) with motorcycle endorsement, obtained from the Regional Transport Authority (RTO) in India before you fly. Riding without one means any accident voids your travel insurance, and any police checkpoint turns into a ₹1,345-₹2,690 (~250,000-500,000 IDR or ~$13.96-$27.92) fine or a day at the station.

For Lombok and the Gilis, the same rules apply and the police checkpoint density is lower.

Ojek and Becak

Ojek (motorbike taxi) and becak (cycle rickshaw) fill the gaps where ride-hailing doesn’t go. In Yogyakarta’s kampung areas, in Ubud’s back streets, and in any small town on Java or Sumatra, a becak driver will offer you a ride. Negotiate the price first. A short becak hop is around ₹54-₹108 (~10,000-20,000 IDR or ~$0.56-$1.12). Yogyakarta has the highest becak density in the country and it is part of the experience there.

Advertisement

How to Get from the Airport: Jakarta and Bali

These are the two airports every Indian traveller lands at first.

Jakarta Soekarno-Hatta (CGK)

The cheapest and fastest option is the Airport Rail Link (KA Bandara) from Sudirman Baru station, around ₹377 (~70,000 IDR or ~$3.91) and 30 minutes. Tickets can be bought at the station or via the KAI app. The Jakarta airport to city centre cost comparison breaks down every option including Grab (₹807-₹1,345 (~150,000-250,000 IDR or ~$8.38-$13.96), 45 to 90 min depending on traffic), Blue Bird taxi (₹1,345-₹2,152 (~250,000-400,000 IDR or ~$13.96-$22.34), fixed airport rate), and the Damri airport bus (₹215-₹377 (~40,000-70,000 IDR or ~$2.23-$3.91)).

The airport has its own train station inside, so you don’t need to leave the airport to catch it. Follow signs for “Kereta Bandara” or “Airport Train.”

Bali Ngurah Rai (DPS)

The Bali airport to Kuta/Seminyak range sits at ₹807-₹1,614 (~150,000-300,000 IDR or ~$8.38-$16.75) depending on time of day and traffic. Grab and Gojek both pick up at the airport (despite occasional taxi-counter resistance). Fixed-price airport taxis from the official counter are ₹1,076-₹1,883 (~200,000-350,000 IDR or ~$11.17-$19.55). The full breakdown is in the Bali DPS airport guide and the Bali airport to city guide.

Getting Connected

You need a working Indonesian SIM or eSIM before you can use any ride-hailing app or train booking site. Both require an Indonesian phone number for OTP.

Physical SIM options:

  • Telkomsel Simpati: the largest network, best coverage, especially in rural areas and on ferry routes. Tourist SIM at the airport counter, around ₹807-₹1,345 (~150,000-250,000 IDR or ~$8.38-$13.96) for 30 days with 30 to 50 GB.
  • XL Axiata and Indosat: cheaper, similar data packs, slightly weaker rural coverage.

Buy at the airport official counter for easiest activation. They’ll scan your passport and you’ll be online in 5 minutes.

eSIM option: If you’d rather not swap physical SIMs, Get Nomad eSIM offers Indonesian data packages that activate over the air, no passport scan required, and work alongside your Indian SIM so you keep receiving OTPs from home.

Where to Eat in Jakarta (Layover or Day Trip)

If you are transiting through Jakarta and have a half-day, these spots cover Indonesian classics and Indian comfort food.

Local Indonesian Food

  • SEMAJA Menteng (rating 4.8): cozy spot for Indonesian comfort food. Try the nasi uduk or gado-gado if available.
  • SATOO (rating 4.6): casual, broad menu mixing Indonesian and international. Good for groups with mixed tastes.
  • Kaum Jakarta (rating 4.6): Indonesian dishes with a modern presentation, including some less common regional recipes from Sumatra and Sulawesi.
  • 1928 (rating 4.7): a historic setting serving Indonesian classics. Order the rendang and the sop buntut (oxtail soup).
  • Plataran Menteng (rating 4.7): traditional Indonesian cuisine in a garden setting. Worth the trip for the atmosphere alone.

Indian and Veg-Friendly

  • Ganesha Ek Sanskriti Kemang Jakarta (rating 4.4): upscale North Indian, around ₹1,883 (~350,000 IDR or ~$19.55) per person. The chicken tikka gets the most consistent praise from Indian visitors.
  • The Royal Kitchen Signature (rating 4.9): North Indian with a focus on the lamb dish Raan Sikandar. ₹807-₹1,614 (~150,000-300,000 IDR or ~$8.38-$16.75) per person.
  • Ganesha Ek Sanskriti Kemayoran (rating 4.8): casual Indian, ₹538-₹1,345 (~100,000-250,000 IDR or ~$5.58-$13.96) per person. Butter chicken is the safe order.

Subodh’s Pro Tip: Vegetarian options exist at Indonesian warungs (small family restaurants) but the variety is limited and you need to ask specifically about “sayur” (vegetables) and “tanpa daging” (without meat). If you are strict-veg, the Indian restaurants above are your most reliable bet.

Advertisement

Common Transit Mistakes Indians Make

Mistake 1: Renting a Scooter Without an IDP

What people do: rent a scooter in Canggu or Ubud on their Indian car licence, told by the rental shop it is “fine.”

What happens: an accident means your travel insurance pays nothing. A police checkpoint means a ₹2,690 (~500,000 IDR or ~$27.92) “fine” or a visit to the station to settle it on the spot.

How to avoid it: get an IDP with motorcycle endorsement from your RTO in India before flying. The Bali motorbike rental guide walks through the exact process.

Mistake 2: Booking a Grab for an Intercity Trip

What people do: open the app in Jakarta, type “Bandung” into the destination, see the price (around ₹1,883 (~350,000 IDR or ~$19.55)), and book.

What happens: the trip takes 3 to 4 hours through mountain traffic. The driver cancels halfway. Or the driver agrees but expects you to pay tolls and food stops on top.

How to avoid it: Grab and Gojek are intra-city only for practical purposes. Use the train (Jakarta-Bandung fast train: 1 hour, ₹1,345-₹1,883 (~250,000-350,000 IDR or ~$13.96-$19.55)) or a tourist bus for intercity.

Mistake 3: Paying Airport Taxi “Fixed Prices” Without Checking the Meter

What people do: walk out of a regional airport, get approached by a “taxi” driver, agree on a fixed price of ₹1,614 (~300,000 IDR or ~$16.75).

What happens: you paid 3x what a Blue Bird meter would have shown (around ₹538 (~100,000 IDR or ~$5.58) for the same trip). Or worse, the driver is unlicensed and not insured.

How to avoid it: use the Blue Bird app or a ride-hailing app at the airport. If you must use an airport taxi, use the official airport taxi counter (fixed price but regulated), never a freelancer in the arrivals hall.

Mistake 4: Skipping the eSIM or SIM Setup at the Airport

What people do: plan to “figure out the SIM later” and head to the hotel first.

What happens: no Indonesian number, can’t register Gojek or Grab, can’t book the KAI train app, can’t check ferry times, stuck calling hotels from an Indian number on roaming (around 100 IDR/min).

How to avoid it: stop at the Telkomsel/XL/Indosat counter on the way out of arrivals, or activate an eSIM before boarding your flight to Jakarta.

Mistake 5: Booking the Fast Boat to Gili in Wet Season Without Backup

What people do: book a single fast boat from Bali to Gili Trawangan for an early morning departure.

What happens: in wet season (Nov-Mar), 2 m swells cancel crossings. Travellers lose the boat fare and scramble for alternatives.

How to avoid it: keep the day flexible, have a 1-day buffer in Lombok or Bali before the connection, and keep the slow ASDP ferry as a backup option.

FAQ

Is Gojek cheaper than Grab in Indonesia?

They are roughly the same price. In most cities the difference is within ₹5-₹16 (~1,000-3,000 IDR or ~$0.06-$0.17) per trip. Gojek has a denser driver network in secondary cities and Jakarta. Grab has more reliable service in Bali and tourist-heavy areas. Have both apps installed.

Can I use Uber in Indonesia?

No. Uber sold its Indonesian operation to Grab in 2018. Gojek and Grab are the only ride-hailing options in 2026, plus the legacy Blue Bird taxi app.

How much is the airport train in Jakarta?

The KA Bandara (Airport Rail Link) costs ₹377 (~70,000 IDR or ~$3.91) one-way from Sudirman Baru station to Soekarno-Hatta. Travel time is around 30 minutes. See the Jakarta airport train ticket price guide for details on where to board.

Is it safe to travel by overnight bus in Java?

Executive class buses on Java are safe and well-maintained. They have AC, USB ports, and rest stops. Economy class overnight buses are less comfortable and sometimes overcrowded. Stick to executive class (eksekutif) on any trip over 5 hours.

What is the cheapest way from Jakarta to Bali?

The cheapest overland route is train from Jakarta to Surabaya (executive class, around ₹2,421 (~450,000 IDR or ~$25.13), 9 to 10 hours), then the Banyuwangi to Bali ferry (around ₹269 (~50,000 IDR or ~$2.79)), then a local bus from Gilimanuk to Denpasar (around ₹404 (~75,000 IDR or ~$4.19)). Total around ₹3,094 (~575,000 IDR or ~$32.11) and 14 to 16 hours. A low-cost flight (Citilink, AirAsia) is usually ₹3,228-₹4,842 (~600,000-900,000 IDR or ~$33.51-$50.26) and takes 2 hours door-to-door. Most travellers choose the flight unless they specifically want the overland experience.

Do I need cash for transport in Indonesia?

Yes. While the ride-hailing apps handle cash trips cleanly, and Blue Bird takes cards, most toll booths, ferry ports, regional airports, and small-town transport only accept cash Indonesian rupiah. Carry ₹1,076-₹2,690 (~200,000-500,000 IDR or ~$11.17-$27.92) in small notes for tolls and change.

Subodh’s Take

Indonesia rewards travellers who plan the layers correctly: flight or train for the long legs, Gojek for inside cities, ferry for between islands, scooter for the last mile. The trick is not to mix them up. Spend your SIM card money first, your Grab account second, and your train tickets third. The rest falls into place.

Travel Insurance

For longer-distance intercity routes (Java to Sumatra, Java to Kalimantan, Bali to Lombok ferries), Find rides on 12go has the most complete inventory of buses, trains, and ferries across the archipelago.