p3 Running Time

24
Analisa Algoritma Konsep Algoritma

description

Running time

Transcript of p3 Running Time

  • Analisa Algoritma

    Konsep Algoritma

  • Deskripsi Materi ini membahas tentang running

    time

  • Tujuan Instruksional Khusus (TIK) Menjelaskan efisiensi algoritma Menjelaskan pengukuran running time

  • Efisiensi Algoritma ? Mengukur jumlah sumber daya (time dan space)

    yang diperlukan oleh sebuah algoritma Waktu yang diperlukan (running time) oleh sebuah

    algoritma cenderung tergantung pada jumlah inputyang diproses. Running time dari sebuah algoritma adalah

    fungsi dari jumlah inputnya Selalu tidak terikat pada platform (mesin + OS),

    bahasa pemrograman, kualitas kompilator atau bahkan paradigma pemrograman (mis. Procedural vs Object-Oriented)

  • Pengukuran running time

    Running time dari suatu algoritma berbeda-beda bergantung pada input yang diberikan. Dengan demikian pengukurannya dihitung sebagai fungsi dari besarnya input yang diberikan.

  • Efisiensi Algoritma : Faktor yang berpengaruh Kecepatan

    Banyak Langkah Tipe Data Operator

    Space Alokasi memory

  • Input Size Menggunakan notasi n Contoh sorting, input size menyatakan

    banyaknya bilangan yang disorting Digunakan untuk menganalisa eksekusi

    suatu algoritma Menghitung banyaknya operasi dasar yang

    digunakan: Every case Worst case Average case Best case

  • Ex : Tipe data Integer

    250 + 17 = Real

    250.0 + 15.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 tipedata dasar tidak terlalu signifikan.

    Yang perlu diperhatikan adalah banyaknyaoperasi aritmatika dan logika yang dilakukan.

  • OperatorOperator aritmatika : +,-,*,/,^,div,modOperator 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 sejenisOperator : H x H Hx = 2

  • Banyaknya langkah algoritma Banyak langkah dalam suatu algoritma

    dinyatakan dengan banyaknya operasiaritmatika 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)

  • SequensialStatement 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 0x = 0y = 1 1 operationn = x+yBuilt in subroutine call mempunyai waktu tempuh 1Sin(x) 1 opSin(x*pi/1000) 3 op

  • Branching /percabanganIf (kondisi)

    Then statement s1Else statement s2

    contohJika n(kondisi) = waktu tempuh kondisi 2 op

    n(s1) = waktu tempuh statement s1 5 opn(s2) = waktu tempuh satement s2 3 op

    Makawaktu tempuh = n(kondisi) + max(n(s1),n(s2))

    = 2 + 5= 7

  • LoopFor 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 diulangsebanyak

    jika integer

    jika non integer

    1

    stepawalakhir

    kalistep

    awalakhir

    t

  • Misalnya waktu tempuh untuk statement tersebut adalah Ts, maka waktu tempuhdengan loop tsb adalah t*Ts.

    Waktu tempuh untuk control loop adalaht*1.

    Jadi waktu tempuh untuk loop tersebutadalah t * Ts + t = t (Ts+1)

  • Contoh 1for i 2 to 30 step 5

    x x+1 Ts=2y x+y

    Berapa waktu tempuhnya ?

    T = t (Ts+1) = 6 (2+1) = 18

    65

    230

    t

  • Contoh 2n=20for i 2 to 2*n step 5

    x x+1y x+y

    Berapa waktu tempuhnya ?

    Waktu tempuh perkalian 2*n T2*n = 1Jadi waktu tempuhnya = T = 24 + 1 = 25

    85

    240

    t

    Tfor = t (Ts+1)= 8 (2+1)

    = 24

  • Contoh 3for i1 to 10

    x x+1 1 opif x>=1 then

    x x-2 2 op y x^2 max(2,1) op

    elsey x+y 1 op

  • Contoh : statement tergantung nilai varfor i1 to 10

    x x+1for j1 to i

    y x+yx x+1

    endforendfor

    iiti

    1

    11

    Tfor(j) = ti (Ts+1) = i (2+1) = 3i

    T(i) = 1+3i+1 = 2+3i

    T = =

    10

    1)(

    iiT

    10

    1)32(

    ii

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

  • Latihan lagifor i1 to 10

    x x+1for ji to 10

    y x+yx x+1

    endforendfor

    Tfor(i) = ti (Ts+1) = (10-i+1) * (2+1) = (10-i+1)*3 = (11-i)*3

    T(i) =1+(11-i)*3+1= 35-3i

    T = = 350 - 3 * * 10 * (10+1) =185

    10

    1)(

    iiT

  • Latihan : T(n) = ?for i1 to 10

    x x+1for j1 to i

    y x+yendfor

    Endfor

  • Latihan : T(n) = ?for i1 to n

    x x+1for ji to n

    y x+yendfor

    Endfor

  • Latihan : T(n) = ?for i1 to n2

    x x+1for ji+1 to 2n

    y x+yx x+1

    endforEndfor

  • Latihan : T(n) = ?for i1 to 2n

    x x+1for j1 to i+1

    y x+yx x+1

    endforEndfor