Upload
joko-pratomo-adi
View
64
Download
0
Embed Size (px)
Citation preview
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
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
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
ContohRequirement
Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan
Nantinya ini bisa digeneralisir menjadi n buah bilangan
5
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
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
Algoritma dengan pseudo-codemaks ← bilangan pertamaif (maks < bilangan kedua)maks ← bilangan kedua
if (maks < bilangan ketiga)maks ← bilangan ketiga
8
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
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
TernyataLangkah-langkah algoritma untuk masalah 1
hanya cocok untuk menggunakan telepon dalam kondisi normal
Bagaimana jika telepon tersebut rusak?
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
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
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
Pengembangan lainKalau D< 0 maka
dijadikanlah akar imajiner
Dilakukan perulangan sampai data yang diinputkan benar
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
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
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
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
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)
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
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
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
?????
TugasBuat algoritma untuk:
Mengurutkan bilangan (sorting) untuk n buah data (misalnya data nilai mahasiswa)
Tower of hanoi