Anda di halaman 1dari 9

Kompleksitas Algoritma

Materi 3
Sifat-sifat algoritma Adalah :
 Algoritma memiliki input yang berasal dari himpunan
tertentu
 Setiap input dari algoritma selalu akan menghasilkan output.
 Sejumlah langkah yang dilakukan selalu terdefinisi dengan
baik.
Ciri-ciri algoritma yang baik adalah
 Harus benar dan dapat dikembangkan lebih lanjut
 Harus efektif dan effisien. Keefektifan dari suatu algoritma
diukur dari berapa jumlah waktu dan ruang (space) memori
yang dibutuhkan untuk menjalankan. Algoritma yang efektif
adalah algoritma yang meminimumkan kebutuhan waktu
dan ruang yaitu bergantung pada ukuran masukan, yang
secara khas adalah jumlah data yang diproses
 Besaran yang dipakai untuk menerangkan model abstrak
pengkuran waktu/ruang ini adalah kompleksitas
algoritma.
Kompleksitas Waktu
 Kompleksitas waktu diukur dari jumlah
operasi yang dilakukan oleh suatu
algoritma pada saat menerima input
dengan ukuran tertentu.
 Operasi-operasi yang digunakan untuk
mengukur kompleksitas waktu dapat
berupa :
 Operasi perbandingan.
 Operasi penjumlahan.
 Operasi pengisian nilai (assigment).
 Operasi perkalian.
 Operasi pembagian.
 Operasi pengaksesan elemen larik (array).
 Serta operasi dasar lainnya.
Kompleksitas waktu dapat dibedakan atas tiga macam :
 1. : kompleksitas waktu untuk waktu kasus
terburuk (worst case)
 yaitu waktu maksimum yang dibutuhkan untuk
mengeksekusi algoritma sebagai fungsi dari n.
 2. : kompleksitas waktu untuk waktu kasus terbaik
(best case)
 yaitu waktu minimum yang dibutuhkan untuk mengeksekusi
algoritma sebagai fungsi dari n.
 3. : kompleksitas waktu untuk waktu kasus rata-
rata (average case
 yaitu waktu rata-rata yang dibutuhkan untuk mengeksekusi
algoritma sebagai fungsi dari n. Untuk kasus rata-rata
ini,biasanya dibuat andaian/asumsi bahwa semua barisan
masukan bersifat sama. Misalnya, pada persoalan pencarian
diandaikan bahwa data yang dicari mempunyai peluang
yang sama untuk terletak di dalam larik.
 Definisi :
 Jika dan adalah fungsi dari bilangan
bulat atau bilangan real ke himpunan
bilangan real, maka kita dapat
menyatakan sebagai jika terdapat
konstanta dan sedemikian sehingga
untuk .
 Teorema 1:
Bila adalah polinom derajad m maka
 Teorema 2:

Misalkan dan , maka, c adalah tetapan


Big-O Notation
 Big-O suatu algoritma dapat ditentukan dengan
salah satu dari 2 cara dibawah ini :
 Jika kompleksitas waktu dari algoritma diketahui,
maka big-O dapat langsung ditentukan dengan
mengambil suku yang mendominasi fungsi T dan
menghilangkan koefisiennya. Cara ini bersesuain
dengan teorema 2.
 Menghitung setiap instruksi di dalam algoritma
dengan menurunkan kompleksitas waktu terburuk
dari suatu algoritma, kemudian menerapkan
teorema Big-O.
 Pengisian nilai (assigment), perbandingan, operasi
aritmetik, read, write membutuhkan waktu O(1).
 Pengaksesan elemen larik atau memilih field tertentu dari
sebuah record membutuhkan waktu O(1).
Big-O Notation
 If C then S1 else S2, membutuhkan waktu
yang dalam hal ini adalah kompleksitas
waktu C, S1, dan S2
 Kalang for. Kompleksitas waktu kalang for
adalah jumlah pengulangan dikali dengan
kompleksitas waktu badan (body) kalang.
 While C do S dan repeat S until C. Untuk
kedua buah kalang, kompleksitas waktunya
adalah jumlah pengulangan dikali dengan
kompleksitas waktu badan C dan S.
 Prosedur dan fungsi. Waktu yang dibutuhkan
untuk memindahkan kendali ke rutin yang
dipanggil adalah O(1).
 Untuk fungsi/prosedur rekursif, digunakan
teknik perhitungan kompleksitas dengan
relasi rekurens.
Kompleksitas Ruang

 Besarnya kompleksitas ruang diukur dari


memori yang digunakan oleh struktur data
yang terdapat di dalam algoritma (seperti
telah dijelaskan diatas) ditentukan oleh
banyaknya langkah yang digunakan dan
jenis variabel atau data yang dipakai dalam
suatu algoritma. Sehingga diharapkan
dapat memperkirakan seberapa besar
memori yang diperlukan selama proses
berlangsung hingga diperoleh
penyeleaiannya.

Anda mungkin juga menyukai