Kriteria Analisis Program Algoritma

PC 1 GHz, bahasa pemrograman yang dikompilasi memproses sepuluh kali lebih cepat daripada yang interpretasi, kode program yang “rapi” akan 30 lebih cepat daripada yang “tidak rapi”, dan sebagainya. Akan tetapi, algoritma yang lebih efisien akan menghasilkan kecepatan yang sebanding dengan ukuran masukannya. Selain itu, menganalisis efisiensi algoritma dapat juga dengan menunjukkan analisis worst case. Analisis worst case menentukan waktu eksekusi terlama keadaan terburuk suatu algoritma. Misalnya, pencarian dalam sebuah daftar list, maka worst case-nya, objek yang dicari ditemukan tidak ditemukan dengan melewati seluruh daftar tersebut. Analisis worst case berguna karena bagaimanapun, waktu eksekusi algoritma tidak mungkin lebih lambat daripada batasan yang ditetapkan. Algoritma dengan worst case yang “baik”, waktu eksekusinya akan selalu lebih “cepat”.

2.1.3 Kriteria Analisis Program

Beberapa hal yang harus diperhatikan dalam menganalisis algoritma : 1. Kebenaran Correctness Ada tiga hal yang dipertimbangkan dalam membuktikan kebenaran suatu algoritma. Sebelum menentukan apakah algoritma tersebut adalah benar, harus dipahami dengan jelas definisi tentang “benar”. “Benar” dapat diartikan sebagai masukan yang diharapkan dan keluaran yang dihasilkan untuk setiap masukan. Untuk membuktikan kebenaran suatu program, program yang besar dan kompleks dapat dibagi dalam beberapa modul kecil. Sehingga, jika dapat dibuktikan bahwa modul- modul kecil adalah benar, maka seluruh program juga benar. 2. Jumlah Operasi yang Dilakukan Amount of Work Done Ukuran jumlah operasi yang dilakukan dapat digunakan untuk membandingkan dua algoritma untuk masalah yang sama, sehingga dapat ditentukan algoritma yang lebih efisien. Akan lebih baik jika ukuran jumlah operasi dapat menandakan waktu eksekusi yang sebenarnya dari kedua algoritma yang dibandingkan, namun sebaiknya tidak menggunakan waktu eksekusi karena beberapa alasan. Pertama, kecepatan pemrosesan setiap komputer berbeda. Kedua, setiap gaya pemrograman bervariasi dalam menghitung jumlah instruksi yang dieksekusi oleh program. Untuk menentukan efisiensi suatu algoritma, maka pengukuran harus terlepas dari penggunaan komputer dan gaya pemrograman yang bervariasi. Maka, efisiensi suatu algoritma dapat diukur dengan menghitung jumlah operasi dasar yang dilakukan oleh algoritma tersebut. M isalnya, untuk menemukan x dalam daftar nama, maka operasi dasarnya adalah membandingkan x dengan setiap entri pada daftar tersebut. 3. Analisis Worst Case Jumlah operasi yang dilakukan tidak dapat digambarkan dengan sebuah nilai karena jumlah langkah tidak sama untuk setiap masukan. Misalnya, menyelesaikan dua belas sistem persamaan linier dapat menghemat pekerjaan jika banyak koefisiennya bernilai nol.Dengan demikian, yang harus dilakukan adalah menghitung ukuran masukan untuk sebuah masalah. Misalnya, untuk menemukan x dalam daftar nama, maka masukannya adalah jumlah nama yang ada dalam daftar tersebut.Namun, jika ukuran masukannya tetap, jumlah operasi yang dilakukan tergantung pada masukan tertentu. Dengan demikian, tingkah laku suatu algoritma dapat diga mbarkan sebagai kompleksitas worst case. 4. Optimal Optimality Untuk menganalisis suatu algoritma, biasanya selalu menggunakan kelas algoritma dan ukuran kompleksitas, misalnya, jumlah operasi dasar yang dilakukan. Sebuah algoritma disebut optimal untuk worst case jika tidak ada algoritma yang dapat melakukan operasi dasar yang lebih sedikit untuk worst case. 5. Lower Bound Untuk membuktikan bahwa suatu algoritma adalah optimal, tidak diperlukan menganalisis setiap algoritma. Dengan membuktikan teorema-teorema yang menentukan lower bound pada jumlah operasi yang diperlukan untuk menyelesaikan masalah, maka algoritma yang dapat melakukan jumlah operasi tersebut disebut optimal.

2.1.4 Analisis Program