Tuesday, February 24, 2015

MENGENAL ALGORITMA DAN PEMROGRAMAN

A. Asal Usul Algoritma
     Ketika mencoba meneliti asal katanya, kata Algoritma mempunyai sejarah yang aneh. Orang hanya akan menemukan kata algorism yang berarti proses menghitung dengan menggunakan angka arab. Ahli sejarah matematika menemukan asal muasal kata tersebut yang berasal dari nama penulis buku berbahasa arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Nama Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudulkan Kitab Al Jabar Wal-Muqabala yang berarti “Buku pemugaran dan pengurangan” .

B. Definisi Algoritma dan Program
     Algoritma yaitu urutan langkah-langkah logis penyelesaian masalah yang tersusun secara sistematis dan harus logis. Kata logis merupakan inti dari algoritma. Langkah-langkah didalam algoritma haruslah logis dan dapat ditentukan nilainya benar atau salah. Dalam beberapa konteks, algoritma juga berarti spesifikasi urutan langkah untuk melakukan sebuah pekerjaan.
Sedang program merupakan serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada sebuah komputer. Komputer pada dasarnya membutuhkan keberadaan program agar bisa berjalan sesuai fungsinya, hal ini biasanya dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut pada prosesor komputer .
Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma memiliki hubungan yang sangat erat pada sebuah program. Algoritma yang baik tetapi tanpa struktur data yang tepat akan membuat program jadi kurang baik, dan juga sebaliknya.

C. Algoritma Dalam Informatika
     Algoritma merupakan jantung ilmu komputer atau informatika. Ada banyak cabang ilmu komputer yang menjurus kepada terminologi algoritma. Namun, janganlah beranggapan bahwa algoritma hanya identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari  kita pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Metode pembuatan sebuah kue atau masakan yang ada dalam sebuah resep juga dapat disebut sebagai sebuah algoritma. Pada setiap resep akan selalu ada urutan langkah-langkah membuat masakan. Apabila langkah-langkahnya tidak logis, masakan yang diinginkan pun tidak bisa dibuat. Kita akan membaca satu per satu langkah-langkah pembuatannya lalu mengerjakan prosesnya secara bertahap. Umumnya, pihak atau benda yang mengerjakan proses disebut pemroses (processor). Pemroses ini dapat berupa manusia, komputer, robot atau alat-alat lainnya. Pemroses melakukan sebuah proses dengan cara melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.


D. Program dan Bahasa Pemrograman
     Memprogram tidaklah sama dengan bahasa pemrograman. Memprogram yaitu tentang metodologi pemecahan masalah dan kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan bahasa pemrograman yaitu berarti menggunakan suatu bahasa aturan-aturan tata bahasanya, pernyataannya, tata cara dalam mengoperasikan compiler-nya, dan juga memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Untuk saat ini terdapat puluhan bahasa pemrogram, diantaranya bahasa rakitan (assembly), Fortran, Cobol, PL/I, Ada, Algol, Pascal, C, C++, Basic, LISP, PRG, dan bahasa-bahasa simulasi yaitu CSMP, Simscript, Dinamo, GPSS.
Berdasarkan penerapannya bahasa dibagi menjadi 2 yaitu :
Bahasa pemrograman bertujuan khusus, yang termasuk kelompok ini yaitu Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dsb.
Bahasa pemrograman bertujuan umum,yaitu bahasa pemrograman yang dapat digunakan untuk berbagai macam aplikasi.Bahasa pemrograman yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Bahasa bahasa yang bertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Misalnya Cobol, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Pada intinya bahasa bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Selain dari penerapannya bahasa juga dibagi atas tingkatannya yaitu :
Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melewati penerjemah (translator). Contohnya yaitu bahasa mesin. CPU akan mengambil instruksi dari memori, langsung mengerti dan akan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat sangat sederhana orientasinya lebih dekat ke mesin, dan sulit untuk dipahami oleh manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini akan lebih dekat ke mesin, meski untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
Bahasa tingkat tinggi, bahasa ini membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Akan tetapi, program dalam bahasa tingkat tinggi belum dapat langsung dilaksanakan oleh komputer tetapi  ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya akan dieksekusi oleh CPU. Berikut contoh bahasa tingkat tinggi adalah Pascal, PL/I, Cobol, Basic, Fortran, C,Ada, C++, dsb.

E. Penyajian Algoritma dan Nilainya
     Penyajian algoritma bisa dalam 2 bentuk penyajian yaitu dalam bentuk gambar dan tulisan. Algoritma yang disajikan dengan menggunakan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode meupakan kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga akan lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Untuk algoritma yang disajikan dengan gambar, misalnya flowchart. Pada umumnya, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara agar menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini pada umumnya digunakan ketika bahasa pemrograman yang akan kita gunakan telah diketahui dari awal.
Selain itu agar programnya baik algoritmanya harus baik juga berikut beberapa persyaratan untuk menjadi algoritma yang baik adalah :

Tingkat kepercayaannya tinggi (realibility). Hasil yang didapatkan dari proses harus berakurasi tinggi dan benar.

Pemrosesan yang efisien . Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.

Sifatnya umum. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih umum.

Dapat dikembangkan (expandable). Harus merupakan sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

Mudah dimengerti agar siapapun yang melihat, akan dapat memahami algoritma Anda.

Portabilitas yang tinggi . Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Precise (tepat, betul, teliti). Setiap instruksi haruslah ditulis dengan seksama dan tidak boleh ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti

Jumlah langkah atau instruksinya berhingga dan tertentu. Artinya, untuk kasus-kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.

Efektif, yaitu Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.


Harus terminate. Jalannya algoritma harus mempunyai kriteria berhenti.
Outputnya tepat. Apabila langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.




Rizky Kurnaidi (D1041141054)







No comments:

Post a Comment