AhmadDahlan.NET – Pengertian algoritma pemrograman adalah metode yang berisi langkah-langkah sistematis dan tersusun secara berurutan untuk menyelesaikan sesuai masalah. Dalam dunia digital dan pemograman, Algoritma biasanya berisi instruksi (perintah) untuk menjalankan serentetan kode yang disebut sebagai program.
Daftar Isi
A. Algoritma dan Pemrograman
Komputer adalah perangkat pengelola data digital yang digunakan secara luas saat ini. Mulai dari Calculator, Smart TV, Smartphone sampai pada Computer itu sendiri, semuanya membantu kerja manusia dengan metode perhitungan super cepat (Compute).
Meskipun sedemikian cerdasnya, namun Computer tidaklah mampu berfikir bahkan AI sekalipun. Manusia harus mengajari mereka terlebih dahulu untuk melakukan sebuah aktifitas baru sampai akhirnya membantu manusia melakasanakan kegiatan tersebut lebih cepat dari kemampuan manusia menghitung.
Kata Ajar ini dalam hal ini adalah memberikan informasi berupa langkah-langkah yang harus dilakukan oleh komputer ketiak dihadapkan oleh sebuah masalah. Langkah-langkah inilah yang disebut sebagai Algoritma. Algoritma digunakan untuk menyusun code dan strukturnya sehingga berisi instruksi yang jelas dan akan dijalankan oleh komputer.
Algortima sendiri sudah diperkenalkan oleh Abu Ja’far Muhammad Ibn Musa Al Khwarizmi sekitar tahun 825 M melalui metode Aljabar hanya saja belum sampai ke ranah digitial. Namun gagasan Aljabar yang disampaikan Al Khawarizmi menjadi dasar dalam semua komputasi yang dilakukan saat ini.
Contoh Algoritma Sederhana.
“Saya akan pergi ke pasar besok jika Tidak Hujan dan Ada kendaraan di rumah”.
Maka urutan langkah yang akan dilakukan secara naluriah adalah melihat kondisi cuaca esok. Jika esok hujan atau tidak ada kendaraan maka saya tidak akan ke pasar.
Saya akan hanya kepasar kalau ke dua syarat Tidak Hujan dan ada kendaraan terepenuhi.
B. Karakteristik Algoritma Pemrograman
Hampir semua buku panduan dan petunjuk memiliki karakter yang sama dengan karakteristik Algoritm dan Pemrograman. Kedua hal tersebut memiliki karakteristik :
- Presisi – Dalam hal ini instruksi dan solusi yang diberikan jelas dan tidak bermakna ambigu. Setiap langkah harus jelas dan semua aspek dan hanya bermakna satu. Jika tidak maka sistem algoritme akan selalu mengeksekusi isntruksi pertama kecuali disela dengan tanda khusus misalnya Parentheses.
- Input didefenisikan dengan baik – Jika suatu algoritma meminta input maka yang harus dilakukan menyediakan kolom input bagi developer dan memberikan input untuk user.
- Output didefenisikan dengan baik – Algoritma harus mendefenisikan output yang jelas berdasarkan input yang dimasukkan.
- Terbatas – Algoritma harus terbatas dan memiliki bagian akhir. Tanpa bagian akhir, algoritma tidak akan tereksekusi.
- Feasible – Layak, disampaikan sederhana, singkat sesuai dengan masalah yang ingin diselesaikan.
- Language Independent – Tidak ada satupun pemrograman yang tidak menggunakan bahasa tertentu misalnya C, Pascal, Phyton, PHP dan sejenisnya, namun Algoritma tidak terikat pada bahas atertentu. Semua jalur pikir Algoritme berlaku untuk semua bahasa hanya saja berbeda di sintak. Sintakslah yah terikat dengan bahasa.
C. Tipe Algoritma
Ada beberapa jenis algoritma yang tersedia. Beberapa algoritma penting adalah
- Algoritma Brute Force: Ini adalah pendekatan paling sederhana untuk suatu masalah. Algoritma brute force adalah pendekatan pertama yang datang untuk menemukan ketika kita melihat masalah.
- Algoritma Rekursif: Algoritma rekursif didasarkan pada rekursi. Dalam hal ini, masalah dipecah menjadi beberapa sub-bagian dan disebut fungsi yang sama lagi dan lagi.
- Algoritma Backtracking: Algoritma backtracking pada dasarnya membangun solusi dengan mencari di antara semua solusi yang mungkin. Dengan menggunakan algoritma ini, kami terus membangun solusi dengan kriteria berikut. Setiap kali solusi gagal, kami menelusuri kembali ke titik kegagalan dan membangun solusi berikutnya dan melanjutkan proses ini sampai kami menemukan solusi atau semua solusi yang mungkin diperhatikan.
- Algoritma Pencarian: Algoritma pencarian adalah algoritma yang digunakan untuk mencari elemen atau kelompok elemen dari struktur data tertentu. Mereka dapat dari jenis yang berbeda berdasarkan pendekatan mereka atau struktur data di mana elemen harus ditemukan.
- Algoritma Sorting: Sorting adalah mengatur sekelompok data dengan cara tertentu sesuai dengan kebutuhan. Algoritma yang membantu dalam melakukan fungsi ini disebut algoritma pengurutan. Umumnya algoritma pengurutan digunakan untuk mengurutkan kelompok data secara meningkat atau menurun.
- Algoritma Hashing: Algoritma hashing bekerja mirip dengan algoritma pencarian. Tetapi mereka berisi indeks dengan ID kunci. Dalam hashing, kunci diberikan ke data tertentu.
- Algoritma Divide and Conquer: Algoritma ini memecah masalah menjadi sub-masalah, memecahkan satu sub-masalah dan menggabungkan solusi bersama untuk mendapatkan solusi akhir. Ini terdiri dari tiga langkah berikut:
- Membagi
- Menyelesaikan
- Menggabungkan
- Algoritma Greedy: Dalam algoritma jenis ini solusi dibangun bagian demi bagian. Solusi dari bagian selanjutnya dibangun berdasarkan manfaat langsung dari bagian selanjutnya. Satu solusi yang memberikan manfaat paling banyak akan dipilih sebagai solusi untuk bagian selanjutnya.
- Algoritma Pemrograman Dinamis: Algoritma ini menggunakan konsep menggunakan solusi yang sudah ditemukan untuk menghindari perhitungan berulang dari bagian masalah yang sama. Ini membagi masalah menjadi submasalah kecil yang tumpang tindih dan menyelesaikannya.
- Algoritma Acak: Dalam algoritma acak kami menggunakan angka acak sehingga memberikan manfaat langsung. Nomor acak membantu dalam memutuskan hasil yang diharapkan.