Anda di halaman 1dari 19

TEKNIK KOMPILASI

PENDAHULUAN/PENGENALAN COMPILER
OLEH KELOMPOK 14
SULISTIANA 4611416008
SYEHUDIN 4611416021
DAVID TOPANTO 4611416041
PENDAHULUAN

Teknik : Suatu metode atau cara


Kompilasi : Suatu proses menggabungkan serta menterjemahkan sesuatu
(dalam hal ini adalah Source code)
Compile : untuk mentranslasikan program yang ditulis menggunakan
bahasa tingkat tinggi menjadi bahasa mesin
Apa itu bahasa tingkat tinggi?

Apa itu bahasa mesin?

Dengan apa kita mentranslasikan?


PENDAHULUAN/PENGENALAN COMPILER
BAHASA PEMROGRAMAN
BAHASA PEMROGRAMAN

Bahasa pemrograman adalah bahasa yang menjadi sarana manusia untuk


berkomunikasi dengan komputer. Pikiran manusia yang tidak terstruktur harus
dibuat terstruktur agar bisa berkomunikasi dengan komputer. Komputer
memerlukan kepastian dan logika yang benar untuk dapat melakukan suatu
instruksi tertentu. Untuk itu diperlukan algoritma yg baik dan benar.
PENGGOLONGAN BAHASA PEMROGRAMAN
BERDASARKAN TINGKAT KETERGANTUNGANNYA
DENGAN MESIN :
1. Bahasa Mesin
Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat
diinterpretasikan langsung oleh mesin komputer. bahasa mesin sering juga
disebut native code (sangat tergantung pada mesin tertentu). bahasa ini
merupakan bahasa level terendah dan berupa kode biner 0 dan 1. sekumpulan
instruksi dalam bahasa mesin dapat membentuk microcode (semacam prosedur
dalam bahasa mesin).
Keuntungan: Kerugian:
1. Eksekusi cepat 1. Sangat sulit dipelajari
2. Bahasa mesin memungkinkan digunakan 2. Sangat bergantung pada mesin
pada saat pembuatan assembler
2. Bahasa assembly (mnemonic code)
Merupakan bentuk simbolik dari bahasa mesin, dianggap sebagai bahasa
pemrograman yang pertama kali berbentuk string dan lebih mudah dimengerti
manusia. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa
assembly. Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk
pengurangan, dan lain-lain. Sekumpulan kode - kode bahasa assembly dapat
membentuk makroinstruksi. Bahasa assembly juga memiliki program pendebug-
nya, tidak seperti bahasa mesin. Misalnya: turbo assembler dan debug pada
DOS.Assembler akan mencocokkan token simbol dari awal s/d akhir, kemudian
dikodekan menjadi bahasa mesin.

Keuntungan: Kerugian:
1. Eksekusi cepat, lebih mudah dipelajari 1. Masih sulit dipelajari, program sangat
daripada bahasa mesin Panjang
2. Ukuran relative kecil 2. Fasilitas yang dimiliki terbatas
3. Bahasa tingkat tinggi (High Level Language)/User Oriented
Bahasa ini lebih dekat dengan bahasa manusia. Bahasa ini juga memberikan
banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel,
tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain.
Contoh: pascal, basic, C++, dan java.
Bahasa tingkat tinggi memiliki generasi, misalnya generasi ke-3 (pascal,
C/C++) dan generasi ke-4 (delphi, VB, VB.NET, visual foxpro)
Keuntungan: Kerugian:
1. Mudah dipelajari 1. Eksekusi lambat
2. Mendekati permasalahan yang akan 2. Memiliki ukuran yang relative besar
dipecahkan 3. Untuk mesin yang berbeda perlu
3. Kode program pendek dikembangakan tahapan-tahapn
4. Fasilitas yang dimiliki lebih baik dan tambahan
banyak
4. Bahasa yang berorientasi pada masalah spesifik (Specific Problem
Oriented)
Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu
masalah tertentu. Contoh : SQL untuk aplikasi database, COGO untuk aplikasi
teknik sipil, regex untuk mencocokkan pola pada string tertentu, matlab untuk
matematika, dll. Bahasa problem oriented kadang digolongkan ke dalam
bahasa tingkat tinggi.
PENDAHULUAN/PENGENALAN COMPILER
TRANSLATOR
TRANSLATOR

Suatu program diman mengambil input sebuah program yang ditulis pada satu bahasa
program (source language) ke bahasa lain (the object on target language). Source
code ditulis dalam bahasa sumber, object code berupa bahasa pemrograman lain /
bahasa mesin pada suatu komputer. Jika source jika source language adalah high level
language, seperti cobol, pascal, fortran, dan object language adalah low-level
language atau machine language. Maka translator seperti ini disebut COMPILER.
Jadi penerjemah membaca suatu program yang ditulis dalam bahasa sumber dan
menerjemahkan bahasa sumber ke dalam suatu bahasa lain.
ILUSTRASI TRANSLATOR MENERJEMAHKAN SOURCE
CODE MENJADI OBJECT FILE

Ada kemungkinan saat melakukan proses penerjemahan, penerjemah akan melaporkan


adanya keanehan/kesalahan yang mungkin diketemukan.
BAGI USER YANG HANYA PENGGUNA, MUNGKIN KATA
TRANSLATOR MEMBINGUNGKAN, DAN MUNCULAH
PERTANYAAN “Mengapa perlu menggunakan translator?”
Karena bahasa mesin adalah bentuk bahasa terendah pada komputer, dengan
itu kita dapat berhubungan /komunikasi langsung dengan bagian-bagian yang
ada di dalam komputer seperti bits dan register. Sedangkan bahasa mesin
tidak lebih dari angka 1 dan 0. Bagaimana dengan orang yang tidak mengerti
bahasa mesin? Padahal instruksi dalam bahasa mesin dapat dibentuk menjadi
micro-code, semacam prosedur dalam bahasa lain.
LALU ADA BERAPA JUMLAH TRANSLATOR?

Ada beberapa macam translator, yaitu :


1. Assembler
2. Interpreter
3. Compiler (Kompilator)
ASSEMBLER

Source code adalah bahasa assembly, object code adalah bahasa mesin.
Contoh : Turbo Assembler, Macro Assembler
INTERPRENER
Input berupa source code yaitu bahasa scripting seperti PHP, Basic, Perl, Javascript,
ASP, Java bytecode, Basic, Matlab, Matematica, Ruby.
Interpreter tidak menghasilkan object code. Hanya menghasilkan translasi internal.
Input dapat berasal dari source code maupun dari inputan program dari user. Source
code dan inputan data user diproses pada saat yang bersamaan.
Pada interpreter, program tidak harus dianalisis seluruhnya dulu, tapi bersamaan
dengan jalannya program.
COMPILER
Input berupa source code program seperti Pascal, C, C++. Object code adalah
bahasa assembly. Source code dan data input diproses pada saat yang
berbeda.
Istilah compiler muncul karena dulu ada program yang menggunakan subrutin-
subrutin atau pustaka-pustaka untuk keperluan yang sangat khusus yang
dikumpulkan menjadi satu sehingga diistilahkan compiled.
Beberapa hal yang biasa dilakukan program aplikasi dimana prinsip-prinsip dasar
kompilator dapat dipergunakan diantaranya : pengecekan kesalahan input, pemilahan
data input, transformasi format data, pengolahan perintah/bahasa script, dll. Dengan
memahami cara kerja sebuah kompilator, para pembuat program akan mendapatkan
dasar untuk mempertimbangkan pemilihan kode program.
Compile time adalah saat pengubahan dari source code menjadi object code. Runtime
adalah saat eksekusi object code dan mungkin menerima input data dari user. Output :
bahasa assembly. Kemudian oleh linker dihasilkan file EXE.
BAGAIMANAKAN SUATU COMPILER DIKATAKAN
BAGUS?
Kompiler yang bagus adalah yang dapat bekerja dengan baik pada mesin-
mesin komputer dan tidak membutuhkan proses yang lama.

Anda mungkin juga menyukai