Desain & Analisis Algoritma

Slides:



Advertisements
Presentasi serupa
Desain Dan Analisis Algoritma
Advertisements

Algoritma dan Struktur Data
Introduction to The Design & Analysis of Algorithms
Aryo Pinandito, ST, M.MT - PTIIK UB
Design and Analysis of Algorithm Recursive Algorithm Analysis
Fundamentals Of Algorithmics Gilles Brassard & Paul Bratley.
1 Algoritma Bahasa Pemrograman dan Bab 1.1. Pengertian Algoritma.
ANALISIS ALGORITMA DAN PEMROGRAMAN
Desain dan Analisis Algoritma
Design and Analysis of ALGORITHM (Session 3)
Pemrograman Komputer.
Modul-8 : Algoritma dan Struktur Data
Pertemuan 3 LINKED LIST (PART 2) Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009.
2. Introduction to Algorithm and Programming
Algoritma (Komputer) EL 2001 – Dasar Pemrograman Budi Rahardjo Teknik Elektro ITB
Algoritma Indriati ,ST .,M.Kom.
Pengantar Algoritma dan pemograman
Desain dan Analisis Algoritma
Algoritma (Komputer).
Design and Analysis Algorithm
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 1 PENGENALAN PERANCANGAN & ANALISIS ALGORITMA.
BLACK BOX TESTING.
Testing Implementasi Sistem Oleh :Rifiana Arief, SKom, MMSI
1 Diselesaikan Oleh KOMPUTER Langkah-langkah harus tersusun secara LOGIS dan Efisien agar dapat menyelesaikan tugas dengan benar dan efisien. ALGORITMA.
Organisasi dan arsitektur komputer
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
P31035 Algorithms and Complexity 3 SKS
1 Pertemuan 13 Algoritma Pergantian Page Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5.
Imam Cholissodin | Algoritma Evolusi Imam Cholissodin |
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Pertemuan 1 Muhamad Haikal,S.Kom., MT
Strategi Algoritma Kuliah 1 : Peran Algoritma
ALGORITMA DAN PEMROGRAMAN
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algorithm complexity Lesson 4 CSG3F3.
Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
CSG523/ Desain dan Analisis Algoritma
Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
MATERI PERKULIAHAN ANALISIS ALGORITMA
Design and Analysis Algorithm
Analisa Algoritma (IF1282)
AKT211 – CAO 08 – Computer Memory (2)
CSG523/ Desain dan Analisis Algoritma
FONDASI PEMROGRAMAN & STRUKTUR DATA #1
Faktor analisa algoritma
Problem solving by Searching
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
Analisa Algoritma Konsep Algoritma.
Algoritma Indriati ,ST .,M.Kom.
Algorithms and Programming Searching
Analisa Algoritma : Pendahuluan
MATERI PERKULIAHAN ANALISIS ALGORITMA
Desain dan Analisis Algoritma
Gambaran Kuliah Pemrograman Terstruktur
Recursive function.
Analisa Algoritma 3 SKS.
Matakuliah : Algoritma & Struktur Data Versi Materi
Strategi Algoritma Kuliah 3 : Algoritma Efisien
Teknik Pengujian Software
EL 2001 – Dasar Pemrograman Budi Rahardjo Teknik Elektro ITB
Master data Management
Data Structures and Algorithms Introduction. Introduction Prerequisites Basic Computer Programming Language Discreet Mathematics.
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
ALGORITMA 1 Temu 1.
Defri Kurniawan SORTING Defri Kurniawan
Dynamic Programming.
Aplikasi Graph Minimum Spaning Tree Shortest Path.
Algoritma dan struktur data
Perulangan (Loop) Oleh : Tim Teaching
Algorithms. Introduction The methods of algorithm design form one of the core practical technologies of computer science. The main aim of this lecture.
Transcript presentasi:

Desain & Analisis Algoritma Introduction Drs. Achmad Ridok M.Kom Fitra A. Bachtiar, S.T., M. Eng Imam Cholissodin, S.Kom., M.Kom Aryo Pinandito, MT.

Tata tertib perkuliahan Tepat waktu dalam mengumpulkan tugas Menggunakan e-learning Aktif dalam mengerjakan tugas Harap tenang selama proses belajar mengajar Berpakaian rapi dan sopan Kehadiran minimum 80%

Outline 1. Introduction to The Design & Analysis of Algorithms, Fundamental Data Structures (a review) 6. Greedy Algorithm 2. Fundamentals of the Analysis of Algorithm Efficiency 7. Divide and Conquer 3. Asymptotic Notations 8. Decrease and Conquer 4. Contoh analisa algoritma dan perhitungan kompleksitasnya 9. Pemrograman dinamis (dynamic programming) 5. Brute Force Algorithms 10 Space and Time Tradeoff

Referensi Thomas H. Cormen, Charles E.Leiserson, Ronald L. Rivest, Introduction To Algorithms, MIT Press/McGraw-Hill, 2001 Anany Levitin, Introduction To The Design & Analysis of Algorithms, Addison Wesley, 2003

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? Jawab : Dengan cara kata-kata : Maka yang akan dilakukan yang pertama kali adalah menambah ember yaitu ember c. Ember c ini dalam keadaan kosong atau tidak berisi cairan. Setelah itu isi cairan dalam ember a dituangkan atau dipindah ke ember c maka ember a akan kosong. Jadi cairan dalam ember b bisa dipindah ke ember a dan ember c dipindah ke b.

Algoritma: Kasus II Misalkan seorang pemuda tiba ditepi sebuah sungai. Pemuda tersebut membawa seekor kambing, seekor srigala, 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 srigala tidak dapat ditinggal berdua dengan kambing (karena srigala akan memangsa kambing) atau kambing tidak dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur). Buatlah algoritma untuk menyeberangkan pemuda dan seluruh bawaannya itu sehingga mereka sampai keseberang sungai dengan selamat.

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

APA ITU ALGORITMA ??

Definisi algoritma Algoritma adalah urutan logis langkah-langkah penyelesaian masalah. 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

Notasi algoritmik Menggunakan uraian kalimat deskriptif Flow chart Pseudo code

Syarat sebuah algoritma Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting: Harus berhenti setelah melakukan beberapa langkah terbatas Setiap langkah harus didefinisikan dengan tepat dan tidak ambigu Memiliki nol atau lebih masukan Memiliki nol atau lebih keluaran Harus efektif (sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal)

Example Algorithm A Problem: The input is a sequence of integers stored in array. Output the minimum. Algorithm A

Example Algorithm B This algorithm uses two temporary arrays. 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; 3. Output t2[1];

Visualize Algorithm B 34 6 5 9 20 8 11 7 Loop 1 6 5 8 7 Loop 2 5 7

Example Algorithm C Sort the input in increasing order. Return the first element of the sorted data. 8 9 5 6 11 34 7 20 black box Sorting 5 6 7 8 9 11 20 34

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

General approaches to algorithm design Divide and conquer Greedy method Dynamic programming Basic search Graph theory Linear programming

Techniques can be applied to Sorting Data retrieval Network routing Games Etc.

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

Importance of analyze algorithm 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

Why do we analyze about them? Understand their behavior, and (Job -- Selection, performance, modify) Improve them. (Research)

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?

What is the running time of this algorithm? PUZZLE(x) while x != 1     if x is even      then  x = x / 2      else x = 3x + 1 Sample run:  7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1

The Selection Problem (1/2) Problem: given a group of n numbers, determine the kth largest Algorithm 1 Store numbers in an array Sort the array in descending order Return the number in position k

The Selection Problem(2/2) Algorithm 2 Store first k numbers in an array Sort the array in descending order For each remaining number, if the number is larger than the kth number, insert the number in the correct position of the array Return the number in position k Which algorithm is better?

Example what is an algorithm? Problem: Input = sequence of integers stored in an array. Output = output the minimum. Algorithm INPUT OUTPUT instance m:= a[1]; for I:=2 to size of input if m > a[I] then m:=a[I]; return s 25, 90, 53, 23, 11, 34 11 m Data-Structure

Define Problem Problem: Description of Input-Output relationship Algorithm: A sequence of computational step that transform the input into the output. Data Structure: An organized method of storing and retrieving data. Our task: Given a problem, design a correct and good algorithm that solves it.

Which algorithm is better? 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. Thursday, November 15, 2018 Design and Analysis of Computer Algorithm

Design and Analysis of Computer Algorithm What do we need? 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. Thursday, November 15, 2018 Design and Analysis of Computer Algorithm

Design and Analysis of Computer Algorithm Time vs. Size of Input 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 Tk( n ) be the amount of time taken by the Algorithm 4 2 Tc (n) Running time (second) Td(n) Tb (n) Ta (n) 500 1000 Input Size Design and Analysis of Computer Algorithm Thursday, November 15, 2018Thursday, November 15, 2018

Kompleksitas algoritma Ukuran yang digunakan untuk menyatakan keefektifan sebuah algoritma Ukuran yang digunakan untuk mengukur seberapa besar pertumbuhan komputasi sebuah algoritma

PENILAIAN QUIZ = 10% TUGAS = 30% (60% final project + 40% tugas) UTS = 30% UAS = 30%

Lain-Lain Dosen : Pembentukan Kelompok (maks 5 org/kelompok) Nama : Imam Cholissodin, S.Kom., M.Kom Hp : 085648067872 Email : imam.cholissodin@gmail.com Pembentukan Kelompok (maks 5 org/kelompok) Ketua Kelas A : Nama : Moch. Arius eko cahyono Hp : 085755681343 Email : ariuscahyono@yahoo.co.id

Terimakasih… See you next week