Top Banner
LAPORAN PRAKTIKUM 1 TEKNIK KOMPILASI DI SUSUN OLEH : ADITYA TUNGGAL PRAKOSO 3201216005 PRODI TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI PONTIANAK TAHUN 2015
16

Dasar Teknik Kompilasi

Mar 31, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dasar Teknik Kompilasi

LAPORAN PRAKTIKUM 1

TEKNIK KOMPILASI

DI SUSUN OLEH :

ADITYA TUNGGAL PRAKOSO

3201216005

PRODI TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI PONTIANAK

TAHUN 2015

Page 2: Dasar Teknik Kompilasi

BAB 1

TEORI PRAKTIKUM

A. BAHASA PEMOGRAMAN

Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau

bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer.

Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik

yang dipakai untuk mendefinisikan program komputer.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman

terdiri dari:

1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai

kode bahasa biner, contohnya 01100101100110

2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris

Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-

kode singkat (kode mnemonic), contohnya [kode_mesin|MOV], SUB, CMP,

JMP, JGE, JL, LOOP, dsb.

3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran

instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di

bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||,

dsb.

4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal

dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or,

dsb. Komputer dapat mengerti bahasa manusia itu diperlukan program compiler

atau interpreter.

B. COMPILER

Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna

untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman

tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.

Page 3: Dasar Teknik Kompilasi

Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa

digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam

bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC,

FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa

mesin, biasanya dengan bahasa Assembly sebagai perantara.

Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber

secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih

lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat

dengan menggunakan teknik interpretasi dengan interpreter.

C. INTERPRETER

Dalam ilmu komputer, penerjemah atau lebih dikenal dengan interpreter

merupakan perangkat lunak yang berfungsi melakukan eksekusi sejumlah instruksi

yang ditulis dalam suatu bahasa pemrograman, sebuah penerjemah dapat berarti:

1. Mengeksekusi kode sumber secara langsung, atau

2. Menerjemahkannya ke dalam serangkaian p-code kemudian

mengeksekusinya

3. Mengeksekusi kode yang telah dikompilasi sebelumnya oleh kompiler

yang merupakan bagian dari sistem penerjemahan.

Perl, Python, Ruby, dan MATLAB adalah beberapa contoh perangkat lunak

penerjemah bertipe 2, sementara Java termasuk dalam kategori tipe 3, namun dalam

beberapa kasus Java dapat digolongkan pula ke dalam kategori tipe 2.

Meskipun penerjemahan dan kompilasi merupakan dua jenis mekanisme

implementasi pada sebuah bahasa pemrograman, keduanya tidak berarti memiliki

perbedaan secara signifikan. Hal ini disebabkan cara kerja sebuah penerjemah dalam

banyak hal adalah sama seperti halnya yang dilakukan oleh kompiler. Penggunaan

istilah "bahasa pemrograman terjemahan" dan "bahasa pemrograman kompilatif"

umumnya digunakan sebatas untuk membedakan implementasi dari bahasa tersebut

menggunakan model penerjemahan atau kompilatif.

Page 4: Dasar Teknik Kompilasi

D. PERBEDAAN COMPILER DAN INTERPRETER

1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh

kode sumber. Kalau interpreter butuh kode sumber.

2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan

dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking (

penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses

terpisah.

3. Jika compiler membutuhkan linker untuk menggabungkan kode objek dengan

berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh

mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek

dengan berbagai macam library.

4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-

program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul /

kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali

semua objek dengan library yang diperlukan.

5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa

dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil,

ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter

susah atau bahkan tidak bisa dioptimasikan.

Page 5: Dasar Teknik Kompilasi

E. PROSES KOMPILASI

Contoh Proses Kompilasi Pada Bahasa C :

Program sumber

Analisis leksikal

Analisis sintaktik

Analisis semantik

Intermediate code generator

Optimasi kode

Penghasil kode

Program sasaran

Tabel Simbol Error handler

Page 6: Dasar Teknik Kompilasi

BAB 2

PEMBAHASAN PRAKTIKUM

A. Instalasi Cygwin Pada PC

1. Pastikan anda mempunyai file instalasi Cygwin. Jika anda belum mempunyai file

instalasinya, silahkan download pada website : https://cygwin.com/install.html

Pilih file setup sesuai dengan arsitektur processor anda. Jika sistem anda berjalan

pada sistem 32-bit maka download file setup-x86.exe

2. Buka file instalasi yang telah anda download.

Page 7: Dasar Teknik Kompilasi

3. Setelah tampilan instalasi terbuka, Klik Next untuk melanjutkan proses instalasi.

4. Jika anda belum memiliki package Cygwin yang diperlukan, maka pilih “Install

From Internet”, tetapi jika anda sudah memiliki file package, maka pilih “Install

from Local Directory”. Pada contoh ini, saya menggunakan pilihan “Install from

Internet”.

Page 8: Dasar Teknik Kompilasi

5. Pilih direktori untuk menyimpan aplikasi Cygwin dan Klik Next untuk melanjutkan

proses instalasi.

6. Pilih direktori untuk menyimpan file Package dari Cygwin, dan Klik Next untuk

melanjutkan proses instalasi.

Page 9: Dasar Teknik Kompilasi

7. Pilih “Direct Connection” untuk koneksi internetnya.

8. Pilih lokasi server download yang diinginkan. Pada contoh ini, saya menggunakan

pilihan pertama. Klik Next untuk melanjutkan proses instalasi.

Page 10: Dasar Teknik Kompilasi

9. Tunggu proses download file hingga selesai. Setelah selesai maka akan keluar

tampilan untuk memilih package yang akan di download. Ketik “gcc” pada kolom

Search, dan pilih package “gcc-core” dan “gcc-g++”. Klik Next untuk melanjutkan

proses instalasi.

10. Proses download package akan berjalan. Silahkan tunggu hingga selesai.

Page 11: Dasar Teknik Kompilasi

11. Setelah proses download selesai, silahkan buka aplikasi Cygwin pada komputer

anda.

Page 12: Dasar Teknik Kompilasi

B. Proses Kompilasi Source Code File C Pada Aplikasi Cygwin

1. Buka Aplikasi Cygwin pada komputer anda.

2. Untuk memastikan package gcc dan g++ telah terinstal pada cygwin, ketikan

perintah seperti gambar dibawah.

Page 13: Dasar Teknik Kompilasi

3. Untuk memulai proses kompilasi, siapkan sebuah file dengan bahasa c. Contoh

program sederhananya dapat dilihat pada gambar dibawah.

Simpan file tersebut dengan nama “hello.c” pada direktori yang anda inginkan.

4. Buka kembali aplikasi Cygwin, dan pindahkan direktorinya pada direktori tempat

penyimpanan file yang telah anda buat sebelumnya.

Untuk berpindah direktori, gunakan perintah “cd” dan arahkan pada direktori yang

anda inginkan. Untuk melihat isi direktori, gunakan perintah “ls”.

Page 14: Dasar Teknik Kompilasi

5. Tahap pertama dalam kompilasi, adalah proses Pre-Processing, yang akan

mengubah file source code awal menjadi file yang akan di expand bersama header-

nya. Untuk memulai proses, silahkan ketikan kode seperti contoh di bawah.

Proses ini akan menghasilkan sebuah file baru dengan nama “hello.i”

6. Tahap kedua adalah mengubah kode yang sudah diproses sebelumnya menjadi kode

assembly. Ketikan perintah seperti gambar di bawah.

Proses ini akan menghasilkan sebuah file baru dengan nama “hello.s”

7. Tahap ketiga adalah proses mengubah kode assembly menjadi kode mesin.

Perintahnya dapat dilihat pada gambar dibawah.

File yang telah dirubah akan menjadi file objek dengan nama “hello.o”

Page 15: Dasar Teknik Kompilasi

8. Tahap keempat adalah menghubungkan file objek tadi dengan library yang

dibutuhkan untuk menghasilkan file berekstensi .exe.

Perintah umumnya adalah : “ld -o hello.exe hello.o ...libraries....” , Namun karena

kita tidak mengetahui library yang dibutuhkan maka proses akan berlangsung

seperti gambar di bawah ini.

9. Langkah – langkah di atas adalah proses untuk mengkompilasi file dengan tahapan

– tahapan sederhana, untuk melihat hasil file exe secara langsung tanpa mengetikan

library code seperti diatas, masukan perintah seperti gambar di bawah.

Proses telah selesai, dan hasil dari file hello.c telah berubah menjadi executable file

dengan nama hello.exe.

Page 16: Dasar Teknik Kompilasi

BAB 3

KESIMPULAN PRAKTIKUM

Berdasarkan Praktikum yang telah dilakukan, maka di hasilkan kesimpulan sebagai berikut :

1. Proses Kompilasi File C terdiri dari 4 tahapan, yaitu proses PreProcessing, Compiling,

Assemble, dan Linking.

2. Proses PreProcessing akan mengubah file source code awal menjadi file yang akan di

expand bersama header-nya dan akan menghasilkan file dengan ekstensi “.i”

3. Proses Compiling akan mengubah file dengan ekstensi “.i” menjadi kode assembly.

4. Proses Assemble akan mengubah kode assembly menjadi kode mesin dan akan

menghasilkan file objek yang berekstensi “.o”

5. Proses Linking merupakan proses untuk merubah file objek menjadi file .exe dengan

menghubungkan file objek tersebut dengan file library yang dibutuhkan.