32

Click here to load reader

Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

  • Upload
    ledang

  • View
    290

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Kompleksitas Waktu dan EfisiensiAlgoritma 2

Kompleksitas Waktu dan EfisiensiAlgoritma 2

wijanarto

Page 2: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Pengantar• Pada pertemuan sebelumnya sudah di bahas dasar

teoritis, alasan menentukan kompleksitas waktu suatualgoritma dalam bentuk fungsi g(n) , klasifikasinya sertacontoh-contohnya

• Dua bagian selanjutnya akan membicarakan standarperhitungan kompleksitas waktu dan efisiensialgoritma yang di dasarkan atas struktur dasaralgoritma, procedure atau function call baik secararekursi atau bukan

• Bebas Bahasa : untuk contoh dapat dalam bentukbahasa apapun atau notasi tertentu, yang di pandangadalah struktur algoritma, procedure call, rekursif

• Pada pertemuan sebelumnya sudah di bahas dasarteoritis, alasan menentukan kompleksitas waktu suatualgoritma dalam bentuk fungsi g(n) , klasifikasinya sertacontoh-contohnya

• Dua bagian selanjutnya akan membicarakan standarperhitungan kompleksitas waktu dan efisiensialgoritma yang di dasarkan atas struktur dasaralgoritma, procedure atau function call baik secararekursi atau bukan

• Bebas Bahasa : untuk contoh dapat dalam bentukbahasa apapun atau notasi tertentu, yang di pandangadalah struktur algoritma, procedure call, rekursif

Page 3: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

STRUKTUR PROGRAM (SP)

• Aturan dasar analisa terhadap SP akanmenyangkut banyak langkah, yang di pengaruhioleh :– Banyak operator yang di gunakan, asumsi 1 operator

adalah 1 langkah– Procedure

• Built-In atau User Define– Kontrol langkah

• Sekuensial (sequential)• struktur kondisi (conditional)• Perulangan (loop)

• Aturan dasar analisa terhadap SP akanmenyangkut banyak langkah, yang di pengaruhioleh :– Banyak operator yang di gunakan, asumsi 1 operator

adalah 1 langkah– Procedure

• Built-In atau User Define– Kontrol langkah

• Sekuensial (sequential)• struktur kondisi (conditional)• Perulangan (loop)

Page 4: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Operator dan Assignment

• Assignment boleh di hitung langkahnya,tergantung kesepakatan

• Aritmatika– Div, *,-,+, di hitung 1 langkah– Mod, Pemangkatan, di hitung 2 langkah

• Relasi– <,>,,,,=, dihitung satu langkah

• Logika– And, Or, Not, di hitung 1 langkah

• Assignment boleh di hitung langkahnya,tergantung kesepakatan

• Aritmatika– Div, *,-,+, di hitung 1 langkah– Mod, Pemangkatan, di hitung 2 langkah

• Relasi– <,>,,,,=, dihitung satu langkah

• Logika– And, Or, Not, di hitung 1 langkah

Page 5: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

PROCEDURE/FUNCTION CALL

• Pada bagian ini analisa lebih cenderung di pandangbagaimana suatu operasi di lakukan pada level bawah(low level), yaitu pada level pemroses melakukanoperasi secara mikro di prosesor dan hal ini jugatergantung pada compiler yang di pergunakan, apakahoptimasi dapat dilakukan/diberikan atau tidak.

• int x=5*3, dianggap 1 langkah, karena di dalamekspresi ada operator dan jumlahnya hanya 1 (*)

• int x=5*3+4, dianggap 2 langkah karena di dalamekspresi tersebut ada 2 operator (*,+), kalau didetailkan akan menjadi seperti int x=5*3;x=x+4.

• Pada bagian ini analisa lebih cenderung di pandangbagaimana suatu operasi di lakukan pada level bawah(low level), yaitu pada level pemroses melakukanoperasi secara mikro di prosesor dan hal ini jugatergantung pada compiler yang di pergunakan, apakahoptimasi dapat dilakukan/diberikan atau tidak.

• int x=5*3, dianggap 1 langkah, karena di dalamekspresi ada operator dan jumlahnya hanya 1 (*)

• int x=5*3+4, dianggap 2 langkah karena di dalamekspresi tersebut ada 2 operator (*,+), kalau didetailkan akan menjadi seperti int x=5*3;x=x+4.

Page 6: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

PROCEDURE/FUNCTION CALL

• Penggunaan built-in procedure/function adalah dianggap 1 langkah, misal ada pemanggilan sepertiberikut sin(x), maka di anggap 1 langkah atau sin(x*2)diangap 2 langkah

• Jumlah parameter pada built-in function jika lebih darisatu akan di hitung, misal, power(2,10) ada 2 langkah

• Untuk User Define procedure atau function akan dibahas pada bagian lain

• Karena melibatkan bentuk dari struktur dasar algoritmayang di pakai maka penentuan kompleksitasnya dirumuskan sendiri.

• Penggunaan built-in procedure/function adalah dianggap 1 langkah, misal ada pemanggilan sepertiberikut sin(x), maka di anggap 1 langkah atau sin(x*2)diangap 2 langkah

• Jumlah parameter pada built-in function jika lebih darisatu akan di hitung, misal, power(2,10) ada 2 langkah

• Untuk User Define procedure atau function akan dibahas pada bagian lain

• Karena melibatkan bentuk dari struktur dasar algoritmayang di pakai maka penentuan kompleksitasnya dirumuskan sendiri.

Page 7: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Contoh (pascal)FUNCTION Sinus(x) : real;BEGINFOR i : = 0 TO 1000IF i mod 2 = 0 THEN d:= 1ELSEd:= - 1;

jum:=jum + d * exp ((2 * i + 1) * ln(x)) div fakt (2 * i + 1);sinus := jum ;

END• Waktu tempuh = space + banyak langkah ????

FUNCTION Sinus(x) : real;BEGINFOR i : = 0 TO 1000IF i mod 2 = 0 THEN d:= 1ELSEd:= - 1;

jum:=jum + d * exp ((2 * i + 1) * ln(x)) div fakt (2 * i + 1);sinus := jum ;

END• Waktu tempuh = space + banyak langkah ????

Page 8: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Contoh (c)float sinus (x)for (i=0;i<=1000;i++)if (i%2==0) d=1;else

d= -1;jum=jum + d * exp((2 * i + 1) * ln(x)) /fakt(2 * i + 1)return jum;

• Waktu tempuh = space + banyak langkah ????

float sinus (x)for (i=0;i<=1000;i++)if (i%2==0) d=1;else

d= -1;jum=jum + d * exp((2 * i + 1) * ln(x)) /fakt(2 * i + 1)return jum;

• Waktu tempuh = space + banyak langkah ????

Page 9: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Contoh (notasi)

FUNCTION Sinus(x)RealFOR i0 TO 1000 DoIF (i mod 2 = 0) THEN d 1ELSE d -1

jumjum + d * exp ((2 * i + 1) *ln (x)) div fakt (2 * i + 1)jum

• Waktu tempuh = space + banyak langkah ????

FUNCTION Sinus(x)RealFOR i0 TO 1000 DoIF (i mod 2 = 0) THEN d 1ELSE d -1

jumjum + d * exp ((2 * i + 1) *ln (x)) div fakt (2 * i + 1)jum

• Waktu tempuh = space + banyak langkah ????

Page 10: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

SEKUENSIAL• Misal ada suatu statemen sebagai berikut,Statemen s1 dengan t1 langkahStatemen s2 dengan t2 langkahMaka banyak langkah statemen gabungannya adalah t1+t2 , atauS1 banyak langkah P1S2 banyak langkah P2S3 banyak langkah P3

. .

. .Sn banyak langkah PnTotal banyak langkah blok-blok statement tersebut

Si bisa berupa : assigment, procedure call, percentage, loop, dsb.

• Misal ada suatu statemen sebagai berikut,Statemen s1 dengan t1 langkahStatemen s2 dengan t2 langkahMaka banyak langkah statemen gabungannya adalah t1+t2 , atauS1 banyak langkah P1S2 banyak langkah P2S3 banyak langkah P3

. .

. .Sn banyak langkah PnTotal banyak langkah blok-blok statement tersebut

Si bisa berupa : assigment, procedure call, percentage, loop, dsb.

n

iiP

1

Page 11: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contoh

x x * y operasi 1 = 1y a * sin (x) operasi 1, proc 1 = 2read (b) proc 1 = 1write (x + y + b) proc 1, operasi 2 = 3

Banyak Langkah = 7

x x * y operasi 1 = 1y a * sin (x) operasi 1, proc 1 = 2read (b) proc 1 = 1write (x + y + b) proc 1, operasi 2 = 3

Banyak Langkah = 7

Page 12: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

PENCABANGAN/BRANCHING

if (k) then s1 else s2

k = expresi kondisi dengan banyak langkahS1,S2 = blok statement dengan banyak langkah

P1 dan P2

S1 dan S2 dapat berupa nested maupun cascadeif conditional atau berisi loop

if (k) then s1 else s2

k = expresi kondisi dengan banyak langkahS1,S2 = blok statement dengan banyak langkah

P1 dan P2

S1 dan S2 dapat berupa nested maupun cascadeif conditional atau berisi loop

Page 13: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

PENCABANGAN/BRANCHINGMisal :Expressi kondisi mempunyai k langkahS1 mempunyai P1 langkahS2 mempunyai P2 langkahmakaLangkah terburuk adalah k+max(P1,P2), danLangkah terbaik adalah k+min(P1,P2)Yang digunakan dalam menentukan banyak langkahdalam suatu pencabangan adalah kasus terburukyaitu k+max(P1,P2)

Misal :Expressi kondisi mempunyai k langkahS1 mempunyai P1 langkahS2 mempunyai P2 langkahmakaLangkah terburuk adalah k+max(P1,P2), danLangkah terbaik adalah k+min(P1,P2)Yang digunakan dalam menentukan banyak langkahdalam suatu pencabangan adalah kasus terburukyaitu k+max(P1,P2)

Page 14: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contoh

• Not ( P AND Q) mempunyai langkah sebanyak2

• Not (x > 0 AND y > 0) mempunyai langkahsebanyak 4

• C nk (nk) C = kombinasi

• Cnk O (nk) Ω (nk)

• Not ( P AND Q) mempunyai langkah sebanyak2

• Not (x > 0 AND y > 0) mempunyai langkahsebanyak 4

• C nk (nk) C = kombinasi

• Cnk O (nk) Ω (nk)

CnCn

k

k

n

lim

Page 15: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contoh

if x>0 then x : = x – 1y : = x + y

elsey : = x – y

• Banyak langkah kondisi I adalah 2• Banyak langkah kondisi II adalah 1• Kasus terjelek adalah k + max (P1, P2) = 1 + 2 = 3• Dengan demikian banyak langkah untuk

pencabangan diatas dihitung 3.

k +2

k +1

k

if x>0 then x : = x – 1y : = x + y

elsey : = x – y

• Banyak langkah kondisi I adalah 2• Banyak langkah kondisi II adalah 1• Kasus terjelek adalah k + max (P1, P2) = 1 + 2 = 3• Dengan demikian banyak langkah untuk

pencabangan diatas dihitung 3.

Page 16: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contohscanf(“%d”,&x); //1 langkahy=x+5; //1 langkah, s0=2if (x>0) //kondisi = 1

y=y-5;x=x-y; //s1 karena terletak dalam blok

//(ada 2 statemen) = 2 langkahelsex=abs(x);//s2 1 langkah

• Hasil analisisnya, banyak langkah dari kode diatas adalahs0=2,s1=2,s2=1,k=1, s0+k+max(s1,s2)=2+1+2=5 langkah

scanf(“%d”,&x); //1 langkahy=x+5; //1 langkah, s0=2if (x>0) //kondisi = 1

y=y-5;x=x-y; //s1 karena terletak dalam blok

//(ada 2 statemen) = 2 langkahelsex=abs(x);//s2 1 langkah

• Hasil analisisnya, banyak langkah dari kode diatas adalahs0=2,s1=2,s2=1,k=1, s0+k+max(s1,s2)=2+1+2=5 langkah

Page 17: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

LOOPING• Loop yang dapat di hitung hanya for loop, sedang while dan do

while atau repeat until mungkin tidak dapat di hitung karenamungkin dalam loop bentuk tersebut terdapat unpredictable inputyang menyebabkan kebocoran loop.

• Dengan demikian loop bentuk tersebut harus dapat di translasikanke dalam bentuk for loop

X tidak dapat di ketahui akan di baca berapa kali, sedang untuk for loopakan mudah di ketahui

For (i=awal i=akhir;i++)Input(i);i=i*5;Nilai i hanya bisa di gunakan dalam statemen di bawah for (bersifatlocal pada kalang for)Jadi for loop lebih mudah di analisis.

• Loop yang dapat di hitung hanya for loop, sedang while dan dowhile atau repeat until mungkin tidak dapat di hitung karenamungkin dalam loop bentuk tersebut terdapat unpredictable inputyang menyebabkan kebocoran loop.

• Dengan demikian loop bentuk tersebut harus dapat di translasikanke dalam bentuk for loop

X tidak dapat di ketahui akan di baca berapa kali, sedang untuk for loopakan mudah di ketahui

For (i=awal i=akhir;i++)Input(i);i=i*5;Nilai i hanya bisa di gunakan dalam statemen di bawah for (bersifatlocal pada kalang for)Jadi for loop lebih mudah di analisis.

Page 18: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

LOOPING

• Unpredicatble value dalam loop

x=5while(x>0)..Input(x)

do..Input(x)

while(x>0)

x=5while(x>0)..Input(x)

do..Input(x)

while(x>0)

Page 19: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

BENTUK FOR LOOPfor(i=awal;i=akhir;i++)

Step SStatemen(i)

iawal

Di MATLAB

I awal

t sign(s)

S>0

t*it*akhir

t1 t-1

N

Di MATLAB

I awal

t sign(s)

t*it*akhir

Page 20: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

atauiawal

S>0 T

iakhirY

t1+s

Statemen (i)

iakhir

iakhirend

TT

YY

Page 21: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Kasus 1Banyak Langkah untuk Statement FOR

Counter : integerStep : 1 = defaultStatement S mempunyai banyak langkah yang tidakbergantung nilai counterFOR counter : awal TO akhir atau for (awal;akhir;counter)

SS dieksekusi sebanyak akhir – awal +1 kaliNote :Counter ≤ Akhir , S dieksekusi sebanyak akhir – awal + 2 kaliCounter = counter + 1 , S dieksekusi sebanyak akhir – awal + 1 kali

Counter : integerStep : 1 = defaultStatement S mempunyai banyak langkah yang tidakbergantung nilai counterFOR counter : awal TO akhir atau for (awal;akhir;counter)

SS dieksekusi sebanyak akhir – awal +1 kaliNote :Counter ≤ Akhir , S dieksekusi sebanyak akhir – awal + 2 kaliCounter = counter + 1 , S dieksekusi sebanyak akhir – awal + 1 kali

Page 22: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

rumus

• Banyak Langkah :

(akhir – awal + 2) + (akhir – awal + 1) (p + 1)

p = banyak langkah dalam statement loop.

• Banyak Langkah :

(akhir – awal + 2) + (akhir – awal + 1) (p + 1)

p = banyak langkah dalam statement loop.

Page 23: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contohBerapa banyak langkah dariFOR i = 1 TO n

x : = x + 5y : = y + x

Penyelesaian :Langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)

= (n – 1 + 2) + (n – 1 + 1) (2 + 1)= (n + 1) + (n)(3)= n + 1 + 3n= 4n + 1

Berapa banyak langkah dariFOR i = 1 TO n

x : = x + 5y : = y + x

Penyelesaian :Langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)

= (n – 1 + 2) + (n – 1 + 1) (2 + 1)= (n + 1) + (n)(3)= n + 1 + 3n= 4n + 1

Page 24: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Kasus 2Dengan STEP = s

s dieksekusi sebanyak

atau ((akhir – awal) div s + 1)Rumus

1sawalakhir

s dieksekusi sebanyak

atau ((akhir – awal) div s + 1)Rumus

)1(12

psawalakhir

sawalakhir

Page 25: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contoh• Berapa banyak langkah dari• FOR i:= j TO n STEP 3• x := x + i• y := y + j

2sawalakhir

1sawalakhir (p + 1)+

• Berapa banyak langkah dari• FOR i:= j TO n STEP 3• x := x + i• y := y + j

2sawalakhir

1sawalakhir (p + 1)+

1213

23

jnjn

313

23

jnjn

33

.323

jnjn

33

.323

jnjn

53

4 jn )(5

34 nOjn

Pd (n) O (nd ) P = Polinomial, d = DerajatJadi,

Page 26: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

contoh• Berapa banyak langkah dari• FOR i = 0,5 TO 7,1 STEP 0,3• x := x + i• y := y + j

• (22 + 2) + (22 + 1) . 3• 24 + 23. 3• 24 + 69• 93

2sawalakhir

1sawalakhir (p + 1)+

• Berapa banyak langkah dari• FOR i = 0,5 TO 7,1 STEP 0,3• x := x + i• y := y + j

• (22 + 2) + (22 + 1) . 3• 24 + 23. 3• 24 + 69• 93

2sawalakhir

1sawalakhir

1213,05,01,72

3,05,01,7

313,06,62

3,06,6

Page 27: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Kasus 3 :S bergantung nilai Counter

FOR i = 1 TO nx : = x + yFOR j : = i TO n

y : = i + j

Outer Loop

Inner Loop

S = statement dalam outer loop

Inner LoopBanyak langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)

= ((n – i) + 2) + ((n – i) + 1) (1 + 1)= ((n – i) + 2) + ((n – i) + 1) . 2= ((n – i) + 2) + 2(n – i) + 2= 3 (n – i) + 4= 3n – 3i + 4

(P(i)) = Banyak Langkah dalam S + banyak langkah inner loop= 1 + 3n – 3i + 4= 3n – 3i + 5

Inner LoopBanyak langkah = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)

= ((n – i) + 2) + ((n – i) + 1) (1 + 1)= ((n – i) + 2) + ((n – i) + 1) . 2= ((n – i) + 2) + 2(n – i) + 2= 3 (n – i) + 4= 3n – 3i + 4

(P(i)) = Banyak Langkah dalam S + banyak langkah inner loop= 1 + 3n – 3i + 4= 3n – 3i + 5

Page 28: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Banyak langkah= (akhir – awal + 2) + (akhir – awal + 1) .s +

Rumus Outer Loop (Lanjutan)

((n – 1) + 2) + ((n – 1) + 1) .1 +2n + 1 +2n + 1 + 3n.n – 3. + 5.n2n + 1 + 3n2 - +5n4n + 2 + 6n2 – 3n2 - 3n + 10n3n2 + 11 n + 23n2 + 11n + 1 O (n2)

n

iiP

1

n

iin

1533

n

in

13

n

ii

13

n

i 15- +

121 nn

n

ii

1

((n – 1) + 2) + ((n – 1) + 1) .1 +2n + 1 +2n + 1 + 3n.n – 3. + 5.n2n + 1 + 3n2 - +5n4n + 2 + 6n2 – 3n2 - 3n + 10n3n2 + 11 n + 23n2 + 11n + 1 O (n2)

121 nn

n

ii

1

121 nn

nn23

23 2

Page 29: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

lanjutan

• FOR i : = awal TO akhir STEP s• S(i)•• Misal P(i) banyak langkah S(i) maka banyak

langkah loop tersebut

• Dimana

• FOR i : = awal TO akhir STEP s• S(i)•• Misal P(i) banyak langkah S(i) maka banyak

langkah loop tersebut

• Dimana

akhir

sawaliiP

sawalakhir

,3

akhir

sawaliiP

,

=P.awal + (P.awal+s) + (p.awal+2.s) +…+(p.akhir)

2

Page 30: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

TugasDiketahui :Read (x)y: = 0FOR i:= 1 TO nx:= x + yFOR j:= i + 1 TO n2

y:= y + i + jwrite (x,y)

write (x,y)

Tentukan T(n) = …. O (…)

Diketahui :Read (x)y: = 0FOR i:= 1 TO nx:= x + yFOR j:= i + 1 TO n2

y:= y + i + jwrite (x,y)

write (x,y)

Tentukan T(n) = …. O (…)

* **

***

Page 31: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Solusi Alternatif 1Penyelesaian :

Banyak langkah (*) = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)= (n2 – (i + 1) + 2) + (n2 – (i + 1) + 1) (2 + 1)= ( n2 – i – 1 + 2) + (n2 – i – 1 + 1) 3= n2 – i + 1 + 3n2 – 3i= 4n2 – 4i + 1

Penyelesaian :

Banyak langkah (*) = (akhir – awal + 2) + (akhir – awal + 1) (p + 1)= (n2 – (i + 1) + 2) + (n2 – (i + 1) + 1) (2 + 1)= ( n2 – i – 1 + 2) + (n2 – i – 1 + 1) 3= n2 – i + 1 + 3n2 – 3i= 4n2 – 4i + 1

Page 32: Kompleksitas Waktu dan Efisiensi Algoritma 2eprints.dinus.ac.id/8930/1/slide_5.pdf · algoritma dalam bentuk fungsi g(n ) , klasifikasinya serta contoh-contohnya "Dua bagian selanjutnya

Banyak langkah (*) = 2(akhir – awal) + 3 + p (akhir – awal + 1)= 2 (n2 – (i + 1)) + 3 + 2 (n2 – (i + 1) + 1)= 2 (n2 – i – 1) + 3 + 2 (n2 – i )= 2n2 – 2i – 2 + 3 + 2n2 – 2i= 4n2 – 4i + 1

Banyak langkah (**) = 2 + Banyak langkah (*)= 2 + 4n2 – 4i + 1= 4n2 – 4i + 3

Banyak langkah (***) = 2 (akhir – awal) + 3 + +(akhir-awal +1)

= 2 (n – 1) + 3 + +(akhir-awal +1)

= 2n – 2 + 3 + + +(akhir-awal +1)

= 2n + 1 + 4n2 . n – 4. + 3. n +(akhir-awal +1)= 4n3 + 5n + 1 – 2n2 – 2n +(akhir-awal +1)= 4n3 – 2n2 + 3n +1 +(akhir-awal +1)

Banyak Langkah Program = T(n) = 3 + Banyak langkah (***)= 3 + 4n3 – 2n2 + 3n + 1= 4n3 – 2n2 + 3n + 44n3 – 2n2 + 3n + 4 O (n3)

(akhir-awal + 2) + (akhir – awal + 1) (p + 1) = 2(akhir – awal) + 3 + p (akhir – awal + 1)

akhir

sawaliiP

,

Banyak langkah (*) = 2(akhir – awal) + 3 + p (akhir – awal + 1)= 2 (n2 – (i + 1)) + 3 + 2 (n2 – (i + 1) + 1)= 2 (n2 – i – 1) + 3 + 2 (n2 – i )= 2n2 – 2i – 2 + 3 + 2n2 – 2i= 4n2 – 4i + 1

Banyak langkah (**) = 2 + Banyak langkah (*)= 2 + 4n2 – 4i + 1= 4n2 – 4i + 3

Banyak langkah (***) = 2 (akhir – awal) + 3 + +(akhir-awal +1)

= 2 (n – 1) + 3 + +(akhir-awal +1)

= 2n – 2 + 3 + + +(akhir-awal +1)

= 2n + 1 + 4n2 . n – 4. + 3. n +(akhir-awal +1)= 4n3 + 5n + 1 – 2n2 – 2n +(akhir-awal +1)= 4n3 – 2n2 + 3n +1 +(akhir-awal +1)

Banyak Langkah Program = T(n) = 3 + Banyak langkah (***)= 3 + 4n3 – 2n2 + 3n + 1= 4n3 – 2n2 + 3n + 44n3 – 2n2 + 3n + 4 O (n3)

akhir

sawaliiP

,

n

iin

1

2 344

n

in

1

24

n

ii

14

n

i 13

121 nn