Saat mendengar ataupun membaca kata algoritma, sebagian besar orang pasti akan berpikir bahwa kata tersebut berkaitan dengan bahasa pemrograman, matematika, ataupun ilmu komputer.
Perkembangan ilmu pengetahuan dan teknologi menjadikan manusia mampu menghasilkan karya-karya yang semakin canggih dan kompleks.
Meskipun komputer dapat melakukan perhitungan dengan cepat dibandingkan manusia pada umumnya, namun komputer tidak bisa menyelesaikan masalah begitu saja tanpa diajarkan oleh manusia melalui urutan langkah-langkah (algoritma) penyelesaian yang didefinisikan terlebih dahulu.
Selain digunakan untuk pemecahan masalah menggunakan komputer, algoritma juga dapat diterapkan dalam menyelesaikan permasalahan sehari-hari yang membutuhkan sederet proses atau langkah-langkah prosedural.
Baca juga: Pengertian Arsitektur Komputer
Sejarah Algoritma
Algoritma berasal dari nama penulis buku, yakni Abu Ja`far Muhammad Ibnu Musa Al-Khwarizmi yang berasal dari Uzbekistan. Orang Barat menyebut Al-Khwarizmi dengan Algorism.
Pada saat itu, Al-Khwarizmi menulis buku dengan judul Al Jabar wal-Muqabala yang artinya `Buku Pemugaran dan Pengurangan` (The book of Restoration and Reduction). Dari judul buku tersebut, kita juga memperoleh kata “aljabar” atau biasa dikenal dengan algebra.
Abu Abdullah Ibnu Musa al-Khawarizmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di selatan Sungai Oxus (sekarang disebut Uzbekistan) pada 770 M.
Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa cabang ilmu matematika yang berhasil ditemukannya, antara lain yang dikenal sebagai astronom dan geografer.
Awalnya, algoritma merupakan istilah yang merujuk kepada aturan-aturan aritmetis yang berguna untuk menyelesaikan persoalan dengan menggunakan bilangan numeric Arab.
Pada tahun 1950, kata algoritma pertama kali digunakan pada “algoritma Euclidean” (Euclid`s algorithm).
Euclid, seorang matematikawan Yunani (lahir pada tahun 350 M), dalam bukunya yang berjudul Element menuliskan langkah-langkah untuk menemukan pembagi bersama terbesar (common greatest divisor atau gcd), dari dua buah bilangan bulat, m dan n [KNU73] (tentu saja Eulid tidak menyebut metodenya itu sebagai algoritma, baru di abad modernlah orang-orang menyebut metodenya itu sebagai “algoritma Euclidean”).
Pembagi bersama terbesar dari dua buah bilangan bulat tak negatif adalah bilangan bulat positif terbesar yang habis membagi kedua bilangan tersebut.
Misalnya, m= 80 dan n =12. Semua faktor pembagi 80 adalah
1,2,4,5,8,10,16,20,40,80 dan semua faktor pembagi 12 adalah 1,2,3,4,6,12,
maka gcd(80,12) = 4.
Langkah-langkah mencari gcd(80,12) dengan algoritma Euclidean sebagai berikut:
80 dibagi 12 hasilnya =6, sisa 8 (atau:80 =6.12+8)
12 dibagi 8 hasilnya = 1, sisa = 4 (atau:12 =1.8+4)
8 dibagi 4 hasilnya = 2, sisa =0 (atau:8 =4.2+0)
karena pembagian yang terakhir menghasilkan 0, maka sisa pembagian terakhir sebelum 0, yaitu
4, menjadi gcd(80,12). Jadi, gcd(80,12) = gcd(12,8) = gcd(8,4) = gcd(4,0)=4.
Pengertian Algoritma
Pengertian algoritma adalah suatu urutan dalam beberapa tahapan yang logis dan juga sistematis agar bisa menyelesaikan suatu masalah tertentu.
Beberapa ahli ada yang berpendapat bahwa algoritma adalah serangkaian tahapan yang harus diikuti dalam suatu operasi atau perhitungan pada berbagai pemecahan masalah lain, khususnya komputer.
Itu artinya, seluruh susunan logis yang diurutkan dengan berdasarkan sistematika khusus dan digunakan dalam memecahkan suatu masalah tertentu bisa kita katakan sebagai algoritma.
Umumnya, algoritma akan digunakan agar bisa melakukan penghitungan, melakukan penalaran secara otomatis, serta mengolah data di dalam komputer dengan menggunakan software tertentu.
Di dalamnya pun terdapat serangkaian terbatas dan juga beberapa instruksi khusus agar bisa menghitung suatu fungsi yang apabila dieksekusi dan diproses akan menghasilkan output tertentu, lalu akan berhenti dalam kondisi akhir yang sebelumnya sudah ditentukan.
Algoritma sendiri terbentuk dari tiga dasar utama, yaitu:
- Algoritma sekuensial adalah suatu perintah yang bisa tersusun secara sistematis dan berurutan agar nantinya bisa menampilkan beberapa instruksi tertentu secara khusus.
- Algoritma perulangan atau looping algorithm merupakan suatu perintah yang bisa digunakan agar bisa mengulang beberapa banyak perintah dengan cara memperhitungkan beberapa syarat khusus.
- Algoritma percabangan ataupun bersyarat, yakni suatu perintah yang bisa berguna dalam memilih salah satu dari beberapa pilihan yang sudah ada.
Baca juga: Macam-macam Topologi Jaringan Komputer, Kelebihan dan Kekurangan
Fungsi Algoritma
Pada dasarnya, fungsi utama dari suatu algorima adalah agar mampu memecahkan suatu masalah.
Sedangkan fungsi dan manfaat lain dari algoritma adalah sebagai berikut ini:
- Agar bisa membantu menyederhanakan suatu program yang rumit dan juga besar
- Agar bisa mempermudah membuat program yang dapat menyelesaikan masalah tertentu
- Bisa digunakan berulang kali dalam menyelesaikan suatu permasalahan.
- Membantu menyelesaikan suatu masalah dengan logika dan juga sistematis.
- Agar bisa meminimalisir penulisan program secara berulang-ulang
- Agar bisa melakukan pendekatan top-down dan divide and conquer
- Agar memudahkan pembuatan program yang lebih rapi dan juga terstruktur
- Mempermudah proses modifikasi pada suatu program karena bisa dilakukan hanya pada satu modul saja tanpa merubah modul yang lainnya lagi.
- Mampu membantu menemukan kesalahan karena alur kerjanya yang jelas.
- Mempermudah berbagai proses dokumentasi.
Contoh Algoritma
Salah satu dari algoritma sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut). Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tapi hanya sekali.
Dari hal ini munculah algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Deskripsi tingkat-tinggi:
- Jika tidak ada angka dalam deret makan tidak ada bilangan terbesar.
- Asumsikan item pertama dalam deret adalah yang terbesar.
- Untuk setiap sisa angka dalam deret, jika angka tersebut besar dari angka terbesar sekarang, anggap angka tersebut menjadi yang terbesar dalam deret.
- Bila tidak ada lagi angka yang tersisa pada deret untuk diperiksa, anggap angka terbesar sekarang menjadi angka yang terbesar dalam deret.
Deskripsi (Quasi-)formal: Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin:
Algoritma LargestNumber Masukan: Deret angka L. Keluaran: Angka terbesar dalam daftar L. |
terbesar ← Lnull untuk setiap item dalam L, lakukan jika item > terbesar, maka terbesar ← item kembalikan terbesar |
“←” adalah singkatan untuk “diubah menjadi”. Misalnya, “terbesar ← item” artinya nilai dari terbesar diubah menjadi nilai dari item.”kembalikan” mengakhiri algoritma dan mengeluarkan nilai kembalian. |