23 June 2013

Algoritma ??

     Algoritma adalah urutan langkah-langkah logis penyelesaian suatu masalah yang disusun secara sistematis. Pada gambar di samping kiri bisa kita lihat itulah sebuah gambar perangko namun, perangko apa itu?? itu adalah perangko dari Rusia yang bergambar seorang ilmuwan Islam bernama Muhammad ibn Mūsā al-Khwārizmī. Muhammad ibn Mūsā al-Khwārizmī adalah ilmuwan Islam dalam bidang matematika, astronomi, astrologi, dan geografi yang menjadi dasar dalam perkembangan ilmu modern.
   Lalu, apa hubungannya dengan algoritma?? Dari nama Muhammad ibn Mūsā al-Khwārizmī kemudian berubah ke dalam bahasa inggris menjadi algorithm dan diterjemahkan ke dalam bahasa indonesia yaitu algoritma.
    Sesuai pengertiannya segala hal dalam menyelesaikan suatu masalah yang disusun secara sistematis disebut algoritma. Namun, tidak semua hal disebut algoritma, langkah - langkah membuat kopi, mencuci baju, membuat nasi goreng, adalah contoh dari algoritma dalam kehidupan sehari - hari. Kenapa bisa dikatakan seperti itu? Ambil contoh membuat nasi goreng, dalam membuat nasi goreng tentunya kita membutuhkan bahan-bahan yang logis serta langkah-langkah pembuatannya yang logis pula, maka dapat disimpulkan bahwa langkah-langkah membuat nasi goreng bisa dikatakan contoh dari algoritma dalam kehidupan sehari-hari.
    Konsep algoritma sering kali disetarakan dengan sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan digunakan, urutan pengerjaan dan bagaimana hasil dari urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia) maka resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat diperoleh. 
    Dalam dunia programming, algoritma merupakan jantung dari programming itu sendiri, atau bisa disebut sebagai dasar dalam perancangan program itu sendiri. Penulisan atau pembuatan algoritma sebenarnya ada banyak cara, namun kembali lagi kepada sikap kita sebagai pembuatnya, nyaman atau tidaknya tergantung kita yang membuat. Seperti hal nya saya sendiri, ketika pertama masuk di jurusan RPL di SMK pembuatan algoritma itu kebanyakan menggunakan bahasa keseharian dan dengan flowchart dan tentunya berbeda dengan sekarang, duduk di bangku kuliah jurusan Teknik Informatika dengan pengajar yang berbeda dengan di SMK dulu, berbeda pula cara pembuatan algoritmanya. Namun, setidaknya ada 3 metode untuk membuat algoritma yang perllu kita ketahui, antara lain :

1. Structured English (SE)
    SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). Algoritma di bawah ini merupakan algoritma yang ditulis menggunakan SI. Karena dasarnya adalah bahasa sehari-hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak.
Algoritma Menghitung Luas Segitiga :
  1. Start
  2. Baca data alas dan tinggi.
  3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop
  4. Luas adalah alas kali tinggi kali 0.5
  5. Tampilkan Luas
  6. Stop 
Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar. Zamannya SMK kebanyakan bikin yang beginian, itu pun hanya ada di semester 1 kelas 10.
 2. Pseudocode
    Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program. Sehingga
pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma. Apabila Contoh SE tadi ditulis dalam pseudocode berbasis bahasa BASIC akan tampak seperti pada contoh berikut :


  1. Start
  2. READ alas, tinggi
  3. Luas = 0.5 * alas * tinggi
  4. PRINT Luas
  5. Stop
  Ada banyak cara pendeklarasian pseudocode, yang pertama seperti SE pada contoh di atas, dan yang kedua menggunakan deklarasi struktur berikut ini :
   Algoritma namaAlgoritma {nama dari algoritma yang dibuat}
   Deklarasi
      {Tempat menyimpan dan pendeklarasian berupa variabel maupun konstanta}
   Deskripsi
      {Bagian ini diisi dengan isi dari algoritmanya}
   EndAlgo {menandakan akhir dari algoritma, atau algoritma berakhir}
 Jika contoh Pseudoceode dengan SE tadi dibuat menggunakan Metode Pseudocode di atas, maka hasilnya adalah sebagai berikut :
   Algoritma menghitungLuasSegitiga
   Deklarasi
       float alas, tinggi, luas
   Deskripsi
       input(alas)
       input(tinggi)
       luas ← 0,5 * alas * tinggi
       output(luas)
   endAlgo

   Penjelasan untuk algoritma di atas, pada bagian nama jelas bahwa nama algoritmanya adalah menghitungLuasSegitiga. Bagian Deklarasi diisi dengan float alas, tinggi, luas, maksudnya float adalah tipe data baik itu desimal maupun bilangan bulat. Perlu diperhatikan penulisan deklarasi variabel maupun konstanta yaitu (type_data nama_variabel). Ada 3 variabel dalam algoritma ini yaitu alas, tinggi, dan luas. Karena sesuai dengan rumus luas segitiga yaitu 1/2 (setengah) x alas x tinggi. Hasil dari perkaliannya akan ditampung pada variabel luas. Bagian Deskripsi menjelaskan alur terjadinya / langkah-langkahnya. input(alas) input maksudnya adalah menginputkan atau mengisi variabel alas, begitu juga dengan input(tinggi) , perlu diingat bahwa penulisan input untuk variabel bisa disatukan jika perintahnya sama input(alas,tinggi). Kedua inputan tadi adalah jenis input user, jadi yang menginputkan/mengisi nilai alas dan tinggi adalah user. Nah, untuk mengisi secara programming / program yang menentukan perintahnya yaitu input("6") atau input(alas="6").
Operasi selanjutnya yaitu luas ← 0,5 * alas * tinggi, membacanya yaitu "luas diisi dengan 0,5 dikali alas dikali tinggi" atau "0,5 dikali alas dikali tinggi dimasukkan ke luas". Kemudian langkah selanjutnya adalah output(luas) maksudnya menoutputkan/mencetak/menampilkan variabel luas, lalu apa isi dari variabel luas itu? isinya jelas ada pada langkah sebelumnya. Dan terakhir adalah endAlgo, maka algooritma pun berakhir.

3.  Flowchart
Untuk pembahasan flowchart ada pada postingan selanjutnya, so, tunggu saja dan tetap kunjungi blog saya.

Sumber : Otak, BSE Rekayasa Perangkat Lunak (RPL) Jilid 1 : Rinaldi Munir.

 

Copyright @ 2013 Muhammad Nasir.

Designed by Templateism | Modified By Muhammad Nasir