SlideShare a Scribd company logo
1 of 18
Download to read offline
Kompleksitas Waktu dan
Ruang
Sukmawati Nur Endah
Departemen Informatika UNDIP
Kemangkusan Algoritma
(Efisiensi Algoritma)
 Algoritma yang bagus adalah algoritma yang mangkus
 Kemangkusan algoritma diukur dari :
 Berapa jumlah waktu dan ruang (space) memori yang
dibutuhkan untuk menjalankannya
 Algoritma yang mangkus :
 Algoritma yang meminimumkan kebutuhan waktu dan ruang
 Kebutuhan waktu dan ruang tergantung pada :
 Ukuran masukan (jumlah data) yang diproses
 Biasa disimbolkan dengan n
 Misal : Mengurutkan 1000 buah elemen  n = 1000
Menghitung 6!  n = 6
Mengapa kita memerlukan
Algoritma yang mangkus
Ilustrasi
 Dipunyai :
 Algoritma yang waktu eksekusinya dalam orde eksponensial (2n),
dengan n adalah jumlah masukan yang diproses
 Sebuah komputer yang mampu menjalankanprogram dengan
masukan berukuran n dalam waktu 10-4 x 2n detik
 Dengan algoritma dan komputer tersebut, maka:
 n=10 dibutuhkan waktu eksekusi 0,1024 detik ~ 1/10 detik
 n=20 dibutuhkan waktu eksekusi 104,8576 detik ~ ...??... menit
 Berapa waktu yang dibutuhkan untuk n = 30?
 Jika dapat menjalankan komputer tanpa gangguan selama 1
tahun, berapa masukan yang dapat diselesaikan dalam 1 tahun
tersebut?
 Apa yang harus dilakukan agar mampu menyelesaikan jumlah
masukan lebih banyak?
Ilustrasi
 Solusi 1
 Membeli komputer baru yang lebih cepat (10-6)  dengan
masukan n maka kecepatannya 10-6 x 2n detik
 Berapa masukan yang dapat dilakukan dengan komputer baru
tersebut?
 Solusi 2
 Mengubah algoritmanya, misalkan menemukan algoritma baru
untuk masalah sama dengan waktu penyelesaian n3
 Sehingga dengan menggunakan komputer 1 dapat
menyelesaikan masalah dalam waktu 10-4 x n3 detik
 Satu hari dapat menyelesaikan lebih dari 900 masukan, berapa
dalam satu tahun?
 Berapa masukan dapat diselesaikan dengan komputer 2 dalam
satu tahun?
Kebutuhan Waktu dan Ruang
 Kebutuhan waktu dihitung dalam satuan detik
 Kebutuhan ruang dihitung dalam satuan byte atau kilobyte
 Bagaimana menghitung kebutuhan waktu?
 Biasanya dengan menghitung durasi waktu yang dibutuhkan algoritma
dalam menyelesaikan masalah tanpa menghitung kebutuhan waktu
untuk menampilkan antar muka program, operasi I/O (baca/tulis)
 Ilustrasi : Menghitung rata-rata dari n buah data dengan prosedur
HitungRerata
 Asumsikan data masukan sudah dibaca
 Jalankan program yang mengandung prosedur itu
 Hitung selisih waktu sebelum pemanggilan prosedur dan sesudah
selesai pemanggilan
 Selisih tersebut merupakan kebutuhan waktu menghitung rerata n
buah data
 Namun, model perhitungan seperti ini kurang dapat diterima, apa
alasannya?
Kebutuhan Waktu dan Ruang
 Alasan 1:
 Arsitektur komputer yang berbeda menghasilkan waktu yang
berbeda pula untuk melaksanakan operasi-operasi dasar
(penambahan, perkalian, pembagian, pengurangan)
 Kebutuhan waktu jika menjalankan pada komputer IBM akan
berbeda dengan saat dieksekusi pada komputer Macintosh
 Komputer dengan arsitektur yang berbeda maka :
 Akan berbeda pula perintah (instruction) dalam bahasa mesin yang
dimilikinya
 Akan berbeda pula kecepatan (speed) operasi piranti kerasnya
 Perbedaan ini menghasilkan ukuran waktu (dan kebutuhan ruang
memori) yang berbeda pula
 Misal : komputer super cepat saat ini mampu melakukan operasi
dasar dalam waktu 10-9 detik, tapi PC biasa memerlukan 10-6
detik
Kebutuhan Waktu dan Ruang
 Alasan 2:
 Kebutuhan waktu sebuah algoritma bergantung pada
compiler bahasa pemrograman yang digunakan
 Compiler yang berbeda akan menerjemahkan program
(dalam bahasa tingkat tinggi) ke dalam kode mesin (object
code-bahasa tingkat rendah) yang berbeda pula
 Kode mesin yang berbeda akan menggunakan ruang memori
dan memerlukan waktu pelaksanaan program yang berbeda
pula
 Model pengukuran waktu/ruang harus independen dari
pertimbangan mesin dan compiler apapun
 Besaran yang dipakai  kompleksitas algoritma
Kompleksitas Algoritma
 Ada dua macam :
 Kompleksitas waktu
 Kompleksitas ruang
 Kompleksitas waktu diekspresikan sebagai jumlah
tahapan komputasi yang dibutuhkan untuk menjalankan
algoritma sebagai fungsi dari ukuran masukan n
 Kompleksitas ruang diekspresikan sebagai jumlah memori
yang digunakan oleh struktur data yang terdapat di
dalam algoritma sebagai fungsi dari ukuran masukan n
Terminologi Kompleksitas
Waktu/Ruang
 Ukuran besar masukan data untuk suatu algoritma : n
 Komplekitas waktu : T(n)  jumlah operasi yang dilakukan
 Kompleksitas ruang : S(n)  jumlah memori yang
dibutuhkan
 Pembahasan lebih lanjut berfokus pada kompleksitas waktu
dengan pertimbangan :
 Kompleksitas ruang terkait erat dengan bentuk struktur data
 Ukuran memori sudah bukan lagi persoalan kritis
Kompleksitas Waktu
 Perhatikan Algoritma menghitung rata-rata berikut ini:
Procedure HitungRerata (input a1,a2, ...an: integer, output r : real)
Deklarasi
i : integer
jumlah : real
Algoritma
jumlah ← 0
i ← 1
while i ≤ n do
jumlah ← jumlah + ai
i ← i+1
endwhile
r ← jumlah / n
Kompleksitas waktu
 Jenis operasi yang ada dalam Algoritma HitungRerata
 Operasi pengisian nilai
jumlah ← 0 1 kali
i ← 1 1 kali
jumlah ← jumlah + a1 n kali
i ← i+1 n kali
r ← jumlah / n 1 kali
 Jumlah seluruh operasi pengisian nilai : 3 + 2n
Lanjutan
 Operasi penjumlahan
jumlah + a1 n kali
i+1 n kali
 Jumlah seluruh operasi penjumlahan : 2n
 Operasi pembagian
jumlah / n 1 kali
 Jumlah seluruh operasi pembagian : 1
 Kompleksitas waktu : Total waktu yang diperlukan
3+2n+2n+1 = 4n + 4
Kompleksitas Waktu
 Idealnya untuk menghitung kompleksitas adalah seperti
di atas
 Namun untuk alasan praktis : cukup dihitung jumlah
operasi abstrak yag mendasari suatu algoritma
 Contoh :
 Algoritma pencarian  operasi perbandingan x dengan
elemen larik-lariknya
 Algoritma pengurutan  operasi perbandingan elemen-
elemen larik dan operasi pertukaran elemen-elemen
 Algoritma perkalian dua matriks A x B masing-masing
berukuran n x n ???
Kompleksitas Waktu
 Apa operasi dasar untuk Algoritma HitungRerata?
 Jika berdasarkan operasi dasarnya, berapa T(n) Algoritma
HitungRerata?
Latihan
 Buatlah algoritma untuk mencari elemen terbesar di
dalam sebuah larik (array) yang berukuran n elemen
 Apa operasi dasarnya?
 Berapa kompleksitas waktu berdasarkan operasi dasarnya?
Tiga Jenis Kompleksitas Waktu
 Tmax (n) : Kompleksitas waktu untuk kasus terburuk (worst case)
 Kebutuhan waktu maksimum yang diperlukan sebuah algoritma sebagai
fungsi dari n
 Tmin (n) : Kompleksitas waktu untuk kasus terbaik (best case)
 Kebutuhan waktu minimum yang diperlukan sebuah algoritma sebagai
fungsi dari n
 Tavg (n) : Kompleksitas waktu untuk kasus rata-rata (average case)
 Kebutuhan waktu rata-rata yang diperlukan sebuah algoritma sebagai
fungsi dari n
PR
 Buatlah algoritma pencarian beruntun (sequensial search)
 Hitunglah kompleksitas waktu terbaik, terburuk dan rata-rata
dari algoritma tersebut!

More Related Content

What's hot

Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Tri Jayanti
 
Algoritma Pencarian String matching
Algoritma Pencarian String matching Algoritma Pencarian String matching
Algoritma Pencarian String matching Kukuh Setiawan
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsiSiti Khotijah
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAdam Mukharil Bachtiar
 
Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputerHamdi Hamdi
 
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAnalisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAdam Mukharil Bachtiar
 
Teknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair CipherTeknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair CipherRivalri Kristianto Hondro
 
Desain dan analisis algoritma
Desain dan analisis algoritmaDesain dan analisis algoritma
Desain dan analisis algoritmaDiki Rosandy
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )istiqlal
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika MatematikaTaufik_Yui
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi PengetahuanSherly Uda
 
Laporan aplikasi perancangan database sederhana
Laporan aplikasi perancangan database sederhanaLaporan aplikasi perancangan database sederhana
Laporan aplikasi perancangan database sederhanasaniatyeva
 

What's hot (20)

Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]Metode numerik [rifqi.ikhwanuddin.com]
Metode numerik [rifqi.ikhwanuddin.com]
 
Algoritma Pencarian String matching
Algoritma Pencarian String matching Algoritma Pencarian String matching
Algoritma Pencarian String matching
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Makalah Pemrograman C++
Makalah Pemrograman C++Makalah Pemrograman C++
Makalah Pemrograman C++
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputer
 
Data mining
Data miningData mining
Data mining
 
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAnalisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma Greedy
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Teknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair CipherTeknik Enkripsi dan Dekripsi Playfair Cipher
Teknik Enkripsi dan Dekripsi Playfair Cipher
 
Desain dan analisis algoritma
Desain dan analisis algoritmaDesain dan analisis algoritma
Desain dan analisis algoritma
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika Matematika
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
 
2 alfabet dan string
2 alfabet dan string2 alfabet dan string
2 alfabet dan string
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
 
Laporan aplikasi perancangan database sederhana
Laporan aplikasi perancangan database sederhanaLaporan aplikasi perancangan database sederhana
Laporan aplikasi perancangan database sederhana
 

Similar to KOMPLEKSITAS ALGORITMA

Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02KuliahKita
 
Matematika Diskrit 4.pdf
Matematika Diskrit 4.pdfMatematika Diskrit 4.pdf
Matematika Diskrit 4.pdfGunkSatria1
 
EFFICIENCY & Complexity.pptx
EFFICIENCY & Complexity.pptxEFFICIENCY & Complexity.pptx
EFFICIENCY & Complexity.pptxnurnur469094
 
Dasar pemrograman pascal
Dasar pemrograman pascalDasar pemrograman pascal
Dasar pemrograman pascalSimon Patabang
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdfdedisusanto41
 
algoritma dan pemrograman
algoritma dan pemrogramanalgoritma dan pemrograman
algoritma dan pemrogramanhanary
 
Algoritma Dan Pemrograman komputer, rekam medis
Algoritma Dan Pemrograman komputer, rekam medisAlgoritma Dan Pemrograman komputer, rekam medis
Algoritma Dan Pemrograman komputer, rekam medisgalihpersadha
 
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxMateri Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxAmuharnis1
 
Pengenalan algoritma.ppt
Pengenalan algoritma.pptPengenalan algoritma.ppt
Pengenalan algoritma.ppteriekorlando3
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritmaBraga Rezpect
 
Algorithm & Data Structure - Pengantar
Algorithm & Data Structure - PengantarAlgorithm & Data Structure - Pengantar
Algorithm & Data Structure - PengantarDudy Ali
 

Similar to KOMPLEKSITAS ALGORITMA (20)

Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
 
Matematika Diskrit 4.pdf
Matematika Diskrit 4.pdfMatematika Diskrit 4.pdf
Matematika Diskrit 4.pdf
 
Minggu ketiga
Minggu ketigaMinggu ketiga
Minggu ketiga
 
EFFICIENCY & Complexity.pptx
EFFICIENCY & Complexity.pptxEFFICIENCY & Complexity.pptx
EFFICIENCY & Complexity.pptx
 
Dasar pemrograman pascal
Dasar pemrograman pascalDasar pemrograman pascal
Dasar pemrograman pascal
 
Algoritma Pemrogaman
Algoritma PemrogamanAlgoritma Pemrogaman
Algoritma Pemrogaman
 
Diktat MatLab
Diktat MatLabDiktat MatLab
Diktat MatLab
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Algoritma dan data struktur pdf
Algoritma dan data struktur pdfAlgoritma dan data struktur pdf
Algoritma dan data struktur pdf
 
algoritma dan pemrograman
algoritma dan pemrogramanalgoritma dan pemrograman
algoritma dan pemrograman
 
Algoritma Dan Pemrograman komputer, rekam medis
Algoritma Dan Pemrograman komputer, rekam medisAlgoritma Dan Pemrograman komputer, rekam medis
Algoritma Dan Pemrograman komputer, rekam medis
 
2.sd 13.ok
2.sd 13.ok2.sd 13.ok
2.sd 13.ok
 
2.sd 13
2.sd 132.sd 13
2.sd 13
 
Pseudocode
PseudocodePseudocode
Pseudocode
 
Bab II
Bab IIBab II
Bab II
 
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptxMateri Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
Materi Pemrograman Dasar 1.1 Algoritma Pemrograman.pptx
 
Pengenalan algoritma.ppt
Pengenalan algoritma.pptPengenalan algoritma.ppt
Pengenalan algoritma.ppt
 
Pertemuan 1 algoritma
Pertemuan 1 algoritmaPertemuan 1 algoritma
Pertemuan 1 algoritma
 
Algorithm & Data Structure - Pengantar
Algorithm & Data Structure - PengantarAlgorithm & Data Structure - Pengantar
Algorithm & Data Structure - Pengantar
 
Tistrukdat9
Tistrukdat9Tistrukdat9
Tistrukdat9
 

KOMPLEKSITAS ALGORITMA

  • 1. Kompleksitas Waktu dan Ruang Sukmawati Nur Endah Departemen Informatika UNDIP
  • 2. Kemangkusan Algoritma (Efisiensi Algoritma)  Algoritma yang bagus adalah algoritma yang mangkus  Kemangkusan algoritma diukur dari :  Berapa jumlah waktu dan ruang (space) memori yang dibutuhkan untuk menjalankannya  Algoritma yang mangkus :  Algoritma yang meminimumkan kebutuhan waktu dan ruang  Kebutuhan waktu dan ruang tergantung pada :  Ukuran masukan (jumlah data) yang diproses  Biasa disimbolkan dengan n  Misal : Mengurutkan 1000 buah elemen  n = 1000 Menghitung 6!  n = 6
  • 4. Ilustrasi  Dipunyai :  Algoritma yang waktu eksekusinya dalam orde eksponensial (2n), dengan n adalah jumlah masukan yang diproses  Sebuah komputer yang mampu menjalankanprogram dengan masukan berukuran n dalam waktu 10-4 x 2n detik  Dengan algoritma dan komputer tersebut, maka:  n=10 dibutuhkan waktu eksekusi 0,1024 detik ~ 1/10 detik  n=20 dibutuhkan waktu eksekusi 104,8576 detik ~ ...??... menit  Berapa waktu yang dibutuhkan untuk n = 30?  Jika dapat menjalankan komputer tanpa gangguan selama 1 tahun, berapa masukan yang dapat diselesaikan dalam 1 tahun tersebut?  Apa yang harus dilakukan agar mampu menyelesaikan jumlah masukan lebih banyak?
  • 5. Ilustrasi  Solusi 1  Membeli komputer baru yang lebih cepat (10-6)  dengan masukan n maka kecepatannya 10-6 x 2n detik  Berapa masukan yang dapat dilakukan dengan komputer baru tersebut?  Solusi 2  Mengubah algoritmanya, misalkan menemukan algoritma baru untuk masalah sama dengan waktu penyelesaian n3  Sehingga dengan menggunakan komputer 1 dapat menyelesaikan masalah dalam waktu 10-4 x n3 detik  Satu hari dapat menyelesaikan lebih dari 900 masukan, berapa dalam satu tahun?  Berapa masukan dapat diselesaikan dengan komputer 2 dalam satu tahun?
  • 6. Kebutuhan Waktu dan Ruang  Kebutuhan waktu dihitung dalam satuan detik  Kebutuhan ruang dihitung dalam satuan byte atau kilobyte  Bagaimana menghitung kebutuhan waktu?  Biasanya dengan menghitung durasi waktu yang dibutuhkan algoritma dalam menyelesaikan masalah tanpa menghitung kebutuhan waktu untuk menampilkan antar muka program, operasi I/O (baca/tulis)  Ilustrasi : Menghitung rata-rata dari n buah data dengan prosedur HitungRerata  Asumsikan data masukan sudah dibaca  Jalankan program yang mengandung prosedur itu  Hitung selisih waktu sebelum pemanggilan prosedur dan sesudah selesai pemanggilan  Selisih tersebut merupakan kebutuhan waktu menghitung rerata n buah data  Namun, model perhitungan seperti ini kurang dapat diterima, apa alasannya?
  • 7. Kebutuhan Waktu dan Ruang  Alasan 1:  Arsitektur komputer yang berbeda menghasilkan waktu yang berbeda pula untuk melaksanakan operasi-operasi dasar (penambahan, perkalian, pembagian, pengurangan)  Kebutuhan waktu jika menjalankan pada komputer IBM akan berbeda dengan saat dieksekusi pada komputer Macintosh  Komputer dengan arsitektur yang berbeda maka :  Akan berbeda pula perintah (instruction) dalam bahasa mesin yang dimilikinya  Akan berbeda pula kecepatan (speed) operasi piranti kerasnya  Perbedaan ini menghasilkan ukuran waktu (dan kebutuhan ruang memori) yang berbeda pula  Misal : komputer super cepat saat ini mampu melakukan operasi dasar dalam waktu 10-9 detik, tapi PC biasa memerlukan 10-6 detik
  • 8. Kebutuhan Waktu dan Ruang  Alasan 2:  Kebutuhan waktu sebuah algoritma bergantung pada compiler bahasa pemrograman yang digunakan  Compiler yang berbeda akan menerjemahkan program (dalam bahasa tingkat tinggi) ke dalam kode mesin (object code-bahasa tingkat rendah) yang berbeda pula  Kode mesin yang berbeda akan menggunakan ruang memori dan memerlukan waktu pelaksanaan program yang berbeda pula  Model pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun  Besaran yang dipakai  kompleksitas algoritma
  • 9. Kompleksitas Algoritma  Ada dua macam :  Kompleksitas waktu  Kompleksitas ruang  Kompleksitas waktu diekspresikan sebagai jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n  Kompleksitas ruang diekspresikan sebagai jumlah memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n
  • 10. Terminologi Kompleksitas Waktu/Ruang  Ukuran besar masukan data untuk suatu algoritma : n  Komplekitas waktu : T(n)  jumlah operasi yang dilakukan  Kompleksitas ruang : S(n)  jumlah memori yang dibutuhkan  Pembahasan lebih lanjut berfokus pada kompleksitas waktu dengan pertimbangan :  Kompleksitas ruang terkait erat dengan bentuk struktur data  Ukuran memori sudah bukan lagi persoalan kritis
  • 11. Kompleksitas Waktu  Perhatikan Algoritma menghitung rata-rata berikut ini: Procedure HitungRerata (input a1,a2, ...an: integer, output r : real) Deklarasi i : integer jumlah : real Algoritma jumlah ← 0 i ← 1 while i ≤ n do jumlah ← jumlah + ai i ← i+1 endwhile r ← jumlah / n
  • 12. Kompleksitas waktu  Jenis operasi yang ada dalam Algoritma HitungRerata  Operasi pengisian nilai jumlah ← 0 1 kali i ← 1 1 kali jumlah ← jumlah + a1 n kali i ← i+1 n kali r ← jumlah / n 1 kali  Jumlah seluruh operasi pengisian nilai : 3 + 2n
  • 13. Lanjutan  Operasi penjumlahan jumlah + a1 n kali i+1 n kali  Jumlah seluruh operasi penjumlahan : 2n  Operasi pembagian jumlah / n 1 kali  Jumlah seluruh operasi pembagian : 1  Kompleksitas waktu : Total waktu yang diperlukan 3+2n+2n+1 = 4n + 4
  • 14. Kompleksitas Waktu  Idealnya untuk menghitung kompleksitas adalah seperti di atas  Namun untuk alasan praktis : cukup dihitung jumlah operasi abstrak yag mendasari suatu algoritma  Contoh :  Algoritma pencarian  operasi perbandingan x dengan elemen larik-lariknya  Algoritma pengurutan  operasi perbandingan elemen- elemen larik dan operasi pertukaran elemen-elemen  Algoritma perkalian dua matriks A x B masing-masing berukuran n x n ???
  • 15. Kompleksitas Waktu  Apa operasi dasar untuk Algoritma HitungRerata?  Jika berdasarkan operasi dasarnya, berapa T(n) Algoritma HitungRerata?
  • 16. Latihan  Buatlah algoritma untuk mencari elemen terbesar di dalam sebuah larik (array) yang berukuran n elemen  Apa operasi dasarnya?  Berapa kompleksitas waktu berdasarkan operasi dasarnya?
  • 17. Tiga Jenis Kompleksitas Waktu  Tmax (n) : Kompleksitas waktu untuk kasus terburuk (worst case)  Kebutuhan waktu maksimum yang diperlukan sebuah algoritma sebagai fungsi dari n  Tmin (n) : Kompleksitas waktu untuk kasus terbaik (best case)  Kebutuhan waktu minimum yang diperlukan sebuah algoritma sebagai fungsi dari n  Tavg (n) : Kompleksitas waktu untuk kasus rata-rata (average case)  Kebutuhan waktu rata-rata yang diperlukan sebuah algoritma sebagai fungsi dari n
  • 18. PR  Buatlah algoritma pencarian beruntun (sequensial search)  Hitunglah kompleksitas waktu terbaik, terburuk dan rata-rata dari algoritma tersebut!