ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

dokumen-dokumen yang mirip
AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Kompleksitas Algoritma

Kompleksitas Algoritma

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Kompleksitas Algoritma (1)

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Kompleksitas Algoritma

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Kompleksitas Algoritma

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Pengurutan (Sorting) Algoritma Pemrograman

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Algoritma dan Kompleksitas Algoritma

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Algoritma Divide and Conquer. (Bagian 2)

Algoritma Divide and Conquer (Bagian 2)

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

ALGORITMA PENGURUTAN & PENCARIAN

Kompleksitas Algoritma

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Algoritma Brute Force

BAB 2 LANDASAN TEORI

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Array (Tabel) bagian 2

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Algoritma Brute Force

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Searching [pencarian] Algoritma Pemrograman

PERSEGI ANGKA-HURUF VERTIKAL

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

ALGORITMA DAN PEMROGRAMAN

ANALISIS ALGORITMA BINARY SEARCH

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

*** SELAMAT MENGERJAKAN

Algoritma Divide and Conquer (Bagian 1)

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Analisa Algoritma. Konsep Algoritma

MODUL IV PENCARIAN DAN PENGURUTAN

UNIVERSITAS GUNADARMA

Logika dan Algoritma Yuni Dwi Astuti, ST 2

STRATEGI DIVIDE AND CONQUER

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

MAKALAH ALGORITMA DIVIDE AND CONQUER

Powered by icomit.wordpress.com

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

BAB VI SEARCHING (PENCARIAN)

ALGORITMA DIVIDE AND CONQUER

Algoritma dan Pemrograman Searching/Pencarian

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

LOOPING. Brigida Arie Minartiningtyas, M.Kom

Design and Analysis Algorithm

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Design and Analysis Algorithm

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Soal hari Selasa (13/10) Latihan 7 AN

PERTEMUAN 11 TEHNIK SEARCHING

Algoritma Brute Force Oleh: Rinaldi Munir

Langkah Awal menuju Analisis Kompleksitas Algoritma

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

IF5110 Teori Komputasi. Teori Kompleksitas. (Bagian 1) Oleh: Rinaldi Munir. Program Studi Magister Informatika STEI-ITB

Kompleksitas Algoritma Sorting yang Populer Dipakai

Kompleksitas Algoritma Quick Sort

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

JARINGAN UNTUK MERGING

BAB 2 LANDASAN TEORI

Algoritma dan Pemrograman 2 PENGURUTAN

Penentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Design and Analysis of Algorithm

BAB V SORTING (PENGURUTAN) INTERNAL

Pendahuluan. Ukuran input (input s size)

Struktur Data Linier. Input. Program untuk menyelesaikan masalah. Algoritma Penyelesaian. Proses. Masalah. Struktur Data. Output

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Decrease and Conquer

Analisis Kecepatan Sorting Dengan Notasi Big O

Penerapan Algoritma Runut-balik pada Permainan Math Maze

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

Analisis dan Strategi Algoritma

Algoritma Brute Force (lanjutan)

Analisis Algoritma Bubble Sort

Algoritma Pemrograman

Algoritma dan Pemrograman Array

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

BAB VII ALGORITMA DIVIDE AND CONQUER

Transkripsi:

ANALISIS ALGORITMA Analisis Masalah dan Running Time Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail.com

AGENDA PERKULIAHAN

DEFINISI MASALAH f x = a 0 + a n cos nπx + b n sin nπx n=1, x = 1 L L Pertanyaan atau tugas yang harus dicari solusinya

CONTOH MASALAH DAN SOLUSI ( 1 ) Masalah: [Masalah Pengurutan] Diberikan array (senarai) yang terdiri dari n buah bilangan bulat. Bagaimana mengurutkan n buah bilangan tersebut secara descending? Solusi: Barisan bilangan di dalam array yang terurut secara descending.

CONTOH MASALAH DAN SOLUSI ( 2 ) Masalah: [Masalah Pencarian] Diberikan array (senarai) yang terdiri dari n buah bilangan bulat. Tentukan apakah bilangan x terdapat pada array tersebut! Solusi: Menampilkan Data ditemukan jika bilangan x terdapat di array tersebut dan menampilkan Data tidak ditemukan jika bilangan x tidak terdapat di array tersebut.

INSTANSIASI MASALAH Instansiasi Masalah: Parameter nilai yang diasosiasikan terhadap masalah. Jawaban dari masalah adalah solusi. Contoh: Selesaikan masalah pengurutan descending: Bil={6,2,4,1,3,5} n=6 //Jumlah input data Solusi: Bil={6,5,4,3,2,1}

KENAPA BUTUH ALAT UKUR ALGORITMA Sebuah algoritma tidak saja harus benar tetapi juga harus mangkus (efisien) Bagaimana Mengukurnya? Algoritma yang mangkus adalah algoritma yang meminimumkan penggunaan space (ruang) dan waktu.

HUBUNGAN WAKTU EKSESKUSI TERHADAP INPUT 10-4 x 2 n Waktu komputasi (dalam detik) 10 5 10 4 10 3 10 2 10 1 10-1 1 hari 1 jam 1 detik 1 menit 10-6 x 2 n 10-4 x n 3 10-6 x n 3 5 10 15 20 25 30 35 40 Ukuran masukan

ALAT UKUR EFISIENSI ALGORITMA Alat Ukur: Kompleksitas Waktu T(n) Kompleksitas Ruang S(n) Keterangan: n: Ukuran masukan yang diterima oleh algoritma T(n): Jumlah operasi yang dilakukan untuk menjalankan algoritma sebagai fungsi dari n S(n): Ruang memori yang dibutuhkan algoritma sebagai fungsi dari n

PENGUKURAN UKURAN INPUT Definisi: Jumlah data yang diproses oleh sebuah algoritma. Dalam perhitungan kompleksitas algoritma, ukuran masukan dinyatakan sebagai variabel n. Contoh: Pengurutan 100 elemen array n = 100 Pencarian elemen pada array dua dimensi ukuran 4 x 5 n=20 Penelusuran complete binary tree dengan 10 node secara preorder n=10

PENGUKURAN RUNNING TIME Menggunakan satuan waktu standar (second/milisecond). Tergantung pada: a. Kecepatan komputer b. Kualitas program c. Compiler. Running time dihitung berdasarkan operasi dasar.

PENJELASAN OPERASI DASAR Definisi: Operasi yang paling mendominasi sebagian besar running time suatu algoritma. Operasi Dasar Bisa Berupa: Operasi aritmatika (penjumlahan, pengurangan, perkalian, pembagian, dll) Operasi pengaksesan memori Operasi input dan output

CONTOH OPERASI DASAR PADA ALGORITMA Algoritma pencarian elemen dalam array Operasi khas: Perbandingan nilai antar elemen array. Algoritma pengurutan elemen dalam array Operasi khas: Perbandingan nilai antar elemen array dan pertukaran elemen. Algoritma penjumlahan dua buah array dua dimensi Operasi khas: Penjumlahan. Algoritma perkalian dua buah array dua dimensi Operasi khas: Perkalian dan penjumlahan.

CONTOH PERHITUNGAN RUNNING TIME ( 1 ) Operasi Dasar: Perbandingan x mod 2 = 1 (perbandingan sisa bagi) Kompleksitas Running Time: T(n) = n, karena operasi dasar diulang dari 1 sampai akhir data

CONTOH PERHITUNGAN RUNNING TIME ( 2 ) Operasi Dasar: Perbandingan a k > maks (perbandingan elemen yang diperiksa terhadap maks) Kompleksitas Running Time: T(n) = n-1, karena operasi dasar diulang dari data ke-2 sampai akhir data

JENIS KOMPLEKSITAS RUNNING TIME Tmax(n) Kompleksitas waktu untuk kasus terburuk (worst case) kebutuhan waktu maksimum. Tmin(n) Kompleksitas waktu untuk kasus terbaik (best case) kebutuhan waktu minimum. Tavg(n) Kompleksitas waktu untuk kasus rata-rata (average case) kebutuhan waktu secara rata-rata.

CONTOH PERHITUNGAN ( 1 ) Kasus Terbaik: Apabila a 1 = x. T min (n) = 1 Kasus Terburuk: Apabila a n = x atau x tidak ditemukan. T max (n) = n Kasus Rata-Rata: Apabila x ditemukan pada posisi ke-j, maka operasi perbandingan akan dieksekusi sebanyak j kali. T avg (n) =

CONTOH PERHITUNGAN ( 2 ) procedure Urut(input/output a 1, a 2,..., a n : integer) Deklarasi i, j, imaks, temp : integer Algoritma for i n downto 2 do { pass sebanyak n 1 kali } imaks 1 for j 2 to i do if a j > a imaks then imaks j endif endfor { pertukarkan a imaks dengan a i } temp a i a i a imaks a imaks temp Kasus Terbaik dan Terburuk: Sorting tidak terikat pada kondisi awal data terurut atau tidak. Jumlah operasi perbandingan elemen untuk setiap perulangan ke-i adalah: i = n jumlah perbandingan = n 1 i = n 1 jumlah perbandingan = n 2 i = n 2 jumlah perbandingan = n 3 Sampai.. i = 2 jumlah perbandingan = 1 Jumlah seluruh operasi perbandingan elemen-elemen larik adalah: T(n) = (n 1) + (n 2) + + 1 = endfor

LATIHAN PERHITUNGAN procedure Kali(input x:integer, n:integer, output jumlah : integer) {Mengalikan x dengan i = 1, 2,, j, yang dalam hal ini j = n, n/2, n/4,,1 Masukan: x dan n (n adalah perpangakatan dua). Keluaran: hasil perkalian (disimpan di dalam peubah jumlah). } Deklarasi i, j, k : integer Algoritma j n while j 1 do for i 1 to j do x x * i endfor j j div 2 endwhile { j > 1 } jumlah x