1 / 24

Analisa Algoritma

Analisa Algoritma. Running Time. Pertemuan ke-1. Semester genap 2014. Heru Cahya Rustamaji , S. Si. MT. Deskripsi. Materi ini membahas tentang running time. Tujuan Instruksional Khusus (TIK) ‏. Menjelaskan efisiensi algoritma Menjelaskan pengukuran running time.

Download Presentation

Analisa Algoritma

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AnalisaAlgoritma Running Time Pertemuan ke-1 Semester genap 2014 HeruCahyaRustamaji, S. Si. MT

  2. Deskripsi Materiinimembahastentang running time

  3. TujuanInstruksionalKhusus (TIK)‏ Menjelaskanefisiensialgoritma Menjelaskanpengukuran running time

  4. EfisiensiAlgoritma ? Mengukurjumlahsumberdaya (timedanspace) yang diperlukanolehsebuahalgoritma Waktu yang diperlukan (running time) oleh sebuahalgoritmacenderungtergantungpada jumlah input yang diproses.  Running timedarisebuahalgoritmaadalahfungsidarijumlahinputnya Selalutidakterikatpadaplatform (mesin + OS), bahasapemrograman, kualitaskompilatoratau bahkanparadigmapemrograman(mis. Procedural vs Object-Oriented)‏

  5. Pengukuran running time Running time darisuatualgoritmaberbeda-bedabergantungpada input yang diberikan. Dengandemikianpengukurannyadihitungsebagaifungsidaribesarnya input yang diberikan.

  6. Process 1: Wall-Clock time Process 2: Process 3: CPU time Idle: Wall-Clock time Analisa Algoritma: How? Bagaimanajikakitamenggunakan jam? • Jumlahwaktu yang digunakanbervariasitergantungpadabeberapafaktor lain: kecepatanmesin, sistemoperasi (multi-tasking), kualitaskompiler, danbahasapemrograman. • Sehinggakurangmemberikangambaran yang tepattentangalgoritma

  7. EfisiensiAlgoritma : Faktor yang berpengaruh Kecepatan • BanyakLangkah <- Input Size • Tipe Data <- Integer vs float • Operator <- + vs * Space • Alokasi memory

  8. Input Size Menggunakannotasi n Contoh sorting, input size menyatakanbanyaknyabilangan yang disorting Digunakanuntukmenganalisaeksekusisuatualgoritma Menghitungbanyaknyaoperasidasar yang digunakan: • Every case • Worst case • Average case • Best case

  9. Operasidasar, Contoh Berikutinibeberapacontohoperasidasar yang biasadigunakansebagaiukurankompleksitassuatualgoritmatertentu:

  10. Running time

  11. Actual running time UntukN = 100, waktusebenarnyaadalah 0.011 detik padasebuahkomputer. Perkirakanwaktusebenarnyauntuk input lebihbesar: T(N) = cN2T(10N) = c(10N)2 = 100cN2 = 100T(N)‏ Input diperbesardengankelipatan 10 artinya running time akanmembesardengankelipatan 100. UntukN = 1000, perkiraan running time adalah 1.11 detik. (waktusebenarnya 1.12 detik). UntukN = 10,000, perkiraan 111 detik (= actual).

  12. Running Time: on different machines AlgoritmaKubikpadamesin Alpha 21164 at 533 Mhz menggunakanC compiler (mewakilimesin yang cepat)‏ Algoritma Linear padamesin Radio Shack TRS-80 Model III (a 1980 personal computer with a Z-80 processor running at 2.03 Mhz) using interpreted Basic (mewakilimesinlambat)‏

  13. Operator Operator aritmatika : +,-,*,/,^,div,mod Operator logika : AND,OR,NOT masing-masing 1. Operator adalahjikahasilperhitungannyatermasukdalamhimpunanitusendiri. 2 < 5  bukan operator tapi konstanta logika karena tidak menghasilkan nilai yang sejenis Operator : H x H  H x = 2<5  Tidakada operation ( 0 operation)‏ x = True  Tidakada operation ( 0 operation)‏ y = 5  Tidakada operation ( 0 operation)‏ y = 5+0  1 operation y = 2+3*5  2 operation y = 3*5+2  2 operation

  14. Banyaknyalangkahalgoritma Banyaklangkahdalamsuatualgoritmadinyatakandenganbanyaknyaoperasiaritmatikadanlogika 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 dgnbanyaklangkah n(s1)‏ Statement s2 dgnbanyaklangkah n(s2)‏ banyaklangkah = n(s1)+n(s2)‏ Assigment dgn konstanta mempunyai waktu tempuh 0 x = 0 y = 1 1 operation n = x+y Built in subroutine call mempunyaiwaktutempuh 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) = waktutempuhkondisi  2 op n(s1) = waktutempuh statement s1  5 op n(s2) = waktutempuhsatement s2  3 op Maka waktutempuh = n(kondisi) + max(n(s1),n(s2))‏ = 2 + 5 = 7

  17. 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 tersebutdiulangsebanyak jika non integer jika integer

  18. Misalnyawaktutempuhuntuk statement tersebutadalahTs, makawaktutempuhdengan loop tsbadalah t*Ts. Waktutempuhuntuk control loop adalah t*1. Jadiwaktutempuhuntuk loop tersebutadalah t * Ts + t = t (Ts+1)

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

  20. Contoh 2 n=20 for i  2 to 2*n step 5 x  x+1 y x+y Berapawaktutempuhnya ? Waktu tempuh perkalian 2*n  T2*n = 1 Jadiwaktutempuhnya = T = 24 + 1 = 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^2  max(2,1) op else y  x+y  1 op

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

  23. Latihanlagi for i1 to 10 x  x+1 for ji to 10 y x+y x  x+1 endfor 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 = = 350 - 3 * ½ * 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

More Related