There are 7 ways to get from Jakarta to Semarang by plane, train, bus, taxi or car

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2rio's travel planner.

Recommended option

Fly from Jakarta Halim Perdana Kusuma  •  2 h 40 min

  1. Fly from Jakarta Halim Perdana Kusuma (HLP) to Semarang (SRG) HLP - SRG

$30 - $74

Cheapest option

Train  •  6 h 12 min

  1. Take the train from Gambir Central to Semarang Tawang Sembrani 48 / ...

$4 - $17

5 alternative options

Fly from Soekarno–Hatta  •  2 h 55 min

  1. Fly from Soekarno–Hatta (CGK) to Semarang (SRG) CGK - SRG

$26 - $75

Train to Bandung, fly  •  5 h 48 min

  1. Take the train from Jakarta Gambir to Bandung
  2. Fly from Bandung (BDO) to Semarang (SRG) BDO - SRG

$49 - $383

Bus  •  12 h

  1. Take the bus from Jakarta Rawamangun Bus Terminal to Semarang

$8 - $12

Taxi  •  5 h 30 min

  1. Take a taxi from Jakarta to Semarang 278.1 miles

$110 - $140

Drive  •  5 h 30 min

  1. Drive from Jakarta to Semarang 278.1 miles

$24 - $40

Questions & Answers

Yes, there is a direct bus departing from Jakarta Rawamangun Bus Terminal and arriving at Semarang. Services depart three times a day. The journey takes approximately 12 h.

More details

Yes, there is a direct train departing from Gambir Central and arriving at Semarang Tawang. Services depart every four hours, and operate every day. The journey takes approximately 6 h 12 min.

More details

The distance between Jakarta and Semarang is 404 km. The road distance is 445 km.

Get driving directions

The best way to get from Jakarta to Semarang without a car is to train which takes 6 h 12 min and costs .

More details

It takes approximately 2 h 40 min to get from Jakarta to Semarang, including transfers.

More details

Jakarta to Semarang bus services, operated by Nusantara, depart from Jakarta Rawamangun Bus Terminal station.

More details

Jakarta to Semarang train services, operated by Kereta API, depart from Gambir Central station.

More details

The best way to get from Jakarta to Semarang is to fly which takes 2 h 40 min and costs . Alternatively, you can train, which costs and takes 6 h 12 min, you could also bus, which costs and takes 12 h.

Mode details

The quickest flight from Jakarta Halim Perdana Kusuma Airport to Semarang Airport is the direct flight which takes 1 h 5 min.

Search flights

Jakarta to Semarang bus services, operated by Nusantara, arrive at Semarang station.

More details

Map of how to get from Jakarta to Semarang.
Launch map view
  • Distance: 252.7 miles
  • Duration: 2 h 40 min

What companies run services between Jakarta, Indonesia and Semarang, Indonesia?

Batik Air and Citilink Indonesia fly from Jakarta to Semarang every 4 hours. Alternatively, Kereta API operates a train from Jakarta to Semarang every 4 hours. Tickets cost $4 - $17 and the journey takes 6 h 12 min.

Airlines
Batik Air
Website
batikair.com
Flights from Jakarta Halim Perdana Kusuma to Semarang
Ave. Duration
1 h 8 min
When
Every day
Estimated price
$45 - $140
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 5 min
When
Every day
Estimated price
$30 - $110
Garuda Indonesia
Website
garuda-indonesia.com
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 15 min
When
Every day
Estimated price
$45 - $120
Citilink Indonesia
Website
Flights from Jakarta Halim Perdana Kusuma to Semarang
Ave. Duration
1 h 15 min
When
Every day
Estimated price
$30 - $85
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 15 min
When
Every day
Estimated price
$28 - $110
Lion Mentari Airlines
Website
lionair.co.id
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 5 min
When
Every day
Estimated price
$23 - $110
Flights from Bandung to Semarang
Ave. Duration
1 h
When
Every day
Estimated price
$30 - $110
NAM Air
Website
sriwijayaair.co.id
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 5 min
When
Every day
Estimated price
$24 - $100
Flights from Bandung to Semarang
Ave. Duration
1 h
When
Every day
Estimated price
$30 - $80
PT. Sriwijaya Air
Website
sriwijayaair.co.id
Flights from Soekarno–Hatta to Semarang
Ave. Duration
1 h 5 min
When
Every day
Estimated price
$24 - $100
Wings Air
Website
lionair.co.id
Flights from Bandung to Semarang
Ave. Duration
1 h 10 min
When
Every day
Estimated price
$100 - $700
Train operators
Kereta API
Phone
021-121
Website
tiket.kereta-api.co.id
Train from Jakarta Gambir to Bandung
Ave. Duration
3 h 39 min
Frequency
Hourly
Estimated price
$1 - $9
Website
kai.id
Book at
tiket.com
Economy
$1 - $9
Business
$4 - $8
Executive
$6 - $13
Train from Gambir Central to Semarang Tawang
Ave. Duration
6 h 12 min
Frequency
Every 4 hours
Estimated price
$4 - $17
Website
kai.id
Book at
tiket.com
Economy
$4 - $14
Business
$11 - $16
Executive
$15 - $23
Bus operators
Nusantara
Website
nu3tara.com
Bus from Jakarta Rawamangun Bus Terminal to Semarang
Ave. Duration
12 h
Frequency
3 times a day
Estimated price
$8 - $12
Schedules at
nu3tara.com
Other operators
Taxi from Jakarta to Semarang
Ave. Duration
5 h 30 min
Estimated price
$110 - $140
Gamya
Phone
+62 21 840 7545
Website
gamya.com
Blue Bird Group
Phone
+62 21 794 1234
Website
bluebirdgroup.com

Want to know more about travelling around the world?

Rome2rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including How to get from Florence to Rome, Train travel in Spain: A guide to Renfe and Want to know more about Flixbus? - to help you get the most out of your next trip.

More Questions & Answers

Jakarta to Semarang train services, operated by Kereta API, arrive at Semarang Tawang station.

More details

Yes, the driving distance between Jakarta to Semarang is 445 km. It takes approximately 5 h 30 min to drive from Jakarta to Semarang.

Get driving directions

Batik Air and Citilink Indonesia offer flights from Jakarta Halim Perdana Kusuma Airport to Semarang Airport.

Search flights

There are 223+ hotels available in Semarang. Prices start at $8 USD per night.

More details

The best way to get from Jakarta to Jakarta Halim Perdana Kusuma Airport is to bus which takes 30 min and costs .

More details