Perbedaan Compiler dan Interpreter – Berkomunikasi dengan komputer tidak dapat menggunakan bahasa manusia, melainkan menggunakan bahasa pemrograman. Instruksi yang kita berikan akan diproses oleh CPU (Central Processing Unit) yang ada pada komputer. Sebenarnya bahasa pemrograman atau source code akan melalui proses sebelum bisa dipahami oleh komputer. Karena pada dasarnya komputer hanya memahami bahasa mesin.
Bahasa mesin yang dimengerti oleh komputer identik dengan angka 0 dan 1 serta tidak bisa dipahami oleh manusia. Bisa saja Anda berusaha untuk belajar bahasa mesin tapi sangat tidak menyarankan hal tersebut karena akan menghabiskan banyak waktu. Bahasa mesin akan berbeda-beda tergantung pada prosesor yang digunakan. Bisa dibayangkan seandainya kita berhasil memahami bahasa mesin di prosesor A kemudian beralih ke prosesor B atau bahkan versi yang lain dari Prosesor A maka bahasanya akan berbeda.
Lalu bagaimana bisa kode yang kita buat bisa dengan berbagai bahasa pemrograman bisa dipahami oleh komputer ?
Baca juga : Pengertian Bahasa Pemrograman dan Cara Menulis Kode Program
Ketika seorang programmer menuliskan kode program atau source code kemudian menjalankannya, maka akan terjadi proses konversi. Proses konversi tersebut dibedakan menjadi dua yaitu Compile dan Interpret. Untuk mengubah source code menjadi kode mesin kita memerlukan compiler dan interpreter. Kita akan membahas perbedaan compiler dan interpreter di bawah ini.
Pengertian Compiler
Bayangkan Anda membuat sebuah program sederhana di komputer milik Anda sendiri. Kemudian Anda juga ingin menjalankan program tersebut di komputer teman Anda. Metode pertama kita menggunakan compile.
Jika kita membahas tentang metode compile, maka kita akan berteman dengan compiler. Compiler adalah sebuah program yang bertugas untuk mengonversi source code yang kita buat menjadi bahasa mesin. Apabila terdapat penulisan kode yang salah, maka compiler akan mengirimkan pesan eror kepada kita dan harus diperbaiki. Jika tidak maka akan menghasilkan berkas executable, contohnya seperti .exe.
Setelah proses compile di komputer Anda selesai, kemudian Anda memberikan hasilnya berupa berkas .exe kepada teman Anda. Apa yang terjadi di komputer teman Anda? Program dapat dijalankan di komputer teman Anda tetapi ia tidak mengetahui source code atau bahasa pemrograman apa yang Anda gunakan. Sehingga source code-nya masih berada di komputer Anda.
Arsitektur compiler 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:
- Compiler itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly).
- Assembler, yang menerima keluaran compiler 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).
Compiler yang menggunakan arsitektur ini misalnya GCC, Clang dan FreeBASIC.
Beberapa compiler tidak menggunakan arsitektur di atas secara gamblang, dikarenakan komunikasi antar program jauh lebih lambat dibandingkan jika komunikasi dilakukan secara internal di dalam satu program. Sehingga compiler tersebut mengintegrasikan assembler dan linker di dalam compiler. Compiler yang menggunakan arsitektur ini salah satunya adalah Free Pascal.
Pengertian Interpreter
Dalam ilmu komputer, interpreter (penerjemah) adalah perangkat lunak yang berfungsi melakukan eksekusi sejumlah instruksi yang ditulis dalam suatu bahasa pemrograman tanpa terlebih dahulu menyusunnya menjadi program bahasa mesin. Interpreter umumnya menggunakan salah satu strategi berikut untuk menjalankan program:
- Mengeksekusi kode sumber secara langsung.
- Menerjemahkannya ke dalam serangkaian portable-code atau precompiled-code kemudian mengeksekusinya.
- Mengeksekusi kode yang telah dikompilasi sebelumnya oleh compiler yang merupakan bagian dari sistem penerjemahan.
Pada dasarnya metode interpret sama dengan compile yaitu mengonversi bahasa pemrograman supaya bisa dipahami oleh mesin dengan bantuan interpreter. Perbedaannya adalah ketika kita menggunakan compiler, kode sumber akan dikonversi menjadi machine code (membuat berkas executable) sebelum program tersebut dijalankan. Sedangkan interpreter mengonversi source code menjadi machine code secara langsung ketika program dijalankan.
Salah satu bahasa pemrograman yang dapat diinterpretasikan adalah JavaScript. Bayangkan Anda membuat program sederhana menggunakan JavaScript. Kemudian Anda membagi source code tersebut ke teman Anda. Untuk menjalankan JavaScript tersebut, teman Anda setidaknya bisa menggunakan web browser untuk menjalankannya. Web browser sudah terdapat interpreter di dalamnya sehingga berkas JavaScript tersebut bisa diinterpretasikan secara langsung.
Perbedaan Compiler dan Interpreter
Masih bingung antara perbedaan compiler dan interpreter? Simak perbedaannya pada tabel di bawah ini.
Kategori | Compiler | Interpreter |
---|---|---|
Penggunaan | Source code telah dikonversi menjadi machine code. Sehingga waktu eksekusi program akan lebih singkat. | Lebih mudah digunakan untuk pemula yang baru belajar. |
Hasil keluaran | Menghasilkan program luaran atau berkas executable. Contohnya seperti .exe yang dapat dijalankan secara independen | Tidak menghasilkan program luaran atau berkas executable. Jika ingin menjalankan program, maka harus melibatkan source code secara langsung selama proses eksekusi. |
Efektifitas | Hasil kompilasi dari source code akan berjalan lebih cepat. | Berjalan lebih lambat ketika dieksekusi. |
Platform | Spesifik ke platform tertentu, misal hasil kompilasi berupa berkas.exe tidak dapat dijalankan di Mac. Begitu pula sebaliknya. | Cross platform. Bisa dijalankan di banyak platform asalkan memiliki interpreter yang sesuai. |
Alur pembacaan | Apabila terdapat kesalahan penulisan kode maka compiler akan menampilkan pesan eror. Selain itu program tidak akan berjalan atau tidak menghasilkan berkas executable apabila kesalahan kodenya belum diperbaiki. Misal ada kode yang salah di baris ke-5 maka harus diperbaiki dulu supaya bisa berjalan. | Membaca satu per satu baris kode yang ada. Jika terdapat kode yang salah maka interpreter akan menampilkan pesan eror dan harus diperbaiki untuk melanjutkan eksekusi baris selanjutnya. Misalnya terdapat eror di baris ke-5, maka masih bisa berjalan karena baris pertama sampai keempat tidak ada eror. |
Bahasa Pemrograman | Bahasa pemrograman yang memerlukan compiler seperti C, C++, C#, Swift, Java | Bahasa pemrograman yang memerlukan interpreter seperti JavaScript, Python, PHP, Ruby. |
Demikianlah sedikit penjelasan mengenai perbedaan compiler dan interpreter. Jadi, begitulah proses kita berkomunikasi dengan komputer melalui bahasa pemrograman. Setelah kita mengetahui bagaimana sebuah program bekerja dalam komputer selanjutnya kita akan membahas tentang aturan penulisan bahasa pemrograman.