BAB I DASAR-DASAR ALGORITMA

Download Report

Transcript BAB I DASAR-DASAR ALGORITMA

BAB I
DASAR-DASAR ALGORITMA
ALGORITMA
An algorithm is “a precise rule (or set of rules)
specifying how to solve some problem.”
(thefreedictionary.com)
 Muhammad al-Khwarizmi
Arab mathematician of the court of Mamun in
Baghdad in the 9th century…the word algorithm
is said to have been derived from his name. Much
of the mathematical knowledge of medieval
Europe (algebra) was derived from Latin
translations of his works. (encyclopedia.com)
 • The study of algorithms is one of the key
foundations of computer science.

FIRST ALGORITHM
Perhatikan pseudocode berikut ini
(1) Input x
(2) Input y
(3) While x  0 do
(a) b= x modulo y
(b) set x= y
(c) set y = b
(d) kembali ke langkah 3
(4) Output x
Jika nilai x = 114, dan y = 54, berapa outputnya?

PENYAJIAN ALGORITMA
Kata-kata
 Pseudocode
 Flowchart

ALGORITMA DI KEHIDUPAN SEHARI-HARI
Tuliskan resep membuat nasi goreng!
 Tuliskan langkah-langkah merakit kompor gas!
 Tuliskan langkah-langkah menginstall Windows
XP.
 Tuliskan langkah-langkah menyelesaikan Sistem
Persamaan Linear dua peubah a1x + b1 y =c1 dan
a2x + b2y =c2
 Tuliskan langkah-langkah membuah grafik y =
f(x)

ALGORITMA ADALAH SUATU FUNGSI
APA YANG DIPERLUKAN OLEH
ALGORITMA?
SPESIFIKASI INPUT
 Agar bisa dijalankan sebuah algoritma
memerlukan spesifikasi input yang jelas
 Contoh:

Membuat resep makanan :
 Installasi software :
 Menjahit baju :


Spesifikasi input dalam algoritma komputer
Jenis data apa yang diperlukan
 Berapa banyak data yang diperlukan
 Dari mana data tersebut diinputkan (bentuk form,
atau yang lain)

APA YANG DIPERLUKAN OLEH
ALGORITMA?
PROCESS
 Selain input, algoritma memerlukan langkahlangkah yang jelas dan tepat untuk menyatakan
bagaimna melakukan operasi untuk
mendapatkan output yang diinginkan 
menyatakan proses dalam algoritma
 Algoritma menyatkan kumpulan operas-operasi
dasar yang diasumsikan dimengerti oleh
eksekutor algoritma

Resep makanan: haluskan, goreng, rebus, tiriskan,
…
 Komputasi: add, multiply, modulo, div, output, …

APA YANG DIPERLUKAN OLEH
ALGORITMA?

SPESIFIKASI OUTPUT
Hasil apa yang diperlukan
 Bagaimana penyajian output
 Apa yang terjadi dengan output jika iput error

BAGAIMNA MEMBUAT ALGORITMA BAIK?
Harus menghasilkan output yang benar untuk
input yang legal
 Sebisa mungkin mengeksekusi secara efisien
dengan jumlah langkah seminimal mungkin
 Sebisamungkin didesain sedemikian rupa
sehingga orang lain mampu memahami dan
memodifikasi untuk keperluan lebih lanjut

CONTOH ALGORITMA
Misalkan diberikan algoritma berikut
(1) Input: n
(2) Input : Array A[1], A[2], …A[n] of integer
(3) Set i=2
(4) Set m = A[1]
(5) While i<=n do
(a) if A[i] <m then set m=A[i]
(b) Set i=i+1
(6) Output m

Jika diberikan n = 5 dan A=[4, 7, 3, 5, 9, 8]
MELACAK ALGORITMA
Nilai awal i=2, m=4.
 Berikutnya ada looping yang harus dicek

i
2
3
4
5
m
(1) Input: n=5
(2) Input :
A=[4, 7, 3, 5, 9, 8]
(3) Set i=2
(4) Set m = A[1]
(5) While i<=n do
(a) if A[i] <m then set
m=A[i]
(b) Set i=i+1
(6) Output m
CONTOH ALGORITMA 2
1. Input : n
2. Input : array A[1], A[2], …, A[n] of integer
3. For i=1 to n do
4.
for j=1 to n-1 do
5.
If A[j] > A[j+1], exchange A[j] and
A[j+1]
6. Output A
Jika n = 5 dan A = [8,4,9,3,7], tentukan output nya
CONTOH ALGORITMA 3
Apakah hasil dari algoritma di atas?
 Apakah pada langkah 3 perlu melakukan n kali
perulangan?
 Apakah pada langkah 4 perlu n-1 perulangan
 Coba lakukan algoritma ini untuk input yang sama
1. Input : n
2. Input : array A[1], A[2], …, A[n] of integer
3. For i=1 to n-1 do
for j=1 to n-i do
If A[j] > A[j+1], exchange A[j] and A[j+1]
4. Output A

EFFISIENSI ALGORITMA
Hitunglah pada algoritma 2 dan 3 ada berapa
kali pengecekan if .. Then …
 Apa kesimpulanmu?

LATIHAN
Buat Algoritma dengan kata-kata untuk beberapa
masalah berikut
 Menentukan jenis segitiga berdasarkan panjang sisi
a, b, dan c (lancip, tumpul, siku-siku)
 Menentukan KPK dari dua bilangan integer x dan y
 Menentukan persamaan garis singgung y=f(x) di titik
(x,y)
 Menentukan apakah sebuah bilangan prima atau
bukan
 Mencari nilai Pn(x) dengan input : n, koefisien
A[1..n] dan nilai x dan output hasilnya
ATURAN PENULISAN ALGORITMA DENGAN
PSEUDOCODE)
ALGORITMA Mencari Max
//keterangan tujuan algoritma
//keterangan input
//keterangan output
(1) Input: n
(2) Input: array A[1], A[2], ..A[n] of integer
(3) Process…
(4) Process…
…
(11) Output max
ATURAN PENULISAN ALGORITMA DENGAN
PSEUDOCODE)
SINTAX:
 If …then …else …
If (kondisi) then pernyataan 1
else pernyataan 2
 ATAU

If (kondisi) then
pernyataan 1
pernyataan 2
….
else
pernyataan 1
pernyataan 2
ATURAN PENULISAN ALGORITMA DENGAN
PSEUDOCODE)

SINTAX FOR … TO … DO
For i=nilaiawal to nilaiakhir do
pernyataan 1
pernyataan 2
….
pernytaan n
ATURAN PENULISAN ALGORITMA

SINTAX WHILE… DO …
While (kondisi) do
pernyataan 1
pernyataan 2
….
pernytaan n
LATIHAN

Tuliskan algoritma berikut dalam pseudo code






Menentukan jenis segitiga berdasarkan panjang sisi
a, b, dan c (lancip, tumpul siku-siku)
Menentukan KPK dari dua bilangan integer x dan y
Menentukan persamaan garis singgung y=f(x) di titik
(x,y)
Menentukan apakah sebuah bilangan prima atau
bukan
Mencari nilai Pn(x) dengan input : n, koefisien
A[1..n] dan nilai x dan output hasilnya
Mencari solusi SPL dua variabel dengan input
koefisien-koefisien persamaan linear, output adalah
x dan y