i pendahuluan algoritma struktur data l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
I.Pendahuluan Algoritma & struktur Data PowerPoint Presentation
Download Presentation
I.Pendahuluan Algoritma & struktur Data

Loading in 2 Seconds...

play fullscreen
1 / 25

I.Pendahuluan Algoritma & struktur Data - PowerPoint PPT Presentation


  • 380 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'I.Pendahuluan Algoritma & struktur Data' - Lucy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
i pendahuluan algoritma struktur data

I.PendahuluanAlgoritma & struktur Data

IF-2031

Hamonangan situmorang

roadmap belajar pemrograman 1
Roadmap BelajarPemrograman(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

Problem Solving

(ultimate goal)

Pe-ngem bang-an

Ke

pri

ba

di

an

Advanced Topics (algorithms, data structures)

Intermediate Topics (algorithms, data structures)

Matematika Informatika

Algoritma dan Struktur sederhana

Dasar Informatika

Dasar Pemrograman

Bahasa Pemrograman

Roadmap BelajarPemrograman(2)

Diambil dari referensi [1]

IF2031/Hamonangan Situmorang

elemen program prosedural
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
DefinisiDasar
  • 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
LatarBelakangmatakuliahAlgoritma & 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
LatarBelakangmatakuliahAlgoritma & 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
LatarBelakangmatakuliahAlgoritma & 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
LatarBelakangmatakuliahAlgoritma & Struktur Data (4)
  • Solusi 2 : Binary searching :
  • Urutkankata
  • Caridisetengahkumpulan data setiapwaktunya

Contoh : Cari 25 padakumpulan 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

Berapalangkah?

log 2 600000 = 19 detikvs166 jam!

IF2031/Hamonangan Situmorang

problem solving langkah
Problem Solving : langkah
  • Problem definition
  • Algorithm design / Algorithm specification
  • Algorithm analysis
  • Implementation
  • Testing
  • Maintenance

Diambil dari referensi [3]

IF2031/Hamonangan Situmorang

1 problem definition
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
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
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
2. Algoritma : Deskripsimenggunakan 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

ifcurrentMax < A[i] thencurrentMax A[i]

returncurrentMax

IF2031/Hamonangan Situmorang

2 algoritma deskripsi menggunakan pseudo code 2
2. Algoritma : Deskripsimenggunakan 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
3. Algorithm Analysis
  • Space 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(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
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
Space Complexity(3)
  • S(P) = c + S(instance characteristics)
    • 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
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
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
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
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
4,5,6: Implementation, Testing, Maintainance
  • Implementation
    • 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
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