Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Analisa Algoritma Running Time Pertemuan ke-1 Semester genap 2014

Presentasi serupa


Presentasi berjudul: "Analisa Algoritma Running Time Pertemuan ke-1 Semester genap 2014"— Transcript presentasi:

1 Analisa Algoritma Running Time Pertemuan ke-1 Semester genap 2014
Heru Cahya Rustamaji, S. Si. MT

2 Deskripsi Materi ini membahas tentang running time

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

4 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 input yang 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)‏

5 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.

6 Analisa Algoritma: How?
Bagaimana jika kita menggunakan jam? Jumlah waktu yang digunakan bervariasi tergantung pada beberapa faktor lain: kecepatan mesin, sistem operasi (multi-tasking), kualitas kompiler, dan bahasa pemrograman. Sehingga kurang memberikan gambaran yang tepat tentang algoritma Wall-Clock time CPU time Process 1: Process 2: Process 3: Idle: Wall-Clock time

7 Kecepatan Space Efisiensi Algoritma : Faktor yang berpengaruh
Banyak Langkah <- Input Size Tipe Data <- Integer vs float Operator <- + vs * Space Alokasi memory

8 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

9 Operasi dasar, Contoh Berikut ini beberapa contoh operasi dasar yang biasa digunakan sebagai ukuran kompleksitas suatu algoritma tertentu:

10 Running time

11 Actual running time Untuk N = 100, waktu sebenarnya adalah 0.011 detik
pada sebuah komputer. Perkirakan waktu sebenarnya untuk input lebih besar: T(N) = cN 2T(10N) = c(10N)2 = 100cN 2 = 100T(N)‏ Input diperbesar dengan kelipatan 10 artinya running time akan membesar dengan kelipatan 100. Untuk N = 1000, perkiraan running time adalah 1.11 detik. (waktu sebenarnya 1.12 detik). Untuk N = 10,000, perkiraan 111 detik (= actual).

12 Running Time: on different machines
Algoritma Kubik pada mesin Alpha at 533 Mhz menggunakan C compiler (mewakili mesin yang cepat)‏ Algoritma Linear pada mesin Radio Shack TRS-80 Model III (a 1980 personal computer with a Z-80 processor running at 2.03 Mhz) using interpreted Basic (mewakili mesin lambat)‏

13 Operator 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  Tidak ada operation ( 0 operation)‏ x = True  Tidak ada operation ( 0 operation)‏ y = 5  Tidak ada operation ( 0 operation)‏ y = 5+0  1 operation y = 2+3*5  2 operation y = 3*5+2  2 operation

14 Banyaknya langkah algoritma
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)‏

15 Sequensial Statement s1 dgn banyak langkah n(s1)‏
banyak langkah = n(s1)+n(s2)‏ Assigment dgn konstanta mempunyai waktu tempuh 0 x = 0 y = operation n = x+y Built in subroutine call mempunyai waktu tempuh 1 Sin(x)  1 op Sin(x*pi/1000)  3 op

16 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

17 Loop For var  awal to akhir step diff. Statement S(var)‏
tidak tergantung var tergantung var Jika statement dalam inner loop tidak bergantung pada var, maka statement tersebut diulang sebanyak  jika non integer  jika integer

18 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)

19 Contoh 1 for i  2 to 30 step 5 x  x+1 Ts=2 y  x+y
Berapa waktu tempuhnya ? T = t (Ts+1) = 6 (2+1) = 18

20 Contoh 2 Tfor = t (Ts+1)‏ = 8 (2+1) = 24
for i  2 to 2*n step 5 x  x+1 y  x+y Berapa waktu tempuhnya ? Waktu tempuh perkalian 2*n  T2*n = 1 Jadi waktu tempuhnya = T = = 25 Tfor = t (Ts+1)‏ = 8 (2+1) = 24

21 Contoh 3 for i1 to 10 x  x+1  1 op if x>=1 then x  x-2  2 op
y  x^  max(2,1) op else y  x+y  1 op

22 Contoh : statement tergantung nilai var
for i1 to 10 x  x+1 for j1 to i y  x+y endfor Tfor(j) = ti (Ts+1) = i (2+1) = 3i T(i) = 1+3i+1 = 2+3i T = = = * ½ * 10 * (10+1) = 185

23 Latihan lagi Tfor(i) = ti (Ts+1) = (10-i+1) * (2+1)
for i1 to 10 x  x+1 for ji to 10 y  x+y endfor 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 = = * ½ * 10 * (10+1) =185

24 Latihan : T(n) = ? for i1 to 10 x  x+1 for j1 to i y  x+y endfor Endfor


Download ppt "Analisa Algoritma Running Time Pertemuan ke-1 Semester genap 2014"

Presentasi serupa


Iklan oleh Google