Anda di halaman 1dari 18

1

DESAIN & ANALISIS


ALGORITMA
1/27/2020 PERTEMUAN 1
Tentang Dosen Pengampu
2

 Nama: Intan Yuniar Purbasari


 Kontak:
 E-mail:
intanyuniar.if@upnjatim.ac.id
 No. WA: 083857716113

 Mata kuliah yang diampu:


 Pemrograman Berorientasi Objek
 Struktur
Data
 Kecerdasan Buatan

 Data Mining (Pilihan)

1/27/2020
Tentang Mata Kuliah
3

 Desain dan Analisis Algoritma


 3 sks
 Sesuai buku pedoman akademik univ, 3 sks untuk mahasiswa
setara dengan:
 3*50 menit kegiatan tatap muka terjadwal dengan dosen (kuliah)
 3*60 menit kegiatan akademik terstruktur yang direncanakan oleh
dosen (mengerjakan tugas)
 3*60 menit kegiatan akademik mandiri (belajar mandiri, membaca
literatur)
 MK wajib semester IV, tanpa prasyarat
 Nilai minimum kelulusan: D
1/27/2020
Tujuan dan Capaian Pembelajaran
4

 Tujuan:
 Mata kuliah ini bertujuan untuk meningkatkan kemampuan mahasiswa
dalam melakukan analisis, desain, dan implementasi algoritma dan struktur
data
 Capaian Pembelajaran:
Setelah menempuh mata kuliah ini mahasiswa akan dapat:
 Menganalisis dan membandingkan algoritma dan struktur data
berdasarkan aspek kompleksitas waktu dan ruang
 Menerapkan paradigma desain algoritma untuk menghasilkan solusi
permasalahan yang lebih baik
 Mendesain solusi abstrak berdasarkan algoritma graph dan greedy
 Membangun implementasi yang efisien dari solusi abstrak
 Menjelaskan teori dan relevansi dari kelas kompleksitas algoritma

1/27/2020
Materi
5

 Konsep algoritma dan pemanfaatannya


 Tipe algoritma
 Metode analisis algoritma
 Analisis algoritma brute force
 Analisis algoritma decrease-and-conquer
 Analisis algoritma divide-and-conquer
 Analisis algoritma transform-and-conquer
 Desain algoritma Dynamic Programming
 Analisis algoritma Greedy
 Kelas kompleksitas algoritma (P, NP, NP-Complete, NP-Hard)
1/27/2020
Penilaian
6

 Nilai Tengah Semester (NTS):


 Sikap:20%
 Tugas/kuis (individu): 40%

 UTS: 40%

 Nilai Akhir Semester (NAS):


 Sikap: 20%
 Tugas/kuis (individu): 20%

 Presentasi Tugas Kelompok: 40%

 UAS: 20%

 Nilai Akhir = (NTS+NAS)/2 1/27/2020


Pustaka
7

 Levitin, Anany, Introduction


to the Design and Analysis of
Algorithm, 3rd edition,
Pearson, 2011
 Cormen, Thomas H et al,
Introduction to Algorithms,
3rd edition, 2009
 Intan Yuniar Purbasari,
Desain dan Analisis
Algoritma, Graha Ilmu,
2006 1/27/2020
ALGORITMA
8

 “Urutan instruksi-instruksi yg tidak ambigu untuk


memecahkan masalah, yaitu untuk mendapatkan
output yg diinginkan untuk sembarang input yang sah
dalam waktu yg sudah pasti/finite” [LEV2011].
 Algoritma dikatakan benar jika, untuk semua
inputnya, algoritma tsb berhenti dan menghasilkan
output yg benar.

1/27/2020
Aplikasi Praktis Algoritma

 Human Genome Project


 Pengaksesan dan
pengambilan informasi
dari internet dalam jumlah
besar secara cepat
 Perlindungan informasi
dengan kriptografi
 Pengalokasian resource
untuk mendapatkan hasil
yg optimal

1/27/2020 9
Algoritma Sebagai Sebuah Teknologi
10

 Do we need algorithm? YES!


 WHY?
 Kecepatan prosesor  ?
 Ukuran memori  ?
 Gratis ?
 Tentu TIDAK

 Waktu komputasi dan space memori adalah resource


yang harus digunakan secara bijaksana.
 Algoritma yang efisien dalam hal waktu & space
merupakan sarana untuk mewujudkan hal itu
1/27/2020
Perbandingan Efisiensi

 Misal Komputer A memiliki


spesifikasi:
 Dapat mengeksekusi 100
milyar instruksi/dtk
 Diprogram oleh programmer
handal
 Menggunakan insertion sort
 Menggunakan machine
language
 Waktu komputasi: 2n2

1/27/2020 11
Perbandingan Efisiensi (2)

 Misal komputer B memiliki


spesifikasi:
 Dapat mengeksekusi 1 milyar
instruksi/dtk
 Diprogram oleh programmer
rata2
 Menggunakan merge sort
 Menggunakan high-level
language
 Waktu komputasi: 50n lg n

1/27/2020 12
Perbandingan Efisiensi (3)
13

 Kedua komputer A dan B sama2 digunakan untuk


mengurutkan 10 juta data (n=107)
 Dengan insertion sort, komputer A selesai dalam
waktu 2000 detik (± 33.3 menit)
 Dengan merge sort, komputer B selesai dalam
waktu ≈ 11 detik!

1/27/2020
Perbandingan Efisiensi (4)
14

 Walaupun komputer A lebih cepat 100x dari


komputer B, tetapi waktu komputasi B dapat lebih
cepat 181x dari waktu komputasi A!

 Algorithm DOES matter.

1/27/2020
Pencarian FPB (Faktor Persekutuan
15
terBesar)
 Tentukan FPB dari m dan n  FPB(m,n)
 Cara sekolahan:
 Cari faktor prima dari m
 Cari faktor prima dari n

 Tentukan semua faktor prima yang sama dari kedua


langkah diatas
 Kalikan semua faktor prima yang sama dan hasilnya
adalah faktor persekutuan terbesar

1/27/2020
Pencarian FPB (Faktor Persekutuan
16
terBesar)
 Contoh: Tentukan FPB (60,24)
 60 =2.2.3.5
 24 = 2 . 2 . 2 . 3

 Maka FPB(60,24) = 2 . 2 . 3 = 12

 Bagaimana algoritma menentukan faktor-faktor


prima dari bilangan??
 Tidak diajarkan di sekolah

1/27/2020
Pencarian FPB (Faktor Persekutuan
17
terBesar)
 The Smarter Way: Euclid Algorithm (3 SM):
 FPB(m,n)= FPB(n, m mod n)
 m mod n adalah sisa pembagian m dengan n

 Pembagian akan terus dilakukan sampai

m mod n = 0; karena FPB(m,0) = m


 FPB(60,24) = FPB(24,12) = FPB(12,0) = 12

1/27/2020
Algoritma Euclid untuk mencari FPB
18

1/27/2020

Anda mungkin juga menyukai