Anda di halaman 1dari 32

ALGORITMA

ETYMOLOGY
The study of the origin of words and the way in which their meanings have changed
throughout history.
SEJARAH
ABDULLAH MUHAMMAD BIN MUSA AL-KHWARIZMI
Lahir pada 780 masihi
Meninggal pada 850 masihi

 Perkataan Algoritma (Algorithm) mempunyai sejarah yang panjang dan perkataan ini dapat
dikesan penggunaannya pada abad ke-9.

 Sempena nama Ahli sains, astronomi dan matematik Abdullah Muhammad bin Musa al-
Khwarizmi.

 Pada abad ke-12 salah satu bukunya diterjemahkan ke dalam bahasa Latin,
Hisab al-Jabr wa-al-Muqabala di mana namanya diberikan dalam bahasa Latin sebagai
"Algorithmi“ dan di kenali sebagai"Bapa Algebra".

 Algebra diperkenalkan untuk menyelesaikan masalah kehidupan pada masa itu.


APAKAH ITU ALGORITMA?
 Satu tatacara langkah demi langkah untuk menyelesaikan suatu masalah.

 set arahan langkah demi langkah yang terperinci atau

 formula untuk menyelesaikan masalah atau menyiapkan tugas.

 Contoh:Resipi untuk membuat makanan Proses melipat baju


CONTOH ALGORITMA HARIAN:

https://www2.cs.duke.edu/courses/summer04/cps001/labs/plab2.html

https://www.tynker.com/blog/articles/ideas-and-tips/how-to-explain-algorithms-to-kids/
Apakah Algoritma Komputer?
https://study.com/academy/lesson/what-is-a-computer-algorithm-design-examples-optimization.html
Soalan:

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

Bentangkan algoritma anda.


CONTOH PENAMBAHAN 2 DIGIT
Apa yang berlaku ialah digit
13 di tambah dengan nilai 1
sebanyak 7 kali

Ini adalah
proses
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.


Mula 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
Soalan:

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

Bentangkan algoritma anda.


CONTOH PENDARABAN 2 DIGIT

Ini adalah
proses
12 objek dalam 3 3 objek dalam 12
mendarabkan 2
kumpulan kumpulan
digit

* Cara penyelesaian masalah dalam mencari hasil darab 2 digit


Soalan:

Dalam kumpulan selesaikan masalah yang melibatkan:

satu pemboleh ubah dan satu pemalar dalam bentuk algoritma.


CONTOH PERSAMAAN ALGEBRA * Menggunakan
konsep
kesamaan,
disebabkan
X+2=6 persamaan di
sebelah kiri
* Hanya X sahaja perlu ditolak dengan
berada di sebelah kiri 2 perlu 2, maka
persamaan dimansuhkan persamaan

X+2 -2 =6-2 disebelah kanan


juga akan ditolak
Dengan cara dengan 2
2-2=0

X-0 = 4
X=4
* Cara penyelesaian masalah dalam mencari nilai x
3.0 ALGORITMA

3.1 Pembangunan
Algoritma
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.


(i) 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

MASUKKAN 6 nombor dalam bekas


CONTOH CARTA ALIR
PILIH nombor
LINEAR SEARCH
Masih ada SEMAK nombor yang dipilih
nombor YA
DENGAN nombor dalam
dalam bekas
bekas?

TIDAK
Nombor yang TIDAK
disemak 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
3.1.1 Mengenal pasti ciri-ciri search

• Pencarian data bertujuan untuk mencari


dan mendapatkan data yang terdapat
dalam sekelompok atau sekumpulan data.

(ii) binary search


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
posisi akhir diteruskan 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:
Data[1]<28? Ya, awal=posisi + 1 = 2,akhir =3 Nilai yang diuji > Nilai yang dicari = Mid - 1
Nilai yang diuji < Nilai yang dicari = Mid + 1
•Awal =2, akhir=3
Mid = (awal+ akhir) / 2 = Data[2]=28? Ya.
Data ditemukan
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
MULA

CONTOH CARTA ALIR MASUKKAN 6 nombor dalam bekas

PILIH nombor
Gunakan: formula
SUSUN nombor ikut urutan
(posisi awal +
posisi akhir)/2
Tentukan posisi awal, akhir dan mid
BINARY SEARCH

TIDAK Nombor
ditengah TIDAK
SAMA nombor
dipilih?

YA

BANDING nombor dipilih


DENGAN nombor ditengah

3 1 2
3 1
2

CONTOH CARTA ALIR PAPAR “Nombor


yang dipilih telah
ditemui” BUANG nombor
lebih besar

Nombor dipilih
BINARY SEARCH

LEBIH BESAR
nombor
TIDAK
ditengah

YA

BUANG nombor
lebih kecil

TAMAT
Tambahan exercise dan contoh mudah:
https://www.w3resource.com/python-exercises/data-structures-and-algorithms/python-search-and-sorting-
exercise-1.php

Anda mungkin juga menyukai