Algoritma merupakan inti dari sebuah pemecahan masalah dalam ilmu komputer, mereka berperan penting dalam menjalankan fungsi dari perangkat lunak hingga kecerdasan buatan. Pemahaman mendalam mengenai algoritma sangat penting bagi para profesional teknologi dan pengembang perangkat lunak.
Apa itu Algoritma
Dalam ilmu komputer, Algoritma digunakan untuk memproses data, melakukan perhitungan, atau dapat pula mengontrol berbagai tugas. Kemudian, algoritma disusun sedemikian rupa untuk dapat diimplementasikan dalam bentuk kode pemrograman.
Penemu algoritma berasal dari matematikawan Persia, Al-Khwarizmi (780-850 M), namanya diambil sebagai dasar dari kata “algoritma” setelah bukunya yang berjudul “Al-Kirab al-Mukhtasar fi Hisab al-Jabr wal-Muqabala” memperkenalkan konsep dasar aljabar dan metode numerik untuk pemecahan masalah matematika.
Jenis-Jenis Algoritma
Beberapa jenis algoritma yang paling umum digunakan adalah sebagai berikut.
- Algoritma Recursive. Pada jenis ini dapat memecah masalah menjadi sub-masalah yang serupa dan berulang hingga solusi dapat ditemukan. Contohnya dapat dilihat pada perhitungan faktor dalam Matematika.
- Algoritma Brute Force. Dapat beroperasi dengan mencoba semua solusi yang mungkin untuk menemukan jawaban tepat. Hal ini dapat melakukan percobaan satu per satu hingga solusi yang diinginkan tercapai.
- Algoritma Randomized. Menggunakan angka acak untuk menentukan langkah berikutnya, bertujuan dapat mengurangi kompleksitas masalah. Contoh penerapannya adalah penentuan pivot secara acak,
- Algoritma Sorting. Memiliki fungsi untuk mengurutkan data berdasarkan kriteria tertentu, misalnya dari abjad atau nilai tertinggi hingga terendah. Contohnya bubble sort, merge sort, dan selection sort.
- Algoritma Searching. Dapat digunakan untuk mencari data dengan query tertentu, baik data yang sudah diurutkan maupun yang belum. Contohnya binary search dan linear search.
Fungsi Algoritma
Algoritma pemrograman memiliki peran dalam menyelesaikan masalah yang menjadi tujuan utama sebuah program. Selain itu, memiliki beberapa fungsi sebagai berikut.
- Mengotomatisasi penyelesaian masalah yang dihadapi program.
- Menyederhanakan logika dan alur kerja, sehingga dapat memudahkan programmer dalam penulisan kode.
- Mencegah pengulangan kode yang sama.
- Mempermudah proses debugging ketika terjadi bug atau error dalam program,
- Memudahkan programmer saat memperbarui atau dapat menambahkan fitur baru pada program.
Ciri-Ciri Algoritma
Algoritma pemrograman memiliki ciri tersendiri yang dapat membedakannya dengan teknik pemrograman lain dalam menyelesaikan suatu masalah, berikut diantaranya.
1. Finiteness (Keterbatasan)
Algoritma harus memiliki jumlah langkah yang terbatas, jika tidak terbatas maka akan terus berjalan tanpa menghasilkan solusi hingga dapat menyebabkan masalah seperti infinite loop dan dapat memastikan proses selesai dalam waktu yang wajar.
2. Input (Masukan)
Biasanya algoritma dapat menerima satu atau lebih masukan yang digunakan untuk dapat memproses data dan menyelesaikan masalah. Input ini dapat berupa data awal atau parameter yang bisa mempengaruhi cara algoritma bekerja. Sebagai contoh, dalam algoritma pengurutan, inputnya berupa daftar angka yang perlu diurutkan.
3. Output (Keluaran)
Setidaknya algoritma dapat menghasilkan setidaknya satu keluaran atau hasil, keluaran ini merupakan solusi yang diperoleh dari pemrosesan input berdasarkan langkah-langkah dari algoritma. Misalnya, dalam algoritma pengurutan, output yang dihasilkan daftar berupa angka yang telah diurutkan.
4. Definiteness (Kepastian)
Setiap langkah dalam algoritma harus jelas dan tidak menimbulkan keambiguan. Instruksi yang diberikan harus eksplisit agar komputer dapat memahaminya dengan tepat. Setiap operasi harus dijelaskan secara detail agar tidak kebingungan mengenai apa yang harus dilakukan di setiap langkah.
5. Effectiveness (Keefektivitasan)
Algoritma harus efektif yang dapat diselesaikan dalam waktu yang wajar, setiap langkah harus dapat dibuat sesederhana mungkin agar dapat diselesaikan dalam waktu yang relatif cepat dan masuk akal/ Algoritma dianggap efisien jika waktu eksekusinya lebih singkat dan penggunaan memori lebih minimal.
6. Structured (Terstruktur)
Struktur yang disusun haruslah jelas dan tersusun sistematis agar proses penyelesaiannya tidak berlarut-larut atau menjadi rumit. Dalam hal ini, dapat memungkinkan untuk membedakan setiap bagian dari algoritma dengan mudah, seperti input, proses, dan output. Hal ini dapat mempermudah kita dalam melakukan evaluasi terhadap setiap tahapan.
Baca juga: Mengenal Bukit Algoritma, Proyek Pemerintah untuk Membuat Silicon Valley
Cara Kerja Algoritma dalam Pemrograman
Dalam pemrograman, algoritma beroperasi berdasarkan tiga aspek, input, proses, dan output. Ketika pengguna memberikan data atau perintah, komputer akan melakukan analisis dan menjalankannya sesuai dengan alur algoritma untuk menghasilkan output yang diinginkan.
Contohnya, saat melakukan pencarian di Google, langkah-langkah dalam logika algoritma pemrograman ialah memasukan query pencarian → sistem memproses perintah Anda → sistem dapat menampilkan hasil pencarian yang sesuai dan relevan.
Namun, secara praktisnya, algoritma pemrograman dapat terdiri dari tiga jenis konstruksi.
- Algoritma Sekuensial. Proses yang dapat berjalan dari satu langkah ke langkah berikutnya untuk dapat mencapai hasil akhir. Contohnya merebus mie dari mentah hingga matang.
- Algoritma Percabangan. Algoritma yang dapat membuat keputusan berdasarkan kondisi tertentu dengan dua atau lebih cabang. Misalnya, jika nilai ujian di atas 80 hasilnya lulus.
- Algoritma Pengulangan. Serangkaian ini dapat terjadi secara berulang hingga mencapai jumlah tertentu. Contohnya adalah menampilkan bilangan kelipatan dua dari 0 hingga 50.
Baca juga: Apa Itu Algoritma Machine Learning dan Jenisnya?
Contoh Algoritma Pemrograman
Berikut adalah lima contoh algoritma dilengkapi dengan flowchart untuk dapat menghitung berbagai bidang.
1. Menghitung Keliling Lingkaran
r = jari-jari lingkaran dan phi
Rumus keliling lingkaran adalah K=2 x phi x r
Algoritmanya dapat meliputi penetapan nilai phi sebagai 3,14 dan penghitungan jari-jari. Hasil K akan dicetak sebagai output ke perangkat output.
2. Menghitung Luas Segitiga
Petujunjuknya melibatkan a sebagai alas dan t sebagai tinggi.
Luas segitiga dihitung dengan rumus L=½ xa x t
Algoritma ini meminta pengguna untuk memasukkan nilai alas dan tinggi segitiga dan nilai L akan dicetak sebagai keluaran ke perangkat output.
3. Mengirim Surat
Algoritma jenis ini berupa pengiriman surat, meliputi menulis surat, menyiapkan amplop, memasukkan surat ke dalam amplop, merekatkan amplop, mencari alamat tujuan, menuliskan alamat tersebut di amplop, menempelkan perangko, dan menyerahkan surat ke petugas di kantor pos.
4. Menghitung Luas Persegi Panjang
Input dapat terdiri dari p (panjang) dan l (lebar)
Luas persegi panjang dapat dihitung dengan rumus L= p x l
Algoritma ini dapat melibatkan penginputan nilai panjang dan lebar, dengan nilai L dicetak sebagai output ke perangkat output.
5. Menghitung Keliling Persegi Berdasarkan Luas
Diberikan L sebagai luas dan S sebagai sisi
Sisi dihitung dengan rumus S = ½ dan keliling persegi dihitung dengan K = 4 x S
Algoritma ini dapat mengharuskan pengguna untuk menginput luas persegi, menghitung sisi, dan menghitung keliling dengan nilai K dicetak sebagai output ke perangkat output.
Baca juga: 8 Contoh Algoritma dalam Kehidupan Sehari-hari
Algoritma penting dalam berbagai perhitungan, menawarkan metode sistematis untuk dapat menyelesaikan masalah. Contoh yang dibahas menunjukkan penggunaan algoritma yang menghitung keliling dan luas berbagai bentuk geometris, serta dalam proses pengiriman surat.
Setiap algoritma dapat mengikuti langkah-langkah terstruktur yang dapat mencakup penginputan data, pemrosesan, dan menghasilkan output. Adanya pendekatan perencana ini, algoritma dapat membantu menyederhanakan perhitungan dan meningkatkan efisiensi serta akurasi dalam aplikasi pemrograman.