Algoritma
What this chapter coversMatlamat bab ini
- Murid boleh menulis pseudokod dan melukis carta alir pelbagai pilihan dalam penyelesaian masalah (3.1.1)
- Murid boleh menulis pseudokod dan melukis carta alir yang melibatkan ulangan (3.1.2)
- Murid boleh mengesan ralat daripada pseudokod dan carta alir dalam penyelesaian masalah (3.1.3)
- Murid boleh menghasilkan pseudokod dan carta alir yang melibatkan gabungan pelbagai pilihan dan ulangan (3.1.4)
3.1Pembangunan algoritma
Resipi masakan, cara mengisi semula kredit telefon dan cara menggunakan kalkulator ialah algoritma dalam kehidupan seharian. Dalam pengaturcaraan komputer, algoritma menyatakan dengan jelas langkah yang perlu dilaksanakan oleh komputer supaya mendapat output yang diingini.
Perkara penting semasa menulis algoritma
| Perkara | Maksud | Contoh daripada buku |
|---|---|---|
| (a) Bahasa yang difahami manusia | Langkah ditulis dalam bahasa Melayu, bahasa Inggeris atau bahasa tabii yang lain. | Menguji lampu (Rajah 3.1) |
| (b) Langkah jelas | Setiap langkah dihuraikan dengan jelas. | "Pilih satu nombor yang besar" kurang jelas. Lebih baik: "pilih satu nombor yang lebih besar daripada 1000". |
| (c) Urutan betul | Langkah disusun mengikut urutan yang betul. | Algoritma 1 (baju, tali leher, sikat, sarung kaki, kasut) menjadikan murid kemas. Algoritma 2 (tali leher dahulu, kasut sebelum sarung kaki) menjadikan murid tidak kemas. |
| (d) Kesudahan tertentu | Algoritma berhenti dan menghasilkan output yang bermakna dalam suatu tempoh. | Algoritma berakhir pada TAMAT |
Buku teks Asas Sains Komputer Tingkatan 1, ms. 70-71.
Perwakilan algoritma: carta alir dan pseudokod
Algoritma boleh ditulis sebagai senarai langkah (Rajah 3.1 hingga 3.3). Pengatur cara lebih kerap menggunakan carta alir dan pseudokod.
Carta alir menguji kefungsian lampu (Rajah 3.4) menggunakan semua simbol ini. Rajah 3.4 ditunjukkan di bawah.

Buku teks Asas Sains Komputer Tingkatan 1, ms. 72.
Pseudokod bagi algoritma yang sama (Rajah 3.5):
MULA
SEMAK plag dipalam ke dalam soket
JIKA plag tidak dipalam ke dalam soket
PALAMKAN plag ke dalam soket
TAMAT JIKA
SEMAK suis soket dipasang
JIKA suis soket tidak dipasang
PASANG suis soket
TAMAT JIKA
PASANG suis lampu
JIKA lampu nyala
PADAM suis lampu
MELANGKAU ke TAMAT
TAMAT JIKA
SEMAK mentol terbakar
JIKA mentol terbakar
TUKAR mentol
JIKA TIDAK
BAIKI litar lampu
TAMAT JIKA
TAMAT
JIKA ditutup dengan TAMAT JIKA. Inden menunjukkan tindakan yang berada di dalam JIKA.| Kata kunci | Kegunaan |
|---|---|
MULA, TAMAT | Permulaan dan penamat algoritma |
MASUKKAN, INPUT | Menerima data masukan |
PAPARKAN, CETAK | Memaparkan atau mencetak output |
SETKAN | Menetapkan nilai awal, misalnya SETKAN jumlah kepada 0 |
TAMBAH | Menambah nilai, misalnya TAMBAH 1 kepada pembilang |
KIRA | Membuat pengiraan, misalnya KIRA MIN = jumlah ÷ bilangan nombor |
JIKA, JIKA TIDAK, TAMAT JIKA | Struktur kawalan pilihan |
LAKSANAKAN | Menunjukkan tindakan yang dilaksanakan oleh pilihan atau gelung |
UNTUK ... HINGGA | Struktur ulangan dengan pembilang |
SELAGI ... TAMAT SELAGI | Ulangan selagi syarat benar |
ULANG ... SEHINGGA | Ulangan sehingga syarat benar |
3.1.1Struktur kawalan pilihan
Ada tiga jenis: pilihan tunggal, dwipilihan dan pelbagai pilihan. Perkataan Ya bermaksud benar. Perkataan Tidak bermaksud palsu.
| Jenis | Bilangan tindakan | Pseudokod |
|---|---|---|
| Pilihan tunggal (single selection) | Satu. Dilaksanakan jika syarat benar; jika tidak, tiada apa-apa dilakukan. | JIKA plag tidak dipalam ke dalam soket PALAMKAN plag ke dalam soket TAMAT JIKA |
| Dwipilihan (double selection) | Dua. Tindakan A jika benar, tindakan B jika palsu. | JIKA memenuhi syarat LAKSANAKAN Set tindakan A JIKA TIDAK LAKSANAKAN Set tindakan B TAMAT JIKA |
| Pelbagai pilihan (multi selection) | Lebih daripada dua. Syarat diuji satu demi satu. | JIKA memenuhi syarat 1 LAKSANAKAN Set tindakan A JIKA memenuhi syarat 2 LAKSANAKAN Set tindakan B JIKA memenuhi syarat 3 LAKSANAKAN Set tindakan C JIKA TIDAK LAKSANAKAN Set tindakan D TAMAT JIKA |
Rajah 3.6 hingga 3.13, buku teks Asas Sains Komputer Tingkatan 1, ms. 73-76.
Dwipilihan: menentukan lulus atau gagal
MULA
MASUKKAN markah
JIKA markah ≥ 40
CETAK "Lulus"
JIKA TIDAK
CETAK "Gagal"
TAMAT JIKA
TAMAT
Syarat ialah markah ≥ 40. Jika markah 65, syarat benar dan "Lulus" dicetak. Jika markah 39, syarat palsu dan "Gagal" dicetak (Rajah 3.10 dan 3.11, ms. 75).
| Pengendali | Maksud |
|---|---|
| = | Sama dengan |
| > | Lebih besar daripada |
| ≥ | Lebih besar atau sama dengan |
| < | Lebih kecil daripada |
| ≤ | Lebih kecil atau sama dengan |
skor ≥ 80 tetapi tidak memenuhi skor > 80.Pelbagai pilihan: menentukan gred
| Gred | Skor |
|---|---|
| A | 80-100 |
| B | 70-79 |
| C | 60-69 |
| D | 50-59 |
| E | 40-49 |
| F | 0-39 |
MULA
MASUKKAN skor anda
JIKA skor ≥ 80
Gred ialah A
JIKA skor ≥ 70
Gred ialah B
JIKA skor ≥ 60
Gred ialah C
JIKA skor ≥ 50
Gred ialah D
JIKA skor ≥ 40
Gred ialah E
JIKA TIDAK
Gred ialah F
TAMAT JIKA
PAPARKAN Gred
TAMAT
| Skor | Syarat pertama yang benar | Gred |
|---|---|---|
| 90 | skor ≥ 80 | A |
| 79 | skor ≥ 70 (skor ≥ 80 palsu) | B |
| 65 | skor ≥ 60 | C |
| 40 | skor ≥ 40 | E |
| 39 | tiada satu pun benar | F |
skor ≥ 40 diuji dahulu, skor 90 akan mendapat gred E.Tunjuk jawapanSembunyi jawapan
3.1.2Struktur kawalan ulangan
Tiga jenis struktur kawalan ulangan yang sering digunakan ialah UNTUK (for), SELAGI (while) dan ULANG-SEHINGGA (repeat-until).
| UNTUK (FOR) | SELAGI (WHILE) | ULANG-SEHINGGA (REPEAT-UNTIL) | |
|---|---|---|---|
| Berulang | berdasarkan pembilangan yang ditetapkan | selagi syarat benar | sehingga syarat benar |
| Syarat diuji | di atas gelung | di atas gelung (sebelum langkah) | di bawah gelung (selepas langkah) |
| Langkah dalam gelung | mungkin tidak dilaksanakan langsung | mungkin tidak dilaksanakan langsung | dilaksanakan sekurang-kurangnya sekali |
| Sesuai apabila | bilangan ulangan diketahui | bilangan ulangan tidak diketahui | langkah mesti dibuat sekurang-kurangnya sekali |
Ringkasan daripada buku teks Asas Sains Komputer Tingkatan 1, ms. 78-83 (termasuk Aktiviti Berfikir 3.3).
UNTUK (FOR)
SETKAN pembilang kepada 1
UNTUK pembilang = 1 HINGGA n
LAKSANAKAN Tindakan
TAMBAH 1 kepada pembilang
Contoh daripada buku: melaungkan "Merdeka" sebanyak tiga kali. Dalam buku, baris TAMBAH 1 kepada pembilang ditulis sebaris dengan UNTUK, tetapi dalam carta alir (Rajah 3.19) ia ialah langkah di dalam gelung.
MULA
BERDIRI tegak
SETKAN pembilang kepada 1
UNTUK pembilang = 1 HINGGA 3
LAUNGKAN "Merdeka"
TAMBAH 1 kepada pembilang
TAMAT
Pembilang bermula pada 1 di atas gelung. Syarat pembilang ≤ 3 disemak. Jika benar, "Merdeka" dilaungkan dan pembilang bertambah 1. Gelung berhenti apabila pembilang melebihi 3.
| Lelaran | pembilang sebelum semak | pembilang ≤ 3? | Tindakan | pembilang selepas |
|---|---|---|---|---|
| 1 | 1 | Ya | Laungkan "Merdeka" | 2 |
| 2 | 2 | Ya | Laungkan "Merdeka" | 3 |
| 3 | 3 | Ya | Laungkan "Merdeka" | 4 |
| Berhenti | 4 | Tidak | - | - |
"Merdeka" dilaungkan 3 kali.
SELAGI (WHILE)
SELAGI memenuhi syarat
LAKSANAKAN Set tindakan
TAMAT SELAGI
Contoh daripada buku: menyenaraikan nombor 1, 2, 3 ... selagi lampu isyarat menyala.
MULA
SETKAN nilai n kepada 1
SELAGI lampu isyarat menyala
PAPARKAN nilai n
TAMBAH nilai n sebanyak 1
TAMAT SELAGI
TAMAT
Struktur SELAGI sesuai apabila bilangan ulangan tidak diketahui, kerana kita tidak tahu bila lampu akan padam.
ULANG-SEHINGGA (REPEAT-UNTIL)
ULANG
LAKSANAKAN Set tindakan
SEHINGGA syarat dipenuhi
Algoritma ini menghasilkan output yang sama dengan contoh SELAGI di atas (Rajah 3.26):
MULA
SETKAN nilai n = 1
ULANG
PAPARKAN nilai n
TAMBAH nilai n sebanyak 1
SEHINGGA lampu isyarat dipadamkan
TAMAT
| Pseudokod | Output | Lelaran |
|---|---|---|
SETKAN nombor kepada 10 SELAGI nombor ≤ 5 PAPARKAN nombor TAMBAH 1 kepada nombor TAMAT SELAGI | (tiada) | 0 |
SETKAN nombor kepada 10 ULANG PAPARKAN nombor TAMBAH 1 kepada nombor SEHINGGA nombor > 5 | 10 | 1 |
Syarat SELAGI diuji dahulu (10 ≤ 5 palsu), jadi gelung tidak berjalan. ULANG-SEHINGGA melaksanakan langkah sekali dahulu, kemudian menguji (11 > 5 benar), lalu berhenti.
TAMBAH 1 kepada nombor, syarat tidak pernah berubah dan gelung tidak berhenti.SETKAN pembilang kepada 1 UNTUK pembilang = 1 HINGGA 4 PAPARKAN pembilang × 3 TAMBAH 1 kepada pembilangStruktur kawalan apakah yang digunakan?
Tunjuk jawapanSembunyi jawapan
3.1.3Pengesanan ralat dalam pseudokod dan carta alir
Ralat logik berlaku apabila tindakan yang salah diminta atau urutan tindakan tidak betul. Ia berpunca daripada kesilapan manusia semasa membangunkan algoritma.
Selepas algoritma siap, lakukan semakan semula (juga dipanggil semakan kualiti, quality check). Dua tekniknya:
| Teknik | Cara |
|---|---|
| Semakan meja (desk check) | Teknik manual dengan pen dan kertas. Guna satu sampel data input, proses mengikut langkah, dan bandingkan output dengan output yang dijangka. Data sampel hendaklah data yang biasa diproses oleh algoritma. |
| Langkah demi langkah (step through) | Periksa logik mengikut urutan langkah. Sampel data tidak digunakan. |
Semakan meja: nombor terbesar
| m | n | m > n? | Output carta alir | Betul? |
|---|---|---|---|---|
| 7 | 32 | Tidak | Nombor terbesar ialah n (32) | Ya |
| 28 | 6 | Ya | Nombor terbesar ialah m (28) | Ya |
| 15 | 15 | Tidak | Nombor terbesar ialah n | Tidak jelas: kedua-duanya sama |
| 8 | 8 | Tidak | Nombor terbesar ialah n | Tidak jelas: kedua-duanya sama |
Kelemahan: apabila m dan n sama nilai, carta alir tetap mengatakan n terbesar. Algoritma ini tiada ralat selagi m dan n berlainan. Penambahbaikan: tambah syarat n > m? dan cabang "Sama nilai".
Contoh lain (Aktiviti Berfikir 3.5): algoritma ini sepatutnya mengira min sepuluh nombor.
MULA
SETKAN jumlah kepada 0
SETKAN bilangan nombor kepada 1
ULANG
INPUT satu nombor
TAMBAH nilai nombor kepada jumlah
TAMBAH nilai bilangan nombor sebanyak 1
SEHINGGA bilangan nombor > 10
KIRA MIN = jumlah ÷ bilangan nombor
PAPARKAN nilai min
TAMAT
Buku memberi data 12, 4, 8 dan jadual semakan meja untuk dilengkapkan. Kita guna sepuluh nombor: 12, 4, 8, 6, 10, 2, 14, 6, 8, 10. Jumlah ialah 80, jadi min yang betul ialah 80 ÷ 10 = 8. Tetapi gelung hanya berhenti apabila bilangan nombor menjadi 11, jadi pseudokod ini memaparkan 80 ÷ 11 ≈ 7.27. Ini ralat logik. Pembetulan: SETKAN bilangan nombor kepada 0 dan tukar syarat kepada bilangan nombor ≥ 10.
Langkah demi langkah: jumlah 1 hingga 10
Algoritma ini sepatutnya memaparkan jumlah semua nombor antara 1 hingga 10 (Rajah 3.31 dan 3.32).
MULA
SETKAN jumlah = 0
SETKAN nombor = 0
SELAGI nombor < 10
TAMBAH nombor kepada jumlah
TAMBAH 1 kepada nombor
TAMAT SELAGI
PAPARKAN jumlah
TAMAT
| Lelaran | nombor sebelum | jumlah selepas | nombor selepas |
|---|---|---|---|
| 1 | 0 | 0 | 1 |
| 2 | 1 | 1 | 2 |
| 3 | 2 | 3 | 3 |
| 4 | 3 | 6 | 4 |
| 5 | 4 | 10 | 5 |
| 6 | 5 | 15 | 6 |
| 7 | 6 | 21 | 7 |
| 8 | 7 | 28 | 8 |
| 9 | 8 | 36 | 9 |
| 10 | 9 | 45 | 10 |
Output 45, iaitu jumlah 0 hingga 9, bukan jumlah 1 hingga 10 yang bernilai 55. Ralat: nombor bermula pada 0 dan berhenti pada 9. Pembetulan: SETKAN nombor = 1 dan SELAGI nombor ≤ 10.
Tunjuk jawapanSembunyi jawapan
3.1.4Gabungan pelbagai pilihan dan ulangan
Semua algoritma mempunyai langkah dengan aliran berurutan (sequential flow). Kebanyakan algoritma juga mengandungi pilihan dan ulangan, kecuali algoritma yang paling mudah.
Enam langkah menghasilkan pseudokod dan carta alir
- Mengenal pasti masalah.
- Menentukan data yang perlu digunakan (input).
- Menentukan proses atau tugas yang perlu dilaksanakan.
- Menentukan output yang diingini.
- Mereka bentuk algoritma.
- Menulis pseudokod dan melukis carta alir.
Langkah 1, masalah: memaparkan harga petrol dari 1 hingga 100 liter apabila diberi harga seliter.
Langkah 2, input: harga seliter minyak petrol.
Langkah 3, proses: kira harga bagi 1 hingga 100 liter.
Langkah 4, output: paparkan harga bagi 1 hingga 100 liter.
Langkah 5, algoritma (daripada buku):
- Input harga seliter minyak petrol.
- Setkan kuantiti = 0 liter.
- Tambah 1 kepada kuantiti.
- Kira harga minyak petrol = kuantiti × harga seliter.
- Paparkan kuantiti minyak petrol dan harga.
- Ulangi Langkah 3 hingga 5 sehingga kuantiti bersamaan 100 liter.
- Tamat.
Langkah 6, pseudokod dan carta alir. Buku meminta murid menyediakannya (Aktiviti Berfikir 3.7). Satu jawapan yang mungkin, menggunakan SELAGI:
MULA
MASUKKAN harga seliter
SETKAN kuantiti kepada 0
SELAGI kuantiti < 100
TAMBAH 1 kepada kuantiti
KIRA harga = kuantiti × harga seliter
PAPARKAN kuantiti dan harga
TAMAT SELAGI
TAMAT
| Lelaran | kuantiti | harga (RM) |
|---|---|---|
| 1 | 1 | 2.05 |
| 2 | 2 | 4.10 |
| 3 | 3 | 6.15 |
| ... | ... | ... |
| 100 | 100 | 205.00 |
Gelung berjalan 100 kali. Apabila kuantiti menjadi 100, syarat kuantiti < 100 palsu dan algoritma tamat. Pilihan lain ialah UNTUK kuantiti = 1 HINGGA 100 kerana bilangan ulangan diketahui.
Bina algoritma supaya robot mencari jalan keluar ke petak K melalui petak kuning, tanpa mengira robot bermula di A atau B. Petak putih ialah halangan.

Buku teks Asas Sains Komputer Tingkatan 1, ms. 88.
Input: tiada. Output: tiada. Proses: bergerak satu petak ke depan setiap kali; semak petak di depan sebelum bergerak; jika ada halangan, berpusing ke kiri atau ke kanan, kemudian bergerak.
MULA
SELAGI belum sampai di petak K
JIKA depan boleh gerak
KEKAL menghadap depan
JIKA sebelah kanan boleh gerak
PUSING ke kanan
JIKA TIDAK
PUSING ke kiri
TAMAT JIKA
GERAK satu petak ke depan
TAMAT SELAGI
TAMAT
Ini gabungan ulangan (SELAGI) dan pilihan (tiga cabang: depan, kanan, kiri). PUSING ke kiri dilaksanakan hanya apabila depan dan kanan tidak boleh gerak.
Ringkasan bab
| Konsep | Ringkasan |
|---|---|
| Algoritma | Langkah dan urutan untuk menyelesaikan masalah; ditulis sebagai pseudokod atau carta alir |
| Pilihan | Tunggal (satu tindakan), dwipilihan (dua), pelbagai pilihan (lebih daripada dua) |
| Ulangan | UNTUK (pembilang), SELAGI (syarat dahulu), ULANG-SEHINGGA (sekurang-kurangnya sekali) |
| Ralat | Ralat logik; dikesan dengan semakan meja dan langkah demi langkah |