The airports that are nearby (thought not really near..) would be:
– Senai Airport, Johor, Malaysia (www.senaiairport.com)
– KL International Airport, Malaysia (www.klia.com.my)
– Changi International Airport, Singapore (www.changiairport.com.sg)
Senai Airport, Johor, Malaysia
If you are flying in from Senai Airport, you can take the Shuttle Service that goes to the Larkin Bus Terminal, Johor Bahru. From there, you can either take the Express Buses or the Stage Buses to Batu Pahat. You can also take the inter town taxis. (The Blue coloured taxis. Red taxis are city taxis)
There are a few bus companies that have a direct express bus to Batu Pahat from Johor Bahru.
(Eg of companies that serve this route: KKKL Express Buses, Hasry Express and Transit Link)
The cost is around RM7 to RM8.
If you have lots and I mean lots of time, you can this bus that goes from little town to little towns and stopping everywhere and finally get you to BP.
If you want to take a rather quick ride to BP. You can take the blue taxi at Larkin Terminal. The way the taxi operates is that it will wait for 4 passengers. When there are 4 persons they will take off. The cost per person is usually RM20. If you can’t wait, you can pay RM80 to book the whole taxi.
(please note that during special holidays like the Chinese New Year, Hari Raya, the prices of taxi will be around RM25-30 a person. Usually you can’t help it, there wont be any more bus tickets anyway)
If you arrive at KLIA. Get your way to central KL. The place you would need to go is Puduraya in central KL.
Puduraya is bus interchange for south bound buses. From here, you can take the many many buses that serves the KL – Batu Pahat route.
The average price of the bus ticket would be around RM10.50
Changi Airport, Singapore
If you fly into Changi Airport, you make your way to Lavendar Street.
Hasry Express has a direct bus from Singapore to Batu Pahat.
Refer to their website: http://www.hasryexpress.com/