Interpreter vs Kompiler
Bahasa pemrograman adalah sebuah instruksi atau perintah agar komputer menjalankan suatu proses yang kita mau. Bahasa pemrograman memiliki beberapa tingkatan. Dimulai dari tingkat bawah yaitu bahasa mesin, bahasa tingkat rendah, bahasa menengah, dan bahasa tingkat tinggi. Kebanyakan penulisan kode program pada komputer menggunakan bahasa tingkat tinggi yang sama seperti bahasa natural pada manusia. Karena sejatinya komputer hanya mengerti program yang ditulis ke dalam angka 1 dan 0 yang biasa disebut bilangan biner atau bahasa mesin. Untuk memudahkan berkomunikasi dengan komputer, programmer menggunakan kompiler dan interpreter sebagai penerjemah bahasa tingkat tinggi ke bahasa mesin. Lalu apa sih kompiler dan interpreter itu? Apa saja perbedannya? Mana yang lebih bagus? Mari kita bahas.
Pengertian Kompiler
Kompiler
Kompiler merupakan sebuah alat yang digunakan untuk menerjemahkan source code menjadi sebuah file yang bisa dijalankan oleh komputer atau excecutable. Singkatnya kompiler digunakan untuk menerjemahkan source code yang telah dibuat menjadi sebuah file sendiri dan dapat dijalankan. Namun, file tersebut sudah dalam bentuk yang berbeda dan sudah tidak dalam bentuk kode lagi.
Kompiler memiliki 2 fase dalam proses penerjamahan atau kompilasi yaitu fase analisis dan fase sintesis
Fase Analisis
Pada fase ini tahap demi tahap kompiler menganalisis kode untuk mengenali kode agar dapat dikompilasi ke dalam sebuah file. Berikut adalah tahap-tahap dalam fase analisis:
1.Lexical Analyzer
Dalam tahap ini kompiler membagi program dan membentuknya menjadi token
2.Syntax Analyzer
Selanjutnya kompiler mengenali kalimat dalam program menggunakan sintaks bahasa yang
telah diketahuinya
3.Semantic Analyzer
Kompiler memeriksa dari semantic statis dan kontruksi yang telah diberikan oleh
programmer ke dalam sebuah kode program agar dapat dijalankan sesuai intruksinya
4.Intermediate Analyzer
Yang terakhir generator kode pada kompiler akan menghasilkan kode abstrak
Fase Sintesis
Pada fase sintesis proses kompilai memiliki 2 tahap bagian utama, yaitu:
1.Code optimizer
Pada tahap ini kompiler berfungsi untuk mengoptimalkan kode abstrak yang dihasilkan dari tahap intermediate code generator
2.Code generator
Selanjutnya pada tahap ini, kompiler menerjemahkan kode dari intermediate code generator menjadi perintah dalam bahasa mesin yang lebih spesifik lagi.
Jenis-jenis kompiler
Kompiler memiliki 2 jenis yang umumnya digunakan oleh programmer yaitu cross compiler dan source-to-source.
Cross Compiler
Kompiler jenis ini membuat kode yang dikompilasi dapat dijalankan di berbagai platform, artinya kode yang dijalankan di komputer A dapat dijalankan pada komputer B.
Source to source
Source to source atau transcompiler, merupakan kompiler yang menerjemahkan kode sumber yang ditulis ke dalam satu bahasa pemrograman ke bahasa pemrograman yang lain.
Tugas Kompiler
Selain untuk menerjemahkan bahasa pemrograman tingkat tinggi ke dalam bahasa mesin, ada beberapa tugas lain yang dijalankan oleh kompiler, di antaranya :
*Memecah kode sumber menjadi beberapa bagian dan menerapkan struktur bahasa pada kode
sumber
*Kompilasi kode pada program dan mendeteksi kesalahan pada kode
*Mengelola ruang penyimpanan dari semua variable dan semua kode yang terdapat di program
*Menerjemakan kode sumber ke dalam objek sesuai dengan jenis mesin yang digunakan pada
komputer
Manfaat Kompiler
Kompiler memiliki beberapa manfaat yang dapat kita memudahkan programmer dalam membuat program. Berikut adalah manfaat kompiler :
*Dapat membuat file dan memasukkan ke dalam disk
*Memeriksa kesalah pada sintaks dan tipe data pada kode sumber
*File pada kode sumber dioptimalkan oleh kompiler dan dieksekusi secara cepat
*Bisa menerjemahkan kode sumber ke dalam bahasa pemrograman yang lain
*Memabantu programmer dalam meningkatkan pemahaman terhadap bahasa semantic
*Membantu programmer untuk mengangani masalah kinerja pada bahasa pemrograman
*Membuat struktur internal pada memori
*Bisa menjalakan kode sumber pada mesin yang berbeda
Bahasa Pemrograman Yang Menggunakan Kompiler
Berikut adalah bahasa pemrograman yang menggunakan kompiler sebagai penerjemah
- Bahasa Pemrograman C++
- Bahasa Pemrograman C
- Bahasa Pemrograman Fortran
- Bahasa Pemrograman Cobol
- Bahasa Pemrograman Pascal
- Bahasa Pemrograman Objective-C
Kelebihan dan Kekurangan
Apapun yang ada di dunia pasti memiliki kelebihan dan kekurangan, termasuk juga kompiler.
Berikut kelebihan dan kekurangan pada kompiler:
- Siap untuk dijalankan
- Lebih cepat
- Kode sumber tidak terlihat
Kekurangan
- Tidak lintas platform
- Tidak fleksibel
- Langkah tambahan
Interpreter
Interpreter adalah sebuah program untuk menerjemahkan kode bahasa pemrograman yang ditulis ke bahasa tingkat tinggi ke dalam bahasa mesin. Namun, interpreter tidak mengubah kode sumber menjadi kode abstrak. Ketika melakukan penerjemahan interpreter menggunakan beberapa strategi, yaitu:
1.Melakukan eksekusi secara langsung terhadap kode sumber bahasa pemrograman
2.Melakukan eksekusi kepada kode yang sudah dikompilasi sebelumnya oleh kompiler di mana kode tersebut merupakan termasuk ke dalam system penerjemah
3.Menerjemahkan kode sumber ke dalam p-code dan selanjutnya kode akan dieksekusi
Bahasa Yang Menggunakan Interpreter
Berikut adalah bahasa pemrograman yang termasuk ke dalam bahasa pemrograman berbasis interpreter :
- Bahasa Pemrograman Javascript
- Bahasa Pemrograman PHP
- Bahasa Pemrograman Java
- Bahasa Pemrograman Ruby
- Bahasa Pemrograman PERL
Kelebihan dan Kekurangan
Berikut adalah kelebihan dan kekurangan dari interperter
Kelebihan
- Lintas Platform
- Fleksibel
- Mudah untuk diuji
Kekurangan
- Butuh Interpreter
- Lebih lambat
- Source code mudah diakses
Perbedaan Kompiler dan Interpreter
Kompiler
- Membaca seluruh kode kemudian menerjemahkan menjadi bahasa mesin
- Membutuhkan waktu yang lebih banyak untuk menganalisa
- Menghasilkan intermediate object code dan lebih banyak memerlukan memory
- Dapat menjalankan sebuah program tanpa kode sumber, karena telah dikompilasi menjadi sebuah file
Interpreter
- Menerjemahkan kode sumber untuk 1 statement dalam 1 waktu
- Membutuhkan waktu yang sedikit untuk menganalisa
- Tidak ada intermediate object yang dihasilkan
- Butuh kode sumber untuk menjalankan program
Kesimpulan
Kompiler dan interpreter sama-sama bagus untuk digunakan, karena akan memudahkan programmer dalam membuat program di mana ke dua alat tersebut memiliki fitur-fitur yang membantu programmer. Ke duanya tidak ada yang lebih bagu. sama-sama memiliki kelebihan dan kekurangan. Bagus atau tidaknya tergantung kebutuhan kita, ingin membuat program seperti apa baru nanti disesuaikan.
Karya : Rama
Email : rama21010ti@student.nurulfikri.ac.id
0 Comments