Saturday, July 28, 2018

Penyajian Algoritma yang Baik


Penyajian Algoritma yang Baik
Menurut Donald Ervin Knuth (1973), yang 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. Jadi setiap algoritma harus menerima input. Untuk nol input maksudnya adalah algoritma tidak mendapatkan masukan langsung dari pengguna, tapi data inputan telah dideklarasi didalam algoritma terlebih dahulu.
Contoh algoritma menghitung 100 bilangan genap yang pertama tidak memerlukan 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, jika diterapkan pada komputer akan mengakibatkan hang atau not responding.
Algoritma yang berjalan terus menerus (infinite), memberikan indikasi bahwa ada kesalahan yang dibuat oleh programmer dalam mengembangkan algoritma.
4.    Definite (Pasti)
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. 
Ketika 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 bagaimana jika output yang benar itu dilakukan dengan waktu yang lama padahal ada algoritma lain yang lebih cepat? Hal ini menunjukkan bahwa setiap algoritma, khususnya ketika diterapkan pada pemrograman, mempunyai waktu eksekusi (running time).
Algoritma disebut efisien jika solusi yang didapat 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.
Pseudocode
Pseudocode yaitu penyajian algoritma dalam bentuk bahasa yang “mirip” dengan bahasa pemrograman. Sesuai dengan namanya pseudocode dapat diartikan sebagai kode bayangan, yaitu bahasa yang mendekati kode pemrograman yang sesungguhnya. Bedanya dalam bahasa pemrograman aturan penulisan kode harus benar-benar sesuai, jika terdapat kesalahan sedikit saja maka akan menyebabkan error, atau program tidak bisa dijalankan. Sedangkan dalam pseudocode aturan penulisannya lebih bebas, dan tidak terikat yang paling penting adalah mudah dipahami oleh orang yang akan menggunakan algoritma atau orang yang akan mengimplementasikan algoritma tersebut ke dalam bahasa pemrograman.
Pseudocode yang baik adalah pseudocode yang dapat dipahami dan diterjemahkan oleh programmer ke bahasa pemrograman yang ada. Walaupun ada juga yang menuliskannya berdasarkan kecenderungan perancang algoritma dalam menggunakan bahasa pemrograman.
Misalnya orang yang sering menggunakan Bahasa Pemrograman Fortran akan menuliskan pseudocode dengan gaya Bahasa Fortran, orang yang sering menggunakan Pascal akan menuliskan psudocode dengan gaya bahasa Pascal, demikian juga bagi yang sering menggunakan Basic ataupun Turbo C, tentu akan mempunyai style (gaya) yang berbeda-beda. Jadi pseudocode bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan.
Di antara sekian gaya pseudocode, barangkali yang paling mudah dipahami adalah gaya bahasa Pascal karena bahasanya  sangat natural (alami) sebagaimana bahasa Inggris sehari-hari dan dengan mudah dapat diterapkan pada bahasa pemrograman yang lain seperti Fortran, turbo C, Basic dan bahasa pemrograman yang lain. Kata-kata kuncinya sangat singkat, praktis dan jelas.

Pada algoritma diatas digunakan beberapa istilah yang mirip dengan Bahasa Pascal, sebagai berikut.
Konstanta, untuk mendeklarasikan konstanta
Variabel, untuk mendeklarasikan variabel
READ, perintah untuk membaca masukkan dari pengguna
WRITE, perintah untuk menuliskan nilai suatu variabel atau suatu string
END, akhir dari algoritma.
Pemberian nilai ini V = Phi * r * r * t  juga disebut dengan Assignment (penugasan). Di beberapa bahasa Pemrograman assignment ini dituliskan dengan beberapa gaya yang berbeda, di Pascal dituliskan V := Phi * r * r * t sedangkan di Turbo C cukup V = Phi * r * r * t.
Demikian juga dengan perintah WRITE, di beberapa pseudocode digunakan perintah PRINT, DISPLAY atau OUTPUT. Jadi tidak ada aturan yang mengikat mengenai penyajian algoritma dengan pseudocode, tetapi agar konsisten gunakan  format penulisan sama.
Flowchart
Flowchart adalah penyajian algoritma menggunakan diagram. Tujuannya yaitu untuk memberikan gambaran secara visual bagaimana data diproses, sehingga akan lebih memperjelas bagaimana algoritma di implementasikan pada program komputer.
Ada berbagai macam bentuk (simbol) yang berbeda dalam flowchart, di mana masing-masing simbol mewakili proses langkah tertentu. Awal dan akhir diwakili simbol Oval, Input dan Output diwakili simbol Jajar genjang dan Proses diwakili oleh Persegi panjang. Keempat simbol tersebut merupakan simbol dasar dalam penyajian algoritma menggunakan flowchart.
Berikut ini simbol-simbol yang digunakan dalam penyajian algoritma menggunakan flowchart.

Pustaka :

Maryono Dwi, Pambudhi Dhidhi,  Pemrograman Dasar Untuk SMK/MAK Kelas X Semester 1, Kementerian Pendidikan dan Kebudayaan Republik Indonesia, Jakarta, 2014
Share:

0 comments:

Post a Comment

Video dan Gambar

Blogroll

Like on Facebook