1 / 43

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

Télécharger la présentation

BAB I DASAR-DASAR ALGORITMA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BAB IDASAR-DASAR ALGORITMA

  2. 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.

  3. 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?

  4. PENYAJIAN ALGORITMA • Kata-kata • Pseudocode • Flowchart

  5. 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)

  6. Algoritmaadalahsuatufungsi

  7. 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)

  8. 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, …

  9. Apa yang diperlukanolehAlgoritma? • SPESIFIKASI OUTPUT • Hasilapa yang diperlukan • Bagaimanapenyajian output • Apa yang terjadidengan output jikaiput error

  10. BagaimnamembuatAlgoritmabaik? • Harusmenghasilkan output yang benaruntuk input yang legal • Sebisamungkinmengeksekusisecaraefisiendenganjumlahlangkahseminimalmungkin • Sebisamungkindidesainsedemikianrupasehinggaorang lain mampumemahamidanmemodifikasiuntukkeperluanlebihlanjut

  11. 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]

  12. 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

  13. 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

  14. 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

  15. Effisiensialgoritma • Hitunglahpadaalgoritma 2 dan 3 adaberapa kali pengecekan if .. Then … • Apakesimpulanmu?

  16. LATIHAN BuatAlgoritmadengankata-katauntukbeberapamasalahberikut • Menentukanjenissegitigaberdasarkanpanjangsisi a, b, dan c (lancip, tumpul, siku-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

  17. 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

  18. Aturanpenulisanalgoritmadenganpseudocode) • SINTAX: • If …then …else … If (kondisi) then pernyataan 1 else pernyataan 2 • ATAU If (kondisi) then pernyataan 1 pernyataan 2 …. else if pernyataan 1 pernyataan 2 else pernytaan 1 pernytaan 2

  19. Aturanpenulisanalgoritmadenganpseudocode) • SINTAX FOR … TO … DO For i=nilaiawal to nilaiakhir do pernyataan 1 pernyataan 2 …. pernytaan n

  20. AturanPenulisanAlgoritma • SINTAX WHILE… DO … While (kondisi) do pernyataan 1 pernyataan 2 …. pernytaan n

  21. LATIHAN • Tuliskanalgoritmaberikutdalam pseudo code • Menentukanapakahsebuahbilangangenapatauganjil • Menentukanbilanganterbesardaritigaangka a, b, c • Menentukanjumlah n bilangankuadratpertama (input bilanagan integer n, output: jumlah n bilangankuadrat yang pertama) • Menentukan 4 + 7+10 + ..+ Un (input:n) • PR nomer 1 • Menentukanbilanganfibonaccike-n: 1, 2, 3, 5, 8, ..Fn (Input n)

  22. Menentukanjenissegitigaberdasarkanpanjangsisi a, b, dan c (lancip, tumpulsiku-siku) (diketahui c adalahsisiterpanjang) • Menentukanapakahsebuahbilangan prima ataubukan • MencarinilaiPn(x) dengan input : n, koefisien A[0..n] dannilai x dan output hasilnya • Mencarisolusi SPL duavariabeldengan input koefisien-koefisienpersamaan linear, output adalah x dan y

  23. LATIHAN (MENELUSURI ALGORITMA) PR nomer 2 • Adasebanyak 100 lokerdisebuahasrama, dinomorisecaraurutdari 1 sampai 100. Setiaplokerdilengkapisebuahtombol yang jikaditekanakanmerubahposisiloker. Jikatertutupmenjaditerbukadansebaliknya. Posisiawalsemualokertertutup. SelanjutnyaAndalangkahberikut. Langkahpertamadimulaidariloker 1, Andatekantombolpadasemualokeri, i=1,2, …, 100. Padalangkahkedua, dimulaidarilokernomor 2 Andatekantombolpadalokerbernomorgenap(2, 4, 6…). Padalangkahketiga, dimulailokernomor 3 Andatekantombolpadalokerkelipatan 3 (3, 6, 9, …) danseterusnya. Setelahlangkahke 100, adaberapaloker yang tertutup?

  24. LATIHAN (MENELUSURI ALGORITMA) PR ke-3 ALGORITMA Sesuatu (1) Input: n (2) Input: array A[1..n] of integer (3) Set d= (4) For i=1 to n do (5) For j=1 to n do (6) If ij and |A[i]-A[j]|<d then (7) Set d=A[i]-A[j] (8) Output d TentukanOutputnyajikadiberikan n = 8, dan A=[2 3 7 11 4 14 10 8]

  25. PENYAJIAN ALGORITMA DENGAN FLOWCHART • Flowcharts digunakanuntukmenunjukkanalirankontroldarisuatualgoritmaberjalan step by step dalamsajian visual • Flowcharts terdiridaribeberapakomponen • Sebuah Oval utkmenunjukkan START • SebarisanKotak-kotakdengan operas-operasidalamalgoritma (Kotakbisapersegipanjang, jajargenjang, belahketupat) • Panah-panahuntukmenunjukkanurutankotak-kotakdievaluasidalamalgoritma • Sebuah Oval menunjukkan STOP or END

  26. SEQUENTIAL FLOW • Suatuoperasi assignment (penugasan) memberikansuatuvariabelsebuahnilaikhususataumerubahnilai lama menjadinilaibaru • Operasi Assignment disajikandalam flow chart denganmenggunakanpersegipanjang yang didalamnyadituliskanoperasi assignment yang dimaksud • Contoh

  27. INPUT • Operasi input memberikansuatuvariabeldengannilai data yang diberikanoleh user/penggunaalgoritma • Operasi input disajikandalam flowchart menggunakanjajargenjangdenganpanahkecilmasukdarisamping • Isidarijajargenjangadalahvariabel yang diinisialisasi • Contoh

  28. OUTPUT • Operasi Output menampilkannilai data variabelataupesankepada user dalamalgoritma • Output disajikandalam flowchart menggunakanjajargenjangdenganpanahkecilkeluardarisamping • Isidarijajargenjangadalahvariabelataupesan yang hendakditampilkan • Contoh

  29. CONTOH • Algoritmamenentukanakar-akarpersamaankuadrat ax2 +bx + c =0

  30. OPERASI KONDISIONAL (BERSYARAT) • Operasibersyaratmenetukanaliranalgoritmaberdasarkansyarattertentu • Digunakanuntukkasus If .. Then … atau while.. Do • Dilambangkandenganbelahketupatdenganujikondisididalamnya • Contoh:

  31. CONTOH • Algoritmamencariakar-akarpersamaan ax2 + bx + c = 0

  32. LATIHAN • PR 4 dan 5 • Sajikanalgoritmaberikutdalambentuk flow chart • Menentukanjenissegitigaberdasarkanpanjangsisia,b,c (diketahuisisiterpanjangadalah c) • Menentukannilaidalamhuruf (A, B, C, D, E) darinilaiangkaskala 0-100

  33. OPERASI LOOP (PERULANGAN) • Perulanganmengindikasikanadanyaoperasi yang dilakukansecaraberulangselamakondisidipenuhi • Contohstrukturperulangan : WHILE … DO • Direpresentasikandalam flowchart dengantandabelahketupat yang didalamyaterdapatkondisisyarat. Padaduaujung yang lain terdapatalurkemanajikasyaratdipenuhidantidakdipenuhi. • Prosesdidalamperulanganbisaterdiridarisatuoperasiataulebih yang diakhiridenganpanahkembalikeatasuntukmemeriksakembalisyarat

  34. OPERASI LOOP (PERULANGAN) • Contoh

  35. OPERASI PERULANGAN • Strukturperulangan : FOR … TO … DO

  36. Buat Flowchart untukmenentukanalgoritmaberikut PR NO 6, 7, 8 • Menentukannilai 2n (Gunakan while do) • Buat flowchart untuksoalnomer 1 dan 3

  37. ALGORITMA REKURSIF • Rekursi • Operasirekursiadalahoperasi yang didefinisikandengandirinyasendiri

  38. ALGORITMA REKURSIF • Setiapoperasirekursiygdidefinisikanbiasanyaterdiridari: • Base case (kasus basis): • Kasus basis merupakankasus yang paling sederhanadarioperasirekursif yang dapatlangsungmendapatkanhasil • Recursive case (kasusrekursi) • Kasusrekursimembawasuatupermasalahkepermasalahan yang lebihsederhanaataulebihkecilruanglingkupnyadarimasalahawal • Padaakhirnyakasusrekursimembawapermasalahnkekasusbasisnya

  39. ALGORITMA REKURSIF • Ingatcaramenentukan n! denganstrukturperulangan?? • n!= n(n-1)(n-2)…1 • Kita dapatdefinisikandenganalgoritmarekursi: • Karena (n-1)(n-2)…(2)(1) = (n-1)! • n! = n(n-1)!, for n > 0 (recursive case) • n! = 1 for n = 0 (base case)

  40. ALGORITMA REKURSIF • Jadiuntuk n! dapatdidefinisikansebuahalgoritma • AlgoritmaRekursi(n) • if n=0 then output 1 • else output n*Rekursi(n-1)

  41. ALGORITMA REKURSIF • Tentukan output Hitung (10) darialgoritmaberikut: (1) AlgoritmaHitung(n) (2) If n=0 then output 0 (3) else output 2+Hitung(n-1) (1) AlgoritmaHitung(n) (2) If n=1 then output 2 (3) Else output 2*Hitung(n-1)

  42. ALGORITMA REKURSIF • AlgoritmaHitung(a,b) • if a<=1 then Output 1 • else if b<=1 then Output 2 • else Output Hitung(a-2,b)+Hitung(a,b-2); TentukanhasilHitung(4,6) • AlgoritmaUlang(n) • if n=0 then Output 1 • else if n=1 then Output 1 • else If (n mod 2)=0 then OutputUlang(n-1)+2*Ulang(n-2) • else Outputulang(n-1)-ulang(n-2); TentukanUlang(6)

  43. Algoritma REKURSIF • BuatlahAlgoritmaRekursiuntukmenentukan • Deret 1+4+9+16+… • Sukuke n daribarisan: 1, 6, 11, 16, … • Sukuke-n daribarisan : 2, 6, 18, 54, … • Sukuke-n dariBarisanfibonacci: 1, 2, 3, 5, 8, ….

More Related