• Our partners include:

  • Booking.com
  • Skyscanner
  • Airbnb
  • Expedia
  • Uber
  • Rentalcars.com

There are 4 ways to get from Semarang to Batam by plane, ferry, train or bus

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 to Hang Nadim  •  2h 21m

  1. Fly from Ahmad Yani (SRG) to Hang Nadim (BTH) SRG - BTH

$62 - $199

Cheapest option

Train, ferry  •  41h 16m

  1. Take the train from Semarang Tawang to Jatinegara Argo Bromo Anggrek 3 / ...
  2. Take the ferry from Port of Tanjung Priok to Batu Ampar KM Kelud

$28 - $86

2 alternative options

Fly to Singapore Changi, ferry  •  4h 18m

  1. Fly from Ahmad Yani (SRG) to Singapore Changi (SIN) SRG - SIN
  2. Take the ferry from Harbour Front to Batam Centre

$78 - $473

Bus, ferry  •  2 days 1h

  1. Take the bus from Weleri to Jakarta Tanjung Priok Bus Station
  2. Take the ferry from Port of Tanjung Priok to Batu Ampar KM Kelud

$30 - $83

Questions & Answers

The cheapest way to get from Semarang to Batam is to bus and ferry which costs Rp450000 - Rp1300000 and takes 2 days 1h.

More details

The quickest way to get from Semarang to Batam is to fly which costs Rp900000 - Rp3100000 and takes 2h 21m.

More details

The distance between Semarang and Batam is 1150 km.

The best way to get from Semarang to Batam without a car is to train and ferry which takes 41h 16m and costs Rp420000 - Rp1300000.

More details

It takes approximately 2h 21m to get from Semarang to Batam, including transfers.

More details

The quickest flight from Ahmad Yani Airport to Hang Nadim Airport is the direct flight which takes 1h 55m.

Search flights

Lion Mentari Airlines, Citilink Indonesia and Garuda Indonesia offer flights from Ahmad Yani Airport to Hang Nadim Airport.

Search flights

There are 432+ hotels available in Batam. Prices start at $21 USD per night.

More details

The best way to get from Semarang to Ahmad Yani Airport is to taxi which takes 5m and costs Rp31000 - Rp37000.

More details

Map of how to get from Semarang to Batam.
Launch map view
  • Distance: 719 miles
  • Duration: 2h 21m

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

Lion Mentari Airlines, Garuda Indonesia and Citilink Indonesia fly from Semarang to Batam 4 times a day.

Airlines
Garuda Indonesia
Website
garuda-indonesia.com
Flights from Ahmad Yani to Hang Nadim via Soekarno–Hatta
Ave. Duration
4h 10m
When
Every day
Estimated price
$110 - $400
Flights from Ahmad Yani to Singapore Changi
Ave. Duration
2h 7m
When
Monday, Wednesday, Friday and Sunday
Estimated price
$130 - $300
Flights from Ahmad Yani to Singapore Changi via Soekarno–Hatta
Ave. Duration
4h 23m
When
Every day
Estimated price
$150 - $440
Flights from Ahmad Yani to Singapore Changi via Juanda International
Ave. Duration
4h 35m
When
Every day
Estimated price
$130 - $300
Lion Mentari Airlines
Website
lionair.co.id
Flights from Ahmad Yani to Hang Nadim
Ave. Duration
1h 55m
When
Every day
Estimated price
$55 - $190
Flights from Ahmad Yani to Singapore Changi via Soekarno–Hatta
Ave. Duration
4h 55m
When
Every day
Estimated price
$50 - $180
SilkAir
Website
silkair.com
Flights from Ahmad Yani to Singapore Changi
Ave. Duration
2h 7m
When
Monday, Wednesday, Friday and Sunday
Estimated price
$130 - $300
Citilink Indonesia
Website
Flights from Ahmad Yani to Hang Nadim via Soekarno–Hatta
Ave. Duration
4h 25m
When
Every day
Estimated price
$65 - $240
Indonesia AirAsia
Website
airasia.com
Flights from Ahmad Yani to Singapore Changi
Ave. Duration
2h 10m
When
Monday, Wednesday, Friday and Sunday
Estimated price
$60 - $360
AirAsia
Website
airasia.com
Flights from Ahmad Yani to Singapore Changi via Kuala Lumpur
Ave. Duration
4h 30m
When
Every day
Estimated price
$70 - $260
Batik Air
Website
batikair.com
Flights from Ahmad Yani to Singapore Changi via Soekarno–Hatta
Ave. Duration
5h
When
Every day
Estimated price
$65 - $240
Train operators
Bus operators
Kramat Djati
Phone
022-4200858
Email
cs.kramatdjatibdg@yahoo.co.id
Website
kramatdjati.co.id
Bus from Weleri to Jakarta Tanjung Priok Bus Station
Ave. Duration
12h
Frequency
Once daily
Estimated price
$7 - $10
Schedules at
kramatdjati.co.id
Book at
easybook.com
Ferry operators
Batam Fast Ferries
Phone
+65 6270 2228
Email
reservations@batamfast.com
Website
batamfast.com
Ferry from Harbour Front to Batam Centre
Ave. Duration
1h
Frequency
Hourly
Estimated price
$19
Schedules at
batamfast.com
Horizon ferry
Website
horizonfastferry.com
Ferry from Harbour Front to Batam Centre
Ave. Duration
1h
Frequency
Hourly
Estimated price
$24
Schedules at
horizonfastferry.com
Majestic Fast Ferry
Website
majesticfastferry.com.sg
Ferry from Singapore Harbour Front to Batam Centre
Ave. Duration
1h
Frequency
Hourly
Estimated price
$19
Schedules at
majesticfastferry.com.sg
Sindo Ferry
Phone
+65 6331 4123
Email
booking@sindoferry.com.sg
Website
sindoferry.com.sg
Ferry from Singapore Harbour Front to Batam Centre
Ave. Duration
1h 10m
Frequency
Hourly
Estimated price
$13
Schedules at
sindoferry.com.sg
Pelni
Website
pelni.co.id
Ferry from Port of Tanjung Priok to Batu Ampar
Ave. Duration
33h 41m
Frequency
Once a week
Estimated price
$21 - $65
Schedules at
pelni.co.id

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 Best ways to travel around Australia, Flying into Beijing? and 4 stunningly beautiful Philippines islands you need to visit - to help you get the most out of your next trip.