Berikut definisi dari Algoritma :
- Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
- Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
- Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.

CIRI ALGORITMA
Adapun ciri algoritma sebagai berikut:
- Ada Input
- Ada proses
- Ada Output
- Memiliki Instruksi-Instruksi yang jelas dan tidak Ambigu
- Harus mempunyai Stoping Role (titik berhenti)
FUNGSI ALGORITMA
Berikut ini terdapat beberapa fungsi algoritma, terdiri atas:
- Menggunakan fungsi algoritma bisa digunakan untuk memecahkan program yang rumit.
- Menggunakan fungsi algoritma bisa menjadikan program yang besar menjadi program yang lebih sederhana.
- Fungsi algoritma bisa digunakan secara berulang atau lebih dari satu kali penggunaan.
- Memudahkan dalam pembuatan program.
- Bisa mengatasi segala masalah dengan logika dan urut.
- Menggunakan fungsi algoritma bisa melakukan pendekatan top-down dan juga devide and conguer.
- Meminimalisir penulisan program yang berulang-ulang.
- Program yang ada menjadi lebih terstruktur dengan rapi sehingga dapat lebih mudah untuk dipahami ataupun dikembangkan.
- Ketika terjadi kesalahan bisa dicari dengan mudah karena dengan fungsi algoritma bisa mendapatkan alur yang jelas.
- Ketika ingin melakukan modifikasi pada program bisa dilakukan hanya pada satu modul saja tanpa harus merubah dan mengganggu modul yang lain.
- Dokumentasi yang lebih mudah.
Berikut ini terdapat beberapa jenis-jenis algoritma, terdiri atas:
1. Divide and ConquerParadigma 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 memecahkanpermasalahan-permasalahan kecil yang terbentuk.
2. 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.
3. 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.
4. Sistem Flowchart

Sistem flowchart merupakan diagram alir yang menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut. Sistem flow chart tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk.
5. Pseudo Code (Kode Semu)
Pseudo Code (kode semu) merupakan metode yang cukup efisien untuk menggambarkan suatu algoritma . Pseudo Code dituliskan dengan menggunakan bahasa yang mudah dipahami (boleh menggunakan bahasa Indonesia) agar alur logika yang digambarkan dapat dimengeti oleh orang awam sekalipun.
Flowchart Pseudo Code (kode semu) disusun dengan tujuan untuk menggambarkan tahap-tahap penyelesaian suatu masalah dengan kata-kata (teks). Metode ini mempunyai kelemahan, dimana penyusunan algoritma dengan kode semu sangat dipengaruhi oleh tata bahasa pembuatnya, sehingga kadang-kadang sulit dipahami oleh orang lain.
Oleh karena itu kemudian dikembangkan suatu metode lain yang dapat menggambarkan suatu algoritma program secara lebih mudah dan sederhana yaitu dengan menggunakan flowchart (diagram alir).
Adapun manfaat algoritma sendiri yaitu untuk membantu seseorang dalam menyelesaikan suatu masalah berdasarkan pada pola pikirnya masing-masing.
SIFAT ALGORITMA
Adapun sifat algoritma sebagai berikut:
- Tidak menggunakan syimbol atau syintaks dari suatu bahasa pemograman.
- Tidak tergantung pada suatu bahasa pemograman.
- Notasi-notasinya dapat digunakan untuk seluruh bahasa pemograman.
STRUKTUR DASAR ALGORITMA
Struktut algoritma adalah urutan bagaimana pemrosesan instruksi dalam algoritma dilakukan dan juga bagaimana struktur instruksi algoritma tersebut dibagun.
Struktur dasar algoritma dibagi menjadi 3 bagian sebagai berikut:
1. Runtunan (Sequence)
Sequence atau runtunan dalam struktur algoritma adalah bahwa instruksi-insturksi dalam algoritma diproses secara beruntun langkah demi langkah dari awal sampai akhir dimulai dari langkah pertama hingga langkah terakhir.
2. Pemilihan (Selection)
Pada umumnya instruksi algoritma setidaknya akan mengandung pemilihan, atau selection, instruksi ini akan muncul apabila ada kasus yang memiliki 2 atau lebih alternatif penyelesaian.
Misalkan dalam kehidupan sekali-kali, untuk kasus menyalakan komputer. Langkah-langkah cara menyalakan komputer sebenarnya sangat mudah, namun pada prosesnya bisa terjadi 2 atau lebih alternatif penyelesaian.
Contoh:
langkah 1: colokan kabel listrik,
langkah 2: tekan tombol power pada cashing.
langkah 3: jika setelah power ditekan komputer mati, maka periksa listrik atau periksa kabel dll, jika komputer menyala, lanjutkan ke langkah berikutnya.
….
….
Langkah 3 di atas merupakan salah satu bentuk pemilihan atau selection, bahwa pada saat proses menyalakan komputer bisa kemungkinan terjadi 2 kondisi, komputer tatap mati atau hidup, dimana kedua kondisi tersebut akan memiliki alternatif penyelesaian yang berbeda.
Di dalam struktur algoritma pemilihan atau selection tersebut akan kerap sekali ditemukan, sehingga struktur algoritma tidak lepas dari pemilihan/ selection. pemilihan atau selection dipelajari di bab algoritma Selection / Flow Control).
3. Pengulangan (Repitition)
Struktur dasar algoritma yang ketiga adalah pengulangan atau repitition, artinya kasus-kasus pemecahan masalah dalam algoritma maupun bahasa pemrograman pada kenyataannya tidak akan lepas dari kasus-kasus yang membutuhkan pengulangan.
Di algoritma sendiri untuk mengatasi kasus pengulangan data, memiliki intruksi tersendiri, dengan intruksi tersebut pengulangan akan lebih mudah ditulis secara singkat dan praktis daripada harus di tulis satu-persatu.
Contoh:
Da kasus di algoritma yang membuat sebuah data harus diulang beberapa kali, misal untuk kasus mencetak angka 1 sampai 5.
Penyelesaian pengulangan sebenarnya sangat mudah, bisa saja kita tulis satu persatu misal;
langkah 1: tulis angka 1
langkah 2: tulis angka 2
langkah 3: tulis angka 3
langkah 4: tulis angka 4
langkah 5: tulis angka 5.
Membuat intruksi pengulangan dengan menuliskannya satu persatu tentunya bukanlah cara praktis, jika hanya 5 baris mungkin saja bisa dibuat secara manual, ditulis satu-satu, namun bagaimana jika yang harus diulang sebanyak 1.000 (seribu baris misalnya), saya yakin anda akan kerepotan menuliskannya.
Oleh karena itu karena kerap sekali pengulangan ditemukan di kasus-kasus pemecahan masalah terkomputerisasi, maka di algoritma dikenal struktur pengulangan yang akan lebih memudahkan dan mempercepat penulisan proses pengulangan secara praktis dan cepat. (pengulangan ini biasanya dipelajari di materi algoritma Looping/ pengulangan).
CONTOH ALGORITMA
Berikut ini terdapat beberapa contoh algoritma, terdiri atas:
Menentukan Bilangan Ganjil atau Genap
Bilangan bulat yaitu 0, 1, -1, 2, dst, sedangkan bilangan asli 1, 2, 3, 4, 5, dst. Bilangan bulat dan bilangan asli sering dipakai dalam berhitung. Himpunan bilangan bulat dalam buku teks aljabar biasanya dinyatakan dengan lambang “Z” serta himpunan bilangan asli dinyatakan dengan lambang “N”. Algoritma yang digunakan untuk menentukan apakah bilangan tersebut ganjil atau genap disajikan dengan flowchart seperti dibawah ini :
Bilangan genap adalah bilangan bulat yang dapat habis jika dibagi 2 (dua). Bilangan ganjil adalah bilangan bulat yang tidak habis jika dibagi 2 (dua).
