Assalamualaikum Sahabat semua,
dikesempatan kali ini saya akan memposting tentang apa itu algoritma
pemrograman dan bagaimana karakteristiknya yang baik. Algoritma sangat penting
dalam pemrograman karena ianya mempengaruhi program yang dibuat, semakin
efesien algoritma yang kita buat maka semakin bagus program tersebut. Nah
langsung saja kita mengenal apa itu algoritma.
A. Pengertian
Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis. Dalam beberapa konteks, algoritma dapat diartikan sebagai spesifikasi urutan langkah untuk melakukan pekerjaan
tertentu. Kata algoritma diambil dari nama ilmuan muslim yang
terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi (780-846 M). Kata Al-Khuwarizmi oleh orang barat dibaca menjadi Algorism. Jadi itulah
asal mula kata algoritma.
B. Pertimbangan dalam pemilihan algoritma
1. Algoritma
haruslah benar.
Artinya algoritma akan memberikan keluaran yang dikehendaki
dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma,
kalau memberikan keluaran yang salah pastilah algoritma tersebut bukanlah
algoritma yang baik.
2. 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 memberikan hasil yang
sedekat mungkin dengan nilai yang sebenarnya.
3. Efisiensi
algoritma
Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi
waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma
tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang
cepat. Begitu juga dengan memori, semakin
besar memori yang terpakai maka semakin buruklah algoritma tersebut.
Dalam kenyataannya, setiap orang bisa membuat
algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi
perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang
sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat
C. Notasi
Penulisan Algoritma
Ada dua
cara penulisan algoritma, yaitu:
·
Dengan
menyatakan langkah-langkah algoritma dalam untaian kalimat deskriftif
(Pseudocode)
·
Dengan
mengunakan diagram alir (flowchart)
D. Perbedaan
Algoritma dan Program
Program adalah kumpulan pernyataan komputer, sedangkan
metode dan tahapan sistematis dalam
program adalah algoritma. Dan program
ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa
disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Dan
beberapa pakar memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
E. Keuntungan
Pembuatan Algoritma
Ada
beberapa keuntungan pembuatan algoritma, yaitu:
·
Pembuatan atau
penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa
pemrograman dan komputer yang melaksanakannya.
·
Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
·
Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.
F. Hal-hal yang perlu diperhatikan dalam membuat algoritma:
Untuk
membuat algoritma yang bagus dan efesien, ada beberapa hal yang perlu
dipertimbangkan, diantaranya:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti
dan dipahami.
2.
Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak
sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu,
maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan
oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode
dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat
bahwa orang yang menulis program sangat
terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus
ditranslasikan ke dalam notasi
bahasa pemrograman.
Berikut
adalah contoh algoritma dalam kehidupan sehari-hari
G. Untuk
menilai sesuatu algoritma dapat melalui beberapa hal, diantaranya:
•
Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
•
Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
•
Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja,
tapi juga untuk kasus lain yang lebih general.
•
Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan
lebih jauh berdasarkan perubahan requirement yang ada.
•
Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan
membuat susah di-maintenance
(kelola).
•
Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan
di berbagai platform komputer.
• Precise
(tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan
tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan
secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap
sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh: Tambahkan 1 atau 2 pada x. Instruksi tersebut terdapat keraguan.
•
Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan
tertentu meskipun datanya berbeda.
•
Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses
yang akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi
sempurna. Instruksi tersebut tidak
efektif, agar efektif instruksi tersebut diubah. Misal: Hitung akar 2 sampai lima digit di belakang koma.
•
Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya
adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
• Output
yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti
dengan seksama maka dihasilkan output yang diinginkan.
Dan Berikut
adalah contoh dari algoritma mencari dengan struktur bahasa indonesia dan
pseudocode
a. Algoritma dengan struktur bahasa Indonesia
- Baca
bilangan a, b, dan c
-
Jumlahkan ketiga bilangan tersebut
-
Bagi jumlah tersebut dengan 3
-
Tulis hasilnya
b. Algoritma dengan pseudocode
input
(a, b, c)
Jml
= a+b+c
Rerata
= Jml/3
Output
(Rerata)