Algoritma
Algoritma
Soalan:
Dalam kumpulan : Selesaikan masalah matematik ini dengan menulis algoritma yang sesuai.
+
7
3
1
1
Apa yang berlaku ialah digit
13 di tambah dengan nilai 1 1 3
++ 7
sebanyak 7 kali
1
1 Ini adalah
1
+3 20
proses
++
1
penambahan 2
digit
++
Dalam kumpulan : selesaikan masalah matematik ini dengan menulis algotitma yang sesuai.
x
3 1
2
x x
Ini adalah
proses
12 objek dalam 3 3 objek dalam 12
mendarabkan 2
kumpulan kumpulan
digit
1
6
7
8
12
10
11 5 9
2
3
3.1 Pembangunan
Algoritma
Search
3.1.1 Mengenal pasti ciri-ciri search
Secara berpasangan:
Seorang daripada pasangan
(i)Pilih satu nombor di antara 1-10
(ii)Pilih satu nombor di antara 1-100
(iii)Pilih satu nombor di antara 1-1000
Seorang daripada pasangan meneka nombor yang dipilih.
Catatkan masa yang diambil untuk meneka nombor.
Catatkan jumlah tekaan nombor anda.
CONTOH CARTA ALIR
MASUKKAN 6 nombor dalam bekas
PILIH nombor
LINEAR SEARCH
SEMAK nombor yang dipilih
Masih ada
YA
DENGAN nombor dalam
nombor dalam
bekas?
bekas
TIDAK
Nombor yang disemak TIDAK
dalam bekas SAMA
nombor yang dipilih?
YA
PAPAR “Nombor yang
dipilih telah ditemui”
TAMAT
Tambahan:
https://code.tutsplus.com/tutorials/sortingandsearchinginpythoncms25668
Latihan
SELESAIKAN PENCARIAN NOMBOR BERIKUT DALAM BENTUK
JADUAL:
1)7 [ 1,3,7,9,11 ]
2)1 [ 3, 2, 8, 1 ]
4)6 [ 2, 8, 10, 5, 7 ]
Jawapan
1 Kunci Utama = 7 2 Kunci Utama = 1
Cubaan Ya / Tidak
Cubaan Ya / Tidak
1 Ya 1 Tidak
2 Tidak
3 Tidak
4 Tidak
5 Tidak
Kunci Utama = Tiada
BINARY SEARCH
• Sesuai digunakan untuk mencari data dalam kumpulan yang
besar.
Tujuan : • Kumpulan data perlu disusun secara menaik atau menurun.
menjimatkan masa • Cari kedudukan data tengah dengan cara:
kerana akan dapat
(posisi awal + posisi akhir)/2
tahu dengan cepat
nombor yang • Bandingkan data yang dicari dengan data yang di tengah,
berada dalam apakah sama atau lebih kecil, atau lebih besar?
posisi awal atau • Jika data dicari lebih besar, maka proses pencarian diteruskan
posisi akhir dengan posisi awal adalah posisi tengah + 1.
• Jika data dicari lebih kecil, maka proses pencarian diteruskan
dengan posisi akhir adalah posisi tengah – 1.
• Ulang proses pencarian hingga selesai. Jika data sama, data
telah ditemui. Jika tidak, data tidak ditemui.
Contoh :
0 1 2 3 4 5 6 7 8 (Posisi)
[ 21, 25, 28, 33, 38, 39, 48, 49, 69 ]
data
Cari data: 28?
•Awal =0, akhir=8
Mid = (awal+ akhir) / 2 = 4 CUBAAN AWAL AKHIR MID
Data[4]=28? Tidak #1 0 8 4
Data[4]<28? (38<28) Tidak #2 0 3 1
Data[4]>28? (38>28) Ya, akhir=Mid - 1 = 3,awal =0 #3 2 3 2
•Awal =0, akhir=3
Mid = (awal+ akhir) / 2 = 1
Data[1]=28? Tidak Nota:
➢Nilai yang diuji > Nilai yang dicari = Mid - 1
Data[1]<28? Ya, awal=posisi + 1 = 2,akhir =3 ➢Nilai yang diuji < Nilai yang dicari = Mid + 1
•Awal =2, akhir=3
Mid = (awal+ akhir) / 2 = Data[2]=28? Ya.
Data ditemukan
Contoh :
https://www.w3resource.com/pythonexercises/datastructuresandalgorithms/pythonsearcha
ndsortingexercise1.php
3.1.1 Menulis pseudokod dan melukis
carta alir yang menunjukkan:
(ii) Binary Search
CONTOH PSEUDOKOD BINARY SEARCH
1. MULA
2. MASUKKAN 6 nombor dalam bekas
3. PILIH nombor dalam bekas
4. SUSUN nombor ikut urutan
5. Tentukan posisi awal, akhir dan mid
Gunakan: formula (posisi awal + posisi akhir)/2
5. SELAGI nombor dipilih TIDAK SAMA dengan nombor ditengah
4.1 BANDING nombor dipilih DENGAN nombor ditengah
4.2 JIKA nombor dipilih LEBIH BESAR nombor ditengah
BUANG nombor lebih kecil
ULANG SELAGI
JIKA TIDAK
BUANG nombor lebih besar
ULANG SELAGI
TAMAT SELAGI
6. PAPAR “Nombor dipilih telah ditemui”
7. TAMAT
SUSUN nombor
YA2
3
1
MULA
ikut urutan
TIDAK
CONTOH CARTA ALIR
PILIH nombor
Gunakan: formula
BINARY SEARCH
(posisi awal +
posisi akhir)/2
Tentukan posisi awal, akhir dan mid
3 1
2
YA
BUANG nombor
lebih kecil
TAMAT
Latihan
SELESAIKAN PENCARIAN NOMBOR BERIKUT DALAM BENTUK
JADUAL:
1)7 [ 1,3,5,7,9,11,13,15,17,19,21,23]
2)29 [15,20,25,28,29,30,35,40]
3)60 [2,20,27,31,49,52,57,59,60,61]
Jawapan
3.0 ALGORITMA
3.1 Pembangunan
Algoritma
Sort
3.2.1 Mengenal pasti ciri-ciri sort
1)MENAIK
[ 5, 2, 3, 0]
[8, 7, 2, 3, 4]
2) MENURUN
[4, 6, 2, 7, 8]
Jawapan
ii) BUCKET SORT
• Bucket Sort atau bin sort, adalah algoritma pengisihan yang bekerja dengan
mengagihkan unsur-unsur pelbagai ke beberapa bucket / kumpulan
berdasarkan kepada satu ciri yang sama.
• Kelebihan
Cara yang lebih pantas berbanding Bubble Sort
Setelah data di asing mengikut Bucket, setiap Bucket dapat diproses
secara individu.
• Kelemahan
Agak merumitkan jika melibatkan bilangan Bucket yang terlalu banyak.
Tatacara kerja bucket sort
3.2.1 Menulis pseudokod dan melukis
carta alir yang menunjukkan:
1)MENAIK
[ 0.91, 0.13, 0.26, 0.29, 0.48, 0.41, 0.5 ]
2) MENURUN
[ 23, 56, 52, 37, 30, 67, 69, 81, 89 ]