linimassa.id – Selama ini kita selalu mendengar algoritma pada media sosial seperti Instagram, TikTok, hingga Twitter? Kata ini sering diucapkan oleh sejumlah orang ketika tengah membuka media sosial.
Dalam Kamus Besar Bahasa Indonesia (KBBI) daring, algoritma adalah prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas. Selain itu, juga bisa diartikan sebagai urutan logis dalam pengambilan keputusan untuk memecahkan masalah.
Laman Detik menulis, ini adalah kata serapan dari bahasa Inggris, yaitu algorithm. Sebenarnya, kata algorithm tidak murni diserap dari bahasa Inggris, melainkan dari bahasa Arab yang artinya “proses menghitung dengan angka Arab”.
Ini ditemukan oleh seorang matematikawan bernama Muhammad Ibn Musa Al-Khwarizmi. Dalam dunia literatur Barat, Al-Khawarizmi lebih dikenal dengan julukan Algorizm. Dari panggilan tersebut akhirnya dipakai untuk menyebut konsep algoritma yang ia temukan.
Seiring berjalannya waktu, kata ini semakin populer dan mulai banyak digunakan dalam bidang komputer atau yang lebih dikenal dengan sebutan algoritma pemrograman. Sebagai informasi, algoritma pemrograman adalah langkah penyelesaian suatu masalah yang menghasilkan sebuah solusi dalam bentuk program komputer.
Dalam buku Pengantar Algoritma dengan Bahasa, ini punya peran penting dalam ilmu komputer. Bisa dibilang, ini merupakan “jantung komputer” karena hardware dan software pada komputer dapat dikendalikan melalui sintaks dan kode pemrograman.
Namun tak hanya dipakai untuk memecahkan masalah pada bahasa pemrograman, ini juga dapat diterapkan dalam menyelesaikan permasalahan sehari-hari yang membutuhkan berbagai proses dan langkah-langkah.
Ciri
Mengutip buku 10 Langkah Belajar Logika dan Algoritma Menggunakan Bahasa C dan C ++ oleh Ema Utami, dkk, bila diterjemahkan ke dalam bahasa Indonesia, ini diartikan sebagai logika, metode, dan tahapan sistematis yang dipakai untuk memecahkan suatu permasalahan.
Sejumlah ciri-ciri algoritma yang baik sehingga lebih mudah ketika diproses, yakni sebagai berikut:
Precise
Ciri-ciri yang pertama adalah precise, maksudnya adalah harus tepat, benar, dan teliti. Jadi, setiap instruksi dalam algoritma wajib ditulis secara benar dan teliti tanpa adanya keraguan.
Jika algoritma diterapkan secara presisi, maka setiap instruksi dapat dinyatakan secara eksplisit tanpa menghilangkan bagian apapun, karena dianggap sudah mengerti.
Instruksi
Setiap langkah dalam menyusun algoritma harus tertata dengan baik, artinya disusun dari awal hingga akhir, meskipun saat diproses akan ada sejumlah data yang berbeda.
Efektif
Seluruh instruksi yang ingin dikerjakan harus disampaikan secara jelas dan efektif. Dengan begitu, tidak ada lagi kesalahan ataupun kebingungan saat sedang memproses data.
Terminate
Dalam menyusun algoritma pemrograman, tentu harus terminate (berakhir) sehingga tidak berjalan terus.
Tepat
Setiap output yang dihasilkan dalam algoritma harus tepat dan sesuai yang dikehendaki. Hal ini dapat terjadi jika setiap langkah dalam algoritma terbilang logis dan bisa diikuti dengan seksama.
Jenis
Dalam buku Struktur Data dan Algoritma dengan C ++ oleh Anita Sindar, ada berbagai jenis dalam proses algoritma, yakni sebagai berikut:
Sequence Process
Sequence process adalah instruksi yang dikerjakan secara sekuensial atau berurutan.
Selection Process
Dalam hal ini, instruksi akan dikerjakan apabila telah memenuhi berbagai kriteria tertentu.
Iteration Process
Jenis algoritma ini mengharuskan instruksi dikerjakan selama memenuhi situasi dan kondisi tertentu.
Concurrent Process
Concurrent process adalah sejumlah instruksi yang dikerjakan secara bersamaan.
Syarat
Menurut Donald E. Knuth yang dikutip dari E-jurnal milik binus.ac.id, sebuah algoritma harus memenuhi sejumlah syarat, yakni sebagai berikut:
Finiteness
Syarat yang pertama harus memenuhi finiteness, yakni algoritma harus berakhir (terminate) setelah melakukan sejumlah langkah proses.
Definiteness
Dalam hal ini, setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda (ambiguous).
Input
Setiap algoritma memerlukan data sebagai masukkan untuk diolah.
Output
Setiap algoritma memberikan satu atau lebih hasil setelah diproses.
Effectiveness
Syarat yang terakhir adalah memenuhi effectiveness, artinya langkah-langkah algoritma dikerjakan dalam batas waktu yang wajar.
Rumit
Dalam matematika dan ilmu komputer, algoritma adalah rangkaian terbatas dari instruksi-instruksi yang rumit, yang biasanya digunakan untuk menyelesaikan atau menjalankan suatu kelompok masalah komputasi tertentu.
Algoritma digunakan sebagai spesifikasi untuk melakukan perhitungan dan pemrosesan data. Algoritma yang lebih mutakhir dapat melakukan deduksi otomatis (disebut sebagai penalaran otomatis) dan menggunakan tes matematis dan logis untuk mengarahkan eksekusi kode melalui berbagai rute (disebut sebagai pengambilan keputusan otomatis).
Penggunaan karakteristik manusia sebagai deskriptor mesin secara metaforis telah dipraktekkan oleh Alan Turing dengan terminologi seperti “memory”, “search” dan “stimulus”
Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas, dan dalam bahasa formal yang terdefinisi dengan baik untuk menghitung suatu fungsi.
Asal Mula
Konsep algoritma telah ada sejak zaman prasejarah. Algoritma aritmatika, seperti algoritma divisi, digunakan oleh matematikawan Babilonia kuno sekitar tahun 2500 SM dan matematikawan Mesir sekitar tahun 1550 SM.
Matematikawan Yunani kemudian juga menggunakan algoritma pada 240 SM sebagaimana yang terdapat pada Tapis Eratosthenes untuk menemukan bilangan prima, dan Algoritma Euklides untuk menemukan pembagi persekutuan terbesar dari dua bilangan.
Matematikawan Arab seperti al-Kindi pada abad ke-9 menggunakan algoritma kriptografi untuk pemecahan kode, berdasarkan analisis frekuensi.
Kata ini berasal dari nama matematikawan Persia abad ke-9, Muḥammad bin Mūsā al-Khwārizmī, yang nisbah-nya yang mengidentifikasikannya sebagai seseorang yang berasal dari Khwarezmia dilatinkan sebagai Algoritmi atau bahasa Persia yang diarabkan: الخوارزمی sekitar: 780-850).
Namanya bermakna ‘yang berasal dari (daerah) Khwarezmia’, sebuah daerah yang dulunya merupakan bagian dari Iran Raya dan sekarang sebagai bagian dari Uzbekistan.
Sekitar tahun 825, Al-Khwarizmi menulis sebuah risalah berbahasa Arab tentang sistem angka Hindu-Arab, yang diterjemahkan ke dalam bahasa Latin selama abad ke-12.
Naskah ini dimulai dengan frasa Dixit Algorizmi (‘Maka berkatalah Al-Khwarizmi’), di mana “Algorizmi” di sini adalah Latinisasi penerjemah akan nama Al-Khwarizmi.[
Bukunya yang bernama Aljabar menjadi salah satu buku matematikawan yang paling banyak dibaca di Eropa pada abad pertengahan.
Dalam bahasa Latin abad pertengahan, kata algorismus, yang merupakan pengadaptasian dari namanya, menjadi kata yang bermakna “sistem bilangan desimal”.
Pada abad ke-15, di bawah pengaruh kata Yunani ἀριθμός (arithmos), ‘angka’ (lih. ‘aritmatika’), kata Latin-nya diubah menjadi algorithmus.
Dalam bahasa Inggris, kata algorithm pertama kali digunakan pada sekitar tahun 1230 dan kemudian oleh Chaucer pada 1391. Bahasa Inggris mengadopsi istilah tersebut dari bahasa Prancis, akan tetapi baru pada abad ke-19 lah kata “algorithm” mulai memiliki makna seperti sekarang yang ada dalam bahasa Inggris modern.
Matematika India pada awalnya sebagian besar berbentuk algoritmik. Algoritma yang mewakili tradisi matematika India berkisar dari Śhulba Sūtrā dari beberapa abad sebelum masehi hingga teks-teks abad pertengahan dari Sekolah Kerala akan Astronomi dan Matematika.
Pemakaian awal lainnya dari kata ini berasal dari tahun 1240, dalam sebuah manual berjudul Carmen de Algorismo yang disusun oleh Alexandre de Villedieu. Yang kalimatnya diawali dengan:
Angka
Algorisme adalah ilmu yang saat ini kita gunakan untuk menghitung dengan angka-angka India, yang jumlahnya ada dua kali lima (sepuluh).
Puisi ini panjangnya beberapa ratus baris dan merangkum ilmu menghitung dengan angka-angka yang diadopsi dari India.
Algoritme sangat penting bagi cara komputer mengolah data. Banyak program komputer mengandung algoritme memberikan rincian pada instruksi khusus yang komputer harus lakukan (dengan urutan tertentu) untuk menjalankan pekerjaan tertentu, seperti menghitung gaji karyawan atau mencetak kartu rapor siswa.
Maka, sebuah algoritme bisa dianggap sebagai urutan operasi yang bisa disimulasikan oleh sebuah sistem Turing-lengkap. Penulis yang mendukung tesis ini termasuk Minsky (1967), Savage (1987), dan Gurevich (2000):
Untuk beberapa proses komputasi, algoritme harus ditentukan secara teliti: dijabarkan dengan cara ia bakal berlaku untuk semua kemungkinan yang dapat timbul. Yaitu, setiap langkah tambahan harus secara sistematis dihadapi, kasus-per-kasus; Kriteria bagi setiap kasus harus jelas (dan bisa dihitung).
Karena sebuah algoritme adalah kumpulan dari langkah-langkah yang tepat, urutan dari komputasi selalu penting bagi berfungsinya algoritme. Instruksi biasanya diasumsikan terdaftar secara eksplisit, dan dijelaskan dimulai “dari atas” dan terus “ke bawah”, sebuah gambaran yang dijelaskan secara formal oleh alur control. (Hilal)