PENGANTAR BAHASA C
LEARNING OUTCOMES
Pada akhir pertemuan, diharapkan mahasiswa
mampu :
Menjelaskan elemen dan struktur pemrograman C atau
C++
OUTLINE MATERI
Pengantar Bahasa C
Sejarah Bahasa C
Karakter, Identifier, Keyword
Tipe Data, Konstanta, Variabel
Struktur Program dan Komentar
SEJARAH BAHASA C
Dirancang oleh Denis M. Ritchie tahun 1972 di Bell
Labs.
Pengembangan dari bahasa BCPL (Martin Richard,
1967) dan bahasa B (Ken Thompson, 1970)
Dibantu Brian W. Kernighan, Ritchie menulis buku The
C Programming Language (1978). Dikenal dengan
nama K-R C atau C klasik.
Versi C yang lebih baru Ansi C 1989, iso C 99.
MENGAPA C?
Flexibility : mendekati low level language
namun mudah dimengerti.
Portability : dipakai mulai dari komputer mikro
sampai superkomputer
Bahasa yang banyak digunakan dalam ilmu
komputer untuk membuat O/S dan program
aplikasi, dll.
Didukung oleh banyak pustaka (libraries)
STRUKTUR PROGRAM
Bahasa C adalah salah satu bahasa pemrograman yang
terstruktur
Bahasa C terdiri dari fungsi-fungsi
Tidak ada perbedaan antara prosedur dengan fungsi
Setiap program C mempunyai satu fungsi dengan nama
main (program utama).
Program akan dieksekusi dimulai dari statement pertama
pada fungsi main tsb.
Huruf besar dengan huruf kecil diartikan berbeda (casesensitive).
Setiap statement diakhiri dengan semi-colon (titik koma (;)).
6
STRUKTUR PROGRAM
Format penulisan fungsi main
1.
main()
{
statements;
3.
2.
void main()
{
statements;
}
4.
main()
{
statements;
return (0);
}
int main()
{
statements;
return (0);
}
STRUKTUR PROGRAM
Sering dijumpai beberapa format penulisan fungsi main seperti
contoh diatas, tetapi tidak semua compiler mengenalnya.
Penulisan fungsi main yang standard seperti contoh No. 3 atau
4 diatas.
return (0), menyatakan program exit secara normal.
Fungsi main dan juga fungsi yg lainnya jika tidak diberikan tipe
maka defaultnya integer (int). Pada contoh diatas No. 3 dan 4
artinya sama.
Contoh:
dengan menggunakan compiler Turbo C 2.0 (DOS) dan Microsoft Visual
C++ (windows), (2), (3) dan (4) => Success, tetapi (1) warning
dengan menggunakan compiler Dev-C (windows), dan gcc (linux) (1), (3)
dan (4) => Success, tetapi (2) warning
8
STRUKTUR PROGRAM
Contoh:
int main()
{
printf(Selamat datang di FT-UB\n);
return (0);
}
#include <stdio.h>
int main()
{
printf(Selamat datang di FT-UB\n);
return (0);
}
STRUKTUR PROGRAM
#include stdio.h
File stdio.h akan dicari mulai dari current / working directory, dan jika tdk
ada akan dilanjutkan mencarinya ke directory tempat header file
tersebut disimpan pada saat menginstall compiler-nya.
Sama
#include <stdio.h>
int main() {
printf(Selamat datang\n);
return (0);
}
11
IDENTIFIER
KEYWORD
Beberapa compiler akan memberikan warna yang berbeda
untuk keyword, seperti pada dev-C atau Visual C++,
dibawah ini.
Pada Visual C++ keyword
dicetak dengan warna biru
Pada Dev-C
keyword dicetak
BOLD
18
VARIABEL
Contoh:
int a, b, c, jumlah;
float gaji, bonus;
int jml_mhs = 20;
19
VARIABEL
20
VARIABEL
Deklarasi Variabel:
Variabel dpt dideklarasikan di setiap awal blok statement.
Blok statement disebut juga compound statement adalah statementstatement yang berada diantara { dan }.
Contoh deklarasi variabel:
int x;
int y;
int z;
atau bisa ditulis :
int x, y, z;
atau bisa juga ditulis :
int x; int y; int z;
21
TIPE DATA
Character
Integer
Floating point
Double floating point
Void
1.
2.
3.
4.
5.
char
int
float
double
void
22
TIPE DATA
23
Penulisan
Memori
Rentang Nilai
character
unsigned char
char
1 Byte
1 Byte
0 s/d 255
-128 s/d 127
integer
unsigned int
int
short int
unsigned long
long
2 Byte
2 Byte
1 Byte
4 Byte
4 Byte
0 s/d 65535
-32768 s/d 32767
-128 s/d 127
0 s/d 4294967295
-2147483648 s/d 2147483647
float
float
double
long double
4 Byte
8 Byte
16 Byte
24
-128
32
64
Jika dijumlahkan
hasilnya = -128
16
Jika dijumlahkan
hasilnya = -1
26
27
28
Contoh
int ch=127;
ch=ch+1;
Berapa nilai ch ?
Jawaban : 128
29
30
CAST
Cast : untuk mengkonversi tipe data pada bahasa
C
Sintak : (type)
Contoh :
int x;
float f = 3.134;
x = (int) f;
Cast
31
Symbolic Constant
Symbolic Constant adalah Identifier yang hanya memiliki
nilai (R-Value), dan nilai-nya tidak bisa dirubah-rubah pada
saat run time.
Symbolic Constant tidak memiliki alamat (L-Value)
Pada bahasa C deklarasi symbolic constant tidak
membutuhkan alokasi memori
Untuk mendeklarasikan symbolic constant pada bahasa C
bisa dilakukan dengan pre-processor directive #define atau
dengan keyword const.
Contoh:
const float Pi=3.14;
#define Pi 3.14
32
Symbolic Constant
#define Pi 3.14
int main()
{ Pi=3.1475; //Error
return 0;
}
int main()
{ const float Pi=3.14;
Pi=3.1475; //Error
return 0;
}
#define Pi 3.14
int main()
{
float PHI=3.14;
PHI = 3.1475; //OK (variable)
Pi=3.1475;
//Error
return 0;
}
33
KONSTANTA
Konstanta / symbolic constant tidak memiliki alamat (hanya nilai) dan
nilainya tdk bisa dirubah saat run time.
Jenis-jenis Nilai konstanta:
Integer constant
-5
Floating-point constant 3.14
Character constant
'C' '1' '$'
Escape sequence
\n \t \''
String constant
'T IF FT- UB''
Sy m bolic constant
#define PHI 3.14
const f lo at PHI= 3.14;
'H'
adalah sebuah nilai character constant
''H''
adalah sebuah nilai string constant
1 adalah sebuah nilai integer constant
'1' adalah sebuah nilai character constant
const f lo at Pi= 3.1415926;
Pi adalah sebuah sy m bolic
constant
34
CONTOH PROGRAM
35
CONTOH PROGRAM
Program menghitung luas lingkaran
Data jejari dibaca dari keyboard, kemudian hasil perhitungan
ditayangkan di layar monitor.
/*---------------------------------Program Luas_Lingkaran
----------------------------------*/
#include <stdio.h>
const float Pi = 3.14;
/*Deklarasi Konstanta*/
int main()
/*Program utama mulai*/
{
float jejari;
/*Deklarasi local Variabel*/
float luas;
scanf(%f,&jejari);
/*Masukkan dari keyboard*/
luas = Pi * jejari * jejari;
printf(Luas = %5.2f, luas);
/*Mencetak ke layar*/
return (0);
}
/*Program utama selesai*/
36
SIZEOF
sizeof adalah sebuah operator untuk mengetahui
jumlah memori (byte) yang diperlukan oleh suatu
tipe data pada bahasa C
Sintaknya : sizeof expression
Contoh :
sizeof(int) = 4 => pada Dev-V (Windows)
sizeof(int) = 2 => pada Turbo C versi 2.0 (DOS)
37
SUFFIX
Bahasa C menyediakan Suffix (akhiran) untuk
bilangan floating point konstan sbb:
F atau f untuk tipe float
L atau l untuk tipe long double
Default tipenya double
Contoh:
3.14 => (double)
3.14f => (float)
3.14L => (long double)
38
SUFFIX
Bahasa C menyediakan Suffix (akhiran) untuk
bilangan integer konstan sbb:
U atau u untuk tipe unsigned integer
L atau l untuk tipe long integer
UL atau ul atau LU atau lu untuk tipe bilangan unsigned long
integer
Default tipenya integer
Contoh:
174 => (integer)
174u => (unsigned integer)
174L => (long integer)
39
SUFFIX
Beberapa compiler akan memberikan warning karena
perbedaan tipe data seperti compiler pada Visual C+
+ sbb:
Contoh:
float x;
x = 3.14;
warning : truncation from 'const double' to 'float
SUFFIX
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
printf("Sizeof Floating Point Constan :\n");
printf(" - dgn suffix f = %d\n",sizeof(3.14f));
printf(" - tanpa suffix = %d\n",sizeof(3.14));
printf(" - dgn suffix L = %d\n",sizeof(3.14L));
ch=getch();
return 0;
Output :
LATIHAN
1. Apakah yang dimaksud dengan fungsi library dalam bahasa
pemrograman C ?
2. Jelaskan apa yang dimaksud dengan identifier pada bahasa
pemrograman C
3. Berapakah data terbesar yang bisa ditampung oleh variabel
x yang bertipe integer dengan ukuran 20-bit ?
4. Sebutkan tipe data (boleh lebih dari satu) yang tepat untuk
mengolah data umur !
5. Sebutkan tipe data yang tepat untuk menampung data Nim
Mahasiswa !
6. Sebutkan tipe data yang tepat untuk menampung data saldo
rekening !
42
LATIHAN
7. Kapan sebaiknya menggunakan directive:
1. #include <header.h> atau
2. #include header.h
8. #include header.h
9. Jika tipe integer ukurannya hanya 3 byte,
berapakah rentang nilainya (range) ?
10.Jika tipe unsigned integer ukurannya hanya 3
byte, berapakah rentang nilainya (range) ?
11.Apakah beda Variabel dengan Konstanta ?
12.Jika x variabel bertipe integer dan ukurannya 2
byte, jika x=32767 maka berapakah nilai x jika
nilai x ditambah 1 ?
43
LATIHAN
13.Diketahui bilangan biner 10-bit sbb:
1010110011
a) Jika bilangan biner tersebut adalah bilangan
signed berapa nilai desimalnya ?
b) Jika bilangan biner tersebut adalah bilangan
unsigned berapa nilai desimalnya
14. Jelaskan tentang sistem bilangan
Desimal
Biner
Oktal
Heksadesimal
15.Jelaskan bagaimana cara mengkonversi sistem
bilangan desimal ke biner, oktal dan Heksadesimal,
dan sebaliknya
44
LATIHAN
16. Jelaskan tentang sistem bilangan twos
complement, ones complement.
17. #define PHI 3.142857
Apa keuntungan kita menggunakan konstanta
PHI spt diatas? Mengapa tdk langsung saja
menggunakan angka 3.142857
45