Penang is good if you're into night markets and food, but personally I found the beach there a tad under whelming.
Langkawi isn't what it used to be, far too touristy these days. Avoid is my advice.
My suggestion would be, spend a few nights in KL for the city life, then get an internal flight with Airasia to Kota Kinabalu in Sabah for a nicer beach resort/experience, which will probably be as cheap if not cheaper than Penang and Langkawi.
You can go scuba diving too if that's your thing, a days course is only £65-£70 per person with a company called
Downbelow, includes transport to and from your hotel. You spend the morning learning the basics, and going on your first dive, break for lunch, then spend the rest of the afternoon doing a guided dive. The water is really clear too compared to other diving destinations such as those in Thailand and Indonesia etc.
The missus and I loved it, you don't have to have any previous experience or be good at swimming, and it was pretty much one instructor to two person ratio. If you're worried about the language barrier, all of the instructors are either English speaking Malays, Australian, or in the case of ours a Welsh born Malaysian girl

Oh and if you get bored of the beach and want something more active, you can do a before sunrise guided hike up Mount Kinabalu for some spectacular views.