Jika melihat postingan saya sebelumnya, mengenai System Development Live Cycle (SDLC). Algoritma Pemograman menempati posisi dibagian Software dan dibagian Implementasi. Karena bagian Implementasi merupakan bagian dimana pemograman melakukan proses coding (Pembuatan Program).
Algoritma Pemograman berasal dari nama : Abu Ja'far Mohammed Ibn Musa Al - Khowarizmi yang merupakan Ilmuan persia yang menulis Kitab Al Jabrwal - Muqabala ( rules of restoration and reduction )
Algoritma Pemograman merupakan Urutan langka - langka logis tertentu untuk memecahkan suatu masalah.
Ciri - ciri penting :
- Harus berhenti setelah mengerjakan sejumlah langka terbatas
- Setiap langka - langka harus didefinisikan dengan tepat dan tidak berarti dua (Ambiguitas)
- Algoritma memiliki nol / lebih masukan
- Algoritma memiliki nol / lebih keluaran
- Harus efektif (Setiap langka harus sederhana, sehingga dapat dikerjakan dalam waktu yang masuk akal)
Konsep algoritma sering kali disetarakan
dengan sebuah resep. Sebuah resep biasanya memiliki daftar bahan atau
bumbu yang akan digunakan, urutan pengerjaan, dan bagaimana hasil dari
urutan pengerjaan tersebut. Apabila bahan yang digunakan tidak tertera
(tidak tersedia), maka resep tersebut tidak akan dapat dikerjakan.
Demikian juga jika urutan pengerjaannya tidak beraturan, maka hasil yang
diharapkan tidak akan dapat diperoleh.
Algoritma
yang berbeda, dapat diterapkan pada suatu masalah dengan syarat yang
sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran seberapa
banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan
masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan
dalam waktu yang singkat memiliki tingkat kerumitan yang rendah,
sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan
suatu masalah membutuhkan tingkat kerumitan yang tinggi.
Kriteria Pemilihan Algoritma
- Ada out put
Mengacu pada definisi algoritma, algoritma harus mempunyai out put yang harus merupakan solusi dari masalah yang sedang diselesaikan. - Efektifitas dan efesiensi
Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan, dalam arti algoritma harus tepat guna.
Dikatakan efisien jika waktu proses suatu algoritma relatif lebih singkat dan penggunakan memori komputernya lebih sedikit. - Jumlah langkahnya berhingga
Barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama. - (semi Algoritma) Berakhir
Penyelesaian masalah harus berhenti. Dan bias menimbulkan masalah lain. - Terstruktur
Penyelesaian masalah menggunakan langkah-langkah tersusun.
Perhatikan algoritma sederhana berikut:
Algoritma menghitung luas segitiga.
StartBaca data alas dan tinggiLuas adalah alas kali tinggi kali 0.5Tampilkan LuasStop
Algoritma
di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah.
Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua
langkah dilakukan hanya satu kali.
Sekilas
algoritma di atas benar, namun apabila dicermati maka algoritma ini
mengandung kesalahan yang mendasar, yaitu: tidak ada pembatasan pada
nilai data untuk alas dan tinggi. Bagaimana jika nilai data alas atau
tinggi adalah bilangan 0 atau bilangan negatif ? Tentunya hasil yang
keluar menjadi tidak sesuai dengan yang diharapkan. Dalam kasus seperti
ini kita perlu menambahkan langkah untuk memastikan nilai alas dan
tinggi memenuhi syarat, misalnya dengan melakukan pengecekan pada input
yang masuk. Apabila input nilai alas dan tinggi kurang dari 0, maka
program tidak akan dijalankan. Sehingga algoritma di atas dapat dirubah
menjadi seperti contoh berikut.
Contoh lain:
Hasil perbaikan algoritma perhitungan luas segitiga.
StartBaca data alas dan tinggiPeriksa
data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari
nol maka lanjutkan ke langkah ke 4 jika tidak maka stopLuas adalah alas kali tinggi kali 0.5Tampilkan LuasStop
Dari
penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma.
Pertama, algoritma harus benar. Kedua, algoritma harus berhenti dan
setelah berhenti, algoritma memberikan hasil yang benar.
ANALISA ALGORITMA
- Bagaimana merencakan suatu algoritma
Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik. - Bagaimana menyatakan suatu algoritma
- Bagaimana validitas suatu algoritma
- Bagaimana menganalisis suatu algoritma
- Bagaimana menguji program dari suatu algoritma
Cara/ prosedur algoritma
- Kata-kata
- Diagram alur
- Statement program
TAHAP PROSES UJI ALGORITMA
- Fase Debugging
Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya. - Fase profiling
Fase yang akan bekerja jika program tersebut sudah benar.
Pengertian LOGIKA
Logika
berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada
dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan
yang memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir /
cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.
Beda Algoritma dan Program
Program
adalah kompulan instruksi komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ini ditulis dengan
menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program
adalah suatu implementasi dari bahasa pemrograman.
Beberapa
pakar memberi formula bahwa bagaimanapun juga struktur data dan
algoritma berhubungan sangat erat pada sebuah program. Algoritma yang
baik tanpa pemilihan struktur data yang tepat akan membuat program
menjadi kurang baik, semikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan diantaranya:
- Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang mengeksekusinya.
- Notasi algoritmik dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu dalam membuat algoritma diperhatikan:
- Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
- Tidak ada notasi yang baku dalam penulisan teks algoritma seperti pada notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
- Tiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini karena teks algoritma tidak sama dengan teks program. Namun supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
- Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau Program = Struktur Data + Algoritma diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalankannya.
- Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
- Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.
Tidak ada komentar:
Posting Komentar