myUASARevision for UASAUlang kaji UASA
Asas Sains Komputer questionssoalan, bab 3

Kod arahan

40 marksmarkah. Guna mod Latihan untuk menyemak setiap jawapan, atau mod Peperiksaan untuk menjawab semua soalan dahulu. Sediakan kertas kosong dan pensel untuk menjejak kod arahan baris demi baris.

Bahagian A: soalan objektif

13 marksmarkah
Jawab semua soalan. Pilih satu jawapan yang betul bagi setiap soalan.
1

QuestionSoalan 1

Antara bahasa pengaturcaraan berikut, yang manakah menggunakan pentafsir (interpreter) untuk menterjemah kod arahan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Python, PHP, Perl dan Ruby menggunakan pentafsir. C, C++, Java dan Pascal menggunakan pengkompil (Rajah 3.1, ms. 76).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1
TextbookBuku teks p.ms. 76
2

QuestionSoalan 2

Bahasa pengaturcaraan Python tidak menyokong jenis data double. Jenis data manakah yang digunakan oleh Python untuk mewakili nombor yang mempunyai titik perpuluhan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Python menggunakan jenis data float bagi nombor yang mempunyai titik perpuluhan. int ialah nombor bulat, str ialah rentetan aksara dan bool ialah nilai logik (ms. 79).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.1
TextbookBuku teks p.ms. 79
3

QuestionSoalan 3

Bahasa pengaturcaraan Python tidak mempunyai jenis data char. Dalam Python, satu aksara seperti 'A' diwakili oleh jenis data
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Python tidak mempunyai jenis data char. Semua aksara diwakili oleh jenis data string (ms. 81).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.1
TextbookBuku teks p.ms. 81
4

QuestionSoalan 4

Segmen kod Python berikut dilaksanakan.
>>> ayat = str("Sains Komputer")
>>> print(len(ayat))
Apakah output kod di atas?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Fungsi len() menghitung bilangan aksara dalam string. Ruang kosong juga dikira sebagai satu aksara. Sains (5) + ruang (1) + Komputer (8) = 14 (Contoh 3.7, ms. 84).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.1.1
TextbookBuku teks p.ms. 84
5

QuestionSoalan 5

Antara berikut, yang manakah nama pemboleh ubah yang boleh digunakan dalam Python?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Nama pemboleh ubah hanya boleh mengandungi huruf dan digit, tidak boleh dimulakan dengan nombor dan tidak boleh ada ruang kosong. 2markah bermula dengan nombor. markah murid dan jum jualan ada ruang kosong. markah2 sahaja yang betul (ms. 91).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.2
TextbookBuku teks p.ms. 91
6

QuestionSoalan 6

Dalam atur cara yang mengira luas bulatan, nilai π diisytiharkan sebagai pemalar. Mengapakah?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Nilai pemalar tetap dan tidak berubah semasa atur cara dilaksanakan, jadi nilai π kekal sama dalam setiap pengiraan. Nilai pemboleh ubah pula boleh berubah (Jadual 3.4, ms. 92).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.2
TextbookBuku teks p.ms. 92
7

QuestionSoalan 7

Antara berikut, yang manakah fungsi input dalam Python untuk mendapatkan data daripada pengguna?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Python menggunakan input(). print() ialah fungsi output. cout ialah fungsi output C++ dan scanf() ialah fungsi input bahasa C (Jadual 3.5 dan 3.6, ms. 95-97).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teks p.ms. 96
8

QuestionSoalan 8

Diberi x = 12. Antara ungkapan boolean berikut, yang manakah memberikan False?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
x > 10 ialah True (12 lebih besar daripada 10). x <= 12 ialah True (12 sama dengan 12). x == 12 ialah True. x != 12 bermaksud x tidak sama dengan 12, jadi False (Jadual 3.7, ms. 98).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teks p.ms. 98
9

QuestionSoalan 9

Diberi x = 15. Apakah nilai bagi ungkapan berikut?
(x > 10) and (x < 15)
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
x > 10 ialah True tetapi x < 15 ialah False kerana 15 tidak kurang daripada 15. Operator AND memberikan True hanya jika kedua-dua keadaan benar, jadi hasilnya False (Jadual 3.8, ms. 99).
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, standard 3.1.3
TextbookBuku teks p.ms. 99
10

QuestionSoalan 10

Apakah output bagi kod Python berikut?
print(17 % 5, 17 // 5, 2 ** 3)
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
17 % 5 ialah baki pembahagian = 2. 17 // 5 ialah hasil bahagi tanpa baki = 3. 2 ** 3 ialah 2 dikuasakan 3 = 8. Output: 2 3 8 (Jadual 3.9, ms. 100).
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.1.3
TextbookBuku teks p.ms. 100
11

QuestionSoalan 11

Murid menaip kod berikut dalam IDLE Python. Atur cara berhenti tiba-tiba dan memaparkan mesej NameError: name 'markh' is not defined.
1markah = 80
2print(markh)
Apakah jenis ralat ini?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Pemboleh ubah markh tidak pernah ditakrifkan (salah eja markah). Menggunakan pemboleh ubah yang belum ditakrifkan menyebabkan atur cara terhenti tiba-tiba dengan mesej ralat, iaitu ralat masa larian (ms. 106).
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, standard 3.1.4
TextbookBuku teks p.ms. 106
12

QuestionSoalan 12

Aini menulis kod berikut untuk mengira purata dua markah. Atur cara berjalan tanpa mesej ralat tetapi memaparkan 125.0, bukan 85.0.
1a = 80
2b = 90
3purata = a + b / 2
4print(purata)
Apakah jenis ralat dan cara membaikinya?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Tiada mesej ralat tetapi output salah, maka ini ralat logik. Operator bahagi dilaksanakan dahulu: 80 + (90 / 2) = 125.0. Kurungan memaksa tambah dahulu: (80 + 90) / 2 = 85.0 (Contoh 3.20, ms. 110-111).
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 3.1.4
TextbookBuku teks p.ms. 110
13

QuestionSoalan 13

Atur cara perlu memaparkan "Tahniah" sebanyak lima kali. Hafiz menulis lima baris print("Tahniah"). Mei Ling menulis kod berikut.
for i in range(5):
    print("Tahniah")
Antara pernyataan berikut, yang manakah penilaian yang paling tepat?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Struktur kawalan ulangan membolehkan kod yang panjang diringkaskan dan lebih mudah ditambah baik (ms. 143). Untuk 50 kali, Hafiz perlu menulis 50 baris tetapi Mei Ling hanya menukar range(5) kepada range(50).
For the teacherUntuk guru: EvaluatingMenilai, hightinggi difficultyaras hightinggi, standard 3.2.1
TextbookBuku teks p.ms. 143

Bahagian B: soalan berstruktur

27 marksmarkah
Jawab semua soalan. Jejak kod arahan baris demi baris. Kod ditulis dalam Python 3.5, seperti dalam buku teks.
14

QuestionSoalan 14

Nyatakan jenis data bagi setiap nilai dalam segmen kod Python berikut.
[1 markmarkah] (a)32
Show answerTunjuk jawapanHide answerSembunyi jawapan
integer
[1 markmarkah] (b)"32" (dalam tanda petikan)
Show answerTunjuk jawapanHide answerSembunyi jawapan
string
[1 markmarkah] (c)False
Show answerTunjuk jawapanHide answerSembunyi jawapan
boolean
32 ialah nombor bulat (integer). "32" berada dalam tanda petikan, maka ia ialah string. False ialah nilai logik (boolean). Rajah 3.2, ms. 77.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, standard 3.1.1
TextbookBuku teks p.ms. 77
15

QuestionSoalan 15

Segmen kod Python berikut mengira luas bulatan.
1pi = 3.142
2jejari = float(input("Jejari (cm): "))
3luas = pi * jejari ** 2
4print("Luas:", round(luas, 2))
[1 markmarkah] (a)Nyatakan satu pemalar dalam kod di atas.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
pi
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Pengguna memasukkan 5 pada baris 2. Tulis output atur cara. Tunjukkan pengiraan anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Luas: 78.55
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.1.2
TextbookBuku teks p.ms. 92
16

QuestionSoalan 16

Atur cara berikut tidak dapat dilaksanakan kerana mesej ralat dipaparkan sebelum sebarang output.
1umur = int(input("Masukkan umur: ")
2if umur >= 13
3    print("Remaja")
4else:
5    print("Kanak-kanak")
[1 markmarkah] (a)Apakah jenis ralat ini?

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat sintaks
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Kenal pasti dua ralat dalam kod di atas dan tulis baris yang telah dibaiki.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Baris 1: umur = int(input("Masukkan umur: ")). Baris 2: if umur >= 13:
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, standard 3.2.2
TextbookBuku teks p.ms. 150
17

QuestionSoalan 17

Segmen kod Python berikut menggunakan struktur kawalan jujukan.
1harga = 12.50
2bilangan = 4
3jumlah = harga * bilangan
4baki = 100 - jumlah
5print("Baki: RM", baki)
[1 markmarkah] (a)Tulis output atur cara.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Baki: RM 50.0
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Mengapakah kod ini dikatakan struktur kawalan jujukan?

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Arahan dilaksanakan baris demi baris dari atas ke bawah mengikut susunan.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, standard 3.2.1
TextbookBuku teks p.ms. 122
18

QuestionSoalan 18

Segmen kod Python berikut menyemak markah murid.
1markah = int(input("Markah: "))
2if markah >= 50:
3    if markah >= 80:
4        print("Cemerlang")
5    else:
6        print("Lulus")
7else:
8    print("Gagal")
[1 markmarkah] (a)Tulis output jika pengguna memasukkan 85.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Cemerlang
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Tulis output jika pengguna memasukkan 50.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Lulus
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Namakan jenis struktur kawalan pilihan dalam kod di atas.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Struktur kawalan pilihan bersarang
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.2.1
TextbookBuku teks p.ms. 136
19

QuestionSoalan 19

Sebuah taman permainan menjual tiket mengikut umur: kanak-kanak (bawah 13 tahun), dewasa (13 hingga 59 tahun) dan warga emas (60 tahun dan ke atas). Kod berikut ditulis untuk memaparkan jenis tiket.
1umur = int(input("Umur: "))
2if umur >= 13:
3    print("Tiket dewasa")
4elif umur >= 60:
5    print("Tiket warga emas")
6else:
7    print("Tiket kanak-kanak")
[1 markmarkah] (a)Tulis output jika pengguna memasukkan 65.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Tiket dewasa
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Output di atas salah. Nyatakan jenis ralat dan terangkan puncanya.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat logik: syarat umur >= 13 benar dahulu, maka elif umur >= 60 tidak pernah dicapai.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Tulis semula baris 2 hingga 5 supaya atur cara memberi output yang betul.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
if umur >= 60: print("Tiket warga emas") elif umur >= 13: print("Tiket dewasa")
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, standard 3.2.2
TextbookBuku teks p.ms. 153
20

QuestionSoalan 20

Teliti segmen kod Python berikut.
1jumlah = 0
2for i in range(1, 5):
3    jumlah = jumlah + i * 2
4print(jumlah)
[1 markmarkah] (a)Senaraikan nilai i yang dijana oleh range(1, 5).

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
1, 2, 3, 4
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Tulis nilai jumlah selepas setiap lelaran, kemudian tulis output atur cara.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
2, 6, 12, 20. Output: 20
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Kod while n > 0: print(n) dengan n = 3 tidak mengubah nilai n dalam gelung. Apakah yang berlaku?

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
Gelung tak terhingga
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, standard 3.2.1
TextbookBuku teks p.ms. 146
21

QuestionSoalan 21

Permainan meneka nombor menggunakan gabungan struktur kawalan. Lengkapkan kod Python berikut. Pemboleh ubah rahsia ialah nombor rahsia yang tidak berubah.
1rahsia = 7
2teka = int(input("Teka nombor: "))
3while teka (a) rahsia:
4    if teka < rahsia:
5        print("Terlalu kecil")
6    (b):
7        print("Terlalu besar")
8    teka = (c)(input("Teka lagi: "))
9print("Tahniah!")
[1 markmarkah] (a)Pilih operator perbandingan pada (a) supaya gelung berulang selagi tekaan tidak sama dengan nombor rahsia.
Show answerTunjuk jawapanHide answerSembunyi jawapan
!=
[1 markmarkah] (b)Kata kunci pada (b) bagi cabang apabila tekaan lebih besar.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
else
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Fungsi pada (c) yang menukar input kepada nombor bulat.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
int
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, hightinggi difficultyaras hightinggi, standard 3.2.3
TextbookBuku teks p.ms. 160
22

QuestionSoalan 22

Sebuah kantin menjual buku latihan dengan harga tetap RM8.50 senaskhah. Tulis segmen kod Python yang meminta pengguna memasukkan bilangan buku (nombor bulat), mengira jumlah bayaran dan memaparkan jumlah itu.
[3 marksmarkah] Tulis segmen kod anda.

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

Show answerTunjuk jawapanHide answerSembunyi jawapan
harga = 8.50 / bilangan = int(input("Bilangan buku: ")) / jumlah = harga * bilangan / print("Jumlah: RM", jumlah)
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, standard 3.1.5
TextbookBuku teks p.ms. 115