Analisa Algoritma : Pendahuluan Yudha Dwi Putra Negara, S.Kom
Deskripsi Mata kuliah ini mengkaji tentang konsep dasar Algoritma, konsep matematika, kompleksitas waktu, Recurrence Solution (rekursi), brute force, exhaustive search, Algoritma Greedy, divide and conquer, serta backtracking dan pemrograman dinamis
Tujuan Instruksional Umum (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.
Sejarah Algoritma 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 pada tahun 1950 istilah algorithm selalu diasosiasikan dengan Euclid’s algorithm, yaitu suatu proses yang menjelaskan cara mencari bilangan pembagi terbesar untuk dua buah bilangan.
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. Algoritmik adalah suatu studi secara sistematik pada penggunaan teknik-teknik dasar untuk merancang dan menganalisa algoritma yang efisien. Definisi Algoritma. Suatu algoritma adalah suatu prosedur komputasi langkah demi langkah yang terdefinisi dengan lengkap dan baik, termasuk di dalamnya definisi sekumpulan input yang diijinkan, yang menghasilkan satu atau sekumpulan nilai valid sebagai outputnya.
Istilah Contoh: Tidak semua persoalan dapat dibuatkan algoritma yang menghasilkan solusi, atau yang biasa dikenal dengan istilah noncomputable. Salah satunya adalah halting problem, yaitu suatu persoalan untuk membuat suatu algoritma yang dapat menentukan apakah suatu program komputer yang diberikan dapat berhenti atau tidak. Catatan:: Sebuah algoritma sekuensial menggambarkan operasi-operasi yang masing-masing dilakukan secara berurutan, sedangkan suatu algoritma paralel menggambarkan banyak operasi yang dapat dilakukan secara simultan.
Analisa Algoritma 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
Perbandingan Kinerja 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.
Teknik Pemrograman 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..
Implementasi : subroutine
penilaian Tugas : 30 % UTS : 30 % UAS : 40 %
Referensi Berisi sumber bahan A. Textbook : Brassad&Bratley (1996), Fundamentals of Algorithmics, PrenticeHall. B. Acuan/Referensi : Hartono, Gatot, Analisa algoritma Munir, Rinaldi, Pengantar Strategi Algoritma
Pre Test Terdapat cuplikan fungsi sebagai berikut dalam bahasa 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 Terdapat fungsi sebagai berikut 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) Fungsi untuk menghitung apakah anu tersebut ?
Pre Test Sebutkan 5 macam macam sorting, Diantara sorting yang Anda sebutkan, a. manakah yang dirasa paling cepat?kenapa? b. manakah yang dirasa paling lambat?kenapa? c. manakah yang dirasa paling mudah dibuatkan programnya?kenapa? d. manakah yang dirasa paling sulit dibuat programnya? Kenapa?