Sabtu, 01 Oktober 2011

Alogaritma,diagram alir(flowchart) dan pseudocode

Algoritma


 

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.


 

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.

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.


 


 

Diagram Alir (Flowchart)

Didalam pemrograman sangat dikenal dengan diagram alir (flowchart). DiagramAlir (Flowchart) digunakan untuk membantu analis dan programmer untuk memecahkan masalah dalam pemrograman. Diagram Alir (Flowchart) adalah gambaran secara grafik yang terdiri dari simbol-simbol dari algoritma-algoritma dalam suatu program, yang menyatakan arah dari alur program.

Berikut ini merupakan simbol-simbol yang digunakan untuk menggambarkan diagram alir (flowchart):


 


Pedoman-Pedoman dalam Membuat Diagram Alir (Flowchart)

Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :

  1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
  2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
  3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja misalkan.
  5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
  7. Gunakan simbol-simbol flowchart yang standar.

Jenis-Jenis Diagram Alir (Flowchart)

Flowchart terbagi atas lima jenis, yaitu :

  1. Flowchart Sistem (System Flowchart)
  2. Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
  3. Flowchart Skematik (Schematic Flowchart)
  4. Flowchart Program (Program Flowchart)
  5. Flowchart Proses (Process Flowchart)

Contoh Penggunaan Diagram Alir (Flowchart)

• CONTOH DIAGRAM ALIR 1
Buatlah flowchart untuk menentukan penjumlahan 2 (dua) buah bilangan bulat.


• CONTOH DIAGRAM ALIR 2
Buatlah flowchart untuk menentukan bilangan genap dan bilangan negatif.



 

Pseudocode


 

Pseudocode merupakan deskripsi tingkat tinggi informal dan ringkas atas algorima pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin.Pseudocode biasanya tidak menggunakan elemen detail yang tidak diperlukan untuk kebutuhan pemahaman manusia atas suatu algoritma, seperti deklarasi variabel, kode ataupun subrutin untuk sistem yang bersifat spesifik. Bahasa pemrograman yang digunakan lebih diperbanyak dengan deskripsi dalam bahasa natural atas sesuatu hal yang bersifat detail, atau dengan menggunakan notasi matematis. Tujuan dari penggunaan pseudocode adalah untuk mempermudah manusia dalam pemahaman dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu algoritma. pseudocode umumnya digunakan dalam buku-buku ataupun publikasi karya ilmiah yang mendokumentasikan suatu algortima, dan juga dalam perencanaan pengembangan program komputer, untuk membuat sketsa atas struktur sebuah program sebelum program yang sesungguhnya ditulis.

Tidak ada satu pun standar yang berlaku atas pseudocode, sebuah program yang masih berupa pseudocode tidak dapat dijalankan. pseudocode menyerupai pula kerangka program (skeleton programs), termasuk dummy code, yang bisa dikompilasi tanpa kesalahan.Diagram alur dapat pula dimasukkan sebagai alternatif berbasis grafis sebuah pseudocode.


 

Penggunaan


 

Buku-buku teks dan publikasi ilmiah yang membahas tentang ilmu komputer serta komputasi numerik sering menggunakan pseudocode dalam mendeskripsikan suatu algoritma dengan tujuan agar programer dapat memahaminya meskipun mereka tidak memahami bahasa pemrograman yang digunakan. Dalam buku-buku teks biasanya disertakan pula pengantar yang membahas tentang notasi dan konvensi yang digunakan, termasuk di dalamnya notasi dan konvensi yang digunakan pada pseudocode. Tingkat kejelasan secara lebih detail atas penggunaan suatu bahasa pemrograman kadang-kadang digunakan pula sebagai pendekatan . sebagai contoh, buku teks Donald Knuth "The Art of Computer Programming" menggunakan bahasa assembly  untuk mikroprosesor yang sebenarnya tidak ada.

Seorang programer yang akan mengimplementasikan suatu algoritma yang bersifat spesifik, utamanya algoritma yang masih belum begitu dikenalinya, umumnya menggunakan pseudocode sebagai penjelasan, kemudian ia akan dengan mudah "menerjemahkan" penjelasan tersebut ke dalam bahasa pemrograman dan mengubahsuai agar dapat berinteraksi secara benar dalam program secara keseluruhan. Programer dapat pula memulai sebuah proyek dengan membuat sketsa kode dengan menggunakan pseudocode di atas kertas sebelum menulisnya dalam bahasa pemrograman yang sesungguhnya, sebagai mana dilakukan dalam pendekatan "top-down".


 

Sintaksis

Pseudocode umumnya tidak mengikuti aturan umum yang berlaku pada suatu bahasa pemrograman; dalam arti tidak ada suatu bentuk standar yang sistematik, namun meskipun penulis umumnya menggunakan tata cara ataupun sintaksis, contoh struktur kontrol, dari bahasa pemrograman umum yang digunakan. Umumnya sintaksis yang populer digunakan menggunakan sintaksis bahasa pemrograman pascal,BASIC,C, C++, JAVA, lisp, dan ALGOL. Deklarasi variabel umumnya tidak digunakan, begitu pula halnya dengan blok kode yang seringkali digantikan dengan satu baris penjelasan dalam bahasa manusia (natural).

Bentuk serta corak dari pseudocode bisa sangat beragam bergantung pada penulis dari masing-masing publikasi dan buku teks tersebut, dari yang model pseudocode paling sederhana hingga sangat detail sehingga hampir serupa dengan bahasa pemrograman yang sesungguhnya.

Contoh

<variable> = <expression>


 

if <condition>

do stuff

else

do other stuff


 

while <condition>

do stuff


 

for <variable> from <first value> to <last value> by <step>

do stuff with variable


 

function <function name>(<arguments>)

do stuff with arguments

return something


 

<function name>(<arguments>) // Function call

"Selamat membaca,semoga bermanfaat…"


 

Tidak ada komentar:

Poskan Komentar