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
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.
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.
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).
1. 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 :
1. 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 :
2. 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 :
3. 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 :
4. 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.
5. 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 :
6. 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 :
7. 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 :
8. 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.
Itulah pengertian algoritma, bentuk dasar algoritma, klasifikasi algoritma, dan contoh algoritma. Algoritma sangat diperlukan untuk mengolah data yang ada di komputer
Sumber: http://woocara.blogspot.com/2016/02/pengertian-algoritma-contoh-algoritma.html#ixzz63efFICPr
No comments:
Post a Comment