Lengkap Pengertian Algoritma Ciri-Ciri, Fungsi, Jenis-Jenis, dan Contoh Algoritma – Ketika membaca atau mendengar kata “algoritma”, sebagian besar dari kita akan beranggapan bahwa kata tersebut berhubungan dengan bahasa pemrograman, ilmu komputer, atau matematika. Ya itu benar, tetapi sebenarnya apa pengertian algoritma itu?
Artikel ini akan membahas secara lengkap topik seputar algoritma, di antaranya:
- Penjelasan apa itu algoritma, baik pengertiannya secara umum maupun menurut beberapa ahli.
- Ciri-ciri algoritma secara umum.
- Fungsi dan manfaat algoritma.
- Jenis-jenis algoritma.
- Contoh algoritma dalam kehidupan sehari-hari.
Yuk, simak artikel ini sampai akhir agar kamu lebih paham.
Daftar Isi :
Pengertian Algoritma Adalah
Apa yang dimaksud dengan algoritma (algorithm)? Secara umum, pengertian algoritma adalah suatu urutan dari beberapa langkah logis dan sistematis yang digunakan untuk menyelesaikan masalah tertentu.
Pendapat lain mengatakan definisi algoritma adalah proses atau serangkaian aturan yang harus diikuti dalam perhitungan atau operasi pemecahan masalah lainnya, terutama oleh komputer.
Dengan kata lain, semua susunan logis yang diurutkan berdasarkan sistematika tertentu dan digunakan untuk memecahkan suatu masalah dapat disebut dengan algoritma.
Biasanya algoritma digunakan untuk melakukan penghitungan, penalaran otomatis, serta mengolah data pada komputer dengan menggunakan software.
Dalam algoritma terdapat rangkaian terbatas dari beberapa intruksi untuk menghitung suatu fungsi yang jika dieksekusi dan diproses akan menghasilkan output, lalu berhenti pada kondisi akhir yang sudah ditentukan.
Berikut ini tiga bentuk dasar algoritma:
- Algoritma Sekuensial (Sequence Algorithm); yaitu sebuah perintah yang dapat tersusun dengan sistematis dan berurutan yang nantinya muncul beberapa instruksi.
- Algoritma Perulangan (Looping Algorithm); yaitu sebuah perintah yang dapat digunakan untuk mengulang beberapa banyak perintah dengan memperhitungkan syarat-syarat tertentu.
- Algoritma Percabangan atau Bersyarat (Conditional Algorithm); yaitu suatu perintah yang dapat digunakan untuk memilih salah satu dari beberapa pilihan yang ada.
Pengertian Algoritma Menurut Para Ahli
Agar lebih memahami apa itu algoritma, maka kita dapat merujuk pada pendapat para ahli berikut ini:
1. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi
Menurut Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi (ahli matematika dari Uzbekistan), pengertian algoritma adalah suatu metode khusus yang digunakan untuk menyelesaikan permasalahan.
2. Donald Ervin Knuth
Menurut Donald Ervin Knuth, definisi algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-operasi untuk menyelesaikan suatu masalah tertentu.
3. S. E. Goodman dan S.T. Hedetniemi
Menurut Goodman dan Hedetniemi, pengertian algoritma adalah urutan terbatas dari operasi-operasi yang terdefinisi dengan baik, dimana masing-masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu masalah.
4. Seymour Lipschutz dan Marc Lipson
Menurut Seymour Lipschutz dan Marc Lipson (praktisi matematika dan komputer), pengertian algoritma adalah suatu daftar langkah demi langkah yang terhingga dari intruksi-intruksi yang terdefinisikan dengan jelas yang digunakan untuk memecahkan permasalahan tertentu.
5. Marvin Minsky
Menurut Marvin Minsky (pakar Artificial Intelligence), pengertian algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak.
6. Andrey Andreyevich Markov
Menurut Andrey Andreyevich Markov (ahli matematika dari Rusia), pengertian algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan.
Ciri-Ciri Algoritma
Algoritma memiliki lima ciri utama yang saling berhubungan satu dengan lainnya. Menurut Donald E. Knuth, adapun ciri-ciri algoritma adalah sebagai berikut:
- Ada Input, yaitu permasalahan yang dihadapi dan akan dicarikan solusinya. Algoritma memiliki nilai nol atau lebih input (masukan).
- Ada Proses, yaitu langkah-langkah yang harus dilakukan untuk mencapai tujuan akhir.
- Ada Output, yaitu solusi atau tampilan akhir yang didapatkan dari suatu algoritma. Algoritma memiliki minimal satu output.
- Ada intruksi-intruksi yang jelas dan tidak ambigu, yaitu instrukti yang jelas dalam algoritma sehingga tidak terjadi kesalahan dalam menghasilkan output.
- Ada tujuan akhir yang dicapai, yaitu akhir dari program dimana program akan berhenti ketika tujuan akhir telah tercapai.
Fungsi dan Manfaat Algoritma
Pada dasarnya fungsi utama dari algoritma adalah untuk memecahkan suatu masalah. Lebih jelasnya, adapun beberapa fungsi dan manfaat algoritma adalah sebagai berikut:
- Untuk membantu menyederhanakan suatu program yang rumit dan besar.
- Untuk memudahkan dalam membuat sebuah program untuk masalah tertentu.
- Algoritma dapat digunakan berkali-kali untuk menyelesaikan suatu permasalahan.
- Membantu memecahkan suatu permasalahan dengan logika dan sistematis.
- Untuk meminimalisir penulisan program secara berulang-ulang.
- Agar dapat melakukan pendekatan top-down dan divide and conquer.
- Untuk memudahkan membuat program yang lebih rapih dan terstruktur sehingga lebih mudah dipahami dan dikembangkan.
- Memudahkan proses modifikasi pada program karena bisa dilakukan hanya pada satu modul tanpa harus mengubah modiul lainnya.
- Ketika terjadi kesalahan, algoritma dapat membantu menemukannya karena alur kerja yang jelas.
- Memudahkan proses dokumentasi.
Jenis-Jenis Algoritma
Sebenarnya ada berapa banyak jenis algoritma? Menurut Dr. Christoph Koutschan, seorang ahli matematika dan komputer asal Jerman, ada 32 algoritma penting dalam ilmu komputer.
Namun berdasarkan fungsinya, terdapat enam jenis algoritma dasar, yaitu:
1. Algoritma Rekursi
Algoritma rekursi (Recursive Algorithm) adalah algoritma yang memanggil dirinya sendiri secara berulang-ulang hingga masalah terpecahkan.
Sebagai contoh, berikut adalah kode yang menemukan faktorial dengan menggunakan Algoritma rekursi:
Fact(y) If y is 0 return 1 return (y*Fact(y-1)) /* this is where the recursion happens*/
2. Algoritma Divide and Conquer
Algoritma divide and conquer adalah algoritma yang membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Algoritma ini terdiri dari dua bagian, yaitu;
- Memecah masalah menjadi beberapa sub-masalah independen yang lebih kecil dari jenis yang sama.
- Menemukan solusi akhir dari masalah asli setelah menyelesaikan masalah yang lebih kecil ini secara terpisah.
Menggabungkan pengurutan dan pengurutan cepat dapat dilakukan dengan algoritma divide and conquer. Berikut adalah contoh kode semu dari algoritma ini:
MergeSorting(ar[], l, r) If r > l 1. Find the mid-point to divide the given array into two halves: middle m = (l+r)/2 2. Call mergeSorting for the first half: Call mergeSorting(ar, l, m) 3. Call mergeSorting for the second half: Call mergeSorting(ar, m+1, r) 4. Merge the halves sorted in step 2 and 3: Call merge(ar, l, m, r)
3. Algoritma Dynamic Programming
Algoritma ini bekerja dengan mengingat hasil dari proses yang lalu dan menggunakannya untuk menemukan hasil baru. Dengan kata lain, algoritma pemrograman dinamis memecahkan masalah kompleks dengan memecahnya menjadi beberapa sub masalah sederhana dan kemudian memecahkannya masing-masing satu kali dan kemudian menyimpannya untuk digunakan di masa mendatang.
Urutan Fibonacci adalah salah satu contoh algoritma Pemrograman Dinamis, berikut contohnya dalam kode semu:
Fibonacci(N) = 0 (for n=0) = 0 (for n=1) = Fibonacci(N-1)+Finacchi(N-2)
4. Algoritma Greedy
Algoritma ini digunakan untuk menyelesaikan masalah optimisasi. Dalam algoritma ini, kita akan menemukan solusi optimal secara lokal (tanpa memperhatikan konsekuensi apa pun di masa mendatang) dan berharap menemukan solusi optimal di tingkat global.
Metode ini tidak menjamin bahwa kita akan dapat menemukan solusi yang optimal.
Algoritma ini memiliki 5 komponen:
- Kumpulan kandidat yang kita coba cari solusinya.
- Fungsi pemilihan yang membantu memilih kandidat terbaik.
- Fungsi kelayakan yang membantu dalam menentukan apakah kandidat dapat digunakan untuk menemukan solusi.
- Fungsi obyektif yang memberikan nilai pada solusi yang mungkin atau solusi parsial.
- Fungsi solusi yang memberi tahu kapan kita telah menemukan solusi untuk masalah tersebut.
5. Algoritma Brute Force
Ini merupakan salah satu algortima yang memiliki konsep yang paling sederhana. Algoritma brute force akan mengiterasi semua solusi yang mungkin untuk mencari satu atau lebih dari satu solusi yang dapat menyelesaikan suatu masalah.
Berikut adalah contoh pencarian Sekuensial yang dilakukan dengan menggunakan brute force:
Algorithm S_Search (A[0..n], X) A[n] ← X i ← 0 While A [i] ≠ X do i ← i + 1 if i < n return i else return -1
6. Algoritma Backtracking
Algoritma Backtracking adalah teknik untuk memecahkan masalah secara rekursif dan mencoba untuk mendapatkan solusi untuk masalah dengan menyelesaikan satu bagian masalah pada saat yang bersamaan. Jika salah satu solusi gagal, kita menghapusnya dan mundur untuk menemukan solusi lain.
Dengan kata lain, algoritma backtracking memecahkan sub masalah dan jika gagal memecahkan masalah, algortima ini membatalkan langkah terakhir dan mulai lagi untuk menemukan solusi untuk masalah tersebut.
Contoh Algoritma
Pada dasarnya algoritma tidak hanya dalam ilmu komputer dan matematika saja, tetapi dapat juga diimplementasikan dalam berbagai kegiatan manusia sehari-hari.
Berikut ini adalah beberapa contoh algoritma:
1. Menentukan Bilangan Ganjil atau Genap
Contoh algoritma menentukan bilangan ganjil atau genap:
- Masukkan sebuah bilangan bulat.
- Bagi bilangan tersebut dengan angka 2.
- Jika bilangan tersebut habis dibagi dengan 2 maka bilangan tersebut genap.
- Jika bilangan tersebut tidak habis dibagi dengan 2 (terdapat sisa 1) maka bilangan tersebut ganjil.
Flowchart menentukan bilangan ganjil atau genap;
3. Membuat Kopi Instan
Contoh algortima membuat kopi instan
- Buka kemasan kopi sachet.
- Tuangkan kopi ke dalam gelas.
- Siapkan air panas.
- Tuangkan air panas ke dalam gelas berisi kopi.
- Aduk kopi hingga merata.
- Kopi instan siap untuk diminum.
Flowchart membuat kopi instan;
4. Mengirim SMS
Contoh algoritma mengirim SMS
- Buka menu SMS pada ponsel
- Pilih kontak/ nomor telepon
- Ketik pesan yang akan dikirim
- Tekan tombol kirim
- SMS akan terkirim
Flowchart mengirim SMS
2. Masak Mie Instan
Contoh algoritma memasak mie instan:
- Siapkan 1 bungkus mie instan, 400 ml air (2 gelas), panci, mangkuk, sendok dan garpu.
- Masukkan air ke dalam panci.
- Masak air di atas kompor dengan api sedang.
- Biarkan hingga air mendidih.
- Masukkan mie instan ke dalam air mendidih.
- Aduk perlahan hingga 3 menit.
- Jika mie sudah matang masukkan bumbu.
- Aduk mie hingga bumbu merata.
- Sajikan mie instan.
Kesimpulan
Mengacu pada penjelasan di atas maka dapat kita simpulkan bahwa algoritma adalah prosedur untuk menyelesaikan suatu masalah, baik itu dalam ilmu matematika, ilmu komputer, bahkan masalah kehidupan manusia sehari-hari.
Algoritma mencakup perhitungan, penalaran, dan pemrosesan data yang dapat disajikan dalam bahasa alami, kode, diagram alur (flowchart), dan lain-lain.
Dan dari contoh algoritma di atas kita dapat memahami bahwa suatu algoritma dapat diekspresikan dan dianalisis melalui diagram alur (flowchart).
Demikianlah penjelasan ringkas mengenai pengertian algoritma, ciri-ciri, fungsi, klasfifikasi, dan contoh algoritma. Semoga artikel ini bermanfaat dan menambah wawasan kamu.(maxmanroe.com)
Info ruanglab lainnya:
- Algoritma dan Flowchart Membuat Kopi
- Sejarah Singkat Penemu Algoritma
- Contoh Soal Algoritma Dan Flowchart Nya
- Apa Itu Notasi Algoritma