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
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