Handout TIF207 Ch 1 Introduction

10/22/2015

Bab 1: Pendahuluan

Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley

Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik

Analisis Algoritma |

Introduction
• Mengapa kita mempelajari algoritma?



alasan praktis: memahami algoritma standar yang digunakan dari
berbagai area komputasi yang berbeda; dan

alasan teoritis: algoritma sebagai “nyawa” dari ilmu komputer
(algoritmik).

• David Harel “Algorithmics: the Spirit of Computing”
menyatakan “algorithmics is more than a branch of computer
science. It is the core of computer science, and, in all fairness,
can be said to be relevant to most of science, business, and
technology.”[Har92, p.6]
Analisis Algoritma |

2

Introduction
• Tidak ada program yang dibuat/dibangun tanpa
menggunakan algoritma.
• Mempelajari algotritma  mengembangkan kemampuan
analitik.
• Algoritma dapat dipandang sebagai sebuah solusi khusus
dalam penyelesaian masalah.
• Algoritma bukan hanya sekedar solusi, tetapi lebih kepada

mendefinisikan prosedur penyelesaian masalah.

• Terdapat 2 alasan mengapa kita mempelajari algoritma:


Agenda
• Introduction
• What is an Algorithm?
• Fundamental of Algorithmic Problem Solving
• Important Problem Solving
• Fundamental Data Structures

3

Analisis Algoritma |

4

1


10/22/2015

What is an Algorithm?
• Algoritma adalah:

What is an Algorithm?
• Algoritma dapat berupa resep, proses, metode, tehnik,
prosedur, routine yang memenuhi kriteria beriku:

“a sequence of unambiguous instructions for solving a problem.”

1.
2.
3.
4.

Finiteness, berhenti ketika mencapai sebuah tahapan tertentu
Definiteness, rigorously and unambiguously specified
Input, nilai masukan yang valid telah ditentukan
Output, dapat dibuktikan dengan hasil yang tepat setelah sebuah

masukan valid diberikan
5. Effectiveness, memiliki tahapan-tahapan sederhana.

Analisis Algoritma |

5

Analisis Algoritma |

What is an Algorithm?
• Sebagai contoh: tentukan prosedur penyelesaian masalah
untuk kasus menyajikan segelas minuman jus alpukat!
• Prosedur penyelesaian masalah untuk kasus di atas tidak
dapat dikatakan sebagai algoritma (walaupun sistematis dan
benar). Why?
• Algoritma adalah prosedur penyelesaian masalah yang
sistematis yang dieksekusi oleh komputer.
• Contoh kasus lain: algoritma pencarian solusi menggunakan
Euclid’s algorithm
Analisis Algoritma |


6

What is an Algorithm?
• Euclid’s algorithm, algoritma untuk menentukan nilai
pembagian 2 bilangan bulat non-negatif terbesar (greatest
common divisor of two nonnegative integer) yang
dinotasikan dengan:
• Contoh: menentukan gcd(60, 24)
gcd(60, 24) = gcd(24,12) = gcd(12,0) = 12

• Algoritmanya?
7

Analisis Algoritma |

8

2


10/22/2015

Fundamentals of Algorithmic Problem Solving
exact and approximate algorithms

1. Bagaimana merancang sebuah algoritma?
2. Bagaimana melakukan analisa terhadap algoritma secara efisien?

algorithm design technique
“a general approach to solving problems
algorithmically that is applicable to a variety of

1. Bagaimana merancang sebuah algoritma?
• Menentukan strategi/tehnik yang digunakan
• Strategi/tehnik yang data digunakan:

problems from different areas of computing.”

methods of specifying an algorithm
pseudocode, flowchar


analyze the algorithm
time efficiency, space efficiency, simplicity, generality
Analisis Algoritma |

1. Brute force
2. Divide conquer

10

Fundamentals of Algorithmic Problem Solving
3.
4.
5.
6.
7.
8.
9.

Fundamentals of Algorithmic Problem Solving

• Terdapat 2 isu yang terkait dengan algoritma:

sequential and parallel algorithms

Decrease conquer
Space and time tradeoffs
Greedy approach
Dynamic programming
Iterative improvement
Backtracking
Branch and bound

Analisis Algoritma |

11

Fundamentals of Algorithmic Problem Solving
2. Bagaimana melakukan analisa terhadap algoritma secara
efisien?
1. Seberapa baikkah sebuah algoritma?





correctnest;
time efficiency; dan
space efficiency

2. Apakah terdapat algoritma lainnya yang lebih baik?



Analisis Algoritma |

12

Lower bound
Optimality

Analisis Algoritma |


13

3

10/22/2015

Important Problem Solving








Fundamental Data Structures
• List

Sorting

Searching
String Processing
Graph Problems
Combinatorial Problems
Geometric Problems
Numerical Problems

• Array
• Linked list
• String





Analisis Algoritma |

14

• Trees
• Set and dictionary

Stack
Queue
Priority queue
Graph

Analisis Algoritma |

15

Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley

1-16

4