Anda di halaman 1dari 9

Kompleksitas Algoritma

Model abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan
compiler apapun.
Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini
adalah Kompleksitas Algoritma.

Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas
ruang.
Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan
untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n.
Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang
terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.
Kompleksitas waktu dibedakan atas 3 macam, yaitu :
Kompleksitas waktu untuk kasus terburuk (worst case)
kebutuhan waktu maksimum
rumus Tmax (n).
Kompleksitas waktu untuk kasus terbaik (best case)
kebutuhan waktu minimum
rumus Tmin(n).
Kompleksitas waktu untuk rata-rata (average case)
kebutuhan waktu secara rata-rata
rumus Tavg(n).
Kriteria-kriteria algoritma yang baik dan benar Menurut Bapak "Analisis Algoritma"
Donald Ervin Knuth adalah :
Input
Program minimal harus memiliki nol input atau lebih dari pengguna. Setiap program pasti memiliki
input. Yang dimaksud dengan memiliki nol input berarti program tidak mendapat masukan data dari
pengguna secara langsung, namun semua data akan digunakan oleh program yang sudah
dideklarasikan di dalam kode program yang akan dieksekusi. Jadi tidak perlu diinputkan dari luar.
Sedangkan mendapat input dari pengguna, data bisa dimaksukkan melalui program.

Output
Program minimal harus memiliki 1 output. Setiap program pasti memiliki output karena program
dibuat untuk tujuan tertentu. Output program bisa berbentuk file, video, teks, dll, atau disimpan di
clipboard yang kemudian digunakan di program lain atau disimpan dalam basis data.

Finite (Terbatas)
Program yang dibuat harus pasti dan terbatas. Suatu program yang dieksekusi haruslah berhenti
dan selesai, bukan harus berjalan terus-menerus hingga hang up atau not responding, dan ujung-
ujungnya harus di-kill atau dimatikan dengan paksa. Suatu program dapat mengalami infinite
(tak terbatas) karena kesalahan dari programmer. Walau sistem operasi tidak terbatas (infinite),
tetapi sistem operasi juga akan mati jika komputer di shutdown.
Define (Pasti)
Suatu program harus jelas arah dan tujuannya. Program harus jelas kapan mulai dan kapan berakhir, apa
tujuannya, dan memiliki logika yang jelas agar dapat menghasilkan uotput yang sesuai dengan yang diinginkan.
Efisien
Program harus efisien, artinya program tidak memakan banyak memori, tidak melakukan hal-hal yang tidak perlu.
Kenapa? Karena setiap program akan memakan waktu untuk eksekusi. Jika melakukan hal-hal yang tidak perlu,
bukan tidak mungkin program tesebut akan lelet.
Bubble sort adalah metode pengurutan dengan cara melakukan penukaran data dengan tempat
sebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi
perubahan.

Seletion sort adalah metode sorting dimana elemen di perbandingkan satu persatu sampai pada
elemen terakhir dan disusun berdasarkan ketentuan-ketentuan berlaku (terbesar atau terkecil).

Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data
menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition exchange sort.
Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data, kemudian
elemen-elemen data akan diurutkan diatur sedemikian rupa, sehingga nilai variabel Sementara
berada di suatu posisi ke I yang memenuhi kondisi sebagai berikut : Semua elemen di posisi ke 1
sampai dengan ke I-1 adalah lebih kecil atau sama dengan Sementara dan Semua elemen di posisi
ke I+1 sampai dengan ke N adalah lebih besar atau sama dengan Sementara.

Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk
memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk
ditampung dalam memori komputer karena jumlahnya yang terlalu besar. Algoritma pengurutan
data merge sort dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah
kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali.
Kompleksitas Waktu Algoritma
Pengelompokkan Algoritma Berdasarkan
waktu Asimtotik
O(1)
waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan.
O(log n)
laju pertumbuhan waktunya berjalan lebih lambat dari pada pertumbuhan n. Algoritma yang termasuk kelompok ini adalah algoritma yang
memecahkan persoalan besar dengan mentransformasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran sama
(misalnya algoritma pencarian biner).
O(n)
Algoritma yang waktu pelaksanaanya lancar umumnya terdapat pada kasus yang setiap elemen masukannya dikenai proses yang sama,
misalnya algoritma pencarian berurutan.
O(n log n)
waktu pelaksanaan yang n log n terdapat pada algoritma yang memecahkan persoalan menjadi beberapa persoalan yang lebih kecil,
menyelesaikan tiap persoalan secara independen dan menggabung solusi masing-masing persoalan.
O(n2)
Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalan yang berukuran kecil.
O(n3)
Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap masukan dalam tiga buah kalang bersarang, misalnya algoritma
perkalian matriks.
O(2n)
Algoritma yamg tergolong kelompok ini mencari solusi persoalan secara brute force.
O(n!)
Seperti halnya pada algoritma eksponensial, algoritma jenis ini memproses setiap masukan dan menghubungkan dengan n -1 masukan
lainnya.
Gambar : Grafik kelompok algoritma dengan kompleksitas waktu.

Anda mungkin juga menyukai