Berbicara mengenai algoritma, hal yang pertama kali muncul di benak penulis yaitu dunia pemrograman. Ya, kebanyakan orang memang mengenal algoritma hanya sebagai salah satu bab dari dunia pemrograman komputer. Padahal, jikalau diteliti lebih dalam lagi, algoritma ternyata mempunyai cakupan yang jauh lebih kompleks dibandingkan apa yang ada di pikiran kebanyakan orang.
Istilah algoritma normalnya memang banyak digunakan dalam kegiatan pemrograman komputer. Bagi orang – orang yang berasal dari latar belakang dunia pemrograman komputer, istilah algoritma tentunya bukanlah isitilah yang gila di indera pendengaran mereka. Akan tetapi, bagi kebanyakan orang awam yang tidak berasal dari dunia komputer, istilah ini tentunya bukanlah istilah yang familiar di indera pendengaran mereka.
Lantas apa sih sebetulnya algoritma itu?
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 bab sistem di atas, sebuah komputer tidak akan sanggup dioperasikan sama sekali.
“algorita yaitu suatu metode khusus untuk menuntaskan suatu persoalan”. (Baca Juga: Kelebihan dan Kekurangan Matrikulasi)
2. Goodman Hedet Niemi
“algoritma yaitu urutan terbatas dari operasi-operasi terdefinisi dengan baik, yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menuntaskan suatu masalah”. (Baca Juga: Manfaat Komputer dalam Bidang Industri)
3. Donald E. Knuth
“algoritma yaitu sekumpulan aturan-aturan berhingga yang menawarkan sederetan operasi-operasi untuk menuntaskan suatu jenis perkara yang khusus”. (Baca Juga: Pengertian Algoritma Brute Force dan Greedy)
4. Rinaldi Munir
“algoritma yaitu urutan langkah-langkah logis penyelesaian perkara yang disusun secara sistematis”.
5. Seymour Lipschutz, Ph.D dan Marc Lipson, Ph.D.
“algoritma yaitu suatu daftar langkah-demi-langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan terang yang digunakan untuk permasalahan tertentu”. (Baca Juga: Manfaat dan Software Pendukungnya)
6. David Bolton
“algoritma yaitu deskripsi dari suatu mekanisme yang berakhir dengan sebuah hasil”.
7. Andrey Andreyevich Markov
“algoritma yaitu hal umum untuk dipahami sebagai suatu keputusan yang sempurna untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan”. (Baca Juga: Jenis Sistem Operasi Komputer)
8. Stone dan Knuth
“algoritma yaitu suatu seperangkat hukum yang sempurna mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap hukum yang efektif, terang hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas”.
9. Minsky
“algoritma yaitu 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, sanggup disimpulkan bahwa algoritma adalah:
“langkah-langkah berupa formasi operasi yang disusun secara logis dan sistematis untuk menuntaskan suatu perkara dan mencapai tujuan tertentu”
Tanpa algoritma yang tepat, susunan sintax atau pun baris – baris kode bahasa pemrograman yang telah dibentuk tidak akan ada artinya sama sekali. Hal ini dikarenakan seluruh baris – baris kode yang dibentuk dengan menggunakan tiga macam bahasa pemrograman di atas diatur sepenuhnya oleh algoritma yang dibuat. Dari mulai kegiatan pembukaan software aplikasi hingga ke banyak sekali macam kegiatan kerja yang digunakan oleh penggunanya, semuanya diatur oleh algoritma pemrograman yang dibentuk 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 menuntaskan suatu permasalahan tertentu, sedangkan logaritma merupakan kebalikan dari eksponensial atau pun pemangkatan. Meskipun berbeda, dalam beberapa perkara pemrograman, logaritma sering kali digunakan sebagai bab dari sebuah algoritma pemrograman.
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 mirip algoritma memasak air. Langkah demi langkah yang dijalankan harus urut dari atas hingga bawah.
Algoritma Perulangan (Looping Algorithm)
Looping algorithm atau algoritma perulangan merupakan suatu algoritma yang menjalankan beberapa langkah tertentu secara berulang-ulang atau looping. Pada perkara yang kita hadapi, ada pula sebuah langkah yang harus kita lakukan secara berulang-ulang. Contoh dari algoritma looping ini yaitu algoritma menjemur pakaian:
Dari algoritma di atas, sanggup diketahui bahwa dari langkah 2 hingga 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 sanggup dipenuhi. Berikut salah satu pola dari algoritma bersyarat :
Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air sudah mendidih, kemudian matikan kompor. Sehingga apabila air tersebut belum mendidih, maka kompor tidak dimatikan.
Masukan (Input)
Algoritma mempunyai input 0 (nol) atau lebih
Keluaran (Output)
Algoritma harus menghasilkan atau mengeluarkan minimal 1 output.
Terbatas (Finite)
Algoritma harus berhenti sesudah melaksanakan langkah-langkah yang diperlukan.
Pasti (Definite)
Algoritma harus terang kapan dimulai dan berakhir. Tujuan dari algoritma harus jelas. Setiap langkah-langkah harus dijelaskan dengan jelas.
Efisien
Membuat sebuah algoritma haruslah efisien. Adanya langkah mirip mencari hasil 1 + 0 tidak efisien. Hal ini alasannya yaitu bilangan apapun itu jikalau ditambah dengan nol maka akibatnya ialah bilangan itu sendiri. Sehingga adanya langkah mirip itu tidak perlu dimasukkan ke dalam sebuah algoritma.
Algoritma sanggup disajikan ke dalam 2 bentuk, yaitu bentuk goresan pena atau bahasa dan bentuk gambar. Penyajian algoritma dalam bentuk bahasa atau goresan pena harus menggunakan sebuah bahasa yang sanggup untuk dimengerti insan dalam menciptakan langkah-langkah dari algoritma itu sendiri. Penyajian algoritma dalam bentuk tulisan/bahasa sanggup dilakukan dengan menggunakan 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.
Rekursi atau iterasi
Algoritma rekursi ialah suatu algoritma yang memanggil dirinya sendiri secara berulang kali (looping) hingga pada kondisi tertentu sanggup tercapai. Rekursi merupakan suatu metode umum dalam pemrograman fungsional. Algoritma iteratif menggunakan konstruksi berulang mirip pada pengulangan dan terkadang terdapat struktur data tambahan. Beberapa permasalahan secara alami sanggup 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 sanggup dilihat sebagai sebuah logika deduksi terkontrol. Pernyataan ini sanggup diekspresikan sebagai: Algoritma = kontrol + logika. Komponen logika yang mengekspresikan aksioma sanggup digunakan dalam komputasi serta komponen kontrol dalam memilih cara-cara deduksi yang digunakan pada aksioma. Hal tersebut yaitu dasar dari paradigma pemrograman logika. Dalam pemrograman, logika murni komponen kontrol ialah tetap serta algoritma yang ditentukan dengan menawarkan 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 arahan algoritma setiap waktu. Komputer tersebut sanggup 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 sanggup mengerjakan perkara 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 sanggup untuk diparalelkan secara efisien, namun terdapat biaya komunikasi yang sangat mahal. Algoritma iteratif pada umumnya sanggup 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 sanggup menuntaskan masalah-masalah dengan keputusan sempurna disetiap langkah-langkah dari sebuah algoritma. Algoritma non-deterministik sanggup menuntaskan masalah-masalah lewat adanya penerkaan walaupun penerkaan tersebut pada umumnya lebih akurat dengan menggunakan heuristik.
Tepat atau perkiraan
Jika terdapat banyak algoritma sanggup hingga ke solusi yang tepat, ada juga algoritma asumsi yang mencari asumsi terdekat dengan solusi benarnya. Perkiraan tersebut sanggup menggunakan taktik deterministik ataupun acak. Algoritma yang mirip itu sanggup mempunyai nilai lebih untuk banyak permasalahan yang sulit.
Algoritma quantum
Berjalan pada model realistik dari komputasi quantum. Istilah tersebut pada umumnya digunakan bagi algoritma yang intinya quantum, ataupun menggunakan fitur-fitur penting dari komputasi quantum mirip belitan quantum atau superposisi quantum.
Terdapat bilangan yang berjulukan bilang lingkaran yaitu 0, 1, -1, 2, dst serta bilangan orisinil 1, 2, 3, 4, 5, dst. Kedua jenis bilangan tersebut sering digunakan dalam berhitung. Himpunan bilangan-bilangan lingkaran dalam buku teks aljabar pada umumnya dinyatakan dengan lambang "Z" dan himpunan bilangan-bilangan orisinil dinyatakan dengan lambang "N". Algoritma guna memilih apakah bilangan tersebut ganjil atau genap sanggup disajikan dengan flowchart mirip dibawah ini :
Bilangan genap merupakan sebuah bilangan lingkaran yang akan habis atau tidak mempunyai sisa jikalau dibagi 2 (dua). Bilangan ganjil merupakan sebuah bilangan lingkaran 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 sanggup disebut titik pusat. Lingkaran merupakan pola dari kurva tertutup sederhana, lingkaran membagi bidang menjadi bab luar dan dalam. Algoritma menghitung keliling serta luas lingkaran sanggup disajikan dengan flowchart mirip dibawah ini :
Menampilkan Bilangan Ganjil Diantara 10 hingga 30
Bilangan ganjil yang terletak diantara 10 dan 30 11,13,15, dan seterusnya. Namun, yang akan ditampilkan kecuali bilangan 21 dan 27. Makara output yang diharapkan dari algoritma tersebut yaitu bilangan ganjil 10 hingga 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 mempunyai komplemen 1 hari dan bertujuan semoga kalender sanggup sinkron dengan demam isu tahunan dan keadaan astronomi. Bulan Februari mempunyai 29 hari pada dikala tahun kabisat. Tahun yang sanggup untuk dibagi dengan 4 yaitu tahun kabisat. Algoritma guna memilih tahun kabisat jikalau disajikan dengan flowchart mirip dibawah ini :
Algoritma tahun Kabisat
Menampilkan Bilangan Genap Mullai dari Angka 2 hingga n, Kecuali Bilangan Genap yang Kelipatan 4
Bilangan genap merupakan sebuah bilangan-bilangan lingkaran yang habis jikalau 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 sanggup digambarkan dengan flowchart mirip dibawah ini :
Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Ada juga algoritma yang sanggup menghitung jumlah dari biaya yang harus dibayar oleh sang pembeli sesudah mendapat sebuah diskon 10% dengan syarat jumlah dari total pembelian tersebut Rp.1.500.000,- Algoritma guna menghitung besaran biaya tersebut sanggup digambarkan dengan flowchart mirip dibawah ini :
Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Jumlah barang mempunyai sifat yang dinamik sesuai dengan input atau masukkan dari user. Apabila jumlah total dari harga tersebut kurang 1500000 maka tidak mendapat 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 sanggup disajikan dengan flowchart mirip 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 sanggup melaksanakan perhitungan dari 2 bilangan yang diinput oleh user. Algoritma guna menghitung 2 bilangan sanggup digambarkan dengan flowchart mirip 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 perihal pengertian algoritma, bahwa algoritma juga sanggup untuk menampilkan sebuah kalimat namun dengan urutan yang terbalik. Misalkan "woocara" dibalik menjadi "aracoow". Struktur data yang digunakan ialah Stack. Untuk membalik sebuah bilangan, aksara dari kalimat kita input dalam stack dengan menggunakan metode Push. Setelah stack tersebut sudah terisi, maka output kembali dengan menggunakan 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 mempunyai panjang yang sama dengan jumlah aksara yang ada dalam kalimat yang akan dibalik tersebut. Pada gambar flowchart dibawah ini, terdapat tiap aksara dari kalimat yang diinput pada array dengan index ke-0 hingga ke-n dengan menggunakan metode push.
Pencarian yang paling banyak dicari
Pengertian Algoritma, Bentuk Dasar Algoritma dan Contoh Algoritma Lengkap |
Lantas apa sih sebetulnya algoritma itu?
Definisi dan Pengertian Algoritma
Pengertian algoritma intinya yaitu susunan logis dan sistematis yang digunakan untuk memecahkan atau pun menuntaskan suatu permasalahan tertentu. Jadi, setiap susunan logis yang diurutkan berdasarkan sistematika tertentu yang digunakan untuk menuntaskan permasalahan sanggup digolongkan sebagai sebuah algoritma. Susunan atau pun langkah – langkah memasak mie intan misalnya, langkah – langkah sistematis yang digunakan untuk memasak mie instan sanggup digolongkan ke dalam logaritma, alasannya yaitu menuntaskan 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 bab sistem di atas, sebuah komputer tidak akan sanggup dioperasikan sama sekali.
Pengertian berdasarkan para Ahli
1. Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi“algorita yaitu suatu metode khusus untuk menuntaskan suatu persoalan”. (Baca Juga: Kelebihan dan Kekurangan Matrikulasi)
2. Goodman Hedet Niemi
“algoritma yaitu urutan terbatas dari operasi-operasi terdefinisi dengan baik, yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menuntaskan suatu masalah”. (Baca Juga: Manfaat Komputer dalam Bidang Industri)
3. Donald E. Knuth
“algoritma yaitu sekumpulan aturan-aturan berhingga yang menawarkan sederetan operasi-operasi untuk menuntaskan suatu jenis perkara yang khusus”. (Baca Juga: Pengertian Algoritma Brute Force dan Greedy)
4. Rinaldi Munir
“algoritma yaitu urutan langkah-langkah logis penyelesaian perkara yang disusun secara sistematis”.
5. Seymour Lipschutz, Ph.D dan Marc Lipson, Ph.D.
“algoritma yaitu suatu daftar langkah-demi-langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan terang yang digunakan untuk permasalahan tertentu”. (Baca Juga: Manfaat dan Software Pendukungnya)
6. David Bolton
“algoritma yaitu deskripsi dari suatu mekanisme yang berakhir dengan sebuah hasil”.
7. Andrey Andreyevich Markov
“algoritma yaitu hal umum untuk dipahami sebagai suatu keputusan yang sempurna untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan”. (Baca Juga: Jenis Sistem Operasi Komputer)
8. Stone dan Knuth
“algoritma yaitu suatu seperangkat hukum yang sempurna mendefinisikan urutan operasi hingga sedemikian rupa sehingga setiap hukum yang efektif, terang hingga sedemikian rupa sehingga urutan berakhir dalam waktu yang terbatas”.
9. Minsky
“algoritma yaitu 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, sanggup disimpulkan bahwa algoritma adalah:
“langkah-langkah berupa formasi operasi yang disusun secara logis dan sistematis untuk menuntaskan suatu perkara dan mencapai tujuan tertentu”
Algoritma dalam Dunia Pemrograman
Dalam dunia pemrograman, algoritma digunakan untuk membangun banyak sekali macam software yang digunakan pada perangkat komputer. Penerapan sistem algoritma dalam pembuatan software biasanya dilakukan melalui beberapa jenis bahasa pemrograman mirip 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 dibentuk tidak akan ada artinya sama sekali. Hal ini dikarenakan seluruh baris – baris kode yang dibentuk dengan menggunakan tiga macam bahasa pemrograman di atas diatur sepenuhnya oleh algoritma yang dibuat. Dari mulai kegiatan pembukaan software aplikasi hingga ke banyak sekali macam kegiatan kerja yang digunakan oleh penggunanya, semuanya diatur oleh algoritma pemrograman yang dibentuk 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 menuntaskan suatu permasalahan tertentu, sedangkan logaritma merupakan kebalikan dari eksponensial atau pun pemangkatan. Meskipun berbeda, dalam beberapa perkara pemrograman, logaritma sering kali digunakan sebagai bab 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 mirip algoritma memasak air. Langkah demi langkah yang dijalankan harus urut dari atas hingga bawah.
Algoritma Perulangan (Looping Algorithm)
Looping algorithm atau algoritma perulangan merupakan suatu algoritma yang menjalankan beberapa langkah tertentu secara berulang-ulang atau looping. Pada perkara yang kita hadapi, ada pula sebuah langkah yang harus kita lakukan secara berulang-ulang. Contoh dari algoritma looping ini yaitu algoritma menjemur pakaian:
- Siapkan jemuran.
- Ambil satu pakaian yang nantinya akan dijemur.
- Peras pakaian tersebut terlebih dahulu.
- Letakkan pakaian tersebut pada tiang jemuran.
- Ulangi langkah dari 2 hingga 4 hingga pakaian habis.
Dari algoritma di atas, sanggup diketahui bahwa dari langkah 2 hingga 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 sanggup dipenuhi. Berikut salah satu pola dari algoritma bersyarat :
- Siapkan panci.
- Masukkan air secukupnya ke dalam panci.
- tutup panci tersebut.
- letakkan panci tersebut di atas kompor.
- Hidupkan kompor.
- Apabila air sudah mendidih, kemudian matikan kompor.
- Angkat panci tersebut dari kompor.
Algoritma bersyarat atau contional algorithm terdapat pada langkah ke 6. Apabila air sudah mendidih, kemudian matikan kompor. Sehingga apabila air tersebut belum mendidih, maka kompor tidak dimatikan.
Merancang Algoritma yang Baik
Menurut Donald E. Knuth, dari pengertian algoritma diatas sanggup 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 sesudah melaksanakan langkah-langkah yang diperlukan.
Pasti (Definite)
Algoritma harus terang kapan dimulai dan berakhir. Tujuan dari algoritma harus jelas. Setiap langkah-langkah harus dijelaskan dengan jelas.
Efisien
Membuat sebuah algoritma haruslah efisien. Adanya langkah mirip mencari hasil 1 + 0 tidak efisien. Hal ini alasannya yaitu bilangan apapun itu jikalau ditambah dengan nol maka akibatnya ialah bilangan itu sendiri. Sehingga adanya langkah mirip itu tidak perlu dimasukkan ke dalam sebuah algoritma.
Algoritma sanggup disajikan ke dalam 2 bentuk, yaitu bentuk goresan pena atau bahasa dan bentuk gambar. Penyajian algoritma dalam bentuk bahasa atau goresan pena harus menggunakan sebuah bahasa yang sanggup untuk dimengerti insan dalam menciptakan langkah-langkah dari algoritma itu sendiri. Penyajian algoritma dalam bentuk tulisan/bahasa sanggup dilakukan dengan menggunakan 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 sanggup tercapai. Rekursi merupakan suatu metode umum dalam pemrograman fungsional. Algoritma iteratif menggunakan konstruksi berulang mirip pada pengulangan dan terkadang terdapat struktur data tambahan. Beberapa permasalahan secara alami sanggup 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 sanggup dilihat sebagai sebuah logika deduksi terkontrol. Pernyataan ini sanggup diekspresikan sebagai: Algoritma = kontrol + logika. Komponen logika yang mengekspresikan aksioma sanggup digunakan dalam komputasi serta komponen kontrol dalam memilih cara-cara deduksi yang digunakan pada aksioma. Hal tersebut yaitu dasar dari paradigma pemrograman logika. Dalam pemrograman, logika murni komponen kontrol ialah tetap serta algoritma yang ditentukan dengan menawarkan 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 arahan algoritma setiap waktu. Komputer tersebut sanggup 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 sanggup mengerjakan perkara 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 sanggup untuk diparalelkan secara efisien, namun terdapat biaya komunikasi yang sangat mahal. Algoritma iteratif pada umumnya sanggup 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 sanggup menuntaskan masalah-masalah dengan keputusan sempurna disetiap langkah-langkah dari sebuah algoritma. Algoritma non-deterministik sanggup menuntaskan masalah-masalah lewat adanya penerkaan walaupun penerkaan tersebut pada umumnya lebih akurat dengan menggunakan heuristik.
Tepat atau perkiraan
Jika terdapat banyak algoritma sanggup hingga ke solusi yang tepat, ada juga algoritma asumsi yang mencari asumsi terdekat dengan solusi benarnya. Perkiraan tersebut sanggup menggunakan taktik deterministik ataupun acak. Algoritma yang mirip itu sanggup mempunyai nilai lebih untuk banyak permasalahan yang sulit.
Algoritma quantum
Berjalan pada model realistik dari komputasi quantum. Istilah tersebut pada umumnya digunakan bagi algoritma yang intinya quantum, ataupun menggunakan fitur-fitur penting dari komputasi quantum mirip belitan quantum atau superposisi quantum.
Contoh Algoritma
Menentukan Apakah Bilangan Tersebut Ganjil atau GenapTerdapat bilangan yang berjulukan bilang lingkaran yaitu 0, 1, -1, 2, dst serta bilangan orisinil 1, 2, 3, 4, 5, dst. Kedua jenis bilangan tersebut sering digunakan dalam berhitung. Himpunan bilangan-bilangan lingkaran dalam buku teks aljabar pada umumnya dinyatakan dengan lambang "Z" dan himpunan bilangan-bilangan orisinil dinyatakan dengan lambang "N". Algoritma guna memilih apakah bilangan tersebut ganjil atau genap sanggup disajikan dengan flowchart mirip dibawah ini :
Bilangan genap merupakan sebuah bilangan lingkaran yang akan habis atau tidak mempunyai sisa jikalau dibagi 2 (dua). Bilangan ganjil merupakan sebuah bilangan lingkaran 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 sanggup disebut titik pusat. Lingkaran merupakan pola dari kurva tertutup sederhana, lingkaran membagi bidang menjadi bab luar dan dalam. Algoritma menghitung keliling serta luas lingkaran sanggup disajikan dengan flowchart mirip dibawah ini :
Menampilkan Bilangan Ganjil Diantara 10 hingga 30
Bilangan ganjil yang terletak diantara 10 dan 30 11,13,15, dan seterusnya. Namun, yang akan ditampilkan kecuali bilangan 21 dan 27. Makara output yang diharapkan dari algoritma tersebut yaitu bilangan ganjil 10 hingga 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 mempunyai komplemen 1 hari dan bertujuan semoga kalender sanggup sinkron dengan demam isu tahunan dan keadaan astronomi. Bulan Februari mempunyai 29 hari pada dikala tahun kabisat. Tahun yang sanggup untuk dibagi dengan 4 yaitu tahun kabisat. Algoritma guna memilih tahun kabisat jikalau disajikan dengan flowchart mirip dibawah ini :
Algoritma tahun Kabisat
Menampilkan Bilangan Genap Mullai dari Angka 2 hingga n, Kecuali Bilangan Genap yang Kelipatan 4
Bilangan genap merupakan sebuah bilangan-bilangan lingkaran yang habis jikalau 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 sanggup digambarkan dengan flowchart mirip dibawah ini :
Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Ada juga algoritma yang sanggup menghitung jumlah dari biaya yang harus dibayar oleh sang pembeli sesudah mendapat sebuah diskon 10% dengan syarat jumlah dari total pembelian tersebut Rp.1.500.000,- Algoritma guna menghitung besaran biaya tersebut sanggup digambarkan dengan flowchart mirip dibawah ini :
Menghitung Harga yang Dibayar Setelah Mendapatkan Sebuah Diskon
Jumlah barang mempunyai sifat yang dinamik sesuai dengan input atau masukkan dari user. Apabila jumlah total dari harga tersebut kurang 1500000 maka tidak mendapat 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 sanggup disajikan dengan flowchart mirip 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 sanggup melaksanakan perhitungan dari 2 bilangan yang diinput oleh user. Algoritma guna menghitung 2 bilangan sanggup digambarkan dengan flowchart mirip 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 perihal pengertian algoritma, bahwa algoritma juga sanggup untuk menampilkan sebuah kalimat namun dengan urutan yang terbalik. Misalkan "woocara" dibalik menjadi "aracoow". Struktur data yang digunakan ialah Stack. Untuk membalik sebuah bilangan, aksara dari kalimat kita input dalam stack dengan menggunakan metode Push. Setelah stack tersebut sudah terisi, maka output kembali dengan menggunakan 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 mempunyai panjang yang sama dengan jumlah aksara yang ada dalam kalimat yang akan dibalik tersebut. Pada gambar flowchart dibawah ini, terdapat tiap aksara dari kalimat yang diinput pada array dengan index ke-0 hingga ke-n dengan menggunakan 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