Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Design and Analysis of Algorithm Introduction Aryo Pinandito, ST, M.MT - PTIIK UB.

Presentasi serupa


Presentasi berjudul: "Design and Analysis of Algorithm Introduction Aryo Pinandito, ST, M.MT - PTIIK UB."— Transcript presentasi:

1 Design and Analysis of Algorithm Introduction Aryo Pinandito, ST, M.MT - PTIIK UB

2 Algoritma  Apa itu Algoritma?  Kenapa memerlukan algoritma? Asal Usul Kata  Kata algoritma dari nama Abu Ja'fat Mohammed Ibn Musa al-Khowarizmi, seorang ilmuan Persia yang menulis buku berjudul Kitab al jabr w'al-muqabala (rules of restoration and reduction) sekitar tahun 825 Masehi  Tahun 1950 istilah algorithm selalu diasosiasikan dengan Euclid ' s algorithm, yaitu suatu proses yang menjelaskan cara mencari bilangan pembagi terbesar untuk dua buah bilangan.

3 Definisi Algoritma  Merriam-Webster ' s Collegiet Dictionary istilah algorithm diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau penyelesaian suatu tugas khususnya dengan menggunakan bantuan komputer  Step-by-step procedure for calculations. More precisely, it is an effective method expressed as a finite list of well-defined instructions for calculating a function

4 Syarat Algoritma  Menurut Donald E Knuth (The Art of Computer Programming), algoritma harus memenuhi persyaratan berikut:  Input:  Memiliki nol atau lebih masukan dari luar.  Output  Memiliki minimal satu buah keluaran.  Definiteness (pasti)  Memiliki instruksi-instruksi yang jelas dan tidak ambigu.  Finiteness (ada batas):  Memiliki titik berhenti (stopping role)  Effectiveness (tepat dan efisien)  Sebisa mungkin harus dapat dilaksanakan dan efektif.

5 Algorithm Definition Overview  Algoritma mendeskripsikankan urutan langkah- langkah yang diperlukan untuk menyelesaikan suatu permasalahan dan memiliki ciri-ciri sebagai berikut;  Selalu memiliki terminasi/langkah akhir  Setiap langkah dinyatakan secara jelas, tegas, dan tidak bermakna ganda (ambigu)  Setiap langkah sederhana, sehingga kinerjanya efisien  Memberikan hasil (output), mungkin dengan satu atau tanpa input.

6 What is a Program?  A program is the expression of an algorithm in a programming language  a set of instructions which the computer will follow to solve a problem

7 Algoritma dalam Kerangka Penyelesaian Permasalahan PermasalahanSolusi Penyelesaian Masalah Algoritma Source Code Program Executable Code

8 Algoritma: Kasus I  Terdapat ember A yang berisi cairan biru dan ember B yang berisi cairan kuning. Misalkan ada sesorang yang ingin menukarkan isi cairan dari kedua ember tersebut bagaimana caranya?

9 Algoritma: Kasus II  Ada dua buah ember dengan kapasitas 5 liter dan 3 liter. Gunakan dua buah ember tersebut untuk mendapatkan tepat 4 liter air.

10 Algoritma: Kasus III  Misalkan seorang pemuda tiba ditepisebuah sungai. Pemuda tersebut membawa seekor kambing, seekor serigala, dan sekeranjang sayur. Mereka hendak menyeberangi sungai. Pemuda itu menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaannya setiap kali menyeberang. Situasinya dipersulit dengan kenyataan bahwa serigala tidak dapat ditinggal berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Bagaimana cara menyeberangkan pemuda dan seluruh bawaannya dengan selamat?

11 Notasi algoritmik  Menggunakan uraian kalimat deskriptif  Flow chart  Pseudo code

12 The study of algorithm 12  How to devise/design algorithms  How to express algorithms  How to validate algorithms  How to analyze algorithms  How to test a program

13 Importance of analyze algorithm 13  Need to recognize limitations of various algorithms for solving a problem  Need to understand relationship between problem size and running time  When is a running program not good enough?  Need to learn how to analyze an algorithm's running time without coding it  Need to learn techniques for writing more efficient code  Need to recognize bottlenecks in code as well as which parts of code are easiest to optimize

14 What do we analyze about them?  Correctness  Does the input/output relation match algorithm requirement?  Amount of work done (aka complexity)  Basic operations to do task  Amount of space used  Memory used  Simplicity, clarity  Verification and implementation.  Optimality  Is it impossible to do better?

15 Kompleksitas algoritma  The complexity of an algorithm is simply the amount of work the algorithm performs to complete its task.  Ukuran yang digunakan untuk menyatakan keefektifan sebuah algoritma  Ukuran yang digunakan untuk mengukur seberapa besar pertumbuhan komputasi sebuah algoritma  Asymptotic Notations:  O (big oh)   (big omega)   (big theta)

16 Example: The Minimum Number Problem  Input: a sequence of integers stored in array.  Problem: Output the minimum.  Algorithm: Search

17 Algorithm A

18 Algorithm B copy the input a to array t1; assign n  size of input;  While n > 1 For i  1 to n/2 t2[ i ]  min (t1 [ 2*i ], t1[ 2*i + 1] ); copy array t2 to t1; n  n/2;  Output t2[1];

19 Visualization of Algorithm B Loop 1 Loop 2 Loop 3

20 Algorithm C 20  Using sort method to sort the input in increasing order and return the first element of the sorted data Sorting black box

21 Algorithm D 21 For each element, test whether it is the minimum.

22 The algorithms are correct, but which is the best?  Measure the running time (number of operations needed).  Measure the amount of memory used.  Note that the running time of the algorithms increase as the size of the input increases. Which Algorithm Is Better?

23 Correctness: Whether the algorithm computes the correct solution for all instances Efficiency: Resources needed by the algorithm 1. Time: Number of steps. 2. Space: Amount of memory used. Measurement “model”: Worst case, Average case and Best case. What do we need?

24 Measurement parameterized by the size of the input. The algorithms A,B,C are implemented and run in a PC. Algorithms D is implemented and run in a supercomputer. Let T k ( n ) be the amount of time taken by the Algorithm Input Size T b (n) T a (n) T c (n) Running time (second) Td(n)Td(n) Time vs. Size of Input

25 Terima Kasih Thank You Danke Gratias Merci ありがとうございます 감사합니 다 Kiitos 谢谢 ﺷﻜﺮﺍ ﹰ Grazias धन्यवाद


Download ppt "Design and Analysis of Algorithm Introduction Aryo Pinandito, ST, M.MT - PTIIK UB."

Presentasi serupa


Iklan oleh Google