Definisi Algoritma :
Kata algoritma berasal dari kata “algoritmi”, pertama kali dicetuskan oleh Al-Khawarizmi, yang merupakan ilmuwan asal Persia. Pada awalnya algortima sendiri pertama kali digunakan untuk menyelesaikan soal aritmatika, tetapi dari zaman ke zaman algoritma digunakan untuk memecahkan masalah.
Algoritma tentunya memiliki hubungan dengan ilmu matematika, tentunya banyak pendapat dari para ahli mengenai algoritma.
• Goodman Hedet Niemi mengatakan bahwa “algoritma adalah urut-urutan
dari operasi-operasi yang terdefinisi dengan baik, yang masing-masing
membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu
masalah”
• Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi mengungkapkan
“algoritma adalah suatu metode khusus untuk menyelesaikan suatu
persoalan”
• Menurut Seymur Lipschutz, P.hd “algoritma merupakan suatu langkah
demi langkah yang terhingga dari instruksi-intruksi yang terdefinisikan
dengan jelas yang dipakai untuk permasalahan tertentu.”
• Menurut Minsky, algoritma adalah seperangkat aturan yang
memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk
bertindak.
• Stone dan Knuth mengatakan bahwa algoritma adalah suatu perangkat
yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga
setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga
urutan berakhir dalam waktu yang terbatas.
Dari masing-masing pendapat yang dikemukan oleh para ahli, dapat kita
simpulkan secara umum bahwa algoritma adalah suatu metode sistematis
yang bersifat memiliki urutan-urutan yang digunakan untuk memecahkan
masalah-masalah dan pengambilan keputusan.
Dalam penggunaan algoritma diperlukan beberapa petimbangan. Pertama
adalah algoritma harus benar, yang berarti algoritma akan memberikan
output yang sama dengan jumlah instruksi yang dimasukkan. Jika algoritma
yang dimasukkan salah, maka salah juga outputnya.
Pertimbangan kedua adalah sejauh mana hasil keluaran dari algoritma yang
dibuat, khususnya algoritma yang diperuntukkan yang memiliki output
yang terdekat dengan hasil aslinya. Sebuah algoritma harus sebaik
mungkin memiliki hasil yang dekat dengan hasil sebenarnya.
Yang ketiga adalah efisiensi dari algoritma, efisiensi ini dapat dilihat
dari 2 konteks, yaitu kapasitas memori dan waktu. Walaupun sebuah
algoritma memiliki hasil yang tepat bahkan mendekati, tetapi memerlukan
waktu yang panjang untuk menunggu hasilnya, algoritma tersebut tidak
akan dipakai, karena rang akan menggunakan algoritma yang keluaran yang
cepat. Jika dikaitkan dengan kapasitas memori, jika memori yang dipakai
terlalu banyak, maka algoritma tersebut kurang baik.
Semua orang dapat menyelesaikan masalah menggunakan algoritma dengan
urutan-urutan yang berbeda-beda, yang terpenting adalah hasilnya sama.
Definisi Program :
Program jika didefinisikan secara umum dalam konteks teknologi informasi
adalah aplikasi yang digunakan untuk menjalankan tugas, seperti
aplikasi untuk mengerjakan dokumen, desain grafis, untuk perhitungan dan
lain-lain. Tetapi jika didefinisikan secara detail, program merupakan
sesuatu yang dibentuk dari pernyataan-pernyataan komputer, yang ditulis
dengan bahasa pemrograman.
Dari definisi-definisi diatas, kita dapat menemukan hubungan antara
algoritma dan program. Program dibuat dari bahasa pemrograman, sedangkan
metode dengan tahapan yang sistematis disebut dengan algoritma. Jadi
bisa dikatakan bahwa program adalah implementasi dari algoritma. Para
ilmuwan memiliki rumus tentang hubungan antara algoritma dan program,
yaitu :
STRUKTUR DATA + ALGORITMA = PROGRAM
Program tentunya memiliki keterkaitan dengan algoritma dan struktur
data. Jika suatu algoritma itu memiliki susunan yang baik tetapi tanpa
adanya struktur data yang baik, maka program yang dijalankan juga kurang
efisien, begitu juga sebaliknya.
Ada beberapa hal yang perlu diperhatikan dalam pembuatan algoritma :
1. Algoritma berisi urutan-urutan penyelesaian masalah, penulisan
algoritma dapat digunakan dalam notasi apapun dengan syarat dapat
dimengerti.
2. Tidak ada notasi tetap pada algoritma dalam bahasa pemrograman
apapun, notasi algoritma tidak memiliki pengaruh pada bahasa
pemrograman. Komputer yang menjalankan algoritma.
3. Algoritma adalah cara untuk mengkorversikan struktur penyelesaian masalah menjadi bahasa pemrograman.
4. Algoritma adalah hasil pemikiran yang bersifat konseptual, supaya
komputer dapat melaksanakannya, algoritma
harus diterjemahkan kedalam bahsa pemrograman.
5. Notasi algoritmik bukanlah notasi bahasa pemrograman, karena itu
pseudocode dalam notasi algoritmik tidak dapat dibaca leh
komputer.
6. Setiap orang dapat membuat notasi algoritmanya sendiri. Karena teks
algoritma tidak sama dengan teks program.
Algoritma tentunya berkaitan dengan ilmu komputer, tetapi tidak hanya
itu. Algoritma juga berkaitan dengan hal-hal yang ada di kehidupan kita
sehari-hari. Langkah-langkah dalam membuat kue juga diakatakan sebagai
algoritma, karena memiliki urutan atau tahapnya sendiri. Jika
langkah-langkah tersebut bahkan ada salah satu langkah yang tidak logis,
maka kue tersebut juga tidak akan sempurna.
Komputer adalah salah satu dari pemroses. Algoritma harus ditranslasikan
ke dalam bahasa pemrograman terlebih dahulu agar menjadi program agar
dapat dibaca oleh komputer. Dapat dikatakan bahwa program adalah
perwujudan atau implementasi teknis dari susunan algoritma yang dibaca
melalui bahasa pemrograman.
Program ditulis dengan bahasa pemrograman, proses penulisan ini
dinamakan pemrograman (programming), sedangkan pelaku dari pemrograman
ini disebut pemrogram (programmer). Urutan-urutan langakah dalam program
disebut instruksi atau pernyataan.
Secara umum, bagian-bagian pada komputer dibagi menjadi 4 bagian;
pemroses utama, piranti input, piranti output, dan memori. Pemroses
utama (Central Processing Unit) adalah komponen komputer yang
melaksanakan tugas untuk melakukan operasi-operasi dasar pada komputer
seperti, menghitung data, membaca, membandingkan, serta menulis data.
Memori adalah perangkat yang berfungsi menyimpan komponen-komponen dalam
komputer, di memori inilah program dapat disimpan serta data ataupun
informasi. Alat output dan input adalah piranti yang digunakan untuk
menghubungkan atau mengkomunikasikan data yang dihasilkan dan
dimasukkannya. Contoh alat input seperti keyboard, mouse, trackpad,
scanner, dan cakram (disk). Sedangkan contoh alat output seperti
monitor, speaker, pencetak (printer).
Komponen-kompnen utama dalam komputer ini memiliki kesinambungan yang
erat, jika tidak maka operasi yang ada pada komputer tidak mungkin
berjalan dengan semestinya. Hubungan dari ke empat komponen ini dapat
diskemakan sebagai berikut :
Mekanisme kerja keempat komponen diatas dapat dijelaskan sebagai
berikut. Pertama, program disimpan dalam memori. Kemudian ketika program
akan dijalankan (execute), memori akan mengirim instruksi-intruksi
program ke dalam CPU. Ketika dalam pengoperasian sebuah program
memerlukan data, maka data akan dimasukkan melalui alat input. Jika
operasi mengeluarkan hasil, maka hasil akan disimpan di dalam memori dan
dilihat melalui alat output.