Daftar isi
Istilah compiler mungkin memang belum begitu familiar bagi kebanyakan orang, namun dalam dunia IT terutama terkait dengan pemrograman, istilah compiler atau yang dalam bahasa Indonesia diterjemahkan sebagai kompilator tentu bukan lagi sebuah istilah yang asing.
Compiler sendiri sebenarnya merupakan sebuah program yang diperlukan oleh perangkat komputer untuk menerjemahkan instruksi dari manusia (developer), sehingga bahasa manusia yang merupakan High Level Language (HLL) bisa diterjemahkan menjadi bahasa mesin.
Pengertian Compiler
Secara umum, compiler atau kompilator adalah sebuah program yang berfungsi menerjemahkan source code yang dibuat oleh programmer atau developer menjadi bahasa mesin atau assembly sehingga bisa dikenali dan dijalankan oleh perangkat komputer.
Compiler mampu melakukan penggabungan semua bahasa program dan kemudian menyusunnya kembali menjadi file executable yang bisa diterjemahkan oleh prosesor.
Kualitas dari sebuah compiler dipengaruhi oleh beberapa faktor berikut:
- Kecepatan waktu proses kompilasi
Kecepatan waktu kompilasi dipengaruhi oleh algoritma kompilator - Integrated development environment (IDE)
IDE adalah beberapa fasilitas yang dimiliki oleh kompilator seperti editing, testing, dan debugging. - Mutu program objek
Mutu program objek dipengaruhi oleh kecepatan eksekusi dan ukuran program objek - Sedangkan integrated development environment atau IDE merupakan
Jenis Compiler
Dalam pengembangan web, ada dua jenis compiler yang digunakan, yaitu:
- Cross Compiler
Cross compiler merupakan compiler yang mempunyai kemampuan untuk membuat kode platform yang berbeda dari platform yang dijalankan. Sehingga pada saat mesin yang satu sedang diproses, maka transfer data akan terkompilasi pada mesin lainnya. - Source to Source Compiler
Source to Source Compiler atau disebut juga Trans Compiler adalah jenis compiler yang memiliki kemampuan untuk mengartikan source code yang tersusun dalam suatu bahasa pemrograman dan menyusunnya kembali menjadi source code dengan bahasa pemrograman lain.
Fungsi Compiler
Keberadaan compiler tentu sangat penting dalam dunia pemrograman. Berikut adalah beberapa fungsi dari compiler, yaitu:
- Mendeteksi apabila ada kesalahan dalam source code yang dibuat oleh programmer atau developer program.
- Menganalisis bahasa pemrograman.
- Mengkompilasi program maupun data-data secara terpisah
- Mengatur memori atau ruang penyimpanan seluruh variabel dan code.
- Membuat tabel simbol yang digunakan untuk menyusun program target.
- Menerjemahkan source code menjadi kode objek sesuai dengan jenis mesin yang digunakan.
- Melakukan perbaikan terhadap tata bahasa pada source program dan kemudian membaginya ke dalam beberapa bagian.
Fase Compiler
Dalam proses compiler ada dua fase utama yang mana pada masing-masing fasenya terbagi ke dalam beberapa tahapan. Setiap fase pada compiler saling terhubung dimana tiap fasenya akan mengambil hasil atau output dari fase sebelumnya.
Berikut adalah fase-fase pada compiler:
Fase analisis
Pada fase analisis, perantara dibuat dari source code atau kode sumber sebagai berikut:
- Penganalisa Lesikal (Lexical Analyzer) yang berfungsi untuk membagi program menjadi “token”.
- Penganalisa Sintaks (Syntax Analyzer) yang berfungsi untuk mengenali “kalimat” dalam program menggunakan sintaks bahasa.
- Penganalisa Semantik (Semantic Analyzer) yang berfungsi untuk menganalisa semantik statis dari tiap konstruksi
- Pembangkit Kode Antara (Intermediate Code Generator) yang berfungsi untuk menghasilkan kode “abstrak”
Fase sintesis
Pada fase sintesis terdapat dua bagian utama, yaitu:
- Pengoptimalan Kode (Code Optimizer) yang berfungsi untuk mengoptimalkan kode “abstrak”
- Pembangkit Kode (Code Generator) yang berfungsi untuk menerjemahkan kode perantara abstrak ke dalam instruksi mesin tertentu.
Contoh Compiler
Ada beberapa contoh compilator yang dikenal dalam dunia IT, diantaranya adalah sebagai berikut:
- Visual Basic
Visual Basic (VB) adalah bahasa pemrograman generasi ketiga yang mulai dikembangkan oleh Microsoft sejak 1991 sebagai pengembangan dari bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code). Penggunaan Visual Basic memungkinkan seorang programmer menggunakan Graphical User Interface (GUI) untuk memilih dan juga memodifikasi bagian kode yang terpilih dari bahasa pemrograman dasar. - C++
C++ adalah bahasa pemrograman yang dibuat oleh Bjarne Stroustrup sebagai pengembangan dari bahasa C. Bahasa pemrograman C++ ini dirancang dengan berorientasi pada objek pemrograman sistem atau Object Oriented Programming. - Pascal
Pascal merupakan bahasa pemrograman yang dibuat oleh Profesor Niklaus Wirth dan sering digunakan saat seseorang mempelajari alogaritma dan pemrograman di budang akademis. Pascal sendiri memang dirancang untuk mendorong praktik pemrograman yang baik dengan menggunakan program terstruktur dan penataan data. - Fortran
Fortran adalah salah satu jenis bahasa pemrograman yang imperatif yang sangat cocok digunakan untuk komputasi numerik dan komputasi ilmiah. Bahasa pemrograman Fortran sudah diaplikasikan selama lebih dari enam dekade di bidang komputasi intensif , seperti perkiraan cuaca numerik, analisis elemen, , geofisika, fisika, dinamika fluida komputasi, kristalografi, komputasi, dan juga kimia komputasi.
Manfaat Compiler
Sejumlah manfaat penting dari compiler adalah sebagai berikut:
- Compiler bermanfaat untuk membantu seseorang mendalami pemahaman mengenai bahasa semantik.
- Compiler bermanfaat untuk memeriksa dan menverifikasi keseluruhan program guna menghindar dari kesalahan sintaks dan semantik.
- Compiler membantu dalam menerjemahkan program dari satu bahasa ke bahasa lainnya.
- Compiler bisa digunakan untuk memeriksa kesalahan pada tipe data
- Compiler merupakan problem solving dalam hal kinerja bahasa.
- Teknik compiler memungkinkan digunakan untuk program lainnya.
- Dengan adanya compiler akan memudahkan untuk membuat file pada hardware.
- Proses eksekusi compiler cepat sehingga menghemat waktu
- Memudahkan developer atau programmer untuk membuat struktur internal dalam memori.
- User tidak perlu menjalankan program pada mesin yang sama dengan yang sedang dijalankan.
Perbedaan Compiler dan Interpreter
Selain compiler ada juga interpreter yang memiliki fungsi hampir sama dengan compiler. Baik compiler maupun interpreter sama-sama berfungsi untuk bahasa HLL (High Level Language) ke dalam bahasa mesin.
Lalu, apakah perbedaan antara keduanya?
Perbedaan antara compiler dan interpreter bisa dilihat dari beberapa aspek berikut ini:
- Cara Kerja
Cara kerja compiler adalah dengan mengonversi source code atau kode sumber menjadi machine code sebelum program tersebut dijalankan, atau dengan membuat berkas atau file executable.
Adapun Interpreter, bekerja dengan mengonversi source code menjadi machine code secara langsung pada saat suatu program dijalankan. - Command atau Perintahnya
Seluruh perintah dalam compiler dapat diartikan sekaligus, sehingga memerlukan proses pengujian dengan waktu relatif lebih lama. Selain itu, bila terdapat kesalahan akan ditampilkan pada akhir proses. Sementara pada Interpreter, perintah diterjemahkan secara baris per baris, sehingga proses pengujian program relatif lebih cepat. Selain itu, kesalahan akan ditampilkan baris demi baris. - Linker
Compiler memerlukan linker untuk menggabungkan kode objek dengan berbagai macam library sehingga bisa menghasilkan suatu kode yang bisa dijalankan oleh mesin. Adapun pada interpreter tidak diperlukan linker untuk menggabungkan kode objek. - Program Code
Pada compiler, program dijalankan dalam bentuk kode mesin sehingga kode program dapat dirahasiakan. Sedangkan pada interpreter, kode program tidak dapat dirahasiakan. - Bahasa Pemrograman
Bahasa pemrograman yang menggunakan compiler diantaranya adalah Visual Basic (VB), Fortran, Cobol, Pascal, dan C. Adapun bahasa pemrograman yang digunakan pada interpreter yaitu PHP, ASP, dan Perl.
Kesimpulan Pembahasan
Compiler atau yang dalam bahasa Indonesia disebut dengan kompilator merupakan sebuah program yang berfungsi atau digunakan untuk mengubah source kode menjadi bahasa mesin sehingga bisa dicerna atau dipahami oleh perangkat komputer. Compiler memiliki kemampuan untuk menggabungkan semua bahasa pemrograman dan kemudian menyusunnya kembali dalam bentuk file executable.
Ada dua jenis compiler, yaitu Cross Compiler dan Source to Source Compiler. Dalam prosesnya, compiler melalui 2 fase yang mana masing-masing fasenya terbagi dalam beberapa tahapan yang saling terhubung. 2 fase dalam compiler adalah fase analisis dan fase sintesis.
Dalam dunia programming, compiler memiliki sejumlah fungsi dan manfaat yang penting terutama terkait dengan bahasa pemrograman. Sejumlah bahasa pemrograman yang digunakan dalam compiler adalah Visual Basic (VB), Pascal, C++, dan juga Fortran.