Jumat, 24 Mei 2013

Review Algorithm

Dalam matematika dan komputasi, algoritma atau algoritme merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.

Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

DEFINISI ALGORITMA
  1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. (Rinaldi Munir, 2006).
  2. Algoritma diartikan sebagai prosedur langkah demi langkah untuk memecahkan masalah atau penyelesaian tugas khususnya dengan menggunakan bantuan komputer (merriam-webster`s Collegiate Dictionary).
  3. Algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan masalah (Kamus Besar Bahasa Indonesia)
  4. Algoritma adalah teknik penyusunan langkah demi langkah penyelesaian masalah dalam bentuk kalimat singkat dengan jumlah kata terbatas, namun tersusun secara logis sistematis (suarga, 2006).
  5. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah terbatas tetapi tersusun secara logis dan sistematis.
  6. Prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
Berdasarkan beberapa petikan defenisi, bahwa algoritma merupakan urutan langkah yang logis dan mengikuti suatu urutan tertentu, tidak boleh melompat-lompat (Microsoft Press Computer and internet Dictionaary 1997, 1998). Ini berarti, hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberi hasil yang salah. 

Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis menyebabkan alogaritma seseorang dapat juga berbeda dari alogaritma yang lain, yang tertuang dalam bentuk kalimat, gambar, atau table tertentu (Moh. Sjukani, Algoritma dan struktur data dengan C, C++, dan JAVA).

Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemprograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik, maka proses pemprograman akan menjadi salah atau rusak, lambak dan tidak efisien.

Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemprograman dan komputer yang mengeksekusinya. Notasi alogaritma bukan notasi bahasa pemprograman tetapi dapat diterjemahkan kedalam berbagai bahasa pemprograman.


SEJARAH ISTILAH ALGORITMA

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas.

JENIS-JENIS ALGORITMA

Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda.
  • Divide and Conquer, paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
  • Metode serakah. Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.


PENULISAN ALGORITMA
  1. Menggunakan bahasa natural (bahasa indonesia, bahasa inggris atau bahasa yang di mengerti oleh manusia), kendala yang sering muncul adalah pernyataan yang dibuat menggunakan bahasa natural adalah sering menimbulkan kebingungan (ambiguous).
  2. Menggunakan flowchard (diagram alir). Pengguna diagram ali dalam algoritma lebih baik dibanding pain 1, karena alogaritma dalam bentuk flowchart baik secara visual tetapi bila algoritmanya panjang maka flowchartnya juga menjadi repot.
  3. menggunakan pseudo-code. Penulisan ini dekat pada bahasa pemprograman namun sulit dimengerti oleh orang yang tidak mengerti pemrograman

SYARAT / CIRI ALGORITMA

Syarat sebuah algoritma yang baik menurut Donald E. Knuth sebagai berikut:
  1. Finiteness yaitu, Algoritma harus berakhir setelah melakukan sejumlah langkah proses.
  2. Definiteness yaitu, Setiap langkah algoritma harus didefenisikan dengan tepat dan tidak menimbulkan makna ganda. Sehingga, langkah yang tepat menuliskan algoritma adalah dengan menggunakan languange (bahasa pemprograman computer).
  3. Input yaitu, Setiap algoritma memerlukan data sebagai data untuk masukan untuk diolah.
  4. Output yaitu, Setiap algoritma memberikan satu atau beberapa hasil luaran.
  5. Effectiveness yaitu, Langkah-langkah algoritma dikerjakan dalam waktu yang wajar sebisa mungkin harus dapat dilaksanakan dan efektif.

JENIS PROSES ALGORITMA
  1. Sequace Process merupakan Instruksi dikerjakan secara sekuensial (berurutan).
  2. Selection Process merupakan Instruksi dikerjakan jika memenuhi kriteria tertentu.
  3. Interation Process merupakan Instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
  4. Concurret Process merupakan beberapa instruksi dikerjakan secara bersama.

ALGORITMA SEBAGAI SUB BIDANG ILMU KOMPUTER

Ilmu komputer (computer science) adalah ilmu pengetahuan yang berisi tentang teori, metodologi, desain dan implementasi, yang berhubungan dengan komputasi, komputer dan algoritmanya dalam perspektif perangkat lunak (sofware) maupun perangkat keras (hardware). Ilmu komputer sangat berkaitan erat dengan algoritma, hampir semua bidang dari ilmu komputer (computer science) tidak terlepas dari algoritma. Bahkan pada saat ini, studi tentang algoritma telah menjadi subbidang khusus dalam ilmu komputer. Studi atau ilmu yang mempelajari tentang algoritma sering disebut dengan istilah algorithmics.


TAHAPAN ALGORITMA

Proses pemecahan masalah dengan algoritma tertentu hingga menjadi program dapat dibagi dalam tahapan berikut:
  1. Mendefinisikan masalah : masalah yang ingin dicapai harus jelas lingkupnya.
  2. Membuat model (bentuk) matematis yang dapat digunakan untuk memecahkan masalah.
  3. Merancang algoritma: apa masukannya, bagaimana rincian prosesnya dan apa keluarannya.
  4. Menuliskan program: ubah algoritma menjadi program (source code) sesuai dengan bahasa pemprograman tertentu.
  5. Mengubah source code menjadi executable code melalui proses compiling
  6. Memeriksa hasil compiling, jika salah maka kembali ke tahap empat.
  7. Menjalankan program (run) untuk diuji kebenarannya dengan menggunakan berbagai data.
  8. Memperbaiki keselahan
  9. Mendokumentasikan program bila sudah benar.
 

Referensi
http://id.wikipedia.org/wiki/Algoritma
http://a2informatika20-umpar10.blogspot.com/2011/01/blog-post.html

Tidak ada komentar:

Posting Komentar