Sejarah istilah "algoritma"
Kata algoritma berasal dari latinisasi nama
seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad
ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari
abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata
algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk
menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya
dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah
ini berkembang menjadi algoritma, yang mencakup semua prosedur atau
urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu
permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang
harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada
saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer
komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah
proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas).
Gambar Muhammad bin Musa al-Khawārizmi
Jenis-jenis Algoritma
Terdapat beragam klasifikasi algoritma dan setiap
klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan
klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan
metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma
yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini.
Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
- Divide
and Conquer, paradigma untuk membagi suatu permasalahan
besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian
masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil
yang mudah untuk dipecahkan. Singkatnya menyelesaikan
keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan
kecil yang terbentuk.
Gambar Divide and Conquer (Masalah Besar dibagi-bagi sehingga menjadi kecil)
- Dynamic
programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada
suatu masalah yang mengandung sub-struktur yang optimal dan mengandung
beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas
terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba
untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi
secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
Gambaran dari Dynamic Programing
- Metode
serakah.
Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya
jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan
menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat
itu.
Sumber : wikipedia
Konsep Algoritma
Sebelum belajar analisis algoritma, akan lebih baik kita pahami
terlebih dahulu langkah-langkah pembuatan suatu program. Terdapat beberapa
langkah umum dalam pembuatan suatu program yaitu:
- Mendefinisikan
masalah
- Mencari Solusinya
- Menentukan algoritma
- Menulis Program
- Menguji Program
- Mendokumentasikan Program
- Merawat Program
Pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan
program. Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai
berikut:
Algoritma yaitu kumpulan langkah-langkah / steps untuk
menyelesaikan masalah menggunakan komputer (program komputer) dengan syarat
tertentu. Adapun syarat-syaratnya adalah sebagai berikut :
- Setiap
langkah harus DEFINITE (pasti, tertentu), dalam algoritma terdapat
instruksi-instruksi yang jelas dan tidak ambigu.
- Minimum
mempunyai 1 output (input boleh tidak ada)
- Harus ada
stoping criteria (bisa berhenti).
Algoritma juga mempunyai beberapa jenis yaitu :
- Sequence,
instruksi dikerjakan berurutan (sekuensial).
- Selection,
instruksi dikerjakan bila kreteria tertentu terpenuhi.
- Iteration,
instruksi dikerjakan selama memenuhi kondisi tertentu.
- Concurrent,
mengerjakan banyak instruksi secara bersama.
Anda juga dapat mempelajari Algoritma dan Pemrograman dari file PPT berikut ini:
- Mendefinisikan masalah
- Mencari Solusinya
- Menentukan algoritma
- Menulis Program
- Menguji Program
- Mendokumentasikan Program
- Merawat Program
- Setiap langkah harus DEFINITE (pasti, tertentu), dalam algoritma terdapat instruksi-instruksi yang jelas dan tidak ambigu.
- Minimum mempunyai 1 output (input boleh tidak ada)
- Harus ada stoping criteria (bisa berhenti).
- Sequence, instruksi dikerjakan berurutan (sekuensial).
- Selection, instruksi dikerjakan bila kreteria tertentu terpenuhi.
- Iteration, instruksi dikerjakan selama memenuhi kondisi tertentu.
- Concurrent, mengerjakan banyak instruksi secara bersama.
Anda juga dapat mempelajari Algoritma dan Pemrograman dari file PPT berikut ini:
Atau Silahkan anda lihat Video berikut ini:
Sumber: https://youtu.be/K68X3RvME2k
Soal-soal Latihan:
Sumber: https://youtu.be/K68X3RvME2k
Soal-soal Latihan:
Selamat belajar.
9 Komentar
Bisakah algoritma dipakai dalam kehidupan sehari-hari Pak,?
BalasHapusbisa,, sangat bisa Kak,,,
Hapuskarena pada hakikatnya algoritma adalah urutan langkah-langkah untuk menyelesaikan masalah
Kalau ada yang masih kurang jelas bisa ditanyakan melalui kolom komentar ini, atau silahkan kirim pesan melalui menu Hubungi Saya
BalasHapusTerima Kasih
HapusSudah pak,, sudah jelas saya. Makasih
BalasHapusBagaimana konsep dasar coding bisa diajarkan dari anak kecil, sharing tahapannya?
BalasHapusDi era digital ini Coding menjadi sebuah "Proyek" besar dimasa kini maupun masa depan, sehingga kita perlu mengenalkan coding sejak dini. menurut saya, pengenalan coding merupakan langkah kedua. langkah pertama yang dapat kita lakukan adalah pengenalan algoritma. algoritma dapat kita terapkan dalam kehidupan sehari-hari, sebagai contoh bagaimana langkah-langkah penyelesaian sebuah masalah sederhana, (yang saya contohkan anak kelas 3 SD), Yaitu bagaimana langkah-langkah persiapan menuju sekolah, mulai dari bangun, mandi, sarapan, berangkat sekolah, selama dia sekolah sampai pulang ke rumah lagi.
HapusSetelah anak terbiasa dan mengerti bahwa semua masalah harus ada langkah-langkah penyelesaian yang berurutan, baru kita mengenalkan pada koding sederhana.
Ijin bertanya pak.. apa mksd dr merawat program? Makasih
BalasHapusTerimakasih atas pertanyaannya bun,,,
HapusMerawat program yang dimaksud disini adalah upaya untuk mendeteksi permasalahan sistem (Bugs) sehingga dapat dilakukan perbaikan-perbaikan seperlunya agar program dapat terus digunakan.