How to travel from Surabaya to Semarang, Indonesia

The distance between Surabaya and Semarang is around 279km (173 miles) and the quickest way to get there is to take the train which takes around 3h 5m.

3 routes found

We've found 3 different ways to get from Surabaya to Semarang by train, taxi and car. The recommended routes, which include information on duration, ticket price, and level of difficulty, can be found below.

👋 Also check out SemarangSurabaya if you're planning a return trip.

🚀 Fastest
💰 Cheapest
1
train
+

Train

Take the train to Semarang Tawang.

  • Duration3h 5m
  • Departshourly
  • Typical cost
    IDR 179,735($12)
Operated by

Kereta API

2
taxi
+

Taxi

Take a taxi to Semarang.

  • Duration4hrs
  • Departson demand
  • Typical cost
    IDR 1,797,355($120)
Operated by

Grab Taxi

+ 1 others
3
car
+

Drive

Drive to Semarang.

  • Duration4hrs
  • Distance350km (218 miles)
Get turn-by-turn directions

Frequently asked questionsabout travel between Surabaya and Semarang

There are several options for getting from Surabaya to Semarang by train, taxi and car. The cheapest option is to take the train which costs around IDR 179,735 ($12) and will take around 3h 5m.

The distance between Surabaya and Semarang is around 279km (173 miles). In a direct line (as the crow flies), the distance is 257km (160 miles)

It takes around 3h 5m to get from Surabaya and Semarang by train. If you are travelling by car it will take around 4hrs to drive there.

The quickest way to get from Surabaya to Semarang is to take the train which takes around 3h 5m and will set you back approx IDR 179,735 ($12).

The cheapest way to travel between Surabaya and Semarang, if you exclude driving, is to take the train which will typically cost around IDR 179,735 ($12) for a standard one-way ticket.

Train travel

Yes there is a train service that runs between Surabaya and Semarang. It typically takes around 3h 5m and departs every 4 hours.

Yes there is a direct train service that runs between Surabaya and Semarang with no changeovers required. The train runs every 4 hours and takes 3h 5m.

Kereta API run train services between Surabaya and Semarang. Trains depart every 4 hours and will take around 3h 5m, however, this may vary depending on the particular service and whether it runs express or stops all stations.

Bus travel

Sorry, looks like there is no bus service that runs between Surabaya and Semarang. We recommend that you take the train to Semarang Tawang. instead which will take 3h 5m.

Flights and Airlines

It doesn't look like you can fly directly from Surabaya to Semarang. We recommend that you take the train to Semarang Tawang. instead which will take 3h 5m.

The closest major airport to Semarang is Achmad Yani International Airport (SRG) (SRG) which is approximately 5km (3 miles) from Semarang. Adisumarmo International Airport (SOC) (SOC) and Adisucipto Airport (JOG) (JOG) are also nearby and might be a better alternative airport depending on where you are flying from.

Drive yourself

Yes it is possible to drive from Surabaya and Semarang. The distance is around 350km (218 miles) by road and it will take around 4hrs in normal traffic conditons.

If you don't have a car, the easiest way to get from Surabaya to Semarang is to take the train which takes, on average, 3h 5m and will usually cost around IDR 179,735 ($12).

How do I get from Surabaya to Semarang

Compare travel optionsbetween Surabaya and Semarang

Transport options from Surabaya to Semarang
Transport optionDurationCostFrequencyDistance
Train
3h 5m
IDR 179,735($12)
hourly279km (173 miles)
Taxi
4hrs
IDR 1,797,355($120)
on demand350km (218 miles)
Drive
4hrs
IDR 584,140($39)
on demand350km (218 miles)

Top Carriersoperating between Surabaya and Semarang

Airlines

Train operators

Bus companies

Airports near Semarang

The following major airports near Semarang offer regular flights to various popular destinations within Indonesia and internationally.

SRG
Achmad Yani International Airport (SRG)
International Airport
Distance
5km (3 miles) from Semarang
SOC
Adisumarmo International Airport (SOC)
International Airport
Distance
69km (43 miles) from Semarang
JOG
Adisucipto Airport (JOG)
International Airport
Distance
88km (55 miles) from Semarang