PINTAS 2026 · Penilaian Intervensi Terbilang Akademik Selangor
Sains Komputer Tingkatan 5 · Kertas 1 · Set 1 · 2 jam 30 minit
Bahagian A
20 soalan · 50 markah
Bahagian B
4 soalan · 50 markah
Jumlah
100 markah
Sumber
Peraturan Pemarkahan rasmi
Penyelarasan dengan Peraturan Pemarkahan rasmi
Kandungan di bawah kini mengikut skema rasmi MPSM Selangor. Enam jawapan telah diubah daripada draf awal — setiap satu ditanda dengan kotak biru Penyelarasan pada soalan berkenaan:
A6 — X kini "isytihar / mendefinisikan fungsi", bukan penerangan jenis pulangan.
A7 — istilah fasa SDLC: Analisis masalah · Reka bentuk penyelesaian · Laksana penyelesaian.
B2(b) — kekardinalan ERD ialah M : N antara MURID dan ACARA.
B4 — had 50 peserta wajib dimasukkan ke dalam carta alir bersama pembilang dan gelung. Nasihat awal saya supaya mengabaikannya adalah salah.
Jadual Spesifikasi Ujian
35 item · 100 markah
Pemetaan Standard Pembelajaran bagi setiap soalan, diambil daripada JSU PINTAS T5 2026.
Taburan aras
Rendah (R)
18 · 51.4%
Sederhana (S)
10 · 28.6%
Tinggi (T)
7 · 20.0%
Wajaran sasaran
50 : 30 : 20
Taburan konstruk
P01 · P02 · P03
2 · 7 · 2
P04 · P05 · P06
1 · 1 · 5
P07 · P08 · P09
4 · 2 · 1
A01 · N01 · V01 · T01
4 · 2 · 2 · 1
Wajaran kertas
Kertas 1
70%
Kertas 2
30%
Bahagian A
50 markah
Bahagian B
50 markah
Soalan
Standard Pembelajaran
Markah
A1
1.1.1 Menerangkan keperluan penyelesaian masalah berstrategi
2
A2
1.2.6 Menterjemah algoritma ke bahasa pengaturcaraan
2
A3
1.3.4 Mengisytiharkan, memulakan dan menetapkan nilai pada pemboleh ubah dan pemalar 1.3.5 Menggunakan penyataan umpukan dan penyataan aritmetik
3
A4
1.4.4 Menulis atur cara menggunakan struktur kawalan ulangan
4
A5
1.5.4 Menghasilkan atur cara yang mudah dibaca dengan gaya yang baik (komen, nama pemboleh ubah bermakna, inden)
3
A6
1.6.2 Menggunakan subatur cara dan memahami konsep menghantar parameter serta mengembalikan data
2
A7
1.7.1 Menghuraikan setiap fasa dalam kitaran hayat pembangunan sistem (SDLC)
3
A8
2.1.3 Mengenal pasti entiti, atribut, set hubungan dan kekardinalan 2.2.2 Menentukan kunci primer dan/atau kunci asing bagi setiap entiti
2
A9
2.2.3 Menghasilkan gambar rajah perhubungan entiti (ERD) untuk memodelkan data hubungan
4
A10
2.2.5 Menjelaskan konsep kebergantungan fungsi sepenuh, separa dan transitif
3
A11
3.1.2 Menilai produk interaktif berdasarkan tujuan dan prinsip asas reka bentuk interaktif
3
A12
3.2 Paparan dan Reka Bentuk Skrin
4
A13
1.1.4 Melaksanakan penyulitan dan nyahsulit data menggunakan Caesar Cipher
2
A14
1.2.2 Menerangkan konsep asas seni bina komputer (Von Neumann)
2
A15
1.3.2 Menyenaraikan dan melukis simbol get logik
2
A16
2.2.1 Melakar ERD bagi permasalahan yang diberi
1
A17
2.2.3 Membina pangkalan data hubungan menggunakan SQL: Table
2
A18
3.3.1 Mengkaji dan merumus prinsip reka bentuk laman web dari sudut kesesuaian pengguna dan tujuan laman web
3
A19
3.1.2 Menterjemah atur cara mudah daripada Bahasa Penskripan Klien kepada carta alir
2
A20
3.1.2 Menterjemah atur cara mudah daripada Bahasa Penskripan Klien kepada carta alir
1
B1
1.3.2 Memilih dan menggunakan jenis data yang bersesuaian 1.3.6 Menulis atur cara untuk memasukkan input dari papan kekunci dan memaparkan output
10
B2
2.2.3 Menghasilkan ERD untuk memodelkan data hubungan 2.2.6 Melaksanakan proses penormalan data sehingga 3NF terhadap skema hubungan
15
B3
2.2.3 Membina pangkalan data hubungan menggunakan SQL: Table 2.2.4 Menggunakan SQL untuk memanipulasi data
10
B4
1.2.2 Membina algoritma penyelesaian masalah menggunakan struktur kawalan 1.4.2 Menulis atur cara menggunakan struktur kawalan pilihan dengan menggabungkan operator hubungan dan operator logikal
15
Lajur konstruk (P01–P09, A01, N01, V01, T01) dan aras (R/S/T) bagi setiap item tidak dapat dibaca dengan tepat daripada fail JSU yang dimuat naik kerana penjajaran lajur hilang semasa pengekstrakan. Ringkasan jumlah di atas adalah tepat; sila rujuk fail JSU asal untuk pecahan per item.
Bahagian A
20 soalan · 50 markah · 60 minit
Jawab semua soalan. Jawapan dan pecahan markah mengikut Peraturan Pemarkahan 3770/1(PP) Set 1.
12m
1.1.1 Menerangkan keperluan penyelesaian masalah berstrategi
Rajah 1 menunjukkan empat panel bersiri proses pengeluaran wang dari mesin ATM: masukkan kad → masukkan PIN (****) → masukkan nilai (RM 200) → ambil wang.
Nyatakan: (a) Teknik pemikiran komputasional yang digunakan. (b) Satu ciri bagi teknik tersebut.
Jawapan
(a) Algoritma 1 m
(b) Mana-mana satu: 1 m
Arahan langkah demi langkah
Arahan yang mengikut urutan
Ada input, proses dan output
Arahan yang ada permulaan dan penamat
Justifikasi
Rajah menunjukkan satu jujukan langkah bertertib yang dihubungkan dengan anak panah. Ini takrifan algoritma: siri arahan tersusun untuk menyelesaikan satu tugasan.
Peleraian pula memecahkan masalah besar kepada sub-masalah yang boleh diselesaikan berasingan. Di sini panel 3 mustahil tanpa panel 2 — yang ditonjolkan ialah turutan, bukan pemecahan.
Skema membenarkan empat ciri. Latih murid menulis ciri yang paling selamat: "Arahan langkah demi langkah yang mengikut urutan" — ia merangkumi dua daripada empat frasa yang diterima.
22m
1.2.6 Menterjemah algoritma ke bahasa pengaturcaraan
Jadual 1 menunjukkan terjemahan baris algoritma kepada kod Java. Lengkapkan dua ruang kosong.
Algoritma
Kod atur cara Java
Mula
public static void main (String [] args) {
Umpuk pemboleh ubah A kepada 5
int A = 5;
Umpuk pemboleh ubah B kepada 7
int B = 7;
Kira jumlah A dan B
.................... ;
PAPAR jumlah
.................... (jumlah);
Tamat
}
Jawapan
Kira jumlah A dan B — int jumlah = A + B1 m
PAPAR jumlah — System.out.println atau System.out.print1 m
Justifikasi
"Kira jumlah A dan B" memerlukan pemboleh ubah baharu untuk menyimpan hasil, jadi pengisytiharan int mesti ada. Kedua-dua A dan B integer, maka hasil tambah juga integer.
Tanda ; dan (jumlah); sudah tercetak dalam kertas soalan, jadi murid tidak perlu menulisnya semula.
Kesilapan lazim: menulis jumlah = A + B; tanpa int. Pemboleh ubah jumlah belum diisytiharkan di mana-mana baris sebelumnya, jadi kod tidak akan dikompil.
33m
1.3.4 Mengisytiharkan pemboleh ubah dan pemalar · 1.3.5 Penyataan umpukan dan aritmetik
Rajah 2 menunjukkan segmen kod Java.
final double HARGA_BUKU = 12.50;
int bilanganBuku = 2;
double jumlahHarga;
jumlahHarga = HARGA_BUKU * bilanganBuku;
System.out.println("Jumlah harga ialah : RM " + jumlahHarga);
(a) Nyatakan pemalar. 1 m (b) Hitungkan nilai jumlahHarga. 2 m
Jawapan
(a)HARGA_BUKU1 m
(b)
12.50 * 2 atau 12.50 x 2 <-- 1 markah (kaedah)
= 25 atau 25.0 <-- 1 markah (jawapan)
Skema rasmi menerima 25 mahupun 25.0.
Justifikasi
(a) Kata kunci final ialah penanda pemalar dalam Java — nilainya tidak boleh diubah selepas diumpukkan. Konvensyen HURUF_BESAR_BERGARIS_BAWAH mengukuhkan lagi pengenalpastian ini. bilanganBuku pula pemboleh ubah kerana tiada final.
(b) Soalan memperuntukkan 2 markah dengan kotak besar — kerja pengiraan mesti ditunjukkan. Menulis "25" sahaja tanpa langkah berisiko kehilangan markah kaedah.
Paparan Java sebenar ialah Jumlah harga ialah : RM 25.0 kerana jumlahHarga berjenis double. Boleh dijadikan bahan perbincangan walaupun skema menerima kedua-duanya.
44m
1.4.4 Menulis atur cara menggunakan struktur kawalan ulangan
Rajah 3(a) menunjukkan gelung for yang tidak lengkap. Lengkapkan dengan simbol yang betul supaya menghasilkan output pada Rajah 3(b).
public class nombor {
public static void main(String[] args) {
int jumlah = 0 ;
for (int i [ 1 ] 1; i [ 2 ] 5 ; i [ 3 ] ) {
jumlah = jumlah [ 4 ] 1;
System.out.print (jumlah) ;
}
}
}
Rajah 3(b) — OUTPUT : 1234
Jawapan
Ruang
Simbol
Markah
1 — permulaan
=
1 m
2 — syarat
<
1 m
3 — penambahan
++
1 m
4 — operasi jumlah
+
1 m
for (int i = 1; i < 5 ; i++ ) {
jumlah = jumlah + 1;
System.out.print (jumlah) ;
}
Justifikasi
Output 1234 memberitahu dua perkara: gelung berjalan 4 kali, dan nilai bertambah 1 setiap pusingan.
Pusingan
i
Syarat i < 5
jumlah
Dipapar
1
1
Benar
0 + 1 = 1
1
2
2
Benar
1 + 1 = 2
2
3
3
Benar
2 + 1 = 3
3
4
4
Benar
3 + 1 = 4
4
5
5
Palsu → keluar
—
—
Jejak meja mengesahkan output 1234.
Kenapa < dan bukan <=? Jika i <= 5, gelung berjalan 5 kali dan output menjadi 12345.
System.out.print (bukan println) sudah tercetak dalam soalan — sebab itulah output bercantum pada satu baris.
53m
1.5.4 Atur cara mudah dibaca — komen, nama pemboleh ubah bermakna, inden
Jadual 2 menunjukkan segmen kod Java. Nyatakan amalan terbaik pengaturcaraan yang digunakan.
ii) Jenis data yang sesuai atau Pemboleh ubah yang bermakna 1 m
iii) Inden yang konsisten atau Inden 1 m
Justifikasi
i)// ialah penanda komen sebaris. Komen diabaikan oleh pengkompil dan wujud untuk menerangkan tujuan kod kepada pembaca manusia.
ii) Skema menerima dua sudut untuk baris yang sama: nama markahPeperiksaan yang jelas maksudnya, atau pemilihan int yang bersesuaian untuk markah nombor bulat. Kedua-duanya betul — murid hanya perlu tulis satu.
iii) Baris System.out.println dijorokkan ke dalam berbanding if dan kurungan yang membalutnya. Inden menunjukkan hierarki blok kod secara visual.
Jangan keliru: baris iii) juga mengandungi struktur pilihan if-else, tetapi itu struktur kawalan, bukan amalan terbaik. Yang dinilai ialah gaya penulisan, bukan logik.
62m
1.6.2 Subatur cara, menghantar parameter dan mengembalikan data
Rajah 4 menunjukkan atur cara Java yang mengandungi subatur cara. Nyatakan tujuan sintaks pada X dan Y.
public class Main {
public static void main(String[] args) {
double jumlah = tambah(83, 88);
}
X Y
[--------------] [------------------]
static double tambah (double a, double b) {
return a + b; // pengiraan dalam function
}
}
Jawapan
X : Mengisytihar / mendefinisikan fungsi (subatur cara). 1 m
Y : Menerima parameter / input / argumen bernilai jenis double. 1 m
Justifikasi
Penyelarasan: draf awal saya menghuraikan X sebagai "jenis data nilai pulangan dan nama subatur cara". Skema rasmi lebih ringkas — isytihar / definisikan fungsi. Jawapan yang lebih panjang sepatutnya masih diterima, tetapi murid tidak perlu menghafal versi panjang.
X ialah pengepala fungsi: ia mengumumkan kewujudan subatur cara bernama tambah yang memulangkan nilai double.
Y ialah pintu masuk data. Nilai 83 dan 88 (argumen) disalin ke dalam a dan b (parameter) mengikut susunan. Tanpa Y, subatur cara tidak boleh menerima input luar.
Istilah untuk murid: nilai yang dihantar = argumen (83, 88); nilai yang diterima = parameter (a, b).
73m
1.7.1 Menghuraikan setiap fasa dalam kitaran hayat pembangunan sistem (SDLC)
Jadual 3 menunjukkan sebahagian aktiviti dalam fasa SDLC. Nyatakan fasa bagi setiap aktiviti.
Aktiviti
Fasa
Jadual Input (tahun_lahir) / Proses (baca input, dapatkan tahunSemasa, kira umur) / Output (umur)
i)
Carta alir: MULA → INPUT tahunLahir → KIRA umur → OUTPUT umur → TAMAT
ii)
Senarai kod Java bernombor baris 1–15 (kelas kiraUmur)
iii)
Jawapan
i) Analisis masalah 1 m
ii) Reka bentuk penyelesaian 1 m
iii) Laksana penyelesaian 1 m
Justifikasi
Penyelarasan: istilah fasa ketiga dalam skema rasmi ialah "Laksana penyelesaian", bukan "Pengekodan" seperti draf awal saya. Sila gunakan istilah skema semasa menanda; "Pengekodan" mungkin diterima sebagai sinonim tetapi jangan bergantung padanya.
i) Jadual IPO (Input–Proses–Output) ialah artifak fasa analisis. Kita hanya mengenal pasti apa yang diperlukan tanpa memikirkan bagaimana ia dilaksanakan.
ii) Carta alir ialah perwakilan logik penyelesaian — menjawab "bagaimana" secara bebas bahasa pengaturcaraan. Pseudokod tergolong dalam fasa yang sama.
iii) Kod Java sebenar yang boleh dikompil = pelaksanaan reka bentuk dalam bahasa pengaturcaraan tertentu.
Corak untuk murid: APA (analisis masalah) → BAGAIMANA (reka bentuk penyelesaian) → TULIS (laksana penyelesaian) → UJI → DOKUMENTASI.
82m
2.1.3 Entiti, atribut, hubungan, kekardinalan · 2.2.2 Kunci primer dan kunci asing
Rajah 5 menunjukkan jadual dalam pangkalan data sistem tempahan bilik hotel.
noPelanggan
nama
alamat
P001
Suria
Taman Selesa Jaya
P002
Siti
Taman Mutiara Indah
Jadual PELANGGAN
noTempahan
tarikhMasuk
noPelanggan
T001
01.06.2025
P001
T002
03.06.2025
P001
T003
05.06.2025
P002
Jadual TEMPAHAN
(a) Kunci asing. 1 m (b) Kekardinalan bagi hubungan antara PELANGGAN dan TEMPAHAN. 1 m
Jawapan
(a)noPelanggan1 m
(b) 1 : M / One to Many / Satu ke Banyak 1 m
Justifikasi
(a) Kunci asing ialah medan dalam satu jadual yang merujuk kunci primer jadual lain. noPelanggan ialah kunci primer di PELANGGAN; kemunculannya semula di TEMPAHAN menjadikannya kunci asing di sana.
Skema rasmi hanya menuntut noPelanggan. Namun galakkan murid menulis "noPelanggan dalam jadual TEMPAHAN" — lebih tepat dan tiada risiko.
(b) Bukti terus daripada data: P001 muncul dua kali di TEMPAHAN (T001 dan T002) — seorang pelanggan boleh membuat banyak tempahan. Sebaliknya setiap noTempahan hanya bercantum dengan satu noPelanggan.
94m
2.2.3 Menghasilkan ERD untuk memodelkan data hubungan
Rajah 6 menunjukkan skema hubungan:
ACARA ( kodAcara <KP>, namaAcara, catatan, noMurid <KA> )
Lakarkan simbol ERD bagi komponen: catatan, ACARA, kodAcara.
Notasi Chen memperuntukkan bentuk khusus untuk setiap peranan: segi empat tepat untuk entiti, elips untuk atribut, dan elips bergaris bawah untuk kunci primer.
Markah keempat itu untuk garis bawah. Skema jelas memecahkan kodAcara kepada 2 markah — satu untuk elips, satu lagi untuk garis bawah atau label KP. Inilah markah yang paling kerap tergelincir.
Jika noMurid <KA> pula diminta, simbolnya elips bergaris putus-putus.
103m
2.2.5 Kebergantungan fungsi sepenuh, separa dan transitif
Rajah 7 menunjukkan ciri kebergantungan fungsi antara atribut. Nyatakan jenisnya.
Ruang
Ciri yang diberi
i)
Atribut bukan kunci yang bergantung dengan atribut bukan kunci yang lain dalam jadual
ii)
Atribut bukan kunci yang bergantung dengan semua atribut kunci dalam jadual
iii)
Atribut bukan kunci yang bergantung dengan salah satu atribut kunci dalam jadual
Jawapan
i) Transitif 1 m
ii) Sepenuh 1 m
iii) Separa 1 m
Justifikasi
i) "bukan kunci → bukan kunci" — pergantungan berantai (A → B → C), tidak melalui kunci primer secara langsung. Contoh: noMurid → kodKelas → namaGuruKelas. Dibuang pada peringkat 3NF.
ii) "semua atribut kunci" — bergantung kepada kunci komposit secara keseluruhan. Inilah keadaan yang dikehendaki dan menandakan jadual sudah 2NF.
iii) "salah satu atribut kunci" — hanya sebahagian daripada kunci komposit. Dihapuskan semasa penormalan 1NF → 2NF.
Kaitkan dengan B2. Dalam jadual PENDAFTARAN, namaAcara bergantung kepada kodAcara sahaja — kebergantungan separa, sebab itulah ia dipecahkan ke jadual ACARA.
113m
3.1.2 Menilai produk interaktif berdasarkan prinsip asas reka bentuk interaktif
Jadual 4 merupakan borang penilaian bagi satu aplikasi interaktif. Nyatakan prinsip reka bentuk interaktif yang dinilai.
Prinsip
Penilaian
i)
Saya mudah memahami aplikasi ini dan tidak perlu diajar banyak kali untuk menggunakannya.
ii)
Apabila menekan apa-apa butang, saya tahu apa yang akan dipaparkan selepas itu.
iii)
Butang navigasi diletakkan dalam satu kumpulan pada bahagian yang sama di semua paparan aplikasi.
Jawapan
i) Boleh dipelajari (Learnability)1 m
ii) Kebolehan untuk menjangka (Predictability)1 m
iii) Konsistensi (Consistency)1 m
Justifikasi
Penyelarasan: draf awal saya memberi Affordan dan Pemetaan untuk (i) dan (ii). Skema rasmi menggunakan set istilah kebolehgunaan — Learnability, Predictability, Consistency. Gunakan istilah rasmi ini dalam pengajaran.
i) "Tidak perlu diajar banyak kali" ialah ungkapan langsung bagi learnability — sejauh mana mudah seseorang menguasai penggunaan sistem buat kali pertama.
ii) Pengguna dapat menjangka hasil sebelum bertindak. Perhatikan bezanya dengan maklum balas: maklum balas berlaku selepas tindakan, manakala jangkaan wujud sebelum tindakan.
iii) "Bahagian yang sama di semua paparan" ialah keseragaman merentas skrin — definisi konsistensi.
Frasa penanda untuk murid: "tak perlu diajar" → boleh dipelajari · "saya tahu apa akan jadi" → kebolehan menjangka · "tempat sama / sentiasa serupa" → konsistensi.
124m
3.2 Paparan dan Reka Bentuk Skrin
Jadual 5 menunjukkan proses reka bentuk interaksi yang tidak mengikut urutan. Susun mengikut urutan yang betul dengan menulis 1, 2, 3 dan 4.
Jawapan
Proses Reka Bentuk Interaksi
Jawapan
Markah
Membangunkan reka bentuk alternatif
2
1 m
Membina prototaip interaksi
3
1 m
Mengenal pasti keperluan interaksi
1
1 m
Membuat penilaian reka bentuk interaksi
4
1 m
Justifikasi
Mengenal pasti keperluan interaksi — siapa penggunanya, apa yang mereka perlu buat.
Membangunkan reka bentuk alternatif — jana beberapa pilihan penyelesaian untuk dibandingkan.
Membina prototaip interaksi — jadikan alternatif terpilih sebagai model yang boleh dicuba pengguna.
Membuat penilaian reka bentuk interaksi — uji prototaip dengan pengguna sebenar.
Logik yang mudah diingat: tidak boleh menilai yang belum dibina; tidak boleh membina sebelum ada pilihan reka bentuk; tidak boleh mereka sebelum tahu keperluan.
132m
1.1.4 Penyulitan dan nyahsulit data menggunakan Caesar Cipher
Jadual 6 menunjukkan formula Caesar Cipher. Lengkapkan jadual.
Arah anjakan mesti betul. Formula En(x) diberi untuk enkripsi. Apabila diberi teks sifer dan diminta teks biasa, kita perlu songsangkan — tolak, bukan tambah. Ramai murid tersilap menambah dan menghasilkan "YZKS".
Fungsi mod 26: memastikan huruf berkitar semula ke A selepas Z. Contoh: Z(25)+3 = 28 mod 26 = 2 = C.
142m
1.2.2 Konsep asas seni bina komputer (Von Neumann)
Rajah 8 menunjukkan seni bina komputer. Di dalam kotak CPU terdapat Unit Kawalan, ALU dan komponen X. CPU berhubung dua hala dengan Ingatan Utama.
(a) Nyatakan komponen X. 1 m (b) Nyatakan fungsi X. 1 m
Jawapan
(a) Daftar / Register 1 m
(b) Menyimpan data dan arahan. 1 m
Justifikasi
(a) CPU terdiri daripada tiga komponen utama: Unit Kawalan, ALU dan Daftar. Dua sudah dilabel dalam rajah, jadi X mestilah Daftar melalui proses penyingkiran.
(b) Skema rasmi menerima jawapan ringkas "menyimpan data dan arahan". Daftar ialah storan terpantas dalam sistem tetapi bersaiz sangat kecil.
Galakkan murid menambah perkataan sementara — "menyimpan data dan arahan sementara semasa pemprosesan". Ia membezakan daftar daripada ingatan utama yang sudah dilabel berasingan dalam rajah, dan tiada risiko kehilangan markah.
152m
1.3.2 Menyenaraikan dan melukis simbol get logik
Rajah 9 menunjukkan ciri get logik. Namakan get logik tersebut.
Get Logik
Ciri
ATAU
Jika salah satu daripada dua input adalah BENAR, maka output ialah BENAR.
i)
Output merupakan songsangan kepada input.
ii)
Jika dua input adalah BENAR, maka output ialah BENAR.
Jawapan
i) TAK (NOT)1 m
ii) DAN (AND)1 m
Justifikasi
Penyelarasan: skema rasmi menggunakan TAK, bukan "BUKAN" seperti draf awal saya. Ajar murid menulis TAK atau NOT.
i) Kata kunci ialah "songsangan" dan penggunaan input tunggal. Get TAK ialah satu-satunya get logik asas dengan hanya satu input; ia menterbalikkan nilai.
ii) Kata kunci ialah "dua input adalah BENAR" — kedua-duanya, bukan salah satu. Bandingkan dengan ciri ATAU yang sudah diberi: "salah satu". Kontras inilah yang dibina oleh penggubal soalan.
A
B
A DAN B
A ATAU B
TAK A
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
Get DAN hanya menghasilkan 1 pada baris terakhir.
161m
2.2.1 Melakar ERD bagi permasalahan yang diberi
Suatu objek yang menggambarkan persekitaran seperti orang, tempat dan benda.
Nyatakan istilah tersebut.
Jawapan
Entiti1 m
Justifikasi
Tiga petunjuk yang mengunci jawapan: "objek" (benda yang boleh dikenal pasti secara berasingan), "orang, tempat dan benda" (tiga contoh klasik entiti), dan "menggambarkan persekitaran" (mewakili sesuatu dalam dunia sebenar).
Istilah berdekatan:Atribut = ciri bagi entiti · Rekod = satu baris data lengkap · Medan = satu lajur. Yang ditakrifkan di sini ialah objeknya, bukan cirinya atau datanya.
172m
2.2.3 Membina pangkalan data hubungan menggunakan SQL: Table
Rajah 10 menunjukkan penyataan SQL. Nyatakan fungsi bagi X dan Y.
ALTER TABLE alatan <-- X
DROP harga ; <-- Y
Jawapan
X : Mengubah struktur jadual alatan1 m
Y : Menghapuskan medan harga1 m
Justifikasi
Kedua-duanya arahan DDL — mengubah struktur, bukan isi kandungan.
ALTER TABLE mengumumkan bahawa struktur jadual akan diubah dan menyatakan jadual mana. Dengan sendirinya ia tidak lengkap; ia mesti diikuti klausa yang menyatakan apa perubahannya — iaitu DROP harga.
Arahan
Kesan
DROP TABLE alatan;
Buang seluruh jadual (struktur + data)
ALTER TABLE alatan DROP harga;
Buang satu medan sahaja; jadual kekal
DELETE FROM alatan;
Buang rekod; struktur jadual kekal
Beza yang sering tersilap.
183m
3.3.1 Prinsip reka bentuk laman web dari sudut kesesuaian pengguna dan tujuan
Rajah 11 menunjukkan paparan antara muka restoran dengan bar menu mendatar (Utama · Menu Kami ▽ · Tempah · Tentang Kami), dan "Menu Kami" membuka senarai lungsur turun (Makanan, Minuman, Kuih Muih).
(a) Nyatakan prinsip tersebut. 1 m (b) Nyatakan dua teknik lain bagi prinsip tersebut. 2 m
Jawapan
(a) Navigasi 1 m
(b) Mana-mana dua: 1 + 1 m
Bar navigasi
Breadcrumbs
Pautan grafik
Site map / Peta laman
Justifikasi
(a) Yang ditunjukkan ialah sistem pergerakan pengguna antara halaman — cara mencari jalan dalam laman web. Teknik khusus yang dipaparkan ialah menu lungsur turun.
Perangkap soalan (b): soalan meminta "teknik lain". Menjawab "menu lungsur turun" akan hilang markah kerana itulah yang sudah ditunjukkan dalam rajah.
Prinsip asas reka bentuk laman web yang lain: Keseimbangan, Kontras, Penegasan, Kesatuan, Irama, Kebolehbacaan. Hanya Navigasi yang sepadan dengan bar menu berlungsur turun.
192m
3.1.2 Menterjemah atur cara Bahasa Penskripan Klien kepada carta alir
Rajah 12 menunjukkan segmen atur cara bagi suatu teknik isihan.
var harga = [3.50, 2.00, 4.50, 1.50];
var i, j, temp;
for (i=0; i < harga.length-1; i++)
{
for (j=0; j < harga.length-i-1; j++)
{
if (harga[j] > harga[j+1])
{
temp = harga[j];
harga[j] = harga[j+1];
harga[j+1] = temp;
}
}
}
(a) Teknik isihan yang digunakan. 1 m (b) Satu ciri teknik isihan ini. 1 m
Jawapan
(a) Isihan Buih / Bubble Sort 1 m
(b) Membanding dua unsur bersebelahan atau Banding unsur bersebelahan dan tukar kedudukan sekiranya berlaku urutan yang salah 1 m
Justifikasi
Tiga bukti dalam kod:
if (harga[j] > harga[j+1]) — membandingkan elemen dengan jiran sebelahnya. Ini cap jari isihan buih.
Blok tiga baris temp ialah pertukaran klasik antara dua elemen bersebelahan.
harga.length-i-1 — julat gelung dalam mengecil setiap pusingan kerana elemen di hujung sudah tersusun.
Bandingan
Keadaan
Tindakan
Hasil
3.50 vs 2.00
3.50 > 2.00
Tukar
[2.00, 3.50, 4.50, 1.50]
3.50 vs 4.50
3.50 < 4.50
Kekal
[2.00, 3.50, 4.50, 1.50]
4.50 vs 1.50
4.50 > 1.50
Tukar
[2.00, 3.50, 1.50, 4.50]
Selepas satu pusingan, nilai terbesar sudah "timbul" ke kedudukan terakhir.
Bandingkan dengan Soalan 20 — kedua-duanya menguji isihan tetapi jawapannya berbeza. Bacalah cara perbandingan dibuat sebelum menjawab.
201m
3.1.2 Menterjemah atur cara Bahasa Penskripan Klien kepada carta alir
Rajah 13 menunjukkan langkah algoritma isihan bermula dengan senarai 8 5 3 9 2:
Langkah
Perbandingan
Hasil
1
8 5 3 9 2 (pertama vs terakhir)
2 5 3 9 8
2
2 53 9 8
2 3 5 9 8
3
2 3 59 8
2 3 5 9 8
4
2 3 5 9 8
2 3 5 9 8
5
2 3 5 98
2 3 5 8 9 — Selesai
Nyatakan isihan yang digunakan.
Jawapan
Isihan Pilih / Selection Sort1 m
Justifikasi
Bukti pemutus ada pada langkah 1: perbandingan antara 8 (kedudukan pertama) dengan 2 (kedudukan terakhir) — dua elemen yang tidak bersebelahan. Isihan buih tidak akan berbuat demikian.
Pusingan
Belum diisih
Terkecil
Ditukar ke
1
8 5 3 9 2
2
Kedudukan 1 → 2 5 3 9 8
2
5 3 9 8
3
Kedudukan 2 → 2 3 5 9 8
3
5 9 8
5
Sudah betul → kekal
4
9 8
8
Kedudukan 4 → 2 3 5 8 9
Sel berlorek di rajah asal menandakan bahagian yang sudah terisih.
Petunjuk sokongan: langkah 3 dan 4 tidak menghasilkan sebarang perubahan — ciri isihan pilih, di mana pertukaran hanya berlaku sekali pada penghujung setiap pusingan imbasan.
Bahagian B
4 soalan · 50 markah · 90 minit
Jawab semua soalan. Pecahan markah mengikut Peraturan Pemarkahan rasmi.
110m
1.3.2 Jenis data bersesuaian · 1.3.6 Input papan kekunci dan paparan output
Rajah 14 menunjukkan atur cara Java yang menerima input dan memaparkan jumlah bayaran buku.
1 import java.util.Scanner;
2 public class jualanBuku {
3 public static void main(String[] args)
4 {
5 //Isytihar pemboleh ubah
6 Scanner input = new Scanner(System.in);
7 double hargaBuku;
8 int bilBuku;
9 ..............................................
10
11 //Input daripada pengguna
12 System.out.print("Masukkan harga buku: ");
13 ..............................................
14
15 System.out.print("Masukkan bilangan buku: ");
16 ..............................................
17
18 //Proses kira jumlah bayaran
19 ..............................................
20
21 //Paparan output
22 System.out.println("Bayaran ialah RM " + jumlahBayaran);
23 }
24 }
(a) Kenal pasti dua pemboleh ubah. 2 m
(b) Lengkapkan baris 9, 13, 16 dan 19. 4 m
(c) Terangkan fungsi arahan pada baris 7. 2 m
(d) Hitung jumlah bayaran jika harga buku = RM25.00 dan bilangan buku = 4. 2 m
Jawapan
(a) Dua pemboleh ubah 1 + 1 m
hargaBuku / bilBuku / jumlahBayaran
Mana-mana dua diterima. Skema membenarkan jumlahBayaran bergantung kepada jawapan murid pada baris 19.
(a) Pemboleh ubah ialah lokasi ingatan bernama yang nilainya boleh berubah. hargaBuku dan bilBuku diisytiharkan secara eksplisit pada baris 7–8 — jawapan paling selamat.
input pada baris 6 bukan jawapan yang baik — ia objek Scanner, bukan pemboleh ubah data mudah.
(b) Baris 9 berada di bawah komen "//Isytihar pemboleh ubah" dan baris 22 merujuk jumlahBayaran yang belum wujud. Jenisnya double kerana hasil darab double dengan int menghasilkan double.
Baris 13 menggunakan nextDouble() kerana hargaBuku berjenis double; nextInt() di sini akan menyebabkan InputMismatchException apabila pengguna menaip 25.50. Baris 16 pula nextInt() kerana bilangan buku sentiasa nombor bulat.
(c) Soalan memperuntukkan 2 markah untuk satu baris ringkas — isyarat bahawa dua perkara mesti disentuh: nama pemboleh ubah dan jenis data. Jawapan "mengisytiharkan pemboleh ubah" sahaja hanya layak 1 markah.
(d) Skema menerima 100. Paparan Java sebenar ialah Bayaran ialah RM 100.0 kerana jumlahBayaran berjenis double — boleh dijadikan perbincangan kelas.
215m
2.2.3 Menghasilkan ERD · 2.2.6 Penormalan data sehingga 3NF
Setiap murid boleh menyertai satu atau dua acara sukan sahaja. Jadual 7 menunjukkan jadual 1NF PENDAFTARAN.
noMurid <KP>
namaMurid
rumahSukan
kodAcara <KP>
namaAcara
tarikhDaftar
M01
Ahmad
Merah
A01
Larian 100m
01/05/2026
M01
Ahmad
Merah
A05
Lompat Jauh
01/05/2026
M03
Benji
Kuning
A01
Larian 100m
01/05/2026
M05
Sarah
Biru
A02
Larian 200m
01/05/2026
M10
Jasmin
Hijau
A05
Lompat Jauh
01/05/2026
(a) Laksanakan proses penormalan kepada jadual 2NF. 10 m
(b) Lakarkan ERD yang lengkap. 5 m
Jawapan
(a) Penormalan kepada 2NF 10 m
Nama Jadual : MURID
noMurid <KP>
namaMurid
rumahSukan
M01
Ahmad
Merah
M03
Benji
Kuning
M05
Sarah
Biru
M10
Jasmin
Hijau
Nama Jadual : ACARA
kodAcara <KP>
namaAcara
A01
Larian 100m
A05
Lompat Jauh
A02
Larian 200m
Nama Jadual : PENDAFTARAN
noMurid <KP><KA>
kodAcara <KP><KA>
tarikhDaftar
M01
A01
01/05/2026
M01
A05
01/05/2026
M03
A01
01/05/2026
M05
A02
01/05/2026
M10
A05
01/05/2026
Kriteria pemarkahan
Markah
Nama jadual lengkap
2 m
Atribut lengkap
2 m
Label KP betul dan lengkap
2 m
Label KP/KA betul dan lengkap
2 m
Rekod betul dan lengkap
2 m
Markah diberi merentas ketiga-tiga jadual, bukan per jadual.
(b) ERD lengkap 5 m
Versi 1 — hubungan M : N secara langsung
ATAU Versi 2 — MURID —1— <buat> —M— PENDAFTARAN —M— <mempunyai> —1— ACARA, dengan tarikhDaftar sebagai atribut PENDAFTARAN. Kedua-dua versi diterima penuh oleh skema rasmi.
Kriteria pemarkahan
Markah
Entiti lengkap + simbol betul
1 m
Atribut lengkap + simbol betul
1 m
Label KP lengkap dan betul
1 m
Hubungan + simbol dan garis hubungan betul
1 m
Kekardinalan betul
1 m
Justifikasi
Penyelarasan: draf awal saya melakar kekardinalan 1 : M. Skema rasmi versi 1 menggunakan M : N antara MURID dan ACARA. Nisbah 1 : M hanya betul dalam versi 2, iaitu apabila PENDAFTARAN dijadikan entiti berasingan. Pastikan murid konsisten dengan versi yang mereka pilih.
(a) Kenapa jadual asal belum 2NF
Kunci primernya komposit — (noMurid, kodAcara). Buktinya pada data: baris 1 dan 2 kedua-duanya M01, jadi noMurid sahaja tidak unik; A01 muncul dua kali, jadi kodAcara sahaja juga tidak unik.
Masalah sebenar yang diselesaikan: dalam jadual asal, "Ahmad" dan "Merah" ditulis dua kali. Jika Ahmad bertukar rumah sukan, dua baris perlu dikemas kini — jika satu terlepas, data menjadi tidak konsisten. Inilah anomali kemas kini.
Kesilapan paling kerap: menggugurkan tarikhDaftar atau meletakkannya dalam jadual MURID. Ia mesti kekal dalam PENDAFTARAN kerana ia atribut bagi hubungan, bukan bagi murid mahupun acara.
Adakah sudah 3NF? Ya. Selepas pecahan ini tiada kebergantungan transitif tinggal. Namun soalan hanya meminta 2NF — jangan pecahkan lagi.
(b) Kenapa M : N
Ayat kunci dalam soalan: "Setiap murid boleh menyertai satu atau dua acara sukan" — seorang murid ke banyak acara. Daripada data pula, A01 disertai M01 dan M03, serta A05 oleh M01 dan M10 — satu acara diikuti banyak murid. Maka hubungan MURID ↔ ACARA ialah M : N.
Dalam pelaksanaan fizikal, M : N diselesaikan melalui jadual perantara PENDAFTARAN — itulah versi 2. Sebab itu kedua-dua lakaran sah, tetapi label kekardinalannya tidak sama.
310m
2.2.3 Membina pangkalan data hubungan menggunakan SQL · 2.2.4 Memanipulasi data
Jadual 8(a) menunjukkan dua set atur cara SQL untuk Sistem Pengundian Baka Kucing.
SQL 1
CREATE DATABASE catvotes;
CREATE TABLE pengundi (
emel VARCHAR (20) NOT NULL,
nama VARCHAR( 255),
katalaluan VARCHAR (8),
tahap VARCHAR (20)
);
CREATE TABLE baka (
nobaka VARCHAR (5) NOT NULL,
baka INT (20),
gambar VARCHAR (255),
PRIMARY KEY (nobaka)
);
CREATE TABLE undi (
idundi INT (11) NOT NULL,
emel VARCHAR (20),
nobaka VARCHAR (1),
tarikh date,
masa time,
PRIMARY KEY(idundi),
FOREIGN KEY(nobaka)
REFERENCES baka(nobaka)
);
SQL 2
CREATE DATABASE catvotes;
CREATE TABLE pengundi (
emel VARCHAR (20) NOT NULL,
nama VARCHAR (255),
katalaluan VARCHAR (8),
tahap VARCHAR (20),
PRIMARY KEY (emel)
);
CREATE TABLE baka (
nobaka VARCHAR(5) NOT NULL,
baka VARCHAR(20),
gambar VARCHAR(255),
PRIMARY KEY (nobaka)
);
CREATE TABLE undi(
idundi INT(11) NOT NULL,
emel VARCHAR(20),
nobaka VARCHAR(5),
tarikh date,
masa time,
PRIMARY KEY(idundi),
FOREIGN KEY(emel) REFERENCES pengundi(emel),
FOREIGN KEY(nobaka) REFERENCES baka(nobaka)
);
Nama Jadual
Nama Medan
Kunci
Sample Data
pengundi
emel, nama, katalaluan, tahap
Kunci primer
admin@vote.com, Admin, Abc123, ADMIN
baka
nobaka, baka, gambar
Kunci primer
M1, Munchkin, munchkin.jpeg
undi
idundi, emel, nobaka, tarikh, masa
Kunci primer, Kunci asing, Kunci asing
1, yaya@vote.com, C1, 05-08-2025, 10:12:14
Jadual 8(b) — maklumat rujukan
(a) Pilih set atur cara SQL yang terbaik dengan membandingkan kedua-duanya. Berikan justifikasi. 7 m
(b) Tulis arahan SQL bagi menyisip satu sampel data pada jadual baka. 3 m
Jawapan
(a) Pilihan dan justifikasi 7 m
Set atur cara SQL yang terbaik ialah Set SQL 2.1 m
Pilih mana-mana tiga perbandingan berikut, setiap satu 1 + 1 m :
#
Perbandingan 1 m
Kesan / sebab 1 m
1
SQL 2 menetapkan medan emel sebagai kunci primer pada jadual pengundi, berbanding SQL 1 yang tiada sebarang kunci primer dalam jadual tersebut.
Kunci primer perlu ada untuk memastikan setiap rekod unik dan mengelakkan pertindihan data.
2
Saiz medan nobaka pada jadual undi di SQL 2 sama dengan saiz medan nobaka dalam jadual baka, berbanding SQL 1 yang tidak sama.
Jenis data yang sama saiz membolehkan jadual baka dan undi dihubungkan.
3
Jenis data VARCHAR bagi medan baka di SQL 2 bersesuaian dengan sampel data yang terdiri daripada huruf, berbanding SQL 1 yang menetapkan integer.
Pemilihan VARCHAR bersesuaian dengan sampel data yang terdiri daripada aksara huruf.
4
Jadual undi di SQL 2 mempunyai dua kunci asing yang menghubungkan undi dengan pengundi dan baka, berbanding SQL 1 yang tiada hubungan dengan pengundi.
Kunci asing yang lengkap membolehkan dua jadual dihubungkan dan menjadikan pangkalan data lebih konsisten.
1 m pilihan + (3 × 2 m) = 7 markah.
(b) Arahan SQL menyisip data 3 m
INSERT INTO baka (nobaka, baka, gambar)
VALUES
("M1", "Munchkin", "munchkin.jpeg");
Skema menunjukkan tiga baris, 1 markah setiap baris. Tanda petik tunggal 'M1' juga sah dalam MySQL.
Justifikasi
Cara menstruktur jawapan (a)
Perhatikan corak skema: setiap perbandingan bernilai 2 markah — satu untuk membandingkan kedua-dua set, satu lagi untuk menyatakan sebab / kesannya. Murid yang hanya menyenaraikan kelemahan SQL 1 tanpa menyebut SQL 2, atau yang membandingkan tanpa memberi sebab, akan kehilangan separuh markah.
"Dalam SQL 1, medan baka menggunakan INT(20), sedangkan SQL 2 menggunakan VARCHAR(20) yang bersesuaian dengan sampel data Munchkin. Pemilihan VARCHAR adalah bersesuaian kerana sampel data terdiri daripada aksara huruf."
Ayat berhuruf tebal itulah markah kedua. Latih murid menambah satu ayat "sebab" selepas setiap perbandingan.
Mengapa setiap perbezaan itu penting
Kunci primer hilang. Tanpa PRIMARY KEY (emel), jadual pengundi membenarkan rekod pendua. Lebih parah, kunci asing FOREIGN KEY(emel) tidak akan berfungsi kerana MySQL memerlukan medan yang dirujuk itu diindeks sebagai kunci — punca ralat errno 150.
Jenis data salah. Cubaan menyimpan "Munchkin" ke dalam medan INT akan gagal atau disimpan sebagai 0.
Saiz tidak konsisten.nobaka ialah VARCHAR(5) di jadual baka tetapi VARCHAR(1) di jadual undi. Kunci asing mesti sepadan jenis dan saiz dengan kunci primer yang dirujuk. Sampel data "C1" berjumlah 2 aksara — akan terpotong.
Kunci asing tertinggal. Jadual 8(b) menyenaraikan dua kunci asing untuk undi. SQL 1 hanya melaksanakan satu, jadi tiada apa menghalang undi direkodkan atas nama emel yang tidak wujud.
Nota pengajaran: Jadual 8(b) bukan hiasan — ia spesifikasi. Latih murid membaca lajur "Kunci" dan "Sample Data" dahulu, kemudian semak kod baris demi baris.
Nota (b)
INSERT INTO ialah arahan DML kerana ia mengubah data, bukan struktur. Bandingkan dengan CREATE dan ALTER yang tergolong dalam DDL.
Tiga kesilapan sintaks lazim: tanda petik pada nama jadual atau medan · tertinggal koma bertitik di hujung · nilai teks tanpa tanda petik.
415m
1.2.2 Membina algoritma menggunakan struktur kawalan · 1.4.2 Struktur kawalan pilihan dengan operator hubungan dan logikal
Rajah 15 menunjukkan poster Lawatan Sambil Belajar Kelab Komputer, SMK Sejahtera:
Destinasi: Planetarium Angkasa Negara
Pendaftaran terhad kepada 50 orang peserta sahaja
Tawaran Istimewa: markah 85 dan ke atas dalam Peperiksaan Pertengahan Tahun bagi Sains layak mendapat diskaun 50% bayaran pendaftaran
(a) Lakar carta alir bagi menentukan kelayakan mendapat diskaun. 10 m
(b) Berdasarkan jawapan di (a), tulis segmen kod Java bagi memaparkan kelayakan mendapat diskaun. 5 m
Jawapan
(a) Carta alir 10 m
Komponen markah
Markah
Mula
1 m
Tamat
1 m
Aliran logik
1 m
Ya / Tidak
1 m
Input markah
1 m
Syarat markah
1 m
Syarat layak
1 m
Output dapat diskaun
1 m
Output tak dapat diskaun
1 m
Pembilang / increment
1 m
Catatan skema rasmi: beri markah ikut komponen markah sahaja. Jika komponen markah ada dalam lakaran, maka layak dapat markah.
(b) Segmen kod Java 5 m
Skema 1 — gelung pembilang5 × 1 m
if (markah >= 85)
for (layak = 0; layak < 50; layak++)
System.out.println("diskaun 50%")
Panduan markah: if (markah >= 85) · for (layak = 0; · layak < 50; · layak++) · System.out.println(...)
if (markah >= 85)
if (bil_Pemenang <= 50)
System.out.println("Anda dapat diskaun 50%")
Catatan skema rasmi: nama pemboleh ubah bebas ditetapkan.
Justifikasi
Penyelarasan penting: draf awal saya menasihatkan supaya had 50 peserta diabaikan kerana soalan hanya menyebut kelayakan diskaun. Itu salah. Skema rasmi mewajibkan kedua-dua syarat — ada komponen markah khusus untuk Syarat layak dan Pembilang / increment. Murid yang melakar satu keputusan sahaja akan kehilangan sekurang-kurangnya 2 markah.
Membaca poster dengan betul
Poster mengandungi dua nombor dan skema menganggap kedua-duanya adalah syarat kelayakan: markah Sains 85 ke atas, dan peserta masih dalam kuota 50 orang. Tafsiran ini munasabah kerana diskaun hanya bermakna jika pendaftaran masih dibuka.
Ajar murid corak ini: apabila poster memberi lebih daripada satu nombor, semak sama ada setiap satu boleh menjadi syarat. Skema Bahagian B cenderung menghargai murid yang menggunakan semua maklumat yang diberi.
Kenapa >= dan bukan >
Poster menyebut "85 dan ke atas" — 85 itu sendiri termasuk. Menggunakan > 85 menolak murid yang mendapat tepat 85, satu ralat logik yang menjejaskan markah pada kedua-dua (a) dan (b). Begitu juga <= 50 untuk kuota "terhad kepada 50 orang".
Simbol carta alir
Simbol
Bentuk
Kegunaan dalam soalan ini
Terminal
Bujur / kapsul
Mula dan Tamat
Input / Output
Segi empat selari
Input markah, Output diskaun
Proses
Segi empat tepat
Set layak = 0, Set layak ++
Keputusan
Rombus
markah >= 85, layak < 50
Kaitan (a) dengan (b)
Ketiga-tiga skema jawapan (b) yang diterima mencerminkan cara berbeza melakar (a):
Skema 1 sepadan dengan carta alir di atas — gelung dengan pembilang.
Skema 2 sepadan dengan carta alir satu rombus yang menggabungkan dua syarat menggunakan &&.
Skema 3 sepadan dengan dua rombus bersarang.
Semasa menanda, semak keselarasan antara (a) dan (b) murid yang sama — soalan menyatakan "Berdasarkan jawapan di (a)".
Nota tanda %: menulis "diskaun 50%" dalam System.out.println() selamat sepenuhnya — aksara % hanya bermakna khas dalam printf().