Getting from the Cameron Highlands to Langkawi is not that straight forward and will require a bit of planning to find the best route that fits in to your travel plans.
Whichever way you choose, it will take most of the day to get to Langkawi if you travel overland, so we would suggest you take a chance to visit / overnight in Ipoh or Georgetown in Penang along the way.
To travel by bus from the Cameron Highlands to Langkawi, you first have to decide which ferry terminal you want to travel from.
There are three different ports from where you can get a ferry boat over to Langkawi from Malaysia:
The shortest distance by boat is from Kuala Perlis (near to Kangar) with many departures a day.
Another fairly quick option is to take the ferry from Kuala Kedah (near to Alor Setar), also with many departures a day.
The longest boat trip is on the ferry from Georgetown on Penang Island with only two departures a day.
As there are currently no direct buses from Tanah Rata to either Kuala Perlis or Kuala Kedah, we would recommend you first take a bus from Tanah Rata to Butterworth Bus Terminal (Penang Sentral) (15 minutes away from Georgetown by ferry).
From Butterworth you can then travel by bus or better still, on the KTM Komuter train to Alor Setar, then take a local bus from the bus station or city centre, or a taxi, to Kuala Kedah Jetty.
You can also take a much less frequent bus from Butterworth to Kuala Perlis (or nearby Kangar), or much quicker and cheaper, take the KTM Komuter from Butterworth to Arau (then take a taxi to the jetty from the train station).
Another option is to take a more frequent bus from Tanah Rata to Amanjaya Bus Terminal in Ipoh.
From Amanjaya there are buses heading north to Alor Setar or direct to the Kuala Perlis Jetty.
By using a combination of buses and fast ETS trains, this is another good way to travel to Langkawi from CH overland:
1) Take a bus from Tanah Rata to Ipoh Amanjaya Bus Terminal.
2) Take a local bus or taxi from Amanjaya to Ipoh train station (buses go to Medan Kidd Bus Station - 5 minutes walk to the train station).
3) Take an ETS train from Ipoh to Arau (advance booking highly advisable).
4) Take a taxi to Kuala Perlis Jetty (local buses are available, but take a long time via Kangar).
5) Take the one hour 15 minute ferry boat trip to Kuah Jetty on Langakawi Island.
There is no commercial airport in the Cameron Highlands, so if you want to fly, you will have to first go to either:
1) Kuala Lumpur - flights from KUL - KLIA / KLIA2 and SZB - Subang Airport.
2) Penang International Airport - PEN
If you want to take your car over to Langkawi Island, you will have to drive from the Cameron Highlands to Kuala Perlis Jetty (a distance of around 390 km).
From here there are a couple of car ferry operators over to the island.
Alternatively, if you want to leave you car on the mainland, you can take a passenger ferry from either Kuala Kedah, Kuala Perlis or from Georgetown on Penang Island.