10/22/2015 Bab 2: The Analysis Framework Analisis Algoritma: Agenda. • The Analysis Framework Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition, Pearson Education, Inc., Addison-Wesley • • • • Measuring an Input’s Size Unit for Measuring Running Time Order of Growth Worst-Case, Best-Case, and Average-Case Efficiency Fakultas Teknologi dan Desain 1-1 Informatika Program Studi Teknik Analisis Algoritma | The Analysis Framework • Dibutuhkan framework (kerangka kerja) untuk melakukan analisa tingkatan efisiensi sebuah algoritma. • Efisiensi algoritma: time efficiency dan space efficiency. • Kapasitas penyimpanan yang dibutuhkan algoritma tidak terlalu diperhatikan. • Beberapa kasus, peningkatan efisiensi algoritma sisi time efficiency lebih tinggi peningkatan efisiensi algoritma sisi space efficiency. Analisis Algoritma | 3 2 The Analysis Framework Measuring an Input’s Size. • Pada umumnya, ukuran input dan waktu proses saat algoritma bekerja adalah berbanding terbalik. • Pemilihan parameter sangat penting. Sebagai contoh, memilih parameter n untuk ukuran input algoritma. • Contoh kasus: Menetukan ukuran input untuk proses perkalian n × n matrik. Analisis Algoritma | 4 1 10/22/2015 The Analysis Framework • Dalam kasus ini terdapat 2 pengukuran input alami: The Analysis Framework • Latihan 1. 1. berdasarkan ukuran matrik berorde; 2. berdasarkan banyaknya lemen matrik berorde n yang saling dikalikan; Kasus: Algoritma pengujian menentukan bilangan prima dari suatu deret bilangan bulat positif (positive integer). Problem: (1) Bagaimanakah menentukan mekanisme pengukuran ukuran input dalam operasi penentuan bilangan prima suatu deret bilangan bulat positif antara 1 – 10?; (2) Tuliskan dalam bentuk pseudocode algoritmanya! • Pemilihan ukuran matrik yang sesuai dapat mempengaruhi operasi algoritma. • Contoh kasus lainnya: Algoritma pengujian ejaan. Problem: Bagaimana menentukan mekanisme untuk mengukur ukuran input algoritma pengujian ejaan (spell-checking algorithm)? Analisis Algoritma | 5 The Analysis Framework 6 The Analysis Framework • Mengukur waktu proses dalam hal ini adalah mengukur efisiensi algoritma dari sisi waktu pengolahan. • Pendekatan yang memungkinkan adalah dengan menghitung banyaknya jumlah operasi algoritma (basic operation) yang dieksekusi. • Bagaimana caranya menentukan basic operation sebuah algoritma? • Analisa dilakukan berdasarkan banyaknya jumlah operasi basic operation algoritma dieksekusi pada input berukuran n. Unit for Measuring Running Time. • Mengapa perlu dilakukan? Karena kecepatan pengolahan komputer bergantung kepada: (1) kualitas algoritma yang diterapkan dalam program; (2) kemampuan compiler dalam menghasilkan machine code; dan (3) tingkat kesulitan menyamakan waktu (cloaking) dengan waktu aktual program bekerja. • Secara sederhana dapat menggunakan unit pengukuran waktu proses standar; second, milisecond, microsecond dan lainnya. • Pengukuran apakah yang dimaksudkan? Analisis Algoritma | Analisis Algoritma | 8 Analisis Algoritma | 9 2 10/22/2015 The Analysis Framework • Analisis tersebut dapat dinyatakan dengan: The Analysis Framework • Contoh kasus: Menghitung jumlah proses program Problem 1: Berapakah jumlah proses yang dibutuhkan oleh sebuah algoritma pada sebuah komputer untuk mengeksekusi sebuah program? Dimana: cop = waktu eksekusi basic operation algoritma pada komputer tertentu; C(n) = banyaknya jumlah kebutuhan operasi yang akan diekseskusi; T(n) = banyaknya waktu operasi yang dibutuhkan oleh mesin untuk mengeksekusi algoritma yang diterapkan pada sebuah program. Analisis Algoritma | Problem 2: Bagaimanakah kecepatan proses algoritma pada sebuah komputer untuk mengeksekusi sebuah program jika komputer yang digunakan ditingkatkan kemampuannya hingga 10 kali lipat dari sebelumnya? 10 Analisis Algoritma | The Analysis Framework • Latihan 11 The Analysis Framework Order of Growth. Problem 3: Berdasarkan problem 2, hitunglah banyaknya jumlah 1 kebutuhan operasinya jika diasumsikan 𝐶(𝑛) = 2 𝑛2! Problem 4: Berdasarkan problem 3, tentukan banyaknya waktu operasi yang dibutuhkan oleh komputer untuk mengeksekusi algoritma yang diterapkan pada sebuah program 𝑇(𝑛) jika inputnya ditingkatkan menjadi 2 kali lipat! Analisis Algoritma | 12 • Analisis ini menekankan pada jumlah peningkatan ukuran input. • Mengapa penting? • Contoh kasus: Euclid’s algorithm. Problem 1: Jika setiap kali operasi yang dilakukan pada algoritma Euclid diasumsikan sebagai 1 operasi, berapa jumlah operasi yang dibutuhkan untuk menyelesaikan gcd(12,8)? Analisis Algoritma | 13 3 10/22/2015 The Analysis Framework • Latihan The Analysis Framework Worst-Case, Best-Case, and Average-Case Efficiencies. Problem 2: Berdasarkan problem 1, jika setiap nilainya ditingkatkan ukurannya sebanyak 5 kali, berapa jumlah operasi yang dibutuhkan untuk menyelesaikan operasi tersebut? • Worst-Case efficiency: algoritma beroperasi dengan waktu terlama untuk semua kemungkinan input berukuran n. • Best-Case efficiency: algoritma beroperasi dengan waktu tercepat untuk semua kemungkinan input berukuran n. Problem 3: Berdasarkan problem 2, tentukan nilai 𝐶(𝑛) dan 𝑇(𝑛) jika 1 𝐶(𝑛) = 2 𝑛2! Analisis Algoritma | • Average-Case efficiency: algoritma yang digunakan untuk mengukur nilai rerata efisiensi yang dihasilkan oleh worst-case efficiency dan best-case efficiency. 14 Analisis Algoritma | 15 Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition, Pearson Education, Inc., Addison-Wesley 1-16 4