Menurut donald e. knuth, sebuah algoritma dikatakan baik jika memenuhi kriteria di bawah ini, kecuali ….

Kriteria Algoritma – Sejauh ini sebetulnya belum ada standarisasi tentang bagaimana menyusun algoritma. Namun pada prinsipnya, kita diberikan kebebasan untuk menyusun bentuk algoritma (algorithm). Kendati begitu, kita pasti memerlukan sebuah kriteria algoritma atau dasar untuk merancang algoritma yang baik dan benar.

Lalu apa kriteria itu? Menurut KBBI, Kriteria adalah ukuran yang menjadi dasar penilaian atau penetapan sesuatu. Dan pada postingan kali ini, kita akan mempelajari apa saja ukuran dasar dari penyusunan algoritma.

Kriteria yang akan dijabarkan diambil dari buku yang ditulis oleh Donald E. Knuth. Beliau adalah seorang ilmuwan komputer, matematikawan dan sudah menulis banyak buku tentang Algoritma. Dan berikut adalah penjabarannya:

Kriteria Penyusunan Algoritma

1. Input (Masukan)

Sebuah Algoritma harus memiliki nol input atau inputan dari pengguna (user). Apa yang dimaksud dengan nol input? Nol input dapat diartikan algoritma atau program tidak mendapat inputan data dari pengguna. Bukan berarti algoritma tidak memiliki masukan sama sekali, tetapi inputan pada algoritma sudah di deklarasikan diawal program.

Contoh :
Program mencari sebuah luas lingkaran yang memiliki rumus phi x jari-jari x jari-jari. Pada program tersebut pengguna hanya menginputkan nilai dari jari-jari tetapi tidak nilai phi. Hal ini dikarenakan nilai phi sudah dideklarasikan pada program yaitu 22/7 atau 3.14

Sedangkan yang dimaksud dengan inputan dari pengguna. Seperti contoh diatas, dimana panjang jari-jari perlu diinputkan agar program dapat berjalan dan memberikan hasil yang diinginkan.

2. Output (Keluaran)

Dalam penyusunan kriteria algoritma yang baik dan benar minimal harus memiliki satu output. Ini karena algoritma mengusung teori IPO (Input-Proses-Output) dimana setiap ada masukan pasti ada proses dan keluarannya.

Output yang dikeluarkan oleh program dapat berbentuk File, Video, teks, audio dan lain sebagainya. Dapat juga output nya sebagai sebuah data yang disimpan di database.

3. Finiteness (Terbatas)

Terbatas disini bukan artinya mempunyai keterbatasan dalam pengembangan algoritma tetapi algoritma yang dijalankan harus mempunyai batas.

Atau bisa diartikan juga suatu program yang dirancang dan dieksekusi haruslah berhenti dan selesai pada output. Program yang buruk adalah program yang mengalami infinite, yaitu semacam program berjalan terus menerus sampai not responding atau bahasa kerennya nge-Hang.

4. Definiteness (Pasti)

Dalam perancangan, program harus memiliki algoritma yang pasti dimana arah dan tujuan yang jelas. Program yang baik adalah program yang memiliki algoritma dengan pernyataan yang jelas seperti kapan mulai dan kapan berakhirnya sebuah progam, tujuan dari program dan output yang jelas.

Pada hal ini cukup diperlukan tingkat ke peka an dalam membangun program (software) guna memperkecil persentasi hasil yang tidak diinginkan.

5. Efisien

Penyusunan kriteria algoritma yang terakhir adalah Efisien. Menurut KBBI (Kamus Besar Bahasa Indonesia), efisien adalah tepat atau sesuai untuk mengerjakan (menghasilkan) seauatu dengan tidak membuang-buang waktu, tenaga dan biaya. Hal ini menandakan bahwa algoritma yang ditulis pada program haruslah efisien.

Bagaimana program yang efisien? Program yang efisien adalah program yang tidak memakan banyak memori dan tidah melakukan hal-hal yang tidak diperlukan selama proses. Lalu kenapa efisien masuk dalam kriteria algoritma yang baik? Karena setiap program akan memakan waktu dalam setiap proses eksekusinya. Jika program mengerjakan hal-hal yang tidak perlu dilakukan, maka bisa dipastikan program tersebut akan berjalan lambat.

Kesimpulan Kriteria Algoritma

Dari kriteria-kriteria algoritma diatas, kita dapat menarik beberapa kesimpulan antara lain :

  • Penyusunan Kriteria Algoritma harus jelas dan logis, fokus terhadap masalah yang harus diselesaikan.
  • Proses yang dijalankan harus jelas (tidak rancu atau mempunyai dua arti) dan mempunyai batasan dimana algoritma akan berakhir.
  • Algoritma haruslah efektif dan efisien untuk menyelesaikan masalah yang ada.

Sekian dari saya, semoga postingan “Kriteria-kriteria Algoritma yang Baik dan Benar” dapat memberikan kita pengetahuan tentang kriteria algoritma lebih dalam lagi. Bila ada kesalahan dalam penulisan mohon dikoreksi, saya menunggu respon mengenai postingan ini dari rekan-rekan semua dapat melalui kolom komentar ataupun email ke . Terima kasih, keep calm and always code programming!!!

Wasallam,

Sumber :

  • Knuth, D. E. 1973. The Art of Computer Programming. Addison-Wesley Published Company.
  • Kamus Besar Bahasa Indonesia. Kriteria. http://kbbi.web.id/kriteria [diakses 1 November 2016]
  • Kamus Besar Bahasa Indonesia. Efisien. http://kbbi.web.id/efisien [diakses 2 November 2016]

AlgoritmaMenurut Donald E. Knuth dalam bukunyaThe Art of ComputerProgramming, sebuah algoritma harus mempunyai 5 ciri penting:1.Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas2.Setiap langkah harus didefinisikan dengan tepat dan tidak berarti dua[ambiguous]. Contoh yang tidak terdefinisikan dengan tepat: “bagilah pdengan beberapa buah bilangan bulat positif”.3.Algoritma memiliki nol atau lebih masukan [input]. Masukan adalahbesaran yang diberikan kepada algoritma untuk diproses4.Algoritma memiliki nol atau lebih keluaran [output]5.Algoritma harus efektif. Setiap langkah harus sederhana sehingga dapatdikerjakan dalam jumlah waktu yang masuk akal.

Program dan PemrogramanAlgoritma baru efektif jika dijalankan oleh sebuah pemroses. Suatupemroses [processor] harus:1.Mengerti setiap langkah dalam algoritma2.Mengerjakan operasi yang bersesuaian dengan langkah tersebutKomputer adalah alat bantu untuk menjalankan perintah-perintah didalam algoritma yang telah dimasukkan ke dalamnya.Agar komputer mengerti perintah yang dimaksudkan, maka perintahtersebut harus ditulis dalam bahasa yang dipahami olehnya. Oleh karenaitu algoritma harus ditulis dalam bahasa khusus, yaitubahasa komputer.Algoritma yang ditulis dengan bahasa komputer disebut denganprogram.Bahasa yang digunakan untuk membuat program komputer disebutbahasa pemrogramanKegiatan merancang dan menulis program disebutpemrogramanDalam pemograman, aktivitas menulis kode program dinamakancoding

Komponen Utama KomputerSecara garis besar, komputer tersusun atas empat komponen utama: pirantimasukan [input], piranti keluaran [output], unit pemroses utama [centralprocessing unit, CPU], dan memoriCPU adalahotakkomputer, yang befungsi mengerjakan operasi-operasidasar. Memori adalah komponen yang berfungsi menyimpan atau mengingatMula-mula program dimasukkan ke dalam memori komputer. Ketikaprogram dieksekusi, setiap perintah di dalam program yang telah tersimpandi dalam memori dikirim ke CPU. Kemudian CPU mengerjakan operasi-operasi yang bersesuaian dengan perintah tersebut.Unit PemrosesUtama [CPU]PirantiKeluaranPirantiMasukanMemori

Bahasa PemrogramanBelajar memrogram tidak sama dengan belajar bahasa pemograman.Belajar memrogram berarti mempelajari metodologi pemecahan masalah,kemudian menuliskan algoritma pemecahan masalah dalam notasitertentuBelajar bahasa pemrograman berarti belajar memakai suatu bahasakomputer, aturan tata bahasanya, instruksi-instruksinya, tata carapengoperasian compilernya dan memanfaatkan instruksi-instruksitersebut untuk membuat program yang ditulis dalam satu bahasa tertentu.Di dalam pemrograman, kita lebih menekankan pada pemecahan masalah.Mula-mula kita memikirkan rancangan pemecahan masalah tanpatergantung pada bahasa pemrograman yang digunakan atau komputeryang menjalankan program itu nanti.

Upload your study docs or become a

Course Hero member to access this document

Upload your study docs or become a

Course Hero member to access this document

End of preview. Want to read all 26 pages?

Upload your study docs or become a

Course Hero member to access this document

Untuk menyelesaikan suatu masalah kita harus menggunakan komputer untuk memudahkannya, namun masalah yang ingin diselesaikan tidak dapat langsung diterima oleh komputer.

Agar komputer dapat menyelesaikan masalah, maka Anda perlu merumuskan langkah-langkah penyelesaian tersebut dalam suatu rangkaian instruksi. Komputerlah yang akan mengerjakan rangkaian instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat, bahkan berulang-ulang tanpa kenal lelah dan bosan.

Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan program. Program “dimasukkan” ke dalam komputer, komputer mengerjakan instruksi di dalam program tersebut, lalu memberikan hasil atau keluaran yang di inginkan.

Tapi untuk memberikan instruksi anda harus membuat suatu program menggunakan bahasa yang dimengerti oleh komputer Sebagaimana dalam kehidupan manusia, kita hanya dapat memberikan perintah kepada orang lain dalam bahasa yang dimengerti olehnya.

Karena komputer adalah mesin, maka program harus ditulis dalam bahasa yang khusus dibuat untuk “berkomunikasi” dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman.

Saat ini, dengan berkembangnya teknik pemrograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung menulis programnya dalam bahasa pemrograman. Orang mulai memikirkan suatu cara penyelesaian masalah yang akan diprogram dengan menekankan pada desain atau rancangan yang mewakili pemecahan masalah tersebut.

Desain ini independen dari bahasa pemrograman yang digunakan dari komputer yang menjalankan program. Desain menyajikan cara berpikir si pemrogram dalam menyelesaikan masalah.Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan langkah-langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma. Di Artikel kali ini kita akan memberikan informasi tentang pengenalan Algoritma: Definisi, Ciri – ciri, dan contohnya.

Mengenal Apa Itu Algoritma ?

Algoritma adalah deretan instruksi yang jelas dalam memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukkan dalam jumlah waktu yang terbatas.

Algoritma yang ditulis dalam bahasa komputer dinamakan program. Bahasa komputer yang digunakan untuk menulis program dinamakan bahasa pemrograman. Orang yang membuat program komputer disebut pemrogram, dan kegiatan merancang dan menulis program disebut pemrograman, serta ada aktivitas menulis kode program dinamakan coding.

Pada pemrograman ditekankan pada pemecahan masalah, rancangan pemecahan masalah berisi urutan langkahlangkah pencapaian solusi ditulis dalam notasi diskriptif [notasi algoritmik]

Kata algorism berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa alKhuwarizmi [al-Khuwarizmi dibaca orang Barat menjadi algorism]. Seorang ilmuwan Persia yang menulis kitab al jabr w’al muqabala yang artinya “Buku pemugaran dan pengurangan” [The Book of Restoration and Reduction].

Perubahan kata dari kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa/lumrah, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan [komputasi] secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma. Berikut definisi dari Algoritma :

  1. Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
  2. Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
  3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.

Baca Juga : Pembaruan Algoritma Google 2020, Yuk Cek Dampaknya!

Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai algoritma. Menurut Donald E. Knuth di dalam bukunya yang berjudul The Art of Computer Programming, algoritma mempunyai lima ciri penting yang meliputi:

Finiteness [keterbatasan], algoritma harus berakhir setelah mengerjakan sejumlah langkah proses. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas [berhingga]. Barisan instruksi yang dibuat dalam suatu urutan tertentu, dimaksudkan agar masalah yang dihadapi dapat diselesaikan. Banyaknya instruksi atau langkah itu haruslah berhingga.

Jika tidak demikian, proses yang dilakukan akan memerlukan waktu yang relatif lebih lama dan diperoleh hasil yang tidak diperlukan atau tidak berhubungan dengan masalah yang ada, bahkan mungkin proses akan terus berlangsung walaupun solusi yang diharapkan telah diperoleh. Hasil akhir yang didapat merupakan solusinya atau informasi tidak ditemukannya solusi.

Dengan kata lain, baik dalam kondisi ada solusi ataupun tidak, proses tetap akan berhenti. Sebagai contoh, tinjau kembali algoritma EUCLIDEAN. Pada langkah 1, jika n = 0, algoritma berhenti. Jika n ≠ 0, maka nilai n selalu berkurang sebagai akibat langkah 2 dan 3, dan pada akhirnya nilai n = 0.

Program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah. Suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi disebut semi algoritma. Definiteness [kepastian], setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.

Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua [ambiguous]. Pembaca harus mengerti apa yang dimaksud dengan “m dan n adalah bilangan bulat tak-negatif”. Contoh lainnya, pernyataan “bagilah P dengan sejumlah beberapa buah bilang bulat positif” dapat bermakna ganda. Input [masukan], algoritma memiliki nol atau lebih data masukan [input].

Algoritma memiliki nol atau lebih masukan [input]. Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja. Algoritma EUCLIDEAN mempunyai dua buah masukan, m dan n, sedangkan algoritma TUKAR ISI BEJANA memiliki masukan larutan bejana A dan larutan bejana B. Output [keluaran], algoritma mempunyai nol atau lebih hasil keluaran [output].

Algoritma mempunya nol atau lebih keluaran [output]. Keluaran adalah besaran yang memiliki hubungan dengan masukan. Keluaran tersebut tentunya harus merupakan solusi dari masalah yang sedang diselesaikan. Algoritma EUCLIDEAN mempunyai satu keluaran yaitu n pada langkah 2 yang merupakan pembagi bersama terbesar dari kedua masukannya. Algoritma TUKAR ISI BEJANA tidak memiliki keluaran sama sekali. Effectiveness [efektivitas], algoritma harus sangkil [efektif], langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

Algoritma harus efektif dan efisien. Setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. Suatu algoritma dikatakan efektif jika algoritma tersebut dapat menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan. Dengan kata lain suatu algoritma harus tepat guna.

Suatu algoritma dikatakan efisien jika waktu proses dari algoritma relatif lebih singkat dan penggunaan memorinya lebih sedikit. Pada beberapa sumber lain, ada tambahan ciri dari algoritma:

Algoritma harus terstruktur. Urutan baris langkah-langkahnya yang digunakan harus disusun sedemikian rupa agar proses penyelesaiannya tidak berbelit-belit, sehingga memungkinkan waktu prosesnya akan menjadi relatif lebih singkat.

Hal ini akan memperlihatkan bahwa bagian-bagian dari proses tersebut dapat dibedakan secara jelas [bagian input, proses dan output]. Dengan demikian memudahkan kita didalam melakukan pemeriksaan ulang. Suatu algoritma harus menghasilkan output yang tepat guna [efektif] dalam waktu yang realtif singkat dan penggunaan memori yang relatif sedikit [efisien] dengan langkah yang berhingga dan prosesnya berakhir baik dalam keadaan diperoleh suatu solusi maupun tidak adanya solusi. Sedang sifat algoritma adalah:

  1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu.
  2. Tidak tergantung pada suatu bahasa pemrograman tertentu.
  3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
  4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua kejadian sehari-hari

Baca Juga : Panduan Search Engine Optimization [SEO] Terupdate dan Terbaru di 2020

Contoh-Contoh Algoritma

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang di acu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Berikut adalah beberapa contoh algoritma dalam kehidupan sehari-hari.

Langkah-langkah pada algoritma haruslah logis. Secara umum, pihak [benda] yang mengerjakan proses disebut pemroses [processor]. Pemroses tersebut dapat berupa manusia, komputer, robot, atau alat-alat mekanik/elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkahlangkah di dalam algoritma tersebut.

Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :

  1. Mengerti setiap langkah dalam algoritma.
  2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Penutup dan Kesimpulan

Algoritma adalah metode efektif yang diekspresikan sebagai rangkaian terbatas. Algoritma juga merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah – perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir.

Masalah tersebut dapat berupa apa saja, dengan syarat untuk setiap permasalahan memiliki kriteria kondisi awal yang harus dipenuhi sebelum menjalankan sebuah algoritma. Algoritma juga memiliki pengulangan proses [iterasi], dan juga memiliki keputusan hingga keputusan selesai.

Setelah membaca artikel ini kita sudah mengetahui pentingnya Algoritma dalam Ilmu Komputer maupun di kehidupan sehari – hari, untuk mempermudah menyelesaikan masalah yang ada. Dengan demikian pembahasan mengenai “Mengenal apa itu Algoritma: Definisi, Ciri – ciri, dan contohnya” kali ini, semoga anda sudah mengerti, apabila ada pertanyaan maupun saran anda bisa berkomentar dibawah.

Video yang berhubungan