Nota Asas Sains Komputer (ASK) Tingkatan 1, 2 dan 3
Asas Sains Komputer (ASK) ialah subjek menengah rendah yang sekolah tawarkan sebagai pilihan kepada RBT. Ia ada empat bidang: konsep asas pemikiran komputasional, perwakilan data, algoritma dan kod arahan.
- ASK Tingkatan 1Pemikiran komputasional, nombor perduaan, ukuran data, pseudokod dan carta alir, kod arahan, HTML. DSKP: 2 jam seminggu.
- ASK Tingkatan 2Nombor perlapanan dan perenambelasan, ASCII, pilihan bersarang dan ulangan, jenis data, operator. Minimum 64 jam setahun.
- ASK Tingkatan 3Projek atur cara, kriptografi (sifer), carian dan isihan, pangkalan data dan SQL, function dan procedure. Minimum 64 jam setahun.
Status kurikulum, 19 Oktober 2026. Kurikulum Persekolahan 2027 (KP2027) bermula dengan Tingkatan 1 pada 2027 dan Tingkatan 2 pada 2028 (Sinar Harian, 11 Februari 2026; Portal Berita RTM). Pada 2027, murid ASK Tingkatan 2 dan 3 masih mengikuti DSKP KSSM yang diringkaskan di bawah. Murid Tingkatan 1 mula mengikuti KP2027.
Nota ini ditulis semula berdasarkan DSKP ASK terbitan BPK: Tingkatan 1 (2015), Tingkatan 2 (2016) dan Tingkatan 3 (April 2017). Alat di halaman ini menunjukkan jalan kerja, jadi boleh dipakai untuk menyemak latihan sendiri.
Pseudokod, carta alir, carian dan isihan ada halaman sendiri: carta alir dan pseudokod dengan contoh dan latihan.
Asas Sains Komputer Tingkatan 1
Nota ASK Tingkatan 1 ikut DSKP 2015. Empat bidang, enam standard kandungan.
| Bidang | Standard kandungan | Yang dibuat |
|---|---|---|
| Konsep asas pemikiran komputasional | 1.1 Asas Pemikiran Komputasional | Guna empat teknik untuk selesaikan masalah |
| Perwakilan data | 2.1 Sistem Nombor Perduaan | Tukar perduaan dan perpuluhan, tambah dan tolak, kaitkan dengan ASCII |
| 2.2 Ukuran Data | Bandingkan format imej dan audio, tukar unit bit hingga terabait | |
| Algoritma | 3.1 Pembangunan Algoritma | Pseudokod dan carta alir dengan pelbagai pilihan dan ulangan, cari ralat |
| Kod arahan | 4.1 Kod Arahan | Pemboleh ubah, operator matematik, atur cara dengan pilihan dan ulangan |
| 4.2 Kod Arahan HTML | Papan cerita dan laman sesawang ringkas |
Pemikiran komputasional: empat teknik
DSKP menamakan empat teknik: leraian (decomposition), pengecaman corak (pattern recognition), peniskalaan (abstraction) dan pengitlakan (generalisation). Contoh penuh setiap teknik ada di bahagian pemikiran komputasional halaman carta alir.
Nombor perduaan
Nombor perduaan (asas 2) hanya ada dua digit, 0 dan 1. Setiap digit dipanggil bit. Nilai tempatnya berganda dari kanan ke kiri: 1, 2, 4, 8, 16 dan seterusnya.
| Nilai tempat | 8 (2³) | 4 (2²) | 2 (2¹) | 1 (2⁰) |
|---|---|---|---|---|
| 1101₂ | 1 | 1 | 0 | 1 |
Jadi 1101₂ = 8 + 4 + 0 + 1 = 13 dalam perpuluhan.
Perpuluhan ke perduaan pula guna bahagi dengan 2 berulang kali, kemudian baca baki dari bawah ke atas. Cuba dengan penukar ini; ia menunjukkan setiap baris jalan kerja.
Tambah dan tolak perduaan
| Tambah | Hasil |
|---|---|
0 + 0 | 0 |
0 + 1 | 1 |
1 + 1 | 0, bawa 1 (10₂) |
1 + 1 + 1 | 1, bawa 1 (11₂) |
| Tolak | Hasil |
|---|---|
0 − 0 | 0 |
1 − 0 | 1 |
1 − 1 | 0 |
0 − 1 | 1, pinjam 1 dari lajur kiri |
Latihan tambah dan tolak perduaan
1011 + 110 = ?
SP 2.1.6 menggabungkan operasi ini dengan kod ASCII. Contoh: huruf "A" ialah 65 atau 1000001. Tambah 32 (100000) dan anda dapat 97 atau 1100001, iaitu huruf "a". Jadual ASCII penuh ada di bahagian Tingkatan 2.
Ukuran data: bit, bait dan KB
1 bait = 8 bit. Selepas itu ada dua cara mengira, dan kedua-duanya dipakai:
- Langkah 1,024 (binari): 1 KB = 1,024 bait, 1 MB = 1,024 KB. Piawai IEC menamakan unit ini kibibait (KiB), mebibait (MiB) dan seterusnya.
- Langkah 1,000 (SI): 1 KB = 1,000 bait, 1 MB = 1,000 KB.
Kedua-dua konvensyen diterangkan oleh NIST dalam nota awalan untuk gandaan binari. Untuk latihan sekolah, ikut cara yang digunakan dalam buku teks dan oleh guru anda.
Saiz imej dan audio tanpa mampatan
Saiz imej = lebar × tinggi × kedalaman warna (bit) ÷ 8. Imej 800 × 600 piksel dengan warna 24 bit: 800 × 600 × 24 ÷ 8 = 1,440,000 bait, iaitu kira-kira 1.37 MB (langkah 1,024) atau 1.44 MB (langkah 1,000). Kedalaman warna n bit memberi 2n warna: 8 bit = 256 warna, 24 bit = 16,777,216 warna.
Saiz audio = kadar sampel × kedalaman bit × bilangan saluran × saat ÷ 8. Satu minit audio 44,100 Hz, 16 bit, stereo: 44,100 × 16 × 2 × 60 ÷ 8 = 10,584,000 bait.
| Format | Jenis | Ciri ringkas |
|---|---|---|
| BMP (*.bmp) | Imej | Biasanya tanpa mampatan, fail besar |
| JPEG (*.jpeg) | Imej | Mampatan yang membuang sedikit butiran, fail kecil, sesuai untuk foto |
| TIFF (*.tiff) | Imej | Kualiti tinggi, sering tanpa kehilangan butiran, fail besar |
| GIF (*.gif) | Imej | Maksimum 256 warna, boleh beranimasi |
| WAV (*.wav) | Audio | Biasanya tanpa mampatan, fail besar |
| MP3 (*.mp3) | Audio | Dimampatkan, fail jauh lebih kecil |
| MIDI (*.mid) | Audio | Menyimpan arahan not muzik, bukan rakaman bunyi, jadi sangat kecil |
Algoritma dan kod arahan
Tingkatan 1 menulis pseudokod dan melukis carta alir yang ada pelbagai pilihan dan ulangan, kemudian mencari ralat di dalamnya. Semua ini, dengan contoh dan penjejak langkah, ada di halaman carta alir dan pseudokod.
SK 4.1 menukar algoritma itu kepada atur cara: guna pemboleh ubah dan operator matematik (+, −, ×, ÷), tambah pilihan dan ulangan, uji, dan baiki ralat.
Kod arahan HTML
HTML ialah bahasa penanda untuk laman sesawang. Mulakan dengan papan cerita (lakaran susunan laman), kemudian tulis tag. DSKP menyebut tag head, title, body dan paragraph, serta heading, banner, frame, menu, pautan, imej, pull-down menu dan ruang komen.
<!DOCTYPE html>
<html>
<head>
<title>Kelab Robotik</title>
</head>
<body>
<h1>Kelab Robotik Sekolah Rekaan</h1>
<p>Kami berjumpa setiap Rabu.</p>
<img src="robot.png" alt="Robot kelab">
<a href="aktiviti.html">Lihat aktiviti</a>
<select><option>Tingkatan 1</option><option>Tingkatan 2</option></select>
<textarea></textarea>
</body>
</html>Dalam contoh ini, <select> menghasilkan pull-down menu dan <textarea> menyediakan ruang komen.
DSKP menyebut frame. Tag <frame> tidak lagi disokong dalam HTML5; laman moden memaparkan halaman lain di dalam halaman dengan <iframe>. Jika buku teks atau guru menggunakan frame, ikut cara itu untuk latihan kelas.
Asas Sains Komputer Tingkatan 2
Nota ASK Tingkatan 2 ikut DSKP 2016. Tiga bidang, lima standard kandungan.
| Bidang | Standard kandungan | Yang dibuat |
|---|---|---|
| Perwakilan data | 1.1 Sistem Nombor Perlapanan | Tukar perlapanan dengan perpuluhan dan perduaan, ASCII dalam perlapanan |
| 1.2 Sistem Nombor Perenambelasan | Tukar perenambelasan dengan perpuluhan dan perduaan, ASCII dalam perenambelasan | |
| Algoritma | 2.1 Pembangunan Algoritma | Pilihan bersarang, ulangan for dan while-do, cari dan baiki ralat |
| Kod arahan | 3.1 Persekitaran Kod Arahan | Jenis data, pemboleh ubah dan pemalar, input dan output, operator |
| 3.2 Struktur Kod Arahan | Jujukan, pilihan, pilihan bersarang dan ulangan dalam atur cara |
Nombor perlapanan dan perenambelasan
Nombor perlapanan (asas 8) guna digit 0 hingga 7. Nombor perenambelasan (asas 16) guna 0 hingga 9, kemudian A hingga F untuk nilai 10 hingga 15.
| Perpuluhan | Perduaan | Perlapanan | Perenambelasan |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Jalan pintas paling berguna: satu digit perlapanan = 3 bit, satu digit perenambelasan = 4 bit. Jadi 1000001₂ dikumpul dari kanan menjadi 1 | 000 | 001 = 101₈, atau 100 | 0001 = 41₁₆.
Jadual kod ASCII
ASCII piawai menggunakan 7 bit, iaitu kod 0 hingga 127. Kod 32 hingga 126 ialah aksara yang boleh dicetak. Contoh: "A" = 65, "a" = 97, "0" = 48, ruang = 32. Nilai dalam jadual ini mengikut jadual kod dalam RFC 20 (ASCII format for Network Interchange).
| Aksara | Perpuluhan | Perduaan (7 bit) | Perlapanan | Perenambelasan |
|---|---|---|---|---|
| ruang | 32 | 0100000 | 40 | 20 |
| ! | 33 | 0100001 | 41 | 21 |
| " | 34 | 0100010 | 42 | 22 |
| # | 35 | 0100011 | 43 | 23 |
| $ | 36 | 0100100 | 44 | 24 |
| % | 37 | 0100101 | 45 | 25 |
| & | 38 | 0100110 | 46 | 26 |
| ' | 39 | 0100111 | 47 | 27 |
| ( | 40 | 0101000 | 50 | 28 |
| ) | 41 | 0101001 | 51 | 29 |
| * | 42 | 0101010 | 52 | 2A |
| + | 43 | 0101011 | 53 | 2B |
| , | 44 | 0101100 | 54 | 2C |
| - | 45 | 0101101 | 55 | 2D |
| . | 46 | 0101110 | 56 | 2E |
| / | 47 | 0101111 | 57 | 2F |
| 0 | 48 | 0110000 | 60 | 30 |
| 1 | 49 | 0110001 | 61 | 31 |
| 2 | 50 | 0110010 | 62 | 32 |
| 3 | 51 | 0110011 | 63 | 33 |
| 4 | 52 | 0110100 | 64 | 34 |
| 5 | 53 | 0110101 | 65 | 35 |
| 6 | 54 | 0110110 | 66 | 36 |
| 7 | 55 | 0110111 | 67 | 37 |
| 8 | 56 | 0111000 | 70 | 38 |
| 9 | 57 | 0111001 | 71 | 39 |
| : | 58 | 0111010 | 72 | 3A |
| ; | 59 | 0111011 | 73 | 3B |
| < | 60 | 0111100 | 74 | 3C |
| = | 61 | 0111101 | 75 | 3D |
| > | 62 | 0111110 | 76 | 3E |
| ? | 63 | 0111111 | 77 | 3F |
| @ | 64 | 1000000 | 100 | 40 |
| A | 65 | 1000001 | 101 | 41 |
| B | 66 | 1000010 | 102 | 42 |
| C | 67 | 1000011 | 103 | 43 |
| D | 68 | 1000100 | 104 | 44 |
| E | 69 | 1000101 | 105 | 45 |
| F | 70 | 1000110 | 106 | 46 |
| G | 71 | 1000111 | 107 | 47 |
| H | 72 | 1001000 | 110 | 48 |
| I | 73 | 1001001 | 111 | 49 |
| J | 74 | 1001010 | 112 | 4A |
| K | 75 | 1001011 | 113 | 4B |
| L | 76 | 1001100 | 114 | 4C |
| M | 77 | 1001101 | 115 | 4D |
| N | 78 | 1001110 | 116 | 4E |
| O | 79 | 1001111 | 117 | 4F |
| P | 80 | 1010000 | 120 | 50 |
| Q | 81 | 1010001 | 121 | 51 |
| R | 82 | 1010010 | 122 | 52 |
| S | 83 | 1010011 | 123 | 53 |
| T | 84 | 1010100 | 124 | 54 |
| U | 85 | 1010101 | 125 | 55 |
| V | 86 | 1010110 | 126 | 56 |
| W | 87 | 1010111 | 127 | 57 |
| X | 88 | 1011000 | 130 | 58 |
| Y | 89 | 1011001 | 131 | 59 |
| Z | 90 | 1011010 | 132 | 5A |
| [ | 91 | 1011011 | 133 | 5B |
| \ | 92 | 1011100 | 134 | 5C |
| ] | 93 | 1011101 | 135 | 5D |
| ^ | 94 | 1011110 | 136 | 5E |
| _ | 95 | 1011111 | 137 | 5F |
| ` | 96 | 1100000 | 140 | 60 |
| a | 97 | 1100001 | 141 | 61 |
| b | 98 | 1100010 | 142 | 62 |
| c | 99 | 1100011 | 143 | 63 |
| d | 100 | 1100100 | 144 | 64 |
| e | 101 | 1100101 | 145 | 65 |
| f | 102 | 1100110 | 146 | 66 |
| g | 103 | 1100111 | 147 | 67 |
| h | 104 | 1101000 | 150 | 68 |
| i | 105 | 1101001 | 151 | 69 |
| j | 106 | 1101010 | 152 | 6A |
| k | 107 | 1101011 | 153 | 6B |
| l | 108 | 1101100 | 154 | 6C |
| m | 109 | 1101101 | 155 | 6D |
| n | 110 | 1101110 | 156 | 6E |
| o | 111 | 1101111 | 157 | 6F |
| p | 112 | 1110000 | 160 | 70 |
| q | 113 | 1110001 | 161 | 71 |
| r | 114 | 1110010 | 162 | 72 |
| s | 115 | 1110011 | 163 | 73 |
| t | 116 | 1110100 | 164 | 74 |
| u | 117 | 1110101 | 165 | 75 |
| v | 118 | 1110110 | 166 | 76 |
| w | 119 | 1110111 | 167 | 77 |
| x | 120 | 1111000 | 170 | 78 |
| y | 121 | 1111001 | 171 | 79 |
| z | 122 | 1111010 | 172 | 7A |
| { | 123 | 1111011 | 173 | 7B |
| | | 124 | 1111100 | 174 | 7C |
| } | 125 | 1111101 | 175 | 7D |
| ~ | 126 | 1111110 | 176 | 7E |
Pilihan bersarang dan ulangan
SK 2.1 menulis pseudokod dan carta alir untuk pilihan bersarang serta ulangan for dan while-do. SK 3.2 menukarnya kepada atur cara. Contoh setiap struktur, dalam bentuk pseudokod dan carta alir sebelah-menyebelah, ada di halaman struktur kawalan dalam carta alir dan pseudokod.
Jenis data, pemboleh ubah dan operator
| Jenis data | Menyimpan | Contoh nilai |
|---|---|---|
| integer | Nombor bulat | 15, -3 |
| double | Nombor perpuluhan | 3.75 |
| boolean | Benar atau palsu | true, false |
| char | Satu aksara | 'A' |
| string | Rentetan aksara | "Ali" |
Pemboleh ubah boleh berubah nilai semasa atur cara berjalan, contohnya markah. Pemalar kekal, contohnya PI = 3.142.
Operator perbandingan
| Operator | Maksud |
|---|---|
== | sama dengan |
!= | tidak sama dengan |
> < | lebih besar, lebih kecil |
>= <= | lebih besar atau sama, lebih kecil atau sama |
Operator logik
| A | B | A AND B | A OR B | NOT A |
|---|---|---|---|---|
| benar | benar | benar | benar | palsu |
| benar | palsu | palsu | benar | palsu |
| palsu | benar | palsu | benar | benar |
| palsu | palsu | palsu | palsu | benar |
Tanda operator berbeza sedikit antara bahasa pengaturcaraan. Contohnya, sesetengah bahasa menulis and, yang lain &&.
Asas Sains Komputer Tingkatan 3
Nota ASK Tingkatan 3 ikut DSKP April 2017. Empat bidang, lima standard kandungan.
| Bidang | Standard kandungan | Yang dibuat |
|---|---|---|
| Konsep asas pemikiran komputasional | 1.1 Pembangunan Atur Cara (Projek) | Projek mini ikut lima fasa pembangunan atur cara |
| Perwakilan data | 2.1 Kriptografi dalam Keselamatan Data | Sulit dan nyahsulit dengan sifer songsang, Caesar, Pigpen dan transposisi |
| Algoritma | 3.1 Pembangunan Algoritma | Carian linear dan binari, isihan buih dan baldi |
| Kod arahan | 4.1 Pangkalan Data dan SQL | Entiti, atribut, kekunci, kekardinalan, borang, SELECT, laporan |
| 4.2 Struktur Kod Arahan | Function (dalaman dan dihasilkan sendiri) dan procedure |
Lima fasa pembangunan atur cara
- Analisis masalah: apa input, apa output, apa yang perlu dikira.
- Reka bentuk atur cara: tulis pseudokod atau lukis carta alir.
- Pengekodan: tukar reka bentuk kepada kod.
- Pengujian dan penyahpepijatan: cuba pelbagai input, cari dan baiki ralat.
- Dokumentasi: catat cara atur cara berfungsi dan cara menggunakannya.
DSKP minta murid melaporkan teknik pemikiran komputasional yang dipakai dalam setiap fasa, dan menghasilkan projek mini berkumpulan untuk atur cara aritmetik.
Kriptografi: sifer Caesar, songsang, Pigpen dan transposisi
Kriptografi melindungi data dengan menukar mesej biasa kepada mesej rahsia. Proses menukar ke bentuk rahsia dipanggil penyulitan (encryption). Proses membacanya semula dipanggil nyahsulit (decryption).
- Sifer songsang (reverse cipher): tulis mesej dari belakang. "SAINS" menjadi "SNIAS".
- Sifer Caesar, sejenis sifer penggantian: anjak setiap huruf beberapa tempat. Dengan anjakan 3, A menjadi D dan "ASK" menjadi "DVN".
- Sifer Pigpen, juga sifer penggantian: setiap huruf diganti dengan simbol daripada grid.
- Sifer transposisi: huruf tidak berubah, tetapi kedudukannya disusun semula.
Contoh sifer transposisi: pagar dua baris
Tulis "KOMPUTER" berselang-seli pada dua baris, kemudian baca baris atas dahulu, diikuti baris bawah.
Baris 1: K . M . U . E .
Baris 2: . O . P . T . R
Mesej sulit: KMUE OPTR → KMUEOPTRUntuk nyahsulit, bahagi mesej sulit kepada dua separuh dan baca bersilang: K-O-M-P-U-T-E-R.
Carian dan isihan
| Algoritma | Cara | Perlu senarai tersusun? |
|---|---|---|
| Carian linear | Semak item satu demi satu dari awal | Tidak |
| Carian binari | Semak item tengah, buang separuh yang tidak mungkin, ulang | Ya |
| Isihan buih | Banding dua item bersebelahan, tukar jika tersalah susun, ulang pusingan | Tidak berkaitan |
| Isihan baldi | Agihkan item ke dalam "baldi" ikut julat, isih setiap baldi, gabung | Tidak berkaitan |
Pseudokod setiap algoritma, dengan alat yang menunjukkan langkahnya satu per satu, ada di bahagian carian dan isihan pada halaman carta alir.
Pangkalan data dan SQL
Pangkalan data menyimpan data dalam jadual. Setiap jadual mewakili satu entiti, dan setiap lajur ialah atribut. Kekunci primer mengenal pasti setiap rekod secara unik. Kekunci asing ialah kekunci primer jadual lain, digunakan untuk menghubungkan dua jadual.
Contoh di bawah menggunakan Kedai Buku Cahaya, sebuah kedai rekaan. Satu penerbit ada banyak buku, jadi hubungan Penerbit ke Buku ialah satu kepada banyak (1:M). Contoh hubungan satu kepada satu (1:1): seorang murid dengan satu kad perpustakaan.
| KodBuku (PK) | Tajuk | Harga | KodPenerbit (FK) |
|---|---|---|---|
| B01 | Robot Pertamaku | 18.90 | P01 |
| B02 | Kod untuk Remaja | 25.00 | P02 |
| B03 | Lakar dan Reka | 12.50 | P01 |
| B04 | Rahsia Sifer | 14.00 | P02 |
| KodPenerbit (PK) | NamaPenerbit |
|---|---|
| P01 | Penerbit Contoh Satu |
| P02 | Penerbit Contoh Dua |
-- 1. Semua tajuk dan harga
SELECT Tajuk, Harga FROM Buku;
-- 2. Buku bawah RM20
SELECT Tajuk, Harga FROM Buku WHERE Harga < 20;
-- 3. Susun dari paling mahal
SELECT Tajuk, Harga FROM Buku ORDER BY Harga DESC;
-- 4. Penerbit P01 DAN harga bawah RM15
SELECT Tajuk FROM Buku WHERE KodPenerbit = 'P01' AND Harga < 15;| Pertanyaan | Hasil |
|---|---|
| 2 (WHERE Harga < 20) | Robot Pertamaku 18.90, Lakar dan Reka 12.50, Rahsia Sifer 14.00 |
| 3 (ORDER BY Harga DESC) | Kod untuk Remaja, Robot Pertamaku, Rahsia Sifer, Lakar dan Reka |
| 4 (AND) | Lakar dan Reka |
Tukar AND kepada OR dalam pertanyaan 4 dan hasilnya menjadi Robot Pertamaku, Lakar dan Reka, dan Rahsia Sifer: semua buku P01, serta semua buku bawah RM15.
Function dan procedure
Kedua-duanya ialah blok kod yang diberi nama supaya boleh dipanggil berulang kali. Dalam kebanyakan bahasa pengaturcaraan, function memulangkan satu nilai, manakala procedure melakukan tugas tanpa memulangkan nilai.
// function dihasilkan sendiri: pulangkan luas
FUNCTION luas(panjang, lebar)
RETURN panjang × lebar
END FUNCTION
// procedure: papar tanpa memulangkan nilai
PROCEDURE paparSalam(nama)
PAPAR "Selamat datang, " + nama
END PROCEDURE
jawapan = luas(4, 3) // jawapan = 12
paparSalam("Pelajar A")Function dalaman (built-in) pula sudah disediakan oleh bahasa itu, contohnya function untuk membundarkan nombor atau mengira panjang rentetan.
Sumber
- Bahagian Pembangunan Kurikulum, KPM: DSKP KSSM Asas Sains Komputer Tingkatan 1 (2015), Tingkatan 2 (2016) dan Tingkatan 3 (April 2017).
- RFC 20, ASCII format for Network Interchange (1969): jadual kod ASCII.
- NIST, Prefixes for binary multiples: unit 1,024 dan 1,000.
- Sinar Harian, 11 Februari 2026 dan Portal Berita RTM, 18 November 2025: fasa pelaksanaan KP2027.
Contoh kedai, penerbit, buku, kelab dan nama murid di halaman ini ialah rekaan. Rajah dilukis sendiri oleh NotaRBT.my.