You can travel by bus from Penang to Kota Bharu by bus with the Transnasional Bus Company. The distance by road from Butterworth Bus Station near Penang to Kota Bharu is 323 km. Alternatively you can fly from Penang to Kota Bharu with Malaysia Airlines or budget carrier Firefly. From Kota Bharu you travel by local bus to the town of Kuala Besut to catch a boat to the Perhentian Islands.
Bus Times from Penang to Kota Bharu
There are two bus services a day from Penang to Kota Bharu which are available to book online.
Penang | Kota Bharu | Cost | Company |
10:00 | 17:05 | 38.94 MYR | Transnasional |
22:00 | 05:05 | 38.94 MYR | Transnasional |
- The journey by bus from Butterworth bus station near Penang Island to Kota Bharu takes 7 hours 05 minutes.
- Transnasional passengers from Penang to Kota Bharu travel on a VIP bus with reclining seats. A drink and a snack is included in the ticket price.
Buy Tickets from Penang to Kota Bharu
Use the Search Form to purchase your bus tickets from Penang to Kota Bharu.
Butterworth Bus Station
Bus services to Kota Bharu depart from Penang Sentral Bus Station. You can get to Penang Sentral Bus Station cheaply and quickly by taking the Rapid Ferry from Georgetown in Penang.
Kota Bharu Bus Station
Bus services from Penang terminate at Kota Bharu Bus Station on Jalan Pendek in the centre of Kota Bharu town.
Travel to the Perhentian Islands
Speed boat services to the Perhentian Islands depart from the main ferry terminal in Kuala Besut which is 58 km to the south of Kota Bharu. The cheapest way to travel from Kota Bharu to Kuala Besut is to take a Cityliner Bus on route 639 from Kota Bharu to ‘KG. RAJA, BESUT’. Bus services from Kota Bharu to Kuala Besut depart at 08:00, 09:30, 10:30, 13:00, 14:00, 16:00. The journey by bus takes around 1 hour 30 minutes and costs 6 MYR. You can travel more quickly by taxi, which will take you direct to the ferry terminal in around 45 minutes. There are fixed prices from taxis and they do not use the meter on this journey. Expect to be asked to pay between 60 and 90 MYR for the journey by taxi from Kota Bharu to Kuala Besut.

There are no public ferry services from Kuala Besut to the Perhentian Islands, only speedboat services which will cost you in the region of 50 to 70 MYR per person depending upon which speedboat service you use and from whom you buy the ticket. Return and one-way tickets are priced the same. Unfortunately there are people at the ferry port who will try to sell you an over priced ticket. Keep calm and ask in several places before you buy your ticket. Before you board the speedboat you need pay a Marine Park Conservation Charge of 30 MYR at the office at the ferry port in return for which you should receive a ticket for the Marine Park. There are two different islands which you can go to, Perhentian Besar and Perhentian Cecil, and you need to decide which one you want to go to before you get in the speedboat so you can tell the driver where you want to be dropped off. Perhentian Cecil is the more popular and cheaper of the two islands, although it has no ferry pier so depending upon which beach you want to go to you may need to pay a few extra MYR to get local boat to take you from the speed boat to the shore.