Anda di halaman 1dari 25

IF-2031 Hamonangan situmorang

Programming & Problem Solving Knowledge & skill Algorithms (advanced, combinatoric) Programming language Knowledge & skill Discrete Mathematics Logical Capability Analytical Capability
`

Diambil dari referensi [1]

IF2031/Hamonangan Situmorang

2

data structures) Intermediate Topics (algorithms. data structures) Pengem bangan Ke pri ba di an Matematika Informatika Dasar Informatika Algoritma dan truktur sederhana Dasar Pemrograman Bahasa Pemrograman Diambil dari referensi [1] IF2031/Hamonangan itumorang 3 .Problem Solving (ultimate goal) Ad anced Topics (algorithms.

set) Instruksi : assignment. loop (for.` ` ` ` ` Program = truktur Data + Algoritma (instruksi) truktur data : dasar (int. boolean). Diambil dari referensi [1] IF2031/Hamonangan itumorang 4 . array. real. if/case. repeat) Pengelompokan instruksi menjadi fungsi/prosedur Operasi file eksternal. while. read/write. bentukan (record.

[2] Struktur data seharusnya diterapkan pada algoritma yang didisain secara efisien Jadi mata kuliah Algoritma & Struktur Data adalah suatu disiplin ilmu yang mempelajari bagaimana merepresentasikan data secara efisien dan disain pengolahannya secara efisien IF2031/Hamonangan Situmorang 5 .` ` ` Struktur data: cara merepresentasikan data agar efisien dalam penyimpanan dan pengolahannya.

Kerangka konsep yang jernih memungkinkan pembuatan koding yang lebih efisien dan benar.` ` ` ` Data semakin kompleks Bayangkan: indeks dari 8 milyar halaman ! (Google) Implementasi dan perawatan software sangat sulit. Requirements (persyaratan) untuksofware yang baik adalah : Clean Design Easy maintenance Reliable (no core dumps) IF2031/Hamonangan Situmorang 6 .

Easy to use Fast algorithms Diambil dari referensi [2] pStruktur data yang efisien pAlgoritma yang efisien IF2031/Hamonangan Situmorang 7 .

membutuhkan waktu 1 detik x 600.000 kata = 166 jam IF2031/Hamonangan Situmorang 8 . Dimana tiap baris mengandung 10 kata.000 kata.000 file teks dengan rata-rata 20 baris tiap file teks-nya. ` Solusi 1: menggunakan sequential matching.` Contoh kasus sederhana : Dimisalkan ada 3. Jadi akan ada 600. Tentukan jumlah kata ³bandung´ Jika dimisalkan dibutuhkan waktu 1 detik untuk mencek sebuah kata sama dengan ³bandung´.

` Solusi 2 : Binary searching : Urutkan kata Cari di setengah kumpulan data setiap waktunya Contoh : Cari 25 pada kumpulan data berikut 5 8 12 15 15 17 23 25 27 25 ? 15 15 17 23 25 27 25 ? 23 23 25 27 25 ? 25 Berapa langkah? log 2 600000 = 19 detik s 166 jam! IF2031/Hamonangan Situmorang 9 .

3. Problem definition Algorithm design / Algorithm specification Algorithm analysis Implementation Testing Maintenance Diambil dari referensi [3] IF2031/Hamonangan Situmorang 10 . 4. 6. 2.1. 5.

` Apa tugas-tugas yang harus dilaksanakan?. misalnya : Hitung nilai rata-rata mahasiswa yang ditentukan. Terjemahkan naskah pidato dari bahasa inggris menjadi bahasa indonesia ` Apa persyaratan performansinya (ketepatan waktu/ruang/ kecepatan ) ? IF2031/Hamonangan Situmorang 11 .

[3] Deskripsi (cara penulisan): natural language pseudo-code diagram (seperti flowchart) ` Kriteria algoritma: Input: nol atau lebih Output: satu atau lebih Definisi/terjemahan/interprestasi: jelas. tepat untuk tiap instruksi Batasan: sebuah algoritma harus berhenti setelah sejumlah langkah.` ` Algoritma: Sekumpulan instruksi terbatas yang jika dijalankan akan melaksanakan tugas tertentu. walaupun jumlah langkah boleh banyak tapi harus terbatas IF2031/Hamonangan Situmorang 12 .

` Efektifitas: tiap instruksi harus berupa perintah dasar bukan merupakan bentukan dari beberapa perintah IF2031/Hamonangan Situmorang 13 .

Output: The maximum element in A. currentMax n A[0] for in 1 to n -1 do if currentMax < A[i] then currentMax n A[i] return currentMax IF2031/Hamonangan Situmorang 14 . n): Input: An array A storing n integers.` Pseudo-Code = deskripsi algoritma dengan cara Lebih terstruktur dibanding menggunakan natural language tetapi tapi tidak Seformal menggunakan programming language ` Contoh: Algoritma untuk menentukan nilai maksimum array ditulis dalam pseudocode Algorithm arrayMax(A.

. do array indexing: A[i] ` Metode calls: returns: object method(args) return value ` ` Gunakanlah comments Instruksi harus se-dasar mungkin dan mungkin diselesaikan IF2031/Hamonangan Situmorang 15 .... until ..... [else .. do repeat-loops: repeat ... then . param2) Konstruksi pemrograman (flow control dan indeksing array): decision structures: if .] while-loops : while .` Ekspresi: gunakan simbol matematika gunakan n untuk assignment ( pemberian nilai) gunakan = untuk kesamaan (pengujian nilai) ` ` Deklarasi metode: -Algorithm name(param1... for-loop: for .

` Space complexity Berapa banyak space yang dibutuhkan ` Time complexity Berapa lawa waktu running algoritma ` Terkadang kita harus menggunakan estimasi IF2031/Hamonangan Situmorang 16 .

Hal ini harus memperhatikan batasan sistem. Core dumps (³memory leaks´) terjadi karena jumlah memory yang dibutuhkan lebih besar daripada yang disediakan oleh sistem. travel.` Space complexity = jumlah memory yang dibutuhkan oleh sebuah algoritma untuk berjalan sampai selesai. bencna alam. dll) ± apakah mungkin data sebanyak ini dimuatkan ke memory? IF2031/Hamonangan Situmorang 17 . ` Beberapa algoritma terkadang lebih efisien jika keseluruhan datanya dimuatkan pada memory. olahraga. misalnya 2GB teks dalam berbaga kategori (mis: politik.

Variable part: ukuran yang dibutuhkan ole variabel yang bergantung pada problem.actual text : load 2GB text VS. seperti: Nama kumpulan data : ukurannya sama saja untuk teks berkuran 2GB ataupun 1MB 2.1. load 1MB text IF2031/Hamonangan Situmorang 18 . yang independen dari ukuran problem. Fixed part: ukuran yang dibutuhkan untuk menyimpan data/variabel. seperti: .

for(int i = 0. one for a [passed by reference!]. i<n. i++) { s+ = a[i]. } return s.` ` S(P) = c + S(instance characteristics) c = constant Contoh: void float sum (float* a. int n) { float s = 0. } Space? one word for n. one for i constant space! IF2031/Hamonangan Situmorang 19 .

` Waktu running algoritma menjadi isu penting IF2031/Hamonangan Situmorang 20 .` Umumnya lebih penting dari space complexity Ketersediaan memory untuk program komputer saat ini cederung semakin besar Waktu masih menjadi masalah besar sampai saat ini ` Prosesor 3-4GHz di pasaran Apakah masih« Peniliti memperkirakan untuk komputasi variasi transformasi 1 rantai DNA tunggal untuk 1 protein pada komputer 1 TerraHZ membtuhkan waktu 1 tahun agar selesai.

5 ms 4 ms 3 ms 2 ms 1 ms worst-case } A B C average-case? best-case Input D E F G Jika program mengandung if-then statement yang dapat dieksekusi atau tidak variable running time umumnya running time algoritma diukur dari worst case IF2031/Hamonangan Situmorang 21 .

Tentukan actual running time menggunakan fungsi system untuk mengukur waktu (contoh: system (date) ). Apa problemnya? IF2031/Hamonangan Situmorang 22 . Jalankan program dengan sekumpulan data yang bervariasi.` Pengukuran running time : Pendekatan eksperimen Pendekatan teoritis ` Pendekatan eksperimen : Tuliskan program yang mengimplementasikan algoritma.

: x x x x Make an addition = 1 operation Calling a method or returning from a method = 1 operation Index in an array = 1 operation Comparison = 1 operation etc.g. Method: Inspect the pseudo-code and count the number of primitive operations executed by the algorithm Berapa operasi-kah algoritma mencari nilai maksimum array yang ada pada halaman 14 slide presentasi ini? IF2031/Hamonangan Situmorang 23 .` Pendekatan teoritis [3] : Based on primitive operations (low-level computations independent from the programming language) E.

Perl. test Mengintegrasikan feedback dari user. dll. penjaminan kompatibelitas pada berbagai platform Maintenance ` IF2031/Hamonangan Situmorang 24 . ` Test. Penulisan koding harus terdokumentasi dengan baik dan jelas. assembly. Prolog. Java. Lisp. test. perbaiki bug. C++.` Implementation Pemutusan bahasa pemrograman yang akan digunakan x C.

2.` ` ` [1] Inggriani Liem. Roadmap Belajar Pemrograman dari Kabupaten ke Nasional. 2006. Data Structures and Algorithm Analysis. 2004.´ CSCE3110 lecture notes chap. [2] Rada Mihalcea. 2006. Data Structures and Algorithm Analysis. [2] Rada Mihalcea.1. IF2031/Hamonangan Situmorang 25 . dalam presentasi TOKI Biro ITB.´ CSCE3110 lecture notes chap.