myUASARevision for UASAUlang kaji UASA
Asas Sains Komputer notesnota, bab 1

Konsep asas pemikiran komputasional

TextbookBuku teks Asas Sains Komputer Tingkatan 3 KSSM (cetakan pertama 2018), pageshalaman 1–28

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.

Pemikiran komputasional ialah satu proses pemikiran untuk menyelesaikan masalah oleh manusia sendiri, berbantukan mesin atau kedua-duanya sekali, dengan menggunakan konsep asas sains komputer. Masalah dipecahkan kepada komponen yang lebih kecil dan penyelesaian dicari secara sistematik.

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).

Lima fasa: analisis masalah, reka bentuk atur cara, pengekodan, pengujian dan penyahpepijatan, dokumentasi
Fasa-fasa pembangunan atur cara (Rajah 1.1, ms. 2).
  1. Fasa analisis masalah
  2. Fasa reka bentuk atur cara
  3. Fasa pengekodan
  4. Fasa pengujian dan penyahpepijatan
  5. Fasa dokumentasi
Susunan: Analisis, Reka bentuk, Kod, Uji, Dokumentasi. Pengekodan datang sebelum pengujian, dan dokumentasi ialah fasa terakhir.

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.

TeknikMaksud ringkas
LeraianMemecahkan masalah besar kepada bahagian-bahagian kecil yang lebih mudah diselesaikan.
Pengecaman corakMencari persamaan dan perbezaan (corak) antara bahagian kecil itu.
PeniskalaanMemberi penekanan kepada aspek penting dan meninggalkan aspek yang kurang penting.
PengitlakanMenghasilkan 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.
Teknik leraian digunakan untuk menganalisis masalah dengan memecahkan masalah besar kepada bahagian-bahagian yang lebih kecil.
Masalah besar dipecahkan kepada kira luas dan kira perimeter padang bola
Teknik leraian dalam fasa analisis masalah (Rajah 1.3, ms. 3).
ItemPadang bola
Inputpanjang, lebar
Proseskira luas, kira perimeter
Outputluas, perimeter
Pecahkan masalah "bina atur cara untuk mengira bayaran bil air" kepada dua bahagian kecil.
Tunjuk jawapanSembunyi jawapan
Contoh: (1) kira jumlah air yang digunakan, (2) kira bayaran berdasarkan kadar. Ini ialah teknik leraian.

(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:

Teknik pengecaman corak: setiap bahagian kecil dianalisis untuk mencari corak. Pengiraan luas dan perimeter menggunakan pemboleh ubah yang sama, iaitu panjang dan lebar (Rajah 1.4).
Teknik peniskalaan: aspek penting diberi penekanan. Aspek penting di sini ialah nilai panjang dan lebar serta formula matematik.

Formula yang diperlukan:

1Luas padang bola = panjang × lebar
2Perimeter padang bola = (panjang + lebar) × 2
Teknik pengitlakan: berdasarkan hasil leraian dan peniskalaan, algoritma untuk menyelesaikan masalah ditentukan. Algoritma komputer biasanya dalam bentuk pseudokod atau carta alir.

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 pseudokodMaksud
MulaAtur cara bermula.
MasukkanPengguna memasukkan nilai (input).
KiraMembuat pengiraan (proses).
PaparMenunjukkan hasil di skrin (output).
TamatAtur cara berakhir.

Carta alir bagi masalah yang sama (Rajah 1.6). Penggunaan simbol yang betul penting kerana setiap simbol mempunyai fungsi tertentu.

Simbol carta alir: terminator, input atau output, proses, keputusan
Simbol carta alir (bentuk dan warna seperti dalam buku teks, Uji Minda 1.4, ms. 5).
Carta alir mengira luas dan perimeter padang bola
Carta alir bagi mengira luas dan perimeter padang bola (Rajah 1.6, ms. 5).
Setiap baris pseudokod ialah satu simbol dalam carta alir: 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.
Tulis pseudokod bagi mengira luas segi tiga (0.5 × tapak × tinggi).
Tunjuk jawapanSembunyi jawapan
1 Mula; 2 Masukkan tapak, tinggi; 3 Kira luas segi tiga = 0.5 × tapak × tinggi; 4 Papar luas segi tiga; 5 Tamat.

(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.

Teknik leraian mengenal pasti komponen masalah semasa menulis kod arahan: pengisytiharan pemboleh ubah dan pemalar, kod input, kod proses dan kod output.
Masalah besar menulis kod dipecahkan kepada pengisytiharan, input, proses dan output
Teknik leraian dalam fasa pengekodan (Rajah 1.7, ms. 6).
Teknik pengecaman corak: panjang dan lebar menunjukkan corak yang sama (kedua-duanya pemboleh ubah input). Nilai pemboleh ubah ialah corak yang berbeza kerana pengguna boleh memasukkan sebarang nilai (Jadual 1.1).
Persamaan dan perbezaan pemboleh ubah (Jadual 1.1, ms. 6)
PersamaanPerbezaan
Pemboleh ubah: panjang dan lebarNilai luas = panjang × lebar; nilai perimeter = (panjang + lebar) × 2
Teknik peniskalaan: penggunaan pemboleh ubah yang betul, kod input, formula dan kod output perlu diambil kira. Kod arahan Python bagi atur cara (Rajah 1.8, ms. 7):
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)
KodFungsi
#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 ralatMaksudPunca 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.
Awas: dalam Jadual 1.3 (ms. 9), contoh ralat logik menggunakan semula baris 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.
Teknik leraian membolehkan pengujian secara berperingkat: menguji pengisytiharan, kod input, kod proses, kod output, kemudian mengesan ralat dan membaiki ralat (Rajah 1.9).
Teknik pengecaman corak: mesej ralat ialah corak yang dicamkan untuk mengenal pasti jenis ralat (Jadual 1.2).
Corak paparan mesej ralat (Jadual 1.2, ms. 8)
Jenis ralatCorak mesej
Ralat sintaksMesej mengandungi perkataan invalid syntax.
Ralat masa larianMesej menyatakan baris kod yang salah, contohnya line 13.
Ralat logikInput dan output dipaparkan tetapi output tidak betul.
Teknik peniskalaan: beri tumpuan kepada tiga perkara semasa menyahpepijat: sintaks bahasa pengaturcaraan, cara mengesan ralat atau kedudukan ralat, dan logik atur cara.
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.

Tetingkap IDLE dengan mesej SyntaxError invalid syntax
Paparan mesej ralat sintaks (Rajah 1.10, ms. 10).

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.

Python Shell dengan mesej TypeError must be str, not float pada line 13
Paparan mesej ralat masa larian (Rajah 1.11, ms. 10).

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):

KodPengiraanHasil
panjang + lebar * 2 (tanpa kurungan)2 + 3 × 2 = 2 + 68 (salah)
(panjang + lebar) * 2 (dengan kurungan)(2 + 3) × 2 = 5 × 210 (betul)
Operasi dalam kurungan dikira dahulu, kemudian darab, kemudian tambah (susunan PEMDAS/BODMAS). Tanpa kurungan, 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
Teknik pengitlakan: bina senarai semak yang boleh digunakan untuk atur cara lain (Rajah 1.14 dan 1.15).
A. Secara manualB. Semasa pelaksanaan atur cara
  1. Semak kesesuaian nama pemboleh ubah.
  2. Sintaks kod arahan betul.
  3. Logik dan susunan kod arahan betul.
  4. Formula matematik betul.
  5. Guna sampel data untuk menguji atur cara.
  1. Laksanakan atur cara.
  2. Baca dan fahami mesej ralat.
  3. Kenal pasti lokasi ralat dan baiki.
  4. Ulang (a) hingga (c) sehingga tiada mesej ralat.
  5. Semak output menggunakan beberapa set sampel data.
Atur cara mengira purata dua nombor dengan kod purata = a + b / 2. Untuk a = 4 dan b = 8, apakah output dan jenis ralat?
Tunjuk jawapanSembunyi jawapan
4 + 8 / 2 = 4 + 4 = 8.0, tetapi purata betul ialah (4 + 8) / 2 = 6.0. Ini ralat logik (tiada mesej ralat, output salah). Baiki dengan kurungan.

(v) Fasa dokumentasi

Pengatur cara menyediakan dokumentasi dalaman dan dokumentasi luaran.

Dokumentasi dalaman dan luaran (Jadual 1.6, ms. 13)
Dokumentasi dalamanDokumentasi luaran
DefinisiRujukan untuk pengatur cara baharu dalam organisasi.Digunakan oleh pengguna akhir. Terbahagi kepada dokumen pustaka dan panduan pengguna.
TujuanMembantu 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.
Teknik leraian: pecahkan dokumentasi kepada jenis dan bahagian kecil.
Dokumentasi dibahagi kepada dalaman dan luaran; luaran kepada dokumen pustaka dan panduan pengguna
Teknik leraian dalam fasa dokumentasi (Rajah 1.16, ms. 13).
Teknik pengecaman corak: maklumat penting tentang pembangunan dan penggunaan atur cara ialah corak yang dicamkan. Maklumat dalam dokumentasi dalaman dan luaran berbeza, bergantung pada pengguna.
Teknik peniskalaan: beri perhatian kepada penulisan komen yang membantu pengatur cara mengingat atau memahami segmen kod.
1# Komen tunggal (satu baris)
2"""Komen berbilang baris,
3lebih daripada satu baris"""
Aspek penting dalam dokumentasi (ms. 22)
DokumenMaklumat
Dokumentasi dalamanKomen yang menerangkan fungsi setiap bahagian atau baris kod.
Dokumen pustakaTarikh; nama pengatur cara; tujuan atur cara; keperluan sistem pengendalian, perkakasan dan perisian; algoritma (pseudokod dan carta alir); kod arahan (source code).
Panduan penggunaNama dan tujuan atur cara; keperluan sistem pengendalian, perkakasan dan perisian; cara penggunaan (contoh: memuat turun dan memasang Python).
Teknik pengitlakan: hasilkan dokumentasi dalaman dan luaran berdasarkan aspek penting yang dikenal pasti.
Komen Python bermula dengan #. Tanpa #, baris komen dianggap kod dan menyebabkan ralat sintaks.

Ringkasan: teknik bagi setiap fasa

FasaLeraianPengecaman corakPeniskalaanPengitlakan
Analisis masalahKira luas, kira perimeterBuku teks menggunakan leraian sahaja dalam fasa ini (ms. 3).
Reka bentuk Pemboleh ubah sama: panjang, lebarNilai dan formulaPseudokod dan carta alir
PengekodanIsytihar, input, proses, outputJenis data floatPemboleh ubah, mesej dorongan, formula 
Pengujian dan penyahpepijatanUji bahagian demi bahagianJenis ralat daripada mesejSintaks, lokasi ralat, logikSenarai semak
DokumentasiDalaman dan luaranMaklumat penting atur caraKomen, maklumat dokumenHasilkan dokumentasi

1.2Pelaporan penggunaan teknik pemikiran komputasional (1.1.2)

Pelaporan ialah melaporkan sesuatu perkara secara terurus dan terancang berdasarkan format tertentu. Pelaporan menjelaskan bagaimana teknik pemikiran komputasional digunakan dalam menyelesaikan masalah.

Format laporan dalam buku teks: untuk setiap fasa, tulis teknik yang digunakan dan hasilnya. Contoh ringkas untuk padang bola (ms. 19-22):

FasaTeknikLaporan
1 Analisis masalahLeraianMasalah besar: bina atur cara mengira luas dan perimeter. Bahagian kecil: (i) kira luas, (ii) kira perimeter.
2 Reka bentukPengecaman corakPemboleh ubah sama: panjang dan lebar. Perbezaan: formula luas dan perimeter.
PeniskalaanNilai panjang dan lebar; formula matematik.
PengitlakanAlgoritma dalam bentuk pseudokod.
3 PengekodanLeraianBahagian kecil: pengisytiharan pemboleh ubah dan pemalar, input, proses, output.
Pengecaman corakCorak ialah penggunaan jenis data float.
PeniskalaanPemboleh ubah panjang, lebar, luas, perimeter sebagai float; kod input, proses dan output.
4 Pengujian dan penyahpepijatanLeraianUji pengisytiharan, kod input, kod proses, kod output.
Pengecaman corak / PeniskalaanKenal pasti jenis ralat; semak jenis data, nama dan nilai permulaan, formula, logik dan format output.
PengitlakanHasilkan senarai semak pengujian dan penyahpepijatan.
5 DokumentasiLeraianDokumentasi dalaman dan luaran (dokumen pustaka, panduan pengguna).
Pengecaman corak / PeniskalaanKomen; maklumat dokumen pustaka dan panduan pengguna.
PengitlakanHasilkan dokumentasi dalaman dan luaran.
Dalam laporan, tulis dahulu nama teknik, kemudian apa yang dilakukan dengan teknik itu. Jangan tulis teknik tanpa contoh daripada masalah.

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.
Carta alir bil elektrik dengan keputusan kWj <= 200
Contoh carta alir bil elektrik. Simbol keputusan dipelajari dengan lebih lanjut dalam Bab 3.

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:

  1. Kaji pernyataan masalah.
  2. Bincang teknik pemikiran komputasional bagi setiap fasa.
  3. Hasilkan pelaporan lengkap.
  4. Tampalkan pelaporan di dinding kelas; kumpulan lain menulis komen (Gallery Walk).
  5. Bina atur cara dalam Python, laksanakan dan baiki ralat.
  6. Hasilkan dokumen pustaka, panduan pengguna dan pelaporan, kemudian cetak.

Contoh jawapan ringkas

FasaTeknik dan hasil
Analisis masalahLeraian: kira luas permukaan; kira isi padu. Input: jejari, tinggi. Output: luas permukaan, isi padu.
Reka bentukPengecaman 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.
PengekodanLeraian: isytihar, input, proses, output. Peniskalaan: semua pemboleh ubah float.
PengujianUji dengan sampel j = 7, t = 10 (lihat di bawah).
DokumentasiKomen 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.

Kurungan penting: 2 * pi * jejari * jejari + tinggi memberi jawapan salah (ralat logik). Gunakan (jejari + tinggi).
Atur cara tangki memaparkan ralat NameError: name 'tinggi' is not defined pada baris 10. Apakah jenis ralat?
Tunjuk jawapanSembunyi jawapan
Ralat masa larian (guna pemboleh ubah yang tidak wujud, kerana mesej menyatakan baris). Contoh yang sama dalam buku: luas = panjang * tinggi (ms. 9).