Algoritma dan Struktur Data

dokumen-dokumen yang mirip
Design and Analysis Algorithm

Pendahuluan. Ukuran input (input s size)

Kompleksitas Algoritma

Pengantar Analisa Algoritma

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Logika dan Algoritma Yuni Dwi Astuti, ST 2

Design and Analysis Algorithm

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

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

Kompleksitas Algoritma

Design and Analysis of Algorithm

Kompleksitas Algoritma

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

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

Langkah Awal menuju Analisis Kompleksitas Algoritma

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

Kompleksitas Algoritma

Kompleksitas Algoritma

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

Analisa Kompleksitas Algoritma. Sunu Wibirama

Kompleksitas Algoritma dalam Strategi Algoritma Sorting

Algoritma dan Struktur Data. Performansi Algoritma

Analisis Algoritma Bubble Sort

Kompleksitas Komputasi

Analisis Kecepatan Sorting Dengan Notasi Big O

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

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

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Algoritma Sorting (Selection Insertion)

Algoritma dan Kompleksitas Algoritma

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2

BAB 2 LANDASAN TEORI

ANALISIS ALGORITMA BINARY SEARCH

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Langkah Awal menuju Analisis Kompleksitas Algoritma

STRATEGI DIVIDE AND CONQUER

JARINGAN UNTUK MERGING

BAB 2 LANDASAN TEORI

Kompleksitas Algoritma (1)

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Design and Analysis Algorithm

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

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

Sorting Algorithms. Buble Sort

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Decrease and Conquer

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

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

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Program Attributes. Algorithm Analysis. Time Consumption. Algoritma

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Outline STRUKTUR DATA. VII. Sorting

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Bubble Sort dan Shell-Sort. Yuliana Setiowati

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

METODE DEVIDE AND CONQUER (DANDC)

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

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

SEARCHING & SORTING. Pendahuluan

Struktur Data & Algoritma

Algoritma Divide and Conquer (Bagian 2)

Kompleksitas Algoritma Euclidean dan Stein(FPB Biner)

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

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

Kompleksitas Algoritma Dalam Algoritma Pengurutan

BAB 2 LANDASAN TEORI

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

BAB VI SORTIR ATAU PENGURUTAN

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

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

SORTING (BAGIAN II) Proses kelima

Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB 3 ANALISA SISTEM

Aplikasi OBE Untuk Mengurangi Kompleksitas Algoritma Program Penghitung Determinan Matriks Persegi

BAB 2 LANDASAN TEORI

Algoritma Brute Force

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Kompleksitas Algoritma Rank Sort dan Implementasi pada Parallel Programming Dengan Menggunakan OpenMP

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

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

Design and Analysis of Algorithm

Algoritma Brute Force

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

Kompleksitas Algoritma dalam menentukan Solvabilitas Sliding N-Puzzle

Struktur Data & Algoritme (Data Structures & Algorithms)

Struktur Data dan Algoritme. Struktur Data & Algoritme (Data Structures & Algorithms) Struktur Data dan Algoritme. Objectives.

Kompleksitas Algoritma Quick Sort

BAB V Tujuan 5.1 Rekursi Dasar

BAB 2 LANDASAN TEORI

RESUME ALGORITMA MERGE SORT DAN REKURENS

DESAIN DAN ANALISIS STRUKTUR DATA NON LINIER ROOTED TREE DINAMIS (Kata kunci: Graf, Struktur data, tree, LCA, pemrograman dinamis)

Design and Analysis of Algorithms CNH2G3- Week 6 Brute Force Algorithm Part 1: Design Strategy

Transkripsi:

Algoritma dan Struktur Data Click to edit Master subtitle style Pertemuan 3 Pengantar Analisis Efisiensi Algoritma

Analisa efisiensi algoritma bertujuan mengestimasi waktu dan memori yang dibutuhkan untuk mengeksekusi sebuah algoritma atau fungsi Ø Ø Efisiensi waktu seberapa cepat algoritma dieksekusi Efisiensi memori berapa banyak memori yang dibutuhkan untuk menjalankan algoritma

Faktor apa yang mempengaruhi efisiensi waktu sebuah algoritma? Ukuran input banyaknya data input yang diolah oleh algoritma Contoh :??? Basic operation bagian dari algoritma yang yang dieksekusi berulang - ulang

Algorithm sequential search (A[0..n-1], K) // searches for a given value in a given array by sequential search // input: an array A[0..n-1] and a search key K // output: returns the index of the first element of A that matches K or -1 if there are no matching elements i 0 1 x while i n and A[i] K do 2 x i i + 1 1 x if i n return i 2 x else return -1 1 x Jelaskan isi algoritma di atas

Berapa ukuran input algoritma sequential search? Tunjukkan basic operationnya Ø Ø Basic operation selalu merupakan bagian loop paling dalam. Mengapa??? Bagian program non basic operation memberi tambahan sangat kecil pada waktu eksekusi program

Sequential Search i 0 1 x while i n and A[i] K do 2 x i i + 1 1 x if i n return i 2 x else return -1 1 x Estimasikan waktu eksekusi algoritma sequential search!

T(n) = cop x C(n) T(n) = estimasi waktu eksekusi algoritma untuk input berukuran n Cop = waktu untuk mengeksekusi basic operation satu kali. Biasanya ditentukan 1 satuan waktu. Pada contoh sequential search, 1 satuan waktu kira - kira membutuhkan berapa clock CPU???

T(n) = cop x C(n) C(n) berapa kali basic operation dieksekusi untuk data berukuran n Pada kasus sequential search nilai C(n) tergantung dari posisi elemen yang akan dicari

Best Case, Worst Case, Average Case Best-case Anda beruntung. Nilai yang dicari ada pada posisi awal array. Setelah nilainya ditemukan, algoritma selesai dieksekusi. C(n) = 1 dan T(n) = 1 satuan waktu Worst-case Anda sial. Nilai yang dicari ada di posisi terakhir array atau tidak ada di array. C(n) = n dan T(n) = n satuan waktu Average-case Kasus paling umum. Nilai yang dicari bisa terletak di elemen

Average Case Asumsikan 1. Data yang dicari memang ada pada array 2. Probabilitas data yang dicari terdapat di elemen tertentu sama besar untuk semua elemen array. Sehingga probabilitas sebuah data muncul pada elemen ke i adalah 1/n

Average Case Banyaknya eksekusi basic operation jika data yang dicari ada pada posisi 1st position = 1 2nd position = 2. ith position = i. nth position = n

C(n) atau banyaknya eksekusi basic operation untuk data berukuran n 1 (1/n) + 2 (1/n) + 3 (1/n) +.. + i (1/ n) + + n (p/n) = (1/n)(1 + 2 + 3 + + n) = (1/n)(n(n+1))/2 = (n+1)/2 Average Case T(n) = (n+1)/2 satuan waktu

Catatan Ø Ø Tujuan utama mencari T(n) bukan mencari waktu eksak yang dibutuhkan untuk mengeksekusi sebuah algoritma Tetapi untuk mengetahui tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah (order of growth)

Orders of Growth Tingkat pertambahan waktu eksekusi algoritma jika ukuran input bertambah

Orders of Growth Urutkan waktu eksekusi algoritma di bawah ini berdasarkan order of growthnya T1 (n) = n2 T1 (10) = 100 T1 (100) = 10,000 T2(n) = 2n T2(10) = 1,028 T2(100) = 1.3 x 030 T3(n) = n3 T3(10) = 1,000 T3(100) = 1,000,000 T4(n) = n T4(10) = 10 T4(100) = 100 T5(n) = log2 n T5(10) = 3.3 T5(100) = 6.6

Orders of Growth C constant, we write O(1) logn logarithmic N linear NlogN N2 quadratic N3 cubic 2N exponential N! factorial Ø Makin ke bawah, order of growth makin besar Ø Untuk input data berukuran besar, algoritma dengan order of growth besar eksekusi waktunya jauh lebih lama dari algoritma dengan order of growth kecil

The Big-Oh Notation f(n) Є O(g(n)) Cara membaca f(n) berada pada kelas g(n) f(n) Є O(g(n)) Jika orders of growth f(n) kurang atau sama dengan(n).

The Big-Oh Notation C constant, we write O(1) logn logarithmic N linear NlogN N2 quadratic N3 cubic 2N exponential N! factorial N2 Є O(N2) paling presisi NlogN Є O(N2) N Є O(N2) log2n Є O(N2) logn Є O(N2) C Є O(N2)

O(1) Waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. O(log n) Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n. Rinaldi M/IF2091 Strukdis 1919

O(n) Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula. O(n log n) Bila n dijadikan dua kali semual, maka n log n menjadi lebih dari dua kali semula (tetapi tidak terlalu banyak) Rinaldi M/IF2091 Strukdis 2020

O(n2) Bila n dinaikkan menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat menjadi empat kali semula. O(n3) Bila n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat menjadi delapan kali semula. Rinaldi M/IF2091 Strukdis 2121

O(2n) Bila n dijadikan dua kali semula, waktu pelaksanaan menjadi kuadrat kali semula! O(n!) Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma menjadi faktorial dari 2n. Rinaldi M/IF2091 Strukdis 2222

Nilai masing-masing fungsi untuk setiap bermacam-macam nilai n log n n n log n n 2 n 3 2 n n! 0 1 0 1 1 2 1 1 2 2 4 8 4 2 2 4 8 16 64 16 24 3 9 24 64 512 256 362880 4 16 64 256 4096 65536 20922789888000 5 32 160 1024 32768 4294967296 (terlalu besar ) Rinaldi M/IF2091 Strukdis 2323

Tugas v Implementasikan bubble sort dalam bahasa C v Hitung T(n) untuk bubble sort v Efisiensi waktu bubble sort berada pada kelas apa? v v Dikumpulkan dan dibahas pada pertemuan pertama setelah libur lebaran Tugas dipresentasikan oleh mahasiswa yang memiliki nomor urut mod 10 == 8