• Tidak ada hasil yang ditemukan

Desain Analisa Algoritma : Efisiensi Algoritma

N/A
N/A
Protected

Academic year: 2018

Membagikan "Desain Analisa Algoritma : Efisiensi Algoritma"

Copied!
23
0
0

Teks penuh

(1)

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

[email protected]

Teknik Informatika Fakultas Teknik

Universitas 17 Agustus 1945 Surabaya

2016

(2)

1 Efisiensi Algoritma

Analisa Ruang Kerja

Notasi Asimtotik dan Dasar Kelas Efisiensi Analisa Matematis Algoritma Nonrekrusif Analisa Matematis Algoritma Rekrusif Contoh Bilangan Fibonacci

(3)

Pendahuluan

Analisa Algoritma→ ada kaitannya dengan investigasi efisiensi

algoritma.

Efisiensi Algoritma →berkaitan dengan waktu eksekusi danruang

memori. Tujuan :

Efisiensi dipelajari secara kuantitas dengan rinci.

Efisiensi memperhatikan pentingnya keterkaitan dengankecepatan danmemorikomputer.

(4)

Pendahuluan

Analisa Algoritma→ ada kaitannya dengan investigasi efisiensi

algoritma.

Efisiensi Algoritma →berkaitan dengan waktu eksekusi danruang

memori. Tujuan :

Efisiensi dipelajari secara kuantitas dengan rinci.

Efisiensi memperhatikan pentingnya keterkaitan dengankecepatan danmemorikomputer.

(5)

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.

(6)

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 integern. Artinya, nilai inputnya adalah satu bilangan,

dimana besar ukuran dari bilangan b dalam representasi biner :

(7)

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 ?

(8)

Analisa Ruang Kerja(Lanjutan) Fungsi Pertumbuhan

Fungsi pertumbuhan → berpengaruh pada proses efisiensi algoritma.

n log2n n nlog2n n2 n3 2n n!

(9)

Analisa Ruang Kerja(Lanjutan)

Keadaan Terburuk, Terbaik, dan Rata-rata

(Algoritma Pencarian Sequential)

Input: sebuah arrayA[0..n−1] dan pencarianK Output: elemen indexAyang sesuai denganK

atau−1 jika tidak ditemukan

begin

(10)

Analisa Ruang Kerja(Lanjutan)

Keadaan Terburuk, Terbaik, dan Rata-rata (Lanjutan)

Keadaan Terburuk → berkaitan lambatnya algoritma berjalan dalam

banyaknya inputn.

Keadaan Terbaik → berkaitan cepatnya algoritma berjalan dalam

banyaknya inputn.

(11)

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

(12)

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

(13)

Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan) Definisi Waktu Terburuk (O)

f(n) =O(g(n))

Jika ada dua bilangan konstanta c dan n0 maka

kf(n)k ≤ckg(n)k,∀n≥N

Contoh : Tentukan nilai c dan N

3n+ 2∈O(n)

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

(14)

Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan) Definisi Waktu Terbaik (Ω)

f(n) = Ω(g(n))

Jika ada dua bilangan konstanta c dan n0 maka

kf(n)k ≥ckg(n)k,∀n≥N

Contoh : Tentukan nilai c dan N

3n+ 2∈Ω(n)

(15)

Notasi Asimtotik dan Dasar Kelas Efisiensi(Lanjutan) Definisi Waktu Rata-Rata (Θ)

f(n) = Θ(g(n))

Jika ada dua bilangan konstanta c1,c2, dann0 maka

c1kg(n)k ≤ kf(n)k ≤c2kg(n)k,∀n≥N

Contoh : Tentukan nilai c1, c2 dan N

3n+ 2∈Θ(n)

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

(16)

Permasalahan. Mencari elemen nilai terbesar dalam sebuah deretnbilangan.

Input: sebuah arrayA[0..n−1] bilangan real

Output: Elemen nilai terbesar diA

begin

Banyaknya eksekusi dilakukan (C(n))

C(n) =

n−1

X

(17)

Analisa Matematis Algoritma Nonrekrusif(Lanjutan)

Permasalahan. Mencari elemen berbeda dalamnelemen.

Input: sebuah arrayA[0..n−1]

Output: Return ”benar” jika seluruh elemen A berbeda dan ”salah jika sebaliknya”

begin

Banyaknya eksekusi dilakukan (C(n))

Cworst(n) =

(18)

Analisa Matematis Algoritma Rekrusif

Permasalahan. Mencari nilai faktorialnbilangan.

Input: Bilangan bulat taknegatifn

Output: Hasiln!

Banyaknya eksekusi dilakukan (M(n))

(19)

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) untukn >1

dengan kondisi awal

F(0) = 0,F(1) = 1

→ banyak diterapkan dalam bidang ilmu komputer.

→ banyak digunakan untuk memprediksi stok dan komoditas.

(20)

Contoh Bilangan Fibonacci(Lanjutan) Algoritma Rekrusif Bilangan Fibonacci

Inputn : bilangan integer tak negatif

OutputBilangan Fibonacci ke-n

begin

if n≤1then returnn end

else

returnF(n−1) +F(n−2)

(21)

Contoh Bilangan Fibonacci(Lanjutan) Algoritma Bilangan Fibonacci

Inputn : bilangan integer tak negatif

OutputBilangan Fibonacci ke-n

begin

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

"

(22)

Seluruh materi presentasi dapat didownload pada SIAKAD masing-masing atau link berikut :

https://sites.google.com/site/elsenronandosite/teaching Klik .

Apabila ada pertanyaan mengenai desain analisa algoritma dapat

(23)

Referensi

Dokumen terkait

Berdasarkan penelitian dan pengujian yang telah dilakukan, maka disimpulkan bahwa: Membandingkan efisiensi, efektifitas dan kualitas algoritma Rijndael dengan algoritma

Struktur dasar algoritma, Notasi Algoritmik, Tipe, operator dan ekspresi, Runtunan,. Pemilihan: IF-THEN, Pemilihan: IF-THEN-ELSE,Pemilihan: CASE, Pengulangan:

Aspek Medis , Catatan tersebut dipergunakan sebagai dasar untuk merencanakan pengobatan/perawan yang harus diberikan kepada pasien. Contoh adalah, identitas pasien,

Hasil akhirnya akan dilakukan pengujian analisa ketahanan performa algoritma baik algoritma knapsack standard maupun algoritma knapsack dengan logaritma diskrit yang

Aspek Medis , Catatan tersebut dipergunakan sebagai dasar untuk merencanakan pengobatan/perawan yang harus diberikan kepada pasien. Contoh adalah, identitas pasien,

Susun algoritma dan flowchart untuk menyalin isi array A yang nilainya lebih kecil dari 17 merupakan bilangan ganjil ke array B sehingga isi array B menjadi

Hasil pengujian waktu enkripsi algoritma Hybrid pada tabel 3 dapat ditarik kesimpulan bahwa panjang bit bilangan prima dan panjang karakter yang digunakan berpengaruh pada waktu

Dokumen ini berisi instruksi, contoh algoritma, dan soal ujian akhir semester untuk mata kuliah Algoritma dan Pemrograman