Efisiensi Algoritma

  • Uploaded by: starky
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Efisiensi Algoritma as PDF for free.

More details

  • Words: 996
  • Pages: 8
Efisiensi

algoritma

à kecepatan(waktu) dan space memori • Faktor-faktor yg mempengaruhinya adalah : - Banyak langkah - Tipe data kecepatan - Operator-operator - Alokasi memori à space memori, berkaitan dgn * struktur data dinais * procedure/function call * recursif • Tipe Data - integer - real Dua nilai yg sama dgn operator yg sama tapi dgn variabel yg berbeda, maka terdapat perbedaan kecepatan/proses penyelesaiannya. Contoh : à 250 + 17 = 267 (lebih cepat dari) à 250.0 + 17.0 = 0.25*103 + 0.17*102 = 0.25*103 + 0.017*103 = (0.25+ 0.17)*103 = 0.267*103 = 267.0 • Operator Urutan penggunaan operator/penempatan operator bisa mempengaruhi efisiensi. Contoh perkalian (*) lebih lama daripada penjumlahan (+) • Tetapi dalam perkembangan teknologi, perbedaan penggunaan operator maupun tipe data dasar tidak terlalu signifikan. • Yang perlu diperhatikan adalah banyaknya operasi aritmatika dan logika yang dilakukan.

1

Operator aritmatika : +,-,*,/,^,div,mod Operator logika : AND,OR,NOT masing-masing 1. Operator adalah jika hasil perhitungannya termasuk dalam himpunan itu sendiri. 2 < 5 à bukan operator tapi konstanta logika karena tidak menghasilkan nilai yang sejenis Operator : H x H à H x = 2<5 x = True Tidak ada operation ( 0 operation) y=5 y = 5+0 à 1 operation y = 2+3*5 à 2 operation y = 3*5+2 à 2 operation • Banyak langkah dalam suatu algoritma dinyatakan dengan banyaknya operasi aritmatika dan logika yang dilakukan. Dengan demikian hal ini bergantung pada statement dan jenis algoritma : - sequensial - branching - looping - subroutine call (bisa memanggil prosedur dan bisa memanggil fungsi) Banyak langkah (waktu tempuh) + memori = kompleksitas waktu - Sequensial Statement s1 dgn banyak langkah n(s1) Statement s2 dgn banyak langkah n(s2) banyak langkah = n(s1)+n(s2) Assigment dgn konstanta mempunyai waktu tempuh 0 x=0 y=1 1 operation n = x+y Built in subroutine call mempunyai waktu tempuh 1

2

jika non integer Sin(x) à 1 op jika integer Sin(x*pi/1000) à 3 op - Branching (percabangan) If (kondisi) Then statement s1 Else statement s2 contoh Jika n(kondisi) = waktu tempuh kondisi à 2 op n(s1) = waktu tempuh statement s1 à 5 op n(s2) = waktu tempuh satement s2 à3 op Maka waktu tempuh = n(kondisi) + max(n(s1),n(s2)) =2+5 =7 - Loop For Loop For var ß awal to akhir step diff. Statement S(var) Statement S(var)

tidak tergantung var tergantung var

Jika statement dalam inner loop tidak bergantung pada var, maka statement tersebut diulang sebanyak  akhir − awal    kali step   t=   akhir − awal  + 1    step  

Misalnya waktu tempuh untuk statement tersebut adalah Ts, maka waktu tempuh dengan loop tsb adalah t*Ts. Waktu tempuh untuk control loop adalah t*1. Jadi waktu tempuh untuk loop tersebut adalah t * Ts + t = t (Ts+1) 3

2 op Ts = 2

max(2,1)

Contoh : 1. for i ß 2 to 30 step 5 x ß x+1 y ß x+y Berapa waktu tempuhnya ?  30 − 2  t= =6   5  T = t (Ts+1) = 6 (2+1) = 18 2. n=20 for i ß 2 to 2*n step 5 x ß x+1 y ß x+y Berapa waktu tempuhnya ? Looping à  40 − 2  t= =8  5   Tfor = t (Ts+1) = 8 (2+1) = 24 Waktu tempuh perkalian 2*n à T2*n = 1 Jadi waktu tempuhnya = T = 24 + 1 = 25 3. for iß1 to 10 x ß x+1 à 1 op if x>=1 then x ß x-2 y ß x^2 else 4

* * 000000000000000000000000000300040000000000000000000000000000000000000000000000000

y ß x+y à 1 op Berapa waktu tempuhnya ?

10 − 1 t= + 1 = 10   1  Waktu tempuh dlm percabangan = max(2,1) Ts = 1 + max(2,1) = 3 T = t (Ts+1) = 10 (3+1) = 40 Jika statement tergantung nilai var For var ß awal to akhir step diff S(var)  akhir − awal  T =  + Ts ( awal ) + Ts ( awal + step) + ... step    akhir − awal  + Ts ( awal +  step)  step  

Contoh : 1. for iß1 to 10 à x ß x+1 à1 for jß1 to i y ß x+y x ß x+1 endfor endfor Berapa waktu tempuhnya ?

 i − 1 ti =  +1 = i  1   Tfor(i) = ti (Ts+1) = i (2+1) = 3i Hidden 1 T(i) = 1+3i+1 = 2+3i 10

T=

∑ T (i) i =1

5

*

* 10

=

∑ (2 + 3i) i =1

10

∑2

10

3∑ i

= i =1 + i =1 = 20 + 3 * ½ * 10 * (10+1) = 185

2. for iß1 to 10 à t = 10 x ß x+1 à1 for jßi to 10 y ß x+y x ß x+1 endfor endfor Berapa waktu tempuhnya ?

10 − i  ti =  + 1 = 10 − i + 1   1  Tfor(i) = ti (Ts+1) = (10-i+1) * (2+1) = (10-i+1)*3 = (11-i)*3 Hidden 1 T(i) =1+(11-i)*3+1 = 35-3i 10

T=

∑ T (i) i =1

10

=

∑ (35 − 3i) i =1 10

10

∑ 35 − 3∑ i

i =1 = i =1 = 350 + 3 * ½ * 10 * (10+1) = 185

6

3. for iß1 to 10 x ß x+1 for jß1 to i y ß x+y endfor endfor Berapa waktu tempuhnya ? (T=130)

4. for iß1 to n x ß x+1 for jßi to n y ß x+y endfor endfor Berapa waktu tempuhnya ? (T(n)=n2+3n)

5. for iß1 to n2 x ß x+1 for jßi+1 to 2n y ß x+y x ß x+1 endfor endfor Berapa waktu tempuhnya ? (T(n)=-2n4+8n3+n2+1)

6. for iß1 to 2n x ß x+1 for jß1 to i+1 y ß x+y x ß x+1 endfor 7

endfor Berapa waktu tempuhnya ? (T(n)=6n2+15n+1)

8

Related Documents

Efisiensi Algoritma
November 2019 20
Algoritma
November 2019 46
Algoritma
November 2019 45
Algoritma
July 2020 28
Algoritma
November 2019 40
Algoritma
June 2020 31

More Documents from "Nerissa"

Optika (8)
November 2019 54
Indek
November 2019 55
Mestat_04
November 2019 44
Dinamika Partikel 2
November 2019 60
Psm I_00
November 2019 30
Peru Lang An
November 2019 31