Algoritma
dan
Algoritma
• Pengertian Algoritma
• Kriteria Algoritma yang Baik
• Analisis Suatu Algoritma
• Pemograman Dinamis
• Metode Umum
Pengertian Algoritma
Algoritma adalah suatu urutan dari beberapa
langkah yang logis guna menyelesaikan
masalah. Pada saat kita memiliki masalah,
maka kita harus dapat untuk menyelesaikan
masalah tersebut dengan menggunakan
Ciri dan Kriteria Algoritma yang Baik
1. Tepat, benar, sederhana, standard an efektif
2. Logis, terstruktur dan sistematis 3. Semua operasi terdefinisi
4. Semua proses harus berakhir setelah sejumlah langkah di
lakukan
5.Di tulis dengan bahasa yang standar dengan format
peprograman agar mudah untuk di implementasikan dan tidak
menimbulkan arti ganda
1.Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas
2. Setiap langkah harus
terdefinisikan dengan tepat dan tidak berarti dua ( Ambiguitas )
3. Algoritma memiliki angka nol atau lebih masukan
4.Algoritma memiiki angka nol atau lebih keluaran’
5. Algoritma harus efektif ( setiap langkah harus sederhana sehingga dapat di kerjakan dalam Waktu yang masuk akal )
Analisa Algoritma
Analisa Algoritma digunakan untuk
melihat faktor efisiensi & efektifitas
dari algoritma tersebut), dapat
Analisis Suatu Algoritma dengan melihat
pada
• Banyaknya langkah
• Besar dan jenis input data
• Jenis operasi
• Komputer dan kompilator
Tahapan Analisa Algoritma
1. Bagaimana merencakan suatu algoritma
:
Menentukan beberapa model atau
desain sebagai penyelesaian dari
suatu masalah untuk mendapat
sebuah solusi yan mungkin. Dengan
demikian, akan banyak terdapat
2.
Bagaimana menyatakan suatu
algoritma
Menentukan model suatu algoritma yang
digunakan sehingga dapat membuat barisan
langkah secara berurutan guna mendapatkan
solusi penyelesaian masalah. Menentukan
model tersebut agar dapat digunakan dengan
cara:
- Dengan Bahasa semu(Pseudocode)
:
yaitu dengan menggunakan bahasa
sehari-hari, tetapi harus jelas dan terstruktur, seperti
telah penulis sebutkan pada contoh-contoh
Contoh:
1. Untuk mengitung Luas Segitiga:
2. Masukan Nilai Alas 3. Masukan Nilai Tinggi 4. Hitung Luas = (Alas * Tinggi)/2
5. Cetak Luas
- Dengan diagram alur atau
flowchart:
- yaitu dengan membuat suatu penulisan atau
penyajian algoritma berupa diagram yang menggambarkan
susunan alur logika dari suatu
permasalahan
-Dengan Statement
Program/Penggalan Program
Contoh:
1. Read Alas 2. Read Tinggi
3.
Bagaimana validitas suatu
algoritma
Yakni jika penyelesaian memenuhi solusi
yang sebenarnya, artinya solusi yang
didapat merupakan penyelesaian suatu
4.
Bagaimana menganalisa suatu
algoritma
Caranya melihat running time atau waktu
tempuh yang digunakan dalam
menyelesaikan masalah serta jumlah
memori yang digunakan dalam
5.
Bagaimana menguji program
dari suatu algoritma
Yaitu dengan cara menyajikannya dalam
salah satu bahasa pemrogramana,
misalnya BASIC, PASCAL, FORTRAN, dBase,
atau yang lainnya. Dalam proses, uji
program oleh komputer akan melalui
beberapa tahap yaitu:
1. Fase Debugging
, yaitu fase melakukan
koreksi terhadap kesalahan program
Pemograman Dinamis
• Pengertian Pemograman dinamis
• Metode Umum
Pemograman Dinamis
Program Dinamis
(
dynamic
programming
): metode pemecahan
masalah dengan cara menguraikan solusi
menjadi sekumpulan langkah (
step
) atau
tahapan (
stage
) sedemikian sehingga
solusi dari persoalan dapat dipandang dari
serangkaian keputusan yang saling
Metode Pemograman Dinamis
1. terdapat sejumlah berhingga pilihan
yang mungkin,
2. solusi pada setiap tahap dibangun dari
hasil solusi tahap sebelumnya,
3. kita menggunakan persyaratan optimasi
dan kendala untuk membatasi sejumlah
pilihan yang harus dipertimbangkan
Prinsip Optimalitas
• Pada program dinamis, rangkaian keputusan yang optimal
dibuat dengan menggunakan Prinsip Optimalitas.
• Prinsip Optimalitas: jika solusi total optimal, maka bagian
• Prinsip optimalitas berarti bahwa jika kita bekerja
dari tahap k ke tahap k + 1, kita dapat
menggunakan hasil optimal dari tahap k tanpa harus kembali ke tahap awal.
• ongkos pada tahap k +1 =
• Dengan prinsip optimalitas ini dijamin bahwa
pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap
selanjutnya.
• Pada metode greedy hanya satu rangkaian
keputusan yang pernah dihasilkan, sedangkan pada metode program dinamis lebih dari satu
rangkaian keputusan. Hanya rangkaian keputusan yang memenuhi prinsip optimalitas yang akan
Karakteristik Persoalan
Program Dinamis
1. Persoalan dapat dibagi menjadi beberapa tahap
(
stage
), yang pada setiap tahap hanya diambil
satu keputusan.
2. Masing-masing tahap terdiri dari sejumlah status
(
state
) yang berhubungan dengan tahap
Graf multitahap (multistage graph). Tiap simpul di dalam graf
3. Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari status yang
bersangkutan ke status berikutnya pada tahap berikutnya.
4. Ongkos (cost) pada suatu tahap meningkat
secara teratur (steadily) dengan bertambahnya jumlah tahapan.
6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang
dilakukan pada tahap sebelumnya.
7. Adanya hubungan rekursif yang
mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan
keputusan terbaik untuk setiap status pada tahap k + 1.
Dua pendekatan PD
• Dua pendekatan yang digunakan dalam PD: maju (forward
• Misalkan x1, x2, …, xn menyatakan peubah
(variable) keputusan yang harus dibuat masing-masing untuk tahap 1, 2, …, n. Maka,
1. Program dinamis maju. Program dinamis bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap n. Runtunan peubah keputusan adalah x1, x2, …,
2. Program dinamis mundur. Program dinamis bergerak mulai dari tahap n, terus mundur ke tahap n – 1, n – 2, dan seterusnya sampai tahap 1. Runtunan peubah
Langkah-langkah Pengembangan Algoritma
Program Dinamis
1. Karakteristikkan struktur solusi optimal.
2. Definisikan secara rekursif nilai solusi optimal.
3. Hitung nilai solusi optimal secara maju atau mundur.
Lintasan Terpendek
(
Shortest Path
)
•
Tentukan lintasan terpendek dari simpul 1
Penyelesaian dengan Program Dinamis
Mundur
• Misalkan x1, x2, …, x4 adalah simpul-simpul yang
dikunjungi pada tahap k (k = 1, 2, 3, 4).
• Maka rute yang dilalui adalah 1x1x2x3x4 ,
Pada persoalan ini,
• Tahap (k) adalah proses memilih simpul tujuan berikutnya
(ada 4 tahap).
• Status (s) yang berhubungan dengan masing-masing tahap