Home » Kuliah IT » Pemrograman » Compiler: Pengertian, Fungsi dan Tahapannya

Compiler: Pengertian, Fungsi dan Tahapannya

by Atin Rahmawati
by Atin Rahmawati

Section Artikel

Apa Itu Compiler

Compiler merupakan sebuah program komputer yang dapat mengubah program komputer yang dibuat dalam bahasa pemrograman tertentu menjadi bahasa pemrograman lain. Compiler atau dalam bahasa Indonesia disebut kompilator memiliki kemampuan untuk menggabungkan beberapa bahasa program kemudian disusun kembali menjadi berkas atau file executable yang bisa diproses oleh prosesor. 

Compiler dapat mengkonversi source code yang dibuat dalam natural language processing atau yang dibuat oleh programmer menjadi bahasa mesin agar dapat teridentifikasi oleh komputer. Source code dan data diproses pada waktu yang berbeda. Semula menggunakan bahasa tingkat tinggi akan mengubah menjadi bahasa mesin atau assembly. 

Compilating merupakan proses mengeksekusi pada waktu kode menunjukkan sinyal tinggi dan rendah biner dalam unit logika aritmatika prosesor. Compiler memiliki dua jenis yang digunakan oleh pengembangan web, antara lain Cross Compiler dan Source to Source Compiler.

Cross compiler memiliki kemampuan untuk membuat kode platform yang berbeda selain platform yang dijalankan, ketika mesin satu sedang diproses maka pada saat transfer data akan terkompilasi pada mesin yang berbeda. 

Sedangkan Source to Source Compiler atau disebut juga Trans Compiler merupakan compiler yang dapat mengartikan source code yang tersusun dalam satu bahasa pemrograman menjadi source code yang disusun ulang ke bahasa pemrograman lain.

Faktor-faktor yang mempengaruhi kualitas kompilator atau compiler adalah kecepatan waktu proses kompilasi, mutu program objek, dan integrated development environment. Waktu proses kompilasi dipengaruhi oleh algoritma kompilator yang berfungsi untuk menuliskan program dan program khusus yang menghasilkan kompilator seperti turbo basic yang menggunakan bahasa lain.

Pada mutu program objek ditentukan dengan kecepatan eksekusi dan ukuran program objek seperti perbandingan turbo pascal 5 dan turbo pascal 6. Sedangkan integrated development environment atau IDE merupakan beberapa fasilitas yang dimiliki oleh kompilator seperti testing, editing, dan debugging.

Fungsi Compiler

  • Mendeteksi kesalahan dalam source code.
  • Menganalisis semua bahasa pemrograman.
  • Mengkompilasi data-data atau program secara terpisah.
  • Memanajemen ruang penyimpanan seluruh code dan variabel.
  • Membuat tabel simbol untuk dapat membangun program target.
  • Mengartikan kode sumber menjadi kode objek sesuai dengan jenis mesin yang digunakan.
  • Memperbaiki struktur tata bahasa pada program sumber dan membaginya menjadi beberapa bagian.

Fase Compiler

fase compiler
fase compiler

Fase compiler terbagi menjadi dua fase, antara lain:

1. Fase analisis

Source code pada fase representasi, antara lain:

  1. Lexical analyzer yang berfungsi untuk membagi program dalam bentuk token.
  2. Intermediate code generator, yaitu generator berfungsi untuk menghasilkan kode abstrak.
  3. Semantic analyzer yang berfungsi untuk memeriksa semantik statis dari setiap konstruksi.
  4. Syntax analyzer yang berfungsi mengidentifikasi bahasa pemrograman  menggunakan sintaks bahasa

2. Fase sintesis

Pada fase sintesis terdiri dari dua fase, antara lain:

  1. Code optimizer yang berfungsi menghasilkan kode program yang lebih kecil dan cepat prosesnya.
  2. Code generator yang berfungsi menghasilkan kode melalui sekumpulan kode untuk pengembangan software. Fase ini menjadi fase terakhir dalam compiler.

Manfaat Compiler

Terdapat beberapa manfaat compiler, antara lain:

  • Problem solving dalam kinerja bahasa.
  • Mengenal lebih dalam mengenai bahasa semantik.
  • Teknik compiler dapat digunakan untuk program lain.
  • Mempermudah dalam pembuatan file pada hardware.
  • Proses eksekusi compiler dapat dilakukan dengan cepat.
  • Mengkoneksikan file ke dalam format yang dapat dijalankan.
  • Mempermudah dalam pemeriksaan kesalahan sintaks dan tipe data.
  • Memberi kemudahan developer untuk membuat struktur internal dalam memori.
  • Dapat mengartikan semua bahasa pemrograman menjadi bahasa pemrograman lain.
  • Pengguna tidak perlu menjalankan program pada mesin yang sama dengan yang sedang dijalankan.
  • Compiler dapat memverifikasi seluruh program sehingga kesalahan sintaks atau semantik dapat dihindari.

Contoh Compiler

1. C++

C++ merupakan bahasa pemrograman dari evolusi bahasa C yang dikembangkan oleh Dennis Ritchie. C++ sering disebut sebagai bahasa pemrograman prosedural yang berorientasi pada objek. C++ banyak digunakan oleh developer untuk mengembangkan game, software, dan lain sebagainya.

2. Fortran

Fortran kepanjangan dari formula translation yang merupakan salah satu bahasa pemrograman yang dapat mendukung penulisan bentuk perhitungan seperti bilangan kompleks, namun fortran memiliki kelemahan yakni pada source code sulit dimengerti sebab menggunakan bahasa pemrograman tingkat tinggi.

3. Pascal

Pascal merupakan salah satu bahasa pemrograman dengan cara penulisan menggunakan algoritma structure english, imperatif dan prosedural. Pascal menjadi bahasa pemrograman yang menerapkan struktur dan prosedur programming yang baik. Salah satu kelebihan pascal yakni memiliki bahasa yang sederhana yang dapat lebih mudah dipahami oleh manusia.

4. Visual Basic

Visual Basic atau VB merupakan bahasa pemrograman yang tidak biasa atau bisa disebut sebagai advance karena VB memiliki kelebihan yakni dapat dengan mudah menulis program pada sistem operasi windows. VB dirumuskan dengan integrated development environment yang mampu menyederhanakan kode dan mengoreksi kesalahan maupun perbaikan.

Perbedaan Compiler dan Interpreter

1. Definisi

Compiler merupakan sebuah program komputer yang dapat mengubah program komputer yang dibuat dalam bahasa pemrograman tertentu menjadi bahasa pemrograman lain. Sedangkan interpreter merupakan sebuah program yang dapat mengartikan instruksi dalam bahasa tingkat tinggi menjadi  bahasa yang lebih sederhana.

2. Command

Seluruh perintah dalam compiler dapat diartikan sekaligus dan proses pengujian membutuhkan waktu relatif lebih lama. Sedangkan pada Interpreter perintah hanya diartikan secara baris per baris dan proses pengujian program relatif lebih cepat dan bisa langsung diuji sekalipun masih ditemui beberapa kesalahan dalam penulisan bahasa pemrograman. 

3. Linker

Pada compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library untuk menghasilkan suatu kode yang bisa dijalankan oleh mesin. Sedangkan interpreter tidak butuh linker untuk menggabungkan kode objek. 

4. Program Code

Pada compiler, kode program dapat dirahasiakan karena program dijalankan yang dalam bentuk kode mesin. Bahasa pemrograman yang menggunakan compiler adalah Visual Basic, Fortran, Cobol, Pascal, dan C. Sedangkan pada interpreter, kode program tidak dapat dirahasiakan dan bahasa pemrograman yang digunakan yaitu PHP, ASP, dan Perl.

You may also like