Apakah Algoritma Itu?
Mungkin kita sering mendengar kata Algoritma dan ttidak jarang orang sering mengkaitkan kata lagoritma dengan kata logaritma karena bunyinya terdengar hampir sama. Sebenarnya, antara algoritma dan logaritma itu tidak ada hubungannya. Ditinjau dari asal usul kata, kata algoritma sendiri mempunyai sejarah yang unik. Kata ini tidak. muncul di dalam kamus Webster sampai akhir tahun 1975. waktu itu orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka Arab. Singkat cerita pada waktu itu jika anda menghitung dengan menggunakan angka arab maka anda akan dikatakan algorist.
Para ahli bahasa berusaha menemukan asal muasal kata algorism ini namun hasilnya kurang memuaskan. Akhirnya ahli sejarah matematika menemukan asal muasal kata tersebut. Kata algorism berasal dari nama penulis buku arab yang terkenal, yaitu Abu Ja’far Muhammad ibnu Musa al-Khuarizmi (al-Khuarizmi dibaca orang barat menjadi algorism). Al-Khuarizmi menulis buku yang berjudul Kitab al jabar wal-muqabala, yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “aljabar” (algebra).
Perubahan dari kata algorism menjadi algoritm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka arab sudah menjadi hal yang biasa atau lumrah, maka lambat laun kata algorithm berangsur angsur di pakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Pada tahun 1950, kata algoritma sering dihubungkan dengan “algoritma Euclidean” (Euclid’s algorithm), yaitu proses untuk menemukan pembagi bersama terbesar (common greatest divisor) dari dua bilangan bulat.
Algoritma EUCLIDEAN
Diberikan dua buah bilangan bulat positif m dan n (m ≥ n). Carilah pembagi bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.
DESKRIPSI :
1. Bagilah m dengan n dan misalkan r adalah sisanya.
2. Jika r = 0 maka
n adalah jawabannya;
stop
tetapi jika r ≠ 0,
lanjutkan ke langkah 3.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
Sebagai contoh, misalkan m = 30 dan n = 12, maka pbt(30,12) dapat dihitung dengan algotima Euclidean sebagai berikut :
1.1 Hitung m/n = 30/12 = 2, sisanya r = 6
2.1 Karena r = 6 ≠ 0, maka lanjutkan ke langkah 3.1
3.1 Nilai m = n = 12 dan n = r = 6. Lanjutkan kelangkah 1.2
1.2 Hitung m/n = 12/6 = 2, sisanya r = 0.
2.2 Karena r = 0, maka n = 6 adalah jawabannya. Stop.
Jadi, pbt (30,12) = 6.
Definisi Algoritma:
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Sedangkan menurut Kamus Besar Bahasa Indonesia terbitan Balai Pustaka tahun 1988, definisinya adalah :
Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.
Kata logis merupakan kata kunci. Langkah-langkah tersebut harus logis, itu berarti nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar akana memberikan hasil yang salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua buah bejana, A dan B. bejana A berisi larutan berwarna merah, sedangkan bejana B berisi air berwarna biru (lihat gambar bejana) kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Gambar dua buah Bejana
Seseorang menuliskan langkah-langkah pertukaran isi kedua bejana tersebut dengan algoritma TUKAR ISI BEJANA sebagai berikut :
Algoritma TUKAR_ISI_BEJANA
Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukakan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
DESKRIPSI :
1. Tuangkan larutan dari bejana A ke bejana B
2. Tuangkan larutan dari bejana B ke bejana A
Algoritma TUKAR ISI BEJANA yang di tulis seseorang tersebut tidak menghasilkan pertukaran yang benar. Langkah-langkahnya tidak logis. Alih-alih mempertukarkan, yang terjadi adalah percampuran keduanya. Jadi, algoritma TUKAR ISI BEJANA tersebut Salah!
Untuk mempertukarkan isi dua buah bejana, kita memerlukan sebuah bejana tambahan yang di perlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana C. dengan menggunakan bejana Bantu C ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut :
Algoritma TUKAR_ISI_BEJANA
Diberikan dua buah bejana, A dan B; bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukakan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
DESKRIPSI :
1. Tuangkan larutan dari bejana A ke bejana C
2. Tuangkan larutan dari bejana B ke bejana A
3. Tuangkan larutan dari bejana C ke bejana B
maka algoritma TUKAR ISI BEJANA yang sudah diperbaiki ini, isi bejana A dan B dapat dipertukarkan dengan benar. Pada akhir algoritma, bejana A berisi larutan berwana biru dan bejana B berisi larutan berwarna merah. Gambar ilustrasinya sebagai berikut:
Gambar Ilustrasi Langkah algoritma TUKAR ISI BEJANA
kedua contoh algoritma yang diuraikan diatas memberikan dua pesan penting.
Pertama, algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti algoritma memberi hasil yang benar.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting:
- Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, tinjau kembali algoritma EUCLIDEAN diatas pada langkah 2, jika r = 0 algoritma berhenti. Jika r ≠ 0. maka nilai n selalu berkurang sebagai akibat langkah 3 dan 1, dan pada akhirnya nilai r = 0. program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah.
- Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Pembaca harus mengerti apa yang dimaksud dengan “m dan n adalah bilangan bulat postif”. Pada algoritma EUCLIDEAN, setiap kali langkah 1 dikerjakan, kita harus memastikan nilai mdan n selalu positif. Contoh lainnya, pernyataan “bagilah p dengan sejumlah beberapa buah bilangan bulat positif” dapat bermakna ganda. Berapakah yang dimaksud dengan “berapa”? Algoritma menjadi jelas jika langkah tersebut ditulis “bagilah p dengan 10 buah bilangan bulat positif”.
- Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja. Algoritma EUCLIDEAN mempunyai dua buah masukan, m dan n, sedangkan algoritma TUKAR ISI BEJANA memiliki masukan bejana A dan bejana B.
- Algoritma mempunyai nol atau lebih keluaran (output). Keluaran ialah besaran yang memiliki hubungan dengan masukan. Algoritma EUCLIDEAN mempunyai satu keluaran, yaitu n pada langkah 2, yang merupakan pembagi bersama terbesar dari kedua masukannya. Algoritma TUKAR ISI BEJANA tidak memiliki keluaran sama sekali
- Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat dikerjakan dalam jumlah waktu yang masuk akal.
0 komentar:
Posting Komentar