Pertemuan 1_ (1)

Embed Size (px)

DESCRIPTION

pertemuan 1

Citation preview

PowerPoint Template

Design and Analysis Algorithm

Drs. Achmad Ridok M.KomImam Cholissodin, S.Si., M.KomMochammad Hannats Hanafi l., S.ST, M.TRatih Kartika Dewi, ST, M.KomPertemuan 01

Contents

Referensi2

Introduction to DAA4

Aturan Perkuliahan3

1

Topik Perkuliahan3

32

Aturan PerkuliahanKompetensi kuliahMengetahui berbagai macam algoritma yang umum diketahui berdasarkan karakteristiknyaMenggunakan tools dan teknik-teknik yang lazim digunakan untuk analisis dan desain algoritmaMendesain, menganalisis, dan menentukan kebenaran suatu algoritma terhadap kasus-kasus tertentuMembandingkan beberapa algoritma dan menentukan algoritma yang terbaik untuk memecahkan masalah3

Aturan PerkuliahanTata tertib perkuliahanTepat waktu dalam mengumpulkan tugasMenggunakan e-learningAktif dalam mengerjakan tugasHarap tenang selama proses belajar mengajarBerpakaian rapi dan sopanBerkepribadian baik, sopan & santunKehadiran minimum 80%

4

Aturan PerkuliahanE-Learninghttp://elearning.ptiik.ub.ac.id

Prosentase Penilaian (100%)Keaktifan: 5%Quiz: 10%Tugas: 30%UTS: 25%UAS: 30%

5

ReferensiThomas 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, 20036

Topik Perkuliahan7MingguTopik1Membahas silabus dan kontrak kuliah9Divide & Conquer 12Pendahuluan DAA, Struktur data10Divide & Conquer 23Notasi asymptotic (Pengajuan & Acc Paper ke-1)11Decrease & conquer (Pengajuan & Acc Paper ke-2)4Analisis efisiensi algoritma (Pengajuan & Acc Paper ke-1)12Dynamic programming 1 (Pengajuan & Acc Paper ke-2)5Algoritma brute force13Dynamic programming 26Algoritma greedy14Algoritma backtracking7Quiz 115Quiz 28UTS16UAS

Topik PerkuliahanMapping Pengajuan Paper8TugasPaperMinggu ke-i12345678910111213141516Paper1vvPaper2vv

Tugas Paper : Paper 1 :Tugas Review, Analisis & Implementasi dari Jurnal tentang algoritma dari beberapa yang telah disampaikan sebelumnya (Pilih salah satu algoritma)Dikumpulkan Minggu Pertama setelah UTS (di luar kelas) atau Minggu ke-9Paper 2Tugas Review, Analisis & Implementasi dari Jurnal tentang algoritma dari beberapa yang telah disampaikan setelah UTS (Pilih salah satu algoritma)Dikumpulkan Minggu Pertama UAS (di luar kelas)Ket (v) : Pengajuan dan Acc Paper untuk persetujuan

Contents

Referensi2

Introduction to DAA4

Aturan Perkuliahan3

1

Topik Perkuliahan3

39

Apa itu Algoritma? ? ?

10

Definisi AlgoritmaSeperti Resep Suatu Makanan

Resep....................dst

Algoritma11

Definisi AlgoritmaAlgoritma adalah urutan logis langkah-langkah untuk penyelesaian masalah.Algoritma merupakan metode efektif berupa list instruksi yang telah didefinisikan dengan baik untuk perhitungan sebuah fungsi.Karakteristik Algoritma :Langkah-langkah perhitungan di dalamnya tidak ambiguTerdapat tranformasi proses input ke outputDapat digunakan untuk menyelesaikan suatu masalah-masalah dalam bentuk perhitunganNotasinya dapat ditulis dalam pseudo code

12

Algoritma: Kasus ITerdapat 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?Penyelesaian :

13

Algoritma: Kasus IIMisalkan 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.Penyelesaian :

14

Algoritma: Kasus IIIAda dua buah ember dengan kapasitas 5 liter dan 3 liter. Gunakan dua buah ember tersebut untuk mendapatkan tepat 4 liter airPenyelesaian :

15

Notasi algoritmikMenggunakan uraian kalimat deskriptifFlow chartPseudo code

16

Notasi algoritmikPrestest (10 menit) :Buatlah flowchart untuk mencari nilai rata-rata bilangan genap dari sejumlah bilangan yang diinputkan.Buatlah flowchart untuk mencari nilai terbesar dari sejumlah n bilangan yang diinputkanBuatlah flowchart untuk mencari indek bilangan terbesar dari sekumpulan nilai dalam array A.

17

Syarat Sebuah AlgoritmaMenurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting:Harus berhenti setelah melakukan beberapa langkah terbatasSetiap langkah harus didefinisikan dengan tepat dan tidak ambiguMemiliki nol atau lebih masukanMemiliki nol atau lebih keluaranHarus efektif (sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal)

18

Contoh : Algoritma AProblem: Input berupa sequence integer yang tersimpan dalam array19

25, 90, 53, 23, 11, 34INPUTOUTPUTinstance11ALGORITHM

m a[1];for i 2 to size do if m < a[i] then m a[i]; end ifend forreturn m

Output : nilai minimum

Contoh : Algoritma BAlgoritma ini menggunakan 2 temporary arrays. Visualisasikan ?20copy 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; end forend while3. Output t2[1];89561134720

Visualisasi Algoritma B

2189561134720

658757

5

Loop 1Loop 2Loop 3

Contoh : Algoritma CUrutkan input dalam urutan naik. Keluaran berupa elemen pertama dari data yang telah diurutkan

2289561134720

56789112034

Sorting black box

Contoh : Algoritma DUntuk setiap elemen, ujilah apa elemen itu merupakan nilai minimum.23i 0;flag true;While flagi i+1;min a[i];flag false;for j 1 to size of inputif min > a[j] then flag true;Output min.

Pendekatan umum dalam desain algoritmaDivide and conquer Greedy method Dynamic programmingBasic searchGraph theoryLinear programming

24

Aplikasi dengan DAASorting Data retrieval Network routing GamesDll25

The Study of AlgorithmHow to devise/design algorithmsHow to express algorithmsHow to validate algorithmsHow to analyze algorithmsHow to test a program26

Define ProblemProblem:Description of Input-Output relationshipAlgorithm: 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.27

Pentingnya analisis algoritmaMengenali kekurangan dari beragam algoritma untuk penyelesaian suatu masalahMengetahui hubungan :problem size dan running timeWhen is a running program not good enough?Mengetahui secara analisis running time sebuah algoritma tanpa mengkodekannyaMengetahui teknik untuk membuat kode yang lebih efisienMengetahui bagian mana dari kode yang dapat dioptimasi28

Why do we analyze about them?understand their behavior(Job -- Selection, performance, modify)improve them (Research)29

What do we analyze about them?CorrectnessDoes the input/output relation match algorithm requirement?Amount of work done (aka complexity) Basic operations to do task Amount of space usedMemory usedSimplicity, clarityVerification and implementation. OptimalityIs it impossible to do better?30

Hitunglah running time algoritma berikutPUZZLE(x) while x != 1 if x is even then x = x / 2 else x = 3x + 1 end if

Sample run: 7, 22; 11, 34; 17, 52; 26,13; 40, 20; 10, 5; 16, 8; 131

The Selection Problem (1/2)Problem: given a group of n numbers, determine the kth largestAlgorithm 1Simpan bilangan dalam sebuah arrayUrutkan array secara descendingReturn bilangan pada posisi-k

32

The Selection Problem(2/2)Algorithm 2Simpan bilangan k pertama dalam sebuah arrayUrutkan array secara descendingUntuk setiap bilangan yang tersisa, jika bilangan tersebut lebih besar daripada bilangan ke-k, masukkan bilangan tersebut pada posisi yang benar di dalam arrayReturn bilangan pada posisi-k

Which algorithm is better?

33

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.

34

Time vs. Size of InputMeasurement 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

35Input Size

4 02Tc (n)Running time (second)

Td(n)

Kompleksitas algoritmaUkuran yang digunakan untuk menyatakan keefektifan sebuah algoritmaUkuran yang digunakan untuk mengukur seberapa besar pertumbuhan komputasi sebuah algoritma36

What do we need?Correctness: Whether the algorithm computes the correct solution for all instances

Efficiency: Resources needed by the algorithm1. Time: Number of steps.2. Space: amount of memory used.Measurement model: Worst case, Average case, andBest case.

37

38Jadi, Apa itu Desain dan Analisis Algoritma

Design dan Analysis AlgorithmDesign an algorithm (Correctness)Prove the algorithm is correct.Loop invariant.Non Recursive Or Recursive function.Formal (mathematical) proof.

Analyze the algorithm (Efficiency)TimeWorst case, best case, average case. For some algorithms, worst case occurs often, average case is often roughly as bad as the worst case. So generally, worse case running time.SpaceNumber of steps.

39

LatihanBuatlah sebuah algoritma dalam Flow chart atau Pseudo code, untuk :Menampilkan N bilangan pertama secara terbalik.Contoh : 10, 9, 8, 7, 6, 5, 4, 3, 2, 1Menerima sebuah bilangan X dari user. Tampilkan pesan benar jika X habis dibagi 2, 3 atau 7 dan tampilkan salah jika tidak habis dibagi.

40

Lain-LainPembentukan Kelompok (maks 5 org/kelompok)Ketua DAA di Kelas :Nama : Hp : Email : 41

Lain-LainPembentukan Kelompok (maks 5 org/kelompok)Ketua DAA di Kelas : DAA_BNama : Hidayatullah Agung PHp : 081253547562Email : [email protected]

Thank You !