T0616 ALGORITMA DAN PEMROGRAMAN (13) UNIVERSITAS BINA NUSANTARA

Download Report

Transcript T0616 ALGORITMA DAN PEMROGRAMAN (13) UNIVERSITAS BINA NUSANTARA

T0616
ALGORITMA DAN PEMROGRAMAN
(13)
SUBANDIJO
UNIVERSITAS BINA NUSANTARA
FAKULTAS ILMU KOMPUTER
JAKARTA, 2005
6/28/2016
T0616 - Algoritma dan Pemrograman
1
PREPROCESSOR DIRECTIVE
• KOLEKSI PERNYATAAN KHUSUS, DISEBUT
DIRECTIVE, YANG DIEKSEKUSI DI AWAL
KOMPILASI.
• INSTRUKSI UNTUK KOMPILATOR, BUKAN UNTUK
MIKRO PROSESOR.
• DI AWALI DENGAN SIMBOL ‘#’
• DAPAT DILETAKKAN DISEMBARANG LOKASI,
BIASANYA PALING ATAS SEBELUM MAIN().
• CONTOH A.L. #define, #include, #if, #endif, #ifdef,
#ifndef, #undef, #else.
6/28/2016
T0616 - Algoritma dan Pemrograman
2
#define
• UNTUK MEMBERI NAMA SUATU KONSTANTA.
• FUNGSINYA UNTUK MEMPERJELAS KETERBACAAN SUATU PROGRAM.
• SINTAKS
• #define IDENTIFIER teks
• CONTOH
• #define PI 3.14159
• #define kursorKanan “\x1B[C”
6/28/2016
T0616 - Algoritma dan Pemrograman
3
MAKRO
(1)
• IDENTIFIER TUNGGAL YANG SETARA DENGAN
EKSPRESI, PERNYATAAN ATAU SEKELOMPOK
PERNYATAAN. DALAM HAL INI MAKRO MIRIP
FUNGSI.
• DIDEFINISIKAN MENGGUNAKAN #define.
• UMUMNYA DILETAKKAN DI AWAL PROGRAM
SEBELUM DEFINISI FUNGSI YANG PERTAMA.
• LINGKUPNYA MULAI DARI POSISI IA DIDEFINISIKAN SAMPAI AKHIR PROGRAM.
• MAKRO YANG DIDEFINISIKAN DI SUATU
PROGRAM TIDAK DIKENAL DI PROGRAM LAIN.
6/28/2016
T0616 - Algoritma dan Pemrograman
4
MAKRO
(2)
• CONTOH1
#define ERROR printf(“\nError”)
…
if(nilai > 100) ERROR
• CONTOH2
#define LUAS panjang * lebar
main() {
int panjang, lebar;
printf(“\nPanjang =“); scanf(“%d”, &panjang);
printf(“\nLebar =“); scanf(“%d”, &lebar);
printf(“\nLuas
=%d“, LUAS);
}
6/28/2016
T0616 - Algoritma dan Pemrograman
5
MAKRO
(3)
• MAKRO BOLEH MEMPUNYAI ARGUMEN. UNTUK
KEAMANAN LETAKKAN
TANDA KURUNG DISEKITAR MAKRO YANG MEMPUNYAI ARGUMEN.
• #define SUM(x,y) (x+y)
...
jawab2 = 10 * SUM(3,4);
• #define SUM(x,y) x+y
….
Jawab1 = 10 * sum(3,4)
• #define PRODUCT(x,y)(x*y)
…
jawab3 = PRODUCT(2+3,4);
70
34
6/28/2016
T0616 - Algoritma dan Pemrograman
14
6
MAKRO VS FUNGSI
• TUGAS MAKRO SEDERHANA KARENA TIDAK
SEMUA KOMPILATOR C MEMPUNYAI UTILITAS
UNTUK MAKRO MULTI BARIS.
• TUGAS FUNGSI BISA RUMIT KARENA FUNGSI
BISA TERDIRI DARI BANYAK PERNYATAAN YANG
PERLU DIEKSEKUSI.
D
6/28/2016
T0616 - Algoritma dan Pemrograman
7
MAKRO MULTI BARIS
#define LOOP(n) for(brs=1; brs<=n; brs++) {
for(i=1; i<=n; i++) putchar(‘ ‘);
for(i=1; i<=2*brs-1; i++) putchar(‘x‘);\
printf(“\n”);
\
}

main() {
int i, n, brs;
 
printf(“\nBanyak baris “); scanf(“%d”, &n);
  
printf(“\n”);
   
LOOP(n);
n=4
}
6/28/2016
T0616 - Algoritma dan Pemrograman
\
\
8
#IF, #ELIF, #ELSE, #ENDIF
• KOMPILASI PROGRAM SUMBER KONDISIONAL.
• KERAP DIGUNAKAN BERSAMA-SAMA DENGAN
#DEFINE UNTUK MENENTUKAN APAKAH
KONSTANTA SIMBOLIK ATAU IDENTIFIER MAKRO
TELAH DIDEFINISIKAN ATAU BELUM.
#if defined(FOREGROUND)
#define BACKGROUND
#elif
#define FOREGROUND 0
#define BACKGROUND 7
6/28/2016
T0616 - Algoritma dan Pemrograman
9
#IF, #ELIF, #ELSE, #ENDIF
• EKUIVALEN DENGAN
#ifdef FOREGROUND
#define BACKGROUND
#elif
#define FOREGROUND 0
#define BACKGROUND 7
• #IFDEF EKUIVALEN DENGAN #IF DEFINED()
• #IFNDEF EKUIVALEN DENGAN #IF !DEFINED()
• #ELIF EKUIVALEN DENGAN KLAUSA ELSE-IF.
6/28/2016
T0616 - Algoritma dan Pemrograman
10
CONTOH
#if BACKGROUND == 7
#define FOREGROUND 0
#elif BACKGROUND == 6
#define FOREGROUND 1
#else
#define FOREGROUND 6
#endif
#undef: MENEGASI EFEK #define
#undef BACKGROUND
6/28/2016
T0616 - Algoritma dan Pemrograman
11
#INCLUDE
• MENYISIPKAN BERKAS KE BERKAS LAIN.
• BERKAS
• C STANDAR FILE
<NAMA_FILE.H>
• USER DEFINED FILE“NAMA_FILE.H”
• MISALKAN FILE LUAS.H BERISI MAKRO-MAKRO:
• #DEFINE PI 3.14159
• #DEFINE LUAS_LING(JARI2)(PI*JARI2*JARI*)
• #DEFINE
LUAS_SG4(PANJANG,LEBAR)(PANJANG*LEBAR)
• #DEFINE LUAS_SG3(ALAS,TINGGI)(ALAS*TINGGI/2)
• UNTUK MEMAKAI MEREKA, TULIS
• #INCLUDE “LUAS.H”
6/28/2016
T0616 - Algoritma dan Pemrograman
12
C STANDARD FILE
• ISINYA ADALAH DEFINISI FUNGSI DAN MAKRO.
• DIKELOMPOKKAN DI DIREKTORI #INCLUDE
YANG ANTARA LAIN MEMUAT BERKAS-BERKAS
STDIO.H, MATH.H, CONIO.H, TIME.H, DOS.H DLL.
• FUNGSI KEPUSTAKAAN C TIDAK LAIN ADALAH
MAKRO YANG DIDEFINISIKAN DI STANDARD
FILE.
6/28/2016
T0616 - Algoritma dan Pemrograman
13
C STANDARD FILE
• FILE STDIO.H A.L. BERISI DEFINISI-DEFINISI
• #DEFINE GETCHAR() GETC(STDIN)
• #DEFINE PUTCHAR() PUTC(STDIO)
6/28/2016
T0616 - Algoritma dan Pemrograman
14
THE END
“...ALL YOU NEED IS LOVE…”
6/28/2016
T0616 - Algoritma dan Pemrograman
15