Penyajian Algoritma Yang Baik

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.

Komentar