2. algoritma-1

24
Algoritma (Komputer) vitrasia [email protected] 1

Upload: joko-pratomo-adi

Post on 03-Aug-2015

59 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. Algoritma-1

Algoritma (Komputer)

[email protected]

1

Page 2: 2. Algoritma-1

AlgoritmaDitemukan oleh ilmuwan

islam Abu Jabbar Muhammad Ibnu Musa Al khwaritzmi

Algoritma adalah “Langkah-langkah pemecahan suatu masalah, yang terdefinisi dengan jelas sehingga diperoleh pemecahan masalah tersebut”

2

Page 3: 2. Algoritma-1

Apa Itu Algoritma?Definisi

Urutan langkah-langkah untuk memecahkan masalah

Kamus Besar Bahasa Indonesia:Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah

Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah

3

Page 4: 2. Algoritma-1

Penulisan AlgoritmaDalam bahasa natural (Bahasa Indonesia,

Bahasa Inggris, dan bahasa manusia lainnya) Tapi sering membingungkan (ambiguous)

Menggunakan flow chart (diagram alir) Bagus secara visual akan tetapi repot kalau

algoritmanya panjangMenggunakan pseudo-code

Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman

4

Page 5: 2. Algoritma-1

ContohRequirement

Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan

Nantinya ini bisa digeneralisir menjadi n buah bilangan

5

Page 6: 2. Algoritma-1

Algoritma Dalam Bahasa Natural1. Ambil bilangan pertama dan set maks sama

dengan bilangan pertama2. Ambil bilangan kedua dan bandingkan dengan

maks3. Apa bila bilangan kedua lebih besar dari maks,

set maks sama dengan bilangan kedua4. Ambil bilangan ketiga dan bandingan dengan

maks5. Apabila bilangan ketiga lebih besar dari maks,

set maks sama dengan bilangan ketiga6. Variabel maks berisi bilangan terbesar.

Tayangkan hasilnya

6

Page 7: 2. Algoritma-1

Algoritma dengan Flowchart

Maks = bilangan pertama

Maks < bilangan kedua

Maks = bilangan kedua

Maks < bilangan ketiga

Maks = bilangan ketiga

Ya

Ya

Selesai

Mulai

Tidak

Tidak

7

Page 8: 2. Algoritma-1

Algoritma dengan pseudo-codemaks ← bilangan pertamaif (maks < bilangan kedua)maks ← bilangan kedua

if (maks < bilangan ketiga)maks ← bilangan ketiga

8

Page 9: 2. Algoritma-1

Aspek Penting dari Algoritma1. Finiteness

Algoritma harus berhenti after a finite number of steps

2. Definiteness Setiap langkah harus didefinisikan secara tepat, tidak boleh

membingungkan (ambiguous)

3. Input Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada

algoritma sebelum dijalankan

4. Output Sebuah algoritma memiliki satu atau lebih output, yang biasanya

bergantung kepada input

5. Effectiveness Setiap algoritma diharapkan miliki sifat efektif

9

Page 10: 2. Algoritma-1

1. Angkat gagang telepon

2. Masukkan koin

3. Pencet nomor4. Bicara5. Letakkan

gagang

Angkat gagang telepon

START

Masukkan koin

Pencet nomor

Bicara

Letakkan gagang

STOP

Page 11: 2. Algoritma-1

TernyataLangkah-langkah algoritma untuk masalah 1

hanya cocok untuk menggunakan telepon dalam kondisi normal

Bagaimana jika telepon tersebut rusak?

Page 12: 2. Algoritma-1

PengembanganAngkat gagang telepon

START

Nada panggil

Masukkan koin

Pencet nomor

Bicara

Letakkan gagang

STOP

Y

T

Y

T

Langkah “Masukkan koin” dipecah menjadi:

a. Jika terdengar nada panggil masukkan koin

b. Jika tidak terdengar terus ke langkah “Letakkan gagang”

Langkah “Bicara” dipecah menjadi:

a. Jika ada yang mengangkat maka bicara

b. Jika tidak terus ke langkah “letakkan gagang

Page 13: 2. Algoritma-1

Masalah 2: Mencari akar persamaan kuadrat1. Masukkan koefisien

persamaan kuadrat2. Cari akar persamaan

kuadrat menggunakan rumus abc

3. Tampilkan akar persamaan kuadrat

4. Selesai

START

Masukkan koefisien

persamaan kuadrat

Cari akar persamaan

menggunakan rumus abc

Tampilkan akar

persamaan kuadrat

STOP

Page 14: 2. Algoritma-1

Pengembangan langkah 2

Permasalahan tersebut hanya bisa dipecahkan jika nilai diskriminan (D) dari persamaan kuadrat >= 0jika D<0 maka langkah 2 dikembangkan menjadi…

a. Jika D>=0 maka cari menggunakan rumus abc

b. Jika tidak maka pergi ke langkah 4

Page 15: 2. Algoritma-1

Pengembangan lainKalau D< 0 maka

dijadikanlah akar imajiner

Dilakukan perulangan sampai data yang diinputkan benar

Page 16: 2. Algoritma-1

Pengembangan lebih rinciMasalah 1:

Model ke 2 dari masalah menelepon walaupun lebih rinci dari model 1 namun belum memenuhi semua kebutuhan, misal koin habis

Masih diperlukan pengembangan-pengembangan, misal koin macet

Masalah 2:Akar riilAkar riil yang sama, yang berbedaAkar imaginer

Page 17: 2. Algoritma-1

KesimpulanAlgoritma

merupakan urutan langkah-langkah yang terdefinisi dengan jelas dan tidak rancu untuk memecahkan suatu masalah (jika ada pemecahannya) dalam rentang waktu sejumlah langkah tertentu

Page 18: 2. Algoritma-1

Kenapa dibutuhkan algoritma dengan komputer?Misal: mencari bilangan prima dan bukan

primaUntuk angka 8

Cari faktornya: 1,2,3,4,5,6,7,8Tidak akan masalah!Coba untuk 124.320.201

Untuk kasus seperti ini memerlukan otomasiKalau dilakukan secara manual akan

menghabiskan waktuTermasuk contoh-contoh perhitungan lainnya

Page 19: 2. Algoritma-1

Syarat-syarat Algoritma1. Tidak ambigu (mempunyai

tafsiran ganda)misalnya perintah “pergi”

2. Tepat (valid)3. Pasti, walaupun dilakukan

beberapa kali hasilnya selalu sama (reliable), walaupun dilakukan beberapa kali hasilnya selalu samamisalkan menjumlah 5 data, maka setiap proses ini dilakukan jika inputnya sama hasilnya juga sama

Page 20: 2. Algoritma-1

Langkah-langkah pemrograman1. Definisikan masalah2. Memilih garis besar

(outline) pemecahan masalah

3. Menterjemahkan garis-garis besar tersebut menjadi langkah yang lebih rinci

4. Mengintegrasikan algoritma kedalam bahasa pemrograman (coding)

Page 21: 2. Algoritma-1

Contoh: 1. Definisi MasalahDiberikan bilangan bulat non negatif B, jumlahkan

bilangan genap mulai dari 0 sampai dengan BMaka definisikan masalahnya:

1. input yang diberikan…(non negatif adalah… )

2. proses yang dilakukan…butuh berapa variabel? - menyimpan b -> B - menyimpan hasil penjumlahan bilangan genap

-> J - menyimpan berapa kali perulangan untuk

mencapai hasil -> I3. hasil yang akan ditampilkan

Page 22: 2. Algoritma-1

2. Outline Pemecahan1. Baca nilai batas (B)2. Berikan nilai awal I=0, J = 03. Mulai dari 0 sampai dengan B jumlahkan

semua bilangan genap4. Selesai

Page 23: 2. Algoritma-1

3. Langkah lebih rinci1. Baca nilai batas (B)2. Berikan nilai awal I=0, J = 03. Jika I<B

a. Naikkan harga Ii. Jika i=genap

A. Tambahkan pada JB. Ulangi langkah 3

ii. Ulangi langkah 3

b. Ulangi langkah 3

4. Selesai

?????

Page 24: 2. Algoritma-1

TugasBuat algoritma untuk:

Mengurutkan bilangan (sorting) untuk n buah data (misalnya data nilai mahasiswa)

Tower of hanoi