Algoritma harus efektif dan langkah algoritma dikerjakan dalam waktu yang wajar merupakan

Lihat Foto

freepik.com/vectorjuice

Ilustrasi ciri-ciri algoritma pemrograman

KOMPAS.com - Dalam perancangan suatu program, algoritma dibutuhkan karena memiliki peranan penting. Algoritma berperan untuk menghubungkan output atau keluaran yang dikehendaki dengan masukan atau input yang ada.

Algoritma tidak bergantung pada bahasa pemrograman. Sehingga untuk memasukkan algoritma ke bahasa pemrograman cenderung lebih mudah. Hal ini semakin dipermudah karena algoritma bisa digunakan di seluruh bahasa pemrograman.

Pengertian algoritma

Menurut Abdul Kadir dalam buku Logika Pemrograman Menggunakan Java [2020], algoritma merupakan kumpulan langkah rinci yang digunakan untuk menyelesaikan suatu masalah. Langkah rinci ini dimasukkan ke dalam program sehingga dapat dijalankan oleh komputer.

Dikutip dari buku Algoritma dan Pemrograman Menggunakan Bahasa Pemrograman Java [Teori dan Aplikasinya] [2020] karya Yuniansyah, kata ‘algoritma’ pertama kali dikemukakan oleh ilmuwan Arab bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi.

Awalnya istilah ‘Al Khuwarizmi’ cukup sering digunakan. Namun, lambat laut istilah ini dilafalkan oleh orang Barat sebagai algorism. Seiring perkembangan zaman, kata ‘algorism’ ini diserap ke dalam bahasa Indonesia menjadi ‘algoritma’.

Baca juga: Jenis-Jenis Perangkat Penyimpanan di Sistem Komputer

Ciri-ciri algoritma pemrograman

Dalam buku Algoritma dan Struktur Data untuk Perguruan Tinggi [2020] karya Rintho Rante Rerung, disebutkan jika algoritma mempunyai empat ciri khas yang membedakannya dengan bentuk metode penyelesaian masalah lainnya.

Pertama, algoritma memiliki awalan dan akhiran. Kedua, dalam menggunakan algoritma, tiap langkah harus didefinisikan secara jelas agar tidak multitafsir. Ketiga, input atau masukan algoritma minimal satu. Keempat, algoritma harus efektif atau tertulis secara sederhana.

Selain empat ciri khas di atas, algoritma pemrograman masih memiliki enam ciri penting lainnya. Berikut penjelasannya:

  1. Finiteness
    Artinya algoritma harus berakhir untuk semua kondisi setelah memproses sejumlah langkah penyelesaian masalah. Ketika menjalankan suatu langkah, algoritma memiliki sifat keterbatasan, sehingga harus menghentikan langkah yang sedang diproses.
  2. Definiteness
    Artinya tiap langkah dalam algoritma haruslah didefinisikan dengan tepat atau tidak boleh menggunakan instruksi yang bermakna ganda, karena bisa menimbulkan ambiguitas. Tidak hanya itu, urutan langkah algoritma juga harus dibuat sejelas mungkin.
  3. Input
    Tiap algoritma bisa tidak memiliki masukan. Namun, biasanya algoritma memiliki nol atau beberapa data masukan [input]. Masukan [input] adalah besaran yang diberikan di awal sebelum algoritma diproses atau mulai bekerja. 
  4. Output 
    Tiap algoritma memiliki output atau keluaran, baik dalam jumlah satu ataupun lebih. Keluaran [output] merupakan besaran yang berkaitan atau berhubungan dengan input [masukan]. Bentuk keluaran ini berupa solusi penyelesaian masalahnya.
  5. Effectiveness
    Langkah yang diambil dalam sebuah algoritma haruslah bersifat wajar dan sebisa mungkin dijalankan dengan efektif. Artinya seluruh operasi algoritma berbentuk sederhana dan bisa dikerjakan dalam waktu singkat.
  6. Structured
    Langkah yang diambil dalam sebuah algoritma harus disusun secara sistematis. Tujuannya supaya penyelesaian masalah tersebut tidaklah berbelit-belit, sehingga waktu penyelesaianya cenderung lebih singkat.

Baca juga: Langkah-Langkah Sebelum Menginstal Komputer

Dapatkan update berita pilihan dan breaking news setiap hari dari Kompas.com. Mari bergabung di Grup Telegram "Kompas.com News Update", caranya klik link //t.me/kompascomupdate, kemudian join. Anda harus install aplikasi Telegram terlebih dulu di ponsel.

Baca berikutnya

Saat mendengar ataupun membaca kata algoritma, sebagian besar orang pasti akan berpikir bahwa kata tersebut berkaitan dengan bahasa pemrograman, matematika, ataupun ilmu komputer.

Pemikiran dan anggapan tersebut memang tidak salah, namun apa pengertian algoritma yang sebenarnya? Nah, pada kesempatan kali ini, kita akan membahas pengertian, ciri-ciri, fungsi dan beragam jenis dari algoritma itu sendiri. Untuk itu, baca artikel tentang algoritma ini hingga selesai.

Pengertian Algoritma Adalah

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.

Baca juga: Digital Adalah: Ini Pengertian, Sejarah, dan Manfaatnya

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

  1. Call mergeSorting for the first half:

Call mergeSorting[ar, l, m]

  1. Call mergeSorting for the second half:

Call mergeSorting[ar, m+1, r]

  1. 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.

Baca juga: Bahasa Pemrograman: Pengertian, Jenis, dan Penggunaannya

Penutup

Demikianlah penjelasan lengkap dari kami tentang algoritma. Dengan adanya penjelasan ini, diharapkan pengetahuan kita tentang algoritma bisa meningkat dan bisa diterapkan dalam kehidupan sehari-hari.

Namun dalam menjalankan bisnis, Anda tetap memerlukan solusi yang tepat dalam membuat laporan keuangan yang cepat, tepat dan akurat. Hal ini tidak akan Anda dapatkan bila masih menggunakan cara yang manual dalam membuat laporan keuangan.

Untuk itu, gunakanlah software akuntansi dan bisnis dari Accurate Online. Software ini akan menyajikan lebih dari 200 jenis laporan keuangan yang bisa Anda peroleh di mana saja secara otomatis, cepat dan akurat. Selain itu, di dalamnya juga sudah dilengkapi dengan berbagai fitur yang akan membuat Anda lebih mudah dalam mengelola bisnis.

Klik banner di bawah ini untuk mencoba Accurate Online selama 30 hari, gratis!

Video liên quan