• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Objek ... - UNIKOM Kuliah Online

N/A
N/A
Protected

Academic year: 2023

Membagikan "Pemrograman Berorientasi Objek ... - UNIKOM Kuliah Online"

Copied!
34
0
0

Teks penuh

(1)

MATERI PERKULIAHAN

ANALISIS ALGORITMA

KOMPLEKSITAS ALGORITMA

1

Ken Kinanti Purnamasari

(2)
(3)

ANALISIS ALGORITMA

(4)

ANALISIS

Pengkajian bagian-bagian dan hubungan antarbagian dalam suatu hal untuk memahaminya dengan tepat secara menyeluruh.

(5)

ALGORITMA

Langkah-Langkah Penyelesaian Masalah.

(6)

ANALISIS ALGORITMA

Penguraian & Pengkajian Langkah-langkah penyelesaian masalah, untuk memahaminya dengan tepat secara menyeluruh.

(7)

MENGAPA DIANALISIS ?

Algoritma dianalisis untuk melihat seberapa

efisien

suatu algoritma menggunakan resource (waktu &

memori).

(8)

KOMPLEKSITAS ALGORITMA

(9)

Mengapa Harus Efisien ?

Pengaruh signifikan dari efisiensi algoritma

(10)

EFISIENSI ALGORITMA

- Algoritma yang baik adalah algoritma yang efisien.

- Efisiensi Algoritma diukur dari jumlah waktu &

kapasitas memori yang dibutuhkan saat eksekusi.

- Makin sedikit waktu & memori yang dibutuhkan, suatu algoritma makin efisien.

- Kebutuhan waktu & memori bergantung pada ukuran jumlah masukan (n)

(11)

KOMPLEKSITAS WAKTU & RUANG

(12)

WAKTU & RUANG

Time Efficiency => Time Complexity

( T(n) = Jumlah Waktu pengerjaan suatu Algoritma)

Space Efficiency => Space Complexity

( S(n) = Jumlah ruang Memori yang dibutuhkan suatu Algoritma untuk input & output)

(13)

EFISIENSI ALGORITMA

Mana lebih penting ?

Efisiensi WAKTU atau

MEMORI ?

(14)

UKURAN INPUT

Didefinisikan sebagai parameter n

Contoh :

Menghitung total jumlah 100 bilangan (n = 100)

Menghitung determinan matriks 5 x 5 (n = 25)

(15)

PERHITUNGAN WAKTU

Waktu Algoritma dapat diukur dari jumlah operasi / instruksi dasar yang dieksekusi algoritma tersebut.

Operasi Dasar

Perbandingan ( > , > , < , < , = ) Aritmatika ( - , + , * , / )

(16)

RUNNING TIME

T(n) ≈ C

op

C(n)

Cop = Waktu Eksekusi operasi dasar di suatu komputer

C(n) = Jumlah operasi dasar di suatu algoritma

T(n) = Waktu Eksekusi suatu algoritma (Running Time)

(17)

CONTOH KASUS (Menghitung Rata-Rata)

Input Array dengan n buah elemen :

|a1 |a2 |a3 ... An

Procedure HitungRata2(input a1,a2,…,an : integer, output rata2 : real)

Deklarasi

k, n : integer jumlah : real Algoritma

n  10

jumlah 0 k 1

while k < n do

jumlah jumlah + ak k  k + 1

endwhile

rata2  jumlah / n

(18)

a. Operasi Pengisian Nilai

b. Operasi Penjumlahan

SINTAK JUMLAH

n 10 1

jumlah 0 1

k 1 1

jumlah jumlah + ak 10

k k + 1 10

rata2 jumlah / n 1

TOTAL 24

SINTAK JUMLAH

jumlah + ak 10

k + 1 10

TOTAL 20

(19)

c. Operasi Pembagian

Total kebutuhan waktu eksekusi algoritma HitungRata2 :

T(n) = t1 + t2 + t3 =

24a + 20b + c

SINTAK JUMLAH

jumlah / n 1

TOTAL 1

(20)

CONTOH KASUS (Menghitung Rata-Rata)

Input Array dengan n buah elemen :

|a1 |a2 |a3 ... An

Procedure HitungRata2(input a1,a2,…,an : integer, output rata2 : real)

Deklarasi

k, n : integer jumlah : real Algoritma

input(n) jumlah 0 k 1

while k < n do

jumlah jumlah + ak k  k + 1

endwhile

rata2  jumlah / n

(21)

a. Operasi Pengisian Nilai

b. Operasi Penjumlahan

SINTAK JUMLAH

input(n) 1

jumlah 0 1

k 1 1

jumlah jumlah + ak N

k k + 1 N

rata2 jumlah / n 1

TOTAL 4 + 2n

SINTAK JUMLAH

jumlah + ak n

k + 1 n

TOTAL 2n

(22)

c. Operasi Pembagian

Total kebutuhan waktu eksekusi algoritma HitungRata2 :

T(n) = t1 + t2 + t3 =

(4 + 2n)a + (2n)b + c

SINTAK JUMLAH

jumlah / n 1

TOTAL 1

(23)

Tapi, terdapat masalah pada perhitungan di atas, karena :

- Tiap komputer punya kecepatan akses yang berbeda.

- Jadi, tidak ada informasi pasti mengenai waktu yang dibutuhkan dalam eksekusi suatu operasi dasar.

Diperlukan :

- Model yang independen terhadap spesifikasi mesin

& compiler tertentu.

(24)

Berapa lama waktu untuk menjalankan algoritma dengan input yang 2 kali lebih besar?

misalnya,

kita punya C(n) = ½ n (n – 1) dari suatu

algoritma...

(25)

RUNNING TIME

T(n) ≈ C

op

C(n)

Cop = Waktu Eksekusi operasi dasar di suatu komputer

C(n) = Jumlah operasi dasar di suatu algoritma

T(n) = Waktu Eksekusi suatu algoritma (Running Time)

(26)

RUNNING TIME

Untuk :

T(2n) = 4 x T(n)

Cop (kecepatan akses) & Konstanta Pengali (1/2) diabaikan.

Diperoleh perhitungan yang independen

(27)

RUNNING TIME

Untuk :

(28)

CONTOH KASUS (Menghitung Rata-Rata)

Input Array dengan n buah elemen :

|a1 |a2 |a3 ... An

Procedure HitungRata2(input a1,a2,…,an : integer, output rata2 : real) Deklarasi

k : integer jumlah : real Algoritma

input(n) jumlah 0 k 1

while k < n do

jumlah jumlah + ak

k k + 1 endwhile

rata2 jumlah / n

(29)

Operasi Utama, cirinya : - Paling dalam

- Paling banyak dikerjakan

Operasi Mendasar algoritma HitungRata2 adalah Penjumlahan, yaitu :

jumlah jumlah + ak

Maka, kompleksitas waktu untuk algoritma HitungRata2 :

T(n) = n

(30)

WORST, BEST, AVERAGE

Untuk beberapa algoritma tertentu, kompleksitas waktu dibagi 3 :

Worst – case efficiency [Tmax (n)]

Kompleksitas dengan jumlah paling besar.

Best – case efficiency [Tmin (n)]

Kompleksitas dengan jumlah paling kecil.

Average – case efficiency [Tavg (n)]

Kompleksitas dengan jumlah rata-rata keseluruhan kemungkinan

(31)

CONTOH KASUS (Sequential Search)

Procedure SeqSearch(input a1,a2,…,an : integer, x : integer, output idx : integer)

Deklarasi

k : integer ketemu : boolean Algoritma

x 8 n 10 k 1

ketemu false

while (k < n) and (not ketemu) do if ak = x then

ketemu true else

k k + 1 endif

endwhile

if ketemu then idx k else

idx 0 endif

(32)

- Worst-case : jika (a1 = x)

- Best-case : jika (an = x) atau (x tidak ditemukan)

- Average-case : jika x ditemukan pada posisi j, maka

perbandingan dieksekusi sebanyak j kali.

(33)

Ada Pertanyaan???

Ada Pertanyaan???

(34)

TUGAS

Tugas Perorangan (Tulis tangan) : - Cari 3 buah algoritma !

- Analisis kompleksitas setiap

algoritma tersebut !

Referensi

Dokumen terkait

Dosen Ken Kinanti Purnamasari Chat FB / Messenger Ken Kinanti Purnamasari Materi Online kuliahonline.unikom.ac.id TK - 2019... Compilers Principles, Techniques, and

TUGAS PERORANGAN Buat DFA untuk mengenali simbol-simbol berikut dalam bahasa C atau Pascal: intcon, realcon, charcon, stringt,notsy, plus, minus, times, idiv, rdiv, imod, andsy,

Error Recovery Mengembalikan compiler ke kondisi stabil supaya dapat melanjutkan proses Beberapa strategi yang digunakan : - Mekanisme Ad Hoc - Syntax Directed Recovery - Secondary

Error Recovery Mengembalikan compiler ke kondisi stabil supaya dapat melanjutkan proses Beberapa strategi yang digunakan : - Mekanisme Ad Hoc - Syntax Directed Recovery - Secondary

Brute-Force Selection Sort CONTOH KASUS 1 Diberikan n buah bilangan bulat yang dinyatakan sebagai a0, a2, …, an-1.. Urutkan bilangan-bilangan tersebut secara

Prinsip Optimalitas “ Jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal ” Cost[k + 1] = Cost[k] + Cost[k] ke [k+1] Dynamic Programming... Karakter

Greedy - Himpunan kandidat : koin-koin bernilai 1, 5, 10, 25 - Himpunan solusi : koin-koin terpilih yang membentuk total nilai koin tepat sama dengan nilai uang yang ditukar -

Setiap obyek dibangun dari sekumpulan data atribut yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekumpulan method yang menjabarkan