Karakteristik apa yang perlu diperhatikan dalam algoritma?
Algoritma dapat diibaratkan seperti jantung dari ilmu komputer. Karena algoritma adalah hal yang sangat penting bagi ilmu komputer. Algoritma diambil dari nama ilmuwan muslim Abu Ja'far Muhammad bin Musa Al-Khwarismi pada tahun (780-846M). Algoritma yaitu langkah-langkah untuk menyelesaikan sebuah masalah yang disusun secara sistematis dan harus bersifat logis.
Algoritma dapat dikatakan baik jika:
-
Algoritma itu bernilai benar. Artinya, algoritma harus memberikan output yang dikehendaki dari sejumlah masukan yang benar.
-
Harus selalu memperhatikan hasil yang keluar dari algoritma
-
Efisiensi algoritma. Jika ingin menyelesaikan suatu permasalahan, pasti setiap orang mempunyai algoritma nya sendiri-sendiri. Tetapi walaupun begitu, semua mengharapkan apa yang dihasilkan suatu algoritma itu sama.
-
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.
-
Recise (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.
-
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.
-
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.
Dan beberapa keuntungan dari algoritma yaitu:
-
Pembuatan algoritma tidak tergantung pada bahasa pemrograman tertentu
-
Notasi algoritma dapat diterjemahkan ke berbagai bahasa pemrograman
-
Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama
Algoritma juga memiliki beberapa karakteristik. Diantaranya yaitu:
-
Algoritma harus tidak ambigu. Deskripsi algoritma harus bermakna tunggal. Langkah-langkah dalam algoritma harus dideskripsikan dengan tafsiran atau makna tunggal. Oleh sebab itu, sebuah bahasa pemograman seperti pascal sering digunakan untuk menuliskan algoritma, sehingga langkah-langkah yang dituliskan hanya mempunyai tafsiran atau makna tunggal, terutama menurut komputer.
-
Algoritma harus tepat. Algoritma harus menyatakan dengan jelas kapan akan berhenti dan kapan akan meneruskan ke langkah selanjutnya
-
Algoritma harus pasti. Hasilnya harus sama jika ada dua serangkaian langkah yang sama
-
Algoritmaa harus berhingga. Serangkaian kata algoritma harus dapat dilaksanakan pada rentang waktu tertentuJelas.
- Algoritma harus menyatakan urutan langkah-langkahnya dengan jelas. Kapan sebuah langkah x atau langkah y dilakukan atau kapan berhenti dari sebuah langkah untuk melanjutkan ke langkah berikutnya.
Sedangkan, kriteria algoritma menurut Donald E. Knuth ialah :
-
Input (masukan)
Sebelum dijalankan, algoritma memiliki nol atau lebih input (masukan) yang diberikan kepada algoritma.
-
Output (keluaran)
Algoritma harus memiliki minimal satu buah output keluaran.
-
Definitess (kepastian)
Setiap langkah algoritma harus dinyatakan atau didefinisikan dengan tepat dan tidak mengakibatkan makna ganda
-
Finiteness (keterbatasan)
Setelah melakukan sejumlah langkah proses, algoritma harus berakhir.
-
Effectiveness (tepat dan efisien)
Algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Sumber:
(https://id.wikipedia.org/wiki/Algoritme)
(http://algoritma-program.blogspot.co.id/2015/02/algoritma-dan-pemrograman_28.html)
(
)