With the last sector of the dual electrified tracks still to be completed (between Gemas and JB Sentral), you currently have to take two separate trains if you want to travel from Penang to Johor Bahru.
If you are leaving from Penang, the first part of the journey is on one of the new, fast, Electric Train Services (ETS for short).
These trains will take you as far as Gemas, where you then have to change on to an older Shuttle train for the final part of the journey to Johor state, terminating at JB Sentral.
Another option is to take a direct bus from either Sungai Nibong Bus Station on Penang Island, KOMTAR, or Butterworth Bus Station on the mainland.
Travelling in the other direction, you will again need to take two separate services if you want to travel from JB to Penang by train.
The first part of the journey is along the old part of the tracks, so an older, slower Shuttle train is in use. These trains go to Gemas.
The second part of the trip is on the new tracks and the new ETS trains.
You will have to buy two separate tickets to make this trip.
Tickets for the Shuttle trains between Gemas and JB Sentral cost:
The ETS trains between Butterworth and Gemas cost:
You should make your booking for these trains as far in advance as you can, as they are often full.
Do not just turn up at the station expecting to get a seat.
Advance tickets can be bought for these trains at any Malaysian train station, the Penang KTM Office or you can book online directly from the KTM website or an online ticket agent.
You will need to book your tickets for each separate sector.
If you find there are no seats available for your dates of travel, the other alternative, is to travel between Penang and Johor Bahru by bus.
Arriving in Butterworth railway station and travelling on to Penang Island is easy to do, involving just a short 5 minute walk to the ferry terminal, where boats to the island run every 20 -30 minutes.
The ferry takes you to the old part of town and there are plenty of accommodations within 10 minutes walk from the jetty.