Jenis Bahasa Pemrograman: Compiled vs Interpreted
Dalam dunia pemrograman, cara bahasa dijalankan bisa dibedakan menjadi dua kategori utama: compiled dan interpreted. Masing-masing memiliki kelebihan dan kekurangan tergantung kebutuhan project kamu. Berikut penjelasan dan perbandingannya.
Apa itu Interpreted Language?
Bahasa interpreted dijalankan baris demi baris oleh sebuah program yang disebut interpreter. Contoh : PHP, Python, Ruby, JavaScript
Ciri-ciri:
- Tidak perlu proses build atau kompilasi
- Kode bisa langsung dijalankan
- Cocok untuk development cepat atau scripting
Apa itu Compiled Language?
Bahasa compiled perlu melalui proses kompilasi (build) untuk menghasilkan file binary yang bisa dijalankan langsung oleh sistem operasi. Contoh : Go, C/C++, Rust, Swift, Haskell
Ciri-ciri:
- Perlu proses
build
sebelum dijalankan - Hasil kompilasi adalah file binary (misalnya
.exe
,.out
) - Biasanya lebih cepat saat runtime
Interpreted | Compiled | |
---|---|---|
Cara jalan | Baris per baris oleh interpreter | Dikompilasi dulu → hasilkan binary |
Butuh compile? | ❌ Tidak | ✅ Ya |
Contoh bahasa | PHP, Python, Ruby, JavaScript | Go, C, Rust, Java (bytecode) |
Kecepatan | Biasanya lebih lambat | Biasanya lebih cepat |
Debugging | Lebih fleksibel (real-time) | Harus recompile setelah perubahan |
Interpreted = langsung dijalankan oleh interpreter, cocok untuk scripting dan eksperimen cepat.
Compiled = butuh proses build dulu, tapi hasilnya lebih cepat dan efisien untuk produksi.
Bahasa Hybrid (Compiled ke Bytecode)
Beberapa bahasa tidak langsung dikompilasi ke native binary, tapi ke bytecode yang dijalankan oleh virtual machine. Contoh Java (JVM), Kotlin (JVM), C# (.NET), Dart (VM dan AOT)
List Bahasa Pemograman
Bahasa | Tipe Eksekusi | Compiled ke | Butuh Build Manual? | Runtime |
---|---|---|---|---|
PHP | Interpreted | - | ❌ | PHP Interpreter |
Python | Interpreted | Bytecode (.pyc) | ❌ | Python VM |
Ruby | Interpreted | - | ❌ | Ruby VM |
JavaScript | Interpreted (JIT) | - | ❌ | Browser / Node.js |
Go | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
C | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
C++ | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
Rust | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
Swift | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
Haskell | Compiled | Native Binary | ✅ | Tidak Perlu Runtime |
Java | Hybrid | Bytecode (.class) | ✅ | JVM |
Kotlin | Hybrid | Bytecode (.class) | ✅ | JVM |
C# | Hybrid | IL (.dll/.exe) | ✅ | .NET Runtime |
Dart | Hybrid | Bytecode / Native | ✅ | Dart VM / AOT |
TypeScript | Transpiled | JavaScript | ✅ | Browser / Node.js |
Notes :
- Gunakan bahasa interpreted jika kamu ingin eksperimen cepat, scripting, atau web development ringan
- Gunakan bahasa compiled jika kamu butuh performa tinggi, efisiensi, dan deployment sebagai binary
- Bahasa hybrid cocok untuk aplikasi besar dan scalable dengan dukungan ekosistem kuat seperti Java/.NET