Algoritma: Pengertian, Jenis, Fungsi, Komponen, dan Contoh

Daftar Isi
Daftar Isi
Algoritma merupakan susunan prosedur dan aturan untuk memecahkan masalah matematika atau pengambilan keputusan logis. Ciri-ciri dari algoritma adalah memiliki input dan output, efektif dan pasti atau tidak ambigu.

Dewasa ini, algoritma adalah kata yang ramai diperbincangkan di media sosial, seperti Instagram, TikTok, maupun YouTube.

Nah, bagi masyarakat awam, kata tersebut mungkin terdengar asing, lain halnya dengan Anda yang mungkin berkecimpung di dunia pemrograman.

Singkatnya, algoritma adalah prosedur pemecahan sistematis yang akan merekomendasikan konten atau artikel relevan dengan minat user

Untuk penjelasan selengkapnya, mari simak pengertian, sejarah, cara kerja, dan fungsinya di artikel berikut ini!

Apa itu Algoritma?

Menurut Kamus Besar Bahasa Indonesia (KBBI), algoritma adalah suatu prosedur yang tersusun secara sistematis untuk menyelesaikan masalah matematika atau urutan pengambilan keputusan logis guna memecahkan sebuah permasalahan.

Melansir TechTarget, algorithm atau algoritma adalah sebuah prosedur untuk memecahkan sebuah problematika dalam komputerisasi.

Algorithm bertindak sebagai pemberi instruksi pemecahan masalah berdasarkan rutinitas atau pola yang telah terbentuk.

Istilah ini banyak digunakan di bidang IT, seperti dalam bahasa pemrograman, natural language, pseudocode, control table, dan flowcharts.

Secara personifikasi, algoritma selalu berkaitan erat dengan komputer karena digunakan untuk memproses data, membuat inferensi otomatis, dan memecahkan permasalahan komputer secara sistematis. 

Masih bingung? Begini, anggap saja Anda ingin makan, prosedur yang benar untuk makan adalah mengambil peralatan makan terlebih dahulu, mengambil makanan, cuci tangan, dan setelah itu berdoa.

Nah, cara kerja algorithm adalah seperti itu, tidak boleh terbolak-balik karena dengan mengikuti prosedur linier ini, ia bisa menemukan jawaban tepat.

Jika tata cara tersebut berantakan atau tidak runtut, maka kita tidak bisa memecahkan sebuah kasus yang dihadapi. 

Sejarah Algoritma

Algoritma telah menjadi bagian penting dari perkembangan teknologi, matematika, dan komputasi. Konsep ini merujuk pada serangkaian langkah-langkah terstruktur yang digunakan untuk memecahkan masalah atau mencapai tujuan tertentu. Berikut adalah garis besar sejarah dan perkembangan algoritma dari masa ke masa:

1. Asal Usul Algoritma

Istilah ini berasal dari nama seorang matematikawan Persia, Al-Khwarizmi (abad ke-9). Al-Khwarizmi menulis kitab yang menguraikan cara menyelesaikan masalah aritmatika menggunakan sistem bilangan desimal.

Kata ini diambil dari latinisasi namanya, “Algoritmi”, yang dipadukan dengan gagasan tentang prosedur matematika.

Bukunya, “Al-Kitab al-Mukhtasar fi Hisab al-Jabr wal-Muqabala” (Buku Ringkas tentang Kalkulasi melalui Penyempurnaan dan Penyeimbangan), menjadi dasar dari algebra (aljabar).

Buku ini juga menjelaskan prosedur terstruktur untuk menyelesaikan masalah matematika, yang kemudian berkembang menjadi konsep algoritma modern.

2. Awal Komputasi Modern

  • Alan Turing (1936) memainkan peran penting dalam sejarah hal ini. Dia memperkenalkan konsep Mesin Turing, model teoretis dari sebuah mesin yang dapat melakukan komputasi dengan mengikuti serangkaian instruksi. Model ini menjadi dasar bagi teori komputasi modern. Turing juga mencetuskan Tes Turing, yang mengukur kecerdasan buatan, serta algoritma yang digunakan untuk memecahkan kode Jerman Enigma selama Perang Dunia II.
  • Pada tahun 1940-an hingga 1950-an, dengan berkembangnya komputer elektronik pertama seperti ENIAC, penggunaannya mulai diterapkan dalam berbagai bidang, termasuk pemrosesan data, kalkulasi numerik, dan analisis statistik.

3Perkembangan Algoritma dalam Komputer Modern

  • John von Neumann, seorang matematikawan Hungaria-Amerika, memperkenalkan konsep arsitektur von Neumann, yang masih menjadi dasar sistem komputer modern. Ia juga mengembangkan berbagai algoritma penting, termasuk algoritma terkait metode Monte Carlo yang digunakan dalam pemodelan simulasi.
  • Pada tahun 1960-an, dengan berkembangnya bahasa pemrograman seperti Fortran dan Lisp, algoritma mulai digunakan secara luas dalam pemrograman komputer. Pengembangan algoritma pencarian dan algoritma pengurutan, seperti Merge Sort dan Quick Sort (dikembangkan oleh Tony Hoare pada tahun 1961), menjadi landasan untuk efisiensi dalam pemrosesan data.

4Algoritma dalam Era Modern

  • Sejak 1970-an hingga sekarang, perkembangan algoritma sangat pesat, didorong oleh kemajuan teknologi komputer, internet, dan kecerdasan buatan (AI). Konsep ini tidak hanya digunakan dalam pemrosesan data tetapi juga dalam pencarian informasi, enkripsi, dan kompresi data.
  • Google PageRank (dikembangkan pada akhir 1990-an oleh Larry Page dan Sergey Brin) merevolusi pencarian internet dengan memberikan peringkat pada halaman web berdasarkan relevansi dan popularitas.
  • Di bidang kecerdasan buatan telah mengalami perkembangan pesat, termasuk penggunaan algoritma pembelajaran mesin (machine learning), jaringan saraf tiruan, dan deep learning, yang memungkinkan komputer untuk belajar dari data dan membuat keputusan kompleks.
  • Jenis kriptografi, seperti RSA dan AES, telah menjadi fondasi untuk keamanan data di internet, memungkinkan transaksi online yang aman dan komunikasi terenkripsi.

5. Algoritma dalam Big Data dan AI

Di era big data dan AI, ini memainkan peran yang semakin penting. Dengan volume data yang sangat besar, algoritma digunakan untuk mengurai informasi penting dari data yang tidak terstruktur dan memungkinkan pengambilan keputusan yang lebih cepat dan akurat.

  • Rekomendasi di platform seperti YouTube, Netflix, dan Facebook membantu menyaring konten yang relevan bagi pengguna berdasarkan pola perilaku mereka.
  • Algoritma kecerdasan buatan, seperti algoritma pembelajaran mendalam (deep learning), digunakan untuk berbagai aplikasi modern, mulai dari pengenalan gambar dan suara hingga kendaraan otonom.

Perkembangan Algoritma

Algorithm telah digunakan sejak zaman kuno, seperti algoritma matematika dari Mesir Kuno untuk perhitungan.

Kemudian, algorithm diwujudkan dalam bentuk kode komputer pertama kali pada tahun 1940-an dengan komputer ENIAC (Electronic Numerical Integrator and Computer).

Pada 1950-an dan 1960-an, John von Neumann dan Alan Turing memperkenalkan konsep pemrograman tingkat tinggi dan bahasa pemrograman, seperti Fortran dan LISP. Pada era ini, algorithm menjadi lebih kompleks.

Sampai saat ini, algorithm terus berkembang seiring dengan perkembangan informasi dan teknologi.

Nah, perkembangan algorithm ini bisa dilihat dari adanya machine learning, deep learning, dan neural networks yang membawa kemajuan besar dalam pengenalan pola dan pemrosesan bahasa alami.

Fungsi Algoritma

Rupanya, sampai juga di pertengahan pembahasan. Sebenarnya, fungsi algoritma ini tidak bisa dikotak-kotakkan hanya untuk pemrograman komputer.

Sebab, sistem ini telah diterapkan di berbagai aspek kehidupan. Lantas, apa saja fungsi algorithm? Adapun di antaranya, yaitu:

  • Menyelesaikan masalah dengan cara lugas, logis, dan terstruktur.
  • Mengubah masalah besar dan kompleks menjadi lebih sederhana, sehingga bisa terselesaikan dengan baik.
  • Kesalahan yang muncul pada proses input data akan mudah terdeteksi.
  • Memudahkan programmer ketika memodifikasi program tanpa mengubah total dari awal.
  • Programmer perlu melakukan olah program sekali saja dan Ia bisa meng-update untuk memperbaiki sebuah kasus yang timbul. 

Komponen Penyusun Algoritma

Secara umum, komponen penyusun algorithm terbagi menjadi tiga, antara lain:

1. Input

Input di sini adalah masukan atau pemilihan variabel sesuai dengan jenis, konstanta, dan parameter dalam sebuah fungsi. 

2. Output

Output adalah sebuah produk atau keluaran dari proses dan input variabel. Output inilah nantinya akan tampil pada sebuah interface yang telah melewati pengolahan oleh front-end engineer.

3. Proses

Ini adalah komponen penentu dan utama dalam merancang sebuah prosedur pemecah masalah yang solutif. Proses ini terdapat banyak formula seperti logika matematika, sintaksis, dan semantik. 

Ciri-Ciri Algoritma

Tahukah Anda bagaimana ciri-ciri algoritma? Jika belum, berikut ulasannya untuk Anda. Simak terus, ya!

1. Keterbatasan (Finiteness)

Ciri-ciri algoritma pertama adalah prosedur pemecahan kasusnya memiliki sebuah keterbatasan. Artinya, setelah prosedur untuk memecahkan masalah selesai dan tujuan akhir telah tercapai, maka tugasnya sudah selesai. 

2. Kepastian (Definiteness)

Kepastian adalah ciri khas algorithm yang diciptakan untuk membantu mencari solusi dalam komputerisasi dengan tepat dan tidak bermakna ganda alias ambigu.

Jadi, pada akhirnya, sistem ini akan mengantarkan Anda pada sebuah jawaban jelas dan tidak menimbulkan persepsi berbeda. 

3. Masukan (Input)

Algoritma akan bekerja sesuai dengan input yang diberikan. Input ini bisa berupa rumus sesuai dengan konteks atau aturan yang tertera, seperti flowchart pemrograman.

Pemasukan rumus biasanya menggunakan syntax dan diikuti oleh formula. Formula ini ditulis berdasarkan tipe data.

Tipe data yang terdapat dalam bahasa pemrograman biasanya berupa integer untuk data numerik, floating point untuk bilangan desimal dan perhitungan detail.

Selain itu, formula juga ditulis menggunakan karakter untuk penulisan huruf dan juga nama, serta Boolean untuk memilih dua nilai, yaitu salah atau benar. 

4. Output

Ciri-ciri berikutnya adalah output, yang merupakan bentuk dari hasil masukkan. Hasil ini akan muncul dari pemrosesan data, sehingga akan menampilkan interface yang bisa user isi sesuai dengan perintah pengisian yang tertera. 

5. Keefektivitasan (Effectiveness)

Ciri-ciri terakhir, yakni prosedur pemecahan problematika harus efisien. Setiap eksekusinya dilakukan dengan sesederhana mungkin, sehingga prosesnya berjalan efektif dan juga efisien.

Jenis Algoritma

Algoritma terbagi menjadi beberapa jenis sesuai dengan fungsi yang dimilikinya. Berikut penjelasannya.

1. Algoritma Rekursif

Jenis ini akan menyebut dirinya sendiri secara repetitif untuk menyelesaikan masalahnya. Dalam konteks ini, rekursi melibatkan pemanggilan fungsi rekursif dengan nilai yang lebih kecil setiap kali dilakukan.

Fakta di lapangan menunjukkan bahwa, fungsi ini lebih efisien tapi penulisannya tidak mudah dan sering menimbulkan error/infinity loop.

2. Algoritma Divide and Conquer

Jenis algorithm ini membagi masalah besar menjadi beberapa bagian yang lebih kecil dan menyelesaikannya satu persatu.

Prinsip fungsi ini ibarat sebuah kubus besar, ia akan terpecah menjadi kubus-kubus kecil. Fungsi ini terbagi menjadi dua, antara lain:

  • Mengubah masalah besar menjadi submasalah di mana lingkupnya lebih kecil dari masalah lain yang sejenis
  • Kemudian, ia akan memprioritaskan masalah yang lebih besar dahulu daripada masalah kecil

Berikut contoh dari algoritma divide and conquer:

Kode di atas merupakan algoritma pencarian yang digunakan untuk mencari nilai tertentu dalam array yang sudah diurutkan.

Pada contoh penggunaan di atas, jika fungsi binary_search dijalankan, maka metode tersebut akan mencari nilai target (target_value) pada array yang sudah diurutkan dalam (sorted_array), dan akan menghasilkan nilai -1 atau bukan -1.

Setelah fungsi tersebut menghasilkan angka != -1, maka akan menampilkan teks "ditemukan pada indeks". Misalnya dalam contoh tersebut, nilai 7 ditemukan pada indeks ke-6 dalam array.

Begitu juga sebaliknya, jika menghasilkan angka ==1. maka akan menampilkan teks "tidak ditemukan dalam array".

3. Algoritma Dynamic Programming

Prinsip dynamic programming algorithm adalah memecahkan masalah kompleks dengan membuatnya menjadi lebih sederhana. Kemudian, masalah tersebut akan diselesaikan satu per satu dan disimpan untuk masa depan.

Berikut adalah implementasi algoritma Fibonacci dengan dynamic programming menggunakan memoization (penyimpanan hasil perhitungan sebelumnya untuk menghindari perhitungan berulang):

Dalam contoh ini, fungsi fibonacci menerima parameter n, yang merupakan indeks dari deret Fibonacci yang ingin dihitung. Memoization dilakukan dengan menyimpan hasil perhitungan dalam variabel dictionary memo.

Jika hasil perhitungan untuk suatu nilai n sudah ada dalam memo, fungsi akan mengembalikan hasil tersebut tanpa melakukan perhitungan ulang.

Misalnya, pada contoh penggunaan di atas, jika fungsi fibonacci dijalankan untuk n=10, maka akan menampilkan nilai fibonacci ke-10, yaitu 55

4. Algoritma Greedy

Greedy algorithm adalah metode paling populer untuk memecahkan sebuah persoalan optimasi langkah demi langkah.

Dengan solusi optimasi lokal yang lebih optimal ini diharapkan bisa memberikan hasil yang maksimal tanpa harus mengkhawatirkan konsekuensinya.

Berikut contoh penggunaannya:

Pada contoh di atas, fungsi greedy_coin_change digunakan untuk menentukan jumlah koin minimum berdasarkan koin yang tersedia untuk memberikan kembalian.

Awalnya, available coin diubah menjadi coins. Kemudian, fungsi tersebut dijalankan untuk menentukan kembalian yang sesuai berdasarkan coin dari yang nilainya terbesar.

Misalnya, pada contoh penggunaan, fungsi ini dijalankan dengan jumlah kembalian atau amount to change sebesar 27 sen.

Setelah fungsi tersebut dijalankan, maka akan menampilkan teks berikut:

Kembalian dengan jumlah koin minimum untuk 27 adalah:
Jumlah koin minimum: 5
Koin yang digunakan: [10, 10, 5, 1, 1]

5. Algoritma Brute Force

Jenis ini bekerja dengan cara mencocokkan karakter dari kiri ke kanan. Jika pola dan teks menunjukkan kecocokan, maka nilai yang akan keluar adalah true.

Struktur algoritma ini terbilang sederhana dan menggabungkan satu solusi dengan yang lain untuk memecahkan sebuah masalah.

Berikut ini adalah contoh sederhana dari algoritma brufe force:

Fungsi brute_force_pin_crack digunakan untuk mencoba kombinasi PIN secara berurutan, dengan membandingkan setiap kombinasi yang dihasilkan dengan PIN yang benar dalam correct_pin. Adapun digit yang mungkin dimasukkan adalah angka 0 sampai 9.

Apabila user memasukkan PIN yang sesuai, maka akan tampil tulisan “PIN berhasil ditemukan“. Sebaliknya, apabila tidak ditemukan, maka akan tampil tulisan “kombinasi PIN tidak ditemukan“.

Misalnya, pada contoh penggunaan, dimasukkan kombinasi PIN “1234”. Karena sesuai dengan logika yang telah ditentukan, maka akan tampil tulisan “PIN berhasil ditemukan: 1234”.

6. Algoritma Backtracking

Backtracking adalah proses untuk menyelesaikan berbagai masalah yang berbeda secara rekursif pada waktu yang bersamaan. Jika solusi pertama gagal, maka bisa menggunakan alternatif lain.

Jenis ini memiliki tingkat efisiensi tinggi karena Ia mengurutkan balik dari tujuan ke langkah sebelumnya untuk melihat sebuah solusi.

Contoh Algoritma dalam Kehidupan Sehari-hari

Berikut adalah contoh algoritma dalam kehidupan sehari-hari yang bisa menjadi referensi Anda untuk memahaminya lebih lanjut.

1. Algoritma dalam Cara Membuat Kopi

Jika Anda pecinta kopi, pasti tahu prosedur membuat kopi yang benar. Nah, panduan pertama yaitu membuka kemasan kopi dan masukkan isinya ke dalam gelas.

Setelah itu tambahkan gula secukupnya, lalu seduh dengan air panas. Aduk kopi berlawanan dengan arah jarum jam hingga tercampur sempurna. Kopi siap dihidangkan. 

2. Flowchart dalam Cara Membuat Mie Goreng

Pasti semua sudah mengetahui cara membuat mie goreng. Pertama, masak air terlebih dahulu. Lalu buka bungkus mie goreng, sobek bumbunya dan masukkan ke dalam piring.

Setelah air mendidih, masukkan mie tersebut dan masak sekitar 3 menitan. Tiriskan mie goreng dan campur dengan bumbu tersebut. Aduk hingga merata kemudian sajikan dalam keadaan hangat. 

3. Flowchart dalam Cara Menghitung Luas Segitiga

Cari rumus menghitung luas segitiga. Setelah mengetahui rumusnya, masukkan nilai alas segitiga. Kemudian masukkan nilai tinggi.

Masukkan angka tersebut pada rumusnya yakni ½ x luas alas x tinggi. Pastikan satuannya sama. Lalu hitunglah, luas segitiga cukup mudah untuk diketahui. 

4. Contoh Algoritma Pemrograman pada Facebook

Contoh algorithm paling sederhana adalah login ke akun Facebook seperti berikut ini:

Halaman login facebook
Halaman login facebook
Contoh algoritma skema login
Contoh algorithm untuk login Instagram (sumber: Kompas.com)

Algoritma login Facebook yang dijelaskan dapat dipahami sebagai serangkaian langkah sistematis untuk memverifikasi identitas pengguna dan memberikan akses ke akun mereka. Berikut adalah penjelasan lebih rinci berdasarkan langkah-langkah tersebut:

Buka website Facebook

  • Langkah pertama adalah pengguna membuka situs web Facebook melalui peramban mereka. Di sini, server Facebook menerima permintaan dari pengguna untuk menampilkan halaman login.

Klik tombol login

  • Pengguna mengklik tombol login di halaman utama Facebook, yang mengarahkan mereka ke halaman untuk memasukkan kredensial (email dan kata sandi).

Komputer menampilkan halaman login

  • Setelah tombol login diklik, sistem menampilkan halaman login yang mengharuskan pengguna memasukkan email dan kata sandi. Ini adalah antarmuka interaktif antara pengguna dan server.

Masukkan alamat email dan password Facebook

  • Pengguna memasukkan alamat email dan kata sandi mereka ke dalam kolom yang disediakan. Setelah itu, data ini dikirimkan ke server Facebook untuk diproses lebih lanjut.

Kondisi pertama: Verifikasi email dan password

  • Server Facebook mengecek apakah email dan kata sandi yang dimasukkan sesuai dengan data yang ada di database.
  • Jika sesuai, pengguna berhasil masuk dan diarahkan ke halaman beranda Facebook dengan pesan “berhasil login”. Pada tahap ini, sesi pengguna dimulai dan mereka dapat mengakses akun mereka.

Kondisi kedua: Kesalahan login

  • Jika tidak sesuai, server menolak permintaan login dan menampilkan pesan “error” atau “login gagal”, meminta pengguna untuk tetap berada di halaman login dan memasukkan ulang kredensial mereka.

Komputer memproses permintaan pengguna

  • Berdasarkan hasil dari kedua kondisi tersebut, sistem memproses langkah berikutnya. Jika login berhasil, pengguna diarahkan ke beranda, sementara jika gagal, sistem tetap di halaman login dan mungkin menawarkan opsi lain seperti “Lupa kata sandi”.

Perbedaan Algoritma dan Pemrograman 

Algoritma merupakan sebuah konsep, jadi setiap orang mempunyai pemikiran sendiri terkait apa yang digunakan. Misalnya, masalah dijelaskan dalam bentuk “Y” serta solusinya ditulis dengan variabel “Z”. 

Setiap orang menyelesaikan masalah tersebut mungkin menggunakan variabel berbeda namun tetap bisa mendapatkan hasil yang sama.

Bisa dikatakan, algorithm adalah sederet aturan atau tata cara untuk memecahkan sebuah masalah dengan pasti dan efektif.

Sedangkan pemrograman adalah sebuah cara untuk membuat satu atau lebih algoritma menjadi saling terkoneksi dan terintegrasi.

Nah, pada sistem ini, bahasa pemrograman digunakan sebagai pelaku aktif dalam menghubungkannya.

Jadi, jelas sekali perbedaan antara algoritma dan pemrograman. Namun perbedaan inilah yang akhirnya membuat suatu kolaborasi dalam problem solving dengan proses sedemikian rupa hingga masalah terpecahkan dengan baik.

Itulah penjabaran kami tentang informasi algoritma. Dapat disimpulkan, algoritma adalah sistem pemecahan masalah yang dilakukan secara runtut sesuai urutan.

Namun, jika Anda ingin mengembangkan software atau membuat aplikasi untuk bisnis tanpa ribet, Sekawan Media adalah solusinya.

Sekawan Media menyediakan jasa pembuatan aplikasi android dan iOS yang dapat Anda gunakan untuk keperluan bisnis.

Hingga saat ini, Sekawan Media telah dipercaya selama 9 tahun oleh lebih dari 300 perusahaan ternama, baik di Indonesia maupun mancanegara. Untuk informasi lebih lanjut terkait layanan dan harga, hubungi kontak marketing kami.

Copied To Clipboard

Bagikan Ke: