Konsep asas pemikiran komputasional
What this chapter coversMatlamat bab ini
- Murid boleh menggunakan konsep pemikiran komputasional dalam fasa analisis masalah bagi membangunkan atur cara aritmetik (1.1.1)
- Murid boleh menggunakan konsep pemikiran komputasional dalam fasa reka bentuk atur cara bagi membangunkan atur cara aritmetik (1.1.1)
- Murid boleh menggunakan konsep pemikiran komputasional dalam fasa pengekodan bagi membangunkan atur cara aritmetik (1.1.1)
- Murid boleh menggunakan konsep pemikiran komputasional dalam fasa pengujian dan penyahpepijatan, serta mengenal pasti ralat sintaks, ralat masa larian dan ralat logik (1.1.1)
- Murid boleh menggunakan konsep pemikiran komputasional dalam fasa dokumentasi bagi membangunkan atur cara aritmetik (1.1.1)
- Murid boleh membuat pelaporan penggunaan teknik pemikiran komputasional bagi setiap fasa pembangunan atur cara (1.1.2)
- Murid boleh menghasilkan satu projek mini secara berkumpulan berdasarkan situasi penyelesaian masalah dengan merujuk fasa pembangunan atur cara (1.1.3)
1.1Pembangunan atur cara
Pemikiran komputasional membantu kita menyelesaikan masalah secara sistematik. Dalam bab ini, kamu menggunakannya untuk membina sebuah atur cara aritmetik (atur cara yang membuat pengiraan), dari masalah sehingga dokumentasi.
Pembangunan atur cara terdiri daripada lima fasa. Algoritma (pseudokod dan carta alir) digunakan dalam fasa reka bentuk atur cara. Orang yang terlibat dalam semua fasa ini ialah pembangun perisian (software developer).
- Fasa analisis masalah
- Fasa reka bentuk atur cara
- Fasa pengekodan
- Fasa pengujian dan penyahpepijatan
- Fasa dokumentasi
Empat teknik pemikiran komputasional
Empat teknik ini digunakan dalam setiap fasa (dipelajari di Tingkatan 1). Dua teknik lain, penaakulan logik dan penilaian, juga wujud tetapi tidak digunakan dalam contoh bab ini.
| Teknik | Maksud ringkas |
|---|---|
| Leraian | Memecahkan masalah besar kepada bahagian-bahagian kecil yang lebih mudah diselesaikan. |
| Pengecaman corak | Mencari persamaan dan perbezaan (corak) antara bahagian kecil itu. |
| Peniskalaan | Memberi penekanan kepada aspek penting dan meninggalkan aspek yang kurang penting. |
| Pengitlakan | Menghasilkan model, formula atau algoritma yang boleh digunakan semula untuk masalah yang serupa. |
1.1.1 Menggunakan konsep pemikiran komputasional dalam pembangunan atur cara
Masalah yang dibincangkan dalam buku teks: bina atur cara mudah untuk mengira luas dan perimeter sebuah padang bola berbentuk segi empat tepat.
Buku teks Asas Sains Komputer Tingkatan 3, ms. 2-3.
(i) Fasa analisis masalah
Dalam fasa ini, pengatur cara akan:
- mengenal pasti masalah, keperluan sistem dan perisian serta sasaran pengguna;
- mengenal pasti input, proses dan output bagi atur cara;
- menemu bual, membuat soal selidik dan pemerhatian untuk mengetahui keperluan pelanggan.
| Item | Padang bola |
|---|---|
| Input | panjang, lebar |
| Proses | kira luas, kira perimeter |
| Output | luas, perimeter |
Tunjuk jawapanSembunyi jawapan
(ii) Fasa reka bentuk atur cara
Dalam fasa ini, pengatur cara akan menulis pseudokod, melukis carta alir dan mereka bentuk antara muka pengguna. Tiga teknik digunakan:
Formula yang diperlukan:
1Luas padang bola = panjang × lebar 2Perimeter padang bola = (panjang + lebar) × 2
Pseudokod bagi masalah ini (Rajah 1.5):
1Mula 2Masukkan panjang, lebar 3Kira 3.1 luas padang bola = panjang × lebar 3.2 perimeter padang bola = (panjang + lebar) × 2 4Papar luas padang bola, perimeter padang bola 5Tamat
| Kata kunci pseudokod | Maksud |
|---|---|
Mula | Atur cara bermula. |
Masukkan | Pengguna memasukkan nilai (input). |
Kira | Membuat pengiraan (proses). |
Papar | Menunjukkan hasil di skrin (output). |
Tamat | Atur cara berakhir. |
Carta alir bagi masalah yang sama (Rajah 1.6). Penggunaan simbol yang betul penting kerana setiap simbol mempunyai fungsi tertentu.
Mula dan Tamat ialah terminator, Masukkan dan Papar ialah parallelogram, Kira ialah segi empat. Simbol keputusan (berlian, jawapan Ya atau Tidak; nama "keputusan" ialah istilah lazim, buku teks tidak menamakannya) tidak digunakan dalam masalah ini; buku teks hanya menunjukkannya sebagai simbol dalam Uji Minda 1.4 dan menggunakannya dalam Bab 3.Tunjuk jawapanSembunyi jawapan
(iii) Fasa pengekodan
Dalam fasa ini, pengatur cara akan memilih bahasa pengaturcaraan (contoh: Python) dan perisian pengaturcaraan (contoh: Pyscripter, IDLE), kemudian mengekod atur cara berdasarkan pseudokod dan carta alir.
| Persamaan | Perbezaan |
|---|---|
| Pemboleh ubah: panjang dan lebar | Nilai luas = panjang × lebar; nilai perimeter = (panjang + lebar) × 2 |
1# Atur cara bagi mengira luas dan perimeter sebuah padang bola 2 3# Pengisytiharan pemboleh ubah dan pemalar 4# Input 5panjang = float(input("\nMasukkan panjang: ")) 6lebar = float(input("Masukkan lebar: ")) 7 8# Proses 9luas = panjang * lebar 10perimeter = (panjang + lebar) * 2 11 12# Output 13print("\n\nLuas padang bola ialah", luas) 14print("Perimeter padang bola ialah", perimeter)
| Kod | Fungsi |
|---|---|
# | Komen (tidak dilaksanakan). |
input(...) | Meminta pengguna memasukkan data; teks dalam kurungan ialah mesej dorongan (prompt message). |
float(...) | Menukar nilai kepada nombor perpuluhan (jenis data float). |
* | Operator darab. |
print(...) | Memaparkan output. |
Python melaksanakan kod sebaris demi sebaris bermula dari kod input.
(iv) Fasa pengujian dan penyahpepijatan
Pengatur cara menguji atur cara untuk mengesan dan membetulkan ralat. Penyahpepijatan ialah proses mencari dan membaiki ralat yang berlaku. Terdapat tiga jenis ralat:
| Jenis ralat | Maksud | Punca lazim (Jadual 1.3) |
|---|---|---|
| Ralat sintaks (syntax error) | Disebabkan sintaks bahasa pengaturcaraan yang tidak betul. | Salah eja kata kunci; tertinggal tanda kurung, titik bertindih atau tanda petik; salah guna sintaks atau inden. |
| Ralat masa larian (runtime error) | Disebabkan kemasukan data yang tidak menepati kehendak arahan. Atur cara terhenti tiba-tiba dan mengeluarkan mesej ralat. | Salah beri jenis data; guna pemboleh ubah atau pemalar yang tidak wujud; pembahagian sifar; operator matematik atau logik pada data string. |
| Ralat logik (logical error) | Disebabkan kesilapan logik pengatur cara; atur cara berjalan tetapi output salah. | Salah pengiraan; ungkapan boolean salah; salah guna operator. |
luas = panjang * tinggi. Pemboleh ubah tinggi tidak wujud, jadi baris itu sebenarnya ralat masa larian (NameError), bukan ralat logik. Ralat logik dalam contoh itu ialah perimeter = (panjang * lebar) * 2 (operator * sepatutnya +). Jawapan dalam latihan ini tidak bergantung pada baris tersebut.| Jenis ralat | Corak mesej |
|---|---|
| Ralat sintaks | Mesej mengandungi perkataan invalid syntax. |
| Ralat masa larian | Mesej menyatakan baris kod yang salah, contohnya line 13. |
| Ralat logik | Input dan output dipaparkan tetapi output tidak betul. |
Contoh penyahpepijatan langkah demi langkah
Langkah 1: ralat sintaks. Kod mempunyai satu tanda kurung kurang pada baris input. Python memaparkan invalid syntax. Baris yang ditandakan merah ialah baris selepas ralat yang sebenar.

Buku teks Asas Sains Komputer Tingkatan 3, ms. 10.
1panjang = float(input("\nMasukkan panjang: ") # salah: kurang ")" 2panjang = float(input("\nMasukkan panjang: ")) # betul
Langkah 2: ralat masa larian. Selepas input 2 dan 3 dimasukkan, atur cara terhenti dengan TypeError: must be str, not float pada baris 13. Simbol + mencantumkan dua string, tetapi luas ialah float.

Buku teks Asas Sains Komputer Tingkatan 3, ms. 10.
1print("\n\nLuas padang bola ialah" + luas) # salah: + dengan float 2print("\n\nLuas padang bola ialah", luas) # betul: koma pemisah
Langkah 3: ralat logik. Atur cara berjalan, tetapi untuk panjang 2 dan lebar 3 perimeter ialah 8.0 (salah). Semakan manual (Jadual 1.5):
| Kod | Pengiraan | Hasil |
|---|---|---|
panjang + lebar * 2 (tanpa kurungan) | 2 + 3 × 2 = 2 + 6 | 8 (salah) |
(panjang + lebar) * 2 (dengan kurungan) | (2 + 3) × 2 = 5 × 2 | 10 (betul) |
lebar * 2 dikira sebelum tambah. Hasilnya ralat logik: tiada mesej ralat, tetapi jawapan salah.Selepas semua ralat dibaiki, output yang betul ialah:
Masukkan panjang: 2 Masukkan lebar: 3 Luas padang bola ialah 6.0 Perimeter padang bola ialah 10.0
| A. Secara manual | B. Semasa pelaksanaan atur cara |
|---|---|
|
|
purata = a + b / 2. Untuk a = 4 dan b = 8, apakah output dan jenis ralat?
Tunjuk jawapanSembunyi jawapan
(v) Fasa dokumentasi
Pengatur cara menyediakan dokumentasi dalaman dan dokumentasi luaran.
| Dokumentasi dalaman | Dokumentasi luaran | |
|---|---|---|
| Definisi | Rujukan untuk pengatur cara baharu dalam organisasi. | Digunakan oleh pengguna akhir. Terbahagi kepada dokumen pustaka dan panduan pengguna. |
| Tujuan | Membantu pengatur cara baharu memahami atur cara; memudahkan penyenggaraan. | Dokumen pustaka: maklumat tentang perisian, perkakasan, algoritma dan kod arahan. Panduan pengguna: pemasangan dan cara melaksanakan atur cara. |
1# Komen tunggal (satu baris) 2"""Komen berbilang baris, 3lebih daripada satu baris"""
| Dokumen | Maklumat |
|---|---|
| Dokumentasi dalaman | Komen yang menerangkan fungsi setiap bahagian atau baris kod. |
| Dokumen pustaka | Tarikh; nama pengatur cara; tujuan atur cara; keperluan sistem pengendalian, perkakasan dan perisian; algoritma (pseudokod dan carta alir); kod arahan (source code). |
| Panduan pengguna | Nama dan tujuan atur cara; keperluan sistem pengendalian, perkakasan dan perisian; cara penggunaan (contoh: memuat turun dan memasang Python). |
#. Tanpa #, baris komen dianggap kod dan menyebabkan ralat sintaks.Ringkasan: teknik bagi setiap fasa
| Fasa | Leraian | Pengecaman corak | Peniskalaan | Pengitlakan |
|---|---|---|---|---|
| Analisis masalah | Kira luas, kira perimeter | Buku teks menggunakan leraian sahaja dalam fasa ini (ms. 3). | ||
| Reka bentuk | Pemboleh ubah sama: panjang, lebar | Nilai dan formula | Pseudokod dan carta alir | |
| Pengekodan | Isytihar, input, proses, output | Jenis data float | Pemboleh ubah, mesej dorongan, formula | |
| Pengujian dan penyahpepijatan | Uji bahagian demi bahagian | Jenis ralat daripada mesej | Sintaks, lokasi ralat, logik | Senarai semak |
| Dokumentasi | Dalaman dan luaran | Maklumat penting atur cara | Komen, maklumat dokumen | Hasilkan dokumentasi |
1.2Pelaporan penggunaan teknik pemikiran komputasional (1.1.2)
Format laporan dalam buku teks: untuk setiap fasa, tulis teknik yang digunakan dan hasilnya. Contoh ringkas untuk padang bola (ms. 19-22):
| Fasa | Teknik | Laporan |
|---|---|---|
| 1 Analisis masalah | Leraian | Masalah besar: bina atur cara mengira luas dan perimeter. Bahagian kecil: (i) kira luas, (ii) kira perimeter. |
| 2 Reka bentuk | Pengecaman corak | Pemboleh ubah sama: panjang dan lebar. Perbezaan: formula luas dan perimeter. |
| Peniskalaan | Nilai panjang dan lebar; formula matematik. | |
| Pengitlakan | Algoritma dalam bentuk pseudokod. | |
| 3 Pengekodan | Leraian | Bahagian kecil: pengisytiharan pemboleh ubah dan pemalar, input, proses, output. |
| Pengecaman corak | Corak ialah penggunaan jenis data float. | |
| Peniskalaan | Pemboleh ubah panjang, lebar, luas, perimeter sebagai float; kod input, proses dan output. | |
| 4 Pengujian dan penyahpepijatan | Leraian | Uji pengisytiharan, kod input, kod proses, kod output. |
| Pengecaman corak / Peniskalaan | Kenal pasti jenis ralat; semak jenis data, nama dan nilai permulaan, formula, logik dan format output. | |
| Pengitlakan | Hasilkan senarai semak pengujian dan penyahpepijatan. | |
| 5 Dokumentasi | Leraian | Dokumentasi dalaman dan luaran (dokumen pustaka, panduan pengguna). |
| Pengecaman corak / Peniskalaan | Komen; maklumat dokumen pustaka dan panduan pengguna. | |
| Pengitlakan | Hasilkan dokumentasi dalaman dan luaran. |
Contoh Aktiviti 1.1 dan 1.2: bil elektrik (jawapan contoh)
Masalah (ms. 18): kadar RM0.218 untuk 1-200 kWj sebulan dan RM0.492 untuk 201 kWj ke atas. Andaian (buku tidak menjelaskan sama ada kadar dikenakan secara berperingkat): 200 kWj pertama dikenakan RM0.218 dan baki dikenakan RM0.492. Carta alir dan semakan di bawah hanyalah contoh berdasarkan andaian ini; soalan latihan tidak bergantung padanya.
- Leraian: kira kos 200 kWj pertama; kira kos baki kWj.
- Pengecaman corak: kedua-dua kos = kWj × kadar.
- Peniskalaan: kWj dan dua kadar; abaikan perkara lain.
- Pengitlakan: carta alir di bawah, boleh digunakan untuk kadar lain.
Semakan: 350 kWj = 200 × 0.218 + 150 × 0.492 = 43.60 + 73.80 = RM117.40.
1.3Projek mini berkumpulan (1.1.3)
Projek pembangunan atur cara biasanya dilakukan secara berkumpulan. Aktiviti 1.3 (ms. 24): bina atur cara untuk mengira jumlah luas permukaan dan isi padu sebuah tangki air berbentuk silinder. Langkah projek:
- Kaji pernyataan masalah.
- Bincang teknik pemikiran komputasional bagi setiap fasa.
- Hasilkan pelaporan lengkap.
- Tampalkan pelaporan di dinding kelas; kumpulan lain menulis komen (Gallery Walk).
- Bina atur cara dalam Python, laksanakan dan baiki ralat.
- Hasilkan dokumen pustaka, panduan pengguna dan pelaporan, kemudian cetak.
Contoh jawapan ringkas
| Fasa | Teknik dan hasil |
|---|---|
| Analisis masalah | Leraian: kira luas permukaan; kira isi padu. Input: jejari, tinggi. Output: luas permukaan, isi padu. |
| Reka bentuk | Pengecaman corak: kedua-dua formula guna jejari dan tinggi. Peniskalaan: jejari, tinggi, π = 3.142; luas permukaan = 2πj(j + t); isi padu = πj²t. Pengitlakan: pseudokod di bawah. |
| Pengekodan | Leraian: isytihar, input, proses, output. Peniskalaan: semua pemboleh ubah float. |
| Pengujian | Uji dengan sampel j = 7, t = 10 (lihat di bawah). |
| Dokumentasi | Komen dalam kod; dokumen pustaka; panduan pengguna. |
1Mula 2Masukkan jejari, tinggi 3Kira 3.1 luas permukaan = 2 × 3.142 × jejari × (jejari + tinggi) 3.2 isi padu = 3.142 × jejari × jejari × tinggi 4Papar luas permukaan, isi padu 5Tamat
1# Atur cara bagi mengira luas permukaan dan isi padu tangki air silinder 2 3# Pengisytiharan pemboleh ubah dan pemalar 4pi = 3.142 5# Input 6jejari = float(input("Masukkan jejari: ")) 7tinggi = float(input("Masukkan tinggi: ")) 8 9# Proses 10luas = 2 * pi * jejari * (jejari + tinggi) 11isi_padu = pi * jejari * jejari * tinggi 12 13# Output 14print("Luas permukaan tangki ialah", luas) 15print("Isi padu tangki ialah", isi_padu)
Ujian manual untuk jejari 7 dan tinggi 10: luas = 2 × 3.142 × 7 × 17 = 747.796; isi padu = 3.142 × 7 × 7 × 10 = 1539.58. Output Python mesti sama.
2 * pi * jejari * jejari + tinggi memberi jawapan salah (ralat logik). Gunakan (jejari + tinggi).NameError: name 'tinggi' is not defined pada baris 10. Apakah jenis ralat?
Tunjuk jawapanSembunyi jawapan
luas = panjang * tinggi (ms. 9).