Search for Knowledge
“A mistake is a signal that it is time to learn something new, something you didn’t know before.”

Kompleksitas Waktu

Algoritma

Istilah algoritma pertama kali diperkenalkan oleh seorang ahli matematika yaitu Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi.
Yang dimaksud dengan algoritma adalah : Urutan dari barisan instruksi untuk menyelesaikan suatu masalah. Adapun algoritma dapat dinyatakan dalam bentuk : Flow chart, Diagram alur, Bahasa Semu,
Sedangkan secara bahasa, algoritma berarti suatu metode khusus untuk menyelesaikan suatu masalah yang nyata (dari Webster Dictionary)

Dari suatu permasalahan yang akan diselesaikan, bisa terjadi terdapat lebih dari satu algoritma
Dalam memilih algoritma yang terbaik yang dapat digunakan, harus diperhatikan beberapa kriteria-kriteria tersebut antara lain :

  • Efektif dan Efisien
  • Jumlah langkahnya berhingga
  • Berakhir
  • Ada Output
  • Terstruktur

Sebuah masalah dapat mempunyai banyak algoritma penyelesaian. Contoh : masalah pengurutan (sort), ada puluhan algoritma penurutan
Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus(efisien)
Algoritma yang bagus adalah algoritma yang mangkus(Efisien)
Kemangkusan algoritma diukur dari waktu(time) eksekusi algoritma dan kebutuhan ruang (space) memori.

Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses.
Kemangkusan Algoritma dapat digunakan untuk menilai algoritma yang bagus dari sejumlah algoritma penyelesaian masalah

Adapun langkah-langkah yang dilakukan dalam proses penyelesaian masalah dengan bantuan komputer adalah sebagai berikut :

Studi Tentang Algoritma
Hal-hal yang akan dipelajari mengenai studi algoritma yaitu :

  1. Bagaimana Merencanakannya
  2. Bagaimana Menyatakannya
  3. Bagaimana Validitasnya
  4. Bagaimana Menganalisisnya
  5. Bagaimana Menguji suatu Program
  • Merencanakan Algoritma
    Merupakan suatu studi tentang teknik variasi desing(model)

-Menyatakan Algoritma
Menyatakannya dengan singkat, dibuat dalam bahasa pemrograman yang terstruktur, misalnya Pascal, C

  • Validitas Algoritma
    Memenuhi kebutuhan yang diinginkan dan perhitungannya/solusinya selalu benar untuk semua kemungkinan input yang legal.
  • Menganalisis Algoritma
    Perbandingan dari waktu perhitungan dan banyaknya storage/memory yang digunakan (efisiensi)
  • Menguji suatu program
    Pengujian suatu program yang dilakukan dalam dua fase, yakni :

Fase Debugging :
proses dari eksekusi program yang mengkoreksi kesalahan dalam bahasa pemrograman (logic & sintax)
Fase Profiling :
a. Program sudah benar
b. Melihat/mengukur waktu tempuh & storage

Analisis Algoritma
Sebagaimana studi tentang algoritma, maka faktor yang sangat diperhitungkan adalah faktor efisiensi, yang meliputi :

a. Waktu tempuh (Running time)

  • Banyaknya langkah
  • Besar dan jenis input data
  • Jenis operasi
  • Jenis komputer dan kompilator

b. Jumlah memori yang dipakai

Dalam hal menganalisis algoritma, dikenal istilah kompleksitas.
Kompleksitas adalah : sebuah fungsi F(N) yang diberikan untuk waktu tempuh dan / atau kebutuhan storage dengan ukuran N input data
Kompleksitas ini dapat berupa kompleksitas waktu & memory

Kompleksitas Waktu

Kompleksitas waktu dibedakan atas tiga macam :

Tmax(n) : Komplesitas waktu untuk kasus terburuk (worst case).

  • Kebutuhan waktu maksimum

Tmin(n) : Kompleksitas waktu untuk kasus terbaik (best case)

  • Kebutuhan waktu minimum

Tavg(n) :Kompleksitas waktu untuk kasus rata-rata (average case)

  • Kebutuhan waktu secara rata-rata