Algoritma

From belajarwiki
Jump to navigation Jump to search

Algoritma berasal dari kata al-khawarizmi (Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi) yang merupakan ahli matematika dan astronomi dari Persia, dan juga merupakan penulis buku “Aljabar wal Muqobala”. Beliau dianggap sebagai pencetus pertama algoritma karena di dalam buku tersebut Abu Ja’far menjelaskan langkah-langkah dalam menyelesaikan berbagai persoalan aritmatika (aljabar).

Algoritma biasanya didefinisikan sebagai rangkaian terurut langkah-langkah yang logis dan sistematis yang disusun untuk menyelesaikan suatu masalah. Algoritma dapat dikatakan sebagai jantung ilmu komputer atau informatika, namun pemakaiannya tidak cuma dalam ilmu komputer/informatika saja, tetapi juga dalam bidang lain (kehidupan sehari-hari).


Tujuan

Algoritma dibuat dengan tujuan agar dapat memberikan petunjuk tentang langkah-langkah logika penyelesaian masalah dalam bentuk yang mudah dipahami nalar manusia sebagai acuan yang membantu dalam mengembangkan program komputer. Pemahaman terhadap algoritma akan mencegah sejak dini kemungkinan terjadinya kesalahan logika pada program komputer yang dikembangkan.

Beberapa ciri dari algoritma menurut Donald E. Knuth adalah:

  1. Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
  2. Setiap langkah harus didefinisikan dengan tepat, sehingga tidak memiliki arti ganda, tidak membingungkan (not ambiguous).
  3. Memiliki masukan (input) atau kondisi awal.
  4. Memiliki keluaran (output) atau kondisi akhir.
  5. Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan masalah.


Beberapa skema dasar pada algoritma diantaranya adalah:

  • sequence
  • selection
  • looping


Algoritma dapat dituliskan dalam bentuk:

  • Uraian deskriptif
    • Dengan notasi bergaya uraian, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang.
    • Proses diawali dengan kata kerja seperti baca’ atau ‘membaca’, ’hitung’ atau ‘menghitung’, ‘bagi’ atau ‘membagi’, ‘ganti’ atau ‘membagi’, dan sebagainya.
    • Pernyataan kondisional dinyatakan dengan ‘jika ... maka ...’.
    • Perulangan dengan ‘Ulangi .. Selama …’
  • Flowchart
    • Penulisan algoritma dilakukan dengan menggunakan diagram-diagram.
    • Setiap diagram mewakili satu instruksi/perintah tertentu.
    • Urutan perintah dalam suatu algoritma digambarkan dengan anak panah (dari suatu diagram ke diagram lain ).
    • Tidak cocok untuk penulisan algoritma yang panjang karena menimbulkan kerumitan.
    • Dari segi struktur pemograman tidak dianjurkan untuk dipakai karena bentuk penulisannya jauh berbeda dengan implementasinya pada bahasa pemrograman tertentu.
    • Sejak tahun 1980-an penulisan dengan diagram alir mulai ditinggalkan, kecuali untuk menuliskan langkah-langkah global sebuah algoritma.
  • Pseudocode
    • Notasi yang menyerupai notasi Bahasa pemrograman tingkat tinggi, misalnya Bahasa Pascal dan C.
    • Umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi dalam beberapa bahasa pemrograman, seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya
Struktur Pseudocode
  • Bagian kepala (header) : memuat nama algoritma serta informasi atau keterangan tentang algoritma yang ditulis
  • Bagian Deklarasi (definisi variable ) : memuat definisi nama variable, nama tetapan, nama prosedur, nama fungsi, tipe data yang akan digunakan dalam algoritma.
  • Bagian Deskripsi (rincian langkah) : memuat langkah-langkah penyelesaian masalah, termasuk beberapa perintah seperti baca data, tampilkan, ulangi, yang mengubah data input menjadi output.

Referensi

Pranala Menarik