Menurut Donald Ervin Knuth, tang dikenal dengan Bapak "Analisis Algoritma", algoritma yang baik dan benar harus memiliki kriteria-kriteria berikut ini:
- Input
- Output
- Finite
- Definite
- Efisien
1. Input
Algoritma memiliki nol input atau lebih dari pengguna. Setiap algoritma pasti memiliki input. Yang dimaksud dengan nol input dari pengguna adalah bahwa algoritma tidak mendapatkan masukan dari pengguna, tapi semua data inputan yang digunakan algoritma tidak dari pengguna secara langsung, namun semua data yang akan diproses sudah dideklarasikan oleh algoritma terlebih dahulu. Sebagai contoh sebuah algoritma menghitung 100 bilangan genap yang pertama tidak memerluakan input dari pengguna karena sudah diketahui bahwa banyaknya bilangan genap adalah 100. Berbeda jika algoritm tersebut digunakan untuk menghitung n bilangan genap pertama, dengan nilai n dari pengguna. Berarti ada masukan dari pengguna yaitu n.
2. Output
Algoritma minimal harus memiliki 1 output. Tujuan dari algoritma adalah memberikan penyelesaian dari suatu permasalahan dengan langkah-langkah tertentu. Penyelesaian itulah output dari algoritma yang dimaksud. Output dapat berupa apa saja, teks, file, video, suara, dan lain-lain atau suatu nilai yang disimpan untuk digunakan algoritma lain atau disimpan di basis data.
3. Finite (Terbatas)
Algoritma yang baik haruslah mempunyai langkah-langkah terbatas, yang berakhir pada suatu titik di mana algoritma itu akan berhenti dan menghasilkan suatu output. Algoritma tidak boleh berjalan terus –menerus tanpa titik henti, hingga menyebabkan hang atau not responding jika diterapkan pada komputer. Ketika sebuah algoritma berjalan terus menerus (infinite), maka ini mengindikasikan ada kesalahan yang dibuat oleh programmer dalam mengembangkan algoritma.
4. Define (Pasti)
Makna dari langkah logis pada definisi algoritma terdahulu tercermin dari langkah-langkah yang pasti, tidak ambigu atau bermakna ganda. Suatu program harus mempunyai arah dan tujuan yang jelas ,kapan mulai dan kapan berakhir. Dalam menyusun langkah-langkah dalam algoritma perlu dihindari kata-kata seperti secukupnya, beberapa, sesuatu, sebentar, lama, atau kata lain yang tidak terukur dengan pasti. Pemberian nomor pada algoritma dapat membantu pengguna mengikuti setiap langkah dengan pasti hingga mencapai akhir dari algoritma, yaitu solusi dari permasalahan.
5. Efisien
Program menghasilkan output yang benar, itu wajib. Tapi bagaimna jika output yang benar itu dilakukan dengan waktu yang lama padahal ada algoritma lain yang lebih cepat? Hal ini menunjukkan bahwa setiap algoritma, khususnya jika sudah diterapkan pada pemrograman, mempunyai waktu eksekusi (running time). Algoritma disebut efisien jika untuk mendapatkan suatu solusi tidak memerlukan memori yang banyak, proses yang berbelit-belit dan tidak perlu. Jika algoritma terlalu banyak melakukan hal-hal yang tidak perlu akan menyebabkan waktu eksekusi menjadi lebih lama.
algoritma itu dipakai buat apa sih gan sebenarnya? saya masih kurang paham, bisa dibuat artikel algoritma itu untuk apa? dan manfaat penggunaan algoritama
ReplyDeleteniatnya mau belajar ini cuman pu s i ng :v
ReplyDeletemalah jadi pusing serius dah :v
ReplyDeletemantab thx for info
ReplyDeletewah mamtab suhu pemyajian nya lengkap ane jd tau apa itu algoritma thanks gan
ReplyDeleteakhirnya paham juga penyajian algoritama
ReplyDeletepelajaran yg bikin pusing algoritma :v
ReplyDeleteMau belajar algoritma disini aja dah
ReplyDeletemantap gan artikel nya
ReplyDeleteKalo gaada kriteria diatas bakal jadi seperti apa itu algoritma gan?
ReplyDeletePembahasan yang lengkap bang, makasih atas info yang bermanfa'at ini.
ReplyDeleteSelain input dan output ternyta msih harus phami lgi yg lainnya.. Artikel ny bermanfaat min izin share
ReplyDeleteThanks bro infonya
ReplyDeleteagak mumet juga ya algoritma itu, makasih gan sudah diberi infonya biar lumayan paham sekarang
ReplyDeletejadi ini toh dasarnya algoritma
ReplyDeletePenhetahuan baru nih seputar algoritma...
ReplyDeleteIni nih dasar-dasar buat yang suka dengan pemrograman. Saya akan rekomendasikan ke ade saya yang suka programming
ReplyDeleteOwh, Ane Baru Tahu Gan Thanks Infonya
ReplyDeleteMantap gan. blognya elegan
ReplyDeletemantap gan,,, saya coba gan
ReplyDeleteOh Maksih Gan saya akan Coba
ReplyDeleteYang paling susah dipahami itu ini wkwk
ReplyDeleteWaah Mantep Gan Penjelasannya, Jadi Kalau Ada Tugas Algoritma Bisa Lihat Disini Penjelasannya :D
ReplyDeletePost a Comment