Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program). Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. Menurut P. Insap Santosa Instruksi (statement) yang dimaksud adalah cara penulisan (Syntax) sesuai dengan bahasa pemrograman digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan.
Bahasa pemrograman adalah bahasa buatan yang digunakan untuk mengendalikan perilaku dari sebuah mesin, biasanya berupa mesin komputer, sehingga dapat digunakan untuk memberitahu komputer tentang apa yang harus dilakukan.
1. Klas ifikasi bahasa pemrograman menurut Ge neras i
a. First Generation Language (1GL)
Bahasa pemrograman ini berupa kode-kode mesin yang hanya bisa dipahami oleh mikroprosesor.
b. Second Generation Language (2GL)
Bahasa pada generasi ini adalah assembly language, dimana bahasa ini masih menggunakan kode-kode yang disebut dengan mnemonic. Bahasa assembly disebut sebagai generasi kedua karena bahasa ini bukan bahasa asli mikroprosesor, meskipun begitu programer tetap harus mengetahui keunikan dari masing-masing mikroprosesor (register dan jenis instruksi).
c. Generasi ketiga
d. Bahasa pemrograman generasi ketiga sengaja didesain supaya mudah dipahami oleh manusia. Pada generasi ini mulai dikenalkan istilah variabel, tipe data, ekspresi aljabar dan sudah mendukung pemrograman terstruktur.
Contoh bahasa: FORTRAN, COBOL, ALGOL, BASIC, C, C++, Pascal, Java.
e. Generasi keempat
Pada generasi ini, bahasa pemrograman didesain untuk mengurangi effort dan mempercepat proses pembuatan program. Pada 3GL, pembuatan program membutuhkan waktu yang lama dan mudah sekali didapati error. Pada 4GL, telah menggunakan metodologi dimana sebuah perintah dapat menghasilkan beberapa instruksi 3GL yang kompleks dengan sedikit error. Contoh bahasa:
· Pemrograman umum : DataFlex, WinDev, PowerBuilder
· Basis data : SQL, Progress 4GL
· Manipulasi data, analisis dan pelaporan : ABAP, Matlab, PL/SQL.
f. Generasi kelima
Bahasa pemrograman generasi kelima disebut sebagai constraint - programming atau declarative-programming.
Program tidak dituliskan dalam bentuk algoritma melainkan dituliskan batasan atau fakta dari sebuah lingkup masalah, sehingga program akan menghasilkan luaran dalam bentuk solusi.
Bahasa pemrograman ini digunakan untuk membangun sistem kecerdasan buatan dan belum digunakan secara meluas di dunia industri. Contoh bahasa: Prolog, LISP, Mercury.
2. Klas ifikasi bahasa pemrograman menurut Tingkatan
a. Low-level programming language
Tingkat bahasa pemrograman ini disebut ”rendah” (low level) bukan karena posisinya berada di bawah, melainkan karena kurangnya abstraksi (penggambaran kode instruksi) antara bahasa natural dengan bahasa mesin. Oleh karena itu, bahasa di tingkat ini sering disebut sebagai ‟bahasa mesin‟.
Bahasa pemrograman yang masuk kategori ini adalah bahasa mesin itu sendiri (1GL) dan bahasa assembly (2GL).
b. High-level programming language (HLL)
Bahasa pemrograman di tingkat ini memiliki abstraksi yang lebih banyak dan terdapat kemiripan dengan bahasa natural (bahasa Inggris), lebih mudah untuk digunakan dan mudah untuk dipindahkan antar platform.
c. Very high-level programming language (VHLL)
Bahasa ini memiliki abstraksi yang lebih tinggi dibandingkan HLL, dan digunakan untuk menunjang produktifitas programer profesional. Biasanya VHLL digunakan hanya untuk tujua n yang spesifik, misalnya untuk keperluan bisnis: mengolah data, membuat laporan, dsb.
3. Paradigma Pemrograman
Paradigma pemrograman merupakan sebuah cara pandang seorang programmer dalam menyelesaikan sebuah masalah dan memformulasikannya kedalam sebuah bahasa pemrograman. Terdapat beberapa paradigma pemrograman, antara lain:
a. Paradigma Impe ratif
Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan satu perintah kemudian jalankan perintah yang selanjutnya. Sebuah program imperatif tersusun dari sekumpulan urutan perintah yang akan dijalankan oleh komputer. Pemrograman prosedural merupakan salah satu contoh dari paradigma ini, dan seringkali dianggap sebagai sebuah sebuah paradigma yang sama.
Ø Ide dasarnya adalah dari model komputer Von Neumann.
Ø Eksekusi langkah-langkah komputasi diatur oleh sebuah struktur kontrol.
Ø Berdasarkan urutan-urutan atau sekuensial.
Ø Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.
Contoh bahasa pemrograman: Fortran, Algol, Pascal, Basic, C
b. Paradigma Fungsional
Pemrograman Fungsional adalah sebuah paradigma yang menjadikan fungsi matematika sebagai penentu dalam eksekusi komputasi. Fungsi tersebut merupakan dasar utama dari program yang akan dijalankan. Paradigma ini lebih banyak digunakan dikalangan akademis daripada produk komersial, terutama yang murni fungsional.
Contoh bahasa fungsional adalah APL, Erlang, Haskel, Lisp, ML, Oz dan Scheme.
c. Paradigma Logika
Umumnya digunakan pada domain yang berhubungan dengan ekstraksi pengetahuan yang berbasis kepada fakta dan relasi.
Dalam paradigma ini, logika digunakan secara murni untuk representasi bahasa deklaratif yang kebenarannya ditentukan oleh programmer, sedangkan pembukti-teorema atau model pembangkit digunakan sebagai pemecah masalah.
Ø Berasal dari pembuktian otomatis didalam intelegensia buatan.
Ø Berdasar kepada aksioma, aturan dan query.
Ø Eksekusi program menjadi proses pencarian secara sistematik
Ø dalam sekumpulan fakta, dengan menggunakan sekumpulan aturan.
Beberapa contoh bahasa pemrograman: ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog1.6.4
d. Paradigma Berorientasi Obyek
Pemrograman berorientasi obyek muncul untuk mengatasi masalah kompleksitas dari sebuah perangkat lunak sehingga kualitas dari perangkat lunak tersebut dapat dikelola dengan lebih mudah.
Caranya adalah dengan memperkuat modularity dan reusability didalam perangkat lunak tersebut. Pemrograman berorientasi obyek menggunakan obyek dan interaksi antar obyek dalam penyusunan sebuah perangkat lunak. Paradigma ini semakin banyak digunakan karena lebih mudah dalam menggambarkan kondisi yang ada pada dunia nyata.
Ø Ide dari interaksi antar obyek yang ada pada dunia nyata.
Ø Antar obyek saling berinteraksi dengan saling mengirimkan pesan (message).
Terdapat beberapa karakteristik utama, yaitu: Abstraksi, Enkapsulasi, Pewarisan dan Polimorfisme.