34 marksmarkah. Soalan ini merangkumi semua subtopik 4.1 (pangkalan data dan SQL) dan 4.2 (function dan procedure). Guna mod Latihan untuk menyemak setiap jawapan, atau mod Peperiksaan untuk menjawab semua soalan dahulu. Sediakan sehelai kertas kosong dan pensel untuk soalan kod arahan.
Bahagian A: soalan objektif
10 marksmarkah
Jawab semua soalan. Pilih satu jawapan yang betul bagi setiap soalan.
1
QuestionSoalan 1
Apakah maksud pangkalan data?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Pangkalan data ialah tempat pengumpulan dan penyimpanan data secara berpusat; datanya saling berhubung dan tidak diulang tanpa sebab (ms. 114). A ialah maksud data, C ialah SQL dan D tidak ada kaitan dengan pangkalan data.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 4.1.1
TextbookBuku teksp.ms. 114
2
QuestionSoalan 2
Dalam sebuah permainan, satu subtugas hanya memaparkan tetingkap profil pemain setiap kali butang profil diklik. Subtugas ini tidak memulangkan sebarang nilai. Struktur kod arahan yang paling sesuai ialah
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Procedure sesuai bagi tugas yang dilaksanakan berulang kali apabila diperlukan tanpa pemulangan nilai, seperti butang profil dalam permainan (ms. 168). Function digunakan apabila nilai perlu dipulangkan, contohnya baki dana.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 4.2.1
TextbookBuku teksp.ms. 168
3
QuestionSoalan 3
Dalam Microsoft Access, cara yang paling mudah untuk menjana laporan berdasarkan jadual atau pertanyaan (query) ialah menggunakan
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Report Wizard membimbing pengguna memilih jadual atau query, medan, isihan dan susun atur laporan (Rajah 4.40, ms. 161 hingga 163). Form Wizard menghasilkan borang.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 4.1.9
TextbookBuku teksp.ms. 161
4
QuestionSoalan 4
Antara jenis data dalam Microsoft Access, yang manakah paling sesuai bagi atribut Tarikh_Pinjaman dalam jadual BUKU?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Date/Time menyimpan nilai tarikh dan masa (Jadual 4.4, ms. 131). AutoNumber ialah pembilang automatik, Text terhad kepada 255 aksara dan Memo menyimpan teks yang panjang.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, standard 4.1.5
TextbookBuku teksp.ms. 131
5
QuestionSoalan 5
Mengapakah borang (form) digunakan dalam sistem pangkalan data?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Borang berfungsi sebagai antara muka pengguna yang interaktif untuk memasukkan dan mengubah suai data (ms. 140). A ialah fungsi jadual dan D dilakukan oleh ORDER BY.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 4.1.6
TextbookBuku teksp.ms. 140
6
QuestionSoalan 6
Jadual PELANGGAN dan jadual TEMPAHAN dalam pangkalan data sebuah kedai kek ditunjukkan di bawah.
PELANGGAN
ID_Pelanggan
Nama
No_Telefon
C01
Aminah
012-3456789
C02
Bala
013-9876543
TEMPAHAN
ID_Tempahan
ID_Pelanggan
Tarikh
T101
C01
5/3/2026
T102
C02
6/3/2026
T103
C01
9/3/2026
Manakah atribut yang ialah kekunci asing dalam jadual TEMPAHAN?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
ID_Pelanggan ialah kekunci primer dalam jadual PELANGGAN dan muncul dalam jadual TEMPAHAN untuk mengaitkan dua jadual itu, jadi ia kekunci asing. ID_Tempahan ialah kekunci primer TEMPAHAN (ms. 121).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 4.1.3
TextbookBuku teksp.ms. 121
7
QuestionSoalan 7
Apakah output kod Python berikut apabila dilaksanakan?
def sapa(nama):
print("Hai", nama)
x = sapa("Dina")
print(x)
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
sapa() hanya memaparkan mesej dan tidak mempunyai pernyataan return, jadi ia memulangkan nilai lalai None. print(x) memaparkan None. Output: Hai Dina, kemudian None (ms. 168 dan 169).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 4.2.1
TextbookBuku teksp.ms. 169
8
QuestionSoalan 8
Jadual KELAB menyimpan data ahli sebuah kelab.
ID_Ahli
Nama_Ahli
Jantina
Kaum
K01
Hana
PEREMPUAN
MELAYU
K02
Ravi
LELAKI
INDIA
K03
Wei Jie
LELAKI
CINA
K04
Siti
PEREMPUAN
MELAYU
K05
Amar
LELAKI
MELAYU
K06
Mei Ling
PEREMPUAN
CINA
K07
Kavita
PEREMPUAN
INDIA
K08
Daniel
LELAKI
KADAZAN
Berapakah bilangan baris yang dipaparkan oleh pernyataan SQL berikut?
SELECT Nama_Ahli
FROM KELAB
WHERE Jantina = "PEREMPUAN" AND Kaum = "MELAYU";
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
AND memerlukan kedua-dua kriteria benar. Hanya K01 (Hana) dan K04 (Siti) ialah PEREMPUAN dan MELAYU, jadi 2 baris (ms. 159).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 4.1.8
TextbookBuku teksp.ms. 159
9
QuestionSoalan 9
Apakah output kod Python berikut?
def gandaan(n):
return n * 3
def tambah(n):
return n + 1
print(gandaan(tambah(4)))
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Function di dalam dilaksanakan dahulu: tambah(4) memulangkan 5. Kemudian gandaan(5) memulangkan 5 × 3 = 15.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 4.2.3
TextbookBuku teksp.ms. 176
10
QuestionSoalan 10
Seorang murid menulis function untuk mengira purata tiga nombor.
def purata(a, b, c):
return a + b + c / 3
print(purata(3, 6, 9))
Atur cara ini berjalan tanpa mesej ralat tetapi memaparkan 12.0, bukan 6.0. Apakah jenis ralat ini?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Atur cara tidak terhenti dan tiada mesej ralat, tetapi outputnya salah. Ini ralat logik (ms. 197). Operator / dilaksanakan dahulu: 3 + 6 + (9 / 3) = 12.0. Pembaikan: return (a + b + c) / 3, iaitu 18 / 3 = 6.0.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 4.2.5
TextbookBuku teksp.ms. 197
Bahagian B: soalan berstruktur (pangkalan data dan SQL)
12 marksmarkah
Jawab semua soalan.
11
QuestionSoalan 11
Rajah 1 ialah gambar rajah perhubungan entiti (ERD) bagi sebuah klinik.
Rajah 1
[1 markmarkah](a)Simbol P mewakiliShow answerTunjuk jawapanHide answerSembunyi jawapan
[1 markmarkah](c)Apakah jenis kekardinalan bagi hubungan R antara DOKTOR dengan PESAKIT?Show answerTunjuk jawapanHide answerSembunyi jawapan
one to many (1:M)
P ialah segi empat, simbol entiti (DOKTOR). Q ialah bulatan bujur, simbol atribut (Nama_Pesakit). R ialah rombus, simbol hubungan (merawat). Angka 1 dan M menunjukkan seorang doktor merawat ramai pesakit: one to many (1:M) (ms. 118 dan 124).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 4.1.2, 4.1.4
TextbookBuku teksp.ms. 118
12
QuestionSoalan 12
Jadual PRODUK menyimpan data barang yang dijual di kantin sekolah.
Kod
Nama_Produk
Kategori
Harga (RM)
Stok
P01
Roti Canai
MAKANAN
1.50
40
P02
Teh Tarik
MINUMAN
2.20
25
P03
Nasi Lemak
MAKANAN
3.00
18
P04
Air Mineral
MINUMAN
1.00
60
P05
Kuih Karipap
MAKANAN
0.80
35
P06
Jus Oren
MINUMAN
3.50
12
P07
Mi Goreng
MAKANAN
4.50
20
Pernyataan SQL berikut dilaksanakan pada jadual PRODUK.
SELECT Nama_Produk, Harga
FROM PRODUK
WHERE Kategori = "MINUMAN" OR Harga < 2.00
ORDER BY Harga DESC;
[3 marksmarkah]Tulis output pertanyaan itu: nama produk dan harganya, mengikut susunan paparan.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
Jus Oren 3.50; Teh Tarik 2.20; Roti Canai 1.50; Air Mineral 1.00; Kuih Karipap 0.80
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 4.1.7, 4.1.8
TextbookBuku teksp.ms. 152
13
QuestionSoalan 13
Gunakan jadual PRODUK dalam soalan sebelum ini. Anda ingin memaparkan nama produk dan stok bagi semua produk MAKANAN sahaja, dengan stok disusun daripada paling sedikit ke paling banyak.
Nama_Produk
Stok
Nasi Lemak
18
Mi Goreng
20
Kuih Karipap
35
Roti Canai
40
[3 marksmarkah]Tulis pernyataan SQL yang menghasilkan paparan di atas.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
SELECT Nama_Produk, Stok FROM PRODUK WHERE Kategori = "MAKANAN" ORDER BY Stok ASC;
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, standard 4.1.7
TextbookBuku teksp.ms. 153
14
QuestionSoalan 14
Dewi menulis pernyataan SQL berikut untuk memaparkan nama dan harga produk MINUMAN, disusun menaik mengikut harga. Pernyataan itu mengandungi ralat sintaks.
1SELECT Nama_Produk Harga
2FROM PRODUK
3ORDER BY Harga ASC
4WHERE Kategori = MINUMAN;
[3 marksmarkah]Kenal pasti tiga ralat dalam pernyataan itu dan baiki setiap satu.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
SELECT Nama_Produk, Harga FROM PRODUK WHERE Kategori = "MINUMAN" ORDER BY Harga ASC;
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: EvaluatingMenilai, mediumsederhana difficultyaras mediumsederhana, standard 4.1.7
TextbookBuku teksp.ms. 152
Bahagian C: kod arahan (function dan procedure)
12 marksmarkah
Jawab semua soalan. Tulis kod dengan inden yang betul.
15
QuestionSoalan 15
Kod Python berikut mengandungi built-in function dan user-defined function.
1def luas(p, l):
2 return p * l
34markah = [4, 7, 9]
5print(sum(markah), luas(3, 5))
[1 markmarkah](a)Namakan satu built-in function dalam kod itu.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](b)Namakan user-defined function dalam kod itu.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
print() dan sum() sedia ada dalam Python. luas() ditakrifkan sendiri dengan kata kunci def (ms. 170 hingga 172).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 4.2.2
TextbookBuku teksp.ms. 170
16
QuestionSoalan 16
Tulis kod Python untuk user-defined function bernama luas_segitiga yang menerima tapak dan tinggi, kemudian memulangkan luas segi tiga (setengah × tapak × tinggi). Seterusnya, tulis satu baris yang memaparkan hasil panggilan function itu dengan tapak 10 dan tinggi 6.
[2 marksmarkah]Tulis kod anda.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
def luas_segitiga(tapak, tinggi): return 0.5 * tapak * tinggi
print(luas_segitiga(10, 6))
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 4.2.3
TextbookBuku teksp.ms. 176
17
QuestionSoalan 17
Surih atur cara Python berikut.
1def gandakan(n):
2 return n * 2
3 4def cetak_baris(simbol, bil):
5 print(simbol * bil)
6 7jumlah = 0
8for i in range(1, 4):
9 jumlah = jumlah + gandakan(i)
10 cetak_baris("*", i)
11print("Jumlah =", jumlah)
[2 marksmarkah](a)Tulis output atur cara itu.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
* ** *** Jumlah = 12
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah](b)Namakan procedure dalam atur cara itu.
Auto-checked: type a short answerSemakan automatik: taip jawapan pendek
Show answerTunjuk jawapanHide answerSembunyi jawapan
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 4.2.4
TextbookBuku teksp.ms. 182
18
QuestionSoalan 18
Atur cara berikut ditulis untuk membahagikan dua nombor.
1def bahagi(a, b)
2 return a / b
34x = int(input("Nombor pertama: "))
5y = int(input("Nombor kedua: "))
6print("Hasil =", bahagi(x, y))
[1 markmarkah]Atur cara tidak boleh dilaksanakan dan penterjemah memaparkan SyntaxError. Nyatakan ralat pada baris 1 dan cara membaikinya.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: EvaluatingMenilai, mediumsederhana difficultyaras mediumsederhana, standard 4.2.5
TextbookBuku teksp.ms. 190
19
QuestionSoalan 19
Sebuah kedai buku mahu atur cara untuk mengira jumlah bayaran. Tulis atur cara Python yang mengandungi:
(i) function jumlah_harga(harga, kuantiti) yang memulangkan harga × kuantiti;
(ii) procedure papar_resit(nama, jumlah) yang memaparkan ucapan terima kasih dan jumlah bayaran, tanpa memulangkan nilai;
(iii) atur cara utama yang meminta nama (teks), harga (nombor perpuluhan) dan kuantiti (integer), kemudian memanggil function dan procedure itu.
Contoh output (data masukan: Aina, 12.50, 3):
Terima kasih, Aina
Jumlah: RM 37.50
[4 marksmarkah]Tulis atur cara lengkap anda.
You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan
Show answerTunjuk jawapanHide answerSembunyi jawapan
def jumlah_harga(harga, kuantiti): return harga * kuantiti