Jakarta to Bali is Indonesia\’s busiest domestic route — connecting the capital with the country\’s most famous island. The flight takes just over 1.5 hours; the overnight train + ferry is a classic overland adventure for those who want to see Java. This guide covers all options with current prices.
✈️ [Travelpayouts Kiwi widget: Flights CGK/HLP → DPS Jakarta to Bali]
Option 1: Fly Jakarta to Bali (Recommended)
Lion Air, Garuda Indonesia, Citilink, Batik Air, and AirAsia all fly from Jakarta (Soekarno-Hatta, CGK or Halim Perdanakusuma, HLP) to Bali Ngurah Rai Airport (DPS) — approximately 1 hour 40 minutes, fares from ~$20–60 USD. Departures almost every hour throughout the day. From Bali Airport, Grab or Blue Bird taxi to Kuta (~15 minutes, ~80,000–100,000 IDR), Seminyak (~20 minutes), or Ubud (~1.5 hours, ~350,000–450,000 IDR). The standard option for virtually all travelers.
✈️ [Travelpayouts Kiwi widget: Flights CGK → DPS cheapest fares]
Option 2: Train Jakarta to Banyuwangi + Ferry to Bali
The overland route: overnight train from Jakarta Gambir to Banyuwangi Baru (~12–14 hours, from ~$15–30 USD in executive class), then a short ferry from Ketapang Port to Gilimanuk on Bali\’s west coast (~45 minutes, ~10,000 IDR), then minibus east to Denpasar or Kuta (~3–4 hours). Total approximately 18–20 hours. A genuine adventure crossing Java — the train passes Mount Bromo and east Javanese countryside. Only worth it for travelers with time and interest in overland travel.
🎟 [Travelpayouts 12Go widget: Jakarta → Banyuwangi overnight train]
ℹ️ Jakarta has two main airports: Soekarno-Hatta (CGK) in the west suburbs handles most flights; Halim Perdanakusuma (HLP) in the east handles some Lion Air and Batik Air routes. Confirm your departure terminal when booking — they\’re about 1.5 hours apart by road.
Quick Comparison
| Option | Time | Cost from | Best for |
|---|---|---|---|
| Flight | ~1h 40min | ~$20 USD | Almost everyone |
| Train + ferry | ~18–20 hours | ~$20 USD | Overland adventure, Java |
Where to Stay in Bali
🏨 [Travelpayouts Hotellook/Agoda widget: Hotels in Seminyak, Bali]
🏨 [Travelpayouts Hotellook/Agoda widget: Hotels in Ubud, Bali]
Related Guides
This post contains affiliate links. When you book through them, we may earn a small commission at no extra cost to you.