Compiled vs Interpreted Language
trying to connect the learning puzzles

Apa yang pertama kali terlintas di otak kita ketika mendengar Interpreted Language dan Compiled Language?

Hingga beberapa saat yang lalu, I realiy have no idea mengenai dua hal tersebut. Yang saya tah hanyalah Programming Language ..
Mungkin sering terdengar, dan tanpa disadari pernah kita gunakan salah satu atau bahkan keduanya dalam pembuatan suatu program .. Hanya saja pada saat itu selama program kita dapat dijalankan, problem solved ! (....)

Namun tidak ada salahnya jika kita sedikit penasaran tentang kedua konsep tersebut (sepertinya hal yang wajib diketahui setiap programmer atau setiap computer geeks).

So let's try to solve this puzzle!

Translator

Kita akan mulai dari translator yang secara harfiah berarti penerjemah. Namun sebelum itu, kita akan mencoba mengingat-ingat kembali fakta-fakta yang terjadi.

Yang pertama, faktanya manusia memahami natural languages (Bahasa Indonesia, Bahasa Inggris, Basaha Daerah, dsb) dan mesin memahami machine codes yang dalam hal ini adalar biner (0 dan 1).

Kemudian fakta kedua adalah kebanyakan programmer memberikan perintah ke komputer dengan menggunakan bahasa pemrograman tertentu. Mengapa? Ya, seperti yang kita ketahui, dalam bahasa pemrograman terdapat sintaks-sintaks yang mudah dipahami oleh manusia baik itu definisi perintah-perintah (print, if, read, dsb) maupun struktur dari sintaks. Hal tersebut sangat membantu manusia untuk menuliskan perintah jika dibandingkan menuliskan perintah langsung menggunakan kode biner.

Pertanyaannya, bagaimana mengubah kode program yang ditulis dengan bahasa pemrograman tertentu menjadi bahasa yang dipahami oleh mesin (menjadi biner)?

Disitulah kita membutuhkan translator. Secara umum terdapat dua macam translator, yaitu compiler dan interpreter. Keduanya membuat kode yang kode program yang kita buat dapat dipahami oleh komputer.

Let’s start with the compiler

Sederhananya, compiler menerjemahkan seluruh source code menjadi machine codes dalam sekali proses kompilasi. Machine codes yang dihasilkan adalah berupa executable file (contoh: program.exe). Kemudian kita dapat menjalankan program yang telah kita buat dengan menggunakan executable file tersebut.

Dengan executable file tersebut, program juga dapat dibagikan dan dijalankan di komputer lain tanpa harus membagikan source code nya. Program juga dapat dijalankan berulang-ulang tanpa harus melakukan kompilasi lagi. Proses kompilasi kembali diperlukan ketika terjadi perubahan pada source code.

Contoh compiled language: C, C++, Go, JAVA (JIT), C# (MSIL)

Got the idea?

How about interpreter?

Sama halnya, interpreter juga menerjemahkan source code menjadi machine codes. Hanya saja, interpreter akan menjalankan program secara langsung dari source code yang dibuat. Source code akan diterjemahkan baris per baris menjadi machine codes dan langsung dieksekusi pada saat itu juga. Tidak terdapat executable file yang dihasilkan selama proses interpretasi.

Contoh interpreted language: PHP, Python, Ruby, JavaScript, JAVA (JIT), C# (MSIL)

Secara umum, berikut perbedaan antara compiled dan interpreted language

What’s better?

Lagi-lagi, menurut saya pribadi there is no silver bullet - there's no programming language that is necessarily better than all others.

Setiap pilihan akan memberikan dua hal yaitu kekurangan dan kelebihan masing-masing. Umumnya, compiled language memiliki performa yang lebih cepat dibanding interpreted language, namun kurang cocok digunakan untuk pengembangan program yang agile dan banyak dilakukan perubahan karena proses kompilasi tersebut cukup memakan waktu. Setiap bahasa memiliki fanboy nya sendiri-sendiri, banyak sekali forum yang membahas kekurangan dan kelebihan dari masing-masing bahasa, and that's gives us more insights untuk memberikan pandangan lebih baik akan bahasa-bahasa pemrograman yang kita gunakan.

Bagaimanakah menurut Anda?

never stop learning!

Source:

https://codesmithdev.com/compiled-programming-languages-vs-interpreted-programming-languages/
https://attractivechaos.github.io/plb/
https://medium.com/basecs/a-deeper-inspection-into-compilation-and-interpretation-d98952ebc842
https://medium.com/from-the-scratch/stop-it-there-are-no-compiled-and-interpreted-languages-512f84756664
https://www.programiz.com/article/difference-compiler-interpreter

Written by gpamungkas on Mar 25 2019, 11:11 AM.
User
Projects
None
Subscribers
None