Pengertian Algoritma
Pengertian algoritma yakni urutan dari langkah-langkah yang logis dalam menuntaskan masalah. Pada dikala kita mempunyai masalah, maka kita harus sanggup menuntaskan persoalan tersebut dengan menggunakan banyak sekali langkah yang logis.Contoh dari algoritma sederhana dalam kehidupan konkret yakni memasak air. Hal-hal yang dilakukan untuk memasak air : siapkan panci, masukkan air ke dalam panci, tutup panci tersebut, letakkan panci di atas kompor, hidupkan kompor dengan api sedang, bila air sudah mendidih, matikan kompor, lalu angkat panci dari kompor. Langkah-langkah untuk memasak air tersebut yakni algoritma memasak air. Cara memasak air tersebut mempunyai urutan langkah-langkah yang logis.
Dalam ilmu matematika dan komputer, pengertian algoritma yakni suatu mekanisme dari langkah demi langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, budi sehat otomatis, serta pemrosesan data. Pengertian algoritma merupakan suatu metode yang efektif untuk diekspresikan sebagai rangkaian yang terbatas dari instruksi-instruksi yang telah dijelaskan dengan baik dalam menghitung fungsi.
Susunan algoritma dimulai dari kondisi awal dan input awal, aba-aba tersebut yakni aba-aba yang mendeskripsikan komputasi yang apabila itu dihukum dan lalu diproses dengan melewati beberapa urutan kondisi terbatas yang terdefinisi dengan baik, sehingga menghasilkan output atau keluaran serta berhenti dikondisi tamat yang telah ditentukan.
Algoritma sangat dibutuhkan untuk keperluan mengolah data di komputer. Dalam sistem komputer, pengertian algoritma yakni nalar yang dibentuk dengan menggunakan software oleh para pembuat perangkat lunak biar menciptakan software menjadi lebih bagus. Algoritma berbeda dengan Logaritma. Logaritma yakni operasi di ilmu matematika untuk menghitung kebalikan eksponen dari perpangkatan.
Kata Algoritma ditemukan oleh seorang matematikawan dari persia kala ke-9 yang berjulukan Abu Abdullah Muhammad Ibnu Musa Al-Khwarizmi. Dari masa ke masa, kata algoritma mulai berkembang di kala ke 18.
Berikut salah satu teladan algoritma :
Algoritma untuk menghitung nilai x dari persamaan x = 7y + 9 :
1) Memulai
2) Menentukan nilai y
3) Menghitung nilai x = 7y + 9
4) Menyelesaikan
Bentuk Dasar Algoritma
Algoritma mempunyai tiga bentuk dasar, antara lain :- Algoritma Sekuensial (Sequence Algorithm) Algoritma ini merupakan algoritma yang langkah-langkahnya secara urut mulai dari awal hingga akhir. Bentuk dari algoritma sekuensial mirip algoritma memasak air. Langkah demi langkah yang dijalankannya harus urut mulai dari atas hingga bawah.
- Algoritma Perulangan (Looping Algorithm) Algoritma perulangan yakni algoritma yang menjalankan langkah-langkah tertentu secara berulang-ulang (looping). Pada persoalan yang dihadapi, ada pula sebuah langkah tertentu harus dilakukan secara berulang-ulang. Contohnya yakni algoritma menjemur pakaian:
- Algoritma Percabangan atau Bersyarat (Conditional Algorithm) Conditional algorithm merupakan algoritma yang menjalankan langkah berikutnya bila terdapat syarat yang sudah terpenuhi. Salah satu teladan algoritma bersyarat :
1) Siapkan jemuran.
2) Ambil 1 pakaian yang nantinya dijemur.
3) Peras pakaian tersebut.
4) Letakkan pakaian yang sudah diperas pada tiang jemuran.
5) Ulangi langkah dari 2 hingga 4 hingga pakaian yang disiapkan habis .
Dari algoritma di atas, diketahui bahwa dari langkah 2 hingga 4 harus dilakukan secara berulang-ulang hingga pakaian yang disiapkan habis.
1) Siapkan panci.
2) Masukkan air secukupnya.
3) Tutup panci.
4) Letakkan panci di atas kompor.
5) Hidupkan kompor.
6) Apabila air sudah mendidih, matikan kompor.
7) Angkat panci dari kompor.
Algoritma bersyarat terdapat pada langkah ke-6. Apabila air sudah mendidih, matikan kompor. Sehingga apabila air belum mendidih, maka kompor tidak dimatikan.
Merancang Algoritma yang Baik
Donald E. Knuth beropini bahwa dari pengertian algoritma sanggup diketahui bahwa suatu algoritma yang baik yakni algoritma yang mempunyai kriteria antara lain :- Masukan (Input) Algoritma mempunyai input 0 (nol) atau lebih
- Keluaran (Output) Algoritma harus sanggup menghasilkan atau mengeluarkan minimal satu output.
- Terbatas (Finite) Algoritma harus berhenti sesudah melaksanakan langkah-langkah yang sudah diperlukan.
- Pasti (Definite) Algoritma harus terang kapan dimulai dan berakhir. Memiliki tujuan yang jelas. Setiap langkah-langkahnya harus dijelaskan dengan jelas.
- Efisien Membuat algoritma haruslah efisien. Misalnya bila terdapat langkah mirip mencari hasil 1 + 0, maka langkah tersebut tidak efisien. Karena bilangan apapun itu bila ditambah dengan nol maka jadinya yakni tetap bilangan itu sendiri. Sehingga langkah mirip itu tidak dimasukkan ke sebuah algoritma.
Klasifikasi Algoritma
Salah satu cara mengklasifikasikan algoritma yakni dengan cara implementasi.- Rekursi atau iterasi Algoritma rekursi yakni salah satu algoritma yang memanggil dirinya sendiri secara berulang-ulang (looping) hingga pada kondisi tertentu sanggup tercapai. Algoritma rekursi yakni metode umum di dalam pemrograman fungsional. Algoritma iteratif menggunakan konstruksi berulang mirip pengulangan dan terkadang terdapat struktur data tambahan. Terdapat beberapa permasalahan secara alami yang cocok dengan satu implementasi atau yang lainnya. Contoh : Menara Hanoi dikenal dengan implementasi rekursif. Pada setiap versi rekursif terdapat kesamaan (bisa lebih ataupun kurang kompleks) dengan versi iteratif dan sebaliknya.
- Logical Algoritma dilihat sebagai nalar deduksi terkontrol. Pernyataan ini sanggup untuk diekspresikan sebagai : Algoritma = kontrol + logika. Komponen nalar mengekspresikan aksioma yang digunakan dalam komputasi dan komponen kontrol untuk memilih cara-cara deduksi yang digunakan pada aksioma. Hal tersebut merupakan dasar paradigma pemrograman logika. Dalam pemrograman, nalar murni komponen kontrol yakni tetap dan juga algoritma yang ditentukan dengan menunjukkan hanya komponen logikanya. Daya tarik pendekatan logical yakni semantik elegan, suatu perubahan yang ada pada aksioma mempunyai perubahan dalam algoritma.
- Serial, paralel atau terdistribusi Biasanya algoritma menjalankan satu aba-aba algoritma dalam setiap waktu. Komputer tersebut disebut dengan komputer serial. Rancangan algoritma yang digunakan pada lingkungan tersebut yakni algoritma serial, terbalik dengan algoritma terdistribusi atau algoritma paralel. Sedangkan algoritma paralel menggunakan arsitektur komputer yang terdapat beberapa prosesor-prosesor yang sanggup mengerjakan persoalan pada waktu yang sama. Algoritma terdistribusi menggunakan banyak mesin yang sanggup terhubung ke jaringan.
- Deterministik atau non-deterministik Algoritma deterministik yakni algoritma yang sanggup menuntaskan persoalan dengan keputusan sempurna disetiap langkah-langkah. Algoritma non-deterministik sanggup untuk menuntaskan persoalan lewat penerkaan walaupun penerkaan tersebut biasanya lebih akurat dengan menggunakan heuristik.
- Tepat atau perkiraan Jika terdapat banyak algoritma yang sanggup hingga ke solusi yang tepat, terdapat juga algoritma asumsi yang mencari asumsi terdekat dengan solusi benarnya. Adanya asumsi tersebut sanggup menggunakan taktik deterministik atau acak. Algoritma yang mirip itu mempunyai nilai lebih untuk banyak permasalahan yang sulit.
- Algoritma quantum Berjalan pada model realistik dari komputasi quantum. Istilah tersebut biasanya digunakan bagi algoritma yang intinya quantum atau menggunakan banyak sekali fitur penting dari komputasi quantum mirip superposisi quantum atau belitan quantum.
Algoritma terdistribusi atau paralel membagi permasalahan-permasalahan ke banyak submasalah simetris ataupun asimetris serta mengumpulkan hasil yang didapat kembali. Konsumsi sumber pada algoritma tersebut tidak hanya ada pada perputaran prosesor tapi terdapat daya komunikasi antara prosesor. Algoritma pengurutan sanggup untuk diparalelkan dengan efisien, namun terdapat biaya komunikasi yang mahal. Algoritma iteratif biasanya sanggup diparalelkan. Ada juga permasalahan yang tidak ada pada algoritma paralelnya yang disebut dengan permasalahan serial lahiriah.
Contoh Algoritma
- Menentukan Apakah Bilangan Tersebut Ganjil atau Genap Bilangan bundar yaitu 0, 1, -1, 2, dst, sedangkan bilangan orisinil 1, 2, 3, 4, 5, dst. Bilangan bundar dan bilangan orisinil sering digunakan dalam berhitung. Himpunan bilangan bundar dalam buku teks aljabar biasanya dinyatakan dengan lambang "Z" serta himpunan bilangan orisinil dinyatakan dengan lambang "N". Algoritma yang digunakan untuk memilih apakah bilangan tersebut ganjil atau genap disajikan dengan flowchart mirip dibawah ini : Bilangan genap yakni bilangan bundar yang sanggup habis bila dibagi 2 (dua). Bilangan ganjil yakni bilangan bundar yang tidak habis bila dibagi 2 (dua).
- Menghitung Keliling dan Luas Lingkaran Lingkaran yakni himpunan dari semua titik-titik yang ada pada bidang dalam jarak tertentu dan disebut dengan jari-jari dari titik tertentu yang disebut dengan titik pusat. Lingkaran yakni teladan dari kurva tertutup sederhana, lingkaran membagi bidang menjadi dua bab yaitu bab luar dan dalam. Adapaun algoritma untuk menghitung keliling dan luas lingkaran disajikan dengan flowchart mirip dibawah ini : Baca juga artikel mengenai cara menghitung luas persegi.
- Menampilkan Bilangan Ganjil Diantara 10 hingga 30 Bilangan ganjil yang terletak diantara 10 dan 30 yakni bilangan 11,13,15, dan seterusnya. Namun yang akan ditampilkan kecuali bilangan 21 dan 27. Sehingga output/keluaran yang diharapkan dari algoritma tersebut yaitu bilangan ganjil antara 10 hingga 30 kecuali bilangan 21 dan 27. Algoritma yang digunakan untuk menampilkan bilangan ganjil antara 10 hingga 30 kecuali bilangan 21 dan 27 sanggup disajikan dengan flowchart mirip dibawah ini :
- Algoritma tahun Kabisat Tahun kabisat yakni tahun yang mempunyai embel-embel 1 hari yang bertujuan supaya kalender sanggup sinkron dengan animo tahunan serta keadaan astronomi. Bulan Februari mempunyai 29 hari dikala tahun kabisat. Adapun tahun kabisat yakni tahun yang sanggup dibagi dengan 4. Algoritma yang digunakan untuk memilih tahun kabisat sanggup disajikan dengan flowchart dibawah ini :
- Menampilkan Bilangan Genap Mulai Angka 2 hingga n, Kecuali Bilangan Genap Kelipatan 4 Bilangan genap yakni bilangan bundar sanggup habis dibagi 2 (dua). Deret yang akan ditampilkan dari algoritma ini yakni deret dari bilangan genap dari 2 hingga ke n, kecuali bilangan genap kelipatan 4. Algoritma tersebut sanggup disajikan dengan flowchart mirip dibawah ini :
- Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon Terdapat algoritma yang bertujuan untuk menghitung jumlah biaya yang harus dibayar oleh si pembeli sesudah mendapat diskon 10% dengan syarat jumlah total pembelian tersebut Rp.1.500.000,- Algoritma yang sanggup digunakan untuk menghitung besaran biaya tersebut sanggup disajikan dengan flowchart mirip dibawah ini : Jumlah barang mempunyai sifat dinamik sesuai dengan input dari user. Jika jumlah total harga tersebut kurang 1500000 maka tidak mendapat diskon 10%.
- Mencari Maks dan Min dari Deret Bilangan Algoritma yang bertujuan untuk mencari nilai maks dan min dari n deret bilangan yang di input oleh user. Algoritma tersebut disajikan dengan flowchart mirip dibawah ini :
- Kalkulator Sederhana dari 2 Bilangan Algoritma yang sanggup digunakan sebagai kalkulator sederhana untuk operasi-operasi sederhana mirip penjumlahan, perkalian, pembagian, dan pengurangan. Kalkulator sederhana tersebut hanya sanggup melaksanakan perhitungan dari dua bilangan yang di input oleh user. Algoritma yang sanggup digunakan untuk menghitung 2 bilangan digambarkan dengan flowchart mirip dibawah ini :
- Menghitung Beberapa Angka dari Bilangan Terdapat algoritma yang sanggup menghitung beberapa angka dari suatu bilangan yang dimasukkan oleh user. Adapun algoritma untuk menghitung beberapa angka dari bilangan disajikan dengan flowchart mirip dibawah ini :
- Membalik Sebuah Kalimat Algoritma juga sanggup digunakan untuk menampilkan kalimat namun dengan urutan yang terbalik. Misalkan "gopengertian" dibalik menjadi "naitregnepog". Struktur data yang digunakan berjulukan Stack. Untuk membalik bilangan, karakter dari kalimat di input dalam stack dengan menggunakan metode Push. Setelah stack terisi, maka output kembali dengan menggunakan metode Pop.
Pada algoritma membalik kalimat, adanya penggunaan struktur data stack yang diimplementasikan ke array. Dalam implementasi ke array tersebut, kita terlebih dahulu harus menyiapkan array yang mempunyai panjang yang sama dengan jumlah karakter yang terdapat dalam kalimat yang dibalik. Seperti gambar flowchart dibawah ini, terdapat tiap karakter dari kalimat yang dimasukkan pada array dengan index ke-0 hingga ke-n dengan menggunakan metode push. Kemudian karakter tersebut akan mengeluarkan kata mulai dari index ke-n hingga index ke-0.
Itulah pengertian algoritma, pembagian terstruktur mengenai algoritma, bentuk dasar algoritma, dan teladan algoritma. Algoritma sangat dibutuhkan untuk mengolah data pada komputer.