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

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.
ilustrasi algoritma melalui kode bahasa pemrograman
Daftar Isi

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

Sejarah Algoritma
Prosedur Tersusun Penyelesai Masalah (Foto: Unsplash)

Pernahkah kalian membaca buku tentang The Book of Restoration and Reduction karangan Al-Khawarizmi, seorang bengkebangsaan Arab?

Sebagai seorang maestro di bidang matematika, Al-Khawarizmi menciptakan sebuah teori yang telah diaplikasikan pada kehidupan hingga saat ini, yaitu aljabar.

Aljabar merupakan ilmu yang mempelajari tentang aritmetika dan pembelajarannya mencakup simbol, operasi penjumlahan, pengurangan, perkalian, serta pembagian untuk menyelesaikan sebuah permasalahan.

Secara etimologi, aljabar berasal dari kata Al-Jabr yang dalam bahasa Arab berarti restorasi atau melengkapi.

Ibaratnya, aljabar adalah ilmu yang menghubungkan bidang matematika satu dengan lainnya. 

Lalu, apa benang merah antara algoritma dan aljabar? Sejarah algoritma mulai membesar karena bapak matematikawan ini tidak hanya memperkenalkan aljabar, tapi juga konsepnya.

Diketahui, ilmu aritmetika memiliki peran penting dalam komputerisasi sebagai pemecah masalah dengan menggunakan cara-cara logis dan terstruktur.

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

Komponen Penyusun Algoritma
Komponen Penyusun Algoritma (Foto: Unsplash)

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

Contoh Algoritma Rekursif
Contoh 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:

Contoh Implementasi Algoritma Divide And Conquer Dengan Phyton
Contoh implementasi algoritma divide and conquer dengan Phyton

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):

Carbon 3

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:

Carbon 4

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:

Carbon 5

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. 

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.

Untuk mendapatkan informasi lainnya mengenai IT dan digital marketing, Anda bisa mengunjungi laman blog Sekawan Studio.

Selain menghadirkan artikel terbaru, Sekawan Studio memiliki layanan pembuatan website untuk membantu Anda mewujudkan website impian.

Melalui jasa ini, Anda akan dibantu membuat website yang eksklusif dan sesuai dengan panduan Google.

Dengan begitu, website yang dibuat akan teroptimasi dengan baik bisa menyesuaikan dengan algorithm yang ada.

Bagikan:

Tampilkan lebih Banyak Rekomendasi Topik.

Dapatkan informasi dan notifikasi update artikel terbaru dari kami, untuk menambah pengetahuan seputar dunia teknologi.

Mulai Proyek!

Tentukan paket pilihan sesuai dengan bisnis Anda.

Informasi Personal

Cluster Coding Factory, KEK Singhasari, Jl. Raya Klampok, RT.04/RW.04, Pasrepan, Klampok, Kec. Singosari, Kabupaten Malang, Jawa Timur 65153

Daftarkan diri gratis dan dapatkan keuntungan dari program kami.

Mari wujudkan idemu.

Cluster Coding Factory, KEK Singhasari, Jl. Raya Klampok, RT.04/RW.04, Pasrepan, Klampok, Kec. Singosari, Kabupaten Malang, Jawa Timur 65153

Raih keuntungan bersama kami!

Daftarkan diri gratis dan dapatkan keuntungan dari program kami.