Kompleksitas Algoritma Kompleksitas Waktu

2.2. Kompleksitas Algoritma

Sebuah permasalahan dapat diselesaikan dengan berbagai algoritma. Sebagai contoh masalah pengurutan data, ada banyak algoritma pengurutan data sortir yang dapat digunakan untuk masalah pengurutan data tersebut. Sebuah algoritma yang baik tidak saja harus benar, tetapi juga harus efisien. Tingkat keefisienan sebuah algoritma diukur dari waktu eksekusi algoritma time complexitykomplesitas waktu dan kebutuhan ruang space memori. Algoritma yang efisien adalah algoritma yang meminimalkan kebutuhan waktu ekseskusi program dan kebutuhan ruang memori Cormen et al, 2001. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan n, yang menyatakan jumlah data yang diproses. Keefisienan algoritma dapat digunakan untuk menilai algoritma yang paling baik dari sejumlah algoritma penyelesaian masalah yang ada. Dengan menggunakan besaran kompleksitas wakturuang algoritma, kita dapat menentukan laju peningkatan wakturuang yang diperlukan algoritma dengan meningkatnya ukuran masukan n. Menghitung kebutuhan waktu algoritma dengan mengukur waktu sesungguhnya dalam satuan detik ketika algoritma dieksekusi oleh komputer bukan cara yang tepat, dikarenakan alasan sebagai berikut : 1. Setiap komputer dengan arsitektur berbeda mempunyai bahasa mesin yang berbeda yang berarti waktu setiap operasi antara satu komputer dengan komputer lain tidak sama. 2. Kompiler bahasa pemrograman yang berbeda menghasilkan kode mesin yang berbeda yang berarti waktu setiap operasi antara satu kompiler dengan kompiler lain tidak sama.

2.3. Kompleksitas Waktu

Kompleksitas waktu, Tn, diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Jumlah tahapan komputasi dihitung dari berapa kali suatu operasi dilaksanakan di dalam sebuah algoritma sebagai fungsi ukuran masukan n Cormen et al, 2001. Di dalam sebuah algoritma terdapat bermacam jenis operasi: Universita Sumatera Utara a Operasi bacatulis b Operasi aritmetika +, -, , c Operasi pengisian nilai assignment d Operasi pengakasesan elemen larik e Operasi pemanggilan fungsiprosedur f Dan lain-lain. Dalam hal kompleksitas waktu yang dihitung adalah jumlah operasi khas tipikal yang mendasari suatu algoritma. Untuk algoritma pengurutan, operasi khas yang dimaksud adalah perbandingan elemen dan pertukaran elemen. Kompleksitas waktu dibedakan atas tiga jenis, yakni : 1. T max n : kompleksitas waktu untuk kasus terburuk worst case, kebutuhan waktu maksimum. 2. T min n : kompleksitas waktu untuk kasus terbaik best case,kebutuhan waktu minimum. 3. T avg n: kompleksitas waktu untuk kasus rata-rata average case, kebutuhan waktu secara rata-rata.

2.4. Kompleksitas Waktu Asimptotik