Java Intercity Bus Guide: Routes, Operators, Terminals & Booking Tips

· 8 min read Practical
Intercity bus at Giwangan terminal, Yogyakarta, Java, Indonesia

Buses are the backbone of Java travel - cheaper than trains on most routes, more flexible in departure times, and the only practical option on corridors not served by KAI rail. The network is dense: from Jakarta’s eastern terminal you can reach Surabaya overnight, hop between Yogyakarta and Solo in under 90 minutes, or travel down to Malang without setting foot in a train station. Understanding which operators to trust, which terminals to use, and how to book makes the difference between a straightforward journey and a frustrating one.

Major Operators

Java’s intercity bus market divides roughly into premium and economy tiers. Premium operators run fixed-schedule coaches with assigned seating, air conditioning, on-board toilets, and regular vehicle maintenance. Economy operators fill when full, may change routes at short notice, and vary significantly in vehicle condition.

Rosalia Indah is one of Java’s most respected premium operators, headquartered in Solo. Their core corridors cover Jakarta–Solo–Surabaya and Jakarta–Yogyakarta–Malang, with several departure times daily in each direction. Coaches are double-decker on the longer routes, with reclining seats, blankets, and a basic meal service. Fares run IDR 200,000–350,000 for the Jakarta–Solo corridor. Book via their website at rosaliaindah.co.id or through Traveloka.

PO Haryanto operates high-frequency premium services on the Jakarta–Central Java corridor, particularly between Jakarta and Purwokerto, Cilacap, and connections into Yogyakarta. Their double-decker sleeper buses on the overnight Jakarta–Yogyakarta run are popular with travellers who want to save a night’s accommodation. Fares for Jakarta–Yogyakarta run IDR 175,000–280,000. Book through traveloka.com or at Pulo Gebang terminal in East Jakarta.

Sinar Jaya covers Jakarta–Bandung and Jakarta–Semarang at the mid-range price point, with multiple daily departures and a reputation for reliable punctuality on the Bandung route. Their Jakarta–Bandung express services use the toll road and take around 3.5 hours from Kampung Rambutan. Fares start at IDR 60,000. Tickets are available at terminal counters and through the Traveloka app.

Other operators worth knowing: PO Eka runs Solo–Surabaya and Yogyakarta–Surabaya services at competitive economy prices; PO Mira covers the Surabaya–East Java network reliably; Pahala Kencana operates premium Jakarta–Surabaya overnight services alongside Rosalia Indah.

Search and compare departures across all operators via Omio - it aggregates bus and train options side by side, which is useful when deciding whether the bus or the overnight train makes more sense for a given journey.

Terminals: Where to Board and Arrive

Jakarta has two main intercity bus terminals and knowing which serves your destination saves significant wasted time.

Kampung Rambutan (South Jakarta) handles buses to West Java - Bandung, Bogor, Sukabumi - and most Central Java routes to Yogyakarta, Solo, and beyond. It connects to the Jakarta MRT and KRL commuter rail at Lebak Bulus (short taxi) or Pasar Minggu (nearby). Most Sinar Jaya services depart from here.

Pulo Gebang (East Jakarta) is a newer, purpose-built terminal that handles most long-distance routes to Semarang, Solo, Surabaya, and Malang. Rosalia Indah and PO Haryanto base many of their Jakarta departures here. It is served by TransJakarta bus corridor 11B from Kampung Melayu - allow at least 45 minutes from central Jakarta.

Outside Jakarta, the key terminals are:

  • Leuwipanjang (Bandung) - handles all intercity departures west and east; located in South Bandung, reachable by angkot or GrabCar.
  • Giwangan (Yogyakarta) - Yogyakarta’s main terminal, about 5 km south of Malioboro; most operators use this as their official stop even if they also serve Jombor terminal (northwest) as a secondary pick-up.
  • Tirtonadi (Solo) - a well-organised terminal in the northwest of the city, with departure bays marked by operator.
  • Bungurasih / Purabaya (Surabaya) - Surabaya’s enormous southern terminal handles all intercity arrivals and departures. It is one of the busiest in Southeast Asia on Lebaran weekends. Connects to the city by city bus (damri) and ride-hail.
  • Arjosari (Malang) - the main terminal in North Malang serving routes from Surabaya, Banyuwangi, and connections east. A second terminal, Landungsari in West Malang, handles routes west toward Blitar and Kediri.

Key Routes: Journey Times and Approximate Fares

Fares quoted are per person, economy to mid-range; premium sleeper buses command a 30–50% premium. Prices as of 2026.

RouteJourney timeFare (IDR)
Jakarta → Bandung3–4 hours55,000–100,000
Jakarta → Yogyakarta8–10 hours150,000–280,000
Jakarta → Solo9–11 hours160,000–300,000
Jakarta → Surabaya12–15 hours175,000–350,000
Bandung → Yogyakarta7–9 hours130,000–200,000
Yogyakarta → Solo1–1.5 hours20,000–45,000
Yogyakarta → Surabaya5–7 hours100,000–175,000
Surabaya → Malang2–3 hours35,000–80,000

Journey times on Java roads vary widely. The expressway network has improved significantly - the Trans-Java Toll Road now links Anyer (West Java) to Banyuwangi (East Java) - but urban congestion around Jakarta and Surabaya can add an hour in either direction. Buses departing weekday evenings after 20:00 clear Jakarta traffic most reliably.

Night Bus vs Day Bus

The night bus is standard practice on Java’s longer routes and makes practical sense: a Jakarta–Yogyakarta night departure at 21:00 arrives in Yogyakarta around 06:00–07:00, saving a night’s accommodation cost. Premium operators run double-decker sleeper coaches with seats that recline to near-flat and personal blankets included - the overnight journey is comfortable for most travellers.

Day buses work better for medium routes like Yogyakarta–Surabaya (5–6 hours) where the view across the volcanic plains is part of the experience, and you arrive in good time to find accommodation before dark. For Yogyakarta–Solo (under 90 minutes), day buses are the obvious choice - the route barely justifies the engine warming up.

What to consider before booking the night bus:

  • Departure time and estimated arrival: operators rarely guarantee arrival times, and late arrivals are common after long weekends
  • Seat type: business class seats recline to around 150 degrees; premium sleeper seats recline to 170 degrees - worth the IDR 50,000 premium on a 10-hour journey
  • On-board toilet: essential for overnight routes; confirm before booking
  • Driver rest stops: reputable operators stop once or twice at roadside rest areas for 20–30 minutes; use this to stretch and buy snacks

Booking: Apps, Online, and Walk-Up

Traveloka is the standard booking platform for Indonesian intercity buses. Search by origin and destination, filter by departure time and operator, and pay by debit card, credit card, or virtual account. E-tickets display a QR code and passenger name - print or screenshot them before boarding, as connectivity at some terminals is poor.

RedBus lists a slightly different mix of operators and sometimes shows cheaper fares on economy routes. It is worth checking both platforms on popular routes before committing.

Direct operator booking: Rosalia Indah and PO Haryanto both have functional apps and websites with better seat maps than third-party platforms. For premium seats on a specific service, booking direct gives clearest confirmation.

Walk-up tickets are available at all major terminals. Most departure bays have a printed schedule on a board. Walk-up works reliably for off-peak travel (Tuesday–Thursday departures) and short routes like Yogyakarta–Solo. For Friday evenings, Sundays, and the two weeks surrounding Lebaran and school holidays, book at least two to three days ahead.

Luggage and On-Board Practicalities

Large bags go in the undercarriage hold - generally unlocked, so padlock your bag or use a luggage strap as a deterrent. Keep valuables (passports, money, electronics) in your personal bag which stays with you in the cabin. Most operators allow one hold bag and one cabin bag per passenger; no formal weight limit is enforced, but oversized items attract a discretionary IDR 20,000–50,000 supplement on some operators.

Bring: water (stops are infrequent on some services), a neck pillow for overnight routes, a jacket (AC runs cold), and small notes for rest-area food purchases. Most buses play Indonesian pop or dangdut music at moderate volume; earplugs help on overnight journeys.

On arrival, wait for the engine to stop and the door to open before unloading - drivers occasionally proceed directly to a secondary terminal stop rather than the main one. If you are unsure of the final stop, confirm with the ticket agent at departure which terminus the bus uses.

Planning Around the Trans-Java Toll Road

The completed Trans-Java Toll Road significantly changed journey times on the Jakarta–Surabaya corridor. Buses that use the full expressway shave one to three hours off journeys compared to the old national road, but some economy operators still use the partial or non-toll route to save on road charges - you pay less for the ticket but spend more time on the road. When comparing fares on Traveloka, check whether the listing notes “jalan tol” (toll road) - it is usually faster even at slightly higher cost.

For multi-city Java travel, combining bus and train often gives better value than either mode alone. The train (see our Java train guide) covers Jakarta–Yogyakarta–Surabaya reliably and in greater comfort at comparable prices; buses fill the gaps on routes the rail network doesn’t serve well - Bandung to Yogyakarta, Surabaya to Malang, and the many mid-sized towns between them.

Where to Stay in Java: Your base depends on which city anchors your Java itinerary - Yogyakarta, Solo, and Malang are the most popular choices for travellers using the bus network. Search hotels in Java on Booking.com to compare options across major bus hubs.

Plan Your Trip

✈️ Book your flights to Indonesia 🛡️ Get travel insurance 📱 Stay connected with an eSIM 🚗 Rent a car

Book an experience

Top tours to book now

Already planning? These are the most popular experiences for this destination.

Frequently Asked Questions

How do I book intercity buses in Java?
Book via Traveloka, RedBus, or individual operator apps. Traveloka lists the widest range of operators and departure times across all major Java routes. For premium operators like Rosalia Indah and PO Haryanto, booking directly through their websites or apps gives the best seat selection. Walk-up tickets at terminals are available for most routes, but popular Friday evening and Sunday departures fill quickly - book at least a day ahead.
Is the night bus safe in Java?
Night buses on established Java routes are generally safe. Reputable operators including Rosalia Indah and PO Haryanto run well-maintained coaches with professional drivers on split-shift rosters. Choose operators with named drivers and safety certifications rather than the cheapest ticket at the terminal. Keep valuables on your person rather than in overhead storage, and choose a seat in the middle of the bus away from the front axle for the smoothest ride.
How long does the Jakarta to Yogyakarta bus take?
Approximately 8 to 10 hours depending on traffic and the route taken. Buses departing Jakarta's Kampung Rambutan terminal in the evening tend to encounter less daytime traffic around Cirebon and through the central highlands. Night buses typically arrive in Yogyakarta in the early morning. The toll road expansion has improved journey reliability, but long weekends and the Lebaran exodus can add several hours.
What is the cheapest way to get from Surabaya to Malang by bus?
Regular economy buses from Surabaya's Bungurasih terminal to Arjosari terminal in Malang cost IDR 35,000–50,000 and take around 2.5 hours on a clear day. Several departures run each hour throughout the day. Minibuses and shared travel vans (travel antar kota) cover the same route in slightly less time for IDR 50,000–80,000. Book via Traveloka or buy at the terminal counter.
Copied!
Copied!