How to Travel from Yogyakarta to Surabaya 2026: The Ultimate Guide

Wondering how to travel from Yogyakarta to Surabaya? Compare trains, buses, shuttles, flights and private transfers, including travel times, costs and booking tips.(CLICK HERE)

Table of Contents

If you’re working out how to travel from Yogyakarta to Surabaya, you have more options than you’d expect: train, intercity bus, shared shuttle, a connecting flight, a private car with a driver, a rental car, a taxi, or even a scooter. They’re all possible. They just aren’t equally sensible.

Yogyakarta and Surabaya are two of the biggest cities on Java, and this is a very common leg for anyone moving across the island. Each option trades off cost, comfort, convenience and time differently, and the right choice depends on your budget, your luggage, who you’re traveling with and where you’re going next. You don’t have to be a backpacker to use this guide.

I took the bus, because it was the cheapest option I found. It cost me IDR 100,000 and took 8 hours. I’ll tell you how that went, and I’ll cover the other options using current listings so you can compare. All prices below are indicative, taken from public booking listings and travel guides, not guaranteed fares. Rupiah figures are in IDR, and anything quoted in US dollars was converted at 1 USD ≈ 17,930 IDR (mid-market rate on 13 October 2026).

How to Travel from Yogyakarta to Surabaya: A Quick Comparison

Here’s how to travel from Yogyakarta to Surabaya at a glance. Treat the times and prices as planning figures, and check live booking listings before you commit.

TransportApproximate travel timeOne-way costBest for
TrainAbout 4 hours on faster services such as Sancaka and Mutiara Selatan. About 5–5.5 hours on slower economy services such as Sri TanjungEconomy roughly IDR 88,000–290,000 depending on the service. Executive roughly IDR 350,000–390,000. Per personComfort and convenience
Intercity busAbout 6–7 hours in most guides. Mine took 8 hoursAbout IDR 100,000–200,000 per person. I paid IDR 100,000 on a local busBudget travelers
Shared shuttleAround 6 hours in one guide, varies by operatorAbout IDR 200,000–300,000 per person (one platform lists around IDR 199,000 with door-to-door pickup)Smaller groups and flexible pickup
FlightNo direct flight. About 2 h 50 min of flying on a one-stop route, plus layover and airport transfersCheck live fares for your datesTravelers with a suitable connection
Private car with driverAbout 4–4.5 hours, depending on trafficPriced per vehicle: about IDR 4.0 million for up to 5 people on one operator. Another platform lists from about IDR 680,000 per personGroups and door-to-door convenience
Rental carAbout 3.5–4.5 hours, depending on route and trafficRental, fuel and tolls. Get a quoteIndependent travel and flexibility
Taxi or private hireAbout 3.5–4.5 hoursConfirm directly. One aggregator’s rough estimate is IDR 1.8–2.3 million per carTravelers wanting a direct transfer
Motorbike or scooterA long full-day ride on non-toll roadsRental (around IDR 80,000–120,000 per day for a scooter) plus fuelExperienced riders who want the road journey
An infographic comparing transit options between Yogyakarta and Surabaya, detailing estimated costs, travel times, and comfort levels for trains, buses, and private transfers.
A quick breakdown of travel times and estimated fares for your journey across Java.
  • Train, bus and shuttle prices are per person. Private car, rental car and taxi are per vehicle, so divide by the number of travelers.
  • The times above are station-to-station or terminal-to-terminal. Add the time it takes to reach the departure point and to get from the arrival point to your accommodation.
  • Train fares vary a lot by service, class and date. The ranges above combine several services, so the next section breaks them down.
  • Flights aren’t usually a simple direct option between these cities right now. More on that below.

Traveling from Yogyakarta to Surabaya by Train

The main exterior entrance of Yogyakarta Train Station, known as Tugu, with passengers arriving with their luggage.
Yogyakarta Station (Tugu) is the primary departure point for executive trains heading east toward Surabaya.

When travelers ask how to travel from Yogyakarta to Surabaya comfortably, the answer is usually the train. For most people the Yogyakarta to Surabaya train is the best balance of travel time, comfort and convenience. It’s faster than the bus, it doesn’t get stuck in highway traffic, and you can stretch your legs.

There are through trains between Yogyakarta and Surabaya, so you don’t need to change. Several services run the route, and they differ in speed, class, station and price. That’s why you’ll see very different fares quoted for what sounds like the same journey.

Here’s a sample from one booking platform’s listing for a single day (4 July 2026). Times and fares change by date and demand, so use it to understand the spread, not as a current price list.

ServiceClassStationsSample departureDurationFare (IDR, per person)
Sri TanjungEconomyLempuyangan to Surabaya Kota07:00About 5 h 29 min88,000
Mutiara SelatanEconomyYogyakarta to Surabaya Gubeng02:40About 4 h 2 min185,000
SancakaEconomyYogyakarta to Surabaya Gubeng06:45About 4 h 2 min189,000
JayakartaEconomyLempuyangan to Surabaya Gubeng00:40About 5 h 21 min224,000
SancakaExecutiveYogyakarta to Surabaya Gubeng06:45About 4 h 2 min350,000
Mutiara SelatanExecutiveYogyakarta to Surabaya Gubeng02:40About 4 h 2 min390,000

Other listings on other dates show some economy fares closer to IDR 290,000, so treat the economy range as roughly IDR 88,000 to 290,000 and executive as roughly IDR 350,000 to 390,000. The cheapest ticket is usually the slowest service, and it can end at a different Surabaya station.

I haven’t taken the train on this route myself, so everything in this section comes from listings and guides. Check current schedules and fares before you plan around any of it.

Which Train Should You Choose?

The main choice is between economy and executive, and then between faster and slower services.

  • Price: Economy is the cheapest, from about IDR 88,000 on the slowest service up to a few hundred thousand rupiah on faster ones. Executive costs roughly IDR 350,000–390,000.
  • Comfort: Executive generally means more comfortable seating. Check what’s on offer on the exact service you’re booking.
  • Journey time: Faster services take about 4 hours. Slower economy services run around 5 to 5.5 hours or more.
  • Is it worth paying more? If you’re carrying luggage, heading on a long way afterwards, or just don’t want a rough journey, executive can be worth it. If the schedule works and price is your priority, an economy service is fine.

Don’t assume every train has the same facilities, duration or arrival station.

Which Stations Do You Use?

Always check the exact departure and arrival stations printed on your ticket.

  • Yogyakarta: some services, such as the Sancaka and Mutiara Selatan in the listing above, leave from Yogyakarta Station (also called Tugu). Others, such as Sri Tanjung, depart from Lempuyangan Station. The two are only about 2 km apart, but traffic can make that trip much slower than it sounds.
  • Surabaya: Surabaya Gubeng is the main station and sits in the city center. Some services, such as Sri Tanjung in the listing above, arrive at Surabaya Kota instead. Pasar Turi is another station used by some services.

The arrival station matters. The cheapest fare in the sample, the Sri Tanjung, ends at Surabaya Kota rather than Gubeng, so a lower ticket price isn’t necessarily the better deal if it drops you far from where you’re staying. Look at where your accommodation is before you book.

I stayed near Yogyakarta Train Station on this trip, and it made onward travel easy.

How to Book Train Tickets

  • Access by KAI: the official app of Indonesia’s railway operator.
  • Reputable booking platforms such as 12GOasia and Traveloka.
  • Compare departure times, classes and stations.
  • Book ahead when traveling in busy periods.
  • Keep the booking confirmation and the identification details you need for the journey handy.

Traveling from Yogyakarta to Surabaya by Bus

If you’re wondering how to travel from Yogyakarta to Surabaya on a tight budget, the bus is where I’d start. The Yogyakarta to Surabaya bus is usually one of the cheapest ways to make the trip, and it’s the route a lot of local travelers use. It’s slower than the train and less comfortable than most other options, but it gets you there.

What to expect:

  • Travel time: Roughly 6–7 hours in most guides, with one aggregator averaging about 6 hours. Mine took 8 hours. Traffic can add to this, so don’t rely on one universal estimate.
  • Price: Around IDR 100,000–200,000 per person in one guide. Local buses can sit at the low end. One booking platform advertises fares from about IDR 190,000, which is more typical of booked, more comfortable services. Fares vary by operator and bus class.
  • Bus classes and air-conditioning: Services range from basic local buses to more comfortable air-conditioned ones. Check what your operator offers.
  • Rest stops: One guide mentions a stop in the Ngawi area with a meal included. This may differ by operator.
  • Luggage and seating: Check the operator’s conditions before you book.
  • Delays: Highway traffic can slow things down.

My own experience:

I took the bus from Giwangan Terminal in Yogyakarta to Purabaya (Bungurasih) Terminal in Surabaya. The fare was IDR 100,000, the lowest price I found for the trip.

It was a local bus, not a tourist coach. There were only three foreigners on it: me and one other couple. Everyone else was a local, and I liked that. It felt like traveling the way people here actually do.

I’ll be honest about the comfort. It wasn’t a very comfortable ride. But it wasn’t bad either. It was basic, it did the job, and it got me to Surabaya safely.

What I’d flag is the time. The whole journey took 8 hours, which is longer than the 6–7 hours most guides quote. That matters if you have a booking at the Surabaya end or you’ll be arriving late. And the terminal isn’t your final stop. You still need a ride from Purabaya to wherever you’re staying.

Keep in mind that economy trains can cost about the same as a bus or less. Compare current fares before you decide.

Where Do Buses Depart From and Arrive in Surabaya?

Listings generally point to Giwangan Bus Terminal in Yogyakarta as the departure point, and Surabaya’s Purabaya (Bungurasih) Terminal as the arrival point. That’s the route I took. One guide advises using Giwangan and not Jombor.

Don’t assume every bus uses the same terminal. Some operators use their own pickup points or roadside boarding. Confirm your operator’s exact boarding and drop-off points when you book.

From the terminal in Surabaya, one guide suggests stepping outside and booking an online taxi through Gojek or Grab. Allow time and money for that final leg, because it’s part of the real cost of the journey.

How to Book a Bus Ticket

  • Compare schedules and operators.
  • Check the seat class and luggage conditions.
  • Confirm the exact boarding point.
  • Compare the total travel time, not just the departure time.
  • Book through a reputable platform or directly with the operator. Several established platforms list this route, and local buses may take payment at the terminal.

Traveling from Yogyakarta to Surabaya by Shared Shuttle

Shared shuttle vans, called travel in Indonesia, are another way to make this journey. The Yogyakarta to Surabaya shuttle is a smaller, more flexible alternative to a big bus.

How shuttles differ from buses:

  • Smaller vehicles with fewer passengers
  • Shared arrangements: you share the van with other travelers
  • Operator-specific pickup points: some pick up at your address, others at an office
  • Door-to-door service where offered: one platform lists free pickup within certain areas of both cities
  • Travel time: one guide estimates around 6 hours
  • Fares: about IDR 200,000–300,000 per person in one guide. One local platform lists around IDR 199,000 per person including door-to-door pickup and drop-off
  • Luggage: limited by what fits in the van, so check

Is a Shared Shuttle Better Than a Bus?

It depends on what you’re optimizing for.

  • Price: Shuttles usually cost more than a bus. They aren’t automatically cheaper.
  • Convenience: If the pickup and drop-off points suit you, a shuttle can be easier because you skip the terminal.
  • Travel time: Not automatically faster. Compare the real duration.
  • Luggage: Vans have less space, so big bags can be an issue.
  • Comfort: More personal space than a crowded local bus, but vans can still be tight.
  • Flexibility: Departure times are set by the operator, and some run in the evening or at night.

Check whether your specific operator offers terminal-to-terminal, designated-point or door-to-door service. Don’t assume every shuttle includes hotel pickup.

Can You Fly from Yogyakarta to Surabaya?

If you’re wondering how to travel from Yogyakarta to Surabaya by air, the short answer is: not directly.

Current route information shows no direct flight between Yogyakarta International Airport (YIA) and Surabaya’s Juanda International Airport (SUB). You’d need a connecting itinerary. One flight-route site lists a one-stop option through Denpasar (about 2 hours 50 minutes of flying time, not counting the layover), while another guide mentions connecting through Jakarta.

Before you think “that sounds quick,” look at the whole journey:

  • Getting to the airport: YIA is well outside Yogyakarta city, so you need time and money for the transfer.
  • Connection and waiting time: the layover can be long.
  • Arrival: you still need to get from Juanda to wherever you’re staying in Surabaya.
  • Baggage: allowances differ by airline, so check each leg.

Add it all up and a connecting flight is usually slower and more hassle than the train for this particular route. It can make sense if you already have a suitable flight connection or you’re continuing somewhere else by air.

Flight routes and schedules change, so check the latest options before you book.

Traveling from Yogyakarta to Surabaya by Private Car

If you’d rather skip the logistics of how to travel from Yogyakarta to Surabaya on public transport, a private car with a driver gives you a direct, door-to-door journey between the two cities.

  • Pickup and drop-off: from your accommodation to your destination address
  • Flexible departure time: you set the schedule, within reason
  • Vehicle options: from standard cars to larger vehicles for groups
  • Luggage space: much better than public transport. One platform lists one suitcase and one carry-on per passenger
  • Travel time: about 4 to 4.5 hours depending on traffic. One platform lists 4 hours 30 minutes over about 324 km
  • Price: quoted per vehicle by most operators. One operator lists USD 225 for up to 5 people, about IDR 4.0 million at today’s rate. Another platform lists from about USD 38 per person, about IDR 680,000
  • Exclusive use: make sure the vehicle is reserved for your group, not shared

Which Is the Best Way to Travel from Yogyakarta to Surabaya?

There’s no single best answer to how to travel from Yogyakarta to Surabaya. Here’s how I’d decide.

Best Option for Budget Travelers

Compare the cheapest Yogyakarta to Surabaya bus fares with economy train tickets. The bus I took cost IDR 100,000, while the cheapest economy train in the sample listing was IDR 88,000. That train is slower and ends at Surabaya Kota, so the saving isn’t automatic, but it does mean you shouldn’t assume the bus wins without checking. Add the full cost, including rides to the terminal or station and the ride from the arrival point to where you’re staying.

Best Option for Comfort

An executive-class train, a suitable shared shuttle or a private transfer. Think about seat comfort, luggage, how easy it is to get to the station and how convenient the whole journey is.

Best Option for Saving Time

The faster train services, at about 4 hours, are the quickest practical choice for most travelers. A private car or rental car can be similar, depending on traffic and how easy it is to get to the station. A connecting flight usually doesn’t save time once you add the connections and airport transfers.

Best Option for Groups

A private car or transfer becomes more reasonable when the cost is split across several people, especially with luggage or if everyone wants door-to-door service.

Best Option for Independent Travelers

The train, bus and shuttle are all workable. Choose based on convenience, how simple booking is and where you need to end up in Surabaya.

How to Book Transportation from Yogyakarta to Surabaya

Once you’ve decided how to travel from Yogyakarta to Surabaya, here’s the short version of where to book.

Booking Trains

Use Access by KAI, the official app, or a reputable platform like Traveloka. Check the station names on your ticket.

Booking Buses and Shuttles

Use an established booking platform or book directly with the operator. Local buses may take payment at the terminal. Confirm the boarding point, drop-off point and luggage rules.

Booking Flights and Private Transfers

Check the full itinerary, pickup and drop-off points, luggage conditions and the cancellation policy before you pay.

Practical Tips for Traveling from Yogyakarta to Surabaya

Check Your Exact Departure and Arrival Stations

Several stations and terminals serve each city, and the cheapest ticket may use a different one than you expect.

Compare the Full Journey Time

Add the time getting to the departure point and from the arrival point to your accommodation.

Book Ahead During Busy Periods

Seats can be limited and demand can be high around holidays and weekends. Booking early gives you more choice.

Check Your Luggage Allowance

Don’t assume every operator has the same baggage policy. Trains, buses, shuttles and flights all differ.

Keep Your Booking Details Accessible

Keep your confirmation and ID details on your phone, ideally with a screenshot in case you lose signal.

Plan Your Onward Journey from Surabaya

Surabaya might be your final stop, or the gateway to other parts of East Java, including Mount Bromo. Work out your next leg before you arrive.

Frequently Asked Questions About Traveling from Yogyakarta to Surabaya

What is the best way to travel from Yogyakarta to Surabaya?

For most travelers, the train offers the best balance of time and comfort. The bus is usually among the cheapest. A private car makes sense for groups or heavy luggage.

How long does it take to travel from Yogyakarta to Surabaya?

Yogyakarta to Surabaya travel time depends on the option. The faster trains take about 4 hours, buses about 6–8 hours (mine took 8), shuttles around 6 hours, and a private car about 4–4.5 hours. Traffic can add time.

Is there a direct train from Yogyakarta to Surabaya?

Yes. Several through trains run the route, including the Sancaka and Mutiara Selatan to Surabaya Gubeng and the Sri Tanjung to Surabaya Kota. Check current schedules for the exact service.

How much does a train ticket from Yogyakarta to Surabaya cost?

It varies by service and class. Economy fares run roughly IDR 88,000 to 290,000, and executive roughly IDR 350,000 to 390,000. These are indicative, so check live fares.

Is the bus cheaper than the train from Yogyakarta to Surabaya?

Not always. My bus cost IDR 100,000, and some economy trains cost about the same or less, though they may be slower or arrive at a different station. Compare current prices.

Is there a direct flight from Yogyakarta to Surabaya?

No, not at present. You’d need a connecting flight, so the total journey is usually slower than the train.

Can I book a shared shuttle from Yogyakarta to Surabaya?

Yes. Shuttles can be booked through online platforms or the operator. Check whether the pickup is at your address or an office.

Is a private car worth it for this journey?

It can be for groups, families or travelers with lots of luggage. The price is per vehicle, so it works out better when shared.

Can I travel from Yogyakarta to Surabaya by scooter?

It’s possible, but not recommended for a normal transfer. Motorcycles are generally barred from toll roads, so you’d take slower routes, and many rental companies restrict long one-way trips.

Conclusion

The main options are the train, bus, shuttle and private car, with flights, rental cars, taxis and scooters making sense only in specific situations. If you want a clear takeaway: the train is the best all-round option for most people, the bus is the budget pick, a shuttle adds flexibility, and a private car suits groups.

Working out how to travel from Yogyakarta to Surabaya comes down to what you need to arrive with: money, time or energy left.

I took the bus from Giwangan to Purabaya for IDR 100,000. It was a local bus, I was one of only three foreigners on board, and the journey took 8 hours. It wasn’t the most comfortable ride, but it wasn’t bad, and it got me to Surabaya safely. If you’re on a tight budget and don’t mind a basic journey, I’d do it again. If comfort or time matters more, compare the train first. Current listings show services of about 4 hours, though I can’t speak from experience on that one.

Planning Your Indonesia Trip?

If you’re putting together a bigger Indonesia itinerary, here’s what else I’ve written:

2 Days in Yogyakarta: A Slow Travel Itinerary for Central Yogyakarta

Where to Stay in Yogyakarta: Best Areas for Every Traveler

Yogyakarta Travel Budget: How Much Does Yogyakarta Cost?

Share the article!

Picture of Vishal Hadal

Vishal Hadal

Leave a Reply

Your email address will not be published. Required fields are marked *