Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS

Slides:



Advertisements
Presentasi serupa
Kompleksitas Algoritma
Advertisements

Algoritma dan Struktur Data
TEORI ALGORITMA.
Bahasa Pemrograman dan Flow Chart
Desain dan Analisis Algoritma
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF
Design and Analysis of ALGORITHM (Session 3)
Tim Matematika Diskrit
Kompleksitas Algoritma
Desain dan Analisis Algoritma
Kompleksitas Algoritma
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Kompleksitas Waktu Asimptotik
Pertemuan 6 TREE & BINARY TREE
Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat
14. KOMPLEKSITAS ALGORITMA.
Desain dan Analisis Algoritma
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 1 PENGENALAN PERANCANGAN & ANALISIS ALGORITMA.
Pertemuan 23 BRANCH AND BOUND (1)
Pertemuan 24 BRANCH AND BOUND (2)
Pertemuan 7 PRIORITY QUEUE & HEAP
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
Pertemuan 5 STACK & QUEUE
Pertemuan Pengembangan Algoritma
14. KOMPLEKSITAS ALGORITMA. Untuk keperluan analisis algoritma, kita perlu mengetahui seberapa cepat pertumbuhan atau perkembangan suatu fungsi. Pertumbuhan.
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Pertemuan 4 ANALISIS KOMPLEKSITAS ALGORITMA
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
MERANCANG PROGRAM DAN PSEUDOCODE 1 Metode Perancang Program.
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Pertemuan 22 BACKTRACKING
Pemrograman Dasar Kelas X.
Kompleksitas Algoritma
Pengertian Algoritma Pemrograman Pertemuan 1
Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
Metode Perancang Program
MODUL 3 PSEUDOCODE.
Metode Perancangan Program
CSG523/ Desain dan Analisis Algoritma
Pertemuan 13 DYNAMIC PROGRAMMING : FIBONACCI SEQUENCE PROBLEM
PROG.STUDI PEND.FISIKA UIN ALAUDDIN MAKASSAR
Pertemuan 26 PRAKTEK ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
LATIHAN 26 Buatlah sebuah algoritma untuk menampilkan jumlah faktor pembagi bilangan X, dengan X adalah 1 hingga N ! Misal Jumlah faktor dari 1 adalah.
Pertemuan 20 GRAPH COLORING
Pertemuan 4 ALGORITMA lanjutan….
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Faktor analisa algoritma
Matakuliah : T0034/Perancangan & Analisis Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Gambaran Kuliah Pemrograman Terstruktur
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
Analisa Algoritma 3 SKS.
Bahasa Pemrograman dan Flow Chart
Pertemuan 18 CODE OPTIMIZATION
Kompleksitas Algoritma
PEMROGRAMAN I Semester I 2017/2018
Analisa algoritma rekursif
Algoritma dan Struktur Data
LOGIKA & ALGORITMA KONSEP ALGORITMA & FLOWCHART M. Febriansyah, ST., MT.
Algoritma dan Pemrograman Kuliah ke 2
Dr. Mufid Nilmada, SSi., MMSI
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
Desain dan Analisis Algoritma
Transcript presentasi:

Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008 Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS

LANGKAH DASAR ALGORITMA Sederhanakan masalah Membangun rencana penyelesaian secara matematis Merancang algoritma Menguji kebenaran algoritma Implementasi dengan suatu bahasa pemrograman yang dimengerti Dokumentasi Analisis kompleksitas algoritma Bina Nusantara

WAKTU PROSES ALGORITMA Waktu proses algoritma adalah lamanya waktu yang diperlukan komputer untuk menjalankan sebuah algoritma. Karena kecepatan komputer yang biasa kita gunakan sangat tinggi, maka biasanya waktu proses itu tidak terlalu kita perhatikan. Tidak semua algoritma dapat selesai diproses dalam waktu kurang dari satu detik. Algoritma yang kompleks dapat memerlukan waktu beberapa menit hingga berhari-hari untuk menyelesaikan prosesnya. Hal ini berlaku bahkan di komputer paling canggih sekalipun. Sejumlah algoritma dengan kompleksitas sangat tinggi bahkan ada yang memakan waktu lebih dari satu tahun untuk mengeluarkan hasil. Dalam hal merancang algoritma yang cukup kompleks, sangat penting bagi kita untuk menghitung waktu proses algoritma. [buku utama, bab 3.1] Bina Nusantara

VARIASI WAKTU PROSES Algoritma bekerja berdasarkan input yang dimasukkan user. Setiap input memiliki ukuran. Misalnya kita hendak mengurutkan sejumlah bilangan, banyaknya bilangan yang perlu diurutkan merupakan ukuran besarnya input Makin besar ukuran input yang dimasukkan, pada umumnya waktu proses akan semakin lama. Tergantung pada isi input, waktu proses dapat bervariasi : Keadaan terbaik (best case) Dilambangkan dengan notasi (...) dibaca Theta Keadaan rata-rata (average case) Dilambangkan dengan notasi (...) dibaca Omega Keadaan terburuk (worst case) Dilambangkan dengan notasi O(...) dibaca Big-O Kinerja sebuah algoritma biasanya diukur dengan menggunakan patokan keadaan terburuk (worst case) yang dinyatakan dengan Big-O Bina Nusantara

ALGORITMA Definisi 1 : waktu terburuk iff ada dua bilangan konstanta c dan no  Theorema : Misal adalah suatu polinom derajat n. Maka Bina Nusantara

ALGORITMA Definisi 2 : waktu tercepat iff ada dua konstanta c dan no  Bina Nusantara

ALGORITMA Definisi 3 : waktu rata-rata iff ada tiga konstanta positif c1, c2, dan no  Bina Nusantara

MENGHITUNG WAKTU PROSES (1) Contoh : Pseudocode Selection Sort (pseudocode 3.6) 1 for i=1 to N-1 do 2 min=i 3 for j=i+1 to N do 4 if A[j]<A[min] then 5 min=j 6 end if 7 end for 8 swap(A[i],A[min]) 9 end for Hitung waktu proses algoritma yang diperlukan untuk mengurutkan deretan yang berisi 8 angka acak ! Bagaimana jika ukuran input belum diketahui? Dinyatakan dengan N Waktu proses dinyatakan dengan sebuah persamaan N, selanjutnya disebut Fungsi Kompleksitas Fungsi Kompleksitas menyatakan seberapa kompleksnya sebuah algoritma [buku utama, bab 3.2] Bina Nusantara

MENGHITUNG WAKTU PROSES (2) Asumsi bahwa nilai N belum diketahui Bisa dihitung bahwa untuk setiap perulangan i akan terjadi perulangan j sebanyak N-1, N-2, N-3, ..., 1 kali Misalkan nilai N adalah 5, berarti kita perlu menghitung 5+4+3+2+1 (rumus deret hitung) Dengan nilai a dan b = 1 diperoleh : Bina Nusantara

GROWTH RATE Dengan rumus Fungsi Kompleksitas N(N+1)/2 berarti jika N=5 maka waktu proses adalah 15. Jika nilai N diperbesar menjadi 8, maka waktu proses menjadi 36. Nilai N dan waktu proses bisa dipetakan dalam sebuah koordinat Cartesius dengan N di sumbu x dan waktu proses di sumbu y. Terlihat bahwa waktu proses algoritma Selection Sort bertumbuh (growth rate) secara linear. Bina Nusantara

FUNGSI KOMPLEKSITAS Fungsi Kompleksitas algoritma Selection Sort di atas Jenis-jenis Fungsi Kompleksitas Big Oh f(n) adalah O(n) jika ada c > 0 dan n0 ≥ 1 yang memenuhi f(n) ≤ c.g(n) untuk n ≥ n0 Big Omega f(n) adalah Ω(n) jika ada c > 0 dan n0 ≥ 1 yang memenuhi f(n) ≥ c.g(n) untuk n ≥ n0 Big Theta f(n) adalah θ(n) jika ada c1 > 0, c2 > 0 dan n0 ≥ 1 yang memenuhi c1.g(n) ≤ f(n) ≤ c2.g(n) untuk n ≥ n0 Little oh f(n) adalah ο(n) jika ada c > 0 dan n0 ≥ 0 yang memenuhi f(n) ≤ c.g(n) untuk n ≥ n0 Little omega f(n) adalah ω(n) jika ada c > 0 dan n0 ≥ 0 yang memenuhi f(n) ≥ c.g(n) untuk n ≥ n0 Bina Nusantara

ANALISIS KOMPLEKSITAS ALGORITMA Apriori analysis yaitu suatu analisis waktu proses (computing time) suatu algoritma yang menyatakan dalam bentuk fungsi Aposteriori testing yaitu analisis dengan cara melakukan sejumlah percobaan untuk mengetahui waktu proses eksak dari suatu algoritma pada suatu komputer tertentu; bisa juga dilakukan untuk memperoleh data statistik dari waktu proses dan jumlah memori space yang digunakan Bina Nusantara

MEMBACA BIG-OH O(1) artinya algoritma konstan O(n) artinya algoritma linear O(n2) artinya algorritma quadratic O(n3) artinya algoritma qubic O(log n) contohnya pada full balanced Binary Search Tree O(nm) artinya algoritma eksponensial Notasi Big-O bisa berisi kombinasi dari contoh di atas Penyederhanaan Big-O dilakukan pada komponen yang “less important” Bina Nusantara

LATIHAN Hitunglah Fungsi Kompleksitas untuk algoritma bilangan Fibonacci yang terdapat di pertemuan sebelumnya! Bina Nusantara

Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara