ALGORITHM
2
Analysis Algorithm Dahlia Widhyaestoeti, S.Kom
[email protected] dahlia74march.wordpress.com
Analysis Suatu Algoritma Studi yang menyangkut analis algoritma ada 2 hal : 1. Perbandingan dari waktu perhitungan (running time) 2. Banyaknya memory (storage) yang digunakan
1. Waktu Tempuh Proses dari suatu algoritma di dalam mencari solusi dari suatu masalah memerlukan waktu tertentu. Satuan waktu yang dibutuhkan diharapkan dalam waktu yang relatif singkat (efisien). Hal-hal yang mempengaruhi waktu tempuh adalah : Banyaknya langkah : Makin banyak langkah atau instruksi yang digunakan maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut.
Besar dan jenis input data Ukuran atau besar serta jenis input yang digunakan akan sangat berpengaruh pada proses perhitungan. Jika jenis data yang diinginkan adalah tingkat ketelitian tunggal (single precision) maka waktu tempuhnya relatif lebih cepat apabila digunakan data dengan tingkat ketelitian ganda (double precision). Demikian pula halnya jika dibandingkan dengan data-data yang triple precision ataupun quadruple precision.
1. Waktu Tempuh
Jenis Operasi Jenis operasi tersebut meliputi operasi aritmatika, operasi nalar atau logika dll.
Komputer dan kompilator Faktor ini diluar dari rancangan atau pembuatan algoritma yang efisien. Walaupun algoritma yang dibuat sudah mencapai waktu tempuh yang sangat efisien (dengan memperhatikan 3 hal diatas) namun bila digunakan komputer yang berkemampuan lambat maka waktu tempuhnya akan menjadi lebih lambat. Kompilator yang digunakan juga akan berpengaruh terhadap waktu tempuh suatu algoritma. Bandingkan waktu tempuh suatu algoritma bila digunakan (dijalankan dengan) mesin-mesin dengan jenis : Pentium, Atom, Core, AMD, i7
Mengapa kita memerlukan algoritma yang efisien? Lihat grafik dibawah ini.
2. Jumlah Memori yang digunakan Banyaknya langkah yang digunakan dan jenis variabel atau data yang dipakai dalam suatu algoritma akan mempengaruhi penggunaan memori. Dalam hal ini diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga diperoleh penyelesaiannya. Dengan demikian dapat disiapkan storage yang memakai agai proses dari suatu algoritma berlangsung tanpa ada hambatan (kekurangan memori).
Kompleksitas Waktu (Time Complexity) Definisi 1 Kompleksitas waktu adalah sebuah fungsi F(N) yang diberikan untuk waktu tempuh dan atau kebutuhan storage dengan ukuran N input data. Definisi 2 F(N) merupakan “big oh” dari G(N) dengan notasi F(N) = 0 (G(N)) jika dan hanya jika terdapat 2 buah konstanta bulat positif C dan N0 sedemikian sehingga | F(N) | ≤ C | G(N) | untuk setiap N ≥ N0 Definisi 3 F(N) merupakan “omega” dari G(N) dengan notasi F(N) = Ω (G(N)) jika dan hanya jika terdapat dua buah konstanta positif C dan M sedemikian sehingga | F(N) | ≥ C | G(N) | untuk setiap N ≥ M. Definisi 4 F(N) merupakan “tetta” dari G(N) dengan notasi F(N) = θ (G(N)) jika dan hanya jika terdapat dua buah konstanta positif C1, C2 dan M sedemikian sehingga C1 |G(N)| ≤ | F(N) | ≤ C2 | G(N) | untuk setiap harga N ≥ M.
Kompleksitas Waktu (Time Complexity)
Kompleksitas Waktu (Time Complexity) Contoh Tentukan algoritma dari maslah penjumlahan 2 buah matriks dengan ukuran (mxn) yang elemen-elemenya adalah bilangan riil...! Penyelesaian Algoritma dari penjumlahan 2 buah matrik yang berukuran (mxn), yaitu : (1) Nyatakan A[i,j], B[i,j], C[i,j] real (2) Untuk i ← 1 sampai dengan m kerjakan (3) Untuk j ← 1 sampai dengan n kerjakan (4) C(i,j) ← A[i,j] + B[i,j] (5) Akhir j (6) Akhir i
Kompleksitas Waktu (Time Complexity) Contoh Tentukan algoritma dari maslah penjumlahan 2 buah matriks dengan ukuran (mxn) yang elemen-elemenya adalah bilangan riil...! Analisisnya: Jenis operasi yang digunakan adalah operator tambah Banyaknya operasi tambah yang dilakukan adalah mn kali Banyaknya memori yang digunakan : Variabel yang digunakan adalah variabel berindex dengan dimensi 2 dan bertipe variabel real dengan tingkat ketelitian tunggal maka banyaknya memori yang dibutuhkan untuk satu variabel adalah 4mn byte. Jadi banyak memori seluruhnya yang digunakan adalah sebesar 12mn byte memori. Fungsi F(m,n) = 13mn merupakan fungsi dari waktu tempuh dan memori yang digunakan oleh algoritma tersebut.