Jumat, 30 Desember 2016

Notasi Algoritmik

Notasi Algoritmik
   Notasi Algoritmik dibuat independen dari spesifikasi bahasa pwmrograman dan perangkat keras komputer yang mengeksekusinya. Notasi Algoritmik ini dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Analoginya seperti resep membuat kue. Sebuah resep dapat ditulis dalam bahasa apapun, bahasa Inggris, Perancis, Indonesia, Jepang dan sebagainya. Apa pun bahasa resep, kue yang dihasilkan tetapi sama, sebab algoritmanya sama (dengan catatan semua aturan pada resep diikuti). Mengapa bisa demikian? Karena setiap kiri masak (yang merupakan pemroses) mampu melakukan operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan sebagainya. Jadi, resep membuat kue tidak terikat pada bahasa dan juru masak yang mengerjakannya.
   Demikian pula halnya komputer. Meskipun setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmetika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar itu, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain, setiap program dalam bahasa tinggi selalu diterjemahkan ke dalam bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.
   Yang perlu dicatat adalah bahwa notasi algoritmik bukan bahasa pemrograman, sehingga siapa pun dapat membuat notasi algoritmik yang berbeda. Halo yang penting mengenal notasi tersebut adalah ia mudah dibaca dan dimengerti. Selain itu, meskipun notasi algoritmik bukan notasi baju ae bagaimana pada notasi bahasa pemrograman, namun ketaatasasan terhadap notasi perlu diperhatikan untuk menghindari ketelitian
   Di bawah ini kita kemukakan ne berapa notasi yang digunakan untuk menulis algortima. Masalah yang dijadikan contoh ilustrasi adalah menghitung pembagi bernama terbesar dengan algoritma Euclidean
1. Notasi I: menyatakan langkah-langkah algoritma dengan untaian kalo mau deskriptif.

   Dengan notasi bergaya kalo mat ini, deskriptif setiap langkah-langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti 'baca', 'hitung', 'bagi', 'ganti', dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan 'jika ... maka ...' Notasi ini baik buat orang awan, tetapi terdapat kesukaran mengerjakannya langsung ke dalam notasi bahasa pemrograman.
2. Notasi II: menggunakan bagan-alir (flowchart)
   Pada masa awak perkembangan komputer, ilmuwan menspesifikasikan algoritma sebagainya bagan-alir (flowchart) , yang mengekspresikan algoritma sebagainya sekumpulan bentuk-bentuk geometri (seperti persegi panjang, lingkaran, jajaran genjang,bentuk-intan, dan sebagainya) yang berisi langkah-langkah komputasi. Kotak empat persegi panjang menyatakan proses, sedangkan pernyataan kondisional dinyatakan dengan bentuk intan (diamond). Bagan-alir populer pada awal era pemrograman dengan komputer (terutama dengan Basic,Fortran, dan Cobol). Bagan-alir tidak banyak lagi digunakan saat ini karena ia cenderung tidak praktis dikonversi ke bahasa pemrograman, namun beberapa algortima sederhana masih sering digambarkan sebagai bagan-alir. Bagan-alir menggambarkan aliran instruksi di dalam program secara visual. Notasi algoritmik dengan diagram alir cocok untuk masalah yang kecil, namun tidak cocok untuk masalah yang besar karena membutuhkan berlembar hataman kertas. Selain itu, pengonversian notasi algoritma ke notasi bahasa pemrograman juga cenderung relatif lebih sukar.



Keterangan:

a. MOD adalah operator pembagian bilangan bulat yang menghasilkan sisa hasil pembagian. Contohnya, 9 MOD 2 = 1 karena 9 dibagi 2 = 4 dan memberikan sisa 1.
b. Di dalam diagram alir di atas ditambahkan instruksi pembacaan nilai m dan n.

3. Notasi III: menggunakan pseudo-code

   Para ilmuwan komputer lebih menyukai menuliskan algoritma dalam notasi yang lebih praktis, yaitu notasi pseudo-code. Pseudo-code (pseudo artinya semu atau tidak sebenarnya) adalah notasi yang mirip dengan notasi bahasa pemrograman tingkat tinggi, khususnya (paling sering) bahasa Pascal dan C. Lebih tepatnya pseudo-code adalah campuran antara bahasa pemrograman yang direpotkan dengan tanda titik koma (semicolon), indeks, format keluaran, aturan khusus, dan sebagainya, maka sembarang versi pseudo-code dapat diterima asalkan perintahnya tidak membingunkan pembaca. Jadi, tidaklah mengherankan jika banyak ilmuwan komputer tidak menyepakati suatu pseudo-code tertentu, bahkan mereka cenderung membuat "dialek" pseudo-code dengan style mereka sendiri. Keuntungan menggunakan notasi pseudo-code adalah kemudahan mengonversinya lebih tepat disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudo-code dengan notasi bahasa pemrograman. Korespondensi ini dapat diwujudkan dengan tabel translasi dari notasi algoritmik ke notasi bahasa pemrograman apa pun.
   Pseudo-code yang digunakan di dalam buku ini banyak diadopsi dari bahasa Pascal, namun tidak benar-benar mematuhi semua sintaks Pascal. Algoritma Euclidean jika kita tulis dengan menggunakan notasi pseudo-code adalah seperti di bawah ini:



   Kata-kata seperti PROGRAM, integer, read, while, dan endwhile merupakan kata-kata penting (keywords) yang nantinya berpadanan dengan kata penting pada bahasa komputer yang dipilih untuk mentranslasikan algoritma tersebut. Kalimat yang diapit dengan pasangan kurung kurawal ({ dan }) menyatakan komentar. Komentar berguna untuk lebih memperjelas instruksi yang dituliskan. Peubah yang digunakan di dalam algoritma dituliskan pada bagian Deklarasi, sedangkan langkah-langkah penyelesaian masalah dinyatakan pada bagian Algoritma. Data masukan yang diperlukan algoritma dibaca dengan perintah input, sedangkan keluaran algoritma ditulis dengan perintah output. Karakter "←" menyatakan bahwa nilai di sebelah kanannya diisikan ke dalam peubah di sebelah kirinya. Kata-kata lain seperti while, integer, dan lain-lain akan dijelaskan dalam artikel selanjutnya.

Tidak ada komentar:

Adsense