Train from Bukit Mertajam to Kodiang
19 direct Komuter trains a day (Saturday). The 122 km journey takes 1 hr 14 min to 1 hr 21 min. First train 05:31, last 21:51.
19trains a day
1h 14mfastest
122 kmdistance
05:31first
21:51last
All direct trains
Same timetable every day| Departs | Arrives | Duration | Train | Stops | Details |
|---|---|---|---|---|---|
| 05:31from Butterworth | 06:45 | 1h 14mFastest | 2900 | 6 | |
Bukit Mertajam 05:31Tasek Gelugor 05:42Sungai Petani 05:53Gurun 06:06Kobah 06:16Alor Setar 06:27Anak Bukit 06:32Kodiang 06:45 | |||||
| 06:36from Butterworth | 07:50 | 1h 14mFastest | 2904 | 6 | |
Bukit Mertajam 06:36Tasek Gelugor 06:47Sungai Petani 06:58Gurun 07:11Kobah 07:21Alor Setar 07:32Anak Bukit 07:37Kodiang 07:50 | |||||
| 07:06from Butterworth | 08:20 | 1h 14mFastest | 2906 | 6 | |
Bukit Mertajam 07:06Tasek Gelugor 07:17Sungai Petani 07:28Gurun 07:41Kobah 07:51Alor Setar 08:02Anak Bukit 08:07Kodiang 08:20 | |||||
| 07:46from Butterworth | 09:00 | 1h 14mFastest | 2908 | 6 | |
Bukit Mertajam 07:46Tasek Gelugor 07:57Sungai Petani 08:08Gurun 08:21Kobah 08:31Alor Setar 08:42Anak Bukit 08:47Kodiang 09:00 | |||||
| 08:46from Butterworth | 10:00 | 1h 14mFastest | 2912 | 6 | |
Bukit Mertajam 08:46Tasek Gelugor 08:57Sungai Petani 09:08Gurun 09:21Kobah 09:31Alor Setar 09:42Anak Bukit 09:47Kodiang 10:00 | |||||
| 10:46from Butterworth | 12:00 | 1h 14mFastest | 2920 | 6 | |
Bukit Mertajam 10:46Tasek Gelugor 10:57Sungai Petani 11:08Gurun 11:21Kobah 11:31Alor Setar 11:42Anak Bukit 11:47Kodiang 12:00 | |||||
| 12:46from Butterworth | 14:00 | 1h 14mFastest | 2928 | 6 | |
Bukit Mertajam 12:46Tasek Gelugor 12:57Sungai Petani 13:08Gurun 13:21Kobah 13:31Alor Setar 13:42Anak Bukit 13:47Kodiang 14:00 | |||||
| 14:46from Butterworth | 16:00 | 1h 14mFastest | 2936 | 6 | |
Bukit Mertajam 14:46Tasek Gelugor 14:57Sungai Petani 15:08Gurun 15:21Kobah 15:31Alor Setar 15:42Anak Bukit 15:47Kodiang 16:00 | |||||
| 15:16from Butterworth | 16:30 | 1h 14mFastest | 2938 | 6 | |
Bukit Mertajam 15:16Tasek Gelugor 15:27Sungai Petani 15:38Gurun 15:51Kobah 16:01Alor Setar 16:12Anak Bukit 16:17Kodiang 16:30 | |||||
| 15:46from Butterworth | 17:00 | 1h 14mFastest | 2940 | 6 | |
Bukit Mertajam 15:46Tasek Gelugor 15:57Sungai Petani 16:08Gurun 16:21Kobah 16:31Alor Setar 16:42Anak Bukit 16:47Kodiang 17:00 | |||||
| 16:46from Butterworth | 18:00 | 1h 14mFastest | 2944 | 6 | |
Bukit Mertajam 16:46Tasek Gelugor 16:57Sungai Petani 17:08Gurun 17:21Kobah 17:31Alor Setar 17:42Anak Bukit 17:47Kodiang 18:00 | |||||
| 17:16from Butterworth | 18:30 | 1h 14mFastest | 2946 | 6 | |
Bukit Mertajam 17:16Tasek Gelugor 17:27Sungai Petani 17:38Gurun 17:51Kobah 18:01Alor Setar 18:12Anak Bukit 18:17Kodiang 18:30 | |||||
| 17:46from Butterworth | 19:00 | 1h 14mFastest | 2948 | 6 | |
Bukit Mertajam 17:46Tasek Gelugor 17:57Sungai Petani 18:08Gurun 18:21Kobah 18:31Alor Setar 18:42Anak Bukit 18:47Kodiang 19:00 | |||||
| 18:16from Butterworth | 19:30 | 1h 14mFastest | 2950 | 6 | |
Bukit Mertajam 18:16Tasek Gelugor 18:27Sungai Petani 18:38Gurun 18:51Kobah 19:01Alor Setar 19:12Anak Bukit 19:17Kodiang 19:30 | |||||
| 18:51from Butterworth | 20:05 | 1h 14mFastest | 2952 | 6 | |
Bukit Mertajam 18:51Tasek Gelugor 19:02Sungai Petani 19:13Gurun 19:26Kobah 19:36Alor Setar 19:47Anak Bukit 19:52Kodiang 20:05 | |||||
| 19:16from Butterworth | 20:30 | 1h 14mFastest | 2954 | 6 | |
Bukit Mertajam 19:16Tasek Gelugor 19:27Sungai Petani 19:38Gurun 19:51Kobah 20:01Alor Setar 20:12Anak Bukit 20:17Kodiang 20:30 | |||||
| 19:46from Butterworth | 21:07 | 1h 21m | 2956 | 6 | |
Bukit Mertajam 19:46Tasek Gelugor 19:57Sungai Petani 20:08Gurun 20:21Kobah 20:31Alor Setar 20:42Anak Bukit 20:47Kodiang 21:07 | |||||
| 20:56from Butterworth | 22:10 | 1h 14mFastest | 2960 | 6 | |
Bukit Mertajam 20:56Tasek Gelugor 21:07Sungai Petani 21:18Gurun 21:31Kobah 21:41Alor Setar 21:52Anak Bukit 21:57Kodiang 22:10 | |||||
| 21:51from Butterworth | 23:05 | 1h 14mFastest | 2964 | 6 | |
Bukit Mertajam 21:51Tasek Gelugor 22:02Sungai Petani 22:13Gurun 22:26Kobah 22:36Alor Setar 22:47Anak Bukit 22:52Kodiang 23:05 | |||||
Open a train row to see its stops. “from …” means the train starts before this station, so it may arrive a little late.
Stops along the way
Train 2900, the one with most stops. Not every train stops at every station.
- Bukit Mertajam05:31
- Tasek Gelugor05:42
- Sungai Petani05:53
- Gurun06:06
- Kobah06:16
- Alor Setar06:27
- Anak Bukit06:32
- Kodiang06:45
Buy tickets
KTMB (official)KTMB official website and appGo to KTMB
Fares are not part of the open data. Check the current price before buying. How to buy tickets online →
Opposite direction: Kodiang to Bukit Mertajam
19trains a day
05:45first
22:00last
1h 14mfastest
Origin & destination stations
Photo credits
- Bukit Mertajam: Photo: Slleong · CC0 · Wikimedia Commons
- Kodiang: Photo: Wiki Farazi · CC0 · Wikimedia Commons
Frequently asked questions
How long is the train from Bukit Mertajam to Kodiang?
Between 1 hr 14 min and 1 hr 21 min, depending on the number of stops. Fastest: train 2900, 2904, 2906, 2908.
What time are the first and last trains?
First 05:31 (2900). Last 21:51 (2964), arriving in Kodiang 23:05.
How many trains a day go from Bukit Mertajam to Kodiang?
19 on weekdays, 19 on Saturdays and 19 on Sundays and public holidays (direct trains only).
Is there a night train from Bukit Mertajam to Kodiang?
Yes. Trains leaving after 20:00: 20:56 (2960), 21:51 (2964).
Where can I buy the ticket?
On the official KTMB website and app, or at the station counter. Guide to buying tickets online.
Related routes
Know first when the timetable changes
Festive extra trains, timetable changes and disruptions. One channel, no spam.
Where does this data come from?
Timetables from the KTMB and Prasarana GTFS open data (data.gov.my, CC BY 4.0 licence), updated every day. Today’s data: Saturday, 7 Nov 2026.
Times are scheduled, not real-time. Jadual Tren is an unofficial site and is not affiliated with KTMB, Prasarana or Rapid KL. About Jadual Tren

