1.2. Menilai Sebuah Algoritma
Oleh : Fahrorozi
Ketika
manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk
memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita
memilih mana yang terbaik di antara teknik-teknik itu. Hal ini sama juga dengan
algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan
logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana
algoritma yang terbaik?
Beberapa
persyaratan untuk menjadi algoritma yang baik adalah:
• Tingkat kepercayaannya tinggi (realibility).
Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
• Pemrosesan yang efisien (cost rendah). Proses
harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek
mungkin.
• Sifatnya general. Bukan sesuatu yang hanya
untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih
general.
• Bisa dikembangkan (expandable). Haruslah
sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement
yang ada.
• Mudah dimengerti. Siapapun yang melihat, dia
akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan
membuat susah di-maintenance (kelola).
•
Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di
berbagai platform komputer.
• Precise (tepat, betul, teliti). Setiap
instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan
demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada
bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah
harus jelas dan pasti.
Contoh:
Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
• Jumlah langkah atau instruksi berhingga dan
tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan
tertentu meskipun datanya berbeda.
• Efektif. Tidak boleh ada instruksi yang tidak
mungkin dikerjakan oleh
pemroses
yang akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi
sempurna.
Instruksi di atas tidak efektif, agar efektif
instruksi tersebut diubah.
Misal:
Hitung akar 2 sampai lima digit di belakang koma.
• Harus
terminate. Jalannya algoritma harus ada kriteria berhenti.
Pertanyaannya
adalah apakah bila jumlah instruksinya berhingga maka
pasti
terminate?
• Output yang dihasilkan tepat. Jika
langkah-langkah algoritmanya logis
dan
diikuti dengan seksama maka dihasilkan output yang diinginkan.
Tidak ada komentar:
Posting Komentar