180 likes | 394 Views
Analisa Algoritma : Pendahuluan. Yudha Dwi Putra Negara , S. Kom. Deskripsi.
E N D
AnalisaAlgoritma : Pendahuluan Yudha Dwi Putra Negara, S.Kom
Deskripsi • Mata kuliahinimengkajitentangkonsepdasarAlgoritma, konsepmatematika, kompleksitaswaktu, Recurrence Solution (rekursi), brute force, exhaustive search, Algoritma Greedy, divide and conquer, serta backtracking danpemrogramandinamis
TujuanInstruksionalUmum (TIU) • Menjelaskan cara menganalisa algoritma dengan konsep matematika, menyelesaikan solusi untuk menganalisa algoritma rekursi, dan menggunakan notasi-notasi untuk menjelaskan kompleksitas algoritma serta menggunakan berbagai strategi algoritma.
SejarahAlgoritma • Kata algoritma dari nama Abu Ja’fat Mohammed Ibn Musa al-Khowarizmi, seorang ilmuan Persia yang menulis buku berjudul Kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825
Sejarah • padatahun 1950 istilahalgorithmselaludiasosiasikandenganEuclid’s algorithm, yaitusuatuproses yang menjelaskancaramencaribilanganpembagiterbesaruntukduabuahbilangan.
Istilah • Merriam-Webster’s Collegiet Dictionary istilah algorithm diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau Penyelesaian suatu tugas khususnya dengan menggunakan bantuan computer
Istilah • Definisi. Algoritmikadalahsuatustudisecarasistematikpadapenggunaanteknik-teknikdasaruntukmerancangdanmenganalisaalgoritma yang efisien. • DefinisiAlgoritma. Suatualgoritmaadalahsuatuprosedurkomputasilangkahdemilangkah yang terdefinisi dengan lengkapdanbaik, termasukdidalamnyadefinisisekumpulan input yang diijinkan, yang menghasilkansatuatausekumpulannilai valid sebagaioutputnya.
Istilah • Contoh: Tidaksemuapersoalandapatdibuatkanalgoritma yang menghasilkansolusi, atau yang biasadikenal dengan istilahnoncomputable. Salahsatunyaadalahhalting problem, yaitusuatupersoalanuntukmembuatsuatualgoritma yang dapatmenentukanapakahsuatu program komputer yang diberikandapatberhentiatautidak. • Catatan:: Sebuahalgoritmasekuensialmenggambarkanoperasi-operasi yang masing-masingdilakukansecaraberurutan, sedangkansuatualgoritmaparalelmenggambarkanbanyakoperasi yang dapatdilakukansecarasimultan.
AnalisaAlgoritma • Analisa Algoritma adalah tahapan yang dilakukan dengan tujuan untuk mengukur prediksi waktu + memory, efisiensi dan kelayakan saat dibuat program, correctness, serta kompleksitas algoritma tersebut.
Kinerja yang perlu ditelah pada algoritma • beban komputasi • efisiensi penggunaan memory
PerbandinganKinerja • Kasus rata-rata; running time untuk tipikal data tertentu. • Kasus terjelek; running time yang mungkin paling jelek pada konfigurasi masukan data tertentu • Program → bahasa yang dipakai • Program sensitif terhadap input • Program sulit dimengerti, dan secara matematis hasil telah tersedia/ diketahui • Sering kali program tidak bisa membandingkan, misal untuk data tertentu sangat efisien, tetapi yang lain pada kondisi yang sangat berbeda.
TeknikPemrograman Penekanan pada pemrograman tersetruktur • Struktur dasar Menggunakan flow chart dan pseudocode Menggunakan sistem modular. • Program dibuat dalam bentuk modul-modul untuk fungsi tertentu maupun subroutine tertentu. • Modul-modul dikendalikan oleh modul utama (program utama) • Modul bersifat independen (tidak ada modul yang dapat akses langsung ke modul lain, kecuali modul pemanggil dan submodulnya sendiri) • Modul dapat diubah secara radikal tanpa mempengaruhi modul lain sejauh fungsi modul tidak berubah..
penilaian • Tugas : 30 % • UTS : 30 % • UAS : 40 %
Referensi Berisisumberbahan • A. Textbook : Brassad&Bratley (1996), Fundamentals of Algorithmics,PrenticeHall. • B. Acuan/Referensi : Hartono, Gatot, Analisaalgoritma Munir, Rinaldi, PengantarStrategiAlgoritma
Pre Test • Terdapatcuplikanfungsisebagaiberikutdalambahasa Pascal function anu(a,b,c:integer):integer; begin hasil := 6 if a<b then if b<c then hasil := 7 else hasil := 8 writeln(hasil); End; Berapakah nilai hasil a. anu(1,2,3) b. anu(2,1,3) c. anu(1,3,2)
Pre Test • Terdapatfungsisebagaiberikut Function anu(a,b:integer): integer; Begin if a=b then anu:=1 else if a<b then anu:=anu(a,b-1) else if a>b then anu:=anu(a-1,b) End; Hitunglah • anu(2,4) • anu(5,2) • anu(3,3) Fungsiuntukmenghitungapakahanutersebut ?
Pre Test • Sebutkan 5macammacam sorting, Diantara sorting yang Andasebutkan, a. manakah yang dirasa paling cepat?kenapa? b. manakah yang dirasa paling lambat?kenapa? c. manakah yang dirasa paling mudahdibuatkanprogramnya?kenapa? d. manakah yang dirasa paling sulitdibuatprogramnya? Kenapa?