Algoritma
Kata Algoritma ditemukan oleh seorang ahli matematika dari Uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa Al-Kwarizmi (770-840). Didalam dunia literatur barat dia lebih dikenal dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut konsep algorithm yang ditemukannya.
Definisi Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.
Dalam beberapa konteks, Algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah :
- Pertama, Algoritma haruslah benar. Artinya algoritma akan memberika keluaran yang dikehendaki dari sejumlah masukkan yang diberikan. Tidak perduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tesebut bukanlah algoritma yang baik.
- Pertimbangan kedua yang harus diperhatikan adalah, kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberika hasil yang sedekat mungkin dengan nilai yang sebenarnya.
- Ketiga adalah efisisensi algoritma. Efisiensi algoritma dapat ditijau dari 2 hal, yaitu efisien waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluaranya, algoritma tersebut biasanya tidak akan dipakai. Setiap orang mengingikan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut.
Beda Algoritma dan Program
Program adalah kumpulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberikan formula bahwa : Program = Struktur Data + Algoritma
Bagaimanapun juga, struktur data dan algoritma berhubungan sangat erat dalam sebuah pemrograman. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurag baik, demikian juga sebalikya.
[Sumber : Ema Utami & Sukrisno dalam buku "10 Langkah Belajar Logika dan Algoritma, Mengguakan Bahasa C dan C++ di GNU/ Linux". hal 19, 2005 (Andi Offset, Yogyakarta).]