desain dan analisis algoritmatugas • buat sebuah algoritma yang akan menerima sebuah bilangan x...

23
DESAIN DAN ANALISIS ALGORITMA

Upload: others

Post on 21-Nov-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

DESAIN DAN ANALISIS ALGORITMA

Page 2: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Course Policy

• Grading policy– Tugas : 20% (60% final project + 40%

tugas)– Quiz : 20%– Keaktifan : 10%– UTS : 25%– UAS : 25%

2

Page 3: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

References

• Thomas H. Cormen, Charles E.Leiserson, Ronald L. Rivest, Introduction To Algorithms, MIT Press/McGraw-Hill, 2001

• AnanyLevitin, Introduction To The Design &Analysis of Algorithms, AddisonWesley, 2003

3

Page 4: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

• Kompleksitas algoritma• Model dan analisis• Algoritma Brute Force• Algoritma divide and conquer• Algoritma decrease and conquer• Algoritma greedy• Dynamic programming• Algoritma searching and sorting• Graph• Space and time tradeoff

4

Page 5: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

WHY ARE WE HERE?

Page 6: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

ALGORITMA

1

Page 7: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

ALGORITMA

Algorithm is a recipe

Page 8: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Problem Solving

•Commands

•Iteration

•Decision

•Row-column

elements

Algorithm

Begining

Page 9: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

ASPEK PENTINGALGORITMA

2

Page 10: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

FINITENESS

Page 11: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

int a=6;main(){while(a>5){

cout<<a;a++;

}}

Page 12: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan
Page 13: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Algoritma harus berhentisetelah melalui beberapa

tahapan (langkah)

Finiteness

Page 14: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

DEFINITENESS

Page 15: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

How could we define the

“MIRACLE”?

Page 16: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan
Page 17: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Setiap langkah harusdidefinisikan secara tepat, tidakboleh membingungkan (ambigu)

Definiteness

Page 18: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

EFFECTIVENESS

Page 19: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Setiap algoritmaharus

berhasil-guna(sangkil/ efektif)

Effectiveness

Page 20: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Algoritma

• Recipe for getting things done successfully– "Recipe" - well defined sequence of computational

steps– "things" - computational problems specifying an

input/output relation– "done" - in finite steps and time– "successfully" – correctly

20

Page 21: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

DESAIN DAN ANALISIS ALGORITMA?

2

Page 22: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Design dan Analysis Algorithm

• Design an algorithm (Correctness)– Prove the algorithm is correct.

• Analyze the algorithm (Efficiency)– Time– Space

22

Page 23: DESAIN DAN ANALISIS ALGORITMATugas • Buat sebuah algoritma yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jikaX habis dibagi 2, 3 atau 7 dan tampilkan

Tugas

• Buat sebuah algoritma yang akan menerimasebuah bilangan X dari user. Tampilkan pesan“benar” jika X habis dibagi 2, 3 atau 7 dantampilkan “salah” jika tidak habis dibagi.

• Terdapat 10 buah apel dalam sebuah keranjang. Buatlah algoritma untuk membagikan apel itu kepada sepuluh orang secara adil dengan menyisakan satu apel di keranjang