Selasa, 12 April 2016

Mengenal Algoritma Pemograman

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).
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDxBYx9GtVKtSqdaT9ElSt-8nhu2rdyl3so5mF1dnY_5fWINl8PvgsPVl64SDRpDiDXSZHHNKNC-ZANY37iSRLx3SfGifyVB7xpyKNjqf-m0fxXEUQZmVuEx6rnCBHIIHWaz6y4moHatKW/s1600/algo.gif

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 :
  1. Harus berhenti setelah mengerjakan sejumlah langka terbatas
  2. Setiap langka - langka harus didefinisikan dengan tepat dan tidak berarti dua (Ambiguitas) 
  3. Algoritma memiliki nol / lebih masukan
  4. Algoritma memiliki nol / lebih keluaran
  5. Harus efektif (Setiap langka harus sederhana, sehingga dapat dikerjakan dalam waktu yang masuk akal)
Pelaksana Algoritma Pemograman adalah Komputer

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

  1. Ada out put

    Mengacu pada definisi algoritma, algoritma harus mempunyai out put yang harus merupakan solusi dari masalah yang sedang diselesaikan.
  2. 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.
  3. 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.
  4. (semi Algoritma) Berakhir

    Penyelesaian masalah harus berhenti. Dan bias menimbulkan masalah lain.
  5. Terstruktur

    Penyelesaian masalah menggunakan langkah-langkah tersusun.

Perhatikan algoritma sederhana berikut:
Algoritma menghitung luas segitiga.
Start
Baca data alas dan tinggi
Luas adalah alas kali tinggi kali 0.5
Tampilkan Luas
Stop
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.
Start
Baca data alas dan tinggi
Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop
Luas adalah alas kali tinggi kali 0.5
Tampilkan Luas
Stop
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.
Flowchart Hitung Luas Segitiga


ANALISA ALGORITMA

  1. Bagaimana merencakan suatu algoritma

    Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik.
  2. Bagaimana menyatakan suatu algoritma
  3. Bagaimana validitas suatu algoritma
  4. Bagaimana menganalisis suatu algoritma
  5. Bagaimana menguji program dari suatu algoritma


Cara/ prosedur algoritma

  1. Kata-kata
  2. Diagram alur
  3. Statement program


TAHAP PROSES UJI ALGORITMA

  1. 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.
  2. 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:
  1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang mengeksekusinya.
  2. Notasi algoritmik dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu dalam membuat algoritma diperhatikan:
  1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti pada notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  3. 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.
  4. 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.
  5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman.


Tidak ada komentar:

Posting Komentar

Author