Desain Analisa Algoritma : Efisiensi Algoritma

  

Desain Analisa Algoritma : Efisiensi Algoritma

Elsen Ronando, S.Si.,M.Si.,M.Sc.

  Teknik Informatika Fakultas Teknik

  Universitas 17 Agustus 1945 Surabaya 2016

  1

  

  2

  Pendahuluan

  Analisa Algoritma → ada kaitannya dengan investigasi efisiensi algoritma. Efisiensi Algoritma → berkaitan dengan waktu eksekusi dan ruang memori. Tujuan : Efisiensi dipelajari secara kuantitas dengan rinci.

  Efisiensi memperhatikan pentingnya keterkaitan dengan kecepatan dan memori komputer. Pendahuluan

  Analisa Algoritma → ada kaitannya dengan investigasi efisiensi algoritma. Efisiensi Algoritma → berkaitan dengan waktu eksekusi dan ruang memori. Tujuan : Efisiensi dipelajari secara kuantitas dengan rinci.

  Efisiensi memperhatikan pentingnya keterkaitan dengan kecepatan dan memori komputer.

  Saat ini, spesifikasi komputer sangat optimal dalam hal kecepatan maupun memori

  Analisa Ruang Kerja

  Efisiensi → efisiensi waktu (kompleksitas waktu) dan efisiensi ruang (kompleksitas ruang).

  

Kompleksitas waktu → kecepatan algoritma dalam eksekusi.

Kompleksitas ruang → kebutuhan memori yang diperlukan oleh algoritma

  Kecepatan waktu dan kebutuhan ruang → menjadi fokus utama. Kecepatan waktu → lebih difokuskan daripada kebutuhan ruang.

Analisa Ruang Kerja(Lanjutan)

  Mengukur Besaran Input Permasalahan utama → lambatnya eksekusi algoritma berdasarkan pada besarnya input, seperti besarnya ukuran array dan matrik.

  Contoh : Algoritma untuk menyelesaikan permasalahan prima, dimana memiliki nilai positif integer n. Artinya, nilai inputnya adalah satu bilangan, dimana besar ukuran dari bilangan b dalam representasi biner : b = [log n ] + 1.

  2 Analisa Ruang Kerja(Lanjutan)

  Bagian untuk Mengukur Waktu Eksekusi Ukuran standar waktu eksekusi → sekon atau milisekon.

  Ukuran waktu eksekusi bergantung pada: Kecepatan komputer.

  Kualitas penerapan algoritma dalam program. Penggunaan kompiler dalam menghasilkan kode mesin. Kesulitan waktu eksekusi aktual dalam program.

  Operasi dasar → identifikasi operasi algoritma secara menyeluruh Total waktu eksekusi.

Menghitung jumlah waktu

  Contoh : Algoritma untuk menyelesaikan permasalahan perhitungan matematika : penambahan, pengurangan, perkalian, dan pembagian.

  Menurut Saudara, operasi apa yang membutuhkan konsumsi waktu sangat banyak ? Analisa Ruang Kerja(Lanjutan)

  Fungsi Pertumbuhan Fungsi pertumbuhan → berpengaruh pada proses efisiensi algoritma. n log

  10

  12

  10

  8

  10

  5

  10

  1 .3 ×

  4

  13

  5

  4

  10

  9

  10

  6

  10

  4

  10

  1 .0 ×

  10

  17

  10

  20

  18 Coba Saudara perhatikan Tabel diatas, Bagaimana menurut

  10

  12

  10

  7

  10

  2 .0 ×

  6

  10

  6

  10

  10

  15

  10

  10

  10

  6

  10

  1 .7 ×

  5

  3

  10

  2

  3 .3

  3

  10

  2

  10

  1

  10

  3 .3 ×

  1

  10

  10

  3

  n !

  n

  2

  3

  n

  2

  n n

  2

  n n nlog

  10

  3 .6 ×

  3

  4

  10

  157

  10

  9 .3 ×

  30

  10

  1 .3 ×

  6

  10

  10

  10

  2

  10

  6 .6 ×

  2

  10

  6 .6

  2

  10

  6

  Saudara ? Analisa Ruang Kerja(Lanjutan)

  Keadaan Terburuk, Terbaik, dan Rata-rata (Algoritma Pencarian Sequential)

  Input : sebuah array A[0..n − 1] dan pencarian K Output : elemen index A yang sesuai dengan K atau −1 jika tidak ditemukan begin

  ← 0 i while i < n dan A[i] 6= K do i ← i + 1 if i < n then return i end else return −1 end end end

Analisa Ruang Kerja(Lanjutan)

  Keadaan Terburuk, Terbaik, dan Rata-rata (Lanjutan) Keadaan Terburuk → berkaitan lambatnya algoritma berjalan dalam banyaknya input n.

  Keadaan Terbaik → berkaitan cepatnya algoritma berjalan dalam banyaknya input n. Jika tidak keduanya (random) → keadaan rata-rata. Notasi Asimtotik dan Dasar Kelas Efisiensi berkaitan erat dengan fungsi pertumbuhan yang dipengaruhi n.

Jenis Notasi: O (big oh) → keadaan terburuk (worst-case)

  Ω (big omega) → keadaan terbaik (best-case). Θ (big theta) → keadaan rata-rata (average-case). Notasi Asimtotik dan Dasar Kelas Efisiensi berkaitan erat dengan fungsi pertumbuhan yang dipengaruhi n.

  Jenis Notasi: O (big oh) → keadaan terburuk (worst-case).

  Ω (big omega) → keadaan terbaik (best-case). Θ (big theta) → keadaan rata-rata (average-case).

  Kinerja algoritma biasanya berpatokan pada keadaan terburuk (worst-case) yang dinyatakan dengan (big oh)

Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan)

  Definisi Waktu Terburuk (O) f (n) = O(g (n))

  Jika ada dua bilangan konstanta c dan n maka kf (n)k ≤ ckg (n)k, ∀n ≥ N Contoh : Tentukan nilai c dan N

  3n + 2 ∈ O(n)

  2

  2 10n + 4n + 2 ∈ O(n )

Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan)

  Definisi Waktu Terbaik (Ω) f (n) = Ω(g (n))

  Jika ada dua bilangan konstanta c dan n maka kf (n)k ≥ ckg (n)k, ∀n ≥ N Contoh : Tentukan nilai c dan N

  3n + 2 ∈ Ω(n)

  2

  2 10n + 4n + 2 ∈ Ω(n ) Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan)

  Definisi Waktu Rata-Rata (Θ) f (n) = Θ(g (n)) Jika ada dua bilangan konstanta c 1 , c 2 , dan n maka c kg (n)k ≤ kf (n)k ≤ c kg (n)k, ∀n ≥ N

  1

  2 Contoh : Tentukan nilai c 1 , c 2 dan N 3n + 2 ∈ Θ(n)

  2

  2 10n + 4n + 2 ∈ Θ(n )

Analisa Matematis Algoritma Nonrekrusif Permasalahan. Mencari elemen nilai terbesar dalam sebuah deret n bilangan

  Input : sebuah array A[0..n − 1] bilangan real Output : Elemen nilai terbesar di A begin maxval ← A[0] for i ← 1 to n − 1 do if A[i] > maxval then maxval ← A[i] end return maxval end end

  Banyaknya eksekusi dilakukan (C (n))

  n−1

  X C (n) = 1 = n − 1 ∈ Θ(n)

  i =1

Analisa Matematis Algoritma Nonrekrusif(Lanjutan) Permasalahan. Mencari elemen berbeda dalam n elemen

  Input : sebuah array A[0..n − 1] Output : Return ”benar” jika seluruh elemen A berbeda dan ”salah jika sebaliknya” begin for i ← 0 to n − 2 do for j ← i + 1 to n − 1 do if A[i] = A[j] then return salah end end return benar end end

  Banyaknya eksekusi dilakukan (C (n))

  n−2 n−1

  X X (n − 1)n

  1

  2

  2

  ≈ ∈ C worst n

  (n) = 1 = Θ(n )

  2

  2

  i j =0 =i+1

Analisa Matematis Algoritma Rekrusif Permasalahan. Mencari nilai faktorial n bilangan

  Input : Bilangan bulat taknegatif n Output : Hasil n! begin if n=0 then return 1 end else return F (n − 1) ∗ n end end

  Banyaknya eksekusi dilakukan (M(n)) M

  (n) = M(n − 1) + 1 = M(n − i) + i = M(n − n) + n = n Contoh Bilangan Fibonacci

  Deret Bilangan Fibonaci : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

  Rumus rekrusif bilangan fibonacci : F

  (n) = F (n − 1) + F (n − 2) untuk n > 1 dengan kondisi awal

F

  (0) = 0, F (1) = 1 → banyak diterapkan dalam bidang ilmu komputer. → banyak digunakan untuk memprediksi stok dan komoditas. Contoh Bilangan Fibonacci(Lanjutan)

Algoritma Rekrusif Bilangan Fibonacci

  Input n : bilangan integer tak negatif Output Bilangan Fibonacci ke-n begin if n ≤ 1 then return n end else return F (n − 1) + F (n − 2) end end Contoh Bilangan Fibonacci(Lanjutan)

Algoritma Bilangan Fibonacci

  Input n : bilangan integer tak negatif Output Bilangan Fibonacci ke-n begin F [0] ← 0

  F [1] ← 1 for i ← 2 to n do F [i] ← F [i − 1] + F [i − 2] end return F [n] end

  Θ(log n) yang memiliki kesamaan dan efisien matriks power berikut ini: "

  F (n − 1)

  F (n)

  F (n)

  F (n + 1)

  # =

  " 0 1 1 1

  # n untuk n ≥ 1 Seluruh materi presentasi dapat didownload pada SIAKAD masing-masing atau link berikut :

   .

  Apabila ada pertanyaan mengenai desain analisa algoritma dapat mengirim ke alamat email berikut :

  

Terimakasih Atas Perhatiaanya

Dokumen yang terkait

ANALISA BIAYA OPERASIONAL KENDARAAN PENGANGKUT SAMPAH KOTA MALANG (Studi Kasus : Pengangkutan Sampah dari TPS Kec. Blimbing ke TPA Supiturang, Malang)

24 196 2

Analisa studi komparatif tentang penerapan traditional costing concept dengan activity based costing : studi kasus pada Rumah Sakit Prikasih

56 889 147

Analisis pengaruh modal inti, dana pihak ketiga (DPK), suku bunga SBI, nilai tukar rupiah (KURS) dan infalnsi terhadap pembiayaan yang disalurkan : studi kasus Bank Muamalat Indonesia

5 112 147

Khutbah Washil bin Atho' wa ma fiha minal asalib al-insyaiyah al-thalabiyah : dirasah tahliliyah

3 67 62

Efisiensi pemasaran kayu jenis sengon (paraserianthes falcataria) (studi kasus Hutan Rakyat Kecamatan Leuwisadeng, Kabupaten Bogor)

17 93 118

Manajemen Sumber Daya Manusia dalam Peningkatan Produktivitas sekolah : penelitian di SMK al-Amanah Serpong

20 218 83

Analysis On Students'Structure Competence In Complex Sentences : A Case Study at 2nd Year class of SMU TRIGUNA

8 98 53

The correlation between listening skill and pronunciation accuracy : a case study in the firt year of smk vocation higt school pupita bangsa ciputat school year 2005-2006

9 128 37

Partisipasi Politik Perempuan : Studi Kasus Bupati Perempuan Dalam Pemerintahan Dalam Kabupaten Karanganyar

3 106 88

Perilaku komunikasi para pengguna media sosial path di kalangan mahasiswa UNIKOM Kota Bandung : (studi deksriptif mengenai perilaku komunikasi para pengguna media sosial path di kalangan mahasiswa UNIKOM Kota Bandung)

9 116 145