Kamis, 07 Oktober 2010

Preprocessor

Preprocessor

Jika diartikan kedalam bahasa indonesia Pre- artinya sebelum dan Processor- artinya pemroses. Didalam bahasa pemrograman C/C++ Preprocessor adalah proses yang dilakukan sebelum program di kompilasi. Preprocessor biasa digunakan untuk menuliskan sebuah makro, penggunaan pustaka (library), kompilasi berkondisi (conditional compiling), error generation, pragma.

Didalam bahasa pemrograman C/C++ terdapat beberapa Preprocessor yang dapat digunakan untuk melakukan suatu pekerjaan :

Penulisan Makro dan Pendefinisian konstan

   #define
   #undef

direktif preprocessing #define dan #undef dapat digunakan sebagai pendefinisian nilai tertentu.Identifier ini dapat berupa konstan atau funsi makro.

syntax:
    #define identifier replacement
    #undef  identifier

Identifier yang didefinisikan dengan #define akan terbaca atau dapat diakses didalam source code sampai dengan bertemu #undef

contoh:

#include <iostream.h>
#include <conio.h>

#define KONSTAN 99

main()
{
    cout << "nilai KONSTAN = " << KONSTAN;
    getch();
}


Fungsi makro
Sebuah fungsi makro dapat didefinisikan dengan #define dengan format sebagai berikut

syntax:

    #define identifier(parameter-list) (replacement-text)       

contoh:

#include <iostream.h>
#include <conio.h>

#define VOLUME_KUBUS(s) (s)*(s)*(s)

main()
{
    int n;
    int vol;

    cout << "masukan sisi kubus : ";
    cin >> n;

    vol = VOLUME_KUBUS(n);
    cout << "volume kubus dengan sisi " << n << " = " << vol;

    getch();
}


File inclusion untuk menggunakan pustaka

    #include

direktif #include dapat digunakan untuk header file eksternal yang akan diproses oleh compiler

syntax:

    #include <header-file>
                               atau
    #include "header-file"

contoh:

#include <iostream.h>
#include <conio.h>

main()
{
    cout << "menggunakan file header dari iostream libraries\n";
    getch();
}


Kompilasi berkondisi (conditional compiling)

    #if
    #else
    #endif
    #ifdef
    #ifndef
    #elif
    #if defined
    #if !defined

Preprocessor di atas digunakan untuk mengontrol bagaimana source code program akan dikompilasi

Syntax:
    #if constant_expression
    #else
    #endif

    atau

    #if constant_expression
    #elif constant_expression
    #endif


    #ifdef identifier
    #else atau #elif
    #endif

    #ifndef identifier
    #else atau #elif
    #endif


    #ifdef identifier sama seperti menggunakan #if defined(identifier)
    #ifndef identifier sama seperti menggunaka #if !defined(identifier)

Compiler hanya mengkompilasi code setelah ekspresi #if jika constant_expression menghasilakan nilai tidak nol (true). Jika nilai adalah 0 (false), maka compiler akan mengabaikan baris kode sampai bertemu dengan #else, #elif, atau #endif. Direktif #ifdef dan #ifndef dapat digunakan untuk kompilasi berkondisi dari beberapa baris kode berdasarkan sudah atau belumnya identifier didefinisikan

contoh:

#include <iostream.h>
#include <conio.h>

main()
{
    #if 1
        cout << "YuuuHuuuu\n";
    #else
        cout << "Blink_Blink\n";
    #endif

    getch();
}

Jika nilai setelah #if diganti dengan 0 maka yang akan tampil kata Blink_Blink


#include <iostream.h>
#include <conio.h>

#define BAKPAO

main()
{
    
    cout << "makan mie ayam"

    #ifdef BAKPAO
        cout << " tambah bakpao";
    #endif

    getch();
}

Jika definisi BAKPAO di beri comment maka yang akan tampil adalah kata "makan mie ayam"


Error generating

direktif #error akan menghentikan proses kompilasi dan akan menampilkan pesan error

Syntax:

    #error message

contoh:

//#define JALAN
#ifndef JALAN
#error kompilasi dibatalkan karena kondisi tidak terpenuhi
#endif

#include <iostream.h>

main()
{

    // tidak melakukan apa-apa
}

Hilangkan comment pada definisi #define JALAN untuk mengkompile


Referensi
http://en.wikipedia.org/wiki/C_preprocessor
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/1.7.html

C Programming Language (ANSI C) K&R


Kelompok_12:
Ennos Mattan Manalu   : 12108849
Nurulirfan                     : 12107065
Tukiyat                        : 12108345
Irfan Fahmi                   : 12108259
Hendri Baskoro             : 12106014

1 komentar:

  1. How To Make Money in Slot Machines - Work-Tomake Money
    Make Money From Slot Machines and win real money on slot machines, but make money through other ways, like winning real money. For example, you หารายได้เสริม can make

    BalasHapus