Minggu, 20 Februari 2011

Ciri – Ciri Penting Dari Suatu Algoritma & Keuntungan Pembuatan Algoritma

Ciri – Ciri Penting Dari Suatu Algoritma

Menurut Donald E. Knuth dalam bukunya yang berjudul “The Art of Computer Programming”, sebuah algoritma memiliki 5 (lima) ciri-ciri penting, yakni :

  1. Algoritma harus berhenti setelah melakukan sejumlah langkah terbatas
  2. Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak bermakna ganda (ambiguous)
  3. Algoritma memiliki nol atau lebih masukan (input)
  4. Algoritma memiliki satu atau beberapa keluaran (output)
  5. Algoritma harus efektif

Algoritma pemrograman yang baik

memiliki ciri-ciri sebagai berikut:

  • Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah.
  • Menghasilkan output yang tepat dan benar dalam waktu singkat.
  • Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga tidak menimbulkan arti ganda.
  • Ditulis dengan format yang mudah dipahami dan diimplementasikan kedalam bahasa pemrograman.
  • Semua operasi yang dibutuhkan terdefinisi dengan jelas.
  • Semua proses harus selalu berakhir setelah sejumlah langkah dilakukan.

Algoritma sebagai kumpulan langkah-langkah dikatakan sebagai algoritma yang baik jika memiliki kriteria sebagai berikut:

1. setiap langkah yang ada pada algritma harus definite (jelas dan pasti). Sebagai contoh jika n mod 2 = 1 maka n adalah bilangan ganjil. Ini adalah sebuah pernyataan yang jelas dan pasti. Berbeda dengan pernyataan ganjil ?. Pernyataan yang kedua adalah pernyataan yang tidak jelas karena tidak didefinisikan apakah yang ganjil.

2. Algoritma atau program minimal memiliki sebuah output. Program atau algoritma yang tidak memilikioutput tidak akan dapat diketahui hasil dari penyelesaian masalah.

3. Harus ada stoping criteria yaitu kondisi yang membuat program tersebut berhenti. Jika program tidak memiliki stoping criteria maka program tidak dapat berhenti yang dapat mengakibatkan komputer hang.


Keuntungan Pembuatan Algoritma

Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.

referensi

http://lecturer.ukdw.ac.id/anton/download/algoTI1.pdf

http://usupress.usu.ac.id/files/Algoritma%20dan%20Pemrograman;%20Teori%20dan%20Praktik%20dalam%20Pascal%20Edisi%20Kedua_Normal_bab%201.pdf

http://www.scribd.com/doc/17252937/Algoritma-Dan-Pemrograman

Sabtu, 19 Februari 2011

JENIS-JENIS ALGORITMA

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 paradigm 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.
  • Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal dan mengandung beberapa bagian permasalahan yang tumpang tindih. Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
  • 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
Adapun jenis-jenis algoritma yang lain adalah :
1. Bahasa Semu (pseudo code)
yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan struktur.
2. Diagram Alir/Alur (Flowchart)
yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan.


Referensi:
Munir, Rinaldi. 2005. Strategi Algoritmik. Bandung. Institut Teknologi
Bandung.
Website, http://id.wikipedia.org/wiki/Algoritma

Minggu, 13 Februari 2011

Algoritma dan Pemrograman

Notasi Algoritma
Seperti yang telah dibahas sebelumnya, bahwa algoritma adalah rangkaian langkah-langkah untuk memecahkan suatu masalah. Algoritma dituliskan dalam sebuah notasi yang disebut Notasi Algoritma. Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat kerangka-kerangka suatu program. Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliriuan, ketaatan terhadap notasi perlu diperhatikan.
Di bawah ini ada 3 notasi yang digunakan dalam penulisan algoritma, yaitu :
1. Kalimat Deskriptif
2. Diagram Alir (Flowchart)
3. Pseudo-Code

1. Kalimat Deskriptif
Dengan notasi kalimat deskriptif ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas/gamblang. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman relatif sulit.

2. Diagram Alir (Flowchart)
Dengan diagram alir, deskripsi setiap langkah dijelaskan dalam sebuah bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dalam suatu program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sulit.
3. Pseudo-code
Dengan notasi pseudocode, deskripsi setiap langkah dijelaskan dengan menggunakan vacabulary (baku) atau dalam arti lain seperti ini pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Notasi pseudocode adalah yang paling umum di gunakan dalam penulisan algoritma karena pengkonversian ke bahasa pemograman relatif mudah.
Notasi pseudo-code terdiri dari :
•Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
•Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan dalam algoritma.
•Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi, fungsi, penjelasan, dll.

Aturan Penulisan Teks Algoritma
1. Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena memang tidak ada notasi baku dalam penulisan algoritma.
2. Agar notasi algoritma mudah ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkorespnden dengan notasi bahasa pemrograman secara umum.
3. Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
1.Judul (Header)
2.Kamus
3.Algoritma

Algoritma dan Pemograman

Pengertian Algoritma

Algoritma dan Pemrograman adalah jantung dari pemahaman mengenai pemrograman dan merupakan fondasi awal bagi ilmu komputer dan informatika. Apakah yang dimaksud dengan algoritma, algoritma berarti solusi. Ketika orang berbicara mengenai algoritma di bidang pemrograman, maka yang dimaksud adalah solusi dari suatu masalah yang harus dipecahkan dengan menggunakan komputer. Algoritma harus dibuat secara runut agar komputer mengerti dan mampu mengeksekusinya. Analisis kasus sangat dibutuhkan dalam membuat sebuah algoritma, misalnya proses apa saja yang sekiranya dibutuhkan untuk menyelesaikan masalah yang harus diselesaikan. Ketajaman dalam menganalisis sebuah kasus dapat dilatih dengan berlatih menyelesaikan kasus-kasus algoritma, mulai dari yang paling sederhana sampai rumit. Kesabaran sangat dibutuhkan dalam mempelajari algoritma. Belajar membuat algoritma seperti halnya belajar menyetir di mana harus belajar membuat algoritma dan memprogram sendiri (mengetik sendiri) untuk menjadi bisa. Belajar algoritma harus dengan sabar dan menghargai tahap demi tahap pembelajaran (menghargai proses) untuk dapat memahami algoritma. Belajar algoritma memerlukan banyak latihan (jam terbang dalam membuat algoritma) agar menjadi andal (practice make perfect). Jadi boleh dikatkan bahwa pengertian algorima itu adalah Urutan langkah-langkah untuk memecahkan masalah atau Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah.

Pengertian Pemograman

Pemrograman adalah sebuah bahasa yang dimengerti oleh komputer.Instruksi yang dimasukkan oleh user (pemakai) ke dalam memory komputer selalu akan dibaca, dimengerti dan dilaksanakan oleh prosesor. Bahasa pemrograman adalah teknik komunikasi standar untuk mengekspresikan instruksi kepada komputer. Layaknya bahasa manusia, setiap bahasa memiliki tata tulis dan aturan tertentu. Bahasa pemrograman memfasilitasi seorang programmer untuk secara spesifik apa yang akan dilakukan oleh komputer selanjutnya, bagaimana data tersebut disimpan dan dikirim, dan apa yang akan dilakukan apabila terjadi kondisi yang variatif. Bahasa pemrograman dapat diklasifikasikan menjadi tingkat rendah, menengah, dan tingkat tinggi. Pergeseran tingkat dari rendah menuju tinggi menunjukkan kedekatan terhadap ”bahasa manusia”
1. Bahasa Pemrograman Tingkat Tinggi
Merupakan bahasa tingkat tinggi yang mempunyai ciri-ciri mudah dimengerti karena kedekatannya terhadap bahasa sehari – hari. Sebuah pernyataan program diterjemahkan kepada sebuah atau beberapa mesin dengan menggunakan compiler.Sebagai contoh adalah : JAVA, C++, .NET
2. Bahasa Pemrograman Tingkat Rendah
Bahasa pemrograman generasi pertama. Bahasa jenis ini sangat sulit dimengerti karena instruksinya menggunakan bahasa mesin. Disebut juga dengan bahasa assembly merupakan bahasa dengan pemetaan satu – persatu terhadap instruksi komputer. Setiap intruksi assembly diterjemahkan dengan menggunakan assembler.
3. Bahasa Pemrograman Tingkat Menengah
Dimana penggunaan instruksi telah mendekati bahasa sehari – hari, walaupun masih cukup sulit untuk dimengerti karena menggunakan singkatan – singkatan seperti STO yang berarti simpan (STORE) dan MOV yang artinya pindah (MOVE). Yang
tergolong dalam bahasa ini adalah Fortran