Mengenal Bahasa Pemrograman Compiled Dan Interpreted

Saya dulu ketika awal-awal mengenal dunia Internet hanya mengenal sebuah bahasa pemrograman, yaitu PHP. Saat itu saya sangat senang sekali dapat membuat sebuah situs web yang sederhana untuk tampilan ponsel. Maklum, saat itu sedang ngetrendnya ponsel Java dan juga Symbian sehingga banyak komunitas pengguna ponsel yang membuat situs, biasanya untuk forum ataupun berbagi berkas game, aplikasi dan wallpaper.

Kemudian saya mengetahui jika bahasa pemrograman tidak hanya PHP saja. Ada java yang saat itu populer untuk membuat game dan aplikasi. Ada juga bahasa pemrograman C yang biasanya digunakan sebagai desktop.

Compiled dan Interpreted Language

Hal mendasar yang dapat membedakan banyak bahasa pemrograman yang ada di dunia ini adalah jenisnya. Ada Compiled language dan ada pula Interpreted Language. Lantas Apa yang dimaksud dengan dua hal itu?

Perbedaan eksekusi program compiled dan interpreted

Compiled

Seperti yang kita ketahui, sebuah mesin cpu hanya akan dapat memahami bahasanya sendiri, yaitu bahasa mesin. Mereka tidak memahami bahasa pemrograman tingkat tinggi (seperti PHP, C ataupun Golang). Nah disinilah proses kompilasi berguna.

Misalnya saja, dalam beberapa bahasa pemrograman kita dapat menggunakan simbol "+" untuk melakukan penambahan pada operasi aritmatika. Compiler akan menerjemahkan tersebut kedalam instruksi "ADD" pada bahasa mesin agar dapat dieksekusi oleh komputer.

Output dari Compiled language ini adalah executable program (dalam Windows berformat .exe atau binary dalam Linux) sehingga program dapat langsung dijalankan berkali-kali setelah terkompilasi.

Contoh bahasa pemrograman Compiled ini adalah : C, C++, Go dan Pascal.

Interpreted

Berbeda dengan compiled language, dimana program harus dikompilasi menjadi bahasa mesin terlebih dahulu agar dapat dijalankan oleh sistem operasi. Interpreted language ini program yang kita buat **tidak akan secara langsung dieksekusi oleh mesin**. Interpreter akan melakukan ekseskusi fungsi-fungsi atau instruksi-instruksi yang ada menggunakan program interpreter mereka (normalnya interpreter harus dikompilasi dalam bahasa mesin, atau bahkan ditulis langsung dalam bahasa mesin). Misalnya operator "+" akan diterjemahkan kedalam fungsi interpreter itu sendiri agar dapat dieksekusi oleh mesin.

Contoh interpreted language disini adalah PHP. PHP sendiri interpreternya ditulis menggunakan bahasa pemrograman C. Sebelum dapat menjalankan program PHP secara langsung. Interpreter PHP ini dikompilasi menjadi executable binary dari sistem operasi.

Selain PHP, ada juga Perl dan Python yang merupakan jenis interpreted language.

JVM

Bahasa pemrograman Java berbeda dengan bahasa pemrograman lain, Java menggunakan JVM (Java Virtual Machine). Pertama-tama program Java akan dikompilasi tetapi tidak menjadi bahasa mesin tetapi menjadi byetecode (selengkapnya baca di Wikipedia).

Proses running kode java melalui JVM

Setelah dikompilasi menjadi bytecode barulah program akan diinterpeterkan oleh JVM tersebut. Java akan memonitor program tersebut. Ketika menggunakan fitur JIT (Just In Time) Java, kode yang sering dijalankan akan dikompilasi oleh JVM menjadi kode mesin.

Performa

Secara performa tentunya Compiled language akan berjalan lebih cepat dibandingkan dengan interpreted language. Karena, ketika kita menggunakan compiled language hardware dapat langsung mengeksekusi kode mesin. Sedangkan ketika menggunakan interpreted language, setiap kali melakukan eksekusi program, program harus diterjemahkan dulu oleh si interpreter.

Kecepatan Pengembangan

Ini adalah salah satu alasan kenapa pembuatan website kebanyakan akan menggunakan interpreted language (PHP). Ketika kita melakukan update atau perubahan, tidak perlu melakukan kompilasi ulang program, dapat langsung dijalankan. Berbeda dengan Compiled language, setiap kali kita melakukan perubahan harus melakukan kompilasi ulang agar program dapat dijalankan.

Ketika menggunakan Compiled Language, proses kompilasi akan berhenti ketika program menemukan sebuah kesalahan. Sedangkan, interpreted language akan menampilkan kesalahan hanya ketika program sedang dieksekusi.

Kesimpulan

Bagi anda yang ingin membuat sebuah program yang memerlukan performa yang cepat dan efisien tentunya menggunakan compiled language akan lebih baik. Sedangkan, jika anda ingin membangun sebuah program yang memerlukan update kode secara terus menerus dan bahasa pemrograman yang lebih mudah dipahami interpreted language akan cocok untuk anda.

Terima Kasih telah membaca!

Referensi :