Algoritma: Pseudokod, Carta Alir, Search & Sort
Apakah Algoritma?
Algoritma ialah satu set arahan tersusun secara logik dan sistematik untuk menyelesaikan masalah. Contoh dalam kehidupan harian: resepi memasak, manual memasang perabot, dan panduan menuju destinasi. Algoritma boleh dihalusi (refine) dengan menambah butiran sehingga setiap langkah cukup jelas untuk dilaksanakan.
Ciri Wajib Algoritma
| Ciri | Maksud |
|---|---|
| Butiran jelas | Setiap arahan tepat dan tidak kabur (tidak boleh ditafsir berbeza) |
| Boleh dilaksanakan | Setiap langkah praktikal dan boleh dijalankan |
| Mempunyai batasan | Ada permulaan (Mula) dan pengakhiran (Tamat); selesai dalam bilangan langkah terhingga |
Model Input โ Proses โ Output (IPO)
Setiap atur cara mengikut model IPO: menerima INPUT, melakukan PROSES (formula/logik), dan menghasilkan OUTPUT. Atur cara komputer ialah algoritma yang ditulis dalam bahasa pengaturcaraan.
| Input | Proses | Output |
|---|---|---|
| tahun_lahir, tahun_semasa | umur = tahun_semasa - tahun_lahir | Papar umur |
Dua Perwakilan Algoritma: Pseudokod & Carta Alir
Pseudokod ialah perwakilan algoritma dalam ayat berstruktur (mudah ditukar kepada kod). Carta alir ialah perwakilan grafik menggunakan simbol piawai yang disambung dengan anak panah aliran.
PSEUDOKOD: kira umur
1. Mula
2. Baca tahun_lahir, tahun_semasa
3. umur = tahun_semasa - tahun_lahir
4. Papar umur
5. TamatSimbol Piawai Carta Alir

| Simbol | Nama nod | Fungsi |
|---|---|---|
| Bujur (oval) | Terminal (Mula/Tamat) | Menanda permulaan dan pengakhiran algoritma |
| Segi empat selari | Input/Output | Membaca data atau memaparkan hasil |
| Segi empat tepat | Proses | Pengiraan atau umpukan nilai (=) |
| Rombus | Keputusan/Pilihan | Membuat keputusan dengan dua cabang (Ya/Tidak) |
| Anak panah | Garis/aliran aktiviti | Menunjukkan arah aliran proses |
| Bulatan kecil | Penghubung | Menyambung carta alir yang terpisah |
Tiga Struktur Kawalan
| Struktur | Fungsi | Contoh |
|---|---|---|
| Jujukan (urutan) | Arahan dilaksana satu demi satu mengikut susunan | Baca -> kira -> papar |
| Pilihan | Pilih tindakan berdasarkan syarat (ungkapan logik) | if-else, switch |
| Pengulangan | Ulang arahan selagi syarat dipenuhi | for, while, do-while |
Contoh: Algoritma Kelayakan Mengundi
PSEUDOKOD
1. Mula
2. Baca umur
3. Jika umur >= 18
4. Papar "Layak mengundi"
5. Jika tidak
6. Papar "Tidak layak mengundi"
7. TamatMenjejak Output Algoritma (1.2.5)
Soalan SPM kerap memberi segmen algoritma/kod dan meminta anda menentukan output yang betul. Jejak nilai setiap pemboleh ubah langkah demi langkah, dan ingat keutamaan operator: darab/bahagi sebelum tambah/tolak.
x = 5
y = 3
z = x + y * 2 // y*2 = 6, kemudian 5+6
Papar z // OUTPUT: 11Algoritma Carian (Search)

Carian ialah proses mencari item dalam senarai. Dua algoritma dalam silibus: carian linear dan carian dedua (binary search).
| Ciri | Carian Linear | Carian Dedua |
|---|---|---|
| Cara berfungsi | Semak satu per satu dari awal hingga jumpa | Bandingkan dengan item tengah; buang separuh senarai |
| Syarat senarai | Tidak perlu diisih | WAJIB diisih dahulu |
| Kelajuan (senarai besar) | Perlahan | Pantas |
| 1000 item (kes terburuk) | 1000 semakan | ~10 semakan |
Contoh carian dedua pada [1, 3, 5, 7, 9, 11, 13] cari 11: item tengah = 7; 11 > 7 maka cari di kanan [9, 11, 13]; tengah = 11 โ ditemui dalam 2 langkah.
| Langkah | Julat dipertimbang | Item tengah | Bandingan | Tindakan |
|---|---|---|---|---|
| 1 | [1, 3, 5, 7, 9, 11, 13] | 7 | 11 > 7 | Cari bahagian KANAN |
| 2 | [9, 11, 13] | 11 | 11 = 11 | DITEMUI (2 langkah) |
Algoritma Isihan (Sort)

Isihan menyusun item dalam tertib menaik atau menurun. Silibus: isihan buih (bubble sort) dan isihan baldi (bucket sort). Soalan trial kadang memaparkan isihan pilih (selection sort) untuk dibandingkan.
Isihan buih: bandingkan dua item bersebelahan; tukar jika tersusun salah. Setiap laluan 'mengapungkan' nilai terbesar (isihan menaik) ke hujung senarai โ seperti buih naik ke permukaan.
Isihan buih menaik: [5, 2, 8, 1]
Laluan 1: (5,2)->tukar [2,5,8,1] | (5,8)->kekal | (8,1)->tukar [2,5,1,8]
Laluan 2: (2,5)->kekal | (5,1)->tukar [2,1,5,8]
Laluan 3: (2,1)->tukar [1,2,5,8]
Laluan 4: tiada pertukaran -> SELESAI: [1, 2, 5, 8]| Teknik isihan | Cara | Pengecam dalam kod |
|---|---|---|
| Isihan buih (bubble) | Banding & tukar pasangan bersebelahan setiap laluan | Membanding senarai[j] dengan senarai[j+1] |
| Isihan pilih (selection) | Cari nilai terkecil/terbesar, letak di kedudukan betul | Menyimpan indeks min, banding senarai[j] dengan senarai[min] |
| Isihan baldi (bucket) | Agih item ke baldi mengikut julat, isih setiap baldi, cantum | Beberapa kumpulan/julat nilai |
Contoh: Laluan Penuh Isihan Buih [5, 2, 8, 1]
| Laluan | Senarai selepas laluan |
|---|---|
| Asal | [5, 2, 8, 1] |
| Laluan 1 | [2, 5, 1, 8] |
| Laluan 2 | [2, 1, 5, 8] |
| Laluan 3 | [1, 2, 5, 8] |
| Laluan 4 | [1, 2, 5, 8] (tiada pertukaran - selesai) |