There are 7 ways to get from Batu to Batu Caves by bus, plane, train, ferry, 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.
Bus to Juanda International Airport, fly to Kuala Lumpur International Airport, train
best- Take the bus from Malang Terminal Arjosari to Purabaya Bus Terminalbus
- Fly from Juanda International Airport (SUB) to Kuala Lumpur International Airport (KUL)plane SUB - KUL
- Take the train from Klia T1 to KL Sentraltrain
9h 53mRM 299–1,004Bus, ferry, drive via Jakarta
- Take the bus from Kota Malang to DAMRI Bus Station Jakartabus
- Take the ferry from Port of Tanjung Priok to Batu Amparferry
- Take the ferry from Batam Centre to Pasir Gudangferry
- Drive from Pasir Gudang to Sengkang Stncar
- Take the bus from Sengkang Stn to Awana Genting Hotelbus
2d 18hRM 461–831Fly Abdul Rachman Saleh Airport to Sultan Abdul Aziz Shah
- Fly from Abdul Rachman Saleh Airport (MLG) to Sultan Abdul Aziz Shah (SZB)plane MLG - SZB
10h 16mRM 738–2,351Fly Abdul Rachman Saleh Airport to Kuala Lumpur International Airport, train
- Fly from Abdul Rachman Saleh Airport (MLG) to Kuala Lumpur International Airport (KUL)plane MLG - KUL
- Take the train from Klia T1 to KL Sentraltrain
7h 19mRM 680–948Train to Ahmad Yani, fly to Kuala Lumpur International Airport, train
- Take the train from Lawang to Semarang Poncoltrain
- Fly from Ahmad Yani (SRG) to Kuala Lumpur International Airport (KUL)plane SRG - KUL
- Take the train from Klia T1 to KL Sentraltrain
13h 8mRM 436–886Train, train to Yogyakarta International Airport, fly to Kuala Lumpur International Airport
- Take the train from Malang to Yogyakarta Tugutrain
- Take the train from Yogyakarta Tugu Station to Yogyakarta International Airporttrain
- Fly from Yogyakarta International Airport (YIA) to Kuala Lumpur International Airport (KUL)plane YIA - KUL
- Take the train from Klia T1 to KL Sentraltrain
13h 59mRM 383–666Bus, ferry, drive
- Take the bus from Malang to Surabaya Kotabus
- Take the ferry from Surabaya - Tanjung Perak Port to Pelabuhan Sri Bayintan Kijangferry
- Take the ferry from Sri Bintan Pura Ferry Terminal to Tanah Merahferry
- Drive from Tanah Merah to Pengerangcar
- Take the bus from Pengerang to Terminal Bersepadu Selatanbus
3d 16hRM 431–589
Juanda International Airport (SUB) to Kuala Lumpur International Airport (KUL) flights
Questions & Answers
The cheapest way to get from Batu to Batu Caves is to bus and fly and train which costs RM 290 - RM 1000 and takes 9h 53m.
The fastest way to get from Batu to Batu Caves is to fly and train which takes 7h 19m and costs RM 650 - RM 950.
The distance between Batu and Batu Caves is 1844 km.
It takes approximately 9h 53m to get from Batu to Batu Caves, including transfers.
Batu Caves is 1h ahead of Batu. It is currently 12:20 AM in Batu and 1:20 AM in Batu Caves.
There are 8761+ hotels available in Batu Caves.
What companies run services between Batu, Indonesia and Batu Caves, Malaysia?
Batik Air, TransNusa, and two other airlines fly from Abdul Rachman Saleh Airport (MLG) to Sultan Abdul Aziz Shah (SZB) 4 times a day.
- Website
- malaysiaairlines.com
Flights from Juanda International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- RM 280–1,100
Flights from Abdul Rachman Saleh Airport to Sultan Abdul Aziz Shah via Soekarno–Hatta, Penang
- Ave. Duration
- 10h 20m
- When
- Every day
- Estimated price
- RM 700–2,300
Flights from Abdul Rachman Saleh Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 30m
- When
- Every day
- Estimated price
- RM 500–2,200
Flights from Ahmad Yani to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 42m
- When
- Every day
- Estimated price
- RM 300–1,200
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 50m
- When
- Monday and Thursday
- Estimated price
- RM 290–1,200
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 20m
- When
- Every day
- Estimated price
- RM 290–1,200
- Website
- garuda-indonesia.com
Flights from Juanda International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- RM 280–1,100
Flights from Abdul Rachman Saleh Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 30m
- When
- Every day
- Estimated price
- RM 500–2,200
Flights from Ahmad Yani to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 42m
- When
- Every day
- Estimated price
- RM 300–1,200
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 25m
- When
- Every day
- Estimated price
- RM 290–1,200
- Website
- fireflyz.com.my
Flights from Juanda International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- RM 280–1,100
Flights from Abdul Rachman Saleh Airport to Sultan Abdul Aziz Shah via Soekarno–Hatta, Penang
- Ave. Duration
- 10h 20m
- When
- Every day
- Estimated price
- RM 700–2,300
Flights from Abdul Rachman Saleh Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 30m
- When
- Every day
- Estimated price
- RM 500–2,200
- Website
- airasia.com
Flights from Juanda International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 36m
- When
- Every day
- Estimated price
- RM 220–1,200
Flights from Abdul Rachman Saleh Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 50m
- When
- Every day
- Estimated price
- RM 340–1,500
- Website
- singaporeair.com
Flights from Juanda International Airport to Kuala Lumpur International Airport via Singapore Changi
- Ave. Duration
- 5h 12m
- When
- Every day
- Estimated price
- RM 170–1,000
Flights from Ahmad Yani to Kuala Lumpur International Airport via Singapore Changi
- Ave. Duration
- 4h 42m
- When
- Tuesday, Wednesday, Thursday, and Saturday
- Estimated price
- RM 300–600
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Singapore Changi
- Ave. Duration
- 4h 50m
- When
- Sunday
- Estimated price
- RM 170–900
- Website
- airasia.com
Flights from Abdul Rachman Saleh Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 40m
- When
- Every day
- Estimated price
- RM 370–1,500
Flights from Ahmad Yani to Kuala Lumpur International Airport
- Ave. Duration
- 2h 25m
- When
- Every day
- Estimated price
- RM 330–700
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 30m
- When
- Every day
- Estimated price
- RM 260–410
- Website
- flyscoot.com
Flights from Juanda International Airport to Kuala Lumpur International Airport via Singapore Changi
- Ave. Duration
- 5h 25m
- When
- Sunday
- Estimated price
- RM 170–850
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Singapore Changi
- Ave. Duration
- 4h 50m
- When
- Sunday
- Estimated price
- RM 170–900
- Website
- batikair.com
Flights from Ahmad Yani to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 10m
- When
- Every day
- Estimated price
- RM 320–1,200
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 4h 15m
- When
- Every day
- Estimated price
- RM 310–1,200
- Website
- malindoair.com
Flights from Juanda International Airport to Kuala Lumpur International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- RM 210–750
- Website
- transnusa.co.id
Flights from Abdul Rachman Saleh Airport to Sultan Abdul Aziz Shah via Soekarno–Hatta
- Ave. Duration
- 7h 55m
- When
- Every day
- Estimated price
- RM 700–2,400
- Website
- citilink.co.id
Flights from Ahmad Yani to Kuala Lumpur International Airport via Soekarno–Hatta
- Ave. Duration
- 5h 10m
- When
- Wednesday, Friday, and Sunday
- Estimated price
- RM 410–1,200
- Website
- superairjet.com
Flights from Yogyakarta International Airport to Kuala Lumpur International Airport via Minangkabau
- Ave. Duration
- 5h 25m
- When
- Thursday and Saturday
- Estimated price
- RM 410–1,100
- Phone
- +603 2267 8000
- CustomerEnquiry@KLIAekspres.com
- Website
- kliaekspres.com
Train from Klia T1 to KL Sentral
- Ave. Duration
- 30 min
- Frequency
- Every 15 minutes
- Estimated price
- RM 45–55
- Website
- https://www.kliaekspres.com
Train from Lawang to Semarang Poncol
- Ave. Duration
- 6h 11m
- Frequency
- Once daily
- Estimated price
- RM 50–80
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- RM 50–80
- Business
- RM 90–130
- Executive
- RM 90–160
Train from Malang to Yogyakarta Tugu
- Ave. Duration
- 6h 1m
- Frequency
- Every 4 hours
- Estimated price
- RM 50–80
- Schedules at
- kai.id
- Book at
- en.tiket.com
- Economy
- RM 50–80
- Business
- RM 90–130
- Executive
- RM 95–160
- info@railink.co.id
- Website
- railink.co.id
Train from Yogyakarta Tugu Station to Yogyakarta International Airport
- Ave. Duration
- 35 min
- Frequency
- Hourly
- Estimated price
- RM 4–12
- Schedules at
- railink.co.id
- Phone
- +62 341 395524
- Website
- instagram.com
Bus from Malang Terminal Arjosari to Purabaya Bus Terminal
- Ave. Duration
- 1h 44m
- Frequency
- Every 30 minutes
- Estimated price
- RM 9
- Schedules at
- instagram.com
- Phone
- (021) 1500 825
- humas@damri.co.id
- Website
- damri.co.id
Bus from Kota Malang to DAMRI Bus Station Jakarta
- Ave. Duration
- 10h
- Frequency
- Once daily
- Estimated price
- RM 50–200
- Book at
- https://12go.asia/en/operator/damri
- Phone
- (+65) 6348 6909
- enquiry@kkkl.com.sg
- Website
- kkkl.com.sg
Bus from Sengkang Stn to Awana Genting Hotel
- Ave. Duration
- 11h 53m
- Frequency
- Twice daily
- Estimated price
- RM 100–250
- Schedules at
- kkkl.com.sg
- Phone
- 02179171717
- cs@cititrans.co.id
- Website
- cititrans.co.id
Bus from Malang to Surabaya Kota
- Ave. Duration
- 2h
- Frequency
- Every 30 minutes
- Estimated price
- RM 30–40
- Schedules at
- cititrans.co.id
- Phone
- 019-2179072
- info@maralinergroup.my
- Website
- maralinergroup.my
Bus from Pengerang to Terminal Bersepadu Selatan
- Ave. Duration
- 6h
- Frequency
- Once daily
- Estimated price
- RM 45–65
- Website
- https://maralinergroup.my/
- Phone
- +62 811-1621-162
- infopelni162@pelni.co.id
- Website
- facebook.com
Ferry from Port of Tanjung Priok to Batu Ampar
- Ave. Duration
- 37h 58m
- Frequency
- Once daily
- Estimated price
- RM 90–110
- Schedules at
- pelni.co.id
- Economy Class
- RM 90–110
Ferry from Surabaya - Tanjung Perak Port to Pelabuhan Sri Bayintan Kijang
- Ave. Duration
- 2d 23h
- Frequency
- Once daily
- Estimated price
- RM 110–140
- Book at
- pelni.co.id
- Economy Class
- RM 110–140
- Phone
- (07) 255-2202
- info@pasirgudangferry.com
- Website
- pasirgudangferry.com
Ferry from Batam Centre to Pasir Gudang
- Ave. Duration
- 1h 39m
- Frequency
- Once daily
- Estimated price
- RM 70
- Schedules at
- pasirgudangferry.com
- Phone
- +65 6331 4123
- booking@sindoferry.com.sg
- Website
- sindoferry.com.sg
Ferry from Sri Bintan Pura Ferry Terminal to Tanah Merah
- Ave. Duration
- 1h 45m
- Frequency
- Twice daily
- Estimated price
- RM 140–150
- Schedules at
- sindoferry.com.sg
- Phone
- +65 6278 9688
- rsv@majesticfastferry.com.sg
- Website
- majesticfastferry.com.sg
Ferry from Sri Bintan Pura Ferry Terminal to Tanah Merah
- Ave. Duration
- 2h 10m
- Frequency
- Twice daily
- Estimated price
- RM 125–140
- Schedules at
- majesticfastferry.com.sg
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 Travelling Croatia’s Dalmatian Coast by boat, bus, car and train, Slovenia: Getting from Ljubljana to Lake Bled, and Getting to Milan from the airport - to help you get the most out of your next trip.































