m.rifan@yahoo.co.id
Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah
2
Domain algoritma
Masalah : motivasi untuk membuat algoritma. Algoritma : prosedur untuk menyelesaikan masalah. Seringkali satu masalah dapat diselesaikan dengan lebih dari satu cara (banyak kemungkinan). Program: representasi formal dari suatu algoritma dengan menggunakan bahasa pemrograman yang bisa dimengerti oleh komputer. Proses : aktivitas menjalankan langkah-langkah dalam algoritma.
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
4
Penulisan Algoritma
Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya)
Tapi sering membingungkan (ambiguous)
Menggunakan pseudo-code
Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman
6
Flowchart
Suatu flowchart adalah suatu representasi secara diagram yang mengilustrasikan urutan dari operasi yang dilakukan untuk mendapatkan suatu hasil. Dengan kata lain, flowchart membantu kita untuk mengerti dan melihat bentuk algoritma dengan menampilkan algoritma dalam simbol-simbol gambar.
Start / End Proses Input / Output Percabangan Koneksi dua bagian flowchart Garis Alir
Gambar 1.1
Flowchart
Dalam menggambar flowchart, digunakan simbol tertentu seperti diatas. Contoh berikut bisa digunakan untuk lebih mengerti perbedaan kegunaan simbol-simbol tersebut. Misal kita ingin mencari jumlah dari 2 buah bilangan, maka flowchart-nya adalah sebagai berikut :
Start
Masukkan A dan B
C=A+B
Tampilkan C
End
Gambar 1.2
Flowchart
Contoh lain, misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. Untuk itu kita harus membuat flowchart seperti ini :
Start
Masukkan A
Bagi A dengan 2
ya
tidak
Genap
Ganjil
End
Gambar 1.3
Pseudo Code
Pseudo Code adalah urutan baris algoritma seperti kode pemrograman dan tidak memiliki sintak yang baku. Pseudo Code lebih umum digunakan oleh programmer yang berpengalaman. Akan tetapi, flowchart lebih mudah dimengerti oleh programmer pemula. Pseudo code sangat mudah diimplementasikan ke dalam kode program dibandingkan dengan flowchart.
Pseudo Code
Kita bisa bebas menulis pseudo code selama itu mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya. Dan ikuti gaya penulisan pemrograman seperti Pascal, C++, dll. Perhatikan kode dibawah ini :
1. 2. 3. 4. 5.
Mulai Masukkan sebuah angka Masukkan sebuah angka dan tampilkan Ambil angka yang sebelumnya dan tampilkan Selesai
Pseudo Code
Walaupun pseudo code diatas masih bisa dimengerti tetapi ada beberapa statemen yang ambigu. Dari baris kedua, kita tidak tahu kemana angka tersebut disimpan dan kita juga tidak tahu angka yang mana yang dimaksud untuk angka yang sebelumnya. Apakah angka yang pertama atau yang kedua. Pseudo Code diatas dapat dimodifikasi menjadi seperti berikut :
1. 2. 3. 4. 5.
Pseudo Code
Pseudo Code diatas lebih baik dibandingkan sebelumnya. Kita bisa dengan jelas melihat dimana angka disimpan dan angka yang mana yang ditampilkan. Sekarang kita akan mengubah flowchart pada gambar 1.2
1. 2. 3. 4. 5.
Contoh 1
Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?
teh
kopi
Contoh 1
Algoritma
Siapkan gelas cadangan X Tuangkan gelas yang berisi teh ke gelas cadangan Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh
kopi X
teh
teh
kopi
Contoh 2
Requirement
Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan Nantinya ini bisa digeneralisir menjadi n buah bilangan
22
Ya
Tidak
Ya
Tidak
Selesai
24
25
Tugas
Buat algoritma untuk
Mengurutkan bilangan (sorting) untuk n buah data (misalnya data nilai mahasiswa) Deret Fibonacci Menghitung Nilai Resistor dari Warna Cincin-cincin Resistor
26