Pengertian Algoritma, Bentuk Dasar Algoritma dan Contoh Algoritma Lengkap

Berbicara mengenai algoritma, hal yang pertama kali muncul di benak penulis adalah dunia pemrograman. Ya, kebanyakan orang memang mengenal algoritma hanya sebagai salah satu bagian dari dunia pemrograman komputer. Padahal, jika diteliti lebih dalam lagi, algoritma ternyata memiliki cakupan yang jauh lebih kompleks dibandingkan apa yang ada di pikiran kebanyakan orang.

Pengertian Algoritma, Bentuk Dasar Algoritma dan Contoh Algoritma Lengkap
Pengertian Algoritma, Bentuk Dasar Algoritma dan Contoh Algoritma Lengkap
Istilah algoritma normalnya memang banyak digunakan dalam aktivitas pemrograman komputer. Bagi orang – orang yang berasal dari latar belakang dunia pemrograman komputer, istilah algoritma tentunya bukanlah isitilah yang asing di telinga mereka. Akan tetapi, bagi kebanyakan orang awam yang tidak berasal dari dunia komputer, istilah ini tentunya bukanlah istilah yang familiar di telinga mereka.

Lantas apa sih sebenarnya algoritma itu?

Definisi dan Pengertian Algoritma

Pengertian algoritma pada dasarnya adalah susunan logis dan sistematis yang digunakan untuk memecahkan atau pun menyelesaikan suatu permasalahan tertentu. Jadi, setiap susunan logis yang diurutkan berdasarkan sistematika tertentu yang dipakai untuk menyelesaikan permasalahan dapat digolongkan sebagai sebuah algoritma. Susunan atau pun langkah – langkah memasak mie intan misalnya, langkah – langkah sistematis yang digunakan untuk memasak mie instan dapat digolongkan ke dalam logaritma, karena menyelesaikan sebuah permasalahan yaitu permasalahan lapar yang dirasakan oleh manusia.

Dalam dunia komputer sendiri, algoritma merupakan sistem kerja komputer yang terdiri atas sekumpulan perintah terintegrasi pada brainware, software, dan hardware. Tanpa salah satu dari tiga bagian sistem di atas, sebuah komputer tidak akan dapat dioperasikan sama sekali.

Pengertian menurut para Ahli

1. Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi
“algorita adalah suatu metode khusus untuk menyelesaikan suatu persoalan”. (Baca Juga: Kelebihan dan Kekurangan Matrikulasi)

2. Goodman Hedet Niemi
“algoritma adalah urutan terbatas dari operasi-operasi terdefinisi dengan baik, yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu masalah”. (Baca Juga: Manfaat Komputer dalam Bidang Industri)

3. Donald E. Knuth
“algoritma adalah sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus”. (Baca Juga: Pengertian Algoritma Brute Force dan Greedy)

4. Rinaldi Munir
“algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis”.

5. Seymour Lipschutz, Ph.D dan Marc Lipson, Ph.D.
“algoritma adalah suatu daftar langkah-demi-langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu”. (Baca Juga: Manfaat dan Software Pendukungnya)

6. David Bolton
“algoritma adalah deskripsi dari suatu prosedur yang berakhir dengan sebuah hasil”.

7. Andrey Andreyevich Markov
“algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk  mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan”. (Baca Juga: Jenis Sistem Operasi Komputer)

8. Stone dan Knuth
“algoritma adalah suatu seperangkat aturan yang tepat mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap aturan yang efektif, jelas hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas”.

9. Minsky
“algoritma adalah seperangkat arutan yang membertahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak”. (Baca juga : Fungsi Algoritma , Pengertian Algoritma Brute Force dan Greedy)

Dari sembilan pengertian algoritma diatas, dapat disimpulkan bahwa algoritma adalah:

“langkah-langkah berupa deretan operasi yang disusun secara logis dan sistematis untuk menyelesaikan suatu masalah dan mencapai tujuan tertentu”

Algoritma dalam Dunia Pemrograman

Dalam dunia pemrograman, algoritma digunakan untuk membangun berbagai macam software yang digunakan pada perangkat komputer. Penerapan sistem algoritma dalam pembuatan software biasanya dilakukan melalui beberapa jenis bahasa pemrograman seperti bahasa pemrograman C, bahasa pemrograman C#, dan bahasa pemrograman Visual Basic.

Tanpa algoritma yang tepat, susunan sintax atau pun baris – baris kode bahasa pemrograman yang telah dibuat tidak akan ada artinya sama sekali. Hal ini dikarenakan seluruh baris – baris kode yang dibuat dengan menggunakan tiga macam bahasa pemrograman di atas diatur sepenuhnya oleh algoritma yang dibuat. Dari mulai aktivitas pembukaan software aplikasi hingga ke berbagai macam aktivitas kerja yang digunakan oleh penggunanya, semuanya diatur oleh algoritma pemrograman yang dibuat oleh pengembang software tersebut.

Perlu Anda ketahui, algoritma sangat jauh berbeda dengan logaritma yang ada pada ilmu matematika. Algoritma merupakan langkah – langkah sistematis yang dijalankan untuk menyelesaikan suatu permasalahan tertentu, sedangkan logaritma merupakan kebalikan dari eksponensial atau pun pemangkatan. Meskipun berbeda, dalam beberapa kasus pemrograman, logaritma sering kali digunakan sebagai bagian dari sebuah algoritma pemrograman.

Bentuk Dasar Algoritma

Algoritma sendiri mempunyai tiga 3 bentuk dasar, antara lain :

Algoritma Sekuensial (Sequence Algorithm)
Sequence algorithm atau algoritma sekuensial merupakan algoritma yang langkah-langkahnya secara urut dari awal hingga akhir. Bentuk dari algoritma sekuensial ini salah satu contohnya seperti algoritma memasak air. Langkah demi langkah yang dijalankan harus urut dari atas sampai bawah.

Algoritma Perulangan (Looping Algorithm)
Looping algorithm atau algoritma perulangan merupakan suatu algoritma yang menjalankan beberapa langkah tertentu secara berulang-ulang atau looping. Pada masalah yang kita hadapi, ada pula sebuah langkah yang harus kita lakukan secara berulang-ulang. Contoh dari algoritma looping ini adalah algoritma menjemur pakaian:

  1. Siapkan jemuran.
  2. Ambil satu pakaian yang nantinya akan dijemur.
  3. Peras pakaian tersebut terlebih dahulu.
  4. Letakkan pakaian tersebut pada tiang jemuran.
  5. Ulangi langkah dari 2 sampai 4 hingga pakaian habis.

Dari algoritma di atas, dapat diketahui bahwa dari langkah 2 sampai 4 harus dilakukan secara berulang-ulang hingga pakaian habis.

Algoritma Percabangan atau Bersyarat (Conditional Algorithm)
Conditional algorithm atau algoritma bersyarat merupakan algoritma yang menjalankan langkah berikutnya apabila terdapat syarat yang sudah dapat dipenuhi. Berikut salah satu contoh dari algoritma bersyarat :

  1. Siapkan panci.
  2. Masukkan air secukupnya ke dalam panci.
  3. tutup panci tersebut.
  4. letakkan panci tersebut di atas kompor.
  5. Hidupkan kompor.
  6. Apabila air sudah mendidih, lalu matikan kompor.
  7. Angkat panci tersebut dari kompor.

Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air sudah mendidih, lalu matikan kompor. Sehingga apabila air tersebut belum mendidih, maka kompor tidak dimatikan.

Merancang Algoritma yang Baik

Menurut Donald E. Knuth, dari pengertian algoritma diatas dapat diketahui bahwa sebuah algoritma yang baik yaitu algoritma yang mempunyai kriteria sebagai berikut :

Masukan (Input)
Algoritma mempunyai input 0 (nol) atau lebih

Keluaran (Output)
Algoritma harus menghasilkan atau mengeluarkan minimal 1 output.

Terbatas (Finite)
Algoritma harus berhenti setelah melakukan langkah-langkah yang diperlukan.

Pasti (Definite)
Algoritma harus jelas kapan dimulai dan berakhir. Tujuan dari algoritma harus jelas. Setiap langkah-langkah harus dijelaskan dengan jelas.

Efisien
Membuat sebuah algoritma haruslah efisien. Adanya langkah seperti mencari hasil 1 + 0 tidak efisien. Hal ini karena bilangan apapun itu jika ditambah dengan nol maka hasilnya ialah bilangan itu sendiri. Sehingga adanya langkah seperti itu tidak perlu dimasukkan ke dalam sebuah algoritma.

Algoritma dapat disajikan ke dalam 2 bentuk, yaitu bentuk tulisan atau bahasa dan bentuk gambar. Penyajian algoritma dalam bentuk bahasa atau tulisan harus memakai sebuah bahasa yang dapat untuk dimengerti manusia dalam membuat langkah-langkah dari algoritma itu sendiri. Penyajian algoritma dalam bentuk tulisan/bahasa dapat dilakukan dengan memakai pseudocode. Pseudocode berasal dari "pseudo" aritnya "menyerupai atau mirip" dan "code" yaitu "kode program". Contoh dari beberapa bahasa pemrograman yang sering digunakan untuk menyatakan pseudocode antara lain : pascal, BASIC, Pascal, C, dan lain sebagainya. Terdapat juga penyajian algoritma yang dalam bentuk gambar disebut flow chart.

Klasifikasi Algoritma

Salah satu cara untuk mengklasifikasikan algoritma yaitu dengan menggunakan cara implementasi.

Rekursi atau iterasi
Algoritma rekursi ialah suatu algoritma yang memanggil dirinya sendiri secara berulang kali (looping) hingga pada kondisi tertentu dapat tercapai. Rekursi merupakan suatu metode umum dalam pemrograman fungsional. Algoritma iteratif memakai konstruksi berulang seperti pada pengulangan dan terkadang terdapat struktur data tambahan. Beberapa permasalahan secara alami dapat cocok dengan 1 implementasi atau yang lainnya. Contohnya : Menara Hanoi yang dikenal dengan implementasi rekursif. Pada setiap versi rekursif mempunyai adanya kesamaan (bisa lebih ataupun kurang kompleks) dengan versi iteratif, ataupun sebaliknya.

Logical
Algoritma dapat dilihat sebagai sebuah logika deduksi terkontrol. Pernyataan ini dapat diekspresikan sebagai: Algoritma = kontrol + logika. Komponen logika yang mengekspresikan aksioma dapat digunakan dalam komputasi serta komponen kontrol dalam menentukan cara-cara deduksi yang digunakan pada aksioma. Hal tersebut adalah dasar dari paradigma pemrograman logika. Dalam pemrograman, logika murni komponen kontrol ialah tetap serta algoritma yang ditentukan dengan memberikan hanya ada komponen logikanya. Daya tarik dari pendekatan logical ialah semantik elegan, sebuah perubahan yang ada dalam aksioma mempunyai perubahan dalam algoritma.

Serial, paralel atau terdistribusi
Pada umumnya, suatu algoritma menjalankan satu instruksi algoritma setiap waktu. Komputer tersebut dapat disebut dengan komputer serial. Rancangan algoritma yang digunakan bagi lingkungan tersebut ialah algoritma serial, terbalik dengan algoritma terdistribusi atau algoritma paralel. Algoritma paralel menggunakan arsitektur komputer yang mana terdapat prosesor-prosesor dapat mengerjakan masalah pada waktu yang sama. Sedangkan algoritma terdistribusi menggunakan banyak mesin yang terhubung ke jaringan. Algoritma terdistribusi atau paralel membagi permasalahan ke banyak submasalah simetris maupun asimetris dan mengumpulkan hasil yang didapat kembali. Konsumsi dari sumber pada algoritma tersebut tidak hanya ada perputaran prosesor tapi juga terdapat daya komunikasi antara prosesor. Algoritma pengurutan dapat untuk diparalelkan secara efisien, namun terdapat biaya komunikasi yang sangat mahal. Algoritma iteratif pada umumnya dapat untuk diparalelkan. Ada juga permasalah yang tidak ada algoritma paralelnya, disebut dengan permasalahan serial lahiriah.

Deterministik atau non-deterministik
Terdapat juga algoritma determministik dan non-determenistik. Algoritma deterministik dapat menyelesaikan masalah-masalah dengan keputusan tepat disetiap langkah-langkah dari sebuah algoritma. Algoritma non-deterministik dapat menyelesaikan masalah-masalah lewat adanya penerkaan walaupun penerkaan tersebut pada umumnya lebih akurat dengan memakai heuristik.

Tepat atau perkiraan
Jika terdapat banyak algoritma dapat sampai ke solusi yang tepat, ada juga algoritma perkiraan yang mencari perkiraan terdekat dengan solusi benarnya. Perkiraan tersebut dapat memakai strategi deterministik ataupun acak. Algoritma yang seperti itu dapat mempunyai nilai lebih untuk banyak permasalahan yang sulit.

Algoritma quantum
Berjalan pada model realistik dari komputasi quantum. Istilah tersebut pada umumnya dipakai bagi algoritma yang pada dasarnya quantum, ataupun memakai fitur-fitur penting dari komputasi quantum seperti belitan quantum atau superposisi quantum.

Contoh Algoritma

Menentukan Apakah Bilangan Tersebut Ganjil atau Genap
Terdapat bilangan yang bernama bilang bulat yaitu 0, 1, -1, 2, dst serta bilangan asli 1, 2, 3, 4, 5, dst. Kedua jenis bilangan tersebut sering digunakan dalam berhitung. Himpunan bilangan-bilangan bulat dalam buku teks aljabar pada umumnya dinyatakan dengan lambang "Z" dan himpunan bilangan-bilangan asli dinyatakan dengan lambang "N". Algoritma guna menentukan apakah bilangan tersebut ganjil atau genap dapat disajikan dengan flowchart seperti dibawah ini :

Bilangan genap merupakan sebuah bilangan bulat yang akan habis atau tidak memiliki sisa jika dibagi 2 (dua). Bilangan ganjil merupakan sebuah bilangan bulat yang tidak akan habis apabila dibagi 2 (dua).

Lingkaran merupakan suatu himpunan dari semua titik-titik pada bidang dalam jarak yang tertentu dan disebut dengan jari-jari dari titik tertentu dan dapat disebut titik pusat. Lingkaran merupakan contoh dari kurva tertutup sederhana, lingkaran membagi bidang menjadi bagian luar dan dalam. Algoritma menghitung keliling serta luas lingkaran dapat disajikan dengan flowchart seperti dibawah ini :

Menampilkan Bilangan Ganjil Diantara 10 sampai 30
Bilangan ganjil yang terletak diantara 10 dan 30 11,13,15, dan seterusnya. Namun, yang akan ditampilkan kecuali bilangan 21 dan 27. Jadi output yang diharapkan dari algoritma tersebut adalah bilangan ganjil 10 sampai 30 kecuali bilangan 21 dan 27. Algoritma untuk menampilkan bilangan ganjil antara 10 hingga 30 kecuali bilangan 21 dan 27 disajikan dengan flowchart dibawah ini :

Algoritma tahun Kabisat
Terdapat juga algoritma tahun kabisat. Tahun kabisat merupakan sebuah tahun yang memiliki tambahan 1 hari dan bertujuan agar kalender dapat sinkron dengan musim tahunan dan keadaan astronomi. Bulan Februari memiliki 29 hari pada saat tahun kabisat. Tahun yang dapat untuk dibagi dengan 4 adalah tahun kabisat. Algoritma guna menentukan tahun kabisat jika disajikan dengan flowchart seperti dibawah ini :
Algoritma tahun Kabisat

Menampilkan Bilangan Genap Mullai dari Angka 2 sampai n, Kecuali Bilangan Genap yang Kelipatan 4
Bilangan genap merupakan sebuah bilangan-bilangan bulat yang habis jika dibagi 2. Deret yang ditampilkan dari algoritma kali ini merupakan deret dari bilangan genap dari 2 hingga ke n kecuali bilangan yang merupakan kelipatan 4. Algoritma tersebut dapat digambarkan dengan flowchart seperti dibawah ini :

Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Ada juga algoritma yang dapat menghitung jumlah dari biaya yang harus dibayar oleh sang pembeli setelah mendapatkan sebuah diskon 10% dengan syarat jumlah dari total pembelian tersebut Rp.1.500.000,- Algoritma guna menghitung besaran biaya tersebut dapat digambarkan dengan flowchart seperti dibawah ini :

Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Jumlah barang memiliki sifat yang dinamik sesuai dengan input atau masukkan dari user. Apabila jumlah total dari harga tersebut kurang 1500000 maka tidak mendapatkan sebuah diskon.
Mencari Maks dan Min dari suatu Deret Bilangan
Terdapat juga sebuah algoritma guna mencari nilai maks serta min dari suatu n deret bilangan yang dimasukkan atau diinput oleh user. Algoritma tersebut dapat disajikan dengan flowchart seperti dibawah ini :

Mencari Maks dan Min dari suatu Deret Bilangan
Terdapat sebuah algoritma sebagai kalkulator sederhana untuk operasi penjumlahan, perkalian, pembagian, dan pengurangan. Kalkulator sederhana ini hanya dapat melakukan perhitungan dari 2 bilangan yang diinput oleh user. Algoritma guna menghitung 2 bilangan dapat digambarkan dengan flowchart seperti dibawah ini :
Kalkulator Sederhana dari 2 Bilangan

Menghitung Beberapa Angka dari Suatu Bilangan
Pada flowchart kali ini mengenai sebuah algoritma untuk menghitung beberapa angka dari suatu bilangan yang dimasukkan atau diinput oleh user. Berikut flowchart algoritma tersebut :

Membalik Sebuah Kalimat
Seperti yang kita ketahui sebelumnya tentang pengertian algoritma, bahwa algoritma juga dapat untuk menampilkan sebuah kalimat namun dengan urutan yang terbalik. Misalkan "woocara" dibalik menjadi "aracoow". Struktur data yang digunakan ialah Stack. Untuk membalik sebuah bilangan, huruf dari kalimat kita input dalam stack dengan menggunakan metode Push. Setelah stack tersebut sudah terisi, maka output kembali dengan memakai metode Pop. Pada algoritma membalik sebuah kalimat, adanya penggunaan struktur data stack diimplementasikan ke array. Dalam implementasinya ke array tersebut, kita harus terlebih dahulu menyiapkan sebuah array dengan memiliki panjang yang sama dengan jumlah huruf yang ada dalam kalimat yang akan dibalik tersebut. Pada gambar flowchart dibawah ini, terdapat tiap huruf dari kalimat yang diinput pada array dengan index ke-0 hingga ke-n dengan memakai metode push.

Pencarian yang paling banyak dicari

  • algoritma komputer
  • algoritma matematika
  • contoh algoritma
  • algoritma pemrograman
  • algoritma dan flowchart
  • algoritma pemrograman dasar
  • algoritma pdf
  • contoh soal algoritma