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 :
- 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).
- 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 :
- 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 :
- 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 :
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 :
- 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 :
- 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.
Kemudian huruf tersebut akan mengeluarkan kata mulai dari index ke-n hingga index ke-0.
numpang promo ya gan
ReplyDeletekami dari agen judi terpercaya, 100% tanpa robot, dengan bonus rollingan 0.3% dan refferal 10% segera di coba keberuntungan agan bersama dengan kami
ditunggu ya di dewapk^^^ ;) ;) :*