Pengantar Algoritma
K
Zulfikar sembiring
Apa Itu Algoritma?
Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm diserap dalam bahasa Indonesia menjadi Algoritma.
Definisi Algoritma
Beberapa Definisi Algoritma
1. Algortima adalah urutan Langkah-langkah untuk memecahkan suatu masalah. (Rinaldi Munir :2007)
2. Algoritma adalah deretan langkah - langkah komputasi yang mentrasnformasikan data masukan menjadi keluaran ( Thomas H Cormen : 1989)
3. Algoritma adalah deretan instruksi yang jelas untuk memecahkan masalah, yaitu memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas (Anany Levitin : 2003)
Algoritma dapat diartikan kumpulan instruksi/perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis untuk penyelesaian suatu masalah.
Ciri – ciri Algoritma
• Finiteness (Keterbatasan)
Algoritma harus berakhir setelah melakukan sejumlah langkah proses
• Definiteness (Kepastian)
Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda
• Input (Masukan)
Sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan kepada algoritma sebelum dijalankan
• Output (Keluaran)
Setiap algoritma memberikan satu atau beberapa hasil keluaran
• Effectiveness (Efektivitas)
Langkah-langkah algoritma dikerjakan dalam waktu yang “wajar”
Sifat Algoritma
• Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman
• Tidak tergantung pada suatu bahasa pemrograman
• Notasi – notasinya dapat digunakan untuk seluruh bahasa manapun.
Beda Algoritma dan Program
• Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
• Beberapa Pakar memberikan formula Bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Notasi Algoritmik
Penyajian algoritma secara garis besar bisa Dalam 3 bentuk notasi penyajian yaitu :
1. Untaian Kalimat Deskriptif 2. Diagram Alir (Flowchart) 3. Kode Semu (Pseudo-code)
Notasi I (Kalimat Deskriptif)
• PROGRAM Euclidean
diberikan dua buah bilangan bulat tak negatif m dan n (m>=n).
Algoritma euclidean mencari pembagi bersama terbesar, gcd, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.
ALGORITMA :
1. Jika n = 0 maka
m adalah jawabannya;
stop.
tetapi jika n ≠ 0 ,
lanjut ke langkah ke 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya.
3. Gantilah m dengan nilai n dan nilai n dengan nilai r, lalu ulang lagi ke langkah 1.
Notasi II (Flowchart)
Definisi
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan setiap simbol menggambarkan suatu proses tertentu.
Kegunaan
• Untuk mendesain program
• Untuk merepresentasikan program
Secara garis besar, unsur-unsur pemrograman adalah Input Proses Output.
Notasi II (lanjutan)
Simbol simbol Flowchart
Notasi II (lanjutan)
Simbol simbol Flowchart
Notasi II (lanjutan)
Simbol simbol Flowchart
Notasi II (lanjutan)
Simbol simbol Flowchart
Notasi II (lanjutan)
Simbol simbol Flowchart
Notasi II (lanjutan)
• MOD adalah operator pembagian
bilangan bulat yang menghasilkan sisa hasil pembagian. Contohnya : 9 MOD 2
= 1 karena 9 dibagi 2 = 4 dan memberikan sisa = 1
• Didalam diagram alir disamping
ditambahkan instruksi pembacaan nilai m dan n.
Notasi III (Pseudo-code)
Definisi
• Pseudocode adalah kode atau notasi yang mirip dengan kode pemrograman yang sebenarnya seperti pada Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram.
Notasi III (lanjutan)
• PROGRAM Euclidean
program untuk mencari gcd dari dua buah bilangan bulat tak negatif m dan n (m >= n).
Gcd dari m dan n adalah bilangan bulat positif terbesar yang habis membagi m dan n.
DEKLARASI :
m, n : integer {bilangan bulat yang akan dicari gcdnya}
r : integer {sisa hasil bagi}
ALGORITMA : read (m,n) while n ≠ 0 do
r ← m MOD n {hitung sisa hasil pembagian}
m ← n n ← r endwhile
{kondisi selesai pengulangan : n = 0 , maka gcd (m,n) = 0}
write (m)
Diskusi
Algoritma menjalankan sepeda motor 1. Hidupkan starter
2. Masukan kunci kontak 3. Tekan gigi 1
4. Perbesar gas 5. Jalan
Dimanakah letak kesalahan algoritma diatas?
Diskusi 2
• Misalkan anda mempunyai 2 buah ember, masing-masing bervolume 5 liter dan 3 liter. Anda diminta mendapatkan air (dari sebuah danau) sebanyak 4 liter air dengan menggunakan bantuan hanya kedua ember tersebut(tidak ada peralatan lain yang tersedia, hanya kedua ember tersebut saja yang ada!) Terserah bagaimana caranya. Anda boleh memindahkan air dari satu ember ke ember lain, membuang seluruh air dari ember, dan sebagainya. Bagaimana algoritmanya???
Latihan
• Buatlah contoh algoritma yang lain dalam kehidupan sehari hari. Tuliskan algoritma kalimat deskriptif dan flowchart-nya.