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:
Program = Struktur Data + Algoritma
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 pemrogramanmanapun, artinya penulisan algoritma independen dari bahasa pemrograman dankomputer 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 notasibahasa 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 olehkomputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau 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 mengkonversikansuatu permasalahan ke dalam bahasa pemrograman.
Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan olehkomputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan ketika translasi tersebut yaitu:
- Pendeklarasian variabel : Apakah bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel karena tidak semua bahasa pemrograman membutuhkannya.
- Pemilihan tipe data : Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu dipertimbangkan pada saat pemilihan tipe data.
- Pemakaian instruksi-instruksi : Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
- Aturan sintaks : Pada saat menulis program kita terikat dengan aturan sintaks dari bahasa pemrograman yang akan digunakan.
- Tampilan hasil : Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini kita perhatikan ketika mengkonversikannya menjadi program.
- Cara pengopersian compiler atau interpreter. Bahasa pemrograman yang digunakan termasuk kelompok compiler atau interpreter.
Beberapa persyaratan untuk membuat algoritma yang baik adalah:
- Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
- Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
- Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
- Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
- Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (dikelola).
- Portabilitas yang tinggi (Portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
Contoh Algoritma Kehiudpan Sehari-hari
EmoticonEmoticon