Carta alir dan pseudokod
Carta alir ialah rajah langkah-langkah sesuatu algoritma, dilukis dengan simbol dan disambung dengan anak panah. Pseudokod menulis langkah yang sama dalam ayat pendek yang hampir macam kod. Kedua-duanya dipelajari dalam Asas Sains Komputer Tingkatan 1 hingga 3.
Simbol carta alir
Enam bentuk ini ialah simbol carta alir yang lazim digunakan dalam buku dan kelas komputer. Kenal bentuknya dulu; maksudnya mudah diingat selepas itu.
| Bentuk | Nama | Kegunaan |
|---|---|---|
| Bujur (oval) | Terminal | Mula dan tamat. Satu carta biasanya ada satu Mula dan satu Tamat. |
| Segi empat tepat | Proses | Pengiraan atau tindakan, contohnya luas = panjang × lebar |
| Segi empat selari | Input / output | Terima data (Input) atau paparkan hasil (Papar) |
| Rombus (berlian) | Keputusan | Soalan Ya/Tidak. Mesti ada dua anak panah keluar. |
| Anak panah | Garis aliran | Arah langkah seterusnya |
| Bulatan kecil | Penyambung | Sambung carta yang terputus, contohnya ke halaman lain |
Cara menulis pseudokod
Pseudokod tiada satu format rasmi yang wajib. Cara yang biasa dalam kelas:
- Mulakan dengan MULA dan akhiri dengan TAMAT.
- Satu langkah satu baris.
- Tulis kata kunci dengan huruf besar: INPUT, PAPAR, JIKA, JIKA TIDAK, UNTUK, SELAGI.
- Inden (tolak ke kanan) baris yang berada di dalam pilihan atau ulangan.
- Guna nama pemboleh ubah yang bermakna, seperti
jumlah, bukanx.
Sesetengah buku dan guru menulis kata kunci dalam bahasa Inggeris (START, IF, ELSE, WHILE) atau menambah TAMAT JIKA. Itu juga betul. Ikut format yang digunakan oleh guru anda dalam peperiksaan sekolah.
Struktur kawalan: contoh pseudokod dan carta alir
Setiap contoh di bawah menunjukkan masalah yang sama dalam dua bentuk. Struktur ini disebut dalam DSKP ASK Tingkatan 1 (SK 3.1, pelbagai pilihan dan ulangan) dan Tingkatan 2 (SK 2.1, pilihan bersarang serta ulangan for dan while-do).
Jujukan: kira luas segi empat tepat
Langkah berjalan satu demi satu dari atas ke bawah, tanpa soalan dan tanpa ulangan.
MULA
INPUT panjang, lebar
luas = panjang × lebar
PAPAR luas
TAMATPilihan: cukup duit untuk beli di kantin?
Satu soalan, dua jalan. Hanya satu jalan dilalui setiap kali algoritma berjalan.
MULA
INPUT baki, harga
JIKA baki >= harga
PAPAR "Boleh beli"
JIKA TIDAK
PAPAR "Tak cukup duit"
TAMATPilihan bersarang: harga tiket ikut umur
Peraturan rekaan untuk latihan: bawah 7 tahun percuma, 7 hingga 12 tahun RM5, 13 tahun ke atas RM10. Soalan kedua hanya ditanya jika jawapan soalan pertama Tidak.
MULA
INPUT umur
JIKA umur < 7
harga = 0
JIKA TIDAK
JIKA umur < 13
harga = 5
JIKA TIDAK
harga = 10
PAPAR harga
TAMATUlangan for: jumlah 1 hingga N
Guna for apabila bilangan ulangan sudah diketahui sebelum ulangan bermula. Di sini ia berulang tepat N kali.
MULA
INPUT N
jumlah = 0
UNTUK i = 1 HINGGA N
jumlah = jumlah + i
TAMAT UNTUK
PAPAR jumlah
TAMATUlangan while-do: berapa minggu untuk capai sasaran simpanan
Guna while-do apabila ulangan bergantung pada syarat, bukan bilangan tetap. Syarat disemak dahulu; jika palsu sejak awal, badan ulangan tidak dijalankan langsung. Contoh: simpan RM5 seminggu.
MULA
INPUT sasaran
simpanan = 0
minggu = 0
SELAGI simpanan < sasaran
simpanan = simpanan + 5
minggu = minggu + 1
TAMAT SELAGI
PAPAR minggu
TAMATJejak algoritma langkah demi langkah
Menjejak (trace) bermaksud menjalankan algoritma dengan tangan dan mencatat nilai setiap pemboleh ubah. Ini cara paling cepat untuk mencari ralat. Pilih satu algoritma, masukkan nilai, kemudian tekan langkah demi langkah.
Penjejak langkah: lihat pemboleh ubah berubah
- MULA
- INPUT umur
- JIKA umur < 7
- harga = 0
- JIKA TIDAK
- JIKA umur < 13
- harga = 5
- JIKA TIDAK
- harga = 10
- PAPAR harga
- TAMAT
Tekan "Langkah seterusnya" untuk mula.
Latihan cari ralat
Mengesan dan membaiki ralat dalam pseudokod dan carta alir ada dalam DSKP ASK Tingkatan 1 (SP 3.1.3) dan Tingkatan 2 (SP 2.1.2). Tiga latihan:
Carian dan isihan (ASK Tingkatan 3)
DSKP ASK Tingkatan 3 (SK 3.1) meminta murid menulis pseudokod dan melukis carta alir untuk carian linear dan binari, serta isihan buih dan baldi. Indeks senarai di bawah bermula dengan 0.
Lihat carian dan isihan langkah demi langkah
Carian linear
MULA
INPUT senarai, sasaran
jumpa = PALSU
i = 0
SELAGI i < panjang(senarai) DAN jumpa == PALSU
JIKA senarai[i] == sasaran
jumpa = BENAR
JIKA TIDAK
i = i + 1
TAMAT SELAGI
JIKA jumpa == BENAR
PAPAR "Jumpa di indeks ", i
JIKA TIDAK
PAPAR "Tiada dalam senarai"
TAMATCarian binari
MULA
INPUT senarai (tersusun menaik), sasaran
rendah = 0
tinggi = panjang(senarai) − 1
jumpa = PALSU
SELAGI rendah <= tinggi DAN jumpa == PALSU
tengah = (rendah + tinggi) DIV 2
JIKA senarai[tengah] == sasaran
jumpa = BENAR
JIKA TIDAK JIKA senarai[tengah] < sasaran
rendah = tengah + 1
JIKA TIDAK
tinggi = tengah − 1
TAMAT SELAGI
JIKA jumpa == BENAR
PAPAR "Jumpa di indeks ", tengah
JIKA TIDAK
PAPAR "Tiada dalam senarai"
TAMATDIV ialah bahagi dan buang baki, contohnya 7 DIV 2 = 3.
Carian binari jauh lebih pantas untuk senarai panjang kerana setiap semakan membuang separuh senarai. Untuk 1,000 item tersusun, ia perlu paling banyak 10 semakan, sedangkan carian linear mungkin perlu 1,000.
Isihan buih
MULA
INPUT senarai
n = panjang(senarai)
UNTUK pusingan = 1 HINGGA n − 1
UNTUK j = 0 HINGGA n − 1 − pusingan
JIKA senarai[j] > senarai[j + 1]
tukar senarai[j] dengan senarai[j + 1]
TAMAT UNTUK
TAMAT UNTUK
PAPAR senarai
TAMATSelepas setiap pusingan, nombor paling besar yang belum tersusun "timbul" ke hujung, macam buih naik ke permukaan. Alat di atas juga berhenti awal jika satu pusingan tiada pertukaran langsung.
Isihan baldi
Isihan baldi mengagihkan nombor ke dalam beberapa "baldi" mengikut julat, mengisih setiap baldi, kemudian menggabungkan semua baldi mengikut turutan.
| Baldi | 0 hingga 9 | 10 hingga 19 | 20 hingga 29 | 30 hingga 39 | 40 hingga 49 |
|---|---|---|---|---|---|
| Selepas agih | 3, 8 | 12 | 29, 21 | 35 | 47 |
| Selepas isih baldi | 3, 8 | 12 | 21, 29 | 35 | 47 |
Gabung: 3, 8, 12, 21, 29, 35, 47.
Pemikiran komputasional
Pemikiran komputasional ialah cara berfikir untuk menyelesaikan masalah supaya penyelesaiannya boleh ditulis sebagai algoritma. DSKP ASK Tingkatan 1 (SK 1.1) menamakan empat teknik. Contoh di bawah menggunakan satu masalah biasa: menyediakan jadual bertugas kelas.
| Teknik (DSKP) | Maksud ringkas | Dalam jadual bertugas |
|---|---|---|
| Leraian (decomposition) | Pecahkan masalah besar kepada bahagian kecil | Senaraikan tugas: sapu lantai, padam papan putih, buang sampah, susun kerusi |
| Pengecaman corak (pattern recognition) | Cari persamaan dan perbezaan | Tugas yang sama berulang setiap hari; hanya nama murid yang bertukar |
| Peniskalaan (abstraction) | Buang butiran yang tidak penting | Warna penyapu tidak penting; yang penting nama, hari dan tugas |
| Pengitlakan (generalisation) | Jadikan penyelesaian boleh dipakai semula | Buat templat jadual yang sesuai untuk mana-mana kelas dan bilangan murid |
Selepas empat langkah ini, barulah algoritmanya ditulis sebagai pseudokod atau carta alir. Dalam Tingkatan 3, teknik yang sama dilaporkan untuk setiap fasa pembangunan atur cara.
Tips melukis carta alir yang kemas
- Alirkan carta dari atas ke bawah, atau kiri ke kanan. Elakkan anak panah bersilang.
- Label kedua-dua anak panah yang keluar dari rombus dengan Ya dan Tidak.
- Untuk ulangan, anak panah kembali ke rombus syarat, bukan ke Mula.
- Tulis teks pendek dalam simbol. Pengiraan panjang boleh dipecahkan kepada dua kotak proses.
- Semak dengan menjejak satu nilai contoh dari Mula sampai Tamat.
Di luar kelas, carta alir juga biasa dipakai untuk menerangkan prosedur kerja, contohnya langkah memproses tempahan di sebuah kedai. Prinsipnya sama: setiap langkah jelas, dan setiap keputusan ada jalan keluar untuk Ya dan Tidak.
Sumber
- Bahagian Pembangunan Kurikulum, KPM: DSKP KSSM Asas Sains Komputer Tingkatan 1 (2015), Tingkatan 2 (2016) dan Tingkatan 3 (April 2017): struktur kawalan, mengesan ralat, carian dan isihan, teknik pemikiran komputasional.
Masalah, harga tiket dan peraturan dalam contoh ialah rekaan untuk latihan. Carta alir dilukis sendiri oleh NotaRBT.my. Lihat juga nota Asas Sains Komputer Tingkatan 1 hingga 3.