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:



Atau Silahkan anda lihat Video berikut ini:



Sumber: https://youtu.be/K68X3RvME2k

Soal-soal Latihan:




Selamat belajar.