1.2 Algoritma
1.2.1 Menggunakan Algoritma untuk Menyatakan
Penyelesaian Kepada Masalah
1 Lukis bentuk segitiga untuk badan.
2 Lukis tiga biji mata.
3 Lukis 2 pasang kaki.
4 Lukis sayap.
5 Lukis gigi.
Algoritma Set arahan langkah demi langkah untuk
menyelesaikan sesuatu masalah/tugasan.
Apa-apa tugas pun boleh dijalankan
menggunakan algoritma, dengan syarat ada
arahan yang lengkap, jelas dan tersusun.
Memahami masalah sebelum membina algoritma.
Perkara-perkara yang perlu diketahui:
Input Proses Output
Bina analisis IPO untuk aturcara
yang menerima dua nombor dan
memaparkan hasil tambah
sebagai output.
Input nombor_1, nombor_2
Proses jumlah = nombor_1 + nombor_2
Output jumlah
Pseudokod Carta Alir
1. MULA MULA
2. INPUT nombor_1, nombor_2 INPUT nombor_1,
3. jumlah = nombor_1 + nombor_2
4. OUTPUT jumlah nombor_2
5. TAMAT
jumlah = nombor_1 + nombor_2
OUTPUT jumlah
TAMAT
Pseudokod
Langkah-langkah menulis pseudokod:
• Tulis kenyataan MULA
• Baca/terima INPUT
• PROSES data menggunakan logik/pengiraan
• Papar OUTPUT
• Tulis kenyataan TAMAT
1. MULA
2. INPUT nombor_1, nombor_2
3. jumlah = nombor_1 + nombor_2
4. OUTPUT jumlah
5. TAMAT
Tuliskan pseudokod untuk
aturcara yang menerima harga
barang dan peratus diskaun,
kemudian memaparkan harga
selepas diskaun.
1. MULA
2. INPUT harga_barang, peratus_diskaun
3. diskaun = harga_barang * peratus_diskaun / 100
harga_selepas_diskaun = harga_barang – diskaun
4. OUTPUT harga_selepas_diskaun
5. TAMAT
Carta Alir
Simbol-simbol dalam carta alir :
Terminal Mula / Tamat
Input / Output
Proses
Syarat (condition/decision)
Aliran aktiviti
Penghubung
Lukis carta alir untuk aturcara MULA
yang menerima harga barang
dan peratus diskaun, kemudian INPUT
memaparkan harga selepas harga_barang, diskaun
diskaun.
diskaun =
harga_barang * peratus_diskaun / 100
harga_selepas_diskaun =
harga_barang – diskaun
OUTPUT
harga_selepas_diskaun
TAMAT
INPUT BACA/READ
OUTPUT PAPAR/DISPLAY
1. MULA
2. DAPATKAN nombor_1, nombor_2
3. jumlah = nombor_1 + nombor_2
4. PAPAR jumlah
5. TAMAT
1. MULA
2. BACA harga_barang, peratus_diskaun
3. diskaun = harga_barang * peratus_diskaun / 100
harga_selepas_diskaun = harga_barang – diskaun
4. CETAK harga_selepas_diskaun
5. TAMAT
1.2.2 Struktur Kawalan dalam Pengaturcaraan
Urutan Pilihan
(Sequence) (Selection)
Struktur
Kawalan
Pengulangan
(Iteration/
Repetition/
Looping)
Melaksanakan arahan satu persatu mengikut urutan linear.
1 23 45
Pseudokod Carta Alir
1. MULA MULA
2. Penyataan 1
3. Penyataan 2 Penyataan 1
4. Penyataan 3 Penyataan 2
5. TAMAT Penyataan 3
TAMAT
Umpuk nilai 1. MULA
(declare value) 2. SET pi = 3.142
3. PAPAR “Masukkan jejari bulatan”
Memberi nilai awal 4. INPUT jejari
5. luas = pi * jejari * jejari
ukur_lilit = 2 * pi * jejari
6. OUTPUT luas, ukur_lilit
7. TAMAT
MULA Umpuk nilai
(declare value)
pi = 3.142
PAPAR “Masukkan jejari bulatan” Memberi nilai awal
INPUT jejari
luas = pi * jejari * jejari
ukur_lilit = 2 * pi * jejari
OUTPUT luas, ukur_lilit
TAMAT
1 masa_mula, masa_tamat, upah_sejam,
perkeso
2 Input
1. jumlah_jam_bekerja = masa_tamat –
Proses masa_mula
2. gaji_kasar = jumlah_jam_bekerja * upah_sejam
3. gaji_bersih = gaji_kasar - perkeso
Output gaji_kasar, gaji_bersih
2
1. MULA
2. PAPAR “Masukkan masa mula bekerja”
3. PAPAR “Masukkan masa tamat bekerja”
4. PAPAR “Masukkan masa upah sejam”
5. PAPAR “Masukkan masa potongan PERKESO”
6. INPUT masa_mula, masa_tamat, upah_sejam, perkeso
7. jumlah_jam_bekerja = masa_tamat – masa_mula
gaji_kasar = jumlah_jam_bekerja * upah_sejam
gaji_bersih = gaji_kasar - perkeso
8. OUTPUT gaji_kasar, gaji_bersih
9. TAMAT
2
MULA
PAPAR “Masukkan masa mula bekerja”
PAPAR “Masukkan masa tamat bekerja”
PAPAR “Masukkan upah sejam”
PAPAR “Masukkan potongan PERKESO”
INPUT masa_mula, masa_tamat,
upah_sejam, perkeso
A
A
jumlah_jam_bekerja = masa_tamat – masa_mula
gaji_kasar = jumlah_jam_bekerja * upah_sejam
gaji_bersih = gaji_kasar - perkeso
OUTPUT gaji kasar, gaji bersih
TAMAT
Melaksanakan arahan mengikut syarat/pilihan yang telah ditentukan.
Jika tiket VIP Jika tiket biasa
Beratur disini Beratur disini
(Lane 1) (Lane 2)
Pseudokod Carta Alir
1. MULA MULA
2. Penyataan 1
3. IF (syarat 1) benar THEN Penyataan 1 Penyataan 3
Penyataan 2 Syarat False
ELSE 1
Penyataan 3 True
END IF
4. TAMAT Penyataan 2
TAMAT
Umpuk nilai 1. MULA
(declare value) 2. SET password = 12345
3. PAPAR “Masukkan kata laluan anda”
Memberi nilai awal 4. INPUT kata_laluan
5. IF (kata_laluan == password) THEN
OUTPUT “Login anda berjaya”
ELSE
OUTPUT “Login anda gagal”
6. TAMAT
MULA Umpuk nilai
(declare value)
password = 12345
PAPAR “Masukkan kata laluan anda” Memberi nilai awal
INPUT kata_laluan
kata_laluan False
==
OUTPUT “Login anda gagal”
password
TAMAT
True
OUTPUT “Login anda berjaya”
1. MULA
2. SET min_tinggi = 160
3. PAPAR “Masukkan tinggi anda”
4. INPUT tinggi
5. IF (tinggi >= min_tinggi) THEN
OUTPUT “Anda layak menjadi pramugari”
ELSE
OUTPUT “Anda tidak mencapai had tinggi
minimum untuk menjadi pramugari”
END IF
6. TAMAT
MULA
min_tinggi = 160
PAPAR “Masukkan tinggi anda”
INPUT tinggi
tinggi False OUTPUT
>=
160 “Anda tidak mencapai had tinggi
minimum untuk menjadi pramugari”
True
OUTPUT “Anda layak menjadi TAMAT
pramugari”
1. MULA
2. PAPAR nombor
3. IF nombor %2 == 0 THEN
TULIS “E”
ELSE
TULIS “A”
END IF
6. TAMAT
Melaksanakan arahan secara berulang-ulang sehingga syarat
tertentu dipenuhi.
Ulang pusingan selagi
belum cukup 30 pusingan.
30/30 = Tamat perlumbaan
Pseudokod Carta Alir
1. MULA MULA
2. Penyataan 1
3. WHILE (syarat 1) benar Penyataan 1
Penyataan 2 Syarat True Penyataan 2
END WHILE 1
4. TAMAT
False
TAMAT
MULA
timer = 0
timer = timer + 1
timer < True
60
OUTPUT “Teruskan permainan”
False TAMAT
OUTPUT “Permainan Tamat”
1. MULA
2. SET timer = 0
3. WHILE (timer < 60)
OUTPUT “Permainan diteruskan”
timer = timer + 1
END WHILE
6. OUTPUT “Permainan tamat”
7. TAMAT
1. MULA
2. SET count = 0
SET total = 0
3. PAPAR “Masukkan nombor”
4. INPUT nombor
5. WHILE (count < 5)
jumlah = total + nombor
count = count + 1
Ulang langkah 3
END WHILE
6. OUTPUT jumlah
7. TAMAT
MULA
count = 0,
total = 0
PAPAR “Masukkan nombor”
INPUT nombor
count < 5 True jumlah = total + nombor
count = count + 1
False
TAMAT
OUTPUT jumlah
1.2.3 Menguji dan Membaiki Ralat dalam
Algoritma
Kenapa Untuk tujuan pembaikan.
perlu uji Untuk memastikan logik algoritma adalah betul.
Supaya pengaturcaraan lebih efisien.
dan
baiki? Sebelum menulis aturcara (programming)
komputer.
Bila ?
Mudah M(bterSpeamendenkknmntieesotuayneplmakaneruestjglpahereaeltumi)luusuatsdanareaheciantrhamualnakrumaa Lengkap
difahami Efisien
Ciri-ciri
algoritma
yang telah
diuji
Memenuhi AlMgeonrictmapaabi ekrfituenrigasi
kriteria dengreaknapbaennttauskdan
tidpaekrismiaenn/gpgrougnraakman
baynanyagkdmiinegminoiri
1
harga_dsisekleapuans=_dhiasrkgaau_nb=arhaanrgg*a_paesratlu–s(_hdairsgkaa_uans/a1l 0* 0peratus_diskaun)
harga_selepas_diskaun = harga_barang – diskaun
2
PlIONuAUPSOlIaPPIlONuNuPAsETAUUaUPaAPPTPsP=TsTTUURAUAPp=PTp=jTRURTei“Uipj3=jMTe*“Tlaei“.uj1M3j*rMajlalaeau4i.usrja1rajse2aiaauis4sjss*aruk2uirkkjkei*kak*jjaanaejnrenjijajej*ajreejriajjjeiaarjriraiibrbbiuuullalaattataannn”””
3
MULA
PPaappaarr““MMaassuukkkkaann nnaammaa””
INPUT nama
OUTPUT “Hello ” + nama
TAMAT
4
password = 12345, count = 0
INPUT kata_laluan
kata_laluan != password True count = count + 1
AND
TAMAT
count <= 3
False
OUTPUT “Login berjaya”
4
password = 12345, count = 0
INPUT kata_laluan
OUTPUT “Login False kata_laluan
berjaya” !=
TAMAT password
True True count = count + 1
count
<= 3
False
OUTPUT “Login gagal”
Dikenali sebagai desk-checking
1
2
3
4
1. MULA
2. INPUT harga_barang, peratus_diskaun
3. harga_selepas_diskaun = harga_barang – (harga_barang * peratus_diskaun)
4. OUTPUT harga_selepas_diskaun
5. TAMAT
1
Input Diuji Output Dijangka
harga_selepas_diskaun = 135
harga_barang = 150
peratus_diskaun = 10
2
Baris harga_ peratus_ harga_selepas_ I/O
barang diskaun diskaun
- -
1. - - harga_barang ? 150
- peratus_diskaun ? 10
2. 150 10
150 – (150 * 10) = -1350 -
3. - - harga_selepas_diskaun = -1350
4. - -
5. - - - -
-
3
Bil Input Diuji Output Dijangka Output Diperolehi
Uji
(harga_selepas_ diskaun) (harga_selepas_ diskaun )
1. harga_barang = 150 135 -1350
peratus_diskaun = 10 120 -2850
180 -1800
2. harga_barang = 150
peratus_diskaun = 20
3. harga_barang = 200
peratus_diskaun = 10
4
1. MULA
2. INPUT harga_barang, peratus_diskaun
3. harga_selepas_diskaun = harga_barang – (harga_barang * peratus_diskaun)
4. OUTPUT harga_selepas_diskaun
5. TAMAT
Dimanakah ralat? Pembetulan?
1. MULA
2. INPUT harga_barang, peratus_diskaun
3. diskaun = harga_barang * peratus_diskaun / 100
harga_selepas_diskaun = harga_barang – diskaun
4. harga_selepas_diskaun = harga_barang – (harga_barang * peratus_diskaun)
5. OUTPUT harga_selepas_diskaun
6. TAMAT
1. MULA
2. INPUT markah
3. IF (markah >= 50) THEN
OUTPUT “Lulus”
ELSE
OUTPUT “Gagal”
END IF
4. TAMAT
1 Input Diuji Output Dijangka
lulus
markah = 55
2 Baris markah syarat I/O
- -
1. - -
2. 55 markah ? 55
3. - 55 >= 50 ? True Lulus
4. - - -