Definisi Algoritma Secara Lengkap serta Jenis dan Syarat-Syaratnya.

  • by

Definisi Algoritma

 
Algoritma adalah Prosedur komputasional yang terdefinisi dengan baik yang membutuhkan nilai (atau himpunan nilai) sebagai input dan menghasilkan nilai (atau himpunan nilai) sebagai output. Algoritma juga merupakan alat bantu (tools) menyelesaikan masalah komputasional yang terdefinisi dengan baik (well-defined computational problem).
Kumpulan instruksi untuk menyelesaikan suatu masalah didefinisikan sebagai algoritma dari permasalahan tersebut. Komputer membutuhkan instruksi yang tepat dan terdefinisi dengan baik untuk menemukan solusi dari suatu masalah. Jika terdapat sesuatu yang ambigu maka computer tidak akan memberikan hasil yang benar. Pada dasarnya bahwa semua tingkatan solusi dari sebuah masalah dapat ditentukan dengan detail, benar dan jelas. Selain itu, langakah-langkahnya juga harus terorganisasi sehingga diperoleh solusi yang unik. Jadi, setiap algoritma harus memiliki sifat-sifat :
  1.          Sederhana.
  2.          Jelas tanpa ada keambiguan.
  3.          Menjadi solusi khas dari permasalahan.
  4.          Meliputi langkah dengan batasan jumlah untuk sampai pada sebuah solusi.
  5.         Memiliki kapasitas untuk mengatasi beberapa situasi yang tidak terduga yang mungkin muncul selama pemecahan masalah.

Syarat-syarat algoritma

 
Syarat-Syarat Algoritma menurtu Donald E. Knuth, yaitu:
  1.  Finiteness (Keterbatasan) : algoritma harus berakhir setelah melakukan sejumlah langkah proses.
  2.  Definiteness (Kepastian) : setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda.
  3.  Input (Masukan) : sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan kepada algoritma sebelum dijalankan.
  4.  Output (Keluaran) : setiap algoritma memberikan satu atau beberapa hasil keluaran.
  5.  Effectiveness (Efektivitas) : langkah-langkah algoritma dikerjakan dalam waktu yang “wajar”.

Jenis-jenis algoritma

  1.  Pseudocode (bahasa semu) : dekripsi darialgoritma pemrograman computer yang menggunakan struktur sederhana dari beberapa bahasa pemrograman tetapi bahasa pemrograman tersebut hanya ditujukan agar dapat dibaca manusia, biasanya yang ditulis di pseudocode adalah variable dan fungsi.
  2.  Diagram alur (flow chart) : suatu penulisan atau penyajian algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan.
  3. Devide dan conquer : membagi suatu permasalahan besar yang lebih kecil. Pembagian ini dilakukan secara terus menerus sampai ditemukan bagian masalah kecil yang mudah dipecahkan.
  4. Dynamic programming

Ketentuan Pseudocode

·         Indent menyatakan struktur blok.
·         Statemen perulangan dikonstruksi dengan while, for dan repeat.
·         Statemen penyeleksian kondisi/syarat dikonstruksi dengan if, then dan else.
·         Simbol “à” menyatakan komentar untuk statemen baris-baris berikutnya.
·         Penugasan berganda (multiple assignment) i ¬ j ¬ e  menyatakan penugasan/pemberian nilai ekedalam i dan j; pernyataan ini ekivalen dengan j ¬ e lalu diikuti i ¬ j.
·         Dan lainnya.

Desain dan Analisis Algoritma

1.      Masalah searching dan sorting

a.       Sorting

Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplemantasi dalam bermacam aplikasi.
Macam – macam algoritma sorting :
Insertion Sort
              Salah satu algoritma  sorting  yang paling sederhana adalahinsertion sort. Algoritma Insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian arrayyang belum diurutkan dan kemudian diletakan sesuai dengan posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang terisisa pada bagian array yang belum diurutkan.
 Selection Sort
           Selection Sort adalah memilih elemen dengan nilai yang paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke-n, dimana n adalah jumlah total elemen dikurangi 1.
Merge Sort 
Sebelum pembahasan mengenai algoritma merge sort, akan dijelaskan garis besar dari konsep divide and conquer karena merge sort mengadaptasi pola tersebut.
Pola Divide and Conquer
Beberapa algoritma mengimplentasikan konsep rekursi untuk menyelesaikan permasalahan.  Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi dari sub-masalah akan membimbing menuju solusi permasalahan utama.
Pada setiap tingkatan rekursi, pola tersebut terdiri atas 3 langkah:

1)      Divide
Memilah masalah menjadi sub masalah.
2)      Conquer
Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup ringkas dan sederhana, pendekatan penyelesaian secara langsung akan
lebih efektif.
3)      Kombinasi
Mengkombinasikan solusi dari sub-masalah, yang akan membimbing menuju
penyelesaian atas permasalahan utama.


     Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai dengan rangkaiannya.

Leave a Reply

Your email address will not be published. Required fields are marked *