Anda di halaman 1dari 46

Apakah Algoritma Komputer?

Soalan:

Dalam kumpulan : Selesaikan masalah matematik ini dengan menulis algoritma yang sesuai.

+
7
3
1

Bentangkan algoritma anda.


CONTOH PENAMBAHAN 2 DIGIT

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

++

* Cara penyelesaian masalah dalam mencari hasil tambah 2 digit


Soalan:

Dalam kumpulan : selesaikan masalah matematik ini dengan menulis algotitma yang sesuai.

Bentangkan algoritma anda. 1 3


Mula ++ 7 Mula
Tuliskankan nombor 13 tuliskankan nombor 13
Tambah 1 Tambahkan nilai 1 sebanyak tujuh kali
Tambah 1 Nilai 20 dituliskan
Tambah 1 Tamat
Tambah 1
Tambah 1
Tambah 1
Tambah 1
Nilai 20 dituliskan
Tamat
CONTOH PENDARABAN 2 DIGIT
3x
6
2
1
3
6

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

* Cara penyelesaian masalah dalam mencari hasil darab 2 digit


3.0  ALGORITMA  

3.1  Pembangunan 
Algoritma

Search
3.1.1 Mengenal pasti ciri-ciri search

• Pencarian data bertujuan untuk mencari


dan mendapatkan data yang terdapat
dalam sekelompok data.
Mari Lakukan Aktiviti Bersama

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.

Tukar pasangan dan lakukan perkara yang sama.


LINEAR SEARCH
• Teknik pencarian data dalam sekumpulan data
yang paling mudah.
• Pencarian data dilakukan satu per satu sehingga
data yang dicari berjaya ditemui
• Jika data ditemukan, maka proses pencarian
selesai.
• Kelebihan : Jika data yang dicari terletak di awal
maka waktu pencarian datanya sangat cepat.
• Kelemahan : Jika data yang dicari paling belakang,
maka waktu pencarian datanya sangat lama.
• Sesuai digunakan untuk mencari data
dalam jumlah yang kecil.
3.1.1 Menulis pseudokod dan melukis
carta alir yang menunjukkan:

(i) Linear Search


CONTOH PSEUDOKOD LINEAR SEARCH
1. MULA
2. MASUKKAN 6 nombor dalam bekas
3. Dapatkan input nombor dari pengguna
4. SELAGI nombor yang disemak BUKAN nombor yang dipilih pengguna
4.1 SEMAK nombor dalam bekas dengan nombor yang dipilih
4.2 JIKA nombor yang disemak SAMA DENGAN nombor yang dipilih
PAPAR “Nombor yang dipilih telah ditemui”
TAMAT SELAGI
JIKA TIDAK
ULANG SELAGI
TAMAT SELAGI
5. TAMAT
CONTOH PSEUDOKOD LINEAR SEARCH
1. MULA
2. MASUKKAN 6 nombor dalam bekas
3. PILIH nombor
4. SELAGI masih ada nombor dalam bekas belum disemak
4.1 SEMAK nombor yang dipilih DENGAN nombor dalam bekas
4.2 JIKA nombor yang dipilih SAMA DENGAN nombor dalam bekas
PAPAR “Nombor yang dipilih telah ditemui”
TAMAT SELAGI
JIKA TIDAK
ULANG SELAGI
TAMAT SELAGI
5. TAMAT
MULA

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/sorting­and­searching­in­python­­cms­25668
Latihan
SELESAIKAN PENCARIAN NOMBOR BERIKUT DALAM BENTUK
JADUAL:

1)7 [ 1,3,7,9,11 ]

2)1 [ 3, 2, 8, 1 ]

3)11 [ 11,12, 8, 17, 20 ]

4)6 [ 2, 8, 10, 5, 7 ]
Jawapan
1 Kunci Utama = 7 2 Kunci Utama = 1

Cubaan Ya / Tidak Cubaan Ya / Tidak


1 Tidak 1 Tidak
2 Tidak 2 Tidak
3 Ya 3 Tidak
4 Ya

3 Kunci Utama = 11 4 Kunci Utama = 6

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/python­exercises/data­structures­and­algorithms/python­search­a
nd­sorting­exercise­1.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

CONTOH CARTA ALIR  PAPAR “Nombor


yang dipilih telah
ditemui” BUANG nombor
lebih besar
BINARY SEARCH
Nombor dipilih
LEBIH BESAR
nombor
TIDAK
ditengah

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

• Algoritma Sort merupakan proses pengurutan yang secara


beransur-ansur memindahkan data ke posisi yang tepat.
• Fungsi algoritma ini adalah untuk mengurutkan data dari yang terkecil ke
yang terbesar (ascending) atau sebaliknya (descending).
i) BUBBLE SORT
Satu algoritma mudah dalam pengisihan suatu senarai yang prosesnya
dilaksanakan satu persatu secara berturutan dengan membandingkan unsur-
unsur bersebelahan dan akan menukar kedudukan(swap) sekiranya berlaku
turutan yang salah.

Berikut ini beberapa kelebihan yang dimiliki oleh algoritma ini:


• Algoritma ini adalah metode paling sederhana untuk mengurutkan data.
•Selain sederhana, algoritma ini juga mudah difahami.

Sedangkan, kekurangan dari algortima ini adalah sebagai berikut:


• Bubble sort ini merupakan metode pengurutan yang tidak efisien,
khususnya ketika menangani data yang berjumlah besar.
• Mengambil masa yang lama untuk menyusun data yang besar.
• Jumlah pengulangan yang dilakukan oleh algortima ini akan tetap sama
jumlahnya, meskipun data yang diurutkan sudah cukup terurut.
3.2.1 Menulis pseudokod dan melukis
carta alir yang menunjukkan:

(i) Bubble Sort


CONTOH PSEUDOKOD BUBBLE SORT
1. MULA
2. MASUKKAN 5 nombor dalam bekas
3. Nombor pertama dibandingkan dengan nombor kedua
4. JIKA Nombor pertama > Nombor kedua
Tukar kedudukan
JIKA TIDAK
Kekal kedudukan.
ULANG SELAGI
Nombor di kiri > Nombor di kanan
5. Nombor disusun mengikut turutan menaik.
6. TAMAT
CONTOH CARTA ALIR 
BUBBLE SORT
CONTOH CARTA ALIR 
BUBBLE SORT
Tatakerja Bubble Sort
Latihan
SELESAIKAN PENYUSUNAN NOMBOR BERIKUT DAN KENAL PASTI
BILANGAN CUBAAN DALAM BENTUK JADUAL:

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:

(i) Bucket Sort


CONTOH PSEUDOKOD BUCKET SORT
1. MULA
2. Tetap julat(range) nombor pada setiap bucket (5
bucket)
3. Nombor dimasukkan ke dalam setiap bucket
mengikut julat nombor tersebut.
4. Nombor dalam setiap bucket diisih menggunakan
Bubble sort.
5. Senarai disusun mengikut urutan (menaik/menurun)
6. TAMAT
CONTOH CARTA ALIR 
BUCKET SORT
Latihan
SELESAIKAN PENYUSUNAN NOMBOR BERIKUT DAN KENAL PASTI
BILANGAN CUBAAN DALAM BENTUK RAJAH:

1)MENAIK
[ 0.91, 0.13, 0.26, 0.29, 0.48, 0.41, 0.5 ]

[ 99, 93, 56, 65, 34, 38, 37, 51, 50 ]

2) MENURUN
[ 23, 56, 52, 37, 30, 67, 69, 81, 89 ]

Anda mungkin juga menyukai