Getting Around Indonesia: Transport Guide
Getting around an archipelago of 17,000 islands requires a mix of transport modes. The good news: Indonesia has a functioning domestic aviation network, reliable boat services between major islands, and a surprisingly good train system in Java. The less good news: connections outside the main tourist circuit take planning, and schedules on slower routes are subject to change.
Domestic Flights
For island hops of more than a few hundred kilometres, flying is the only practical option. Indonesia’s domestic airline network is extensive, and budget fares are affordable when booked in advance.
Main airlines:
- Garuda Indonesia: full-service national carrier; most reliable, most expensive
- Citilink: Garuda’s budget subsidiary; solid reliability, good value
- Lion Air and Batik Air: the dominant budget operators; cheap fares, mixed punctuality record — allow buffer time for connections
- TransNusa and Wings Air: smaller propeller-aircraft operators serving regional airports not reached by jets
Typical fares:
- Bali (DPS) to Lombok (LOP): from approximately IDR 200,000–400,000 one-way
- Bali (DPS) to Labuan Bajo (LBJ, Komodo gateway): from approximately IDR 400,000–700,000
- Jakarta (CGK) to Yogyakarta (JOG): from approximately IDR 250,000–500,000
- Bali (DPS) to Manado (MDC, North Sulawesi): from approximately IDR 700,000–1,200,000
Book at least a week ahead for reasonable fares. Use Traveloka or Tiket.com (the dominant Indonesian booking platforms) or Google Flights for a quick overview.
Airport note: Jakarta has two main airports — Soekarno-Hatta (CGK, most international and domestic flights) and the older Halim Perdanakusuma (HLP, used by some Lion Air routes). Check which terminal your flight uses.
Fast Boats Between Islands
Bali to Lombok: Multiple operators run daily fast boats from Padang Bai (east Bali) or Serangan to Teluk Nara or Bangsal on Lombok. Journey time approximately 2 hours. Cost approximately IDR 250,000–450,000 one-way. Book through your accommodation or at the harbour — several reliable operators including Blue Water Express and Gili Getaway.
Bali to Nusa Penida: Boats depart from Sanur harbour (approximately 30–45 minutes, IDR 100,000–150,000 one-way). Several morning departures daily — arrive early in peak season as boats fill.
Bali to Gili Islands: Direct fast boats operate from Padang Bai and Serangan to the Gili Islands (approximately 1.5–2 hours, IDR 350,000–550,000). Confirm sea conditions before booking in wet season — rough swells occasionally cancel services.
Safety note: Fast boat incidents do occur in Indonesia, primarily due to overcrowding, mechanical failure, or rough seas. Choose operators with life jackets on board and avoid boats that are visibly overloaded. If the weather looks severe, wait for the next departure.
Ferries
PELNI state ferries serve the long-haul routes between islands — Sumatra, Java, Kalimantan, Sulawesi, Maluku, Papua, and Nusa Tenggara. Journeys can last 24 hours to several days. Accommodation classes range from economy (shared dormitory space on deck) to small private cabins. Fares are subsidised and extremely cheap — a Surabaya–Makassar crossing in economy class costs approximately IDR 250,000–400,000.
PELNI is the practical option for reaching islands without airports or where flight costs are prohibitive. Schedule and booking: pelni.co.id. Schedules are subject to change — verify before committing to connections.
Short-hop public ferries connect many neighbouring islands and are priced for locals. The Ketapang–Gilimanuk ferry between East Java and Bali (approximately 45 minutes, IDR 10,000–20,000) is one of the busiest. These are cash-pay at the port with no advance booking required.
Trains in Java
Java has Indonesia’s only significant rail network, and it’s good. Kereta Api Indonesia (KAI) runs frequent services between Jakarta, Yogyakarta, Solo, Surabaya, and Malang.
Key routes:
- Jakarta (Gambir) to Yogyakarta: executive class from approximately IDR 350,000, journey time approximately 7–8 hours; business and economy classes cheaper
- Yogyakarta to Surabaya: from approximately IDR 150,000, approximately 4.5 hours
- Jakarta to Surabaya (direct express Argo Bromo Anggrek): approximately IDR 500,000–750,000, approximately 11 hours overnight
Book at kai.id or through the KAI Access app. Executive class (first class equivalent) is reliable and comfortable — worth the premium for long journeys. Trains in Java run on time considerably more often than buses.
Ride-Hailing: Grab and Gojek
Grab and Gojek are both widely available in Bali, Jakarta, Yogyakarta, Surabaya, Bandung, Makassar, and most major Indonesian cities. Both apps offer motorbike taxis (GrabBike, GoRide), cars (GrabCar, GoCar), and food delivery.
Fares are fixed, displayed before you book, and significantly cheaper than negotiated taxis. A 15-minute car ride in Bali typically costs IDR 25,000–50,000.
Note: Grab and Gojek are banned from picking up at Bali airport — you need to walk to the official taxi rank or book an airport transfer. They operate normally everywhere else on the island.
Motorbike Rental
Renting a motorbike (sepeda motor) is the standard way to get around Bali, Lombok, and many smaller islands.
Costs: From approximately IDR 60,000–80,000 per day for a basic 110–125cc automatic scooter in Bali. Prices increase in peak season (July–August, Christmas–New Year).
Requirements: International Driving Permit endorsed for motorbikes (A category) is technically required. In practice, this is rarely checked, but it matters for insurance purposes — confirm your travel insurance policy covers motorbike riding with your licence category.
Before you ride: Photograph existing damage, check brakes and lights, and ensure a helmet is included (legally required). See our safety guide for full precautions.
Tourist Shuttle Buses
Kura-Kura Bus operates a hop-on hop-off network across Bali covering South Bali (Kuta, Seminyak, Canggu, Nusa Dua) and Ubud. Day passes cost approximately IDR 100,000–150,000. Useful for moving between areas without using a motorbike or apps.
Tourist shuttle buses (Perama and similar operators) connect major tourist hubs across Bali and into Java and Lombok. Slower than private transport but inexpensive — Denpasar to Ubud approximately IDR 50,000, Bali to Yogyakarta (bus + ferry + bus) approximately IDR 300,000–400,000.
Private Drivers
Hiring a private driver for a full day is excellent value in Indonesia, especially for covering multiple sights or reaching areas not well served by ride-hailing.
Approximate costs in Bali:
- Half day (4–5 hours): approximately IDR 300,000–400,000
- Full day (8–10 hours): approximately IDR 500,000–700,000
Book through your accommodation, a reputable local agency, or platforms like Klook. Always agree on the itinerary, start time, and total price before departure.
Book an experience
Top tours to book now
Already planning? These are the most popular experiences for this destination.