Algoritma (Algorithm) | +800M

Dalam  bahasa pemrograman komputer seperti; Visual Basic, C, Pascal, Java dan lainnya; mengimplementasikan teori dan metodologi algoritma secara benar adalah sebuah keharusan, dimana tiap proses, dan rangkaian instruksinya harus dapat dideklarasikan secara logis dan sistematis. Ini bertujuan untuk mendapatkan detail tujuan yang jelas, menemukan akar permasalahan, memecahkan permasalahan, dan mencegah kekeliruan dalam membangun suatu program/aplikasi. Untuk mencapai tujuan itu,  biasanya setiap programmer akan memulainya dengan membuat desain flow chart (alur diagram) sebagai ilustrasi dan motif dari tujuan pembuatan suatu program/aplikasi.

Algoritma memiliki banyak istilah dan pelafalan seperti; Algoritme, Algoritmi, Algorism, dan Algorithm, yang semua maksudnya merujuk pada nama penemu teori dan metodologi Algoritma, Al-Khawarizmi. Nama lengkapnya Abu Ja'far Muhammad ibn Musa Al-Khawarizmi, penulis kitab al-jabr wal-muqabala "Aturan Pemugaran dan Pengurangan" (rules of restoration and reduction). Al-Khawarizmi adalah seorang cendikiawan yang berasal dari Persia, ahli dalam bidang matematika, aritmatika, astronomi, astrologi, dan geografi. Tidak ada biografi pasti mengenai Tanggal lahir dan kematiannya. Namun beberapa sumber memperkirakan Al-Khawarizmi lahir sekitar tahun 780M di Khwārizm dan wafat sekitar tahun 850M di Baghdad. Beberapa sumber ada yang menuliskan kelahiran nya sekitar tahun 770M, dan wafat sekitar tahun 840M. Terlepas dari perbedaan pendapat mengenai; asal, kepercayaan, dan tahun kelahirannya, Keilmuan dan karya Al-Khawarizmi telah diakui oleh berbagai kalangan sebagai tokoh penting yang memiliki peranan besar dan membawa perubahan signifikan  untuk ilmu pengetahuan dunia.

Dilansir dari kompasiana.com (oleh Septi Diah Prameswari yang dipublikasikan pada 23 Juli 2010)

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”.

Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.

Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma.

Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok.

Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses.

Jadi suatu pemroses harus : 
1. Mengerti setiap langkah dalam Algoritma 
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. 

Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer. 

Ciri penting algoritma 
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). 
• Algoritma memiliki nol atau lebih masukkan. 
• Algoritma memiliki nol atau lebih keluaran. 
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

Selanjutnya, dilansir dari lecturer.ukdw.ac.id makalah tentang algoritma:

Definisi Algoritma
  • Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
  • Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis,yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma danStruktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
  • Jika seorang ingin memasak atau membuat kue, baik itu melihat resep atau pun tidak, pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau kuenya jadi.
  • Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: 
  1. Menulis surat
  2. Surat dimasukkan ke dalam amplop tertutup
  3. Amplop ditempeli perangko secukupnya.
  4. Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang dengan baik maka dapat dipastikan proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.

Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program. Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman. Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.

Jenis Proses Algoritma
  1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
  2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
  3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
  4. Concurrent Process: beberapa instruksi dikerjakan secara bersama.