kompleksitas waktu dan effisiensi algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya...

29
Kompleksitas Waktu dan Effisiensi Algoritma Effisiensi Algoritma wijanarto

Upload: ngominh

Post on 28-Jul-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Kompleksitas Waktudan

Effisiensi Algoritma

Kompleksitas Waktudan

Effisiensi Algoritmawijanarto

Page 2: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Review RAM

• RAM– Model Matematika untuk komputer, yang

memudahkan pengukuran suatu algoritma– Sebagai dasar/pengantar untuk menganalisa

algoritma– Semua aturan RAM di pakai dalam menentukan

kompleksitas waktu dan efisiensi algoritma

• Dalam pertemuan selanjutnya, teknik analisisalgoritma menggunakan rumusan yang lebihbaku, tidak seperti dalam RAM.

• RAM– Model Matematika untuk komputer, yang

memudahkan pengukuran suatu algoritma– Sebagai dasar/pengantar untuk menganalisa

algoritma– Semua aturan RAM di pakai dalam menentukan

kompleksitas waktu dan efisiensi algoritma

• Dalam pertemuan selanjutnya, teknik analisisalgoritma menggunakan rumusan yang lebihbaku, tidak seperti dalam RAM.

Page 3: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Pengantar

• Pada suatu algoritma umumnya yang diperlukan adalah :

1. Space, yaitu alokasi yang bersifat statis2. Struktur Program, disini menyangkut pada

berapa banyak langkah yang di perlukanuntuk menjalankan algoritma tersebut

3. Rekursif, pemakaian fungsi rekursif padasuatu algoritma.

• Pada suatu algoritma umumnya yang diperlukan adalah :

1. Space, yaitu alokasi yang bersifat statis2. Struktur Program, disini menyangkut pada

berapa banyak langkah yang di perlukanuntuk menjalankan algoritma tersebut

3. Rekursif, pemakaian fungsi rekursif padasuatu algoritma.

Page 4: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Ukuran Efisiensi Waktu

• Efisiensi untuk suatu algoritma tidak diukurdengan satuan waktu (detik, milidetik, dsb),karena waktu tempuh suatu algoritma sangatbergantung pada :

• banyaknya data problem size• spesifikasi komputer Hardware (RAM, processor, dll)• compiler software• tegangan listrik contoh kasusnya, pemakaian

notebook menggunakan daya baterai juga berpengaruhpada waktu tempuhnya karena kerja processor dapatdikatakan kurang normal.

• Dll. programmer

• Efisiensi untuk suatu algoritma tidak diukurdengan satuan waktu (detik, milidetik, dsb),karena waktu tempuh suatu algoritma sangatbergantung pada :

• banyaknya data problem size• spesifikasi komputer Hardware (RAM, processor, dll)• compiler software• tegangan listrik contoh kasusnya, pemakaian

notebook menggunakan daya baterai juga berpengaruhpada waktu tempuhnya karena kerja processor dapatdikatakan kurang normal.

• Dll. programmer

Page 5: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Efisiensi Waktu

• Efisiensi waktu algoritma diukur dalam satuann (problem size).

• 4 langkah untuk menentukan ukuran efisiensiwaktu, antara lain :– Menentukan problem size (n)– Menentukan operasi dominan– Menentukan fungsi langkah g(n)– Menentukan kompleksitas waktu O(f(n)) (Big Oh

function)

• Efisiensi waktu algoritma diukur dalam satuann (problem size).

• 4 langkah untuk menentukan ukuran efisiensiwaktu, antara lain :– Menentukan problem size (n)– Menentukan operasi dominan– Menentukan fungsi langkah g(n)– Menentukan kompleksitas waktu O(f(n)) (Big Oh

function)

Page 6: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Menentukan problem size (n)Problem n

Max/min/rata-rataSorting/Searching

n = banyaknya data

Perkalian 2 matriksA x B

p x q q x rn = max (p, q, r)

Perkalian 2 matriksA x B

p x q q x r

Graf|v| = 4|E| = 6

banyaknya titik |v|n

banyaknya garis |E|

Pengolahan citraw

h

n = banyaknya titik (w, h)w x h

n hw x h8 x 6

800 x 600

Page 7: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Menentukan operasi dominan

• Operasi dominan yang dimaksudkan di sinisangat bergantung pada permasalahan, danoperasi yang dilakukan yang banyaknyabergantung pada n, dengan kata lain operasidominan merupakan operasi yang palingbanyak dilakukan, sesuai kontekspermasalahan.

• Operasi dominan yang dimaksudkan di sinisangat bergantung pada permasalahan, danoperasi yang dilakukan yang banyaknyabergantung pada n, dengan kata lain operasidominan merupakan operasi yang palingbanyak dilakukan, sesuai kontekspermasalahan.

Page 8: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contoh

• pada algoritma menentukan max/min operasidominannya adalah operasi perbandingan “<”atau “>”

• pada algoritma searching operasi dominannyaadalah operasi “=”

• pada algoritma sorting operasi dominannyaadalah operasi “<” atau “>” operasi yang lainseperti “” tidak dominan, karena belum tentuterjadi penukaran atau perpindahan (contohkasus : jika data yang diinputkan sudah dalamkeadaan terurut)

• pada algoritma menentukan max/min operasidominannya adalah operasi perbandingan “<”atau “>”

• pada algoritma searching operasi dominannyaadalah operasi “=”

• pada algoritma sorting operasi dominannyaadalah operasi “<” atau “>” operasi yang lainseperti “” tidak dominan, karena belum tentuterjadi penukaran atau perpindahan (contohkasus : jika data yang diinputkan sudah dalamkeadaan terurut)

Page 9: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contoh

• pada algoritma menentukan rata-rata operasidominannya adalah penjumlahan (+)

• pada algoritma perkalian 2 matriks operasidominannya adalah perkalian, sedangkan operasidominan yang keduanya (2nd dominantoperation) adalah penjumlahan ataupengurangan

• pada algoritma menentukan rata-rata operasidominannya adalah penjumlahan (+)

• pada algoritma perkalian 2 matriks operasidominannya adalah perkalian, sedangkan operasidominan yang keduanya (2nd dominantoperation) adalah penjumlahan ataupengurangan

Page 10: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contoh

• pada algoritma menentukan modus operasidominannya adalah pembandingan “<” atau“>” yang terjadi dalam proses pengurutan, laludiikuti dengan operasi dominan yangkeduanya (2nd dominant operation) adalahpembandingan “=” yang terjadi dalam prosesmenghitung frekuensi dari masing-masingdata

• pada algoritma menentukan modus operasidominannya adalah pembandingan “<” atau“>” yang terjadi dalam proses pengurutan, laludiikuti dengan operasi dominan yangkeduanya (2nd dominant operation) adalahpembandingan “=” yang terjadi dalam prosesmenghitung frekuensi dari masing-masingdata

Page 11: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Menentukan fungsi langkah g(n)

• g(n) = banyak kali operasi dominan dilakukan(dalam n)

max x(1) ; min x(1) ;

for i = 2 to n do

if x(i) > max then max x(i)

• g(n) = banyak kali operasi dominan dilakukan(dalam n)

max x(1) ; min x(1) ;

for i = 2 to n do

if x(i) > max then max x(i)

max x(1) ; min x(1) ;

for i = 2 to n do

if x(i) > max then max x(i)

if x(i) < min then min x(i)

max x(1) ; min x(1) ;

for i = 2 to n do

if x(i) > max then max x(i) else . . .

if x(i) < min then min x(i)

pada contoh algoritma ini diperoleh keadaanbest case, yakni ketika data terurut ascending ;dan sebaliknya akan diperoleh keadaan worstcase, yakni ketika data terurut descending ataudata terbesar berada di X(1).

Page 12: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Menentukan kompleksitas waktuO(f(n)) (Big Oh function)

• Suatu algoritma dengan fungsi langkah g(n)dikatakan mempunyai kompleksitas waktuO(f(n)) jika terdapat konstanta c>0 sedemikianhingga : g(n)≤c.f(n) untuk n>n0

• Algoritma MaxMin, CountingSort g(n) = 2n-2 Ο(n) Linear• Algoritma BubbleSort g(n) = n2/2-n/2 O(n2) Kwadratik• Algoritma Perkalian 2 matrix nxn g(n) = n3 + kn O(n3) Kubik• Algoritma MergeSort, QuickSort g(n) =(n log n) O(nlogn) Logaritmik

• Suatu algoritma dengan fungsi langkah g(n)dikatakan mempunyai kompleksitas waktuO(f(n)) jika terdapat konstanta c>0 sedemikianhingga : g(n)≤c.f(n) untuk n>n0

• Algoritma MaxMin, CountingSort g(n) = 2n-2 Ο(n) Linear• Algoritma BubbleSort g(n) = n2/2-n/2 O(n2) Kwadratik• Algoritma Perkalian 2 matrix nxn g(n) = n3 + kn O(n3) Kubik• Algoritma MergeSort, QuickSort g(n) =(n log n) O(nlogn) Logaritmik

Page 13: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contoh

Tentukan g(n) dan Big Oh function dari algoritma dibawah ini ?

k = nwhile k > 0 do begin

for i = 1 to n doif (x > 0) then . . . .

k = k div 2end

Jawaban : g(n) = n log n + 1 O(n log n)

Tentukan g(n) dan Big Oh function dari algoritma dibawah ini ?

k = nwhile k > 0 do begin

for i = 1 to n doif (x > 0) then . . . .

k = k div 2end

Jawaban : g(n) = n log n + 1 O(n log n)

Page 14: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Memahami kompleksitas waktuO(f(n))

• Ketika diadakan percobaan untuk mengetahuiwaktu tempuh beberapa algoritma denganberbagai jumlah data yang bervariasi,diperoleh data sebagai berikut :

• Waktu tempuh algoritma menentukanmax/min berbanding lurus dengan banyaknyadata.

• Ketika diadakan percobaan untuk mengetahuiwaktu tempuh beberapa algoritma denganberbagai jumlah data yang bervariasi,diperoleh data sebagai berikut :

• Waktu tempuh algoritma menentukanmax/min berbanding lurus dengan banyaknyadata.

Page 15: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Contoh kasus

N waktu tempuh(milidetik)

1.000.000 201.000.000 20

2.000.000 40

4.000.000 80

pada O(n), yang bersifat linear, diketahui semakin besar jumlahdatanya, akan semakin stabil linearitasnya.

Page 16: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Contoh kasus

• Algoritma menentukan max/min

NWaktu tempuh(menggunakan

else)

Waktu tempuh(tanpa else)

1.000.000 10 1010.000.000 120 1101.000.000 10 10

10.000.000 120 11020.000.000 150 12030.000.000 220 17040.000.000 290 22050.000.000 360 290100.000.000 720 560Prediksi 1

Milyar7200 5600

Page 17: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Contoh Kasus

• Algoritma kuadratikn Sekuensial Bubble

10.000 580 460

20.000 1.890 1.80020.000 1.890 1.800

30.000 4.000 4.095

40.000 6.900 7.260

50.000 10.435 11.325

100.000 36.200 45.415

Prediksi 1.000.000 3.620.000 4.541.500

Page 18: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Contoh Kasus

• Pada algoritma perkalian 2 matriks g(n) = npangkat 3

N waktu tempuh100 40200 320

• Pada algoritma perkalian 2 matriks g(n) = npangkat 3

100 40200 320300 730400 1.762500 3.425600 5.850700 9.160800 13.760900 19.360

1.000 26.380

Page 19: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Efisiensi Memory/Space

• Yaitu menentukan besar memory yangdiperlukan oleh suatu algoritma.

• Kebutuhan memory (space) suatu algoritmajuga tidak bisa diukur dalam satuan memory(byte, KB), karena kebutuhan memory yangsebenarnya bergantung dari banyak data danstruktur datanya. Kebutuhan memory darisuatu algoritma diukur dalam satuan problemsize n.

• Yaitu menentukan besar memory yangdiperlukan oleh suatu algoritma.

• Kebutuhan memory (space) suatu algoritmajuga tidak bisa diukur dalam satuan memory(byte, KB), karena kebutuhan memory yangsebenarnya bergantung dari banyak data danstruktur datanya. Kebutuhan memory darisuatu algoritma diukur dalam satuan problemsize n.

Page 20: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Kemudahan Implementasi

• Maksud dari kemudahan implementasi di sini adalahmengukur seberapa mudah/sederhana algoritma tersebutdibuat programnya, hal ini bisa dilihat dari teknikperancangannya atau struktur data yang digunakan. Biasanyasering digunakan dalam membandingkan suatu algoritmadengan algoritma lainnya, dan bukan diukur dengan tingkatanseperti sulit, mudah, atau pun sedang. Misalnya, bila kitamembandingkan algoritma sekuensial sort dengan quick sort,ternyata algoritma sekuensial sort lebih mudah , karenaquicksort menggunakan teknik devide & conquer.

• Pigeonhole Sort lebih mudah dibandingkan dengan Radix Sort,karena Radix Sort menggunakan queue.

• Maksud dari kemudahan implementasi di sini adalahmengukur seberapa mudah/sederhana algoritma tersebutdibuat programnya, hal ini bisa dilihat dari teknikperancangannya atau struktur data yang digunakan. Biasanyasering digunakan dalam membandingkan suatu algoritmadengan algoritma lainnya, dan bukan diukur dengan tingkatanseperti sulit, mudah, atau pun sedang. Misalnya, bila kitamembandingkan algoritma sekuensial sort dengan quick sort,ternyata algoritma sekuensial sort lebih mudah , karenaquicksort menggunakan teknik devide & conquer.

• Pigeonhole Sort lebih mudah dibandingkan dengan Radix Sort,karena Radix Sort menggunakan queue.

Page 21: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Data Movement (sorting)

• Unsur ini berusaha mencari tahu banyaknyaperistiwa perpindahan atau penukaran yangterjadi pada suatu algoritma sorting. Untukmengetahui data movement ini kadang-kadang menemui kesulitan, karena mungkintidak pasti atau mungkin diperlukanperhitungan dan penyelidikan yang lebihlanjut.

• Unsur ini berusaha mencari tahu banyaknyaperistiwa perpindahan atau penukaran yangterjadi pada suatu algoritma sorting. Untukmengetahui data movement ini kadang-kadang menemui kesulitan, karena mungkintidak pasti atau mungkin diperlukanperhitungan dan penyelidikan yang lebihlanjut.

Page 22: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Stability (sorting)

• Algoritma dapat bersifat stabil atau tidakstabil. Stabilitas suatu algoritma dapat dilihatdari kestabilan index data untuk data yangsama.

• Algoritma dapat bersifat stabil atau tidakstabil. Stabilitas suatu algoritma dapat dilihatdari kestabilan index data untuk data yangsama.

7 9a 4 9b 1 9c

1 4 7 9a 9b 9c

Index : 1 2 3 4 5 6Setelah mengalami proses pengurutan, algoritma tersebut akan disebutstabil, jika data menjadi :

Index : 5 3 1 2 4 6

Page 23: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

EFISIENSI ALGORITMA

• Dari kuliah sebelumnya sudah di bahasmengenai konsep dasar efisiensi padaumumnya, dan pada bagian ini akan di berikancontoh perhitungan waktu proses pada suatualgoritma. Contoh

s0 (a)for i1 to n doss+i (b)

write(s) (c)

• Dari kuliah sebelumnya sudah di bahasmengenai konsep dasar efisiensi padaumumnya, dan pada bagian ini akan di berikancontoh perhitungan waktu proses pada suatualgoritma. Contoh

s0 (a)for i1 to n doss+i (b)

write(s) (c)

Page 24: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

analisa• Bagian (a) di eksekusi 1 kali• Bagian (b) merupakan suatu loop, yang didasarkan atas

kenaikan harga i dari i=1 hingga i=n. Jadi statemen s=s+1akan diproses sebanyak n kali sesuai kenaikan harga i

• Bagian c akan diproses 1 kali• Karena bagian (b) merupakan bagian paling yang paling

sering diproses, maka bagian (b) merupakan operasi aktif,sedang (a) dan (c) dapat di abaikan karena bagian tersebuttidak sering diproses.

• Bagian (b) diproses sama dengan banyak data yang dimasukan (n).

• Maka program penjumlahan bilangan riil tersebutmempunyai order sebanding dengan n atau O(n).

• Bagian (a) di eksekusi 1 kali• Bagian (b) merupakan suatu loop, yang didasarkan atas

kenaikan harga i dari i=1 hingga i=n. Jadi statemen s=s+1akan diproses sebanyak n kali sesuai kenaikan harga i

• Bagian c akan diproses 1 kali• Karena bagian (b) merupakan bagian paling yang paling

sering diproses, maka bagian (b) merupakan operasi aktif,sedang (a) dan (c) dapat di abaikan karena bagian tersebuttidak sering diproses.

• Bagian (b) diproses sama dengan banyak data yang dimasukan (n).

• Maka program penjumlahan bilangan riil tersebutmempunyai order sebanding dengan n atau O(n).

Page 25: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contoh

for i2 to n doA2*n+i*n

• Analisis :Jumlah pemrosesan A=2*n+i*n mengikuti iterasidalam i, yaitu dari i=2 hingga i=n, jadi sebanyak(n-2)+1=(n-1) kali. Perhatikan disini yang pentingbukanlah berapa nilai variable A (yang merupakanfungsi dari i dan n), tapi keseringan pemrosesan A.Sehingga algoritma tadi berorder O(n)

for i2 to n doA2*n+i*n

• Analisis :Jumlah pemrosesan A=2*n+i*n mengikuti iterasidalam i, yaitu dari i=2 hingga i=n, jadi sebanyak(n-2)+1=(n-1) kali. Perhatikan disini yang pentingbukanlah berapa nilai variable A (yang merupakanfungsi dari i dan n), tapi keseringan pemrosesan A.Sehingga algoritma tadi berorder O(n)

Page 26: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

contohfor i1 to n do

for j1 to i doAn+i*j

• Analisis :Pada i=1, j berjalan dari 1 hingga 1 sehingga A diproses 1 kaliPada i=2, j berjalan dari 1 hingga 2 sehingga A diproses 2 kaliPada i=3, j berjalan dari 1 hingga 3 sehingga A diproses 3 kali… dan seterusnyaPada i=n, j berjalan dari 1 hingga n sehingga A diproses n kaliSecara keseluruhan A akan dip roses sebanyak (1+2+3+…+n)=

kali, danalgoritma tersebut mempunyai order O(n2).

for i1 to n dofor j1 to i do

An+i*j

• Analisis :Pada i=1, j berjalan dari 1 hingga 1 sehingga A diproses 1 kaliPada i=2, j berjalan dari 1 hingga 2 sehingga A diproses 2 kaliPada i=3, j berjalan dari 1 hingga 3 sehingga A diproses 3 kali… dan seterusnyaPada i=n, j berjalan dari 1 hingga n sehingga A diproses n kaliSecara keseluruhan A akan dip roses sebanyak (1+2+3+…+n)=

kali, danalgoritma tersebut mempunyai order O(n2).

nnnn21

21

2)1( 2

Page 27: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

SPACE

• Persoalan yang mendasar adalah bagaimanamengkonversi space (dalam satuan byte) kelangkah.

• Salah satu cara yang paling mudah adalahdengan menghilangkan satuannya (byte),selain itu juga dengan asumsi tipe datadinamis di perhitungkan pada alokasi awal.

• Dengan cara ini space dapat di tentukanbersama komponen lain.

• Persoalan yang mendasar adalah bagaimanamengkonversi space (dalam satuan byte) kelangkah.

• Salah satu cara yang paling mudah adalahdengan menghilangkan satuannya (byte),selain itu juga dengan asumsi tipe datadinamis di perhitungkan pada alokasi awal.

• Dengan cara ini space dapat di tentukanbersama komponen lain.

Page 28: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

SPACE

• Misal satuan variable dan konstanta yang bertipe :• int,real/float besarnya di anggap sama (misal 4 byte atau 8

byte)• char di anggap 1 byte• float array [2][2]= 4*4 byte=16 byte

• Jadi pada prinsipnya space itu statis awalnya danbesarnya tertentu, sehingga seringkali space dinyatakan ke suatu konstanta (C) tertentu (di abaikan).

• Dengan demikian dapat di katakan bahwa padaawalnya tergantung pada hasil analisa struktur programdan bentuk rekursifnya saja.

• Misal satuan variable dan konstanta yang bertipe :• int,real/float besarnya di anggap sama (misal 4 byte atau 8

byte)• char di anggap 1 byte• float array [2][2]= 4*4 byte=16 byte

• Jadi pada prinsipnya space itu statis awalnya danbesarnya tertentu, sehingga seringkali space dinyatakan ke suatu konstanta (C) tertentu (di abaikan).

• Dengan demikian dapat di katakan bahwa padaawalnya tergantung pada hasil analisa struktur programdan bentuk rekursifnya saja.

Page 29: Kompleksitas Waktu dan Effisiensi Algoritmaeprints.dinus.ac.id/8929/1/slide_4.pdf · dan sebaliknya akan diperoleh keadaan worst case, ... "Unsur ini berusaha mencari tahu banyaknya

Ringkasan

• Kompleksitas dan Efisiensi algoritma akan ditentukan dengan model matematika dalambentuk fungsi g(n).

• Klasifikasi fungsi yang sudah di pelajasi pada babsebelumnya (Notasi asimtotik), merupakan modelkompleksitas yang di dasarkan pada ukurantertentu suatu algoritma

• Pada pertemuan selanjutnya akan di bahasbagaimana menentukan kompleksitas waktutempuh dan efisiensi secara sistematis

• Kompleksitas dan Efisiensi algoritma akan ditentukan dengan model matematika dalambentuk fungsi g(n).

• Klasifikasi fungsi yang sudah di pelajasi pada babsebelumnya (Notasi asimtotik), merupakan modelkompleksitas yang di dasarkan pada ukurantertentu suatu algoritma

• Pada pertemuan selanjutnya akan di bahasbagaimana menentukan kompleksitas waktutempuh dan efisiensi secara sistematis