27
Desain dan Analisa Algoritma Pendahuluan Peraturan kuliah Aturan penilaian. Silabus/materi

Desain Dan Analisa Algoritma

Embed Size (px)

DESCRIPTION

Desain Dan Analisa Algoritma

Citation preview

Page 1: Desain Dan Analisa Algoritma

Desain dan Analisa Algoritma

PendahuluanPeraturan kuliahAturan penilaian.Silabus/materi

Page 2: Desain Dan Analisa Algoritma

Peraturan Kuliah

Sesuai dengan peraturan yang ada

Page 3: Desain Dan Analisa Algoritma

Penilaian Project: 35%

◦ Presentasi specifikasi: 10% (Minggu terakhir sbl UTS)

◦ Topik 25 %. Ujian tengah semester: 30% Ujian akhir semester: 35%

Project dilakukan per kelompok◦ Setiap kelompok: ??

Page 4: Desain Dan Analisa Algoritma

Materi Algorithmics: Theory & Practices,

Brassard and Bratley, 1996. Fundamental of computer algorithms,

Horowitz and Sahni, 1978.

Pengertian desain, analisa, algoritma.

Dasar AlgoritmaKompleksitas AlgoritmaAlgoritma Brute Force

Page 5: Desain Dan Analisa Algoritma

MateriAlgoritma Divide and Conquer

◦Searching (Binary search)◦Sorting

- Bubble sort- Selection sort- Insertion sort- Shell sort- Merge sort- Quick sort

Page 6: Desain Dan Analisa Algoritma

MateriAlgoritma GreedyDynamic ProgrammingBranch and BoundBacktracking

Page 7: Desain Dan Analisa Algoritma

AlgoritmaKata 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

Page 8: Desain Dan Analisa Algoritma

Definisi AlgoritmaDictionary.com: An algorithm is a

step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps.

A better one: An algorithm is a sequence of unambiguous instructions for solving a well-specified computational problem in a finite number of steps.

Page 9: Desain Dan Analisa Algoritma

Definisi AlgoritmaMerriam-Webster’s Collegiet Dictionary

istilah algorithm diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau Penyelesaian suatu tugas khususnya dengan menggunakan bantuan komputer.

Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.

Page 10: Desain Dan Analisa Algoritma

Algoritma

Input

Proses

Output

Algoritma

Source

Code

Executable

Source

Page 11: Desain Dan Analisa Algoritma

Contohsehari-hariProses Algoritma Langkah dalam

algoritma

Membuat kue bolu Kue Bolu Siapkan wadahMasukkan 2 butir telurKocok tekurMasukkan tepungAdukMasukkan cetakanMasukkan ke Oven

Page 12: Desain Dan Analisa Algoritma

Syarat AlgoritmaMenurut Donald E Knuth

algoritma harus memenuhi persyaratan :FinitenessDefiniteness, Input, Output, Effectiveness,

Page 13: Desain Dan Analisa Algoritma

KriteriaKriteria Algoritma yang baik:Tepat, benar, sederhana, standar dan

efektif.Logis, terstruktur dan sistematis.Semua operasi terdefinisi.Semua proses harus berakhir setelah

sejumlah langkah dilakukan.Ditulis dengan bahasa yang standar

dengan format pemrograman agar mudah untuk diimplementasikan dan tidak menimbulkan arti ganda.

Page 14: Desain Dan Analisa Algoritma

Ciri ciriSelalu memiliki terminasi/langkah

akhirSetiap langkah dinyatakan secara

jelas dan tegasSetiap langkah sederhana, sehingga

kinerjanyaSehubungan dengan waktu yang

effisien/bisa diterima akalMemberikan hasil (output), mungkin

dengan satu atau lebih.

Page 15: Desain Dan Analisa Algoritma

Hub SD dan AlgoritmaStruktur data

◦cara pengaturan data agar bisa disimpan memory komputer secara efisien

Program◦algoritma yang diimplementasikan dalam

bahasa pemrograman tertentu

Algoritma + SD = Program

Page 16: Desain Dan Analisa Algoritma

Tahapan hingga pemrogaman

Proses pemecahan masalah dengan algoritma tertentu hingga menjadi program dapat dibagi dalam sembilan tahap:Mendefinisikan masalahMasalah yang ingin dipecahkan harus jelas

lingkupnya.Membuat model Yang dimaksud model ini adalah model

(bentuk) matematis yang dapat digunakan untuk memecahkan masalah, misalnya apakah harus dilakukan pengurutan terhadap data.

Page 17: Desain Dan Analisa Algoritma

Tahapan hingga pemrogamanMerancang algoritma

(flowchart/pseudocode)◦Apa maksudnya, bagaimana rincian

prosesnya, apa keluarannya.Menulis program

◦Ubah algoritma menjadi program (source code) dalam bahasa pemrograman tertentu.

Mengubah source code menjadi executable code melalui proses compiling.

Memeriksa hasil compiling, jika salah maka kembali ke tahap empat.

Page 18: Desain Dan Analisa Algoritma

PenyajianPseudocode

◦ Menggunakan bahasa sehari-hari, tetapi harus jelas dan struktur.

◦ Kode yang mirip dengan kode pemrogaman sebenarnya (Pascal atau C)

◦ Menggambarkan algoritma untuk dikomunikasikan dengan pemrogram

◦ Contoh:MulaiBaca Data1Tulis Data1If Data1 < 100 and Data1>9 then

Tulis bilangan puluhan

ElseTulis bukan bilangan puluhan

Selesai

Page 19: Desain Dan Analisa Algoritma

PenyajianFlowchart

◦Gambar atau bagan yg memperlihatkan urutan dan hubungan antar proses beserta pernyataannya.

Page 20: Desain Dan Analisa Algoritma
Page 21: Desain Dan Analisa Algoritma

Latihan:Mengurutkan 2 bilanganJumlah bilangan faktorial

Input P,l

Start

L=1/2*p*l

Tampilkan L

End

Page 22: Desain Dan Analisa Algoritma

Struktur DasarStruktur berurutan

◦Pernyataannya secara berurutanStruktur pilihanStruktur perulangan (Iteration)

Page 23: Desain Dan Analisa Algoritma

Analisis AlgoritmaBeban komputasi/berhubungan dengan kecepatan eksekusi program◦Banyaknya operasi yang dilakukan

Efisiensi penggunaan memory.◦Struktur data dan variabelsvyang digunakan

Page 24: Desain Dan Analisa Algoritma

Study of algorithmsHow to devise algorithms: algorithm

designHow to express algorithms:

structured programmingHow to validate algorithms:

algorithm validationHow to analyze algorithms:

algorithm analysisHow to test algorithms: algorithm

debugging and profiling

Page 25: Desain Dan Analisa Algoritma

Analisis AlgoritmaMana yang lebih baik: menggunakan algoritma yang waktu eksekusinya cepat dengan komputer standard atau menggunakan algoritma yang waktunya tidak cepat tetapi dengan komputer yang cepat?

Page 26: Desain Dan Analisa Algoritma

Efisiensi Algoritma

Pertimbangan memilih algoritma:KebenaranTepat guna (efektif)Sesuai dengan permasalahanKemudahan/ kesederhanaanUntuk dipahamiUntuk diprogram(prosescoding)

Page 27: Desain Dan Analisa Algoritma

Efisiensi Algoritma

Kecepatan AlgoritmaBerkaitan dengan kecepatan

eksekusi programHemat BiayaMengacu pada kebutuhan

memory