PENGERTIAN
BAHASA PEMROGRAMAN
Bahasa
pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa
pemrograman komputer, menurut Wikipedia adalah instruksi standar untuk memerintah komputer yang
merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk
mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer
dapat menentukan secara persis data mana yang akan diolah oleh komputer,
bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara
persis yang akan diambil dalam berbagai situasi.
Fungsi Bahasa
Pemrograman
Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa pemrograman tersebut berupa program/aplikasi. Contohnya adalah program yang digunakan oleh kasir di mal-mal atau swalayan, penggunaan lampu lalu lintas di jalan raya, dll.
Bahasa Pemrograman yang kita kenal ada banyak sekali di belahan dunia, tentang ilmu komputer dan teknologi dewasa ini. Perkembangannya mengikuti tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh bahasa pemrograman yang kita kenal antara lain adalah untuk membuat aplikasi game, antivirus, web, dan teknologi lainnya.
Secara umum
terdapat 4 kelompok Bahasa Pemrograman yaitu:
1. Object
Oriented Language (Visual dBase, Visual FoxPro, Dephi, Visual C)
2. High level
(Seperti Pascal dan Basic),
3. Middle level
(Seperti Bahasa C), dan
4. Low level
(Seperti Bahasa Assembly).
Menurut
tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
Bahasa Mesin,
yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner,
contohnya 01100101100110
Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa
rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer
dengan memakai kode-kode singkat (kode mnemonic), contohnya
[kode_mesin|MOV], SUB, CMP, JMP, JGE, JL, LOOP, dsb.
Bahasa Tingkat Menengah, yaitu bahasa komputer yang
memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa
Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {,
}, ?, <<, >>, &&, ||, dsb.
Bahasa
Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur
kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Komputer dapat mengerti bahasa manusia itu diperlukan
program compiler atau interpreter.
COMPILER DAN
INTERPRETER
Compiler
adalah
suatu program yang menerjemahkan bahasa program ( source code) kedalam bahasa
objek (obyek code). Compiler menggabungkan keseluruhan bahasa program,
mengumpulkannya dan kemudian menyusunnya kembali.
Kompiler
memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer,
program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat
disbanding program yang diperoduksi oleh interpreter, disamping itu juga
bersifat independen. compiler juga mempunyai beberapa fungsi penting,
seperti diagnostik, contohnya kemampuan pendeteksian error/kesalahan.
Pelannggaran spesifikasi HLL akan terdeteksi dan dilaporkan kepada programmer
oleh compiler agar segera diperbaiki hingga mempermudah pembentukan machine
language equivalent. Contoh program yang menggunakan compiler adalah Visual
Basic, Visual Delvi, dan Pascal. Arsitektur kompilator modern biasanya bukan
lagi merupakan program tunggal namun merupakan rangkaian komunikasi antar
program dengan tugas spesifik masing-masing. Program-program tersebut beserta
tugasnya secara umum terdiri dari:
Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa
tingkat rendah (assembly).
Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek
dalam bahasa mesin.
Linker, yang menerima berkas objek keluaran assembler untuk kemudian
digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program
yang dapat dieksekusi (executable).
Proses
kompilasi dikelompokan ke dalam dua kelompok besar yaitu :
1. Tahap
Analisa (Front-end)
Menganalisis
source code dan memecahnya menjadi bagian-bagian dasarnya. Menghasilkan kode
level menengah dari source code input yang ada.
2. Tahap
Sintesa (Back-end)
Membangun program
sasaran yang diinginkan.
Tahap-tahap
yang harus dilalui pada saat mengkompilasi program, yaitu:
Tahap
analisa (front-end)
1. Analisa
Leksikal
2. Analisa
Sintaks
3. Analisa
Semantik
4. Pembangkit
Kode
Tahap sintesa
(back-end)
5. Code optimization
6. Object code
generation
INTERPRETER
Dalam
ilmu komputer, penerjemah atau lebih dikenal dengan interpreter menurut Wikipedia merupakan perangkat lunak yang berfungsi melakukan eksekusi
sejumlah instruksi yang ditulis dalam suatu bahasa pemrograman, sebuah
penerjemah dapat berarti:
Mengeksekusi
kode sumber secara langsung, atau Menerjemahkannya
ke dalam serangkaian p-code kemudian mengeksekusinya, atau Mengeksekusi
kode yang telah dikompilasi sebelumnya oleh kompiler yang merupakan bagian dari
sistem penerjemahan.
Proses
ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah
langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses
penterjemahan dilaksanakan sebelum program tersebut dieksekusi.
Interpreter
atau dalam bahasa Indonesia dikenal sebagai Juru Bahasa berbeda dengan
Translator atau penterjemah dalam segi media yang dipakai untuk menerjemahkan.
Interpreter akan menterjemahkan bahasa sumber ke dalam bahasa sasaran secara
langsung atau orally sementara translator akan menerjemahkan bahasa sumber ke
bahasa sasaran secara tertulis.
Java
dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini
menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes
dapat dijalankan pada platform yang berbeda-beda.
Tugas
interpreter adalah mengartikan source code berisi bahasa pemprograman
tersebut sehingga instruksinya dapat dimengerti dan dapat dijalankan oleh
komputer. Selain itu Interpreter juga di defenisikan sebagai suatu program
komputer yang mampu menerjemahkan program dari bahasa tingkat tinggi yang
dimengerti oleh manusia dan langsung menjalankan program tersebut. Setiap kali
kita membutuhkan program tersebut, maka interpreter akan bekerja menerjemahkan
program dari bahasa tingkat tinggi ke bahasa mesin untuk dieksekusi. Jadi
siklus kerja ketika kita membuat program dengan interpreter adalah: tulis/edit
program, eksekusi.
Sedangkan
Perl, Python, Ruby, dan MATLAB adalah beberapa contoh perangkat lunak
penerjemah bertipe 2, sementara Java termasuk dalam kategori tipe 3, namun
dalam beberapa kasus Java dapat digolongkan pula ke dalam kategori tipe 2.
Meskipun penerjemahan dan kompilasi merupakan dua jenis mekanisme implementasi
pada sebuah bahasa pemrograman, keduanya tidak berarti memiliki perbedaan
secara signifikan. Hal ini disebabkan cara kerja sebuah penerjemah dalam banyak
hal adalah sama seperti halnya yang dilakukan oleh kompiler.
Penggunaan
istilah "bahasa pemrograman terjemahan" dan "bahasa pemrograman
kompilatif" umumnya digunakan sebatas untuk membedakan implementasi dari
bahasa tersebut menggunakan model penerjemahan atau kompilatif.
Bahasa pemrograman yang menggunakan interpreter cenderung membutuhkansoftware simulasi yang besar untuk operasi primitive, manajemen penyimpanan, danfitur-fitur bahasa. Translator untuk bahasa pemrograman yang menggunakaninterpreter cenderung lebih sederhana, dengan kompleksitas implementasi datangdari software simulasi.
Cara kerja
interpreter adalah ;
· kode
program yang dibuat oleh programmer ke dalam bahasa mesin.
· mengeksesusi
perintah baris demi baris dengan mengikuti logika yang ada.
· Secara
garis besar, Interpreter menterjemahkan baris per baris.
· penyusunan
program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada
beberapa kesalahan secara kaidah dalam program.
· kode
program tidak dapat dirahasiakan.
perbedaan antara Compiler dengan
Interpreter terperinci sebagai berikut :
1.
Jika
hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode
sumber. Kalau interpreter butuh kode sumber.
2.
Jika
dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam
2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking (
penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses
terpisah.
3.
Jika
compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai
macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin.
Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan
berbagai macam library.
4.
Interpreter
cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil
). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek
kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek
dengan library yang diperlukan.
5.
Pada
kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa
dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih
kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau
interpreter susah atau bahkan tidak bisa dioptimasikan.
6.
Interpreter
menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh
instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan
lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program
sumber atau compilernya.
7.
Pada
interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji
sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan
pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih
lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu
untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika
program tak mengandung kesalahan secara kaidah sama sekali.
8.
Pada
interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi
dijalankan selalu harus diterjemahkan terlebih dahulu. Selain itu, saat program
dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori
selalu digunakan baik untuk program maupun interpreter. Sedangkan pada
compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi
proses penerjemahan.
9.
Pada
interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler,
kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam
bentuk kode mesin.
Tingkatan Bahasa Pemrograman
Seperti juga pada bahasa yang
digunakan manusia secara umum, bahasa pemrograman banyak sekali jenisnya.
Bahasa pemrograman dapat dikelompokkan berdasarkan tingkatan, seperti bahasa
tingkat rendah, bahasa tingkat sedang, bahasa tingkat tinggi, berikut
penjelasan pada masing-masing singkatan.
- Bahasa Pemrograman Tingkat
Tinggi
Menurut bahasa pemrograman
tingkat tinggi adalah sebuah bahasa pemrograman yang jika dibandingkan dengan
bahasa pemrograman tingkat rendah memiliki sifat lebih mudah digunakan, lebih
portabel (mudah diadaptasikan) antar-platform, dan lebih abstrak. Bahasa-bahasa
semacam ini sering melakukan abstraksi terhadap beberapa operasi CPU, seperti
halnya pengaksesan memori. Sedangkan menurut blog ini bahasa pemrograman adalah yang dekat dengan bahasa
manusia, kelebihan utama dari bahasa ini adalah mudah untuk di baca, tulis,
maupun diperbaharui, sebelum bisa dijalankan program harus terlebih dahulu
di-compile. Contoh Ada, Algol, BASIC, COBOL, C, C++, FORTRAN, LISP, dan Pascal,
dsb.
Bahasa tingkat tinggi bersifat
portable. Program yang dibuat menggunakan bahasa tingkat tinggi pada suatu
mesin komputer bersistem operasi tertentu, hampir 100% bisa digunakan pada
berbagai mesin dengan aneka sistem operasi. Kalaupun ada perbaikan sifatnya
kecil sekali.
- Bahasa Pemrograman Tingkat
Sedang
Menurut istilah
lain bahasa pemrograman tingkat
sedang adalah Bahasa tingkat menengah (middle level language) adalah
bahasa yang aturan penulisannya mendekati bahasa manusia serupa dengan bahasa
tingkat tinggi tetapi memiliki kemampuan kecepatan proses dan pengaksesan
perangkat keras yang mirip dengan bahasa tingkat rendah (low level language).
- Bahasa Pemrograman Tingkat Rendah
Dan bahasa pemrograman tingkat
rendah menurut blog ini adalah bahasa
pemrograman generasi pertama. Bahasa jenis ini sangat sulit dimengerti karena
instruksinya menggunakan bahasa mesin. Disebut juga dengan bahasa assembly
merupakan bahasa dengan pemetaan satu – persatu terhadap instruksi komputer.
Setiap intruksi assembly diterjemahkan dengan menggunakan assembler . Contoh
bahasa pemrograman ini adalah bahasa mesin dan bahasa asembly.
Bahasa mesin merupakan
representasi tertulis machine code atau kode mesin, yaitu kode operasi suatu
mesin tertentu. Bahasa ini bersifat khusus untuk mesin tertentu dan
“dimengerti” langsung oleh mesin, sehingga pelaksanaan proses sangat cepat.
Bahasa mesin kelompok komputer tertentu berlainan dengan bahasa mesin kelompok
komputer yang lain. Abstraksi bahasa ini adalah kumpulan kombinasi kode biner
“0″ dan “1″ yang sangat tidak alamiah bagi kebanyakan orang - kecuali insinyur
pembuat mesin komputer. Karena tidak alamiah bagi kebanyakan orang, bahasa
mesin juga disebut bahasa tingkat rendah.
Bahasa rakitan (assembly
language) merupakan notasi untuk menyajikan bahasa mesin yang lebih mudah
dibaca dan dipahami oleh manusia. Bahasa ini sudah menggunakan simbol alpabet
yang bermakna (mnemonic). Pindahkan ke register AX nilai 1111.Proses data oleh
komputer berdasarkan perintah bahasa rakitan adalah cepat. Meski demikian masih
merepotkan-bahkan bagi kebanyakan pemrogram, karena masih harus mengingat-ingat tempat
penyimpanan data. Bahasa rakitan juga bersifat khusus untuk mesin tertentu.
Sumber :