foundation of algorithm

20
Algoritma & Pemrograman Tahun Pelajaran 2009/2010 oleh : Choiriyah, S.Pd Semarang, Juli 2009

Upload: danver98

Post on 23-Jul-2015

141 views

Category:

Education


1 download

TRANSCRIPT

Algoritma & PemrogramanTahun Pelajaran 2009/2010

oleh :

Choiriyah, S.Pd

Semarang, Juli 2009

Apakah ALGORITMA ? Untuk Apa ALGORITMA ? Karakateristik ALGORITMA Struktur Dasar ALGORITMA Penyajian ALGORITMA Analisis ALGORITMA Rahasia Belajar Algoritma

Asal kata Abu Ja’far Muhammad Ibn Musa Al Khuwarizmi Al Jabar Wal Muqabata.

“Permasalahan yang Besar dapat diselesaikan dengan membaginya ke dalam masalah-masalah yang lebih kecil”

“Permasalahan yang Besar dapat diselesaikan dengan membaginya ke dalam masalah-masalah yang lebih kecil”

(Rinaldi Munir :2002) urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis

(KBBI :1988) urutan logis pengambilan keputusan untuk pemecahan masalah

(Team Gunadarma :1988) suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik

Untuk apa Untuk apa ALGORITMA?ALGORITMA?

Menentukan dengan tepat langkah2 apa yg harus diambil untuk mencapai tujuan sehingga dapat ditempuh dengan efektif dan efisien.

Algoritma dibutuhkan (terkait dengan komputer): untuk memerintah komputer mengambil

langkah-langkah tertentu dalam menyelesaikan masalah

Contoh Algoritma di kehidupan Nyata

??

Menurut Donald E. Knuth :1. Algoritma harus berhenti setelah mengerjakan

sejumlah langkah terbatas.2. Setiap langkah harus didefinisikan secara tepat dan

tidak berarti dua.3. Algoritma memiliki nol atau lebih masukan (input).4. Algoritma mempunyai nol atau lebih keluaran

(output).5. Algoritma harus sangkil (efektif)

Pembuatan algoritma harus selalu dikaitkan dengan:Kebenaran algoritmaKompleksitas (lama dan jumlah waktu proses dan penggunaan memori)

“Suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah yang berhingga dan prosesnya berakhir baik dalam keadaaan diperoleh suatu solusi ataupun tidak adanya solusi.”

1. Berurutan (sequence):langkah dikerjakan secara berurutan (sekuensial).

2. Percabangan (selection):langkah dikerjakan JIKA memenuhi kondisi tertentu

3. Pengulangan (iteration): langkah dikerjakan SELAMA memenuhi suatu kondisi tertentu.

4. Konkuren (concurrent): beberapa langkah dikerjakan secara bersama.

Penyajian ALGORITMA

• Teknik tulisan; English Structure Pseudocode

• Gambar Metode structure chart, Hierarchy plus input-process-output Flowchart Nassi Schneiderman chart

Algoritma dengan banyak kemungkinan2

1. Bagaimana merencanakan algoritma 2. Bagaimana menyatakan suatu algoritma

(menulis algoritma)3. Bagaimana validitas suatu algoritma.4. Bagaimana Menganalisa suatu Algoritma.5. Bagaimana Menguji Program dari suatu

Algoritma

Ad.1. Bagaimana merencanakan algoritma

Dengan Mendefinisikan masalah.

Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran.

Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.

Ad.2.Bagaimana menyatakan suatu algoritma (menulis algoritma)

◦ Dengan psudocodeSuatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu.

Phi 3.14Input (diameter)Radius diameter / 2Luar phi * radius * radiusOutput (Luas)End

Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:

1. Waktu Tempuh dari Suatu Algoritma2. Jumlah memori yang digunakan

Hal-hal yang dapat mempengaruhi waktu tempuh adalah :1. Banyaknya langkah.2. Besar dan jenis input data.3. Jenis Operasi.4. Komputer dan kompilator

MEMPROGRAMBERMAIN

SILAT

Variasi kombinasi dari algoritma2 dasarRangkaian urutan kombinasi/variasi

Mau membaca tulisan, artikel, dokumentasi, howto, atau bantuan (Help) berbahasa Inggris

Membaca source code atau meniru program-program sederhana

Mencoba dan Mencoba Mengerjakan Proyek Terus.. Bertanya ke teman yang sudah bisa Mencari di internet Bertanya di milis atau forum