1 / 71

Strategi Algoritma Kuliah 1 : Peran Algoritma

Strategi Algoritma Kuliah 1 : Peran Algoritma. E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan. Penghargaan.

hashim
Download Presentation

Strategi Algoritma Kuliah 1 : Peran 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. Strategi AlgoritmaKuliah 1 : Peran Algoritma E. Haodudin Nurkifli TeknikInformatika Universitas Ahmad Dahlan

  2. Penghargaan • Hand out kuliah Strategi Algoritma ini merupakan ringkasan dari berbagai sumber, yang berkaitan dengan Struktur dan analisis algoritma, Desain and Analisis Algorithm Komputer dari berbagai penjuru. Saya tidak mudah mengingat sumber-sumber tersebut. Namun saya sampaikan penghargaan yang setingginya atas jasa mereka, dan semoga bermannfaat.

  3. Konsep Dasar Algoritma + Struktur Data = Program Menurut Niclaus Wirth : Yang akhirnya ditulis dalam bukunya Efisien Space/memory Time/proses Engineering product

  4. Dalam menghasilkan PROGRAM sebagai engineering product dlm bidang informatika / komputer, terdapat apa yg dikenal dengan Timing Wild Software Schedule Secara umum Terdapat dua hal yaitu : • Man hour (waktu penyelesaian) • Costing (biaya)

  5. Costing Software Apa parameter biaya pengembangan software ? • Per bit / byte • Per statement • Per modul • Per baris • Per user interface • ?

  6. Apa yg ada pada berbagai alat berikut • Hand phone : antara HP yg satu dengan yg lain memiliki feature dan kinerja yg berbeda • Alat rumah tangga ke arah komputasi • Mesin cuci : pengontrolan dgn control panelnya • Otomotif • Tipe mobil baru dengan komputasi : pengaturan gas tanpa kabel, kopling, pengaturan bahan bakar • Pengaturan Lift gedung tinggi • De el el

  7. Apakah perbedaan unjuk kerja pada HP tersebut dibedakan atas besarnya media simpan yang ada? • Apakah kemampuan control panel pada berbagai alat rumah tangga memerlukan media simpan yg besar? • Apakah pengaturan otomasi pada mesin mobil bergantung pd kapasitas media simpan digitalnya? • Apakah otomasi pengaturan lift pada gedung tinggi membutuhkan media simpan digital yg besar?

  8. Struktur data ? Kapasitas Media simpan digitalnya ? Algoritma ? Programnya ? ……? Apa yg menentukan unjuk kerja mereka ?

  9. Peran Algoritma Dalam mengembangkan berbagai alat kebutuhan manusia ke arah komputasi yg lebih berperan adalah Algoritma Bukan Kemampuan / Kapasitas media simpan yg digunakan untuk menyimpan Struktur Data

  10. Lanjt Pengembangan Media simpan untuk struktur data Bersifat Vertikal Pengembangan Algoritma Bersifat Horisontal Horisontal : -Variatif dan fleksibel : terbuka untuk pengembangan / implementasi dalam semua bidang Vertikal : -Monoton, sekali ada yg mengembangkan ya sudah

  11. Lanjt Pengembangan Algoritma masih sangat terbuka untuk semua bidang kehidupan Pertanian Kesehatan Keamanan Pendidikan Manajemen …. ?

  12. Lanjt Mengembangkan Memperbaiki Meningkatkan implementasi Memahami Menjelaskan … ? Mendasari Analisis

  13. Algoritma ? • Algoritma • Resep urutan proses yg baik dan benar dalam bentuk langkah komputasi untuk menghasilkan sesuatu • Urutan proses • Langkah komputasi • benar • Menghasilkan sesuatu • Suatu cara spesifik untuk memecahkan dengan pasti suatu persoalan (Webster Dictionary)

  14. Program? • Program merupakan ekspresi / implementasi algoritma dalam bahasa pemrograman tertentu • Kumpulan perintah yang mana komputer akan menjalankannya dalam menyelesaikan masalah

  15. Beberapa aplikasi • Persoalan teknik Strategi algoritma dapat diaplikasikan/dicontohkan pada proses : • sorting • Searching • data retrieval • network routing • Games developing • Graph • dll

  16. Pelajaran Algoritma • How to devise algorithms • Bagaimana Merencanakan algoritma ? • How to express algorithms • Bagaimana menjelaskan algoritma • How to validate algorithms • Bagaimana memvalidasi algoritma • How to analyze algorithms • Bagaimana menganalisa algoritma • How to test a program • Bagaimana mengetes program

  17. Pentingnya menganalisa Algoritma • Perlunya mengenali batasan dari variasi algoritma untuk penyelesaian persoalan • Perlunya memahami relasi antara ukuran masalah dan running time • Kapankah running program dinyatakan tidak cukup bagus? • Perlunya mempelajari bagaimana menganalisa runing time suatu algortima tanpa coding • Perlunya mempelajari teknik menulis program yang lebih efisien • Need to recognize bottlenecks in code as well as which parts of code are easiest to optimize

  18. Mengapa kita mengalisa sesuatu? • Mengerti perilakunya, dan (Pekerjaan -- Memilih,performance / unjuk kerja, memodifikasi) • Meningkatkan kinerja (Research)

  19. Apa yang kita analisa atas algoritma? • Kebenarannya • Apakah relasi antara input dan ouput sesuai dengan kebutuhan algoritma? • Kuantitas pekerjaan yang dikerjakan(time complexity) • Operasi dasar untuk mengerjakan tugas • Jumlah space yg dibutuhkan • Memory yang digunakan(space/memory complexity)

  20. Lanjutan • Kesederhanaan, Kejelasan • Verifikasidan implementasi. • Optimalitas • Mungkinkah ia bekerja lebih baik?

  21. Contoh-Contoh Penerapan Algoritma • Kompresi file menggunakan Algoritma Huffman code (greedy algorithm) • Cryptanalys menggunakan Brucefource ( untuk memecahkan cipertext) • Jaringan komputer menggunakan algoritma Minimum Spaning Tree untuk menentukan harga minimum • SIG algoritma MST, Dynamic Programming, Color graphing

  22. PERTEMUAN CUKUP

  23. Kompleksitas • Kompleksitas algoritma adalah tingkat ke-komplek-an / ke-simple-an jumlah pekerjaan yang dikerjakan algortima untuk melaksanakan suatu pekerjaan tertentu

  24. Model RAM • Memiliki satu processor • Melaksanakan satu instruksi at a time • Setiap instruksi menyita "unit time“ • Memiliki operand ukuran tetap • Memiliki fixed size storage (RAM / virtual memory dan disk).

  25. Contoh 1: Operasi dasar Apa hasil dari operasi berikut (M div n)*n + (M mod n) = M+n (a) = M*n (b) = n2 (c) = M (d) = n (e)

  26. buatlah minimal 2 algoritma / prosedure / fungsi / pseudocode / program untuk melakukan pencarian (searching) suatu nilai x dalam array A, misalnya A=(7,3,5,9,4,2,6,8,1,0) 0 1 2 3 4 5 6 7 8 9 Contoh 2 : Linear Searching  PR

  27. Apa yg anda alami ? Hal tersebut merupakan salah satu contoh apa yang disebut Timing Wild Nampaknya sepele, namun diluar yang dibayangkan sebelumnya

  28. Ketemu :=false i:=0 While …… Do i:=i+1 If i<=9 then ketemu:=true else ketemu:=false ? (a) A[i]<> x (b) A[i]=x (c) A[i]=x and i<=9 (d) A[i]<>x and i<=9 (e) i<=9 and A[i]<>x Apa kontrol perulangan yg tepat digunakan untuk statement tsb : ?

  29. Any Question ?

  30. Contoh Algoritma

  31. Aparunning time dari algorithm berikut? PUZZLE(x) while x != 1     if x is even      then  x = x / 2      else x = 3x + 1 Sample run:  7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1

  32. The Selection Problem (1/2) • Problem: diberikan sekelompok n angka, ditentukan angka terbesar ke-k • Algoritma 1 • Simpan angka dalam array • Urutkan array secara descending • Hasil angka pada posisi k

  33. The Selection Problem(2/2) • Algoritma 2 • Simpan angka2, pertama kpada array • Urutkan array secara descending • Untuk setiap angka sisa, jika angka lebih besar dari angka ke-k,sisipkan angka tsb pd posisi yg benar pdarray • Hasil angka pada posisi k Mana algorithm yg lebih baik?

  34. Contoh: Algoritma Apa? I.I What is an Algorithm? Problem: Input adlh urutan bil integer yg disimpan dlm array. Outputnya adalah bil minimum. Algoritma INPUT m:= a[1]; for I:=2 to size of input if m > a[I] then m:=a[I]; return s OUTPUT instance 11 25, 90, 53, 23, 11, 34 m Data-Structure

  35. Definisi Masalah Problem: Deskripsi dari hubungan Input-Output Algoritma: Suatu urutan dari langkah computational yang memproses input menjadi output. Struktur Data: metode pengelolaan atas penyimpanan dan pengambilan/pengaksesan data. Our task: Diberikan suatu problem, rancangalah secara baik dan benar suatu algoritma yang menyelesaikan problem tersebut..

  36. Contoh Algoritma A Problem: Input adlh urutan dari integer yg disimpan dlm array. Outputnya adalah max Algorithm A Max:=Y[0]; For i:=1 to n-1 do 3 If Y[i]>max then max:=Y[i]

  37. Contoh Algoritma B Algoritma ini menggunakan 2 array temporary Max:=0; For i:= 0 to (n div 2)-1 do Begin If X[2*i]>X[(2*i)+1] then bantu:=X[2*i] else bantu:=X[(2*i)+1]; If bantu>Max then Max:=bantu end; If (n mod 2) = 1 then If Max<X[n-1] then Max:=X[n-1];

  38. Visualisasi Algoritma B 7 34 6 5 9 20 8 11 Loop 0 9 20 11 34 Loop 1 20 34 Loop 2 34

  39. Contoh Algoritma C For i:= 0 to (n div 2)-1 do If X[2*i]<X[(2*i)+1] then X[2*i]:=X[(2*i)+1]; For i:= 1 to (n div 2) do If X[i-1]>X[i] then X[i]:=X[i-1]; If (n mod 2) = 1 then If X[1]<X[n-1] then X[i]:=X[n-1];

  40. Contoh Algoritma D Untuk setiap elemen, test kondisinya minimum.

  41. Contoh Pemanfaatan 7 34 6 5 9 20 8 11 5 6 7 8 9 11 20 34 Mengurutkan input secara menaik. Hasil elemen pertama dari data terurut. black box Sorting

  42. Mana algoritma yg lebih baik? Semua algoritma benar, tetapi mana yang terbaik? • Mengukur running time (Jumlah operasi yg dibutuhkan). • Mengukur jumlah memori yg digunakan. • Catatan bahwa peningkatan dari running time algoritma sebagai peningkatan ukuran dari input .

  43. Apa yg kita perlukan? Kebenaran: kondisi penghitungan algoritma Solusi yg benar untuk semua hal Effisiensi : Resources yg dibutuhkan oleh algoritma 1. Time: Jumlah langkah. 2. Space: Jumlah memori yg dibutuhkan “Model” ukuran : Worst case, Average case and Best case.

  44. 4 Td(n) Tc (n) Running time (second) 2 0 Time vs. Ukuran Input Diukur dengan parameter jumlah input Algorihtma A,B,C di implementasikan dan dijalankan pada PC Algoritma D is implementasi-kan dan dijalankan oada supercomputer. Tb (n) Ta (n) 500 1000 Input Size

  45. Methods of Proof • Proof by Contradiction • Assume a theorem is false; show that this assumption implies a property known to be true is false -- therefore original hypothesis must be true • Proof by Counterexample • Use a concrete example to show an inequality cannot hold • Mathematical Induction • Prove a trivial base case, assume true for k, then show hypothesis is true for k+1 • Used to prove recursive algorithms

  46. Review: Induction • Suppose • S(k) is true for fixed constant k • Often k = 0 • S(n)  S(n+1) for all n >= k • Then S(n) is true for all n >= k

  47. Proof By Induction • Claim:S(n) is true for all n >= k • Basis: • Show formula is true when n = k • Inductive hypothesis: • Assume formula is true for an arbitrary n • Step: • Show that formula is then true for n+1

  48. Induction Example: Gaussian Closed Form • Prove 1 + 2 + 3 + … + n = n(n+1) / 2 • Basis: • If n = 0, then 0 = 0(0+1) / 2 • Inductive hypothesis: • Assume 1 + 2 + 3 + … + n = n(n+1) / 2 • Step (show true for n+1): 1 + 2 + … + n + n+1 = (1 + 2 + …+ n) + (n+1) = n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2 = (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2

  49. Induction Example:Geometric Closed Form • Prove a0 + a1 + … + an = (an+1 - 1)/(a - 1) for all a  1 • Basis: show that a0 = (a0+1 - 1)/(a - 1) a0 = 1 = (a1 - 1)/(a - 1) • Inductive hypothesis: • Assume a0 + a1 + … + an = (an+1 - 1)/(a - 1) • Step (show true for n+1): a0 + a1 + … + an+1 = a0 + a1 + … + an + an+1 = (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)

  50. Induction • We’ve been using weak induction • Strong induction also holds • Basis: show S(0) • Hypothesis: assume S(k) holds for arbitrary k <= n • Step: Show S(n+1) follows • Another variation: • Basis: show S(0), S(1) • Hypothesis: assume S(n) and S(n+1) are true • Step: show S(n+2) follows

More Related