Anda di halaman 1dari 17

ALGORITHM

2
Analysis Algorithm
Dahlia Widhyaestoeti, S.Kom
dahlia.widhyaestoeti@gmail.com
dahlia74march.wordpress.com
Analysis Suatu Algoritma

Studi yang menyangkut analis algoritma ada 2 hal :

1. Perbandingan dari waktu perhitungan (running time)


2. Banyaknya memory (storage) yang digunakan
1. Waktu Tempuh

Proses dari suatu algoritma di dalam mencari solusi dari suatu masalah
memerlukan waktu tertentu. Satuan waktu yang dibutuhkan diharapkan dalam
waktu yang relatif singkat (efisien).

Hal-hal yang mempengaruhi waktu tempuh adalah :


Banyaknya langkah :
Makin banyak langkah atau instruksi yang digunakan maka makin lama
waktu tempuh yang dibutuhkan dalam proses tersebut.

Besar dan jenis input data


Ukuran atau besar serta jenis input yang digunakan akan sangat
berpengaruh pada proses perhitungan. Jika jenis data yang diinginkan adalah
tingkat ketelitian tunggal (single precision) maka waktu tempuhnya relatif
lebih cepat apabila digunakan data dengan tingkat ketelitian ganda (double
precision). Demikian pula halnya jika dibandingkan dengan data-data yang
triple precision ataupun quadruple precision.
1. Waktu Tempuh

Jenis Operasi
Jenis operasi tersebut meliputi operasi aritmatika, operasi nalar atau logika
dll.

Komputer dan kompilator


Faktor ini diluar dari rancangan atau pembuatan algoritma yang efisien.
Walaupun algoritma yang dibuat sudah mencapai waktu tempuh yang sangat
efisien (dengan memperhatikan 3 hal diatas) namun bila digunakan komputer
yang berkemampuan lambat maka waktu tempuhnya akan menjadi lebih
lambat. Kompilator yang digunakan juga akan berpengaruh terhadap waktu
tempuh suatu algoritma.

Bandingkan waktu tempuh suatu algoritma bila digunakan (dijalankan


dengan) mesin-mesin dengan jenis : Pentium, Atom, Core, AMD, i7
Mengapa kita memerlukan algoritma yang efisien? Lihat
grafik dibawah ini.
2. Jumlah Memori yang digunakan

Banyaknya langkah yang digunakan dan jenis variabel atau data


yang dipakai dalam suatu algoritma akan mempengaruhi
penggunaan memori.

Dalam hal ini diharapkan dapat memperkirakan seberapa banyak


kebutuhan memori yang diperlukan selama proses berlangsung
hingga diperoleh penyelesaiannya.

Dengan demikian dapat disiapkan storage yang memakai agai


proses dari suatu algoritma berlangsung tanpa ada hambatan
(kekurangan memori).
Kompleksitas Waktu (Time Complexity)

Definisi 1
Kompleksitas waktu adalah sebuah fungsi F(N) yang diberikan untuk waktu
tempuh dan atau kebutuhan storage dengan ukuran N input data.

Definisi 2
F(N) merupakan “big oh” dari G(N) dengan notasi F(N) = 0 (G(N)) jika dan
hanya jika terdapat 2 buah konstanta bulat positif C dan N0 sedemikian
sehingga | F(N) | ≤ C | G(N) | untuk setiap N ≥ N0

Definisi 3
F(N) merupakan “omega” dari G(N) dengan notasi F(N) = Ω (G(N)) jika dan
hanya jika terdapat dua buah konstanta positif C dan M sedemikian
sehingga | F(N) | ≥ C | G(N) | untuk setiap N ≥ M.

Definisi 4
F(N) merupakan “tetta” dari G(N) dengan notasi F(N) = (G(N)) jika dan
hanya jika terdapat dua buah konstanta positif C1, C2 dan M sedemikian
sehingga C1 |G(N)| ≤ | F(N) | ≤ C2 | G(N) | untuk setiap harga N ≥ M.
Kompleksitas Waktu (Time Complexity)
Kompleksitas Waktu (Time Complexity)

Contoh
Tentukan algoritma dari maslah penjumlahan 2 buah matriks dengan ukuran
(mxn) yang elemen-elemenya adalah bilangan riil...!

Penyelesaian
Algoritma dari penjumlahan 2 buah matrik yang berukuran (mxn), yaitu :
(1) Nyatakan A[i,j], B[i,j], C[i,j] real
(2) Untuk i ← 1 sampai dengan m kerjakan
(3) Untuk j ← 1 sampai dengan n kerjakan
(4) C(i,j) ← A[i,j] + B[i,j]
(5) Akhir j
(6) Akhir i
Kompleksitas Waktu (Time Complexity)

Contoh
Tentukan algoritma dari maslah penjumlahan 2 buah matriks dengan ukuran
(mxn) yang elemen-elemenya adalah bilangan riil...!

Analisisnya:
Jenis operasi yang digunakan adalah operator tambah
Banyaknya operasi tambah yang dilakukan adalah mn kali
Banyaknya memori yang digunakan :
Variabel yang digunakan adalah variabel berindex dengan dimensi 2
dan bertipe variabel real dengan tingkat ketelitian tunggal maka
banyaknya memori yang dibutuhkan untuk satu variabel adalah 4mn
byte. Jadi banyak memori seluruhnya yang digunakan adalah sebesar
12mn byte memori.
Fungsi F(m,n) = 13mn merupakan fungsi dari waktu tempuh dan
memori yang digunakan oleh algoritma tersebut.
(i) Operasi pengisiau nilai (j um La he--O, k~l,
j urn l ahe=j um l ah+a [k], k~k+l, dan r~jumlah/n)
Jl1111lal1 seluruh operasi peugisian nilai adalah
t1 = 1 + 1 + n + 11 + 1 = 3 + 211

(ii) Operasi penjumlahan (j umlah+a [ k], dank+ 1)


Jumlah seluruh operasi penjumlahan adalah
f2 = 11 + 11 = 211

(iii) Operasi pembagian (j umlah/ n)


Jumlah seluruh operasi pembagian adalah
ts = 1

Total kebutuhan waktu algoritma Hi tungRerata:

t= ti + t2 + t3 = (3 + 211)a + Zub + c detik


Kompleksitas Waktu Asimptotik

• Tinjau T(n) = 2,i2 + 6n + 1

Perbandingan perrumbuhan T(11) dengan 112

'L
11 T(11) = 2ni + 611 + 1 11
10 261 100
100 2061 1000
1000 2.006.001 1.000.000
10.000 2.000.060.001 1.000.000.000

• Uuruk II yang besar, pertumbuhan T(11) sebanding dengan 112.


Pada kasus ini, T(n) tumbuh seperti n2 rumbuh.

• T(n) tumbuh seperti ri2 nunbuh saat n bertambah. Kita


katakan bahwa T(n) berorde 112 dan kita ruliskan

T(11) E 0(112)
Notasi "O" disebut notasi "0-Besar" (B;g-0) yang merupakan
notasi kompleksitas waktu asimptotik.

DEFINISI. T(n) E O(f(n)) (dibaca "T(n) adalah O(f(n)" yang


artinya T(n) berorde paling besar f(n) ) bila terdapat konstanta
dan n0 sedemikian sehingga

T(n) < C(f (n))

untuk n > no.

f{n) adalah batas lebih atas (upper bounds dari T(n) untuk n yang
besar.
Tunjukkan bahwa T(n) = 2n2 + 6n + 1 E O(n2).

Penyelesaian:
? ?
2n- + 6n + 1 E O(n-)

karena

? ? ? ') ')
Zn' + 6n + 1 :5 Zn" + Gn' + n: = sn: untuk semua n > 1 ( C =9
dan n0 = 1).

atau karena

2n2 + 6n + 1 < n2 + n2 + n2 = 3n2 untuk semua n > 6 ( C =3


dan n0 = 6).

Anda mungkin juga menyukai