210 likes | 317 Views
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
E N D
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 • Perhatikanpseudocodeberikutini (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) kembalikelangkah 3 (4) Output x Jikanilai x = 114, dan y = 54, berapaoutputnya?
PENYAJIAN ALGORITMA • Kata-kata • Pseudocode • Flowchart
Algoritmadikehidupansehari-hari • Tuliskanresepmembuatnasigoreng! • Tuliskanlangkah-langkahmerakitkompor gas! • Tuliskanlangkah-langkahmenginstall Windows XP. • Tuliskanlangkah-langkahmenyelesaikanSistemPersamaan Linear duapeubah a1x + b1 y =c1dan a2x + b2y =c2 • Tuliskanlangkah-langkahmembuahgrafik y = f(x)
Apa yang diperlukanolehAlgoritma? • SPESIFIKASI INPUT • Agar bisadijalankansebuahalgoritmamemerlukanspesifikasi input yang jelas • Contoh: • Membuatresepmakanan : • Installasi software : • Menjahitbaju : • Spesifikasi input dalamalgoritmakomputer • Jenis data apa yang diperlukan • Berapabanyak data yang diperlukan • Dari mana data tersebutdiinputkan (bentuk form, atau yang lain)
Apa yang diperlukanolehAlgoritma? • PROCESS • Selain input, algoritmamemerlukanlangkah-langkah yang jelasdantepatuntukmenyatakanbagaimnamelakukanoperasiuntukmendapatkan output yang diinginkan menyatakanprosesdalamalgoritma • Algoritmamenyatkankumpulan operas-operasidasar yang diasumsikandimengertioleheksekutoralgoritma • Resepmakanan: haluskan, goreng, rebus, tiriskan, … • Komputasi: add, multiply, modulo, div, output, …
Apa yang diperlukanolehAlgoritma? • SPESIFIKASI OUTPUT • Hasilapa yang diperlukan • Bagaimanapenyajian output • Apa yang terjadidengan output jikaiput error
BagaimnamembuatAlgoritmabaik? • Harusmenghasilkan output yang benaruntuk input yang legal • Sebisamungkinmengeksekusisecaraefisiendenganjumlahlangkahseminimalmungkin • Sebisamungkindidesainsedemikianrupasehinggaorang lain mampumemahamidanmemodifikasiuntukkeperluanlebihlanjut
ContohAlgoritma • Misalkandiberikanalgoritmaberikut (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 Jikadiberikan n = 5 dan A=[4, 7, 3, 5, 9, 8]
MelacakAlgoritma • Nilaiawali=2, m=4. • Berikutnyaada looping yang harusdicek (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
ContohAlgoritma 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
ContohAlgoritma 3 • Apakahhasildarialgoritmadiatas? • Apakahpadalangkah 3 perlumelakukan n kali perulangan? • Apakahpadalangkah 4 perlu n-1 perulangan • Cobalakukanalgoritmainiuntuk 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
Effisiensialgoritma • Hitunglahpadaalgoritma 2 dan 3 adaberapa kali pengecekan if .. Then … • Apakesimpulanmu?
LATIHAN BuatAlgoritmadengankata-katauntukbeberapamasalahberikut • Menentukanjenissegitigaberdasarkanpanjangsisi a, b, dan c (lancip, tumpul, siku-siku) • Menentukan KPK dariduabilangan integer x dany • Menentukanpersamaangarissinggung y=f(x) dititik (x,y) • Menentukanapakahsebuahbilangan prima ataubukan • MencarinilaiPn(x) dengan input : n, koefisien A[1..n] dannilai x dan output hasilnya
Aturanpenulisanalgoritmadenganpseudocode) ALGORITMA Mencari Max //keterangantujuanalgoritma //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
Aturanpenulisanalgoritmadenganpseudocode) • 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
Aturanpenulisanalgoritmadenganpseudocode) • SINTAX FOR … TO … DO For i=nilaiawal to nilaiakhir do pernyataan 1 pernyataan 2 …. pernytaan n
AturanPenulisanAlgoritma • SINTAX WHILE… DO … While (kondisi) do pernyataan 1 pernyataan 2 …. pernytaan n
LATIHAN • Tuliskanalgoritmaberikutdalam pseudo code • Menentukanjenissegitigaberdasarkanpanjangsisi a, b, dan c (lancip, tumpulsiku-siku) • Menentukan KPK dariduabilangan integer x dan y • Menentukanpersamaangarissinggung y=f(x) dititik (x,y) • Menentukanapakahsebuahbilangan prima ataubukan • MencarinilaiPn(x) dengan input : n, koefisien A[1..n] dannilai x dan output hasilnya • Mencarisolusi SPL duavariabeldengan input koefisien-koefisienpersamaan linear, output adalah x dan y