Proses pembuatan program komputer sampai diperolehnya hasil yang dikehendaki disebut dengan pemrograman komputer, dan dilaksanakan oleh pemrogram (programmer). Bahasa yang digunakan sebagai komunikasi diantara orang dengan komputer (untuk penulisan program) disebut bahasa pemrograman. Bahasa pemrograman mencakup notasi, simbol, pernyataan, tata bahasa, dan lain-lain aspek bahasa.
Penulisan program harus memenuhi aturan sintak (syntatic rule) dari bahasa pemrograman. Perbedaan mendasar diantara bahasa pemrograman dengan bahasa sehari-hari yang digunakan manusia ialah bahwa bahasa pemrograman digunakan sangat tepat dan tidak ada pengecualian atau arti ganda (ambiguities). Masalahnya ialah karena komputer tidaklah dapat berfikir dan menimbang-nimbang sebagaimana dapat dilakukan oleh manusia. Komputer hanya akan mengikuti perintah persis sebagaimana yang diberikan.
Dilihat kedekatannya kepada “bahasa manusia”, maka bahasa pemrograman dikelompokkan menjadi dua, yaitu:
1. Bahasa pemrograman tingkat rendah
Bahasa pemrograman tingkat rendah merupakan “bahasa ibu” dari komputer, yaitu bahasa yang tidak memerlukan penterjemah untuk dapat dipahami dan dimengerti oleh komputer. Atau dengan kata lain untuk berkomunikasi secara langsung dengan komputer orang perlu menggunakan bahasa tingkat rendah. Contoh dari bahasa pemrograman tingkat rendah ialah bahasa mesin (machine language).
Setiap perintah dalam bahasa mesin berupa kode numerik (menggunakan angka 0 dan 1). Demikian juga data disajikan dengan menggunakan kode numerik. Bentuk pengkodean numerik tersebut berbeda antara satu kmputer dengan komputer yang lain. Hal ini menyebabkan penggunaan bahasa mesin kurang praktis dan susah untuk digunakan atau diingat karena tidak sesuai dengan bahasa sehari-hari.
2. Bahasa pemrograman tingkat tinggi
Dengan kekurangan dari bahasa tingkat rendah sebagaimana telah dijelaskan, kemudian dikembangkan bahasa pemrograman yang lain dan diantaranya ialah bahasa pemrograman tingkat tinggi. Bahasa pemrograman tingkat tinggi mempunyai ciri-ciri sebagai berikut:
a. Penulisannya mirip dengan bahasa sehari-hari (bahasa Inggris)
b. Tergantugn pada mesin komputer yang digunakan
c. Bahasa pemrograman tingkat tinggi disebut juga dengan bahasa generasi ketiga.
Program yang ditulis dengan bahasa pemrograman tingkat tinggi tidak dapat langsung dimengerti oleh komputer, dan harus diterjemahkan dahulu oleh sebuah “penerjemah” ke dalam bahasa mesin untuk dapat dilaksanakan atau dieksekusi oleh Unit Pemroses Pusat. Terdapat banyak sekali bahasa pemrograman tingkat tinggi yang telah dikembangkan. Diantaranya bahasa pemrograman tersebut yang banyak digunakan antara lain:
1. BASIC (Beginer All-purpose Symbolic Instruction Code)
Mudah dipelajari, khususnya untuk pemula
Cukup popular pada awal pemakaian komputer personal
2. Cobol (Common Business Oriented Language)
Untuk aplikasi bisnis / administrasi
Banyak digunakan di bidang pebankan
Dapat digunakan untuk aplikasi ilmiah tapi dengan kemampuan terbatas
3. FORTRAN (Formula Translator)
Untuk komputasi ilmiah
Populer dan banyak digunakan
4. Pascal
Merupakan pemrograman terstruktur / sistematik
Digunakan untuk aplikasi ilmiah maupun bisnis / administrasi
5. C
Merupakan bahasa modular, sehingga efisien
Kode dari bahasa ini padat, sehingga mengurangi waktu kompilasi
Dilihat dari terapannya, Cobol dan Fortran merupakan bahasa pemrograman bertujuan khusus. Cobol untuk terapan di bidang bisnis dan administrasi sedangkan Fortran untuk terapan ilmiah. Pascal dan C merupakan bahasa pemrograman bertujuan umum, karena dapat digunakan untuk berbagai apliaksi. Dalam kenyataannya pengelompokkan tersebut tidak terlalu ketat digunakan.
Bahasa pemrograman terus digunakan, mengikuti perkembangan perangkat keras dan kebutuhan aplikasi. Sebagai contoh untuk bahasa generasi kelima digunakan untuk super komputer, dan digunakan antara lain untuk bidang kecerdasan buatan dan sistem pakar. Bahasa pemrograman yang termasuk generasi kelima menghasilkan program-program yang bersifat bahasa alamiah (natural language) dan menggunakan pengetahuan (knowledge) sebagai basis pengolahan.
Penerjemah Bahasa Pemrograman
Sebagaimana telah dijelaskan sebelumnya, instruksi atau program yang telah ditulis dengan bahasa pemrograman tingkat tinggi perlu diterjemahkan dahulu ke dalam bahasa mesin untuk dapat dieksekusi oleh komputer.
Kompiler (compiler), merupakan program yang menerjemahkan program yang ditulis di dalam bahasa pemrograman tingkat tinggi me suatu himpunan instruksi mesin spesifik yang disimpan dalam bentuk file. Selain kompiler terdapat program penterjemah yang lain ialah interpreter. Interpreter digunakan untuk menerjemahkan program yang ditulis dalam bahasa tingkat tinggi ke dalam bahasa mesin, dan menjalankannya baris demi baris.
Perbedaan antara kompiler dan interpreter antara lain adalah sebagai berikut :
Kompiler
– Menerjemahkan program sebelum dijalankan
– Kesalahan penulisan diketahui setelah proses kompilasi
– Penerjemahan bersifat tetap
– Perbaikan program dilakukan dengan kembali ke pengedit teks program
Interpreter
– Menerjemahkan program pada saat dijalankan
– Kesalahan penulisan langsung diberitahukan
– Penerjemahan bersifat sementara
– Perbaikan program dapat langsung dilaksanakan
Pemrograman Terstruktur
Prinsip utama dari pemrograman terstruktur ialah bahwa jika suatu proses telah sampai pada suatu titik tertentu, maka proses selanjutnya tidak boleh melompat ke baris sebelumnya, kecuali untuk proses berulang. Pemrograman terstruktur dimaksud untuk mendapatkan program yang didefinikan dengan baik, jelas, mudah dipahami, mudah ditelusuri, dan mudah dimodifikasi.
Tahapan Penyelesaian Masalah dengan Pemrograman Komputer
Langkah-langkah penyelesaian masalah dengan algoritma dan pemrograman adalah sebagai berikut :
1. Identifikasi masalah
Contoh :
Apa tugas-tugas yang harus dilaksanakan?, misalnya :
o Hitung nilai rata-rata mahasiswa yang ditentukan.
o Terjemahkan naskah pidato dari bahasa inggris menjadi bahasa indonesia
Apa persyaratan performansinya (ketepatan waktu/ruang/ kecepatan ) ?
2. Desain algoritma, meliputi :
Deskripsi (cara penulisan):
o natural language
o pseudo-code
o diagram (seperti flowchart)
Kriteria algoritma:
o Input: nol atau lebih
o Output: satu atau lebih
o Definisi/terjemahan/interprestasi: jelas, tepat untuk tiap instruksi
o Batasan: sebuah algoritma harus berhenti setelah sejumlah langkah, walaupun jumlah langkah boleh banyak tapi harus terbatas
Efektifitas: tiap instruksi harus berupa perintah dasar bukan merupakan bentukan dari beberapa perintah
3. Analisis Algoritma
Space complexity
o Berapa banyak space yang dibutuhkan
Time complexity
o Berapa lama waktu running algoritma
4. Implementasi
Pemutusan bahasa pemrograman yang akan digunakan
o C, C++, Lisp, Java, Perl, Prolog, assembly, dll.
Penulisan koding harus terdokumentasi dengan baik dan jelas.
5. Ujicoba
Mengintegrasikan feedback dari user, perbaiki bug, penjaminan kompatibelitas pada berbagai platform
6. Pemeliharaa