If you want to travel from Langkawi to Kuala Lumpur overland, there are various ways you can choose to take by using either a ferry and a bus, or a ferry and the train.
Taking a bus from Langkawi to Kuala Lumpur is a popular way to travel as it is usually the cheapest way to get to KL.
To travel by bus, you will first have to take a ferry over to the mainland where you can catch long-distance bus / coach services from either Kuala Perlis or Alor Setar.
1) Kuala Perlis to Kuala Lumpur by Bus:
This is the best, cheapest and most direct option.
From Langkawi, you can take the shortest ferry trip to Kuala Perlis Jetty.
The Kuala Perlis Bus Station is just a short walk away from the ferry terminal.
From here there are regular buses to KL starting from the arrival of the first ferry from Langkawi, until late evening.
Most buses arrive in KL at TBS Bus Station which is the best place to arrive for most tourists (TBS is connected to BTS railway station where you can take regular KTM Komuter or LRT trains to the city centre or connect to KUL airport by ERL train).
A few buses travel to Hentian Duta Bus Terminal in KL.
The trip takes around 7 - 8 hours and costs between 45 - 60 MYR.
Advance booking is recommended.
2) Kuala Kedah to Kuala Lumpur by Bus (via Alor Setar):
The other option is to take the slightly longer ferry to Kuala Kedah Jetty.
From the jetty at Kuala Kedah, you can then take a cheap local bus or taxi to the Alor Setar Bus Station (Shahab Perdana Bus Terminal).
Arrival points in KL are the same as from K. Perlis and the bus trip is around an hour less. Tickets cost around 43 - 50 MYR.
The only reason you should take this route for bus travel is if you want to stay in Alor Setar for a while!
Travelling by train from Langkawi to KL is much quicker as the train takes around 5 hours to make the trip to the capital, but it will cost you an extra 20 - 30 MYR (well worth it in our opinion).
As with the bus, you have the same choice of first taking the ferry to K. Perlis or K. Kedah.
However, this time it will work out slightly cheaper if you take the Kedah route (if you don't mind a bit of walking), as the Perlis route will involve a taxi to the train station, while you can take a cheap bus to Alor Setar.
1) Langkawi to KL by Train via Alor Setar:
Walk to Alor Setar railway station (around 10 - 15 minutes) or take a short taxi ride.
2) Langkawi to KL by Train via Arau:
Flying is easily the quickest way to get from Langkawi to KL taking around an hour to cover the distance.
Malaysian Airlines, Air Asia and Malindo Air offer reasonably cheap tickets.
Air Asia usually offer the cheapest flights and you can often get tickets (if you book in advance), for just a little more than you would pay for overland transport.