Anda di halaman 1dari 38

Bagian 1

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?

Bahasanya ringkas, hanya terdiri


dari 32 keyword menurut standar
ANSI
Tersedia secara komersial untuk
segala jenis komputer dan sistem
operasi
Terstruktur sekaligus fleksibel
Programnya bekerja lebih cepat
dan lebih tangguh, karena akses
dekat ke sistem
Kebanyakan pengembangan bahasa
pemrograman ke depan meniru
sintax C (C-LIKE = mirip C),
seperti : Java, Javascript, C#,
Php,

Keyword C
32 keyword ANSI
C

Beberapa compiler juga menyediakan beberapa keyword


seperti berikut ini :
asm
ada

far
fortran

huge
near

pascal

Catatan :
Semua keyword pada kode program C ditulis dengan huruf kecil

Karakteristik bahasa
C
Semua modul dalam bentuk

fungsi (Perbedaan fungsi dan


prosedur ?)

Struktur Dasar Program C


Setiap Program C terdiri dari satu atau lebih
fungsi (function). Salah satu dari fungsi
tersebut harus bernama main

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

Format Penulisan deklarasi library/header


#include <header_name>
atau
#include header_name
Contoh :
#include stdio.h
atau
#include c:\tc3\include\stdio.h
atau
#include <stdio.h>

File header pertama sekali akan


dicari di directory aktif saat ini,
dan jika tidak ketemu akan
dicari ke directory include yang
ditentukan pada konfigurasi

File header hanya akan dicari di


directory yang langsung
ditentukan

File header hanya akan dicari di


directory include yang
ditentukan pada konfigurasi

Bandingkan dengan pascal


Uses crt;

Perbandingan : Di pascal uses di C #include, di pascal unit di C


header, di pascal unit merupakan file biner/terkompilasi (extention-nya
*.tpu), di C header merupakan file ASCII (extention-nya *.h, dapat
dibaca/dipelajari lebih lanjut)

float B,C;

Format Penulisan deklarasi


fungsi
return-type
function_name([parameter])
Contoh
deklarasi2
{
[deklarasi variabel lokal]
Statement
Return(value)
}

char s;

Contoh :

Bandingkan dengan pascal :

Int jumlah(int A,int B)


{
Int C;
C=A+B;
Return C;
}

Format Penulisan deklarasi


variabel
Data_type variabel_name
Contoh :
int A;

Var
A

:integer;

B,C : real;
S

: char;

Bandingkan dengan pascal :


Function jumlah(A,B:integer):integer;
Var C :integer;
begin
C:=A+B;
jumlah:= C;
End;

Contoh fungsi utama pada C :


int main ()
Contoh deklarasi3
{
Int F,G;
F=5;G=8;
printf(Hasil jumlahnya : %d \n,jumlah(F,G));
return 0;
}
Bandingkan dengan pascal:
var
F,G :integer
begin
Int F,G;
F=5;G=8;
writeln(Hasil jumlahnya : ,jumlah(F,G));
end.

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);
}

Contoh program lengkap

Nama file : Program1.C :


/* program1 */
#include <stdio.h>
#include <conio.h>
/*deklarasi fungsi hitung*/
int hitung(int A,int B)
{
int C;
C=A+B;
return C;
}
/*deklarasi prosedur cetak */
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;
}

Bandingkan jika di pascal :


program program1;
uses crt;
{deklarasi fungsi hitung}
function hitung(A,B:integer):integer;
var C:integer;
begin
c:=a+b;
jumlah:=C;
end;
{deklarasi procedure cetak}
procedure cetak(x,y:integer;s:string);
begin
gotoxy(x,y);
textcolor(14);
write(s);
end;
{program utama}
var F,G :integer;
begin
clrscr;
F:=5; G:=6;
write(Hasil jumlah :',hitung(f,g));
cetak (1,3,Saya sedang belajar pemrograman);
cetak1,4,bahasa C");
readln;
end.

Proses Pembuatan Program Aplikasi


Run
Make

Mulai

Include File
(*.h)

ASCII Editor

Compiler

Linker

Static Library File


(*.Lib)

Source Code
(*.c,*.cpp)

Object Code
(*.obj)

Executable File
(*.exe)

Dynamic Library File


(*.dll)

Preprosessor

Execution

Output

Selesai

Bagaimana Menjalankan C ?

(Dengan aplikasi apa dan dimana program-program C bisa dijalankan ?)

Program C dapat dijalankan baik pada sistem operasi DOS, Windows


maupun Linux, juga berbagai sistem operasi lainnya
Pada DOS kita dapat menggunakan Turbo C (Borland) ver 3 ke bawah
atau Microsoft C (kurang popular)
Pada Windows kita dapat menggunakan Borland C versi 4.x atau ver 5.x
(terakhir BCC ver 5.2), symantec C, dan Visual C
Pada Linux kita bisa gunakan GNU C Compiler (GCC)
Secara umum kode program C di semua jenis compiler C dan pada
berbagai sistem operasi sama saja. Artinya tidak perlu dilakukan
perubahan kode program yang berarti jika hendak menjalankan C melalui
compiler yang berbeda-beda tadi (?). Setidaknya setiap compiler C
umumnya mengacu ke ANSI C sebagai standarisasi C.
Tetapi beberapa compiler C ada yang memiliki kelengkapan library yang
berbeda dengan compiler lain, sehingga perlu beberapa penyesuaian
untuk transfer kode programnya. Contoh : GCC di Linux tidak memiliki
library/header conio.h, sedangkan compiler C di DOS menggunakannya.
Umumnya compiler C menggunakan sistem pemberitaan kesalahan (error
message) yang runtun yang berbeda dengan error message di bahasa
lain. Hal ini perlu diperhatikan untuk efisiensi trouble-shoot kode program

Menjalankan program C dengan Turbo C ver 3.0


Memulai :
Dari prompt DOS \bin\tc.exe {enter}
Dari windows Click icon atau
Click file Tc.exe melalui Window
Explorer

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

Tampilan awal Turbo C 3.0 :

Menjalankan program C dengan Visual C++


Dalam hal ini yang dimaksud Visual C adalah fasilitas untuk menghasilkan
program berbasis tex-nya (program DOS) yaitu : Win32 Console
Application - nya
Memulai :
Jalankan Visual C dari icon-nya
Setelah tampil menu visual C :
- Pilih : File New
- Dari dialog yang muncul click tab projects
- Dari tab projects pilih icon : Win32 Console Application, beri Project
name misal : Program1, lalu click OK
- Muncul dialog lagi, pilih : An Empty Project,dan click tombol Finish,
lalu OK
- Pada tab bagian kiri pilih tab : FileView
- Pada badan tab click : program1 files dan pilih : Source file
- Click kanan dari source file, pilih : Add Files to Folder, beri nama
misal : program1.c, pada dialog yang muncul pilih OK
- Di dalam icon Source File, pilih : Program1.c, akan muncul layar
tempat kita mengetikkan kode program
- Ketikkan kode program pada layar tersebut, Compile dengan :
Ctrl+F7 dan jalankan dengan Ctrl+F5
- Jika kode ada kesalahan pesan kesalahan akan muncul di bagian
bawah menu

Tampilan Visual C : Win32 Concole


Application :
Tampilan VC

Cara menjalankan C dengan GCC di Linux


Langkah :
Ketikkan kode program C dengan salah satu editor ASCII di
linux, seperti : vi, joe, emacs, pico,.
Setelah selesai mengetik kode program, simpan dan beri
nama dengan exstention C, misal : Program1.C
Jika hanya ingin meng-compile kode program lakukan
dengan:
gcc c program1 program1.c
Jika ingin meng-compile sekaligus me-Link kode program
lakukan dengan perintah :
gcc program1.c o program1
atau
gcc o program1 program1.c
Jika tidak ada kesalahan program dapat dijalankan dengan
perintah :
./program1

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

Fatal Errors : A problem of critical nature


that prevents execution from continuing.
Compile-time fatal errors
TLINK fatal errors
MAKE fatal errors

Jenis pesan kesalahan :


Warnings : A problem that can be
overlooked.

Dari sisi lain jenis kesalahan juga dapat


dibedakan seperti :

Compile-time warnings

Compile-Time Error

TLINK warnings

Linking Error

TLIB warnings

Errors : A problem that should be fixed


such as a missing declaration or a type
mismatch.
Compile-time errors
TLINK errors
TLIB errors
MAKE errors

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.

Eksperimen Pertama Pemrograman C


(Lakukan di labor)

Aktifkan editor pada Compiler C yang


Jalankan program dari prompt DOS dengan
anda miliki (dalam hal ini lakukan dengan
mengetikkan hitung.exe {enter} atau dari
Turbo C) dan ketikkan kode C berikut :
Turbo C dengan Ctrl+F9.
{ Harap perhatikan pengetikan huruf kecil
dan huruf besar harus sama! }

Modifikasi kode program di atas menjadi


seperti berikut :

int A;
int B,C;
int main()
{
A=5;B=3;
C=A+B;
return(0);
}

#include <stdio.h>

Simpan dengan nama file : hitung.c


Compile (Alt+F9) kode tersebut untuk
menghasilkan file : hitung.obj, buktikan
dengan melihatnya melalui prompt DOS
Link (Compile-Link) kode file objek
tersebut untuk menghasilkan file :
hitung.exe
Dari prompt DOS atau windows explorer
catat besar file-file berikut :
Hitung.c

{Perhatikan bahwa program belum


menghasilkan apa pun di layar}

: 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

Program yang baru anda cobakan belum


bersifat interaktif sebab input variabel A dan B
langsung dimasukkan di dalam kode program.
Untuk menjadikan program interaktif
tambahkan perintah Scanf() sehingga kode
program menjadi seperti berikut :

#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);
}

Simpan kembali program, jalankan dan catat


hasilnya !
Tanda // digunakan sebagai komentar untuk C+
+ tetapi dikenal juga pada turbo C ver 3.0 untuk
C. Tanda komentar khusus C adalah : /* .*/.
Untuk membersihkan layar setiap program
dijalankan, tambahkan fungsi clrscr() di tempat
yang sesuai.
Untuk menentukan posisi kursor gunakan fungsi
gotoxy(), untuk memberikan efek warna
gunakan fungsi textcolor() ,
textbackground() dengan pencetakan

Statement Pengulangan pada C dapat menggunakan :


While (.)
{ Statement yang diulang}
Untuk menghilangkan statemen return 0 dalam
fungsi main type kembaliannya dganti dari int menjadi
void : void main()

E
k
s
p
e
r
i
m
e
n

Selanjutnya lengkapi kode program tersebut menjadi


seperti berikut :
{Aktifkan fungsi fflush() jika getchar() tidak berfungsi ! }
/* Nama File: hitung.c */
#include <stdio.h>
#include <conio.h>
void main()
{
int A,B,C;
char k;
k='y';
while(k=='y')
{
clrscr();
gotoxy(1,3);
textcolor(14);cprintf("Masukkan nilai A : ");
scanf("%d",&A); //fflush(stdin);
gotoxy(1,4);
textcolor(12);cprintf("Masukkan nilai B : ");
scanf("%d",&B); //fflush(stdin);
C=A+B;
gotoxy(1,5);
textcolor(9);printf("Hasil jumlah = %d \n",C);
gotoxy(1,8);
printf("Hitung lagi [yt] ? ");
k=getchar();
}
}

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.

Cobakan program-program di atas (hitung.c dan rumusABC.c) menggunakan Gcc di linux


dengan menghilangkan fungsi-fungsi dari header conio.h

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;

Syarat penulisan variabel :


1.Diawali dengan huruf atau garis
bawah dan selanjutnya bisa diikuti
oleh huruf atau garis bawah atau
angka
2.Panjang variabel maksimum 32
karakter (standar ANSI)
3.Tidak boleh menggunakan keyword

Tipe Data
Yaitu yang menentukan jenis data yang
tersimpan pada variabel.

Tipe data dasar di C adalah :


Char; yaitu tipe data character
Int ; yaitu tipe data integer, bilangan bulat
Float; yaitu tipe data pecahan, bilangan
floating point, yang menggunakan titik
desimal dan exponen
Double; yaitu bilangan double-precision
floating point, seperti float tetapi angka
signifikannya lebih besar
{Informasi lebih detail pada hal. Selanjutnya}
Sebenarnya ada dua tipe data dasar lain yang
juga sering digunakan, yaitu void yang sering
digunakan pada fungsi dan enum yang akan
dijelaskan kemudian
Escape sequence
\t tab
\n new line
\b backspace
\f form feed

\
\\
\
\r

double quote
backsalash
single quote
carriage retrun

\ddd ASCII code (octal)


\xdd ASCII code (hexa)

Type data dasar C

Perhatikan: int dan short int mempunyai jangkauan dan jumlah


bit yang sama. Untuk IBM PC memang kedua tipe data ini tepat sama,
tetapi pada mesin lain seperti komputer VAX short int adalah 8 bit

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)

pernyataan di atas sama


dengan :

Operator Logika
&& {AND}
||

{c=7 dari c=c+2}


{..}

Operator
increment/decrement
++

Operator relational Operator kondisional


< > <= >=
?:
== {equal}
!= {not equal}
Contoh :

--

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);

Bandingkan dengan pascal :


Var i: integer
For i=1 to 100 do writeln(I);

Pada C memungkinkan untuk membuat


statemen for seperti berikut :
for(j=1,k=1;j<10 && k<12;j++,k++)
{
statement1
statement2

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 :

Exp = ekspresi boolean yang dapat true


atau false, tetapi pada C true berarti tidak
0 dan falsa berarti 0.
Statemen akan dilaksanakan berulangulang selama exp tidak 0.

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.

Statemen do-while dapat digunakan


seperti repeat-until pada pascal
Contoh :
char k;
do{

printf(ingin mengulang ?);


k=getchar();
}while(k=toupper(y));
Bandingkan jika di pascal :
repeat

write(Ingin mengulang ?);


read(k);
until (k<>upcase(y));

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..);

Bandingkan dengan pascal :


If umur<50 then writeln(kerja terus);

if-else
Format :
if (exp boolen) statemen1;
else statemen2;

atau :

{lanjutan format if-else}

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;
}

Jika exp = constant1 maka laksanakan statemen


1, jika exp= constant2 maka laksanakan
statemen 2, jika exp=constant3 maka
laksanakan statemen 3, jika tidak juga
laksanakan statement 4.
Contoh :

Tentang statemen : continue, break,


exit dan return()

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

Istilah-istilah yang sering


muncul:
Called function :
Calling function :
Formal argumen :
Aktual argumen :
Call by value :
Call by reference :
Contoh 1 :
#include<stdio.h>
void main(){
int a,b,c;
int hitung (intg x, intg y);
printf(Masukkan nilai a dan b :);
scanf(%d %d,&a,&b);
c=hitung(a,b);
printf(%3d+%3d =%3d,a,b,c);
}
int hitung(int x,int y)
{ int z;
z=x+y;
return(z);
}

Deklarasi fungsi boleh sebelum dan setelah


fungsi main()
Contoh 2 :
/*Nama File : tukar1.c
Prinsip Call by value
Oleh :
*/
#include <stdio.h>
#include <conio.h>
void tukar(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void main(){
clrscr();
int x=3, y=5;
printf("\nNilai x dan y semula");
printf("\nx = %d y = %d",x,y);
tukar(x,y);
printf("\nNilai x dan y kemudian");
printf("\nx = %d y = %d",x,y);
getch();}

Istilah untuk scope variabel :


Global (extern)
Local (automatic)
Static: tetap menyimpan nilai walau keluar dari
fungsi
Register: menyimpan nilai di salah satu register
pada CPU

Pointer, Array dan String


Pointer
Merupakan variabel yang fungsinya
menyimpan alamat (address) variabel
Fasilitas untuk mengakses suatu
variabel dengan memakai adress
Kegunaan
Calling by reference
Mengembalikan lebih satu nilai dari
satu fungsi
Mengirimkan array dan string dari
suatu fungsi ke fungsi lain
Memudahkan dalam manipulasi array
Manipulasi memory dalam system
Membuat struktur data dinamis seperti
linklist, tree, graph dan sebagainya
Deklarasi pointer
<tipe_data> *<nama_variabel>

Contoh :
int *ptrA;

ptrA adalah variabel pointer untuk tipe


data integer

Jika misalnya variabel A berisi nilai 23, dan ptrA


menunjuk variabel A yang merupakan
representasi alamat memory nomor 2, maka hal
tersebut dapat diilustrasikan seperti berikut :
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();
}

Contoh program penerapan


pointer untuk argumen fungsi
call by reference :
/*Nama File : tukar2.c
Prinsip Call by reference
Oleh :
*/
#include <stdio.h>
#include <conio.h>
void tukar(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main(){
clrscr();
int x=3, y=5;
printf("\nNilai x dan y semula");
printf("\nx = %d y = %d",x,y);
tukar(&x,&y);
printf("\nNilai x dan y
kemudian");
printf("\nx = %d y = %d",x,y);
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 :

Contoh program untuk menguji array dan looping


dengan for :
/* Nama File : acak.c */
#include <stdio.h>
#include <stdlib.h>
void main()
{
int acak[5][5][5];
int i,j,k;

int bulan[12];
float harga[50],barang[50][50];
char nama[20];

/*Harga awal untuk fungsi random*/


srand(1234);

Indeks awal array dimulai dari 0


sehingga variabel bulan di atas terdiri
dari bulan[0] s/d bulan[11].
Nilai array dapat langsung diinisial
seperti contoh berikut :
int A[5] = {15,34,32,12,11};

artinya : mendeklarasikan A sebagai


variabel array sekaligus memberikan
nilai 15 ke A[0], 24 ke A[1], 32 ke
A[2], 12 ke A[3], 11 ke A[4].

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]);
}
}

Latihan : ubah kontrol pengulangan for


pada kode program di atas dengan while !

Array

Pada fungsi sebagai argumen formal


array hanya diberi tanda [] saja tanpa
diberi indeks, sedangkan sebagai
argumen aktual array yang disebut
namanya saja tanpa [].
Contoh :

//called function
int maksimum(int d[],maks)
{

}
void main()
{
int dat[10];

//Calling function
Hasil=maksimum(dat,n);
}

Latihan : Lengkapi kode program


tersebut yang tujuannya mencari
nilai maksimum dari sekelompok nilai
yang dimasukkan melalui keyboard

Array dan pointer


Lanjut

Array dan fungsi

Nama array adalah alamat memory (pointer)


pertama dari elemen array tersebut. Jika A
adalah array berdimensi satu maka alamat
memory dari elemen pertama adalah &A[0]
atau A saja. Sehingga &A[i] sama dengan
(A+i). Maka A[i] pun sama dengan *(A+i)
Berikut contoh program tentang bagaimana
mengakses data array menggunakan konsep
pointer :
/* Nama file :p_array.c */
#include <stdio.h>
#include <conio.h>
void main()
{
int Nilai[5]={55,75,60,90,80};
clrscr();
for(int i=0;i<5;i++)
{
//akses dengan indeks array
printf("\nNilai[%d] = %d",i,Nilai[i]);
//akses dengan pointer
printf("\n*(Nilai+%d)= %u",i,*(Nilai+i));
}

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;

Pemberian nilai inisial ke string dapat


dilakukan dengan :
char nama[]=Hanif;

Atau
char nama[]={H,a,n,I,f,\0};

Deklarasi char *nama menunjukkan


bahwa string adalah pointer, atau
dapat diakses dengan cara-cara yang
sama dengan pointer atau array
Contoh program mengakses string
dalam function :
/*Nama file : p_string.c */
#include <stdio.h>
#include <string.h>
void ubah_nama(char *nama)
{
nama=strcat(nama," Nasution");
}
void main()
{
char *nm;
clrscr();
printf("\nMasukkan nama anda :");gets(nm);
ubah_nama(nm);
printf("\nNama anda sekarang : %s",nm);
getch();
}

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

};

Setelah struktur dideklarasikan,


selanjutnya dapat dideklarasikan variabel
jenis struktur :
<nama_struktur> <nama_variabel>

Boleh juga digabung langsung seperti


berikut :
struc mahasiswa
{
char nim[10];
char nama[25];
int umur;
} amir, amat, tuti;

Dari deklarasi tersebut berari variabel


amir memiliki 3 elemen yaitu : amir.nim,
amir.nama dan amir.umur

Variabel structur dapat langsung


diinisialisasi seperti berikut :
mahasiswa amir ={20019823,Amir
mahmud,19};

yang sama dengan :

Contoh :

amir.nim=20019823;
amir.nama=Amir mahmud;
amir.umur=19;

struc mahasiswa
{
char nim[10];
char nama[25];
int umur;
}

Buatlah program data mahasiswa yang


memiliki dua operasi yaitu : entri dan
tampil. Item datanya terdiri dari :
nim,nama, alamat,tempat & tanggal lahir.
Bila perlu gunakan menu sederhana untuk
memilih operasi.

mahasiswa amir, amat, tuti;

Tugas/Latihan :

Anda perlu membaca refrensi lain untuk


menyelesaikan tugas ini !

Pemrograman File

Anda mungkin juga menyukai