Getting around Java might seem a little intimidating at first, but it’s actually simpler than you’d expect.
The island is well connected by trains with clear schedules, long-distance buses, and easy domestic flights. In cities, ride-hailing apps (Gojek and Grab) make life even easier. And when public transport can’t get you everywhere you want to go, hiring a private car with a driver is an affordable and stress-free solution.
So, how do you master transportation in Java like a pro? Here’s everything you need to know about the different options available on the island — plus my best insider tips to make your trip smooth, fun, and full of unforgettable moments.
Flying within Java
If you’re in a hurry to cross Java, a domestic flight might seem like the obvious choice. Flights are short, usually under an hour, but in reality, flying isn’t always as quick or smooth as it looks.

You’ll need to factor in the time it takes to get to the airport, clear security, wait at the gate, and deal with possible delays or cancellations. Traffic alone in Jakarta or Yogyakarta can easily add an extra hour or two to your journey. In the end, once you count the transfers, waiting, and flight time, traveling from Yogyakarta to Jakarta often takes just as long as a scenic train ride.
Backindo Tip: Book morning flights whenever possible — they’re less prone to delays. And if you have a tight onward connection, give yourself plenty of buffer time.
The easiest way to book is through Traveloka or tiket.com. Many airline websites don’t work well from abroad or reject foreign credit cards, so these apps are a safer and more convenient option.

Some airlines are notorious for cancelling flights with little notice, so if you have a connecting international flight, make sure to leave yourself plenty of buffer time. Whenever possible, try to book with Garuda Indonesia — it’s generally more reliable and offers better service than most local budget carriers.
Curious how to avoid delays and master flying within Indonesia? Check out our Guide to Domestic Flights in Indonesia.
Trains
If you ask me, there’s no better way to experience Java than from the window of a train. The island’s railway network connects all major cities — it’s clean, modern, and (almost shockingly) punctual. Once you settle into your seat and the train glides past endless rice paddies, smoky volcanoes, and sleepy villages, you’ll see why train travel here is something special.
For maximum comfort, choose Executive Class — large reclining seats, strong air-conditioning, plenty of legroom, and even power outlets to keep your phone charged as the world rolls by. Friendly staff push food carts up and down the aisle with snacks and hot meals.

Booking tickets is easy, but because the official KAI Access app often doesn’t accept foreign cards, it’s best to use Traveloka. Tickets, especially for popular routes like Jakarta–Yogyakarta, sell out fast, so book early — sales open 45 or 30 days before departure.
Prices are fair: an Executive Class seat from Jakarta to Yogyakarta costs between IDR 350,000 and 650,000 (around $22–42), with the journey taking about 7 to 8 hours. Luxury panoramic trains, offering larger windows and more upscale service, are available too but come at a higher price.
And if you’re short on time, the new Whoosh high-speed train between Jakarta and Bandung covers the distance in just 45 minutes for about $10–16.
Trains are my favorite way to cover long distances in Java. Learn more in How to Travel by Train in Indonesia.
Long-Distance Buses
Traveling by bus in Java can be anything from a smooth, well-organized experience to a loud, unpredictable rollercoaster. It all depends on which company you choose — and how lucky you get.
For longer trips between cities like Jakarta, Yogyakarta, or Surabaya, your best bet is to go with reputable operators such as Rosalia Indah, Sinar Jaya, Harapan Jaya, or Pahala Kencana. Their Executive and Super Executive coaches are generally clean, comfortable, and air-conditioned, with reclining seats and even a small snack included.
Most journeys include a stop at a roadside restaurant, where you can stretch your legs and grab a meal — sometimes covered by your ticket, sometimes not. Just make sure to follow the crowd, and always take a photo of your bus (and the license plate) before getting off. Buses sometimes get moved or re-parked while you eat, and it’s no fun wandering around a huge parking lot trying to remember which one was yours.
Tickets usually cost between IDR 250,000 and 400,000 ($16–26), and the trip can take anywhere from 10 to 14 hours depending on the traffic. You can book through Traveloka or RedBus, or buy in person at terminals like Kampung Rambutan (Jakarta) or Giwangan (Yogyakarta). Be aware: in places like Jakarta, buses only stop at official terminals, but in smaller towns, drivers will often let you off along the way if you ask nicely.
Now, if you end up on a cheaper or older bus — and sometimes even when you don’t — things can feel very different. Some of these rides are an adventure in themselves. The AC might not work, the upholstery might be peeling, and the speakers might be pumping dangdut music at full blast. Drivers on these routes can also be… intense. They often drive long stretches without taking breaks, overtake at every chance, and some are fond of honking non-stop the entire way. If you’re a light sleeper, traveling with small children, or prone to motion sickness, this type of bus is best avoided.
Onboard toilets are common on the bigger coaches, but they’re usually just for short bathroom stops — and by the end of the journey, they can get pretty unpleasant. Use the facilities at meal stops whenever possible.
For a more restful night, consider Sleeper Buses with fully reclining seats or private pods. Operators like Rosalia Indah, Sinar Jaya, and Juragan 99 Trans offer these services on routes like Jakarta–Surabaya and Jakarta–Yogyakarta. Tickets usually range between IDR 400,000 and 650,000 ($25–42), and the upgrade in comfort is well worth it.
Bemo and Angkot
In smaller towns and suburban areas, you’ll often spot little vans weaving through traffic — that’s your typical bemo in East Java, or angkot in West and Central Java. These shared minibuses follow vague routes, have no real schedules, and pick people up and drop them off wherever needed. They’re wildly affordable — usually just IDR 5,000–10,000 (about $0.30–0.70) — and are part of daily life for locals running errands, heading to school, or just getting across town.
There are no official stops. You simply wave one down from the roadside, climb in, and shout “kiri” (left) or tap the ceiling when you want to get off. You pay the driver in cash as you exit.

It’s a fun, ultra-local experience, but not the easiest to figure out for newcomers. Routes aren’t posted, vehicles may not have numbers, and signage is minimal at best. Ask a local or your accommodation for help — they’ll usually know which color angkot you need and where to catch it. Don’t expect comfort: there’s no AC, seating is tight, and the soundtrack is often loud pop music or dangdut.
One of the most common routes where travelers encounter bemo is the trip from Probolinggo to Cemoro Lawang, the gateway to Mount Bromo. These bemos don’t run on a schedule — they depart only when full, or if passengers agree to split the cost and leave early. Waiting can take a while, especially outside peak hours, but that’s just part of the journey.
Renting Motorbikes in Java
While Southeast Asia is often associated with motorbike adventures, Java doesn’t offer the same one-way rental culture as Vietnam. Here, motorbikes are typically rented and returned to the same location. Finding anything beyond a basic scooter can be challenging, especially outside tourist hotspots.

Traffic in Java is intense, and riding without a valid license is risky. Many travelers have tried it, but once you’re aware of the potential dangers and the fact that insurance won’t cover you without an international driving permit (IDP), it’s worth reconsidering. Some European countries issue combined car and motorbike licenses, but these often aren’t recognized abroad. Indonesia accepts both the 1949 and 1968 IDP formats, so obtaining either should suffice.
In tourist areas, daily scooter rentals range from IDR 60,000 to 100,000 ($4–6), and rentals are readily available at hostels or local shops. However, in less touristy regions, options are limited.
Renting a Car: With or Without a Driver
If you’re looking for freedom and flexibility, renting a car in Java can be a great option — especially if you want to explore places off the main tourist trail. But unlike in some countries, renting a car here often comes with a choice: with a driver, or self-drive.
Hiring a car with a driver is by far the easiest and most stress-free option. Prices usually start around IDR 600,000–1,000,000 per day ($38–63), but the final cost depends on a few factors: the size and type of car, how many people (and suitcases) you need to fit, and how far you plan to travel. A small sedan for short day trips will cost less than a bigger MPV or minivan for cross-island adventures.
With more travelers visiting Java, scams are becoming more common. Stay safe with our guide How to Hire a Reliable Guide or Driver in Java, Indonesia or if you need reliable divers in Java just drop us an email at hello@backindo.com.
Keep in mind that fuel is sometimes not included in the base price — sometimes a set distance is covered, and anything beyond that means extra charges for petrol and tolls. Always clarify these details before booking to avoid surprises later.
Most drivers also act as informal guides, suggesting scenic stops, hidden gems, and good local restaurants along the way. It’s a wonderfully relaxed way to travel, especially when you’re navigating Java’s unpredictable roads and traffic.

Driving in Java
Self-driving is possible, but it’s much less common — and comes with a few catches. First, traffic in Java is intense: motorbikes darting everywhere, unpredictable drivers, and roads that often seem to make up their own rules. Second, you’ll need a valid International Driving Permit (IDP) — either the 1949 or 1968 version — otherwise your insurance won’t cover you in case of an accident.
Even if you’re ready to brave the roads, renting without a driver has limitations. In many cities like Yogyakarta, rental companies will restrict self-drive rentals to certain local areas. You might not be allowed to take the car long-distance — for example, you probably won’t be able to drive yourself all the way to Bromo or across provinces. Plus, cars must usually be returned to the same rental location, which makes one-way trips tricky to organize.
Final Thoughts: Mix and Match
Getting around Java is easier than it first seems — and the best way often depends on how many people you’re traveling with and where you’re headed. Trains are scenic, buses are cheap and local, ride-hailing apps are perfect for cities, and a private car with a driver gives you freedom when you need it.
Mix and match depending on your trip. Sometimes a slow train beats a rushed flight, and sometimes having your own driver makes all the difference.
Continue exploring:
- Pangandaran Guide: The Hidden Natural Beauty of West Java
- Thousand Islands Guide: Discover Jakarta’s Hidden Gems
- Surabaya Travel Guide: Your Gateway to East Java’s Wonders
- Mount Anak Krakatau: A Travel Guide for Exploring Underwater and Hiking
- Bandung: Ultimate Travel Guide to the Capital of West Java