I.Pendahuluan Algoritma & struktur Data

Slides:



Advertisements
Presentasi serupa
Pseudocode & Flowchart
Advertisements

Desain Dan Analisis Algoritma
Pengertian Algoritma dan Flowchart
TEORI ALGORITMA.
Algorithma Pemrograman
1 Algoritma Bahasa Pemrograman dan Bab 1.1. Pengertian Algoritma.
Introduction to Algorithm and Programming
PEMROGRAMAN TERSTRUKTUR
STRUKTUR DATA Materi 1 Latifah Rifani.
ALGORITMA DEFINISI & FLOWCHART
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
PENCARIAN (SEARCHING)
ALGORITMA PSEUDOCODE Pertemuan Ke-2 Meilia Nur Indah Susanti, ST.,MKom
2 JAM TEORI dan 1 jam praktek
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Diberikan pada Kuliah Sela Teknik Informatika - Universitas Muhammadiyah Malang Tahun 2011.
IL, SFC, ST.
SEMESTER GANJIL 2009/2010.
Algoritma dan Pemrograman
Pendahuluan Definisi :
1 Pertemuan 1 Algoritma Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
IKI 20100: Struktur Data & Algoritma Ruli Manurung & Ade Azurat (acknowledgments: Denny, Suryana Setiawan) 1 Fasilkom UI Ruli Manurung & Ade AzuratFasilkom.
Algoritma Konsep Dasar Bahasa PASCAL
Algoritma dan Pemrograman
Rifky Kurniawan, S.Kom, MTI
Analisis dan desain Algoritma (PG157)
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
Struktur Keputusan pada Structure English dan Pseudocode
Pengantar Pemrograman Basis Data (PPBD)
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
ALGORITMA & PEMROGRAMAN
PENGANTAR LOGIKA & TEKNIKPEMROGRAMAN
Pertemuan 4 PROGRAMMING LANGUAGE.
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
Pemrograman Terstruktur
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
PROG.STUDI PEND.FISIKA UIN ALAUDDIN MAKASSAR
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Pseudocode – Tipe Data, Variabel, dan Operator
Faktor analisa algoritma
Struktur Algoritma Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. Selection Process: instruksi dikerjakan jika memenuhi kriteria.
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
MATERI PERKULIAHAN ANALISIS ALGORITMA
ASSEMBLER #1 MK. PEMROGRAMAN SISTEM
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
STRUKTUR CONTROL program
JENIS-JENIS DATA Denny Agustiawan, M.pd
Introduction to Algorithm and Programming
Gambaran Kuliah Pemrograman Terstruktur
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
Introduction to Algorithm and Programming
Strategi Algoritma Kuliah 3 : Algoritma Efisien
DIAGRAM ALUR (FLOWCHART)
PENGANTAR LOGIKA & TEKNIK PEMROGRAMAN
UJIAN TERDIRI ATAS 50 SOAL
ALGORITMA & PEMROGRAMAN
EL 2001 – Dasar Pemrograman Budi Rahardjo Teknik Elektro ITB
Kompleksitas Algoritma
PEMROGRAMAN I Semester I 2017/2018
Introduction to Algorithm and Programming
STRUKTUR DATA Materi 1.
Konsep Bahasa Pemrograman I Operator
KUG1E3/ Pemrograman Terstruktur 1
UJIAN TERDIRI ATAS 50 SOAL
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
IT234 ALGORITMA DAN STRUKTUR DATA
Algoritma dan struktur data
Dasar Pemrograman Percabangan Nurul Anisa Sri Winarsih, M. CS
Memori dan Scope Variabel
Transcript presentasi:

I.Pendahuluan Algoritma & struktur Data IF-2031 Hamonangan situmorang

Roadmap Belajar Pemrograman(1) Diambil dari referensi [1] Programming & Problem Solving Knowledge & skill Algorithms (advanced, combinatoric) Programming language Knowledge & skill Discrete Mathematics Logical Capability Analytical Capability IF2031/Hamonangan Situmorang

Roadmap Belajar Pemrograman(2) Dasar Informatika Dasar Pemrograman Matematika Informatika Bahasa Pemrograman Advanced Topics (algorithms, data structures) Intermediate Topics (algorithms, data structures) Algoritma dan Struktur sederhana Problem Solving (ultimate goal) Pe-ngem bang-an Ke pri ba di an Diambil dari referensi [1] IF2031/Hamonangan Situmorang

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

Definisi Dasar Struktur data: cara merepresentasikan data agar efisien dalam penyimpanan dan pengolahannya. [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

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

Latar Belakang mata kuliah Algoritma & Struktur Data (2) Easy to use Fast algorithms Diambil dari referensi [2] Struktur data yang efisien Algoritma yang efisien IF2031/Hamonangan Situmorang

Latar Belakang mata kuliah Algoritma & Struktur Data (3) Contoh kasus sederhana : Dimisalkan ada 3.000 file teks dengan rata-rata 20 baris tiap file teks-nya. Dimana tiap baris mengandung 10 kata. Jadi akan ada 600.000 kata. Tentukan jumlah kata “bandung” Jika dimisalkan dibutuhkan waktu 1 detik untuk mencek sebuah kata sama dengan “bandung”. Solusi 1: menggunakan sequential matching, membutuhkan waktu 1 detik x 600.000 kata = 166 jam IF2031/Hamonangan Situmorang

Latar Belakang mata kuliah Algoritma & Struktur Data (4) 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 vs 166 jam! IF2031/Hamonangan Situmorang

Problem Solving : langkah Problem definition Algorithm design / Algorithm specification Algorithm analysis Implementation Testing Maintenance Diambil dari referensi [3] IF2031/Hamonangan Situmorang

1. Problem Definition 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

2. Algorithm Design / Specifications (1) Algoritma: Sekumpulan instruksi terbatas yang jika dijalankan akan melaksanakan tugas tertentu.[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, walaupun jumlah langkah boleh banyak tapi harus terbatas IF2031/Hamonangan Situmorang

2. Algorithm Design / Specifications (2) Efektifitas: tiap instruksi harus berupa perintah dasar bukan merupakan bentukan dari beberapa perintah IF2031/Hamonangan Situmorang

2. Algoritma : Deskripsi menggunakan Pseudo-Code (1) 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, n): Input: An array A storing n integers. Output: The maximum element in A. currentMax  A[0] for i 1 to n -1 do if currentMax < A[i] then currentMax  A[i] return currentMax IF2031/Hamonangan Situmorang

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

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

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

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

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

Time Complexity(1) 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. Waktu running algoritma menjadi isu penting IF2031/Hamonangan Situmorang

Time Complexity(2) 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

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

Time Complexity(4) Pendekatan teoritis [3] : Based on primitive operations (low-level computations independent from the programming language) E.g.: 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. 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

4,5,6: Implementation, Testing, Maintainance Pemutusan bahasa pemrograman yang akan digunakan C, C++, Lisp, Java, Perl, Prolog, assembly, dll. Penulisan koding harus terdokumentasi dengan baik dan jelas. Test, test, test Mengintegrasikan feedback dari user, perbaiki bug, penjaminan kompatibelitas pada berbagai platform  Maintenance IF2031/Hamonangan Situmorang

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