Anda di halaman 1dari 9

Pengertian algoritma

Pengertian algoritma adalah suatu urutan dari beberapa langkah yang logis guna
menyelesaikan masalah. Pada saat kita memiliki masalah, maka kita harus dapat untuk
menyelesaikan masalah tersebut dengan menggunakan langkah-langkah yang logis. Contoh
dari algoritma sederhana dalam kehidupan nyata adalah pada saat memasak air. Hal-hal yang
perlu dilakukan untuk memasak air seperti berikut : siapkan panci, masukkan air secukupnya
ke dalam panci, tutup panci tersebut, letakkan panci tersebut di atas kompor, hidupkan
kompor dengan api sedang, apabila air sudah mendidih, matikan kompor, setelah itu angkat
panci tersebut dari kompor. Langkah-langkah untuk memasak air tersebut merupakan
algoritma memasak air. Sehingga memiliki urutan langkah-langkah yang logis. 

Dalam ilmu matematika dan komputer, pengertian algoritma merupakan prosedur dari


beberapa langkah demi langkah untuk penghitungan. Algoritma dipakai untuk penghitungan,
penalaran otomatis, dan pemrosesan data. Pengertian algoritma ialah suatu metode yang
efektif diekspresikan sebagai rangkaian yang terbatas dari beberapa instruksi yang telah
dijelaskan dengan baik guna menghitung sebuah fungsi. Susunan algoritma dimulai dari
kondisi awal dan input awal, instruksi tersebut mendeskripsikan komputasi yang apabila itu
dieksekusi serta diproses dengan melewati urutan-urutan kondisi terbatas yang terdefinisi
dengan baik, sehingga dapat menghasilkan output atau keluaran dan berhenti di kondisi akhir
yang telah ditentukan. 

Algoritma sangat diperlukan untuk mengolah data yang ada di komputer. Dalam sistem
komputer, pengertian algoritma ialah logika yang dibuat dengan memakai software oleh para
pembuat perangkat lunak untuk membuat software tersebut menjadi lebih bagus. Algoritma
berbeda dengan Logaritma. Perlu diketahui juga bahwa logaritma adalah sebuah operasi di
ilmu matematika guna menghitung kebalikan eksponen dari sebuah perpangkatan.

Kata Algoritma ditemukan oleh Abu Abdullah Muhammad Ibnu Musa Al-Khwarizmi, beliau
merupakan matematikawan yang berasal dari Persia yang ditemukan pada Abad Ke 9. Dari
masa ke masa, kata algoritma mulai berkembang di abad ke 18. 

Untuk lebih jelasnya lagi, berikut salah satu contoh algoritma :


Algoritma untuk menghitung nilai x dari persamaan x = 17y + 9 :
1) Memulai
2) Menentukan nilai y
3) Menghitung nilai x = 17y + 9
4) Menyelesaikan

Bentuk Dasar Algoritma


Algoritma sendiri mempunyai tiga 3 bentuk dasar, antara lain : 

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

3. 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 : 

1. Masukan (Input)
Algoritma mempunyai input 0 (nol) atau lebih
2. Keluaran (Output)
Algoritma harus menghasilkan atau mengeluarkan minimal 1 output.
3. Terbatas (Finite)
Algoritma harus berhenti setelah melakukan langkah-langkah yang diperlukan.
4. Pasti (Definite)
Algoritma harus jelas kapan dimulai dan berakhir. Tujuan dari algoritma harus jelas. Setiap
langkah-langkah harus dijelaskan dengan jelas.
5. 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. 

1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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
1. 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).
2. Menghitung Keliling dan Luas Lingkaran
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 :

3. 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 :
4. 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 :

5. 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 :
6. 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 :

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.
7. 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 :
8. Kalkulator Sederhana dari 2 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 :

9. 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 :

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

Kemudian huruf tersebut akan mengeluarkan kata mulai dari index ke-n hingga index ke-0.

Anda mungkin juga menyukai