Sejarah Algoritma dan Serba-Serbinya

Posted: 17 Oktober 2022 in Komputer
Tag:, ,

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 algoritma 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 (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.

Ilustrasi Muḥammad bin Mūsā al-Khwārizmī

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:

Haec algorismus ars praesens dicitur, in qua / Talibus Indorum fruimur bis quinque figuris.

yang bermakna:
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.
Formalisasi parsial dari konsep algoritma modern dimulai dengan upaya untuk memecahkan Entscheidungsproblem (masalah pengambilan keputusan) yang diajukan oleh David Hilbert pada tahun 1928. Formalisasi selanjutnya dibingkai sebagai upaya untuk mendefinisikan “kalkulabilitas efektif” atau “metode efektif”. Formalisasi tersebut termasuk fungsi rekursif Gödel-Herbrand-Kleene pada tahun 1930, 1934 dan 1935, kalkulus lambda Alonzo Church pada tahun 1936, Formulasi 1 Emil Post pada tahun 1936, dan mesin Turing-nya Alan Turing pada tahun 1936-37 dan 1939. (sumber)

Tahun 1950, algoritma mulai akrab disebut bersamaan dengan komputer dan AI. 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. (sumber)

Tahun 1956, mesin AI pertama kali diciptakan untuk menjawab problem geometrik berbekal bahasa pemrograman dan informasi tertentu. Di tahun ini, peneliti mulai serius melihat potensi komputer yang diprogram dengan bahasa tertentu untuk menyelesaikan masalah sehari-hari.

Tahun 1958, LISP atau bahasa pemrograman untuk AI mulai diperkenalkan.

Tahun 1963, program bernama “ANALOGY” diperkenalkan. Program ini mampu mengerjakan tes masuk universitas (SAT versi Amerika Serikat) hanya dengan aturan semantik untuk interpretasinya.

Tahun 1961, “UNIMATE” robot industrial pertama mulai digunakan oleh General Motors.

Tahun 1966, AI pertama kali diajari untuk menerjemahkan informasi visual, tapi gagal. Ada juga “ELIZA”, mesin percakapan pertama yang dibuat berbekal pola tingkah laku manusia.

Tahun 1967, muncul bahasa pemrograman “LOGO” untuk memprogram robot.

Tahun 1979, muncul sistem untuk mendiagnosa penyakit berbahaya hanya lewat darah. Namun, praktik ini dihentikan karena alasan etis.

Tahun 1982, muncul mesin “speech recognition” pertama yang mampu mengubah suara menjadi informasi.

Tahun 1997, mesin “Deep Blue” mampu mengalahkan pemain catur dunia dalam pertandingan catur.

Tahun 2005, Amerika Serikat menggunakan robot otomatis untuk melontarkan bom di Iraq dan Afghanistan.

Tahun 2008, Google memperkenalkan teknologi “voice recognition”.
(sumber)

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”.

Sebaliknya, heuristika adalah pendekatan untuk pemecahan masalah komputasi yang mungkin tidak sepenuhnya terspesifikasi atau tidak menjamin hasil yang benar atau optimal, terutama dalam ranah masalah komputasi yang mana tidak ada hasil yang benar atau optimal yang terdefinisi dengan baik.

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. Dimulai dari tataran awal dan input awal (bisa jadi kosong), instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik, yang pada akhirnya menghasilkan “output” dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu bersifat menentukan; beberapa algoritme, yang dikenal sebagai algoritme acak, menggabungkan input acak.

Definisi informal
Definisi informal algoritma bisa berarti “sekumpulan aturan yang secara tepat menentukan seurutan operasi”. yang mengikutkan semua program komputer, termasuk program yang tidak melakukan perhitungan numerik. Secara umum, sebuah program hanyalah sebuah algoritme jika ia akan berhenti nantinya. (sumber)

Fungsi Algoritma
Intinya, algoritma itu berfungsi untuk memudahkan kita melakukan sesuatu dan memecahkan masalah sehari-hari. Kalau ingin lebih jelas, berikut ini penjelasan fungsi algoritma yang sudah diterapkan sehari-hari.
o Algoritma dapat memperkecil kesalahan atau error dalam pemrograman. Sebab, algoritma dapat menjalankan segala sesuatu secara otomatis sesuai rumus atau instruksi yang sudah ditentukan.
o Algoritma juga membantu developer mencari kesalahan atau error dari program yang sudah dibuat sebelumnya.
o Algoritma membuat penulisan kode dalam sebuah program menjadi lebih efisien. Developer tidak perlu mengulang-ulang penulisan kode untuk program yang ingin dibuat.
o Algoritma membantu sebuah program atau aplikasi menjadi lebih ringkas dan berukuran kecil. Sebab, aplikasi berjalan lewat proses otomatis algoritma. Bukan dari kode yang ditulis secara manual.
o Algoritma membantu pembuatan program yang lebih terstruktur dan logis. Percayalah ini akan memudahkan developer ketika perlu mengembangkan fitur tambahan.

Karakteristik Algoritma
Kenapa algoritma bisa membuat dan menjalankan sesuatu yang sangat kompleks? Jawabannya, karena algoritma itu tidak ditulis dengan sembarangan.

Ada beberapa karakteristik algoritma yang membuatnya bisa menjalankan program dengan baik:
o Jelas, tidak ambigu. Setiap instruksi yang ditulis langsung bisa dipahami dan tidak membuat orang salah mengartikannya.
o Punya input yang jelas. Jika memerlukan input atau data, ia harus sudah ditentukan secara jelas.
o Punya output yang jelas. Hasil dari algoritma juga perlu ditentukan dengan jelas.
o Finite atau terbatas. Algoritma memiliki langkah-langkah yang terbatas. Ini untuk memastikan algoritma secepat mungkin menghasilkan output yang diinginkan.
o Feasible atau mungkin dieksekusi. Algoritma tidak boleh mengandung komponen yang tidak universal atau bagian dari teknologi masa depan. Tujuannya, agar algoritma bisa menjalankan tugasnya dengan mudah tanpa hambatan.
o Tidak bergantung pada bahasa pemrograman tertentu. Algoritma harus ditulis dengan instruksi sederhana, hingga bisa ditulis ulang dengan bahasa pemrograman apapun. (sumber)

Contoh Algoritma Flowchart Aplikasi
Seperti yang disebutkan sebelumnya, algoritma dapat digunakan di banyak area, dan sering ditampilkan dalam bentuk diagram alur untuk pemahaman visual. Dengan kata lain, diagram alir adalah diagram yang merepresentasikan algoritme, yang menunjukkan langkah-langkah dalam berbagai kotak dan menampilkan proses dengan menghubungkan kotak-kotak tersebut. Berikut beberapa contoh penerapan algoritma dalam bentuk diagram alir.

Contoh Flowchart Aplikasi

Di atas adalah contoh Algoritma untuk mencari bilangan yang dibagi 2 hasilnya 0, untuk penulisan algoritma saya sarankan menggunakan Bahasa Inggris. Anda bisa menggunakan aplikasi Word, Google Docs, Lucid Chart untuk membuat Flow Algoritma.

Seberapa Penting Algoritma Untuk Dipelajari
Jika kamu ingin menjadi seorang programmer, arsitektur software, software developer atau bidang IT lainnya, kamu harus memahami Algoritma, kenapa? Pada dasarnya algoritma adalah cara untuk menyelesaikan masalah dan menghasilkan sebuah output, mungkin di pekerjaan bidang IT Anda boleh tidak menggunakan flowchart jika Anda sudah memahaminya di luar kepala, namu akan lebih baik jika kamu mendokumentasikan flowchart dan flow lainnya. Contoh Real Case yaitu ketika Anda diberi task untuk membuat login maka Anda harus paham flow bagaimana login bekerja dan setelah itu Anda mengimplementasikannya dalam bentuk kode. (sumber)

Referensi:

  1. https://id.wikipedia.org/wiki/Algoritma
  2. https://bitlabs.id/blog/algoritma-adalah/
  3. https://www.stebisigm.ac.id/berita223-Pengertian-dan-Sejarah-Algoritma.html#:~:text=Awalnya%2C%20algoritma%20merupakan%20istilah%20yang,(Euclid%60s%20algorithm).
  4. https://www.konsepkoding.com/2020/08/apa-itu-algoritma-pengertian-sejarah.html

Tinggalkan komentar