2. Algoritma adalah sekumpulan langkah-langkah terbatas untuk
mencari solusi suatu masalah.
Dalam pemrograman, algoritma didefinisikan sebagai metode
yang terdiri dari langkah-langkah terstuktur untuk mencari
solusi suatu masalah dengan bantuan komputer.
Al-Khwārizmī, Persian astronomer and mathematician,
Algoritmi
algorism
Algorithm
the technique of performing basic arithmetic by writing numbers in
place value form and applying a set of memorized rules and facts
to the digits
calculation method
a sequence of finite instructions, often used for calculation and
data processing
Pengertian Algoritma
4. Kasus : menukar dua buah bilangan
Diketahui X = 10 dan Y = 2. Bagaimana cara
menukarkan nilai X dan Y ?
Jawab :
Contoh Algoritma
Cara 1 :
X = X + Y
X = X + Y
X = X + Y
Cara 2 :
Tampung = X
X = Y
Y = Tampung
5. LATIHAN
1. Diketahui P=0, Q=5 dan R=10.
Diberikan Algoritma P=Q,Q=R, berapa nilai P,Q,R sekarang
?
2. Diketahui Algoritma P=10, P=P+1 dan Q = P
Berapakan Nilai P dan Q ?
3. Input dua buah harga yang dihasilkan dari pengukuran Arus
(Ampere) dan Tahanan (Ohm). Buatlah algoritma untuk
menghitung tegangan yang dihasilkan ! (tuliskan dalam 3
notasi algoritma)
4. Input 3 buah bilangan bulat yang mewakili tiga buah tahanan
dalam Ohm : R1, R2 dan R3. buatlah algortma untuk
menghitung tahanan total yang dihasilkan jika ketiganya
dipasang seri dan paralel ! (tuliskan dalam 3 notasi
algoritma)
6. LATIHAN
6. Seorang Petani akan berpergian ke kota dengan membawa
seekor kambing, serigala dan rumput yang ketiganya memiliki
berat yang tidak jauh berbeda. Di tengah jalan petani harus
menyebrangi sungai dengan menggunakan perahu dan untuk
melaluinya petani tersebut harus membawa satu persatu
bawaannya. Ditanya : berapa kali petani tersebut harus
melalui jembatan dengan memperhatikan bahwa kambing
makan rumput, serigala makan kambing ?
7. Bagaimana caranya untuk menyeberangkan tiga orang rahib
yang sedang dikejar oleh Tiga orang kanibal ke sisi pulau
yang ada diseberangnya ?
Dengan catatan :
Bila misionarisnya Lebih sedikit dari dari kanibal, maka
misionaris tersebut akan dimakannya.
7. Sifat-sifat Algoritma
Finiteness
Jumlah langkah dalam algoritma harus terbatas
Definiteness
Setiap langkah harus didefinisikan secara tepat, tidak
boleh membingungkan (ambiguous)
Input
Sebuah algoritma memiliki nol atau lebih input yang
diberikan kepada algoritma sebelum dijalankan
Output
Sebuah algoritma memiliki satu atau lebih output, yang
biasanya bergantung kepada input
Effectiveness
Setiap algoritma diharapkan miliki sifat efektif
8. Analisis Algoritma
Untuk melihat faktor efesiensi & efektifitas dari suatu
algoritma
dapat dilakukan terhadap suatu algoritma dengan melihat :
1. Waktu eksekusi
Hal-hal yang mempengaruhi waktu eksekusi :
Banyaknya langkah
Besar dan jenis input data
Jenis Operasi
Komputer dan kompilator
2. Penggunaan memori
Semakin besar memori yang dipakai akan semakin
13. Tahap Pengembangan
Algoritma
TULIS PROGRAM
COMPILE
Sintak Err
Executable code :
=> Run
Output Err
DOKUMEN TASI
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
Start
d = b^2 – 4ac
d < 0
Masukkan a,b,c
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Stop
Y
T
Cetak: x1, x2
Cetak:
“Akar majiner”
20. Penyusunan Algoritma
Tiga cara menyusun algoritma (notasi algoritma) :
Bahasa manusia
Pseudocode : Kode atau tanda yang menyerupai
(pseudo) program atau merupakan pejelasan cara
menyelesaikan suatu masalah.
Flowchart (diagram alir)
Dalam belajar algoritma, notasi yang umum digunakan
adalah Flowchart dan Pseudocode.
21. Penyusunan Algoritma
Berdasarkan pemrograman prosedural, suatu teks
algoritma disusun dalam tiga bagian, yaitu :
1. Kepala algoritma : merupakan judul algoritma dan
penjelasan (spesifikasi) tentang algoritma tersebut.
2. Deklarasi : beisi deklarasi semua nama yang
digunakan meliputi tipe, variabel, konstanta, dan nama
sub program.
3. Deskripsi algoritma : merupakan bagian inti yang
berisi uraian langkah-langkah penyelesaian suatu
22. Pseudocode Standar
Menerima input : READ, GET
Menampilkan output : WRITE, PRINT, DISPLAY, SHOW
Aritmatika : +, -, *, /, div, sub, mul, min
Pemberian nilai : ←
Inisialisasi : INIT, SET
Memilih : IF … THEN … ELSE … , CASE
Perulangan : FOR, WHILE
23. Pseudocode Standar
Tentukan Output dari algoritma berikut :
READ X
READ Y
READ Z
IF (X = Y)
X = Y + Z
ELSE
X = Y - Z
ENDIF
Tentukan Outputnya
jika diinputkan X = 5, Y
= 10 dan Z = 15
24. Contoh Penyusunan Algoritma
Contoh : Algoritma untuk menghitung luas
lingkaran
Menggunakan bahasa manusia :
1. Inputkan nilai jari-jari lingkaran
2. Hitung luas lingkaran menggunakan rumus :
3. Tampilkan nilai luas lingkaran
Luas = 3,14 x jari-jari x jari-
jari
25. Contoh Penyusunan Algoritma
Menggunakan pseudocode :
Contoh :
Hitung Luas {untuk menghitung luas lingkaran}
DEKLARASI
r, L
DESKRIPSI
Read (r)
While r ≠ 0 do
L ← 3,14 x r x r
EndWhile
Write (L)
Bagian deskripsi juga bisa
ditulis sebagai berikut :
DESKRIPSI
Read (r)
L ← 3,14 x r x r
Write (L)
26. Contoh Penyusunan Algoritma
Menggunakan flowchart :
Mulai
Masukkan
nilai jari-jari
Luas = 3,14 x jari-jari x jari-jari
Tampilkan
luas
Selesai
27. Pengertian Flowchart
Notasi algoritma dengan bahasa manusia
memiliki kelemahan dalam penyusunan, dimana
sangat dipengaruhi oleh tata bahasa
pembuatnya, sehingga kadang-kadang sulit
dimengerti oleh orang lain.
Karena itu dikembangkan notasi algoritma
dengan representasi simbol-simbol yang mudah
dimengerti, diantaranya dengan flowchart.
Flowchart adalah diagram yang
menggambarkan susunan logika suatu
program.
28. Simbol-simbol Flowchart
→ Simbol Proses, satu atau beberapa himpunan
penugasan yang akan dilaksanakan secara
berurutan.
→ Simbol Input / Output, simbol yang digunakan
untuk menunjukkan operasi masukan atau keluaran
→ Terminal, Simbol Terminal, simbol yang digunakan untuk
menyatakan awal atau akhir suatu program.
→ Simbol Keputusan, simbol yang digunakan untuk
menyatakan suatu pilihan berdasarkan suatu kondisi
tertentu
→ Simbol persiapan (Preparation), simbol yang
digunakan untuk memberikan nilai awal pada suatu
variabel atau pencacah
29. Simbol-simbol Flowchart
→ Simbol Connector/penghubung ke halaman yang
sama, simbol yang digunakan untuk menghubungkan
bagian diagram alir pada halaman yang sama.
→ Simbol On page Connector/penghubung ke halaman
lain, simbol yang digunakan untuk menghubungkan
bagian diagram alir pada halaman yang berbeda
→ Simbol Flowline/arah aliran, simbol yang digunakan
untuk menunjukkan arah aliran proses
→ Simbol Subroutine, digunakan untuk menjalankan
proses, sub program, atau prosedur
→ Simbol Annotation, simbol yang digunakan untuk
memberikan keterangan-keterangan untuk memperjelas
simbol-simbol lain
30. Struktur Dasar Algoritma
1. Struktur urut (sequence)
Struktur urut adalah suatu struktur program dimana
setiap baris program akan dikerjakan secara urut dari
atas ke bawah sesuai dengan urutan penulisannya.
2. Struktur pemilihan (selection)
Struktur pemilihan adalah struktur program yang
melakukan proses pengujian untuk mengambil suatu
keputusan apakah suatu baris atau blok instruksi akan
diproses atau tidak.
3. Struktur pengulangan (repetition)
Struktur pengulangan merupakan struktur yang
melakukan pengulangan terhadap satu baris atau satu
blok baris program beberapa kali sesuai dengan
31. Struktur Urut (Sequence)
Contoh :
Akan dihitung luas pesegi panjang yang diketahui panjang dan
lebarnya, maka algoritmanya sebagai berikut :
Algoritma Luas_Pesegi_Panjang
Diketahui sebuah pesegi panjang
yang memiliki panjang dan lebar.
Deskripsi :
1. Mulai
2. Baca panjang
3. Baca lebar
4. Hitung luas = panjang * lebar
5. Tampilkan luas
6. Selesai
32. Struktur Pemilihan
2. Struktur Pemilihan (Selection) dibentuk menggunakan if
dengan bentuk umum sebagai berikut :
Bentuk 1 :
If Kondisi
Proses
Endif
If Kondisi
Proses1
Else
Proses2
Endif
Bentuk 2 :
If Kondisi 1
Proses1
Elseif Kondisi2
Proses2
…
Else
Proses ke-
n
Endif
Bentuk 3 :
36. Struktur Perulangan (Looping)
Struktur perulangan dapat dibentuk dengan pernyataan
for dan while.
Contoh :
Perulangan dengan
for
for i = nilai_awal
to nilai_akhir
Proses
Perulangan dengan
While
Proses
Cek
kondisi
?
Ya
Tidak
37. LATIHAN
Buatlah pseudocode dan flowchart untuk kasus-kasus
berikut :
a) Menukar 2 buah bilangan yaitu bil1 dan bil2 !
b) Menentukan bilangan paling besar dari dua buah
bilangan, yaitu A dan B !
c) Menampilkan bilangan ganjil dari 1 – 20 dengan
perulangan for dan while !
d) Menampilkan nilai faktorial dari n buah bilangan !
e) Menampilkan deret Fibbonaci dengan panjang deret
38. Jawab
a) Menukar 2 buah bilangan yaitu bil1 dan bil2 !
Pseudocode :
Tukar bilangan
DEKLARASI
bil1, bil2, tampung
DESKRIPSI
Read (bil1)
Read (bil2)
Tampung ← bil1
bil1 ← bil2
bil2 ← tampung
Write (bil1)
Write (bil2)
Mulai
Masukkan bil1, bil2
Tampung = bil1
Tampilkan bil1, bil2
Selesai
bil1 = bil2
bil2 = Tampung
Flowchart :
39. Jawab
b) Menentukan bilangan paling besar dari A dan B !
Pseudocode :
Cek bil max
DEKLARASI
A, B, Max
DESKRIPSI
Read (A)
Read (B)
IF (A>B)
Max ← A
ENDIF
Write (Max)
Mulai
Masukkan A, B
Tampilkan Max
Selesai
Max = A
A>B ?
Max = B
Y
T
40. Jawab
c) Menampilkan bilangan ganjil dari 1 – 20 dengan perulangan for dan
while !
Pseudocode :
Deret bil ganjil
DEKLARASI
i, Bil_ganjil
DESKRIPSI
For (i = 1 to 10)
Bil_ganjil ← 2*i - 1
Endfor
Write (Bil_ganjil)
for i = 1 to 10
Bil_ganjil = 2*i - 1
Mulai
Tampilkan Bil_ganjil
Selesai
41. Jawab
c) Menampilkan bilangan ganjil dari 1 – 20
dengan perulangan for dan while !
Pseudocode dengan While :
Deret bil ganjil
DEKLARASI
i, Bil_ganjil
DESKRIPSI
Set ← 1
While (i < 10)
Bil_ganjil ← 2*i – 1
i ← i + 1
EndWhile
Write (Bil_ganjil)
i = 1
Bil_ganjil = 2*i - 1
Mulai
Tampilkan Bil_ganjil
Selesai
i < 10 ?
i = i + 1
42. Jawab
d) Menampilkan nilai faktorial dari n
buah bilangan !
Pseudocode :
Hitung Faktorial
DEKLARASI
n, Faktorial, i
DESKRIPSI
Read (n)
Set Faktorial ← 1
For (i = 1 to n)
Faktorial ← Faktorial * i
Endfor
Write (Faktorial)
for i = 1 to n
Faktorial = Faktorial * i
Mulai
Tampilkan Faktorial
Selesai
Baca n
Faktorial = 1
43. Jawab
e) Menampilkan deret Fibonacci dengan deret
sepanjang 10 !
Contoh deret Fibonacci : 1, 1, 2, 3, 5, 8, 13,
…
Pseudocode :
Deret Fibonacci
DEKLARASI
n, Fibo, i
DESKRIPSI
Read (n)
Set Fibo ← [1 1]
For (i = 3 to n)
Fibo (i) ← Fibo (i-1) + Fibo (i-2)
Endfor
Write (Fibo)
for i = 3 to n
Fibo (i) = Fibo (i-1) + Fibo (i-1)
Mulai
Tampilkan Fibo
Selesai
Baca n
Fibo = [1 1]