NotaRBT.my
Algoritma · Asas Sains Komputer

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.

Simbol carta alir: terminal (bujur), proses (segi empat tepat), input atau output (segi empat selari), keputusan (rombus), garis aliran (anak panah) dan penyambung (bulatan)Mula / Tamatluas = p × lInput / PaparYa/Tidak?ATerminalProsesInput / outputKeputusanGaris aliranPenyambungLeret rajah ke kiri dan kanan untuk melihat semuanya.
Simbol carta alir yang lazim. Rajah asal NotaRBT.my.
Nama dan kegunaan simbol carta alir
BentukNamaKegunaan
Bujur (oval)TerminalMula dan tamat. Satu carta biasanya ada satu Mula dan satu Tamat.
Segi empat tepatProsesPengiraan atau tindakan, contohnya luas = panjang × lebar
Segi empat selariInput / outputTerima data (Input) atau paparkan hasil (Papar)
Rombus (berlian)KeputusanSoalan Ya/Tidak. Mesti ada dua anak panah keluar.
Anak panahGaris aliranArah langkah seterusnya
Bulatan kecilPenyambungSambung carta yang terputus, contohnya ke halaman lain

Cara menulis pseudokod

Pseudokod tiada satu format rasmi yang wajib. Cara yang biasa dalam kelas:

  1. Mulakan dengan MULA dan akhiri dengan TAMAT.
  2. Satu langkah satu baris.
  3. Tulis kata kunci dengan huruf besar: INPUT, PAPAR, JIKA, JIKA TIDAK, UNTUK, SELAGI.
  4. Inden (tolak ke kanan) baris yang berada di dalam pilihan atau ulangan.
  5. Guna nama pemboleh ubah yang bermakna, seperti jumlah, bukan x.

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

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
TAMAT
Leret ke kanan jika rajah terpotong.Carta alir jujukan: input panjang dan lebar, kira luas, papar luasMulaInput panjang, lebarluas = panjang × lebarPapar luasTamat
Pilihan

Pilihan: 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"
TAMAT
Leret ke kanan jika rajah terpotong.Carta alir pilihan: jika baki lebih besar atau sama dengan harga, papar boleh beli, jika tidak papar tak cukup duitYaTidakMulaInput baki, hargabaki >= harga?Papar"Boleh beli"Papar"Tak cukup duit"Tamat
Pilihan bersarang

Pilihan 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
TAMAT
Leret ke kanan jika rajah terpotong.Carta alir pilihan bersarang untuk harga tiket mengikut umurYaTidakYaTidakMulaInput umurumur < 7?harga = 0umur < 13?harga = 5harga = 10Papar hargaTamat
Ulangan for

Ulangan 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
TAMAT
Leret ke kanan jika rajah terpotong.Carta alir ulangan for: jumlah 1 hingga N, dengan anak panah kembali ke keputusan i kurang atau sama dengan NYaTidakMulaInput Njumlah = 0i = 1i <= N?jumlah = jumlah + ii = i + 1Papar jumlahTamat
Ulangan while-do

Ulangan 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
TAMAT
Leret ke kanan jika rajah terpotong.Carta alir ulangan while-do: tambah simpanan 5 dan minggu 1 selagi simpanan kurang daripada sasaranYaTidakMulaInput sasaransimpanan = 0minggu = 0simpanan <sasaran?simpanan = simpanan + 5minggu = minggu + 1Papar mingguTamat

Jejak 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

  1. MULA
  2. INPUT umur
  3. JIKA umur < 7
  4. harga = 0
  5. JIKA TIDAK
  6. JIKA umur < 13
  7. harga = 5
  8. JIKA TIDAK
  9. harga = 10
  10. PAPAR harga
  11. 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:

Latihan 1: ulangan yang tidak berhenti

Algoritma ini sepatutnya mengira berapa minggu diperlukan untuk menyimpan RM5 seminggu sehingga mencapai sasaran.

  1. MULA
  2. INPUT sasaran
  3. simpanan = 0
  4. minggu = 0
  5. SELAGI simpanan < sasaran
  6. minggu = minggu + 1
  7. TAMAT SELAGI
  8. PAPAR minggu
  9. TAMAT
Apakah ralatnya?

Latihan 2: tanda perbandingan

Peraturan rekaan: kanak-kanak bawah 7 tahun masuk percuma, yang lain bayar RM10.

  1. MULA
  2. INPUT umur
  3. JIKA umur > 7
  4. harga = 0
  5. JIKA TIDAK
  6. harga = 10
  7. PAPAR harga
  8. TAMAT
Apakah ralatnya?

Latihan 3: simbol yang salah

Carta alir ini menerima satu nombor dan memaparkan sama ada ia positif.

Leret ke kanan jika rajah terpotong.Carta alir latihan: Mula, Input nombor, keputusan nombor lebih besar daripada 0, papar Positif atau Bukan positif, TamatYaTidakMulaInput nombornombor > 0?Papar "Positif"Papar"Bukan positif"Tamat
Simbol manakah yang salah?

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"
TAMAT

Carian 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"
TAMAT

DIV 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
TAMAT

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

Contoh isihan baldi untuk senarai 29, 3, 47, 12, 35, 8, 21
Baldi0 hingga 910 hingga 1920 hingga 2930 hingga 3940 hingga 49
Selepas agih3, 81229, 213547
Selepas isih baldi3, 81221, 293547

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.

Empat teknik pemikiran komputasional dengan contoh jadual bertugas
Teknik (DSKP)Maksud ringkasDalam jadual bertugas
Leraian (decomposition)Pecahkan masalah besar kepada bahagian kecilSenaraikan tugas: sapu lantai, padam papan putih, buang sampah, susun kerusi
Pengecaman corak (pattern recognition)Cari persamaan dan perbezaanTugas yang sama berulang setiap hari; hanya nama murid yang bertukar
Peniskalaan (abstraction)Buang butiran yang tidak pentingWarna penyapu tidak penting; yang penting nama, hari dan tugas
Pengitlakan (generalisation)Jadikan penyelesaian boleh dipakai semulaBuat 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

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.