Rabu, 02 November 2016

GNU C Compiler (GCC)

Gomennasai minna!
For one week not post

         Kali ini bukan karena materinya belum ada, tetapi minggu kemarin ada tugas kuliah yang harus segera di selesaikan makanya saya tidak bisa memberikan materi for you friends. (gomen-ne)        

Pada post-an saya kali ini saya akan menjelaskan tentang compiler. sebelum saya kasi materinya,  saya mau bertanya dulu: - Ada yang tau gak apa itu kompiler? atau
                                     - Ada yang pernah dengar atau tau Borland, Visual Basic, atau GNU?

Jika sudah tau berarti saya tidak perlu menjelaskan lagi. dan saya bisa santai dulu aja sambil cari materi yang baru
 
Tapi kalau belum tau, akan saya jelaskan dibawah ini.
Baiklah saya anggap belum pada tau aja ya, biar saya bisa kasi materi yang sudah saya buat.
Oke langsung aja akan saya kasi materinya.


Pengertian Compiler (Kompilator)

        Compiler adalah suatu program yang menerjemahkan bahasa program (source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali. Atau bisa disebut juga 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.

        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.

        Arsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi antar program dengan tugas spesifik masing-masing. Program-program tersebut beserta tugasnya secara umum terdiri dari:

  • Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly)
  • Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin
  • Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)

Kompilator yang menggunakan arsitektur ini misalnya GCC , Clang dan FreeBasic.



Tahap Kompilasi

      Kompilasi terdiri dari 3 tahap yaitu sebagai berikut:

  1. Pertama source code (program yang ditulis) dibaca kememori computer).
  2. Source code tersebut diubah menjadi objek code (bahasa Assembly).
  3. Objek code di hubungkan dengan liberary yang dibutuhkan untuk membentuk file yang bisa dieksekusi.
        Pada kesempatan kali ini saya akan menjelaskan lebih jauh tentang Compiler yang menggunakan arsitektur  compiler modern yaitu GCC (GNU C Compiler)
Baiklah Friends inilah GCC itu:

GNU C Compiler (GCC)

          GCC  adalah compiler listing program dari bahasa C yang bekerja pada platform linux. Compiler ini adalah compiler terkemuka pada system operasi linux yang merupakan produk Free Software Foundation yang bersifat open source dan free. Walaupun bersifat free, GCC bukanlah software murahan karena di balik kemurah meriahannya terdapat kehandalan yaitu GCC mampu menyusun program  yang ditulis dengan C, C++, object C, Fortran (dengan bantuan g77), Pascal, Modul-3 dan program lainnya (tentunya dengan tambahan library). Dalam materi ini akan di bahas gimana cara mengkompilasi bahasa C menjadi bahasa mesin yang dikenali oleh computer  yaitu sitem logika 0 dan 1 (biner) dengan menggunakan GCC.
        Dalam proses kompilasi listing program akan di hasilkan executable file. Untuk mendapatkan executable file dari listing program bahasa C bisa dengan membentuk file object terlebih dahulu lalu membentuk file executable(.exe)
$ gcc -c nama_file.c                // membentuk file object
$ gcc -o nama_file nama_file.o      // membentuk file executable
atau secara langsung dari file .c menjadi file executable dengan
$ gcc -o nama_file nama_file.c 
Dengan menggunakan GCC kita dapat membentuk satu file executable dari dua file program yang saling terkait dengan membentuk file object terlebih dahulu dengan perintah:
$ gcc –c nama_file1.c            // membentuk file object file1
$ gcc –c nama_file2.c            // membentuk file object file2 
Maka akan muncul file baru nama_file1.o dan nama_file2.o. Untuk mendapatkan file executable nya digunakan perintah:
$ gcc -o nama_file nama_file1.o  nama_file2.o 
Atau dapat juga dilakukan langsung tanpa membetuk file.o dengan perintah:
$ gcc -o nama_file nama_file1.c nama_file2.c
misalnya:
$ gcc -o test test1.o  test2.o
Dengan perintah diatas akan diperoleh file executable “test” dan dapat dijalankan dengan perintah:
$ ./test

           Berikut ini contoh program interfacing port parallel computer untuk 
pegontrolan lampu menggunakan bahasa C dengan nama “lpt1.c” yang di buat
 dengan editor gedit.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
#define LPBASE 0x378
#define LPDATA (LPBASE + 0)
#define range 3
#define lampu1 0x01

int main ()
{
if(ioperm (LPBASE, range, 1))
   {
     printf("Restricted Area ! \n");
     exit (1);
    }

outb(lampu1, LPDATA);

printf("\n lampu 1 hidup !!!\n");
ioperm(LPBASE, range, 0);
exit(1);
}
untuk melakukan kompilasi dan menjalankannya digunakan perintah:
$ gcc -o lpt lpt1.c
$./lpt
catatan:
untuk menjalankan program diatas harus sebagai root karena kita mengakses hardware melalui kernel so jika kita menjalankannya sebagai user biasa maka akan tampil tulisan “Restricted Area !”

setelah mengetahui tata cara penggunaan GCC berikut ini akan saya berikan contoh program C di GCC.

Contoh Program C di GNU C Compiler (GCC)
 
       Berikut contoh pendek yang akan membantu anda memulai menggunakan GCC. Untuk menulis program ini, dapat menggunakan teks editor Vi, Joe, Gedit dan sebagainya untuk menulis program bahasa C.

/*
*hello.c - Penulisan program "Hello, world ! *
*/
#include
int main (void)
{
printf("Hello, Linux Programming World!\n");
return 0;
}


Untuk melakukan kompilasi pada program ini, ketikkan perintah pada terminal console sebagai berikut:

gcc hello.c -o hello atau gcc -o hello hello.c

Setelah itu, jika tidak ada kesalahan dalam program tersebut, jalankan program ini agar keluar outputnya menggunakan perintah

./hello

Keluarlah output sebagai berikut

Hello, Linux Programming World!

Makna dari perintah diatas adalah sebuah instruksi untuk melakukan kompilasi file hello.c untuk di periksa apakah dalam penulisan program tersebut masih terdapat kesalahan, baik itu kesalahan dalam penulisan bahasa C. Jika tidak terjadi kesalahan dalam penulisan tersebut, dengan menjalankan file executable tersebut akan muncul output berupa tulisan:

Hello, Linux Programming World!

Perintah pertama memberitahukan GCC untuk menyusun dan menghubungkan file sumber hello.c, dan membuat sebuah nama hello yang di tentukan, dikhususkan menggunakan perintah -0. Dalam prosesnya preprocessor akan membaca file header dalam hello.c terlebih dahulu. Setelah ini, compiler akan melakukan terjemahan dari source code yang ada pada hello.c dalam bahasa mesin yang disimpan dalam file hello.o. Setelah itu, untuk mengeksekusi program tersebut dilakukan linking file object hello.c dengan pustaka standar c. Perintah kedua menentukan program, menghasilkan output yang terlihat pada garis ketiga.

Misalnya , suatu bahasa C dikompilasi menggunakan GCC agar dapat dihasilkan file binnernya , tanpa menyebutkan file yang spesifik.

gcc -o hello.c

Jika kompilasi tersebut tanpa melalui file yang spesifikasi dalam file binernya, output yang dikeluarkan adalah a.out

Selain menggunakan opsi -o untuk melakukan kompilasi secara langsung, kita dapat menggunakan opsi yang lain agar dapat mengetahui proses secara berurutan dalam kompilasi. Kita ambil contoh program di atas ( hello.c )

Untuk melakukan kompilasi agar mendapatkan file objek (.o) kita lakukan perintah

gcc - c hello.c


Mengeksekusi/ Menjalankan GNU C Compiler (GCC)
         Selain dapat digunakan si sistem operasi berbasis linux, GCC juga dapat digunakan di operasi berbasis android seperti gambar berikut ini:
  

Baiklah Friends cukup sampai disini saja dulu materi yang dapat saya sampaikan. Semoga bermanfaat

Domo arigatou gozaimasu, mata ne !!!

See you next time !!!!

Tidak ada komentar:

Posting Komentar