Kompleksitas Algoritma

Slides:



Advertisements
Presentasi serupa
Pengertian Dasar Logika dan Algoritma
Advertisements

Desain Dan Analisis Algoritma
Algoritma dan Struktur Data
Dosen : Rinci Kembang Hapsari, S.Si
PERTEMUAN 4 TAHAP PEMROGRAMAN.
Aryo Pinandito, ST, M.MT - PTIIK UB
Fundamentals Of Algorithmics Gilles Brassard & Paul Bratley.
Desain Dan Analisis Algoritma
Algoritma Divide and Conquer
Desain dan Analisis Algoritma
Tim Matematika Diskrit
Kompleksitas Algoritma
PENCARIAN (SEARCHING)
PENGANTAR ALGORITMA DAN PEMROGRAMAN
Dasar Pemrograman ARRAY/LARIK.
Kompleksitas Algoritma
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Algoritma dan Struktur Data
Kompleksitas Waktu Asimptotik
Kompleksitas Algoritma
Array dan String.
Algoritma Divide and Conquer
Design and Analysis Algorithm
Algoritma dan Struktur Data
Algoritma (Struktur, Tipe Data, Input/Output)
PERTEMUAN 2 PENGERTIAN DASAR LOGIKA DAN ALGORITMA.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
Apakah Algoritma & Struktur Data itu ?
PERTEMUAN 4 TAHAP PEMROGRAMAN.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
Analisa Algoritma Running Time.
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Algoritma Divide and Conquer (Bagian 2) Wahyul Wahidah Maulida, ST.,M.Eng.
Algoritma Divide and Conquer (Bagian 1) Wahyul Wahidah Maulida, ST., M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Kompleksitas Algoritma
Algoritma dan pemrograman (lanjutan)
Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma
Algoritma Divide and Conquer
Exhaustive Search.
Algoritma dan Struktur Data
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Rahmat Deddy Rianto Dako, ST, M.Eng
Array 1.
Faktor analisa algoritma
Matakuliah : T0034/Perancangan & Analisis Algoritma
Pengenalan Analisis Algoritma
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
Pengantar.
Analisa Algoritma : Pendahuluan
MATERI PERKULIAHAN ANALISIS ALGORITMA
CS1023 Pemrograman Komputer
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
ALGORITMA DAN PEMROGRAMAN III
Analisis dan Perancangan Algoritma
Kompleksitas Algoritma
Algoritma Divide and Conquer
Kompleksitas Algoritma
Algoritma Divide and Conquer
Analisa algoritma rekursif
PERTEMUAN II PENGANTAR
Algoritma Divide and Conquer
Pengertian Dasar Logika dan Algoritma. LOGIKA Pertama kali diperkenalkan oleh Aristoteles (384 – 322 SM) Logika berasal dari kata Yunani kuno λόγος (logos)
Dr. Mufid Nilmada, SSi., MMSI
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
Transcript presentasi:

Kompleksitas Algoritma Pertemuan 1 Kompleksitas Algoritma

Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). 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 ialah algoritma yang meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus.

Model Perhitungan Kebutuhan Waktu/Ruang Kita dapat mengukur waktu yang diperlukan oleh sebuah algoritma dengan menghitung banyaknya operasi/instruksi yang dieksekusi (basic operation) : operasi dasar dari suatu algoritma yg terjadi selama running time.   Jika kita mengetahui besaran waktu (dalam satuan detik) untuk melaksanakan sebuah operasi tertentu, maka kita dapat menghitung berapa waktu sesungguhnya untuk melaksanakan algoritma tersebut

Model perhitungan kebutuhan waktu seperti di atas kurang berguna, karena: 1. Dalam praktek, tidak mempunyai informasi berapa waktu sesungguhnya untuk melaksanakan suatu operasi tertentu 2. Komputer dengan arsitektur yang berbeda akan berbeda pula lama waktu untuk setiap jenis operasinya.

Model abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun.   Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang.

Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n.   Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n.

Ukuran masukan (n): jumlah data yang diproses oleh sebuah algoritma. Contoh: algoritma pengurutan 1000 elemen larik, maka n = 1000. Contoh: algoritma TSP pada sebuah graf lengkap dengan 100 simpul, maka n = 100. Contoh: algoritma perkalian 2 buah matriks berukuran 50 x 50, maka n = 50. Dalam praktek perhitungan kompleksitas, ukuran masukan dinyatakan sebagai variabel n saja.

Kompleksitas Waktu Jumlah tahapan komputasi dihitung dari berapa kali suatu operasi dilaksanakan di dalam sebuah algoritma sebagai fungsi ukuran masukan (n). Di dalam sebuah algoritma terdapat bermacam jenis operasi: Operasi baca/tulis Operasi aritmetika (+, -, *, /) Operasi pengisian nilai (assignment) Operasi pengakasesan elemen larik Operasi pemanggilan fungsi/prosedur dll Dalam praktek, kita hanya menghitung jumlah operasi khas (tipikal) yang mendasari suatu algoritma

Contoh 2. Tinjau algoritma menghitung rerata pada Contoh 1 Contoh 2. Tinjau algoritma menghitung rerata pada Contoh 1. Operasi yang mendasar pada algoritma tersebut adalah operasi penjumlahan elemen-elemen ak (yaitu jumlahjumlah+ak), yang dilakukan sebanyak n kali.   Kompleksitas waktu T(n) = n.

Kompleksitas waktu dibedakan atas tiga macam : 1. Tmax(n) : kompleksitas waktu untuk kasus terburuk (worst case), kebutuhan waktu maksimum. 2. Tmin(n) : kompleksitas waktu untuk kasus terbaik (best case), kebutuhan waktu minimum. 3. Tavg(n) : kompleksitas waktu untuk kasus rata-rata (average case)  kebutuhan waktu secara rata-rata

Efisiensi Worst-Case, Best-Case, dan Average-Case Untuk menghitung efisiensi suatu algoritma tidak hanya tergantung pada parameter size dari input, tetapi juga tergantung pada spesifikasi inputan.

Worst-case efficiency Efisiensi untuk input worst-case berukuran n, dimana algoritma berjalan paling lama dari kemungkinan input yang ada. Analisa worst-case menjamin bahwa suatu program tidak akan pernah melebihi Cworst (n), yaitu running time pada inputan worst-case (terburuk).

Best-case efficiency Efisiensi untuk input best-case berukuran n, dimana algoritma berjalan paling cepat dari kemungkinan input yang ada. Average-case efficiency Dihitung bukan berdasarkan rata-rata worst-case dan best-case. Untuk menganalisanya, kita harus membuat asumsi-asumsi dari input berukuran n yang mungkin.

Tugas 1 Hitung kompleksitas waktu algoritma berikut