analisis algoritma

Preview:

Citation preview

Matakuliah : T0034 / Perancangan & Analisis Algoritma

Tahun : 2008

Pertemuan 1

PENGENALAN PERANCANGAN &ANALISIS ALGORITMA

Bina Nusantara

Buku Panduan Matakuliah

• Buku Referensi :– Computer Algorithms / C++

• Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran.• Computer Science Press. (1998)

– Introduction to Algorithms• Thomas H Cormen, Charles E Leiserson, Ronald L.• 2nd Edition. The MIT Press. New York. (1990)

– Algorithms in C++ (Parts 1-4)• Robert Sedgewick. Computer Science Press. (1998)

– Algoritma Itu Mudah• Robert Setiadi.• PT Prima Infosarana Media, Kelompok Gramedia.• Jakarta. (2008)

Bina Nusantara

APA ITU ALGORITMA?

• Cara menyelesaikan suatu proses• Terdiri atas langkah-langkah yang terdefinisi dengan baik• Bisa dihitung (computable) atau bisa diukur (measurable)• Menerima input, menghasilkan output

• An algorithm is a sequence of computational steps that transform the input into the output

• An algorithm is a tool for solving a well-specified computational problem

Bina Nusantara

DEFINISI ALGORITMA MENURUT PAKAR

• Menurut Abu Ja’far Mohammad Ibn Musa Al Khoarismi:

“Suatu metode khusus untuk menyelesaikan suatu persoalan.”

• Menurut Goodman Hedet Niemi:

“Urut-urutan terbatas dari operasi-operasi terdefinisi dengan baik, yang masing-masing membu-tuhkan memory dan waktu yang terbatas untuk menyelesaikan suatu masalah.”

Bina Nusantara

ALGORITMA

• Algoritma adalah cara yang dapat ditempuh oleh komputer dalam mencapai suatu tujuan, terdiri atas langkah-langkah yang terdefinisi dengan baik, menerima input, melakukan proses, dan menghasilkan output. Meskipun tidak selalu, biasanya sebuah algoritma memiliki sifat bisa dihitung (computable) atau bisa diukur (measurable).

Bina Nusantara

SYARAT CORRECTNESS

• Sebuah algoritma dikatakan BENAR (correct) jika algoritma tersebut berhasil mengeluarkan output yang benar untuk semua kemungkinan input.

• Bagaimana dengan 99% benar?– 99% benar artinya sebuah algoritma adalah SALAH

(incorrect)

Bina Nusantara

PSEUDOCODE

• Adalah cara untuk menuliskan sebuah algoritma secara high-level

• Biasanya dituliskan dengan kombinasi bahasa Inggris dan notasi matematika– Lebih terstruktur daripada bahasa Inggris biasa– Tidak detil dibanding program

• Isu-isu detil dalam program yang sifatnya teknis tidak dibahas dalam pseudocode

Bina Nusantara

CONTOH PSEUDOCODE (1)

• Algoritma untuk menampilkan 7 buah simbol #

1 for i=1 to 7 do

2 display ”#”

3 end for

[buku utama, pseudocode 2.3b]

Bina Nusantara

CONTOH PSEUDOCODE (2)

• Algoritma untuk menghitung Faktorial dari N

1 iTampung=12 for i=1 to N do3 iTampung=iTampung*i4 end for5 display ”Faktorial dari ”,N,” adalah ”,iTampung,NL

[buku utama, pseudocode 2.8b]

Bina Nusantara

CONTOH PSEUDOCODE (3)

• Algoritma untuk menampilkan 8 bilangan Fibonacci

1 f1=0

2 f2=1

3 for i=1 to 8 do

4 iFibo=f1+f2

5 display ”Angka ke-”,i,” adalah ”,iFibo,NL

6 f1=f2

7 f2=iFibo

8 end for

[buku utama, pseudocode 2.9b]

Bina Nusantara

KOMPONEN PSEUDOCODE• Variabel

– Merupakan tempat penyimpanan sebuah nilai

• Perulangan (loop)– Teknik for-do– Teknik repeat-until– Teknik while-do

• Percabangan (branch)– Teknik if-then– Teknik select-case

• Modul– Procedure / Sub– Function– Teknik rekursif

Bina Nusantara

VARIABEL

• Merupakan tempat penyimpanan sebuah nilai• Memiliki nama• Dapat dimasukkan sebuah nilai• Dapat dipanggil nilainya• Menampung tipe data tertentu

– Numerik– Karakter– String

• Beberapa variabel yang tipenya sama dapat dirangkai menjadi sebuah array

[buku utama, bab 2.2]

Bina Nusantara

TEKNIK FOR-DO• Perulangan berdasar :

– Variabel penentu perulangan– Batas bawah– Batas atas

• Contoh algoritma menampilkan N bilangan Fibonacci pertama (pseudocode 2.9b)

1 f1=02 f2=13 for i=1 to N do4 iFibo=f1+f25 display ”Angka ke-”,i,” adalah ”,iFibo,NL6 f1=f27 f2=iFibo8 end for

[buku utama, bab 2.3.1 dan bab 2.3.2]

Bina Nusantara

TEKNIK REPEAT-UNTIL• Perulangan berdasarkan kondisi

(true atau false)

• Kondisi diperiksa di akhir perulangan

• Perulangan terjadi selama kondisi belum terpenuhi

• Minimal terjadi 1x perulangan

[buku utama, bab 2.3.3]

• Contoh algoritma menampilkan N bilangan Fibonacci pertama (pseudocode 2.9c)

1 f1=0 2 f2=1 3 iFibo=f1+f2 4 i=1 5 repeat 6 display ”Angka ke-”,i,”

adalah ”,iFibo,NL 7 i=i+1 8 f1=f2 9 f2=iFibo10 iFibo=f1+f211 until i>N

Bina Nusantara

TEKNIK WHILE-DO

• Perulangan berdasarkan kondisi (true atau false)• Kondisi diperiksa di awal perulangan• Perulangan terjadi selama kondisi masih terpenuhi• Bisa terjadi 0 perulangan jika dari awal kondisi tidak

terpenuhi

• Buatlah contoh algoritma menampilkan N bilangan Fibonacci pertama dengan menggunakan teknik while-do!

[buku utama, bab 2.3.4]

Bina Nusantara

TEKNIK IF-THEN

• Percabangan berdasarkan kondisi (true atau false)• Terdapat 2 segmen, akan dieksekusi berdasarkan kondisi

• Contoh algoritma dengan if-then (pseudocode 2.13b)

1 if iUmur >= 17 then

2 display ”Anda boleh masuk”,NL

3 else

4 display ”Maaf Anda tidak boleh masuk”,NL

5 end if

[buku utama, bab 2.4.1]

Bina Nusantara

TEKNIK SELECT-CASE

• Percabangan berdasarkan nilai sebuah variabel ordinal• Terdapat banyak segmen, akan dieksekusi berdasarkan

kondisi

• Contoh algoritma dengan select-case (pseudocode 2.15)

1 display ”Masukkan jumlah sisi bangun : ”2 read iSisi3 switch iSisi4 case 3 : display ”segitiga”,NL5 case 4 : display ”kotak”,NL6 case 5 : display ”segilima”,NL7 else : display ”nama bangun tdk terdaftar”,NL8 end switch

[buku utama, bab 2.4.2]

Bina Nusantara

NOTASI MATEMATIKA

Penjumlahan dan sifat-sifatnya

1.

2. Sifat Linearitas

3.

n

kkn aaaa

121 ....

n

kk

n

kk

n

kkk bacbac

111

n

k

n

k

kfkf11

Bina Nusantara

DERET

1. Deret Aritmatika

2. Deret Harmonis

2n

1k

n2

1nnn.....21k

1 0 ln

.....1

1

1

141

31

21

n

Hn

kk

nn

Bina Nusantara

LATIHAN

• Buatlah sebuah pseudocode untuk menampilkan N bilangan pertama secara terbalik.– contoh : 10, 9, 8, 7, 6, 5, 4, 3, 2, 1– Buat dengan menggunakan teknik for-do!– Buat dengan menggunakan teknik repeat-until!– Buat dengan menggunakan teknik while-do!

• Buat sebuah pseudocode yang akan menerima sebuah bilangan X dari user. Tampilkan pesan “benar” jika X habis dibagi 2, 3 atau 7 dan tampilkan “salah” jika tidak habis dibagi.

Bina Nusantara

REVIEW

• Apa yang sudah dipahami?• Apa yang akan dibahas selanjutnya?

Recommended