Indonesia is a country of more than seventeen thousand islands stretched across a distance wider than the United States, and the first thing that catches out new visitors is how much of the trip is spent getting from one place to another. A map makes Java, Bali and Lombok look like neighbours. In practice a hop that looks like a thumb-width on the screen can mean a ninety-minute fast boat, a two-hour crawl through traffic to the harbour and a sunburnt wait on a pier. I have lost half a day to this more than once, and I would like you to lose none.
This guide replaces an older, thinner page. It covers every way of moving around the country that a normal visitor will actually use: domestic flights, trains, fast boats and slower ferries, ride-hailing apps, metered taxis, private drivers, rented scooters and the humble minibus. For each one I say what it is good for, what it costs roughly, and where it lets you down. Where we sell something that solves a real problem, such as an airport pickup at midnight or a fast boat to Nusa Penida, I link to it and show the live starting price from our product page. Everything else is plain advice from someone who has been sweaty, late and occasionally lost.
A quick note on numbers. Prices marked with the S$ sign are live starting prices pulled from our own pages and change with date and season. Rupiah figures are rough guides that drift with the exchange rate and the fuel price, so treat them as a sanity check rather than a promise. Always look at the product page for the exact date you want.
How big is Indonesia, really?
Start with scale, because every other decision flows from it. Jakarta to Bali is about the same distance as London to Rome, and Jakarta to Papua is further than London to New York. Visitors who plan "a week in Indonesia" and try to see Jakarta, Yogyakarta, Bali, Komodo and Lombok will spend most of that week in airports. The better plan is to pick one or two regions and move between them well.
The table below gives realistic door-to-door times for the journeys people ask about most. Door-to-door matters more than the number printed on the ticket, because the flight itself is often the shortest part.
| Journey | Main option | Realistic door to door |
|---|---|---|
| Jakarta to Bali | Flight, about 2 h 10 min in the air | 5 to 6 hours including airport time |
| Jakarta to Yogyakarta | Flight or day train | 4 to 5 hours by air, 8 hours by train |
| Jakarta to Bandung | High-speed train or car | About 2 hours by train, 3 to 5 hours by road |
| Bali (Sanur) to Nusa Penida | Fast boat | Around 2 hours including the queue |
| Bali to Gili Trawangan | Fast boat | 4 to 5 hours from Ubud |
| Bali to Labuan Bajo (Komodo) | Flight, about 1 h 15 min | 3 to 4 hours |
| Surabaya to Mount Bromo | Car or minibus | 3 to 4 hours |
Now the practical rule I give friends: move between regions by air, move within a region by car with a driver or by ride-hailing, and use boats only for the island hops they were built for.
Before you move anywhere: paperwork and connectivity
Two small things decide whether your transport goes smoothly. The first is entry paperwork. Rules for visas on arrival, the electronic version and the tourist levy charged for Bali have all been adjusted in recent years, and the details change, so check the current position on our Indonesia visa requirements page before you book flights. If an airline or an embassy asks for proof of onward travel, our flight reservation service provides a reservation for visa applications. It is a reservation, not an issued ticket, and it does not promise that any visa will be approved.
The second is mobile data. Almost every useful transport tool in Indonesia lives in an app: Gojek, Grab, Bluebird, the train booking app, the fast boat confirmation. A phone that cannot get online at Soekarno-Hatta at eleven at night is a real problem. Airport Wi-Fi works until it does not.
The Indonesia unlimited 4G/5G data eSIM starts from S$12.44 and is the sort of thing I install on the flight so that the first thing I do after landing is book a ride rather than hunt for a kiosk. Make sure your phone is unlocked before you rely on any eSIM, and keep your home SIM active for bank texts if you need them.
Domestic flights: the backbone of the country
For distances beyond a few hundred kilometres, flying is the only sensible option. The network is dense. Garuda Indonesia is the full-service flag carrier. Citilink, which is part of the Garuda group, Lion Air, Batik Air, Super Air Jet and AirAsia Indonesia run most of the budget and mid-range routes. Jakarta has two airports. Soekarno-Hatta (CGK) handles nearly everything, and Halim Perdanakusuma handles a smaller number of flights. Bali's Ngurah Rai (DPS) is the second busiest gateway for visitors, followed by Surabaya, Yogyakarta, Medan and Makassar.
A few habits make flying here far less stressful. Book direct with the airline or a reputable platform and keep the confirmation email. Be at the airport earlier than you think, especially at Soekarno-Hatta, where the road in can swallow an hour without warning. Weigh your bags, because budget airlines enforce limits tightly and you will pay at the counter. And never schedule an international departure on the same day as a domestic leg, whatever the connection promises on paper. I once watched a family miss a long-haul flight by twenty minutes because a domestic delay ate their buffer.
| Airline type | Typical fit | Watch out for |
|---|---|---|
| Full service (Garuda) | Longer routes, meals and bags included | Costs more, especially close to the date |
| Mid-range (Batik Air, Citilink) | Good balance on main trunk routes | Bag allowance varies by fare |
| Budget (Lion Air, Super Air Jet, AirAsia) | Cheap fares, many island routes | Add-ons, tight baggage, delays |
| Small propeller carriers | Remote islands and short hops | Weather cancellations, small bags only |
Getting out of the airport
This is where most first-time visitors lose money and patience. Arrival halls in both Jakarta and Bali are crowded with people offering rides, and the price you hear first is rarely the price you should pay. You have three clean options: a pre-booked transfer, an official airport taxi from the counter, or a ride-hailing app from the designated pickup area. Each has a place.
Bali: Ngurah Rai airport to your hotel
The airport sits at the narrow neck of the southern peninsula, so the distance to Kuta, Jimbaran and Seminyak is short but the traffic can be punishing in the late afternoon. Ubud and Uluwatu are a different matter, usually an hour or more either side of the peak. Ride-hailing pickup at Ngurah Rai is restricted in places because of local transport associations, which is why many visitors prefer to have a driver waiting with a name sign.
For the closest beach resorts, the Ngurah Rai Airport to Kuta transfer starts from S$19.09 and is a short, predictable run. The same operator pattern applies to Seminyak-adjacent Canggu, which sits further north and takes noticeably longer when the roads fill up. For that side of the island, the airport to Canggu transfer starts from S$33.31.
Heading south for the cliff-top beaches, the airport to Uluwatu transfer starts from S$26.00. Uluwatu roads are narrow and winding after the main highway ends, and I have seen taxis refuse the last stretch to smaller villas. Booking a named driver who has your villa address in advance avoids that conversation.
| From Ngurah Rai to | Off-peak drive | Bad traffic |
|---|---|---|
| Kuta, Legian | 15 to 25 minutes | 45 minutes |
| Jimbaran | 15 to 25 minutes | 40 minutes |
| Seminyak, Canggu | 40 to 60 minutes | 90 minutes or more |
| Uluwatu, Pecatu | 40 to 55 minutes | 80 minutes |
| Ubud | 60 to 75 minutes | 2 hours |
Jakarta: Soekarno-Hatta is far from everything
Soekarno-Hatta sits about twenty kilometres west of the city centre, and a trip into town takes anything from forty minutes to two hours. There is an airport rail link that runs to central stations, which is a good option if your hotel is near one and you are travelling light. For a family with bags, a door-to-door car is far less hassle.
Our Jakarta Airport (CGK) transfer to downtown starts from S$49.98. If you are headed straight out of the capital, the Jakarta Airport to Bandung transfer service starts from S$78.22 and saves you from crossing the city to a train station with luggage.
Trains on Java: the part nobody expects to love
Java has the best railway in Southeast Asia that most visitors never use. The state operator, KAI, runs comfortable intercity services across the island, and the scenery between Yogyakarta, Solo and Surabaya is better than anything the highway offers. Economy, executive and sleeper-style classes exist. Executive is the one I recommend: reclining seats, working air conditioning, a manageable price and no sweat on your shirt.
The headline route is Jakarta to Bandung on the high-speed line, which opened in late 2023 and covers the distance in around forty-five minutes of running time. The stations sit outside both city centres, so add feeder travel at each end. Even with that, it beats the old road journey, which on a bad weekend could run past five hours. For Jakarta to Yogyakarta, an overnight or day train takes seven to eight hours and costs far less than a flight once you add airport transfers.
Book train tickets through the official KAI app or an authorised partner. Tickets are named and checked against an ID at the gate, so keep your passport handy. On weekends and around Idul Fitri, the main holiday, seats sell out weeks ahead.
| Java route | Train time | Compared with flying |
|---|---|---|
| Jakarta to Bandung (high-speed) | About 45 minutes | No flight worth taking |
| Jakarta to Yogyakarta | 7 to 8 hours | Cheaper, scenic, much slower |
| Yogyakarta to Surabaya | 4 to 5 hours | Train wins on comfort |
| Surabaya to Banyuwangi | 6 to 7 hours | Gateway to Ijen and the Bali ferry |
Getting around Jakarta
Jakarta rewards patience and punishes confidence. The city has an MRT line that runs on a clean north to south axis, a light rail network, a commuter line and the TransJakarta bus rapid transit system with dedicated lanes. These are a joy when your route lines up with them. The catch is that the first and last kilometre often does not, and the heat and humidity between the station and the meeting are real.
For most visitors the practical answer is a combination: use the MRT for the long north to south trips and ride-hailing for everything else. Avoid driving yourself. Traffic rules here are followed with creative interpretation, and the cost of a minor scrape is out of proportion to the saving.
If you have a heavy day of meetings or sightseeing across several districts, a car with a driver for the day is easier than juggling apps in the rain. The Jakarta private car charter starts from S$56.06, and the driver waits while you work. For a longer outing beyond the city, the full-day rental from Jakarta toward Central Java starts from S$72.34; it suits groups who want flexibility on the road.
Ride-hailing and taxis: use the apps, but know their quirks
Gojek and Grab are used by almost everyone in the country, and they quote a fare upfront, which is the thing that makes them useful. You see the price before you get in, the driver sees where you are going, and you leave a record in case something goes wrong. Both apps offer motorbike rides (ojek), cars and sometimes larger vehicles. A motorbike ride is the fastest way through a jam, but it is also the one I would skip if you have luggage or it is raining.
Bluebird is the taxi brand to trust. Its cabs are metered, the drivers wear uniforms, and the company has an app of its own. Other taxi brands exist and vary in quality, so if you hail one off the street, insist on the meter. If a driver says it is broken, wait for another cab. The phrase "argo, please" is understood everywhere.
| Option | Best for | Downside |
|---|---|---|
| Gojek or Grab car | City trips with a known price | Surge pricing; pickup restrictions in parts of Bali |
| App motorbike (ojek) | Short, solo trips through traffic | No luggage space; exposed in rain |
| Bluebird taxi | Metered, trusted street hail | Fewer cars in smaller towns |
| Pre-booked transfer | Airports, ports, late arrivals | Less flexible if flights change |
| Car with driver | Full days, families, groups | Costs more than a one-off ride |
In Bali, a long-running argument between local transport groups and the apps means some villages and airport areas ask app drivers to wait outside the zone. If your driver asks you to walk a few hundred metres, it is usually this, not a scam. Stay calm, message them through the app, and they will find you.
Hiring a private driver in Bali
If I could give a Bali first-timer only one piece of transport advice, it would be this: hire a driver for the days that matter. Public transport on the island is sparse, taxis are unevenly available outside the south, and the most beautiful places are spread across the interior and the north. A driver turns a six-hour logistical puzzle into a day where you simply tell someone where you want to go next.
On Nusa Penida the case is even stronger. The roads on the island are steep and rough in parts, and the famous viewpoints are far apart. The Nusa Penida private car charter with driver starts from S$40.00. I would book it before you arrive rather than negotiating at the port, where prices climb with the crowd.
A good driver also acts as an informal guide, will suggest a lunch stop that is not a tourist trap, and will wait at the temple while you take your time. Agree the duration, the route and what is included in writing before you set off, and tip if the day went well. A tip of a few percent of the fare is appreciated, and an extra for a driver who waited through a long sunset is gracious.
Fast boats: Bali's gateway to the islands
The sea is the road in this part of Indonesia. Fast boats run from Sanur, Padang Bai and Serangan to Nusa Penida, Nusa Lembongan, the Gili Islands and Lombok. They are small, quick and often crowded, and they are the thing that turns a daydream of a day trip into a reality. They are also where most of the real transport complaints come from: missed boats, late departures, wet queues and a pier that leaves you waist-deep in the surf for boarding.
The honest assessment: fast boats are good, but not for everyone. If you are prone to seasickness, take tablets an hour before departure and sit near the middle at the back. The sea between Bali and Nusa Penida can be choppy, especially from June through September when the swells come up. Check the weather forecast and listen to your operator, because they cancel departures when conditions are unsafe, and you want them to.
For Nusa Penida, the Sanur to Nusa Penida fast boat by Ocean Speed starts from S$8.26. Arrive at the harbour at least forty-five minutes before departure, carry a light bag, wear shoes you can take off easily and pack a dry change of clothes in a waterproof pouch. The Sanur departure point is convenient for anyone staying on the east coast, and our Sanur Harbour transfer starts from S$20.76 if you do not want to coordinate the drive yourself.
If you are heading to the Gili Islands or Lombok, boats leave from Padang Bai or Serangan on the east side. That is a long drive from Seminyak or Ubud, and the morning departures mean a very early start. The Padang Bai transfer by BBE Trip starts from S$40.54, which is useful when you must arrive at the pier for a seven in the morning sailing.
For the crossing itself, the fast boat transfer from Bali to Gili and Lombok by Wanderlust Cruise starts from S$41.92, and the D'camel fast boat ticket from Padang Bai or Serangan starts from S$13.54. Read the departure instructions carefully: the pier, check-in time and what luggage the boat accepts all vary by operator. Always check which boat you are on, because a name on a shared ticket can be a different brand on the water.
| Boat route | Typical crossing | Good to know |
|---|---|---|
| Sanur to Nusa Penida | 30 to 45 minutes | Beach boarding, swell in dry season |
| Sanur to Nusa Lembongan | 30 to 40 minutes | Popular with day trippers |
| Padang Bai to Gili Trawangan | 1.5 to 2 hours | Early departures, rougher open water |
| Serangan to Gili Air | About 2 hours | Quieter than the main Gili pier |
| Padang Bai to Lembar (public ferry) | 4 to 5 hours | Cheap, slow, takes vehicles |
Slower ferries and the long way round
Public ferries are the cheap option, and some are the only option. Between Java and Bali, ferries cross the Bali Strait from Ketapang to Gilimanuk in around an hour, running through the day and night. Bali to Lombok on the state ferry takes four to five hours and carries trucks, buses and scooters. The Pelni company runs larger passenger ships linking the major islands over days rather than hours.
I recommend these for travellers with time and a taste for atmosphere, not for anyone with a tight itinerary. They are a bit rough, the facilities vary and schedules can slip. If you have a fixed flight home, do not plan around them.
Renting a scooter: freedom with a long list of conditions
In Bali, Lombok and parts of Java, hiring a scooter is the cheapest way to move independently, and some visitors adore it. I have to be blunt here, because the injury statistics for tourists are grim. Traffic drives on the left, the roads are crowded and unpredictable, and a minor fall in shorts and flip-flops can mean weeks of recovery.
If you decide to ride, treat it as a serious decision. You need a valid licence for motorbikes from your home country along with an international driving permit that covers motorcycles, and police do check, especially in the south of Bali. Travel insurance often excludes accidents on a bike when you are not properly licensed, so read your policy. Wear a helmet that fits, avoid riding at night, never ride after drinking, and stay off the busy roads between Canggu and Seminyak in the late afternoon. If you have never ridden a scooter before, Bali is not the place to learn.
| Scooter checklist | Why it matters |
|---|---|
| Motorbike licence plus international permit | Checked at police stops; insurance may rely on it |
| Photograph the bike before you leave the shop | Avoids disputes over scratches at return |
| Proper helmet and closed shoes | The most common injuries are to heads and feet |
| Check brakes, tyres and lights | Rental bikes vary widely in condition |
| Avoid rain and darkness | Wet roads and unlit lanes cause most crashes |
Minibuses, shuttles and local buses
Tourist shuttles connect the major visitor hubs in Bali and between Java's tourist towns. They are cheap, they run to a schedule and they pick you up from your accommodation in some cases. They are also slower than a private car because they collect and drop passengers along the way, and the seats are tighter than you might like. For solo travellers on a budget they are a good balance. For families with children, a private car is worth the extra.
Local buses and angkot minibuses are best left to people who speak some Indonesian and are not in a rush. The prices are low, the routes are unwritten and the driver decides when the journey ends. A little of this goes a long way, and a lot of it can be great fun if you have a morning to spare.
Sample routes: three trips that work
The best way to see how the pieces fit is to look at real itineraries. Here are three I would happily book for a friend.
One: a classic week in Bali
Fly into Ngurah Rai and take a pre-arranged transfer to your first base, which saves you from the arrivals-hall hustle. Spend your first two nights somewhere easy such as Sanur or Jimbaran while you adjust to the heat. Move inland to Ubud for three nights, hiring a driver for a full day of rice terraces, temples and waterfalls. Finish at the coast again, with a day trip by fast boat to Nusa Penida and a driver on the island for the viewpoints. Use ride-hailing apps in the south, and avoid scooters unless you are already an experienced rider.
Two: Java by train and car
Fly into Jakarta and take a car straight to Bandung for a night or two in the cooler hills. Take the train east to Yogyakarta, a gentle full-day journey that shows you the countryside. Use ride-hailing and becak for the old city, and hire a driver for a day at Borobudur and Prambanan. Finish with a train toward Surabaya, a car to Bromo and a flight out from Surabaya or Bali. This route uses almost every mode of transport and avoids most of the domestic flights.
Three: Bali and the Gilis, with time to breathe
Spend four nights in Bali at a pace you enjoy, then take an early transfer to Padang Bai for the fast boat to Gili Trawangan or Gili Air. The Gilis have no motorised vehicles, so you will walk, cycle or take a horse-drawn cart. After three nights, take the boat back or continue to Lombok. Plan the return generously, because a missed fast boat the day before a flight home is the single most common way to ruin the last day of a holiday.
Whichever shape your trip takes, build in one spare half-day around every boat and every international flight. In my experience the journeys that go wrong are almost never the ones that were hard to plan; they are the ones that left no slack. A delayed ferry, a flat tyre on the road to the harbour or a thunderstorm that grounds small planes will cost you an afternoon, and an afternoon is cheap when you planned for it and expensive when you did not. Keep your hotel confirmations, boat tickets and emergency contacts saved offline on your phone, and tell your driver the evening before if the next day has an early start.
What it costs: a rough budget
Transport in Indonesia is cheap by Western standards and uneven by local ones. A ride-hailing trip across a city may cost the equivalent of a coffee, a domestic flight can cost less than a taxi at home if you book ahead, and a private driver for a day costs less than a hotel night in many places. The expensive parts are the ones where convenience is scarce: late arrivals, remote islands, last-minute boats and airports with a fixed taxi price.
A rough way to budget is to set aside a modest daily amount for local transport and then add the big items separately: flights between regions, boat crossings and any private driver days. If you are travelling as a couple or a family, the car-with-driver option is often cheaper per head than three separate taxi rides, and it is usually less stressful than anything else.
| Item | Rough guide | Tip |
|---|---|---|
| Short city ride-hailing trip | IDR 20,000 to 60,000 | Fares rise in rain and rush hour |
| Domestic flight, advance fare | Varies widely by route and season | Book early for holidays |
| Private driver, full day in Bali | Check live product page | Confirm hours and fuel included |
| Fast boat, Bali to the islands | Check live product page | Prices differ by operator and class |
| Airport transfer | Check live product page | Fixed price avoids bargaining |
Safety, scams and common-sense habits
Indonesia is a friendly country and most transport problems are mundane: delays, heat, a driver who got lost. A handful of habits keep you out of trouble. Agree prices before you start unless the meter is running or the app has quoted a fare. Keep small notes handy, because drivers rarely have change for large ones. Use the official taxi counters at airports and avoid anyone who approaches you inside the terminal. Share your live location with someone at home when you ride alone at night. And keep your bag on your lap, not the seat next to you, when you are in traffic with an open window.
On boats, listen to the briefing, locate the life jackets and decline to travel in conditions that look wrong. Operators have a duty to cancel unsafe crossings, and the best ones do. On roads, wear your seatbelt in the back as well as the front, which is the single most useful habit you can build.
Frequently asked questions
What is the easiest way to get around Bali? A private driver for longer days and ride-hailing apps for short trips in the south. Public transport is limited, and a scooter is only for experienced riders.
Is it safe to use Gojek and Grab? Yes, and they are the standard choice for locals and visitors alike. Check the licence plate against the app, ride in the back seat and use the in-app messages to meet your driver.
Do I need a visa to enter Indonesia? That depends on your passport and the length of stay, and the rules change. See our Indonesia visa requirements page for the current position before you book.
Can I book a flight reservation for a visa application? Yes, our flight reservation service provides a reservation for that purpose. It is not an issued ticket.
Are fast boats safe? Reputable operators run well-maintained boats and cancel in bad weather. Choose an established brand, avoid overloaded boats and check conditions in rough months.
What is the best way to get from the airport to Ubud? A pre-booked driver. The journey takes about an hour and a quarter off-peak, and a fixed price saves you from haggling after a long flight.
Is the Jakarta to Bandung high-speed train worth it? For most travellers, yes. It is quick, comfortable and avoids the notorious road traffic, though the stations sit outside both centres.
Final thoughts
The simplest summary I can give is this. Treat Indonesia as a set of regions rather than a single destination. Fly between them, take trains where they exist, and let drivers and boats do the rest. Pre-book the awkward moments, such as the midnight arrival or the dawn fast boat, and leave the middle of the day loose. The people are patient, the scenery is generous and the logistics, once you stop fighting them, become part of the story you tell afterwards.
Before you go, check the entry rules on our visa page, sort out your data, and write down the name of your first hotel in Indonesian script or on the map offline. Everything else tends to sort itself out with a smile and a bit of flexibility. Safe travels.