Macro
Preprocessor Directives
Adalah suatu perintah yang termasuk
kedalam program, tetapi bukanlah instruksi dari program itu sendiri, tetapi
untuk preprocessor. Preprocessor ini dijalankan secara otomatis oleh kompiler,
ketika
didalam proses penterjemahan (Compile) program berlangsung,
didalamnya membuat nilai pembuktian pertama dan menterjemahkan code program
didalam kode objek. Didalam penggunaan preprocessor directive selalu dimulai
dengan tanda : #
Ada beberapa preprocessor directive,
diantaranya adalah :
# define
Digunakan untuk mendefinisikan suatu
nilai tertentu kepada suatu nama konstanta.
Bentuk umum dari preprocessor
directive #define ini adalah:
#define nama_konstanta teks
Contoh :
Teks
#define A 6
Nama_Konstanta
Dalam pendeklarasian preprocessor
directive #define,
Nama_Konstanta sebaiknya ditulis dengan menggunakan huruf besar, guna untuk
membedakannya dengan nama_variabel. Sedangkan Teks merupakan suatu nilai
yang diberikan pada nama_konstanta. Teks dapat berupa :
• Numerik
à #define PI 3.14
• Karakter
à #define HURUF ‘B’
• String
à #define JABATAN “INSTRUCTOR”
• Pernyataan
à #define CETAK (“Borland C++”)
• Fungsi Sederhana
à #define LUAS_KUBUS (n*n)
Contoh1:
/* ————————– */
/* Program Penggunaan #define */
/* ————————– */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define PI 3.141592
#define L(n) PI*n*n
main()
{
clrscr();
cout<<”Luas Lingkaran dengan :
“<<endl;
cout<<”Jari-jari = 5 adalah
“<<L(5)<<endl;
cout<<”Jari-jari = 10 adalah
“<<L(10)<<endl;
getche();
}
Contoh2:
/* ————————– */
/* Program Penggunaan #define */
/* ————————– */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define masuk cin
#define hapus() clrscr()
#define tahan() getch()
#define LS_KUBUS (sisi*sisi)
mulai()
awal
int sisi, ls_kubus;
hapus();
cetak<<”Program Penggunaan
#define”<<endl<<endl;
cetak<<”Masukkan Nilai Sisi
Kubus = “; masuk>>sisi;
ls_kubus = LS_KUBUS;
cetak<<”Luas Kubus adalah :
“<<ls_kubus;
tahan();
akhir
# include
berfungsi untuk memasukkan atau
menyertakan file-file header kedalam program yang akan dibuat. Dalam penulisan
#include ada dua bentuk penulisan :
#include “nama_file_header“
atau
#include <nama_file_header>
Pada bentuk penulisan #include
mempunyai arti yang berbeda, yaitu :
• #include “nama_file_header“
“Pertama kali compiler akan mencari
file header yang disebutkan pada directori yang sedang aktif dan apa bila tidak
ditemukan akan mencari pada directori dimana file header tersebut berada “.
• #include
<nama_file_header>
“Pertama kali compiler akan mencari
file header yang disebutkan pada directori yang ada file headernya, kecuali
pada directori yang sedang aktif.
Pembuatan File Header
File Header adalah suatu file dengan
akhiran .h . File ini sebenarnya berisikan deklarasi fungsi dan definisi
konstanta. Selain file-file header standar yang disediakan oleh C++, kita dapat
juga membuat file header sediri, dengan cara yang sama seperti membuat file
editor. Yang harus diperhatikan pada saat menyimpan file header yang telah
dibuat harus digunakan akhiran .h .
Buatlah program file heder dibawah
ini, kemudian simpan dengan nama : atur.h, pada folder kerja anda folder
include
Contoh-1
/* atur.h */
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define tampil cprintf
#define masuk cin
#define hapus() clrscr()
#define jika if
#define warna textcolor
#define tahan getche()
Buatlah program dibawah ini,
kemudian gunakan file header yang sudah anda buat dan simpan dengan nama : sendiri.cpp
/* ———————————- */
/* program dengan file header
sendiri */
/* ———————————- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include”atur.h”
mulai()
awal
int a, b, c;
hapus();
warna(4);
tampil(“\nPROGRAM PENJUMLAHAN\n”);
cetak<<endl;
cetak<<”Masukkan Nilai A = “;
masuk>>a;
cetak<<”Masukkan Nilai B = “;
masuk>>b;
c=a+b;
cetak<<”Hasil dari
“<<a<<” + “<<b<<” = “<<c;
tahan;
akhir
Structure
Structure digunakan untuk
mengelompokan sejumlah data yang mempunyai tipe data yang berbeda.
Variabel-variabel yang membentuk sebuah struktur dinamakan elemen struktur.
Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal
Deklarasi Structure
|
|
|
|
|
struct
nama_tipe_struktur
{
elemen_struktur;
…..
…..
};
|
|
|
struct
{
elemen_struktur;
…..
…..
}
nama_tipe_struktur;
|
|
Atau
Contoh1:
/* —————————- */
/* Program Penggunaan structure */
/* Nama File : struct1.cpp */
/* —————————- */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
struct
{
char nim[5];
char nama[15];
int nilai;
} mahasiswa;
clrscr();
cout<<”masukan NIM = “;
cin>>mahasiswa.nim;
cout<<”masukan Nama =
“;cin>>mahasiswa.nama;
cout<<”masukan Nilai Akhir =
“; cin>>mahasiswa.nilai;
cout<<”\n\nData Yang di
Inputkan adalah : \n\n”;
cout<<”NIM =
“<<mahasiswa.nim<<endl;
cout<<”Nama =
“<<mahasiswa.nama<<endl;
cout<<”Nilai Akhir =
“<<mahasiswa.nilai<<endl;
getch();
}
Nested Structure
Contoh2:
/* ———————————– */
/* Program Penggunaan Nested
structure */
/* ———————————– */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
struct dtmhs
{
char nim[9];
char nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
clrscr();
//-> masukan data
cout<<”masukan NIM = “;
cin>>nilai.mhs.nim;
cout<<”masukan Nama = “;
cin>>nilai.mhs.nama;
cout<<”masukan Nilai UTS = “;
cin>>nilai.nil.nil1;
cout<<”masukan Nilai UAS = “;
cin>>nilai.nil.nil2;
cout<<endl;
//-> menampilkan hasil masukan
cout<<”masukan NIM =
“<<nilai.mhs.nim<<endl;
cout<<”masukan Nama =
“<<nilai.mhs.nama<<endl;
cout<<”masukan Nilai UTS =
“<<nilai.nil.nil1<<endl;
cout<<”masukan Nilai UAS =
“<<nilai.nil.nil2<<endl;
cout<<endl;
getch();
return(0);
}
Structure dengan Array
struct
{
elemen_struktur;
…..
…..
} nama_tipe_struktur[jml_index];
Contoh3:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
int i,j=1;
struct
{
char nim[10];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=1;i<=2;i++)
{
cout<<”Data
ke-”<<i<<endl;
cout<<”Masukkan
NIM
: “;cin>>mhs[i].nim;
cout<<”Masukkan
Nama :
“;cin>>mhs[i].nama;
cout<<”Masukkan Nilai
Akhir : “;cin>>mhs[i].nilai;
cout<<endl;
}
for(i=1;i<=2;i++)
{
cout<<”Data
ke-”<<i<<endl;
cout<<”NIM
= “<<mhs[i].nim<<endl;
cout<<”Nama
= “<<mhs[i].nama<<endl;
cout<<”Nilai Akhir =
“<<mhs[i].nilai<<endl;
cout<<endl;
}
getch();
}
Structure dengan Function
/* —————————————— */
/* Program Penggunaan structure pada
function */
/* Nama File : struct4.cpp */
/* —————————————— */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
char ket(float n);
main()
{
int i, j=1, k=1;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{
cout<<”Data Ke –
“<<j++<<endl;
cout<<”masukan NIM = “;
cin>>mhs[i].nim;
cout<<”masukan Nama = “;
cin>>mhs[i].nama;
cout<<”masukan Nilai Akhir =
“; cin>>mhs[i].nilai;
cout<<endl;
}
clrscr();
for(i=0; i<2; i++)
{
cout<<”Data Ke –
“<<k++<<endl;
cout<<”NIM =
“<<mhs[i].nim<<endl;
cout<<”Nama =
“<<mhs[i].nama<<endl;
cout<<”Nilai Akhir =
“<<mhs[i].nilai<<endl;
cout<<”Keterangan yang didapat
= “;
cout<<ket(mhs[i].nilai)<<endl;
cout<<endl;
}
getch();
}
char ket(float n)
{
if(n > 65)
return ‘L’;
else
return ‘G’;
}