Anda di halaman 1dari 27

Prepared by IMR, SMK Valdor

BAB 3: ALGORITMA

3.1 PEMBANGUNAN ALGORITMA

1. Algoritma ialah satu siri langkah atau tindakan yang jelas yang perlu
dilaksanakan untuk menghasilkan output yang dikehendaki.

2. Pengatur cara akan membina atur cara berpandukan algoritma yang


dibangunkan terlebih dahulu.

3. Pembangunan algoritma merupakan satu teknik pengitlakan yang


melibatkan pembinaan langkah-langkah penyelesaian masalah.

4. Antara faedah yang diperoleh daripada kajian serta pembangunan


algoritma yang dilakukan adalah seperti berikut:
a) Memahami bagaimana komputer memproses urutan tindakan-
tindakan yang perlu dilaksanakan.
b) Mempelajari cara menulis algoritma yang teratur, mudah dibaca
dan difahami.
c) Mempelajari cara menulis algoritma dengan cekap.
d) Mempelajari cara melakukan penambahbaikan pada algoritma.

1
Prepared by IMR, SMK Valdor

3.1.1 Ciri-ciri Search dan Sort

1. SEARCH ialah proses untuk mendapatkan suatu item tertentu yang


terkandung dalam satu senarai.
2. Terdapat dua jenis search akan dipelajari:
a) linear search
b) binary search

3. LINEAR SEARCH ialah satu teknik untuk mendapatkan item yang


dikehendaki dalam satu senarai linear.
4. Carian akan bermula dengan item pertama yang terdapat dalam senarai.
5. Jika item pertama bukan item yang dikehendaki, carian akan diteruskan
sehingga item yang dikehendaki diperolehi.
6. Jika item yang dikehendaki tiada dalam senarai, carian akan ditamatkan.
7. Item tidak perlu diisih mengikut urutan.
8. Teknik ini tidak berapa efisien dan menggunakan masa yang panjang
untuk memprosesnya jika senarai terlalu panjang.

9. BINARY SEARCH ialah teknik carian yang melibatkan keputusan


dwipilihan.
10. Sebelum melakukan binary search, item-item dalam senarai perlu diisih
dalam urutan menaik.
11. Proses carian akan bermula di tengah-tengah senarai item.
12. Jika carian telah ditemui, maka proses carian akan ditamatkan.
13. Proses binary search akan membandingkan item di tengah-tengah dengan
item di sebelah kiri atau kanan.
14. Binary search lebih efisien kerana tidak perlu menyemak semua senarai
dan sesuai untuk item yang banyak.

2
Prepared by IMR, SMK Valdor

15. Langkah-langkah pencarian menggunakan binary search:


a) Letakkan indeks pada setiap item dalam senarai. Indeks dalam satu
senarai bermula dengan 0.

b) Kenal pasti item pertengahan.

c) Bandingkan item yang dicari dengan item pertengahan.


d) Lakukan pencarian dengan bergerak ke kiri atau ke kanan
bergantung kepada nilai pertengahan.
e) Bergerak ke kiri, jika item yang dicari lebih kecil dari item
pertengahan.
f) Bergerak ke kanan jika item yang dicari lebih besar dari item
pertengahan.
g) Tamat carian sehingga nombor yang dicari diketemui.

16. SORT ialah proses mengisih atau menyusun item-item dalam suatu
senarai linear mengikut urutan yang tertentu.
17. Sort ialah teknik yang penting untuk mendapatkan maklumat dengan
cepat dan tepat.
18. Terdapat dua jenis sort akan dipelajari:
a) bubble sort
b) bucket sort

3
Prepared by IMR, SMK Valdor

19. BUBBLE SORT ialah satu teknik pengisihan yang mudah untuk mengisih
item-item dalam senarai mengikut urutan menaik atau menurun.
20. Teknik isihan ini bermula dengan membandingkan dua item pertama
dalam senarai.
21. Item pertama dengan item kedua akan bertukar tempat untuk menyusun
item mengikut urutan menaik atau menurun.
22. Perbandingan dua item bersebelahan akan berterusan pada item-item
seterusnya sehingga ke item terakhir.

23. BUCKET SORT ialah satu teknik yang mengasingkan item-item dalam
senarai tertentu ke dalam baldi (bucket), seterusnya item-item di dalam
baldi akan diisih dan disusun semula ke dalam senarai.
24. Bilangan baldi yang diperlukan bergantung kepada pengatur cara dan
bilangan item dalam senarai yang perlu diisih.

4
Prepared by IMR, SMK Valdor

25. Persamaan dan perbezaan ciri-ciri search dan sort

5
Prepared by IMR, SMK Valdor

3.1.2(i) Menulis Pseudokod dan Melukis Carta Alir bagi Linear Search

1. ALGORITMA ialah satu set langkah yang teratur untuk dilakukan bagi
mencapai sesuatu hasil yang diinginkan .Algoritma boleh diwakilkan
dalam bentuk pseudokod atau carta alir.
2. PSEUDOKOD ialah perwakilan algoritma dalam bahasa yang boleh
difahami.
3. CARTA ALIR adalah perwakilan algoritma dalam bentuk grafik.

6
Prepared by IMR, SMK Valdor

4. Pseudokod dan carta alir perlu dibina supaya set langkah yang dihasilkan
jelas dan mudah difahami
5. Pembinaan algoritma memudahkan seseorang untuk mengesan ralat
yang ada sekiranya output yang diperoleh mempunyai kesilapan selain
dapat memastikan output yang dihasilkan adalah output yang diingini.

6. Algoritma bagi proses linear search adalah seperti berikut:


i. Bandingkan item carian dengan item pertama dalam senarai.
ii. Jika nilai item pertama carian sama dengan nilai item pertama,
carian akan dihentikan.
iii. Jika nilai item carian tidak sama dengan nilai item pertama, ulang
langkah (ii) hingga selesai carian.
iv. Carian tamat apabila item carian ditemui atau semua item telah
disemak.

7. Contoh pseudokod dan carta alir proses linear search.


SENARAI ITEM: [ 30, 12, 5, 47, 20, 53, 70, 18, 29, 55 ]

KATAKAN:

L = senarai yang mengandungi senarai item

T = pemboleh ubah yang mewakili nilai item carian

i = pemboleh ubah yang mewakili item dalam senarai

n = pemboleh ubah yang mewakili bilangan item

7
Prepared by IMR, SMK Valdor

A. PSEUDOKOD

1. Mula
2. Setkan senarai L = [ 30,12,5,47,20,53,70,18,29,55 ]
3. Isytiharkan pemboleh ubah i, n, T
4. Setkan n = 10
5. Setkan i = 0
6. Masukkan nilai carian T
7. for i < n
Jika L1 == T
Papar "Item carian ditemui"
Tamat Jika
Jika Tidak
Kira i = i + 1
Tamat Jika
8. Jika i >= n
Papar "Tiada Item carian"
Tamat Jika
9. Tamat

8
Prepared by IMR, SMK Valdor

B. CARTA ALIR

9
Prepared by IMR, SMK Valdor

C. PENERANGAN

Petunjuk Penerangan
1 Senarai L diumpukan dengan nilai-nilai [30, 12, 5, 47, 20, 53,
70, 18, 29, 55]
2 n mewakili bilangan item dalam senarai yang diumpukkan
dengan nilai 10. Pemboleh ubah i diumpukkan dengan nilai
0, iaitu kedudukan item yang pertama dalam senarai
3 Pengguna memasukkan satu nombor carian yang
diumpukkan kepada pemboleh ubah T.
4 Selagi syarat (i < n) benar, carian akan dilakukan pada setiap
item dalam senarai
5 Jika item pada kedudukan tertentu, iaitu L didapati sama
dengan nilai T, mesej "Item carian ditemui" akan dipaparkan
dan carian akan dihentikan.
6 Jika tidak carian akan diteruskan dengan item yang
berikutnya, iaitu i = i + 1 dan proses ini akan diulang sehingga
nilai T dijumpai dalam senarai atau sehingga kesemua item
telah disemak.
7 Pada akhir carian, jika i >= n, bermksud kesemua item dalam
senarai telah disemak dan item carian tidak dijumpai. Maka
mesej "Tiada item carian" dipaparkan dan carian akan
dihentikan.

10
Prepared by IMR, SMK Valdor

3.1.2(ii) Menulis Pseudokod dan Melukis Carta Alir bagi Binary Search

1. Algoritma bagi binary search adalah seperti berikut:


i. Pastikan item dalam senarai yang diberi telah diisih mengikut
urutan menaik.
ii. Lihat item yang berada di tengah-tengah senarai.
iii. Bandingkan item carian dengan item yang berada di tengah-tengah
senarai.
iv. Jika nilai item carian sama dengan nilai item yang berada di tengah-
tengah senarai, carian akan dihentikan.
v. Jika nilai item carian kurang daripada nilai item yang berada di
tengah senarai, abaikan item di tengah senarai dan item-item
selepasnya. Kemudian lihat pada senarai yang tinggal.
vi. Jika nilai item carian lebih daripada nilai item di tengah senarai,
abaikan item di tengah senarai dan item-item sebelumnya.
Kemudian lihat pada senarai yang tinggal.
vii. Ulang langkah (ii) hingga langkah (vi) sehingga item carian dijumpai
atau apabila selesai tanpa menjumpai item carian.

11
Prepared by IMR, SMK Valdor

2. Contoh pseudokod binary search:


4. Mula
5. Setkan senarai L = [Ali, Budin, Chew, Danny, Endrew]
6. Isytiharkan pemboleh ubah i, n, j, m, b
7. Setkan n = 5
8. Setkan i = 0
9. Setkan j = n - 1
10. Masukkan satu nilai carian b
11. while i < j
Setkan m = ( i + j ) / 2
Jika b == Lm
Papar “Item ada dalam senarai”
Keluar gelung
Jika Tidak
Jika b < Lm
Kira j = m - 1
Jika tidak
Kira i == m + 1
Tamat Jika
Tamat Jika
12. Tamat

12
Prepared by IMR, SMK Valdor

3. Penerangan mengenai pseudokod


Pemboleh ubah Penerangan
L Senarai yang mengandungi 5 item
n Pemboleh ubah yang mewakili bilangan item dalam
senarai L
i Pemboleh ubah yang mewakili kedudukan item
dalam senarai
m Pemboleh ubah yang mewakili kedudukan item
pertengahan dalam senarai
b Pemboleh ubah yang mewakili nilai item carian
j n-1

4. Penerangan mengenai carta alir


Petunjuk Penerangan
1 Senarai L yang diumpukkan
2 Pemboleh ubah i diumpukkan dengan nilai 0, iaitu
kedudukan item pertama dalam senarai.
Pemboleh ubah n diumpukan dengan nilai 5 yang mewakili
item dalam senarai.
Pemboleh ubah j yang diumpukkan dengan nilai (n-1)
3 Pengguna perlu memasukkan satu item carian iaitu b
4 Selagi i kurang daripada j, indeks pertengahan m ditentukan
dengan menggunakan for mula m=( i + j ) / 2
5 Jika b == L, mesej "Item ada dalam senarai" akan dipaparkan
dan carian akan dihentikan
6 Jika b < Lm kedudukan item terakhir dalam senaraikan dikira
semula iaitu j = m – 1.
Jika b > Lm kedudukan item pertama dalam senarai akan
dikira semula iaitu i = m + 1.
Proses ini akan berulang sehingga item carian dijumpai atau
sehingga semua item dalam senarai telah disemak.

13
Prepared by IMR, SMK Valdor

5. Carta alir binary search

14
Prepared by IMR, SMK Valdor

3.1.2(iii) Menulis Pseudokod dan Melukis Carta Alir bagi Bubble Sort

1. Sort dalam bidang pengkomputeran merujuk kepada penyusunan data


seperti nama, nombor, rekod dan fail dalam tertib tertentu.
2. Data yang telah diisih menjadikan carian lebih cekap, percantuman lebih
efisien dan memudahkan pemprosesan data dalam tertib yang
dikehendaki.
3. Penghapusan dan pencantuman data yang berulang akan memudahkan
proses carian.
4. Algoritma bagi bubble sort adalah seperti berikut:

i. Semak item pertama denga item kedua dalam senarai

ii. Bandingkan kedua-dua item tersebut

iii. Jika kedua-dua item tersebut tidak mengikut urutan, tukarkan


kedudukan kedua-duanya.

iv. Ulang langkah (ii) hingga langkah (iii) dengan item kedua dan item
ketiga, seterusnya sehingga ke item terakhir

v. Semak senarai untuk melihat sama ada semua item berada pada
kedudukan yang betul.

vi. Ulang langkah (i) hingga (v) sehingga semua item dalam senarai
telah diisih mengikut urutan.

5. Algoritma bubble sort akan menggunakan struktur kawalan ulangan untuk


memproses susunan tertib setiap item.

15
Prepared by IMR, SMK Valdor

6. Pemboleh ubah bubble sort untuk menulis pseudokod dan carta alir
adalah seperti berikut:
Pemboleh ubah Penerangan
L Senarai yang mengandungi item
n Pemboleh ubah yang mewakili item dalam senarai
i Pemboleh ubah yang mewakili bilangan lelaran yang
berlaku dalam gelung
j Pemboleh ubah yang mewakili kedudukan item
dalam senarai
temp Pemboleh ubah yang menyimpan data secara
sementara semasa membuat pertukaran kedudukan
item

7. Contoh pseudokod bubble sort


1. Mula
2. Setkan senarai L = [13, 36, 27, 8, 75, 43, 23, 30]
3. Isytiharkan pemboleh ubah i, n, j, temp
4. Setkan n = 8
5. Setkan i = 0
6. Setkan temp= 0
7. for i < n - 1
Setkan j = 0
for j < n - i - 1
Jika Lj > Lj + 1
temp = Lj
Lj = Lj + 1
Lj + 1 = temp
Tamat Jika
Kira j = j + 1
Kira i = i + 1
8. Papar senarai
9. Tamat

16
Prepared by IMR, SMK Valdor

8. Penerangan mengenai carta alir adalah seperti di bawah

Petunjuk Penerangan
1 Senarai L yang diumpukkan
2 Pemboleh ubah n diumpukkan dengan nilai 8 yang mewakili
bilangan item dalam senarai.
Pemboleh ubah i diumpukkan dengan nilai 0 yang mewakili
bilangan lelaran pertama dalam gelung.
Pemboleh ubah temp diumpukkan dengan nilai 0 yang
mewakili data untuk disimpan secara sementara semasa
membuat pertukaran kedudukan item.
3 Gelung for digunakan untuk menentukan bilangan lelaran
yang berlaku
4 Pemboleh ubah j diumpukkan dengan nilai 0 yang mewakili
kedudukan item pertama dalam senarai
5 Gelung for digunakan untuk memastikan setiap pasangan
item bersebelahan dibandingkan.
6 Jika Lj lebih besar daripada Lj + 1 maka kedudukan kedua-dua
item akan ditukar
7 Pemboleh ubah temp digunakan untuk menukar kedudukan
antara dua item
8 Gelung for akan sentiasa berulang sehingga item-item
bersebelahan dibandingkan
9 Gelung for akan sentiasa berulang sehingga semua item
telah diisihkan mengikut urutan
10 Jika tiada penukaran, kedudukan item akan dipaparkan

17
Prepared by IMR, SMK Valdor

9. Contoh carta alir bubble sort

18
Prepared by IMR, SMK Valdor

3.1.2(iv) Menulis Pseudokod dan Melukis Carta Alir bagi Bucket Sort

1. Bucket sort ialah suatu isihan yang menyusun item-item dalam suatu
senarai mengikut kategori, kemudian menyusun semula mengikut
susunan yang betul.
2. Bucket sort melakukan proses isihan sebanyak dua peringkat iaitu:
1. Peringkat Pertama
Mengasingkan item mengikut kategori ke dalam baldi dan
mengisikan dalam baldi
2. Peringkat kedua
Mengisihkan item-item bagi setiap baldi mengikut urutan yang
betul
3. Algoritma bucket sort adalah seperti berikut:
i. Wujudkan beberapa buah baldi untuk menyimpan item-item
daripada senarai secara sementara
ii. Tentukan julat bagi setiap baldi supaya item-item dapat
dimasukkan ke dalam baldi
iii. Masukkan setiap item secara sementara ke dalam baldi
berdasarkan julat yang ditetapkan
iv. Isih item-item di dalam setiap baldi
v. Setelah item-item dalam semua baldi diisih, cantumkan item-item
tersebut dan masukkan ke dalam senarai

19
Prepared by IMR, SMK Valdor

4. Contoh pseudokod bucket sort adalah seperti berikut:


1. Mula
2. Setkan senarai L = { David, Rosnah, Nurul, .... Kamal }
3. Setkan senaraiBaharu { }
4. Isytiharkan pemboleh ubah i, j, n, nB
5. Setkan n = 20
6. Setkan nB = bilangan baldi
7. Wujudkan baldi kosong
8. Masukkan item ke dalam baldi
9. Setkan i = 0
10. for i < n
Masukkan senarai {i} ke dalam baldi
Kira i = i + 1
11. Setkan j = 0
12. for j < nB
Jika baldi [j] kosong
Kira j = j + 1
Jika tidak
Isih item
Kira j = j + 1
13. Cantum dan masukkan item ke dalam senaraiBaharu { }
14. Papar senaraiBaharu { }
15. Tamat

5. Penerangan mengenai pemboleh ubah pseudokod adalah seperti berikut:


Pemboleh ubah Penerangan
L Senarai item yang perlu diisih
i Pemboleh ubah yang mewakili kedudukan item
dalam senarai
n Pemboleh ubah yang mewakili bilangan item dalam
senarai
nB Pemboleh ubah yang mewakili bilangan baldi yang
diperlukan
j Pemboleh ubah yang mewakili kedudukan baldi
20
Prepared by IMR, SMK Valdor

6. Penerangan mengenai carta alir bucket sort adalah seperti berikut:

Petunjuk Penerangan
1 Senarai L yang diumpukkan
2 senaraiBaharu[ ] diumpukkan dengan item dalam senarai
yang telah diisih
3 Pemboleh ubah n diumpukkan dengan nilai 20 mewakili
bilangan item dalam senarai.
Pemboleh ubah nB diumpukkan dengan bilangan baldi yang
diperlukan.
4 Wujudkan baldi kosong
5 Pemboleh ubah i diumpukan dengan nilai 0, yang mewakili
kedudukan item pertama dalam senarai
6 Untuk i kurang daripada n, item-item akan dimasukkan ke
dalam baldi
7 Jika i lebih daripada n, pemboleh ubah j diumpukkan dengan
nilai 0, yang mewakili kedudukan baldi pertama
8 Untuk j kurang daripada nB, baldi pada kedudukan j Baldi[j]
akan disemak samada kosong atau tidak
9 Jika Baldi[j] tidak kosong, item-item di dalam baldi akan
diisih hingga baldi terakhir
10 Jika Baldi[j] kosong, item-item di dalam baldi seterusnya
akan disemak dan diisih
11 Jika j lebih daripada nB item-item setiap baldi akan
dicantumkan dan dimasukkan ke dalam suatu
senaraiBaharu[ ].
Senarai tersebut akan dipaparkan dan atur cara tamat.

21
Prepared by IMR, SMK Valdor

7. Carta alir bucket sort adalah seperti berikut:

22
Prepared by IMR, SMK Valdor

3.1.4 Mengesan dan Membaiki Ralat dalam Pseudokod dan Carta Alir

1. Ralat dalam algoritma akan menyebabkan atur cara yang dibangunkan


tidak dapat menghasilkan output yang dikehendaki.
2. Pengesanan ralat dalam algoritma perlu dilakukan supaya proses
pembaikian kod atur cara dapat dilakukan.
3. Dua jenis pengesanan ralat dalam algoritma adalah:
i. Semakan meja (desk checking)
ii. Semakan langkah demi langkah (stepping through)
4. Tujuan menguji dan membaiki ralat dalam algoritma:
i. Algoritma diuji untuk tujuan pembaikan.
ii. Dibuat sebelum algoritma ditulis sebagai kod komputer.
iii. Memastikan logik algoritma adalah betul dan memikirkan
pembaikan algoritma supaya lebih efisien
5. Ciri-ciri pengujian ralat dalam algoritma
i. Mudah difahami
ii. Memenuhi keperluan untuk menyelesaikan masalah
iii. Berdasarkan kriteria reka bentuk
iv. Berfungsi dan dapat menjimatkan proses pengekodan
6. Langkah-langkah pengujian ralat dalam algoritma
i. Kenal pasti output yang dijangka
ii. Kenal pasti output yang diperolehi
iii. Bandingkan output yang dijangka dan diperolehi
3. Laksanakan penambahbaikan kepada algoritma

23
Prepared by IMR, SMK Valdor

7. Jenis-jenis ralat dalam algoritma:


i. Ralat logik berlaku kerana output yang dihasilkan adalah tidak
tepat sebagaimana yang sepatutnya. Puncanya seperti kesilapan
menulis formula, jenis data yang tidak sesuai atau nilai umpukan
yang tidak betul.
ii. Ralat sintaks tidak wujud semasa penulisan algoritma kerana ia
hanya wujud hasil dari kesilapan semasa menggunakan bahasa
pengaturcaraan.

8. Pengesanan ralat dalam algoritma melalui langkah demi langkah.


i. Jadual pemboleh ubah digunakan untuk mengesan perubahan
pada algoritma yang telah mengumpuk dan mengubah nilai
sesuatu pemboleh ubah.
ii. Setiap baris algoritma mungkin membuat perubahan pada
pemboleh ubah tertentu.
iii. Contoh jadual pengesanan dan pseudokod adalah seperti berikut:
1. Mula No y I/O
2. Input y = 10 1 -
3. y = y /2 2 10 10
4. y=y*4 3 5
5. y = y * 0.25 + y 4 20
6. Papar y 5 25
7. Tamat 6 25 25
7 - -

24
Prepared by IMR, SMK Valdor

9. Pengesanan ralat dalam algoritma melalui semakan meja.


i. Output yang betul bergantung kepada pemboleh ubah sewaktu
algoritma papar dipanggil.
ii. Membandingkan output dijangka merupakan satu-satunya cara
menentukan kesahihan output algoritma.
iii. Output dijangka ditentukan secara hitungan manual.
iv. Jika output algoritma adalah betul, output algoritma sepatutnya
bersamaan dengan output.
v. Contoh jadual bernombor dan pseudokod adalah seperti berikut:
1. Mula No x y Kira I/O
2. Input y 1 - - - -
3. Input x 2 4 - -
4. Kira x * y 3 4 5 -
5. Papar kira 4 4 5 4 * 5 = 20
6. Tamat 5 4 5 20 Kira = 20
6 - - -

25
Prepared by IMR, SMK Valdor

3.1.5 Pengecaman Corak dalam Algoritma Search dan Sort


1. Kaedah pengecaman corak digunakan untuk membandingkan masalah
yang hendak diselesaikan dengan masalah-masalah lain yang serupa dan
telah mendapat penyelesaiannya.
2. Jika corak masalah adalah serupa, maka pengatur cara boleh
menggunakan bentuk penyelesaian sedia ada untuk membina algoritma
penyelesaian masalah yang hendak diselesaikan.
3. Pengecaman corak digunakan untuk mengenal pasti ciri-ciri, struktur,
bentuk input dan output yang terdapat dalam masalah.

26
Prepared by IMR, SMK Valdor

3.1.6 Algoritma bagi Gabungan Search dan Sort

1. Gabungan algoritma search dan sort diperlukan untuk mempercepatkan


dan memudahkan proses penyelesaian sesuatu masalah.
2. Gabungan juga boleh dilakukan di antara algoritma jenis search seperti
linear search dan binary search atau bubble sort dan bucket sort.
3. Contoh gabungan algoritma:

27

Anda mungkin juga menyukai