Penyajian algoritma yang baik harus memenuhi 5 kriteria, salah satunya yaitu….

Menurut  Donald  Ervin  Knuth,  tang  dikenal  dengan  Bapak    "Analisis  Algoritma",    algoritma yang baik dan benar harus memiliki kriteria-kriteria berikut ini:

  •   Input 
  •   Output 
  •   Finite 
  •   Definite 
  •   Efisien
1. Input Algoritma memiliki nol input atau lebih dari pengguna.  Setiap algoritma pasti memiliki input. Yang  dimaksud  dengan  nol  input  dari  pengguna  adalah  bahwa  algoritma  tidak  mendapatkan masukan dari pengguna,  tapi  semua  data  inputan  yang  digunakan algoritma  tidak  dari  pengguna secara  langsung,  namun  semua  data  yang  akan  diproses  sudah  dideklarasikan  oleh  algoritma terlebih dahulu. Sebagai  contoh  sebuah    algoritma  menghitung  100  bilangan  genap  yang  pertama  tidak memerluakan  input  dari  pengguna  karena  sudah  diketahui  bahwa  banyaknya  bilangan  genap adalah  100.  Berbeda  jika  algoritm  tersebut  digunakan  untuk  menghitung  n  bilangan  genap pertama, dengan nilai n dari pengguna. Berarti ada masukan dari pengguna yaitu n. 2. Output Algoritma  minimal  harus  memiliki  1  output.  Tujuan  dari  algoritma  adalah  memberikan penyelesaian  dari  suatu  permasalahan  dengan  langkah-langkah  tertentu.  Penyelesaian  itulah output  dari  algoritma  yang dimaksud.  Output  dapat  berupa  apa  saja,  teks, file,  video,  suara, dan lain-lain atau suatu nilai yang disimpan untuk digunakan algoritma lain atau disimpan di basis data. 3. Finite [Terbatas]  Algoritma  yang  baik  haruslah  mempunyai  langkah-langkah  terbatas,  yang  berakhir  pada suatu  titik  di  mana  algoritma  itu  akan  berhenti  dan  menghasilkan  suatu  output.  Algoritma  tidak boleh berjalan terus –menerus tanpa titik henti, hingga menyebabkan hang atau not responding jika diterapkan  pada  komputer.  Ketika  sebuah  algoritma  berjalan  terus  menerus  [infinite],  maka  ini mengindikasikan ada kesalahan yang dibuat oleh programmer dalam mengembangkan algoritma. 4. Define [Pasti] Makna dari langkah logis pada definisi algoritma terdahulu tercermin dari langkah-langkah yang pasti, tidak ambigu atau bermakna ganda. Suatu program harus mempunyai arah dan tujuan yang jelas ,kapan mulai dan kapan berakhir.  Dalam menyusun langkah-langkah dalam algoritma perlu  dihindari  kata-kata  seperti  secukupnya,  beberapa,  sesuatu,  sebentar,  lama,  atau  kata  lain yang  tidak  terukur  dengan  pasti.  Pemberian  nomor  pada  algoritma  dapat  membantu  pengguna mengikuti  setiap  langkah  dengan  pasti  hingga  mencapai  akhir  dari  algoritma,  yaitu  solusi  dari permasalahan.  5. Efisien Program menghasilkan output yang benar, itu wajib. Tapi bagaimna jika output yang benar itu  dilakukan  dengan  waktu  yang  lama  padahal  ada  algoritma  lain  yang  lebih  cepat?  Hal  ini menunjukkan  bahwa  setiap  algoritma,  khususnya  jika  sudah  diterapkan  pada  pemrograman, mempunyai waktu eksekusi [running time]. Algoritma disebut efisien jika untuk mendapatkan suatu solusi  tidak  memerlukan  memori  yang  banyak,  proses  yang  berbelit-belit  dan  tidak  perlu.  Jika

algoritma  terlalu  banyak  melakukan  hal-hal  yang  tidak  perlu  akan  menyebabkan  waktu  eksekusi menjadi lebih lama.

Senin, 02 Maret 2020 Edit

Setiap kali kita melakukan sebuah prosedur atau langkah-langkah kerja, maka artinya kita telah melakukan sebuah algoritma. Secara umum Algoritma dapat dikatakan sebagai sebuah langkah-langkah yang harus dilakukan untuk menghasilkan keluaran yang dicari. Dalam pemrograman, Algoritma merupakan rangkaian instruksi-instruksi yang dilakukan untuk menghitung/memproses sebuah fungsi yang nantinya akan mendapatkan hasil akhir. Untuk menulis algoritma pemrograman terdapat beberapa kriteria pemilihan algoritma yang harus dipahami.

Berikut ini 5 Kriteria Pemilihan Algoritma :

  1. Keluaran [Output]
    Tanpa adanya output hasil yang dicari, maka algoritma yang kita buat akan sia-sia karena tidak berhasil menemukan penyelesaian dari masalah yang sedang dikerjakan. Untuk itu dalam menulis algoritma, merumuskan fungsi keluaran adalah hal yang utama.
  2. Berguna [Efektif] dan Tepat [Efisien]
    Hal yang tak kalah penting lainnya dalam memilih algoritma adalah efektif dan efisien. Algoritma yang dibuat haruslah efektif artinya berguna dan benar-benar merupakan sebuah solusi yang dicari. Selain itu, algoritma juga harus memperhatikan ketepatan dan dibuat seefisien mungin. Hal ini bertujuan untuk menghasilkan algoritma yang mampu menyelesaikan sebuah masalah dengan waktu, dan memori sedikit mungkin.
  3. Berhingga/Berbatas
    Langkah-langkah yang dikerjakan dalam algoritma juga harus memiliki batasan-batasan tertentu. Tujuannya adalah untuk lebih memfokuskan beragam persoalan yang dicari pada satu masalah utama. Dengan mengetahu batasan-batasa, algoritma dapat dibuat dengan cara sesederhana mungkin sehingga akan lebih efisien.
  4. Berakhir
    Algoritma yang dibuat harus memiliki akhir, baik akhir yang merupakan solusi maupun tidak. Jika algoritma yang digunakan akan terus memproses instruksi tanpa henti, maka algoritma tersebut adalah algoritma yang buruk.
  5. Terstruktur
    Untuk memudahkan memahami dan mengaplikasikan sebuah algoritma, maka penting untuk menulis algoritma yang terstruktur dan rapih. Algoritma yang terstrukturpun akan memudahkan dalam mencari kesalahan-kesalahan [bug] didalamnya.

Contoh Algoritma yang sesuai dengan Kriteria Pemilihan :

Algoritma Menentukan Angka Genap/Ganjil

  1. Memasukkan nilai [input]
  2. Memeriksa nilai
  3. Mengeluarkan hasil

  1. Langkah pertama adalah mendeklarasikan variabel x.
  2. Selanjutnya melakukan Inisialisasi variabel x dengan nilai yang diinputkan.
  3. Memeriksa apakah x merupakan ganjil/genap dengan menggunakan fungi x mod 2. Jika x mod 2 = 0, maka x = genap. Jika tidak, maka x = ganjil.
  4. Mengeluarkan hasil ke layar dengan syntax output, cout.
  5. Mengakhiri program dengan fungsi return 0. Tujuan return 0 dalam c++ adalah untuk memberi tahu bahwa program berakhir secara normal.

Halo, teman-teman apa kabar? Semoga teman-teman dalam keadaan baik-baik saja ya.

Sudah tahukah kamu ciri-ciri algoritma pemrograman? Sudah tahu, namun belum tahu secara komplit? Baik, pada artikel ini kita akan membahas 6 ciri algoritma pemrograman secara detail dan tuntas. Yuk simak!

Sebelumnya mari kita flashback apa yang dimaksud dengan algoritma baik itu pengertian dan juga contohnya.

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Algoritma merupakan urutan aksi untuk menyelesaikan masalah yang disusun secara sistematis dan logis. Algoritma juga dapat diartikan urutan langkah logis yang digunakan untuk menyelesaikan suatu masalah. Singkatnya, sebuah masalah dapat diselesaikan dengan beberapa langkah yang logis.

Kenapa perlu algoritma? Komputer itu kan pintar? Perlu kamu tahu bahwa komputer hanya akan menerima perintah dari kita. Jadi kita bisa menginstruksikan komputer dengan bahasa komputer.

“Komputer itu tidak berguna. Mereka hanya bisa memberikan jawaban.” 

[Pablo Picasso]

Contohnya ketika kamu mau makan. Kamu memerlukan beberapa tindakan untuk makan. Dari mulai mencuci tangan; menyiapkan piring, nasi, dan lauk pauk; hingga makan. Itulah beberapa contoh proses atau urutan langkah algoritma dalam kehidupan sehari-hari.

Setiap orang mempunyai urutan langkah yang berbeda karena setiap orang mempunyai algoritmanya masing-masing. Itulah yang menjadi ciri khas algoritma di kehidupan sehari-hari.

Adapun manfaat dari algoritma yaitu untuk membantu seseorang dalam menyelesaikan masalah berdasarkan pada pola pikirnya masing-masing. Selain itu, algoritma juga memiliki fungsi di antaranya:

  • Memecahkan program yang rumit sehingga memungkinan adanya perhitungan tingkat tinggi.
  • Membuat sebuah program yang rumit menjadi sederhana.
  • Menggunakannya secara berulang atau lebih dari satu kali penggunaan.
  • Memudahkan dalam membuat suatu program.
  • Mengatasi permasalah yang ada secara terurut.
  • Memudahkanmu dalam mencari kesalahan. Sebab algoritma bisa mendapatkan alur dengan jelas [definiteness].
  • Memudahkanmu dalam memodifikasi program tanpa harus merubah dan mengganggu modul lainnya.

Algoritma pemrograman mempunyai ciri tersendiri yang dapat membedakannya dengan teknik pemrograman lain dalam menyelesaikan suatu masalah, berikut di antaranya sebagai:

1. Finiteness [Keterbatasan]

Finiteness atau keterbatasan berarti algoritma harus berakhir setelah mengerjakan sejumlah langkah proses. Algoritma yang sedang mengerjakan sebuah proses atau langkah mempunyai sifat terbatas, maka ia harus menghentikan apa yang sedang ia kerjakan. Program yang tidak pernah berhenti atau tidak ada batasnya merupakan program dengan berisi algoritma yang salah. Itulah mengapa algoritma harus mempunyai ciri finiteness.

Algoritma pemrograman harus memiliki output yang sesuai dengan harapan pengguna. Oleh karena itu, finiteness membantu pengguna agar algoritma sesuai dengan yang diharapkannya.

2. Input [Masukan]

Algoritma dapat memiliki  nol atau lebih masukan [input]. Masukan adalah besaran nilai yang diberikan kepada algoritma sebelum ia mulai bekerja. Misal Algoritma Z mempunyai dua buah masukan “A” dan “B, algoritma Y memiliki masukan dari algoritma “C“, atau algoritma X yang tidak memiliki input sama sekali.

3. Output [Keluaran]

Perlu kamu tahu juga bahwa algoritma juga dapat mempunyai nol atau lebih keluaran [output]. Keluaran adalah besaran nilai yang memiliki hubungan dengan masukan [input]. Keluaran tersebut tentunya harus berupa solusi atau penyelesaian dari suatu masalah. Contohnya sebuah algoritma berfungsi untuk menghitung sebuah luas persegi. Saat ia diberi input 4 maka harusnya outputnya adalah 16.

4. Definiteness [Kepastian]

Kepastian [definiteness] adalah urutan langkah yang dibuat harus jelas dan sesuai dengan tujuan. Setiap urutan harus didefinisikan secara tepat dan tidak berarti ganda [ambiguous]. Dengan kata lain, pembaca harus mengerti apa tujuan yang dimaksud. Contohnya ketika kamu membuat algoritma penghitung segitiga, pembaca harus tahu kalau yang diinputkan adalah angka bukan teks.

Contoh lain pada algoritma menghitung orang di dalam suatu ruangan berikut:

“Buatlah variabel nilai bernama value”
“Untuk menghitung total orang dalam ruangan tersebut lakukan dengan cara value + 1″

Dengan begitu, pengguna algoritma dapat dengan mudah mengerjakan dan menyelesaikannya secara pasti.

5. Effectiveness [Keefektivitasan]

Algoritma tentu harus sangkil [efektif], jadi urutan algoritma dikerjakan dalam waktu yang wajar. Dalam kata lain, algoritma efektif dan efisien. Setiap urutan atau langkah harus sesederhana mungkin, sehingga dapat dikerjakan dalam sejumlah waktu yang relatif efisien dan masuk akal. Suatu algoritma dapat dikatakan efisien jika waktu proses dari algoritma relatif lebih singkat dan penggunaan memorinya lebih sedikit.

Algoritma juga harus tepat guna lo. Walaupun terbilang sederhana, algoritma yang kamu buat harus sesuai dengan masalah yang dihadapi. Selain itu, suatu algoritma dikatakan efektif apabila ia mempunyai solusi dari permasalahan yang diselesaikan.

Jadi, jangan ada instruksi yang tidak mungkin dikerjakan oleh algoritma ya.

6. Structured [Terstruktur]

Algoritma harus terstruktur. Urutan baris langkah yang digunakan harus disusun secara sistematis. Disusun sedemikian rupa agar proses penyelesaiannya tidak kemana-mana atau berbelit-belit, sehingga memungkinkan prosesnya jadi relatif lebih singkat.

Hal ini memperlihatkan bahwa bagian dari proses tersebut dapat dibedakan dengan jelas, seperti input, proses, dan output. Dengan demikian, memudahkan kita dalam melakukan pemeriksaan ulang. 

Suatu algoritma harus menghasilkan keluaran yang tepat guna [efektif]. Ia juga harus diproses dalam waktu yang relatif singkat dengan penggunaan memori yang relatif rendah [efisien]. Berikut ini adalah sifat-sifat dari sebuah algoritma:

  1. Tidak menggunakan simbol berupa sintaks dari suatu bahasa pemrograman tertentu.
  2. Tidak mesti selalu bergantung pada bahasa pemrograman tertentu.
  3. Notasinya bersifat umum dan dapat digunakan untuk seluruh bahasa pemrograman manapun.
  4. Algoritma dapat digunakan untuk mempresentasikan kehidupan sehari-hari, seperti tindakan yang sering kamu lakukan berupa suatu pekerjaan.
  5. Tidak cukup menyelesaikan masalah dengan satu cara saja, namun harus ada pengkondisian yang masuk akal. 

Kesimpulannya, algoritma adalah metode efektif yang diekspresikan sebagai rangkaian yang terbatas. Algoritma juga merupakan kumpulan instruksi untuk menyelesaikan suatu masalah. Instruksi–instruksi ini dapat diterjemahkan secara bertahap dari awal hingga akhir.

“Program harus ditulis agar orang dapat membaca, dan hanya sesekali dijalankan oleh mesin.”

[Harold Abelson]

Setelah membaca artikel ini kamu jadi tahu “Apa saja ciri-ciri algoritma pemrograman? Beserta penjelasannya.” Terutama kamu yang ingin jago pemrograman harus memnguasai algoritma terlebih dahulu ya. Apabila ada komentar dan saran silahkan isi di kolom komentar. Terima kasih.

Simak juga yuk artikel lainnya di blog Dicoding. Inilah beberapa artikel yang berkaitan tentang algoritma, di antaranya:

6 Ciri Algoritma Pemrograman – karya Rendi Juliarto, Intern Junior Content Writer di Dicoding

Video yang berhubungan

Bài mới nhất

Chủ Đề