INTRODUCTION
Awal Berkenalan
Sejarah C
Bahasa C hasil kreasi dari Dennis M.
Ritchie (1972) di Bell Telephone
Laboratory Inc., Murray Hill, New
Jersey, USA (Sekarang dikenal
dengan AT&T Bell Laboratory)
Implementasi pertama pada OS
UNIX, dan dijalankan di mesin DEC
PDP-II
Merupakan pengembangan dari B
(Ken Thomson) dan bahasa
BCPL/Basic Command Programming
Language (Martin Richards)
Mengapa mesti
C?
Keyword C
32 keyword ANSI
C
far
fortran
huge
near
pascal
Catatan :
Semua keyword pada kode program C ditulis dengan huruf kecil
Karakteristik bahasa
C
Semua modul dalam bentuk
Struktur Program
Tidak mengenal space sebagai
[Deklarasi header/library]
pemisah, kecuali antar instruksi
[ Deklarasi variabel/konstanta]
yang berbeda
[ Deklarasi fungsi]
Fungsi utama
Setiap statemen dipisahkan
[] = optional, adanya tergantung
oleh semicolon (;)
kebutuhan
Bandingkan dengan
Struktur Program Pascal :
Kode programnya bersifat
[Deklarasi nama program]
case-sensitif(membedakan
[Deklarasi unit]
huruf kapital dan huruf kecil).
Keyword dan perintah-perintah [Deklarasi type]
[Deklarasi variabel/konstanta]
dituliskan dengan huruf kecil.
[Deklarasi fungsi]
[Deklarasi Prosedur]
Kode utama
Cont
oh
dekl
arasi
1
float B,C;
char s;
Contoh :
Var
A
:integer;
B,C : real;
S
: char;
Tentang Prosedur
Bahasa C secara khusus tidak
memiliki prosedur, karena
mudularisasi di C dilakukan dengan
fungsi. Tetapi fungsi di C dapat diakali untuk bekerja seperti
prosedur.
Contoh dari prosedure pascal
berikut :
Procedure cetak(x,y:integer;s:string);
Begin
gotoxy(x,y);textcolor(14);
write(s);
End;
Di C ditulis dengan :
void cetak(int x,int y, char *s)
{
gotoxy(x,y);textcolor(14);
cprintf(%s,s);
}
/*program utama*/
int main()
{
int F,G;
clrscr();
F=5; G=3;
printf("Hasil jumlah : %d\n",hitung(F,G));
cetak(1,3,Saya sedang belajar pemrograman);
cetak1,4,bahasa C");
getchar();
return 0;
}
Mulai
Include File
(*.h)
ASCII Editor
Compiler
Linker
Source Code
(*.c,*.cpp)
Object Code
(*.obj)
Executable File
(*.exe)
Preprosessor
Execution
Output
Selesai
Bagaimana Menjalankan C ?
Petunjuk Dasar :
Ketikkan kode program di tempat yang disediakan
Menyimpan program : File Save atau File Save As
Mengkompail program (menghasilkan file obj) : Compile-Compile (Alt+F9)
Mengkompail sekaligus me-link file (menghasilkan file exe) :
Compile Make (F9)
Menjalankan program : Run Run (Ctrl+F9)
Menkonfigurasi directori include, library,output dan source : Options
Directories
Yang lain silahkan dicoba sendiri !
Ta
m
pil
an
T
C3
Error Messages
(Pesan Kesalahan)
Kode program (source code) yang
belum sesuai dengan aturan-aturan C,
jika di-compile atau di-link akan
memberikan pesan kesalahan
tertentu sesuai dengan jenis
kesalahannya
Compile-time warnings
Compile-Time Error
TLINK warnings
Linking Error
TLIB warnings
Run-Time Error
Umumnya compiler C akan mendaftarkan
semua runtunan kesalahan yang terjadi
yang diakibatkan oleh setiap sebuah
kesalahan. Pemberitaan kesalahan
beruntun seperti ini harus diamati dengan
cermat untuk dapat memperbaiki
kesalahan tersebut dengan cepat.
int A;
int B,C;
int main()
{
A=5;B=3;
C=A+B;
return(0);
}
#include <stdio.h>
: bytes
Hitung.obj
: bytes
Hitung.exe
: bytes
int A;
int B,C;
int main()
{
A=5;B=3;
C=A+B;
printf(Hasiljumlah =%d \n,C);
return(0);
}
Compile dan Link kembali program (secara
singkat lakukan langsung dengan Run-Run).
Perhatikan jika anda melakukannya dari
menu Turbo C hasil program tidak akan
terlihat. Untuk itu tambahkan di akhir
program dengan perintah : getchar()
(sebelum return 0)
Hasil program akan tampak di layar :
Hasil jumlah =8
Bersambung
sambungan
#include <stdio.h>
int A;
int B,C;
int main()
{
//A=5;B=3;
printf("Masukkan nilai A :");
scanf("%d",&A);
printf("Masukkan nilai B :");
scanf("%d",&B);
C=A+B;
printf(Hasiljumlah =%d \n,C);
getchar();
return(0);
}
E
k
s
p
e
r
i
m
e
n
Latihan
1.
Lengkapi kode program di atas untuk memberikan hasil pengurangan, perkalian, pembagian,
dan pangkat !
2.
Buatlah program C untuk menghitung persamaan kuadrat dengan rumus ABC, dengan contoh
kode programnya dalam pascal seperti berikut :
program rumus_abc;
uses crt;
var a,b,c :integer;
d,x1,x2 :real;
begin
clrscr;
write('Masukkan nilai koefisien a : ');readln(A);
write('Masukkan nilai koefisien b : ');readln(B);
write('Masukkan nilai koefisien c : ');readln(C);
d:=b*b-4*a;
if d>0 then
begin
x1:=(-b-d)/(2*a);
x2:=(-b+d)/(2*a);
writeln;
writeln('Penyelesaian ');
writeln('X1 = ',x1:4:2);
writeln('X2 = ',x2:4:2);
end
else if d=0 then
begin
x1:=-b/(2*a);
x2:=x1;
writeln('Penyelesaian ');
writeln('X1 = ',x1:4:2);
writeln('X2 = ',x2:4:2);
end
else
begin
writeln;
writeln('Penyelesaian akar imajiner');
end;
readln;
end.
3.
4.
Catat pesan-pesan kesalahan yang pernah muncul selama anda ber-eksprimen dan
latihan, baik pada Turbo C mapupun pada Gcc Linux
Bagian 2
Unsur-unsur kode
program C
Unsur-unsur Program C
Variabel
Yaitu identifier yang digunakan untuk
menam-pung data/informasi
Format deklarasi variabel
<tipe data> <nama variabel>
<tipe data> <nama variabel> = <nilai inisial>
Contoh :
int a,b,c;
float p,q;
int x=20;
Tipe Data
Yaitu yang menentukan jenis data yang
tersimpan pada variabel.
\
\\
\
\r
double quote
backsalash
single quote
carriage retrun
Operator
Operator Arithmatic :
+
Contoh :
c=a+b;
d=5%2;
{ Note : Pangkat dengan fungsi pow() }
Operator Aritmatic
Assignment
+= -= *= /= %=
Contoh :
c=5;
c+=2;
c-=2;
Contoh :
z = (x < y) ? x : y;
(5>=2)
(k==toupper(y))
(n!=0)
Operator Logika
&& {AND}
||
Operator
increment/decrement
++
--
Contoh :
c=4;
c++;
{c=5 dari c=c+1}
c--;
{..}
a=5;
b=a++; {a=6 b=5}
b=++a; {a=6 b=6}
{OR}
(Not}
Contoh :
(n!=0) &&
(k=toupper(y))
A || B
Operator pointer
& {address of}
* {value of}
Contoh :
{ Next discussion }
if (x < y)
z = x;
else
z = y;
Operator Pergeseran bit
<<
{Shift Right}
>>
{Shift left}
Contoh :
A=1;
B=A << 3 {B=8}
Operasi-operasi berikut ini
valid :
c=b=a+5;
c=b=(c!=d);
Statemen Input-Output
Statemen input dalam hal ini yaitu fungsi
yang gunanya untuk menerima data dari
keyboard
Statemen output yaitu fungsi yang
gunanya untuk menuliskan data ke layar
monitor
Yang termasuk statemen input :
getchar()
getche()
getch()
gets()
scanf()
Yang termasuk statemen output :
puts
putchar()
putch()
printf()
cprintf()
Statemen Kontrol
Yaitu statemen yang dapat mengatur
arah/aliran program. Secara umum
dapat di-kelompokkan kepada :
1.Kontrol Pengulangan (loop); yaitu
statemen yang dapat membuat
sebagian kode program
dilaksanakan beberapa kali
(mengulangi)
2.Kontrol Penyeleksian (decision);
yaitu statemen yang dapat memilih
apakah sebagian kode program
dilaksanakan atau tidak
(memutuskan)
Yang termasuk kontrol Pengulangan :
for
while
do-while
Yang termasuk kontrol Penyeleksian :
if
if-else
switch-case
KONTROL PENGULANGAN :
for
Format :
for (exp1;exp2;exp3) statemen_diulang
atau
for (exp1;exp2;exp3)
{
statemen_diulang
}
Exp1 = ekspresi untuk inisialisasi
Exp2 = ekspresi untuk conditional
Exp3 = ekspresi untuk decrement
Contoh :
int i;
for (i=0;i<100;i++) printf(%d\n,i);
atau
for (int=0;i<100;i++) printf(%d\n,i);
While
Format :
while(exp) statement
Contoh :
int h=1;
while(h<10)
{
printf(%d,hitung);
hitung++;
}
Boleh juga menjadi :
int h=1;
while(h<10) printf(%d,hitung++)
atau
do-while
while(exp)
{
Statement1;
Statement2;
}
Format :
Whi
le
do
{
Statements
}while(exp);
Perbedaannya dengan while yang pertama
yaitu do-while pasti akan melaksanakan
statemen yang diulang minimal sekali yaitu
saat pertama dilalui, sedangkan while ada
kemungkinan tidak melaksanakan statemen
yang diulang jika exp bernilai 0.
KONTROL PENYELEKSIAN :
if
y
e
l
e
k
s
i
a
n
1
Format :
If (exp boolean) statemen
atau
If (exp boolean)
{
statements
}
Jika exp boolean menghasilkan nilai true (bukan0)
maka statemen akan dilaksanakan, jika bernilai 0
tidak akan dilaksanakan
If (umur<50) printf(Kerja terus..);
if-else
Format :
if (exp boolen) statemen1;
else statemen2;
atau :
if (exp boolen)
{statemen1;
statemen2;
}
else
{statemen3;
statemen4;
}
Contoh :
if (umur<50)
printf(kerja terus\n);
else
printf(anda pensiun\n);
Switch-case :
Fungsinya seperti case-of pada pascal atau
select-case pada basic, yaitu untuk
menggantikan if bertingkat.
Format :
Switch (exp)
{
case constant1 : statemen1;break;
case constant2 : statemen2;break;
case constant3 : statemen3;break;
default : statemen4;
}
y
e
l
e
k
s
i
a
n
2
Fungsi
Kegunaan :
Salah-satu implementasi prinsip
modularisasi pada C
Menghindari penulisan kode yang
sama berulang kali
Contoh :
int *ptrA;
2
(A)
Alamat
memor
y
23
Prosesnya dalam kode C dapat dituliskan seperti
berikut :
Int A;
Int *ptrA;
A=23;
*ptrA=&A;
Jadi operator * digunakan untuk menyatakan isi
(content of) pointer, sedangkan operator &
digunakan untuk menyatakan alamat memory
(adress of) variabel .
Jika ingin meng-akses (mencetak) nilai 23 (isi
memory) melalui variabel biasa, maka perintahnya
adalah :
Printf(%d,A);
Jika ingin meng-akses (mencetak) nilai 23 (isi
memory) melalui pointer, maka perintahnya adalah :
Percobaan pointer
Coba program berikut dan amati untuk
memahami kode pemrograman pointer :
/*
Nama File :pointer.c
*/
#include <stdio.h>
#include <conio.h>
void main()
{
int A;//deklarasi var biasa
int *ptrA; //deklarasi var pointer
clrscr();
A=23;
ptrA=&A;
printf("\n A
= %d",A); //isi dari var A
printf("\n&A
= %u",&A); //alamat memory var A
printf("\n*(&A) = %u",*(&A)); //isi di alamat pada var A
printf("\nptrA = %u",ptrA);//isi dari var pointer ptrA
printf("\n*ptrA = %d",*ptrA);//isi di alamat pada var ptrA
printf("\n&ptrA = %u",&ptrA);//alamat memory var ptrA
getch();
}
Array
Array adalah suatu variabel yang dapat
menyimpan beberapa item data yang
tipenya sama
Deklarasi array :
Format :
<tipe_data> <nama_variabel>[exp1][exp2][]
Contoh :
int bulan[12];
float harga[50],barang[50][50];
char nama[20];
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
for(k=0;k<5;k++)
{
acak[i][j][k]=rand();
printf("\n Acak[%d][%d][%d]\
= %d",i,j,k,acak[i][j][k]);
}
}
Array
//called function
int maksimum(int d[],maks)
{
}
void main()
{
int dat[10];
//Calling function
Hasil=maksimum(dat,n);
}
String
String adalah array dari tipe character yang
diakhiri dengan null character (\0)
Data konstan string ditulis dengan diapit oleh
tanda petik dua (string)
Character string konstan memiliki scope
static yang berarti
..
Deklarasi tipe string :
Format :
char <nama_variabel>[exp]
atau
char <nama_variabel>[]={inisial}
atau
char *<nama_variabel>
Contoh :
char nama[];
char *alamat;
Atau
char nama[]={H,a,n,I,f,\0};
Structure
Struktur yaitu suatu variabel yang dapat
menyimpan sejumlah item dari tipe data
yang berbeda.
Struktur pada C sama dengan record
pada pasca
Deklarasi Struktur :
Format :
struct <nama_struktur>
{
member1
member2
member3
};
Contoh :
amir.nim=20019823;
amir.nama=Amir mahmud;
amir.umur=19;
struc mahasiswa
{
char nim[10];
char nama[25];
int umur;
}
Tugas/Latihan :
Pemrograman File