Algoritma
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Diagram Alur
sering digunakan untuk menggambarkan sebuah 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.
Belajar algoritma dasar
Notasi Penulisan Algoritma
Penulisan algoritma tidak tergantung dari spesifikasi bahasa
pemograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi
bahasa pemograman, tetapi dapat diterjemahkan ke dalam berbagai bahasa
pemograman. Berikut adalah contoh notasi algoritma
- Notasi yang dinyatakan dalam kalimat deskriptif
Dengan otasi ini , deskriptif setiap langkah dijelaskan dengan bahasa yang jelas. Notasi ini cocok untuk algoritma yang pendek. Tapi untuk masalah algoritma yang panjang, notasi ini jelas kurang effektif. Selain itu pengkonversian notasi algoritma ke notasi bahasa program cendrung agak susah.
Contoh:
Algoritma mencari luas persegi panjang ;
Diketahui panjang dan lebar sebuah persegi panjang. Carilah luas dan keliling persegi panjang.
Deskripsi :
1. Input panjang persegi panjang.
2. Input lebar persegi panjang.
3. Cari luas persegi panjang dengan rumus; panjang kali lebar.
4. Cari keliling persegi panjang dengan rumus; dua kali sisi panjang ditambah dua kali sisi lebar.
5. Keluarkan luas dan keliling sebagai output..
6. Penghitungan selesai.
1. Input panjang persegi panjang.
2. Input lebar persegi panjang.
3. Cari luas persegi panjang dengan rumus; panjang kali lebar.
4. Cari keliling persegi panjang dengan rumus; dua kali sisi panjang ditambah dua kali sisi lebar.
5. Keluarkan luas dan keliling sebagai output..
6. Penghitungan selesai.
- Flow chart
Flow chart atau bagan alir merupakan gambar atau bagan yang memperlihatkan
urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan
dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahasa pemrograman.
Notasi penulisan algoritma dengan flow chart cocoknya untuk algoritma yang
pendek. Sementara untuk masalah algoritma yang panjang, notasi ini kurang
effektif dan penkorversian notasi algoritma ke notasi bahasa pemograman
cendrung agak sukar.
Notasi Penulisan Algoritma
'Simbol-simbol pada flow chart'
Berikut adalah simbol-simbol yang sering digunakan pada sebuah flow chart sedehana;
Berikut adalah simbol-simbol yang sering digunakan pada sebuah flow chart sedehana;
digunakan
untuk deklarasi proses
|
||
|
||
|
||
Contoh Flow Chart Sederhana
Berikut saya tampilkan contoh flow chart program sederhana
|
No comments:
Post a Comment