myUASARevision for UASAUlang kaji UASA
Practice paper, not an official KPM paperKertas latihan, bukan kertas rasmi KPM
Asas Sains Komputer Tingkatan 3
Ujian Akhir Sesi Akademik (format rumah)

Asas Sains Komputer

Tingkatan 3, 1 jam 30 minit, 70 marksmarkah
NameNama
ClassKelas
DateTarikh
marksmarkah:      / 70
InstructionsArahan
  1. Kertas soalan ini mengandungi tiga bahagian: Bahagian A, Bahagian B dan Bahagian C.
  2. Jawab semua soalan.
  3. Bahagian A: pilih satu jawapan yang betul.
  4. Bahagian B dan C: tulis jawapan anda di ruang yang disediakan. Tunjukkan langkah kerja anda.

Bahagian A

10 marksmarkah
Jawab semua soalan. Setiap soalan diikuti oleh empat pilihan jawapan, A, B, C dan D. Pilih satu jawapan yang betul.
1

QuestionSoalan 1

Dalam fasa pengujian dan penyahpepijatan, teknik pengitlakan digunakan untuk menghasilkan
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Teknik pengitlakan dalam fasa ini membina model proses pengujian dan penyahpepijatan, iaitu senarai semak secara manual dan semasa pelaksanaan atur cara (Rajah 1.14 dan 1.15, ms. 12). A ialah hasil pengitlakan dalam fasa reka bentuk, C ialah pengecaman corak dan D ialah peniskalaan dalam fasa dokumentasi.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 12
2

QuestionSoalan 2

Pengguna memasukkan 6 dan 4 apabila atur cara berikut dilaksanakan. Apakah output atur cara itu?
1a = float(input())
2b = float(input())
3hasil = (a + b) / 2 * b
4print(hasil)
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Operasi dalam kurungan dikira dahulu: 6.0 + 4.0 = 10.0. Kemudian bahagi dan darab dikira dari kiri: 10.0 / 2 = 5.0, 5.0 × 4.0 = 20.0 (Jadual 1.5, ms. 11). 14.0 ialah hasil jika kurungan tiada (6 + 4 / 2 × 4), 5.0 berhenti sebelum darab dengan b dan 1.25 menganggap 2 * b sebagai pembahagi.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 11
3

QuestionSoalan 3

Tarikh, nama pengatur cara, tujuan atur cara, algoritma dan kod arahan (source code) ialah maklumat yang perlu ada dalam
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Dokumen pustaka (dokumentasi luaran) memuatkan tarikh, nama pengatur cara, tujuan atur cara, keperluan sistem, algoritma (pseudokod dan carta alir) serta kod arahan (ms. 22). Panduan pengguna memuatkan nama dan tujuan atur cara, keperluan sistem dan cara penggunaan. Dokumentasi dalaman ialah komen yang menerangkan fungsi bahagian kod.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 22
4

QuestionSoalan 4

Pernyataan manakah menerangkan sifer kunci tidak simetri?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Sifer kunci tidak simetri melibatkan dua kunci, iaitu kunci awam yang boleh digunakan oleh sesiapa untuk penyulitan dan kunci persendirian yang disimpan secara rahsia oleh penerima (Rajah 2.2, ms. 32). A, B dan D ialah ciri sifer kunci simetri.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.2
TextbookBuku teks p.ms. 32
5

QuestionSoalan 5

Dalam algoritma bucket sort, item diisih sebanyak dua kali. Apakah isihan pertama dan isihan kedua?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Isihan pertama berlaku apabila item dalam senarai diisih mengikut julat pada baldi; isihan kedua berlaku apabila item dalam setiap baldi diisih mengikut urutan (ms. 86). Pilihan C menggabungkan bubble sort dengan pencantuman dan pilihan D menerangkan binary search.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 86
6

QuestionSoalan 6

Dalam pseudokod linear search, pernyataan Jika L[i] == T bertanya
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Tanda == membandingkan: L[i] ialah item pada indeks i dan T ialah nilai item carian (Target). Tanda = ialah umpukan, bukan perbandingan (Rajah 3.3, ms. 74).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.2
TextbookBuku teks p.ms. 74
7

QuestionSoalan 7

Sembilan nombor 14, 3, 27, 9, 22, 18, 6, 25, 11 diisih menaik dengan bucket sort. Tiga baldi disediakan dengan julat 1 hingga 10, 11 hingga 20 dan 21 hingga 30. Apakah kandungan baldi 2 selepas diisih?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Baldi 2 menerima nombor dari 11 hingga 20 mengikut urutan senarai asal: 14, 18, 11. Selepas diisih menaik: 11, 14, 18. A ialah kandungan baldi 2 sebelum diisih, B ialah baldi 1 selepas diisih dan D ialah baldi 3 selepas diisih (Contoh 3.6, ms. 71).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 71
8

QuestionSoalan 8

Pernyataan manakah benar tentang kekunci asing?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Kekunci asing boleh menerima beberapa nilai kosong dan sebuah jadual boleh mempunyai lebih daripada satu kekunci asing. Kekunci primerlah yang tidak boleh kosong, hanya satu dalam jadual dan nilainya unik (ms. 123).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 4, standard 4.1.3
TextbookBuku teks p.ms. 123
9

QuestionSoalan 9

Dalam Microsoft Access, jenis data manakah menjana pembilang secara automatik dalam susunan menaik?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
AutoNumber menjana pembilang secara automatik dalam susunan menaik. Number hanya menyimpan nilai angka, Text / Short Text terhad kepada 255 aksara dan Date / Time menyimpan nilai tarikh dan masa (Jadual 4.4, ms. 131).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 4, standard 4.1.5
TextbookBuku teks p.ms. 131
10

QuestionSoalan 10

Apakah output atur cara Python berikut?
1def tolak_diskaun(harga, peratus):
2    return harga - harga * peratus / 100
3jumlah = tolak_diskaun(80, 25)
4print(jumlah)
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Argumen 80 dihantar kepada harga dan 25 kepada peratus. harga * peratus / 100 = 80 × 25 / 100 = 20.0, maka nilai yang dipulangkan ialah 80 - 20.0 = 60.0. B ialah diskaun sahaja, C menambah 80 dan 25, dan D menolak 25 terus daripada 80 (ms. 176).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 4, standard 4.2.3
TextbookBuku teks p.ms. 176

Bahagian B

40 marksmarkah
Jawab semua soalan. Setiap soalan bernilai 4 markah.
11

QuestionSoalan 11

Tiga atur cara kecil diuji dalam fasa pengujian dan penyahpepijatan. Jadual 1 menunjukkan kod yang diuji dan keputusan ujian.
Atur caraKod dan keputusan ujian
Pmarkah = float(input("Masukkan markah: ")
Atur cara tidak dapat dilaksanakan.
Qjumlah = 45.5
print("Jumlah ialah", jumlah_akhir)
Atur cara terhenti pada baris 2.
Rmarkah1 = 60, markah2 = 80
purata = markah1 + markah2 / 2
Atur cara memaparkan Purata ialah 100.0 tanpa mesej ralat.
[3 marksmarkah] (a)Nyatakan jenis ralat bagi atur cara P, Q dan R.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
P ralat sintaks; Q ralat masa larian; R ralat logik.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Tulis baris yang betul bagi atur cara R.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
purata = (markah1 + markah2) / 2
Tanpa kurungan, markah2 / 2 dikira dahulu: 60 + 40 = 100.0. Dengan kurungan: (60 + 80) / 2 = 70.0 (Jadual 1.3, ms. 9 dan Jadual 1.5, ms. 11).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 9
12

QuestionSoalan 12

Jadual 2 menunjukkan empat aktiviti seorang pengatur cara semasa membangunkan atur cara pengurusan kelab. Setiap aktiviti dilakukan dalam fasa yang berbeza.
AktivitiPenerangan
PMemilih Python sebagai bahasa pengaturcaraan dan IDLE sebagai perisian pengaturcaraan.
QMenulis pseudokod, melukis carta alir dan mereka bentuk antara muka pengguna.
RMenemu bual, membuat soal selidik dan pemerhatian untuk mengetahui keperluan pelanggan.
SMenyediakan dokumen pustaka dan panduan pengguna.
[4 marksmarkah] Nyatakan fasa pembangunan atur cara bagi aktiviti P, Q, R dan S. Pilih daripada: analisis masalah, reka bentuk atur cara, pengekodan, pengujian dan penyahpepijatan, dokumentasi.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
P pengekodan; Q reka bentuk atur cara; R analisis masalah; S dokumentasi.
Fasa analisis masalah: menemu bual, soal selidik dan pemerhatian (ms. 3). Fasa reka bentuk: pseudokod, carta alir dan antara muka pengguna (ms. 4). Fasa pengekodan: memilih bahasa dan perisian pengaturcaraan (ms. 6). Fasa dokumentasi: dokumen pustaka dan panduan pengguna (ms. 13).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 3
13

QuestionSoalan 13

Atur cara berikut mengira jumlah dan purata tiga markah. Pengguna memasukkan 72, 84 dan 96.
1# Atur cara mengira jumlah dan purata
2m1 = float(input("Markah 1: "))
3m2 = float(input("Markah 2: "))
4m3 = float(input("Markah 3: "))
5jumlah = m1 + m2 + m3
6purata = jumlah / 3
7print("Jumlah:", jumlah)
8print("Purata:", purata)
[2 marksmarkah] (a)Tulis dua baris yang dipaparkan oleh pernyataan print pada baris 7 dan baris 8.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
Jumlah: 252.0 dan Purata: 84.0
72.0 + 84.0 + 96.0 = 252.0; 252.0 / 3 = 84.0. Nilai berjenis float, maka paparan mempunyai .0.
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Nyatakan fungsi input("Markah 1: ") dan fungsi float() pada baris 2.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
input() meminta pengguna memasukkan data; float() menukar nilai itu kepada nombor perpuluhan.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 7
14

QuestionSoalan 14

Kelab Pengawas menggunakan Reverse cipher untuk menyulitkan mesej tentang tugasan harian. Ruang antara perkataan dikekalkan.
[1 markmarkah] (a)Sulitkan BAWA BUKU TEKS dengan Reverse cipher jenis songsangan perkataan.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
AWAB UKUB SKET
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Sulitkan BAWA BUKU TEKS dengan Reverse cipher jenis songsangan seluruh mesej.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
SKET UKUB AWAB
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Teks sifer NANUHAT NAKUS IRAH disulitkan dengan Reverse cipher jenis songsangan seluruh mesej. Nyahsulitkan teks sifer itu.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
HARI SUKAN TAHUNAN
Nyahsulit dibuat dengan menyongsangkan teks sifer dengan cara yang sama (ms. 35).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (d)Mengapakah Reverse cipher hanya sesuai bagi mesej yang kurang penting?

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Reverse cipher tidak menggunakan kunci, maka mesej mudah dinyahsulit dengan menyongsangkannya.
Kelemahan Reverse cipher: tidak menggunakan kunci dan mudah dinyahsulit (Contoh 2.6, ms. 47).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.3
TextbookBuku teks p.ms. 35
15

QuestionSoalan 15

Sekumpulan murid menggunakan Caesar Cipher dengan kunci K = 6. Jadual penggantian abjad ditunjukkan dalam Rajah 1.
Jadual Caesar Cipher K = 6: abjad teks biasa A hingga Z di atas dan abjad teks sifer yang bermula dengan U, V, W, X, Y, Z, A di bawah
Rajah 1
[2 marksmarkah] (a)Sulitkan BAWA LAPORAN menggunakan Rajah 1.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
VUQU FUJILUH
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Teks sifer MUFCH XUNU diterima. Nyahsulitkan teks sifer itu menggunakan jadual yang sama.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
SALIN DATA
Nyahsulit: baca huruf teks sifer pada baris bawah dan tulis huruf teks biasa pada baris atas (Contoh 2.1, ms. 37). Semakan: SALIN DATA disulitkan kembali menghasilkan MUFCH XUNU.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.3
TextbookBuku teks p.ms. 36
16

QuestionSoalan 16

Pilih kaedah sifer yang sesuai dengan setiap kenyataan tentang kekuatan atau kelemahan kaedah itu. Setiap kaedah digunakan sekali sahaja.
[1 markmarkah] (a)Nilai kunci boleh diramal dengan kaedah cuba-jaya.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Caesar Cipher
Kelemahan Caesar Cipher: kaedah cuba-jaya boleh digunakan untuk meramal nilai kunci (ms. 47).
[1 markmarkah] (b)Mudah dinyahsulit jika cara perwakilan simbol diketahui.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Pigpen Cipher
Pigpen Cipher menggantikan abjad dengan simbol; ia mudah dinyahsulit jika cara perwakilan simbol diketahui (ms. 47).
[1 markmarkah] (c)Bilangan baris yang menjadi kunci sukar diramal, tetapi abjad dalam teks sifer sama dengan abjad dalam teks biasa.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Rail Fence Cipher
Rail Fence Cipher menggunakan kunci, iaitu bilangan baris, yang sukar diramal; tetapi ia hanya menyusun semula huruf (ms. 47).
[1 markmarkah] (d)Tidak menggunakan kunci, maka mesej dinyahsulit dengan hanya menyongsangkannya.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Reverse cipher
Reverse cipher tidak menggunakan kunci dan mudah dinyahsulit dengan menyongsangkannya (ms. 47).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.4
TextbookBuku teks p.ms. 47
17

QuestionSoalan 17

Senarai L dalam Rajah 2 diisih menaik dengan bubble sort mengikut pseudokod buku teks. Pseudokod itu menjalankan n - 1 lelaran, dan dalam lelaran i gelung dalam membandingkan pasangan bersebelahan selagi j < n - i - 1 (i bermula dengan 0). Dua item bertukar jika item di kiri lebih besar.
Senarai L dengan lima nombor pada indeks 0 hingga 4: 6, 2, 9, 4, 1
Rajah 2
[2 marksmarkah] (a)Tulis senarai L selepas lelaran 1 dan selepas lelaran 2.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
Lelaran 1: [2, 6, 4, 1, 9]. Lelaran 2: [2, 4, 1, 6, 9].
Lelaran 1: 6 > 2 tukar [2, 6, 9, 4, 1]; 6 > 9 tidak; 9 > 4 tukar [2, 6, 4, 9, 1]; 9 > 1 tukar [2, 6, 4, 1, 9]. Lelaran 2: 2 > 6 tidak; 6 > 4 tukar [2, 4, 6, 1, 9]; 6 > 1 tukar [2, 4, 1, 6, 9].
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Berapakah jumlah pertukaran yang berlaku sehingga senarai terisih sepenuhnya?

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
7 (3 + 2 + 1 + 1)
Lelaran 1: 3 pertukaran. Lelaran 2: 2 pertukaran. Lelaran 3: [2, 1, 4, 6, 9], 1 pertukaran. Lelaran 4: [1, 2, 4, 6, 9], 1 pertukaran. Jumlah 7.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Berapakah bilangan perbandingan dalam lelaran 3?

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
2 (i = 2, maka j < 5 - 2 - 1 = 2, iaitu j = 0 dan j = 1)
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 83
18

QuestionSoalan 18

Microsoft Access mempunyai empat objek pangkalan data. Pilih objek yang sesuai dengan setiap penerangan. Setiap objek digunakan sekali sahaja.
[1 markmarkah] (a)Meminta data yang tertentu daripada satu atau lebih daripada satu jadual.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Pertanyaan (Query)
Pertanyaan (Query) meminta data yang tertentu daripada satu atau lebih jadual (Jadual 4.3, ms. 127).
[1 markmarkah] (b)Antara muka antara pengguna dan komputer yang memudahkan kemasukan data.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Borang (Form)
Borang (Form) ialah antara muka antara pengguna dan komputer, dan memudahkan kemasukan data (Jadual 4.3, ms. 127).
[1 markmarkah] (c)Menyimpan data mengikut baris, dan setiap baris data dipanggil satu rekod.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Jadual (Table)
Jadual (Table) mewakili satu entiti dan menyimpan data mengikut baris; setiap baris ialah satu rekod (Jadual 4.3, ms. 127).
[1 markmarkah] (d)Memaparkan data daripada satu atau lebih jadual atau satu pertanyaan dalam bentuk yang boleh dicetak atau digunakan untuk menganalisis data.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Laporan (Report)
Laporan (Report) disediakan berdasarkan data dalam satu atau lebih jadual atau berdasarkan satu pertanyaan, dan boleh dicetak atau digunakan untuk menganalisis data (Jadual 4.3, ms. 127).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 4, standard 4.1.5
TextbookBuku teks p.ms. 127
19

QuestionSoalan 19

Pangkalan data sekolah mempunyai jadual KELAS (kekunci primer ID_Kelas) dan jadual MURID (kekunci asing ID_Kelas). Seorang pembantu tadbir membina hubungan one to many (1:M) antara kedua-dua jadual dalam Microsoft Access. Empat langkah ditulis tidak mengikut urutan.
W  Tanda Enforce Referential Integrity dalam tetingkap Edit Relationships dan klik Create
X  Klik Database Tools di bar menu, kemudian klik Relationships
Y  Seret ID_Kelas daripada jadual KELAS sehingga menyentuh ID_Kelas dalam jadual MURID
Z  Klik Show Table, tambah jadual KELAS dan jadual MURID dengan Add, kemudian klik Close
[2 marksmarkah] (a)Tulis huruf langkah mengikut urutan yang betul.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
X, Z, Y, W
Langkah 1: Database Tools, Relationships (ms. 134). Langkah 2: Show Table, Add, Close (ms. 135). Seret kekunci primer ke kekunci asing, kemudian tanda Enforce Referential Integrity dan klik Create (ms. 136).
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Nyatakan fungsi pilihan Enforce Referential Integrity dan fungsi pilihan Cascade Delete Related Records.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Enforce Referential Integrity memastikan kekunci asing ialah kekunci primer dalam jadual lain; Cascade Delete Related Records menghapuskan rekod berkaitan jika kekunci primer dihapus.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 4, standard 4.1.5
TextbookBuku teks p.ms. 134
20

QuestionSoalan 20

Atur cara berikut mengandungi satu function dan satu procedure.
1def besar_kecil(x, y):
2    if x > y:
3        return x, y
4    else:
5        return y, x
6def papar_hasil(besar, kecil):
7    print("Besar:", besar)
8    print("Kecil:", kecil)
9    print("Beza:", besar - kecil)
10a = 18
11b = 27
12[p, q] = besar_kecil(a, b)
13papar_hasil(p, q)
14papar_hasil(a, b)
[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
Besar: 27 / Kecil: 18 / Beza: 9 / Besar: 18 / Kecil: 27 / Beza: -9
besar_kecil(18, 27): 18 > 27 palsu, maka dipulangkan 27, 18; jadi p = 27 dan q = 18 (ms. 173 dan 176). Baris 14 menghantar a = 18 dan b = 27 terus, maka besar = 18, kecil = 27 dan beza = 18 - 27 = -9.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Namakan function dan procedure dalam atur cara itu. Beri satu sebab bagi setiap jawapan.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Function: besar_kecil (memulangkan dua nilai dengan return). Procedure: papar_hasil (tiada return; hanya memaparkan).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Tulis satu baris yang menggantikan baris 14 supaya Beza yang dipaparkan ialah 9, tanpa menggunakan p dan q.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
papar_hasil(b, a)
Argumen pertama mesti nombor yang lebih besar (27 = b), supaya besar - kecil = 27 - 18 = 9.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, Bab 4, standard 4.2.3
TextbookBuku teks p.ms. 176

Bahagian C

20 marksmarkah
Jawab semua soalan. Tulis jawapan anda di ruang yang disediakan. Tulis pseudokod dan kod arahan dengan inden yang betul.
21

QuestionSoalan 21

Sebelas nombor pendaftaran peserta sebuah pertandingan disimpan dalam senarai L yang telah tersusun menaik (Rajah 3). Seorang murid mahu mencari nombor 47 dengan binary search. Pseudokod yang belum lengkap ditunjukkan di bawah. Kata kunci P, Q, R dan S tidak ditulis.
1Mula
2Setkan senarai L = [4, 9, 15, 21, 28, 34, 40, 47, 53, 60, 66]
3Isytihar pemboleh ubah n, i, j, m, b
4Setkan n = 11
5Setkan i = 0
6Setkan j = P
7Masukkan satu nilai carian b
8while Q
9    Setkan m = R
10    Jika b == L[m]
11        Papar "Item ada dalam senarai"
12        Keluar gelung
13    Jika tidak
14        Jika b < L[m]
15            Kira S
16        Jika tidak
17            Kira i = m + 1
18Tamat
Senarai L dengan sebelas nombor pendaftaran yang tersusun menaik pada indeks 0 hingga 10
Rajah 3
[2 marksmarkah] (a)Nyatakan satu syarat yang mesti dipenuhi oleh senarai sebelum binary search boleh digunakan, dan satu sebab binary search lebih sesuai daripada linear search bagi senarai yang banyak item.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Senarai mesti diisih menaik dahulu; binary search lebih pantas kerana tidak menyemak setiap item (separuh senarai diabaikan setiap kali).
Tick each point you got.Tandakan setiap isi yang betul.
[4 marksmarkah] (b)Tulis kata kunci P, Q, R dan S.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
P n - 1; Q i <= j; R (i + j) / 2; S j = m - 1.
Rajah 3.6 (ms. 78) menulis syarat gelung sebagai i < j, tetapi syarat itu berhenti terlalu awal apabila tinggal satu item (i = j): bagi b = 47, gelung berhenti pada i = j = 7 tanpa menyemak L[7]. Syarat i <= j ialah bentuk yang tidak tertinggal item.
Tick each point you got.Tandakan setiap isi yang betul.
[3 marksmarkah] (c)Lengkapkan jejak (trace) bagi b = 47: tulis nilai i, j, m dan L[m] bagi setiap ulangan sehingga 47 dijumpai.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
(i, j, m, L[m]): (0, 10, 5, 34), (6, 10, 8, 53), (6, 7, 6, 40), (7, 7, 7, 47). Dijumpai pada indeks 7 selepas 4 ulangan.
m = (i + j) / 2 dibundarkan ke bawah: (0 + 10) / 2 = 5, (6 + 10) / 2 = 8, (6 + 7) / 2 = 6.5 menjadi 6, (7 + 7) / 2 = 7 (ms. 66).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (d)Berapakah bilangan semakan jika linear search digunakan untuk mencari 47 dalam senarai yang sama?

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
8 semakan (47 berada pada indeks 7, maka item pertama hingga item ke-8 disemak)
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: EvaluatingMenilai, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.2
TextbookBuku teks p.ms. 78
22

QuestionSoalan 22

Koperasi sekolah mahu sebuah atur cara Python untuk mengira bayaran pelanggan yang membeli beberapa bungkus makanan dengan harga yang sama. Jika jumlah harga lebih daripada RM 50, diskaun 10% diberi; jika tidak, tiada diskaun. Atur cara itu diulang bagi pelanggan seterusnya sehingga pengguna memasukkan T.
[2 marksmarkah] (a)Nyatakan dua perbezaan antara function dan procedure dalam Python.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Function memulangkan nilai, procedure tidak memulangkan nilai (None). Function perlu menerima argumen, procedure tidak semestinya.
Rajah 4.44 (ms. 169). Terima juga perbezaan yang benar: function mempunyai pernyataan return, procedure hanya memaparkan maklumat.
Tick each point you got.Tandakan setiap isi yang betul.
[8 marksmarkah] (b)Tulis atur cara Python yang lengkap dengan:
(i) function kira_jumlah(harga, kuantiti) yang memulangkan jumlah harga;
(ii) function kira_bayaran(jumlah) yang memulangkan bayaran selepas diskaun 10% jika jumlah lebih daripada 50, atau jumlah itu sendiri jika tidak;
(iii) procedure papar_resit(nama, bayaran) yang memaparkan nama pelanggan dan bayaran;
(iv) atur cara utama dengan gelung while: baca nama, harga sebungkus (float) dan bilangan bungkus (integer), panggil function dan procedure itu, kemudian tanya sama ada hendak meneruskan (Y) atau berhenti (T).

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
def kira_jumlah(harga, kuantiti):
    return harga * kuantiti

def kira_bayaran(jumlah):
    if jumlah > 50:
        return jumlah - jumlah * 0.1
    else:
        return jumlah

def papar_resit(nama, bayaran):
    print("Pelanggan:", nama)
    print("Bayaran: RM", bayaran)

terus = "Y"
while terus == "Y":
    nama = input("Nama pelanggan: ")
    harga = float(input("Harga sebungkus (RM): "))
    kuantiti = int(input("Bilangan bungkus: "))
    jumlah = kira_jumlah(harga, kuantiti)
    bayaran = kira_bayaran(jumlah)
    papar_resit(nama, bayaran)
    terus = input("Teruskan [Y] atau Berhenti [T]? ")
Terima mana-mana atur cara yang betul dan setara: while True dengan break, bendera aktif seperti dalam Contoh 4.13 (ms. 185 dan 186), jumlah * 0.9, atau nama pemboleh ubah yang lain. Nama function dan procedure mesti seperti dalam soalan. Semakan: Aini, RM 30 dua bungkus, jumlah 60.0 lebih daripada 50, bayaran 60.0 - 6.0 = 54.0; Ben, RM 12.5 dua bungkus, jumlah 25.0, bayaran 25.0 (tiada diskaun).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, Bab 4, standard 4.2.4
TextbookBuku teks p.ms. 185
Test specification (JSU)Jadual Spesifikasi Ujian (JSU)
BabRememberingMengingatUnderstandingMemahamiApplyingMengaplikasiAnalysingMenganalisisEvaluatingMenilaiCreatingMenciptaItemmarksmarkah
1. Konsep asas pemikiran komputasional1 (1)2 (5)3 (9)–––615
2. Perwakilan data–2 (5)2 (8)–––413
3. Algoritma1 (1)1 (1)1 (1)1 (4)1 (10)–517
4. Kod arahan3 (6)–2 (5)1 (4)–1 (10)725
TotalJumlah5 (8)5 (11)8 (23)2 (8)1 (10)1 (10)2270
Each cell shows items (marks).Setiap petak menunjukkan item (markah).