Algoritma: Pengertian, Ciri-ciri, Fungsi, dan berbagai jenisnya

Pelayananpublik.id
 

Pengertian Algoritma

Pengertian umum algoritma adalah suatu urutan dalam beberapa tahapan yang logis dan juga sistematis agar bisa menyelesaikan suatu masalah tertentu.

Beberapa ahli ada yang berpendapat bahwa algoritma adalah serangkaian tahapan yang harus diikuti dalam suatu operasi atau perhitungan pada berbagai pemecahan masalah lain, khususnya komputer.

Itu artinya, seluruh susunan logis yang diurutkan dengan berdasarkan sistematika khusus dan digunakan dalam memecahkan suatu masalah tertentu bisa kita katakan sebagai algoritma.

Umumnya, algoritma akan digunakan agar bisa melakukan penghitungan, melakukan penalaran secara otomatis, serta mengolah data di dalam komputer dengan menggunakan software tertentu.

Di dalamnya pun terdapat serangkaian terbatas dan juga beberapa instruksi khusus agar bisa menghitung suatu fungsi yang apabila dieksekusi dan diproses akan menghasilkan output tertentu, lalu akan berhenti dalam kondisi akhir yang sebelumnya sudah ditentukan.

Algoritma sendiri terbentuk dari tiga dasar utama, yaitu:

  • Algoritma sekuensial adalah suatu perintah yang bisa tersusun secara sistematis dan berurutan agar nantinya bisa menampilkan beberapa instruksi tertentu secara khusus.
  • Algoritma perulangan atau looping algorithm merupakan suatu perintah yang bisa digunakan agar bisa mengulang beberapa banyak perintah dengan cara memperhitungkan beberapa syarat khusus.
  • Algoritma percabangan ataupun bersyarat, yakni suatu perintah yang bisa berguna dalam memilih salah satu dari beberapa pilihan yang sudah ada.

Pengertian Algoritma Menurut Para Ahli

1. Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi

Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi, seorang pakar matematika yang berasal dari Uzbekistan menjelaskan bahwa algoritma adalah suatu cara khusus yang bisa digunakan agar bisa menyelesaikan permasalahan tertentu.

2. Donald Ervin Knuth

Berdasarkan Donald Ervin Knuth, Algoritma adalah serangkaian aturan khusus berhingga yang mampu memberikan jejeran operasi agar mampu menyelesaikan suatu masalah tertentu.

3. S. E. Goodman dan S.T. Hedetniemi

Goodman dan Hedetniemi mengatakan bahwa algoritma adalah urutan terbatas dari berbagai operasi yang bisa terdefinisi dengan baik, yang mana setiap hal tersebut memerlukan memori dan juga waktu yang terbatas agar bisa menyelesaikan suatu masalah tertentu.

4. Seymour Lipschutz dan Marc Lipson

Kedua ahli yang berprofesi sebagai praktisi matematika dan komputer ini menjelaskan bahwa algoritma adalah suatu daftar tahapan demi tahapan yang terhingga dari berbagai instruksi yang dijelaskan secara jelas agar bisa dimanfaatkan untuk memecahkan suatu masalah khusus.

5. Marvin Minsky

Pakar Artificial Intelligence (AI) ini menjelaskan bahwa algoritma adalah seperangkat aturan tertentu yang mampu memberitahukan pada Anda dari waktu ke waktu, tepatnya bagaimana untuk berbuat dan bertindak.

Ciri-Ciri Algoritma

Algoritma terdiri dari lima ciri utama yang saling berkaitan antara yang satu dengan yang lainnya. Menurut Donald E. Knuth, kelima ciri-ciri algoritma adalah sebagai berikut:

  1. Terdapat input, yakni permasalahan yang dihadapi dan nantinya akan dicarikan solusinya. Algoritma ini mempunyai nilai nol atau lebih input.
  2. Terdapat proses, yakni serangkaian tahapan yang memang harus dikerjakan agar bisa mencapai tujuan akhir
  3. Terdapat Output, yakni solusi ataupun tampilan akhir yang bisa diperoleh dari suatu algoritma yang setidaknya mempunyai satu output.
  4. Terdapat berbagai instruksi yang jelas, yakni instruksi jelas dalam suatu algoritma agar nantinya tidak akan terjadi kesalahan saat sedang menghasilkan output tertentu.
  5. Terdapat tujuan akhir yang memang ingin dicapai, yakni akhir dari suatu program yang mana program tersebut nantinya akan berhenti bila sudah berhasil mencapai tujuan akhir.

Fungsi dan Manfaat Algoritma

Pada dasarnya, fungsi utama dari suatu algorima adalah agar mampu memecahkan suatu masalah. Sedangkan fungsi dan manfaat lain dari algoritma adalah sebagai berikut ini:

  • Agar bisa membantu menyederhanakan suatu program yang rumit dan juga besar
  • Agar bisa mempermudah membuat program yang dapat menyelesaikan masalah tertentu
  • Bisa digunakan berulang kali dalam menyelesaikan suatu permasalahan.
  • Membantu menyelesaikan suatu masalah dengan logika dan juga sistematis.
  • Agar bisa meminimalisir penulisan program secara berulang-ulang
  • Agar bisa melakukan pendekatan top-down dan divide and conquer
  • Agar memudahkan pembuatan program yang lebih rapi dan juga terstruktur
  • Mempermudah proses modifikasi pada suatu program karena bisa dilakukan hanya pada satu modul saja tanpa merubah modul yang lainnya lagi.
  • Mampu membantu menemukan kesalahan karena alur kerjanya yang jelas.
  • Mempermudah berbagai proses dokumentasi.

Jenis-Jenis Algoritma

Seorang pakar matematika dan komputer bernama Dr. Christoph Koutschan mengatakan terdapat setidaknya 32 algoritma di dalam ilmu komputer. Tapi jika kita lihat berdasarkan fungsinya, hanya terdapat enam algoritma dasar, yakni:

1. Rekursi

Algoritma rekursi adalah sesuatu yang akan memanggil dirinya sendiri secara berulang-ulang agar masalahnya bisa diselesaikan dengan baik. Berikut ini adalah beberapa kode yang mampu 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. Divide and Conquer

Divide and conquer akan membagi suatu permasalahan yang besar menjadi berbagai permasalahan lain yang lebih kecil. Jenis algoritma ini sendiri sebenarnya terdiri dari dua bagian utama, yaitu:

  • Memecahkan masalah kedalam beberapa sub-masalah yang lebih independen dan lebih kecil dari jenis lainnya yang sama.
  • Menyelesaikan masalah asli setelah sebelumnya mampu menyelesaikan masalah yang lebih kecil secara terpisah.

Berikut ini adalah contoh kode semu dari algoritma divide and conquer:

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. 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. Dynamic Programming

Dynamic Programming ini akan bekerja dengan mengingat hasil dari suatu progres yang lalu dan juga menggunakannya agar bisa menemukan hasil yang baru.

Itu artinya, pemrograman dinamis akan memecahkan masalah kompleks dengan cara memecahkanya menjadi beberapa sub masalah yang sederhana agar kemudian memecahkannya masing-masing sebanyak satu kali agar kemudian menyimpannya agar bisa digunakan di masa depan.

Salah satu contoh dynamic programming pemrograman dinamis adalah urutan fibonacci, berikut ini adalah contohnya:

Fibonacci(N) = 0 (for n=0)

= 0 (for n=1)

= Fibonacci(N-1)+Finacchi(N-2)

4. Greedy

Jenis  ini bisa digunakan untuk menyelesaikan masalah optimasi. Dalam algoritma ini, kita akan menemukan solusi yang lebih optimal secara lokal tanpa harus memerhatikan konsekuensi apapun yang akan terjadi di masa depan dan bisa menemukan solusi yang lebih maksimal pada tingkatan global.

Namun, metode ini tidak akan menjaminkan pada Anda untuk bisa mendapatkan solusi yang optimal. Terdapat lima komponen yang terdapat pada algoritma ini, yaitu:

  • Kumpulan kandidat yang nantinya akan dicari solusinya.
  • Fungsi pemilihan yang nantinya akan membantu memilih kandidat terbaik.
  • Fungsi kelayakan yang dapat membantu Anda dalam menentukan kandidat yang bisa digunakan agar bisa menemukan solusi.
  • Fungsi objektif yang mampu memberikan nilai pada solusi mungkin ataupun solusi parsial.
  • Fungsi solusi yang mampu menginformasikan pada Anda tentang waktu dalam menemukan solusi dalam masalah tersebut.

5. Brute Force

Konsep algoritma ini sebenarnya sangat sederhana. Dalam prosesnya, brute force akan melakukan integrasi pada seluruh solusi yang mungkin untuk mencari satu ataupun lebih dari satu solusi yang mampu menjawab suatu permasalahan.

Contoh pencarian sekuensial yang dilakukan dengan menggunakan brute force adalah sebagai berikut:

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

Backtracking adalah suatu teknik yang mampu memecahkan berbagai masalah secara rekursif dan mencobanya agar bisa memperoleh solusi dengan cara menyelesaikan suatu bagian masalah di waktu yang bersamaan. Bila salah satu solusi ternyata gagal, maka kita bisa menghapusnya dan mundur agar bisa menemukan solusi lain. Itu artinya, algoritma ini akan memecahkan sub masalah dan bila gagal, maka algoritma ini akan membatalkan langkah terakhir dan mulai lagi agar bisa menemukan solusi atas permasalahan tersebut.

editor: M Dafa

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll to Top
WhatsApp Tanya & Beli Program?