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

Asas Sains Komputer

Tingkatan 2, 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 cara 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

Antara nombor berikut, yang manakah bukan nombor perlapanan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Sistem perlapanan hanya menggunakan digit 0 hingga 7 dan tidak mempunyai digit 8 dan 9 (ms. 3). 39188 mengandungi digit 9 dan 8, maka ia bukan nombor perlapanan. Tiga nombor lain hanya menggunakan digit 0 hingga 7.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.1
TextbookBuku teks p.ms. 3
2

QuestionSoalan 2

Perkataan SAYANG mempunyai enam aksara. Setiap aksara disimpan sebagai satu bait (8 bit) menggunakan kod ASCII. Pernyataan yang manakah betul?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Satu aksara = 8 bit = 8 digit perduaan = 3 digit perlapanan = 2 digit perenambelasan (ms. 15 dan 31). Bagi 6 aksara: 6 × 8 = 48 digit perduaan, 6 × 3 = 18 digit perlapanan dan 6 × 2 = 12 digit perenambelasan, sama seperti perkataan TOLONG yang diwakili oleh 48 digit perduaan dan 18 digit perlapanan (ms. 15). Pilihan A menggunakan 18 digit untuk perenambelasan, pilihan B dan C mengubah bilangan digit yang salah.
For the teacherUntuk guru: UnderstandingMemahami, mediumsederhana difficultyaras mediumsederhana, Bab 1, standard 1.1.4
TextbookBuku teks p.ms. 15
3

QuestionSoalan 3

Teliti pseudokod berikut.
1Setkan n = 4
2Setkan jum = 0
3while n != 0
4    jum = jum + n
5    n = n - 2
6Paparkan jum
Apakah nilai yang dipaparkan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Syarat n != 0 diuji sebelum setiap lelaran (ms. 58). Lelaran 1: n = 4, jum = 0 + 4 = 4, n menjadi 2. Lelaran 2: n = 2, jum = 4 + 2 = 6, n menjadi 0. Apabila n = 0, syarat palsu dan gelung berhenti. Paparkan jum = 6. Pilihan 10 ialah hasil jika n dikurangkan satu setiap kali (4 + 3 + 2 + 1); pilihan 4 hanya mengira lelaran pertama.
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, Bab 2, standard 2.1.1 (ii)
TextbookBuku teks p.ms. 58
4

QuestionSoalan 4

Sebuah atur cara berjalan sehingga tamat tanpa memaparkan sebarang mesej ralat, tetapi outputnya tidak seperti yang dijangka. Apakah jenis ralat itu?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Ralat logik menyebabkan atur cara memberi output yang tidak dijangka dan tiada paparan mesej ralat, maka ia sukar dikesan (Rajah 2.17, ms. 60). Ralat sintaks ada mesej ralat dan ralat masa larian menyebabkan atur cara terhenti tiba-tiba. Ralat penterjemah bukan jenis ralat dalam buku teks.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.2
TextbookBuku teks p.ms. 60
5

QuestionSoalan 5

Python menggunakan penterjemah jenis
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Buku teks menyenaraikan tiga jenis penterjemah: penghimpun, pengkompil dan pentafsir. Python, PHP, Perl dan Ruby menggunakan pentafsir; C, C++, Java dan Pascal menggunakan pengkompil (Rajah 3.1, ms. 76). Penyahpepijat bukan penterjemah.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1
TextbookBuku teks p.ms. 76
6

QuestionSoalan 6

Apakah output bagi kod Python berikut?
print(17 // 5, 17 % 5)
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Operator // memberi hasil bahagi tanpa baki: 17 // 5 = 3. Operator % memberi baki pembahagian: 17 % 5 = 2 (Jadual 3.9, ms. 100). Tanda koma dalam print() memaparkan satu ruang kosong di antara dua nilai. Output: 3 2.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 100
7

QuestionSoalan 7

Apakah output bagi kod Python berikut?
ayat = "Pelajar"
print(ayat[2:5])
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Indeks bermula daripada 0: P = 0, e = 1, l = 2, a = 3, j = 4, a = 5, r = 6. Julat [2:5] bermula pada indeks 2 dan berhenti sebelum indeks 5, iaitu aksara pada indeks 2, 3 dan 4: l, a, j. Output: laj (Contoh 3.6, ms. 83).
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.1
TextbookBuku teks p.ms. 83
8

QuestionSoalan 8

Atur cara dalam Amali Komputer 3.4 menggunakan pilihan bersarang untuk menentukan tahun lompat.
tahun = int(input("Masukkan tahun: "))
if (tahun % 4) == 0:
    if (tahun % 100) == 0:
        if (tahun % 400) == 0:
            print("Tahun lompat")
        else:
            print("Bukan tahun lompat")
    else:
        print("Tahun lompat")
else:
    print("Bukan tahun lompat")
Ungkapan boolean yang manakah menghasilkan keputusan tahun lompat yang sama dengan atur cara itu?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Tahun ialah tahun lompat jika boleh dibahagi 4 tetapi tidak boleh dibahagi 100, atau jika boleh dibahagi 400 (Amali Komputer 3.4, ms. 141 dan 142). Ungkapan D memberi keputusan yang sama untuk semua tahun: 2000 (True), 1900 (False), 2024 (True) dan 2026 (False). A salah kerana 1900 memberi True (1900 % 4 == 0). B salah kerana 2024 memberi False (2024 % 400 != 0). C salah kerana 2024 memberi False dan ungkapan itu benar bagi 1900 yang bukan tahun lompat.
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.2.1 (iii)
TextbookBuku teks p.ms. 141
9

QuestionSoalan 9

Apakah output bagi kod Python berikut?
markah = 72
if markah >= 80:
    print("Cemerlang")
elif markah >= 60:
    print("Baik")
elif markah >= 40:
    print("Memuaskan")
else:
    print("Cuba lagi")
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Struktur pelbagai pilihan if-elif-else menyemak syarat dari atas ke bawah dan berhenti pada syarat pertama yang benar (Rajah 3.12, ms. 127). 72 >= 80 palsu; 72 >= 60 benar, maka "Baik" dipaparkan dan syarat selepasnya tidak disemak lagi.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.2.1 (ii)
TextbookBuku teks p.ms. 127
10

QuestionSoalan 10

Berapa kali pernyataan dalam gelung berikut dilaksanakan?
for i in range(4, 20, 4):
    print(i)
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
range(mula, henti, langkau) bermula pada 4, bertambah 4 setiap kali dan berhenti sebelum 20: 4, 8, 12, 16 (Rajah 3.15, ms. 146). Maka ulangan berlaku 4 kali. Nilai 20 tidak termasuk kerana julat berhenti sebelum nilai henti.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.2.1 (iv)
TextbookBuku teks p.ms. 146

Bahagian B

40 marksmarkah
Jawab semua soalan. Tulis jawapan anda di ruang yang disediakan.
11

QuestionSoalan 11

Jadual 1 menunjukkan kod ASCII bagi aksara dalam perkataan Padi. Petak P, Q, R dan S sengaja dibiarkan kosong.
Jadual kod ASCII bagi P, a, d dan i dalam perpuluhan, perduaan, perlapanan dan perenambelasan; empat petak kosong P, Q, R dan S
Jadual 1
[2 marksmarkah] (a)Tulis nilai P, iaitu kod ASCII perlapanan bagi P, dan nilai Q, iaitu kod ASCII perenambelasan bagi a.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
P = 80: 80 ÷ 8 = 10 baki 0; 10 ÷ 8 = 1 baki 2; 1 ÷ 8 = 0 baki 1; baki dari bawah ke atas: 120 (ms. 12). Q = 97: 97 ÷ 16 = 6 baki 1; 6 ÷ 16 = 0 baki 6; baca 61 (ms. 28). Kedua-duanya boleh disemak dalam Lampiran A (ms. 178 dan 179).
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Tulis nilai R, iaitu kod ASCII perduaan bagi d (8 digit), dan nilai S, iaitu kod ASCII perlapanan bagi i.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
R: kod perpuluhan d ialah 100 dan kod perduaannya ialah 01100100 (Lampiran A, ms. 179); semakan: 64 + 32 + 4 = 100. S = 105: 105 ÷ 8 = 13 baki 1; 13 ÷ 8 = 1 baki 5; 1 ÷ 8 = 0 baki 1; baca 151 (ms. 12).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.3
TextbookBuku teks p.ms. 178
12

QuestionSoalan 12

Nombor perlapanan 34068 perlu ditukar kepada nombor perpuluhan.
[2 marksmarkah] (a)Tukarkan 34068 kepada nombor perpuluhan dengan nilai tempat perlapanan. Tunjukkan cara kerja anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Nilai tempat perlapanan: 83 = 512, 82 = 64, 81 = 8 dan 80 = 1 (ms. 3 dan 6). 1536 + 256 + 0 + 6 = 1798. Maka 34068 = 179810.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Nyatakan nilai tempat bagi digit 4 dalam 34068.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Digit 4 berada di kedudukan ketiga dari kanan, iaitu nilai tempat 82 = 64 (ms. 3 dan 6).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Tulis tiga nombor perlapanan yang datang selepas 578.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Selepas 7 datang 10 (dibaca satu kosong), bukan 8. Maka selepas 578 datang 608, 618 dan 628 (ms. 3).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: UnderstandingMemahami, mediumsederhana difficultyaras mediumsederhana, Bab 1, standard 1.1.2 (ii)
TextbookBuku teks p.ms. 7
13

QuestionSoalan 13

Tentukan sama ada pernyataan berikut tentang sistem nombor perenambelasan dan data komputer Benar atau Palsu.
[1 markmarkah] (a)Sistem nombor perenambelasan menggunakan digit 0 hingga 9 dan huruf A hingga F.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Benar
Sistem perenambelasan mempunyai enam belas pilihan digit, iaitu 0 hingga 9 dan A hingga F (ms. 19 dan Jadual 1.8, ms. 20).
[1 markmarkah] (b)Dalam pengiraan, digit E bernilai 15.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Palsu
E bernilai 14. Nilai 15 diwakili oleh F (Jadual 1.6, ms. 19).
[1 markmarkah] (c)Satu bait ialah gabungan 4 bit.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Palsu
Bait ialah gabungan 8 bit, bukan 4 bit, dan boleh mewakili sehingga 256 aksara berbeza (ms. 12).
[1 markmarkah] (d)Perkataan lima aksara seperti BAKTI diwakili oleh 40 digit perduaan atau 10 digit perenambelasan.
Show answerTunjuk jawapanHide answerSembunyi jawapan
Benar
Setiap aksara ialah 8 bit, maka 5 aksara = 40 digit perduaan. Dalam perenambelasan setiap aksara hanya 2 digit, maka 10 digit (Contoh 1.16, ms. 31).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.1
TextbookBuku teks p.ms. 19
14

QuestionSoalan 14

Lakukan penukaran sistem nombor yang berikut.
[2 marksmarkah] (a)Tukarkan 27508 kepada nombor perduaan. Buang sifar di hadapan dalam jawapan akhir.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Jadual 1.5 (ms. 9 dan 3): 2 = 010; 7 = 111; 5 = 101; 0 = 000. Cantum: 010111101000. Buang sifar di hadapan sahaja: 101111010002. Sifar di hujung (000) tidak boleh dibuang. Semakan: 2 × 512 + 7 × 64 + 5 × 8 + 0 = 1024 + 448 + 40 = 1512.
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Tukarkan 10101112 kepada nombor perlapanan. Tunjukkan cara kerja anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
7 digit bukan gandaan 3, maka tambah dua sifar di kiri (bukan di kanan): 001 010 111. 001 = 1; 010 = 2; 111 = 7. Maka 10101112 = 1278 (ms. 9 hingga 11). Semakan: 1 × 64 + 2 × 8 + 7 = 87 dan 10101112 = 64 + 16 + 4 + 2 + 1 = 87.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.1.2 (iii)
TextbookBuku teks p.ms. 9
15

QuestionSoalan 15

Nombor perpuluhan 75010 perlu ditukar kepada nombor perenambelasan.
[2 marksmarkah] (a)Tukarkan 75010 kepada nombor perenambelasan dengan kaedah bahagi dengan 16 dan gunakan bakinya. Tunjukkan cara kerja anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
750 ÷ 16 = 46 baki 14 (16 × 46 = 736); baki 14 ditulis E (Jadual 1.6, ms. 19). 46 ÷ 16 = 2 baki 14 (E). 2 ÷ 16 = 0 baki 2. Baca baki dari bawah ke atas: 2, E, E. Maka 75010 = 2EE16 (ms. 20 dan 21).
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Semak jawapan anda di (a) dengan menukarkannya semula kepada nombor perpuluhan. Tunjukkan cara kerja anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Nilai tempat perenambelasan: 256, 16 dan 1 (ms. 19). E = 14. 2 × 256 = 512; 14 × 16 = 224; 14 × 1 = 14. 512 + 224 + 14 = 750, sama dengan nombor asal (ms. 22 dan 23).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.2 (i)
TextbookBuku teks p.ms. 20
16

QuestionSoalan 16

Pseudokod berikut mengira denda buku perpustakaan mengikut bilangan hari buku itu dipulangkan lewat.
1Mula
2Baca hari
3Jika (hari == 0)
4    Setkan denda = 0
5Jika tidak
6    Jika (hari <= 7)
7        Kirakan denda = hari * 0.50
8    Jika tidak
9        Kirakan denda = 5.00 + (hari - 7) * 1.00
10    Tamat jika
11Tamat jika
12Paparkan denda
13Tamat
Jadual 2 ialah semakan meja bagi empat nilai hari. Petak P, Q dan R sengaja dibiarkan kosong.
Semakan meja dengan lajur hari lewat, ujian pertama hari == 0, ujian kedua hari <= 7 dan denda bagi 0, 4, 7 dan 10 hari; tiga petak kosong P, Q dan R
Jadual 2
[2 marksmarkah] (a)Tulis nilai P dan nilai Q.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
P: 4 == 0 ialah Tidak, maka cabang Jika tidak yang pertama dilaksanakan dan ujian kedua diuji. Q: 10 <= 7 ialah Tidak, maka cabang Jika tidak yang dalam dilaksanakan (ms. 43).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Tulis nilai R, iaitu denda yang dipaparkan bagi 10 hari.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
10 <= 7 ialah Tidak, maka denda = 5.00 + (10 - 7) * 1.00 = 5.00 + 3.00 = 8.00.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Jika baris 6 ditulis sebagai Jika (hari < 7), tulis denda yang dipaparkan bagi 7 hari.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
7 < 7 ialah Tidak, maka cabang Jika tidak yang dalam dilaksanakan: denda = 5.00 + (7 - 7) * 1.00 = 5.00. Dengan <= denda bagi 7 hari ialah 7 * 0.50 = 3.50. Menukar <= kepada < mengubah keputusan pada nilai sempadan 7: uji nilai sempadan dengan semakan meja (ms. 43).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, Bab 2, standard 2.1.1 (i)
TextbookBuku teks p.ms. 43
17

QuestionSoalan 17

Pilih jenis data Python bagi setiap nilai berikut.
[1 markmarkah] (a)2026
Show answerTunjuk jawapanHide answerSembunyi jawapan
integer
Nombor bulat tanpa titik perpuluhan ialah integer (int) (Rajah 3.2, ms. 77).
[1 markmarkah] (b)3.75
Show answerTunjuk jawapanHide answerSembunyi jawapan
float
Nombor yang mempunyai bahagian pecahan (titik perpuluhan) ialah float dalam Python (double dalam C, C++ dan C#) (ms. 77 dan 79).
[1 markmarkah] (c)"Kuching"
Show answerTunjuk jawapanHide answerSembunyi jawapan
string
Rentetan aksara dalam petikan ialah string (str) (ms. 77 dan 82).
[1 markmarkah] (d)False
Show answerTunjuk jawapanHide answerSembunyi jawapan
boolean
Nilai logik hanya mempunyai dua keadaan, Benar dan Palsu, dipaparkan sebagai True dan False dalam atur cara (ms. 77 dan 86).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.1
TextbookBuku teks p.ms. 77
18

QuestionSoalan 18

Tulis output yang dipaparkan oleh print() bagi setiap ungkapan Python berikut.
[1 markmarkah] (a)print(45 // 6)

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Operator // memberi hasil bahagi tanpa baki: 6 × 7 = 42 dan 45 - 42 = 3, maka hasil bahagi tanpa baki ialah 7 (Jadual 3.9, ms. 100).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)print(45 % 6)

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Operator % memberi baki pembahagian: 45 ÷ 6 = 7 baki 3 (Jadual 3.9, ms. 100).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)print(5 ** 3)

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Operator ** ialah eksponen (kuasa): 53 = 5 × 5 × 5 = 125 (Jadual 3.9, ms. 100).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (d)print(9 / 4)

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Operator / memberi hasil bahagi berjenis float: 9 / 4 = 2.25 (Jadual 3.1, ms. 78).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.1
TextbookBuku teks p.ms. 100
19

QuestionSoalan 19

Atur cara berikut mengira purata dua markah ujian. Pengguna memasukkan 60 dan 80. Atur cara berjalan tanpa mesej ralat tetapi memaparkan Purata: 100.0, bukan 70.0.
1markah1 = int(input("Markah ujian 1: "))
2markah2 = int(input("Markah ujian 2: "))
3purata = markah1 + markah2 / 2
4print("Purata:", purata)
[1 markmarkah] (a)Nyatakan jenis ralat itu.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Atur cara berjalan tanpa mesej ralat tetapi memberi output yang salah, maka ia ialah ralat logik (ms. 60 dan 109).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Terangkan punca output 100.0.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Python mengikut tertib operasi matematik: darab dan bahagi dahulu, kemudian tambah dan tolak, melainkan ada kurungan (ms. 78 dan 110). Sama seperti kesilapan dalam Contoh 3.20 (ms. 109 hingga 111) yang menyebabkan bahagi dibuat dahulu.
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (c)Tulis semula baris 3 supaya purata yang betul dikira, kemudian tulis output atur cara.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
purata = (markah1 + markah2) / 2
Output: Purata: 70.0
Kurungan memastikan tambah dibuat dahulu: (60 + 80) / 2 = 140 / 2 = 70.0. Hasil bahagi dalam Python 3 ialah float, maka output ialah 70.0 dan bukan 70 (Contoh 3.23, ms. 123).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: EvaluatingMenilai, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.4
TextbookBuku teks p.ms. 109
20

QuestionSoalan 20

Diberi ayat = "Sekolah". Tulis output bagi setiap pernyataan Python berikut.
[1 markmarkah] (a)print(len(ayat))

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
len() menghitung bilangan aksara: S, e, k, o, l, a, h = 7 (Jadual 3.3, ms. 83).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)print(ayat[3])

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Indeks bermula daripada 0: S = 0, e = 1, k = 2, o = 3. Maka ayat[3] ialah o (Contoh 3.6, ms. 83).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)print(ayat * 2)

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Operator * mengulang string mengikut bilangan yang dinyatakan, tanpa ruang kosong (Jadual 3.3, ms. 83).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (d)print("-".join("Ayu"))

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
join() menambah aksara di antara setiap aksara string. Seperti ":".join("Selamat") yang memberi S:e:l:a:m:a:t (Contoh 3.9, ms. 85).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.1
TextbookBuku teks p.ms. 83

Bahagian C

20 marksmarkah
Jawab semua soalan. Tulis jawapan anda di ruang yang disediakan.
21

QuestionSoalan 21

Sebuah kedai runcit mencatat jumlah belian setiap pelanggan (dalam RM). Pengguna memasukkan jumlah belian pelanggan satu demi satu. Nombor 0 menandakan tiada pelanggan lagi dan tidak dikira sebagai belian. Atur cara mengira bilangan pelanggan dan jumlah belian semua pelanggan, kemudian memaparkan kedua-duanya. Selepas itu, jika jumlah belian sekurang-kurangnya RM300, paparkan "Sasaran tercapai"; jika tidak, paparkan "Sasaran belum tercapai".
[2 marksmarkah] (a)Rajah 1 ialah carta alir bagi bahagian pertama algoritma. Tulis syarat bagi P dan pernyataan bagi Q.
Carta alir: setkan jumlah = 0 dan bil = 0; baca belian; keputusan P; jika Ya kirakan jumlah dan bil, kemudian Q dan kembali ke keputusan; jika Tidak paparkan bil dan jumlah, TAMAT
Rajah 1

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Gelung while berjalan selagi belian bukan 0 (0 ialah penanda untuk berhenti, seperti Contoh 2.4, ms. 57 hingga 59). Belian pertama dibaca sebelum gelung; belian seterusnya mesti dibaca semula di hujung gelung (Q) supaya syarat berubah dan gelung akhirnya berhenti.
Tick each point you got.Tandakan setiap isi yang betul.
[8 marksmarkah] (b)Tulis pseudokod lengkap bagi algoritma ini.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Mula
Setkan jumlah = 0
Setkan bil = 0
Baca belian
while belian != 0
    Kirakan jumlah = jumlah + belian
    Kirakan bil = bil + 1
    Baca belian
Paparkan bil, jumlah
Jika (jumlah >= 300)
    Paparkan "Sasaran tercapai"
Jika tidak
    Paparkan "Sasaran belum tercapai"
Tamat jika
Tamat
Algoritma ini menggabungkan jujukan, ulangan while dan pilihan dwipilihan (ms. 65 hingga 68). Terima penyelesaian lain yang betul, misalnya belian dibaca di dalam gelung dengan syarat berhenti yang lain, asalkan nilai 0 tidak ditambah ke jumlah atau dikira sebagai pelanggan. Semakan meja dengan 120.50, 45, 80 dan 0: bil = 3, jumlah = 245.5, "Sasaran belum tercapai". Dengan 150, 90, 75.50 dan 0: bil = 3, jumlah = 315.5, "Sasaran tercapai". Jumlah tepat RM300 juga mencapai sasaran kerana syaratnya >= 300.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, Bab 2, standard 2.1.3
TextbookBuku teks p.ms. 65
22

QuestionSoalan 22

Koperasi sekolah menjual buku latihan pada harga tetap RM12.50 sebuah. Pelanggan membeli sekurang-kurangnya satu buku. Diskaun diberi mengikut bilangan buku: 20% jika membeli 10 buah atau lebih; 10% jika membeli 5 hingga 9 buah; tiada diskaun jika kurang daripada 5 buah.
[2 marksmarkah] (a)(i) Tulis jumlah bayaran bagi 12 buku selepas diskaun.
(ii) Nyatakan sama ada harga RM12.50 patut disimpan sebagai pemboleh ubah atau pemalar. Beri satu sebab.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
(i) 12.5 × 12 = 150.0; diskaun 20% = 30.0; 150.0 - 30.0 = 120.0 (sama dengan 150.0 × 0.80). (ii) Pemalar menyimpan nilai dalam ingatan, tetapi nilainya tidak berubah semasa atur cara dilaksanakan (Jadual 3.4, ms. 92).
Tick each point you got.Tandakan setiap isi yang betul.
[8 marksmarkah] (b)Tulis atur cara Python lengkap yang: (1) menyimpan harga sebuah buku sebagai pemalar; (2) meminta bilangan buku (nombor bulat) dan mengulang permintaan itu selagi bilangan yang dimasukkan kurang daripada 1; (3) memilih kadar diskaun mengikut bilangan buku; (4) mengira jumlah bayaran selepas diskaun dan memaparkannya dibundarkan kepada dua tempat perpuluhan.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
HARGA = 12.50
bil = int(input("Bilangan buku: "))
while bil < 1:
    print("Bilangan tidak sah")
    bil = int(input("Bilangan buku: "))
if bil >= 10:
    diskaun = 0.20
elif bil >= 5:
    diskaun = 0.10
else:
    diskaun = 0
jumlah = HARGA * bil
bayar = jumlah - jumlah * diskaun
print("Jumlah bayaran: RM", round(bayar, 2))
Atur cara menggabungkan jujukan, ulangan while, pilihan if-elif-else dan pemalar (ms. 92, 127 hingga 135 dan 159 hingga 163). Terima penyelesaian lain yang betul, misalnya nama pemboleh ubah yang lain, if bersarang atau jumlah dikira terus dengan HARGA * bil * (1 - diskaun). Semakan meja: 12 buku memberi RM120.0; 10 buku memberi 125.0 - 25.0 = RM100.0; 6 buku memberi 75.0 - 7.5 = RM67.5; 4 buku memberi RM50.0; jika pengguna memasukkan 0 dahulu, atur cara meminta bilangan semula.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.2.3
TextbookBuku teks p.ms. 160
Test specification (JSU)Jadual Spesifikasi Ujian (JSU)
BabRememberingMengingatUnderstandingMemahamiApplyingMengaplikasiAnalysingMenganalisisEvaluatingMenilaiCreatingMenciptaItemmarksmarkah
1. Perwakilan data2 (5)2 (5)3 (12)–––722
2. Algoritma1 (1)––2 (5)–1 (10)416
3. Kod arahan2 (5)1 (4)5 (8)1 (1)1 (4)1 (10)1132
TotalJumlah5 (11)3 (9)8 (20)3 (6)1 (4)2 (20)2270
Each cell shows items (marks).Setiap petak menunjukkan item (markah).