Anda di halaman 1dari 45

BAHASA C

MATA KULIAH KOMPUTER

AKADEMI MINYAK DAN GAS BALONGAN


INDRAMAYU
Awal Berkenalan
Sejarah C Mengapa mesti C ?
• Bahasa C hasil kreasi dari Dennis M. • Bahasanya ringkas, hanya terdiri
Ritchie (1972) di Bell Telephone dari 32 keyword menurut standar
Laboratory Inc., Murray Hill, New ANSI
Jersey, USA (Sekarang dikenal • Tersedia secara komersial untuk
dengan AT&T Bell Laboratory) segala jenis komputer dan sistem
• Implementasi pertama pada OS operasi
UNIX, dan dijalankan di mesin DEC • Terstruktur sekaligus fleksibel
PDP-II
• Programnya bekerja lebih cepat
• Merupakan pengembangan dari B (Ken dan lebih tangguh, karena akses
Thomson) dan bahasa BCPL/Basic dekat ke sistem
Command Programming Language
(Martin Richards) • 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 far huge pascal
ada fortran near

Catatan :
Semua keyword pada kode program C ditulis dengan huruf kecil
Karakteristik bahasa C Struktur Dasar Program C
Semua modul dalam bentuk Setiap Program C terdiri dari satu atau lebih
fungsi (Perbedaan fungsi dan fungsi (function). Salah satu dari fungsi
prosedur ?) tersebut harus bernama main
Struktur Program
Tidak mengenal space sebagai
pemisah, kecuali antar instruksi [Deklarasi header/library]
yang berbeda [ Deklarasi variabel/konstanta]
[ Deklarasi fungsi]
Fungsi utama
Setiap statemen dipisahkan […] = optional, adanya tergantung kebutuhan
oleh semicolon (;)
Bandingkan dengan
Struktur Program Pascal :
Kode programnya bersifat
case-sensitif(membedakan [Deklarasi nama program]
huruf kapital dan huruf kecil). [Deklarasi unit]
Keyword dan perintah-perintah [Deklarasi type]
dituliskan dengan huruf kecil. [Deklarasi variabel/konstanta]
[Deklarasi fungsi]
[Deklarasi Prosedur]
Kode utama
Format Penulisan deklarasi library/header
si1
deklara
Contoh

File header pertama sekali akan


#include <header_name> dicari di directory aktif saat ini,
atau dan jika tidak ketemu akan
dicari ke directory include yang
#include “header_name” ditentukan pada konfigurasi

Contoh : File header hanya akan dicari di


#include “stdio.h” directory yang langsung
ditentukan
atau
#include “c:\tc3\include\stdio.h”
atau File header hanya akan dicari di
#include <stdio.h> 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)
Format Penulisan deklarasi Format Penulisan deklarasi
variabel fungsi
Contoh deklarasi2 return-type function_name([parameter])
Data_type variabel_name {
[deklarasi variabel lokal]
Contoh :
Statement
int A; Return(value)
float B,C; }
char s; Contoh :

Bandingkan dengan pascal : Int jumlah(int A,int B)


{
Var Int C;
A :integer; C=A+B;
B,C : real; Return C;
}
S : char;
Bandingkan dengan pascal :
Function jumlah(A,B:integer):integer;
Var C :integer;
begin
C:=A+B;
jumlah:= C;
End;
Tentang Prosedur
Contoh fungsi utama pada C :
Bahasa C secara khusus tidak
int main ()
Contoh deklarasi3
memiliki prosedur, karena
{
mudularisasi di C dilakukan dengan
Int F,G;
F=5;G=8; fungsi. Tetapi fungsi di C dapat di-
printf(“Hasil jumlahnya : %d \n”,jumlah(F,G)); akali untuk bekerja seperti
return 0; prosedur.
}
Contoh dari prosedure pascal
Bandingkan dengan pascal: berikut :
var Procedure cetak(x,y:integer;s:string);
F,G :integer Begin
begin gotoxy(x,y);textcolor(14);
Int F,G; write(s);
F=5;G=8; End;
writeln(‘Hasil jumlahnya : ‘,jumlah(F,G));
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 : Bandingkan jika di pascal :

/* program1 */ program program1;


uses crt;
#include <stdio.h>
#include <conio.h> {deklarasi fungsi hitung}
function hitung(A,B:integer):integer;
/*deklarasi fungsi hitung*/ var C:integer;
int hitung(int A,int B) begin
{ c:=a+b;
int C; jumlah:=C;
C=A+B; end;
return C;
} {deklarasi procedure cetak}
procedure cetak(x,y:integer;s:string);
/*deklarasi prosedur cetak */ begin
void cetak(int x, int y,char *s) gotoxy(x,y);
{ textcolor(14);
gotoxy(x,y); write(s);
textcolor(14); end;
cprintf("%s",s);
} {program utama}
var F,G :integer;
/*program utama*/ begin
int main() clrscr;
{ F:=5; G:=6;
int F,G; write(‘Hasil jumlah :',hitung(f,g));
clrscr(); cetak (1,3,“Saya sedang belajar pemrograman”);
F=5; G=3; cetak1,4,“bahasa C");
printf("Hasil jumlah : %d\n",hitung(F,G)); readln;
cetak(1,3,“Saya sedang belajar pemrograman”); end.
cetak1,4,“bahasa C");
getchar();
return 0;
}
Proses Pembuatan Program Aplikasi
Run

Mulai Make

ASCII Editor Compiler Linker Static Library File


(*.Lib)

Source Code Dynamic Library File


Object Code Executable File
(*.c,*.cpp) (*.dll)
(*.obj) (*.exe)

Include File Preprosessor Execution


(*.h)

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 !
Tamp
ilan
TC3

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 VC
Tampilan Visual C : Win32 Concole Application :
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 Fatal Errors : A problem of critical nature that
sesuai dengan aturan-aturan C, jika di- prevents execution from continuing.
compile atau di-link akan memberikan • Compile-time fatal errors
pesan kesalahan tertentu sesuai dengan
• TLINK fatal errors
jenis kesalahannya
• MAKE fatal errors
Jenis pesan kesalahan :
Warnings : A problem that can be overlooked.
Dari sisi lain jenis kesalahan juga dapat
• Compile-time warnings
dibedakan seperti :
• TLINK warnings
•Compile-Time Error
• TLIB warnings
•Linking Error
Errors : A problem that should be fixed such as
a missing declaration or a type mismatch. •Run-Time Error
• Compile-time errors Umumnya compiler C akan mendaftarkan semua
• TLINK errors runtunan kesalahan yang terjadi yang
diakibatkan oleh setiap sebuah kesalahan.
• TLIB errors
Pemberitaan kesalahan beruntun seperti ini
• MAKE errors harus diamati dengan cermat untuk dapat
• Run-time errors memperbaiki kesalahan tersebut dengan cepat.
Eksperimen Pertama Pemrograman C
(Lakukan di labor)

• Aktifkan editor pada Compiler C yang anda • Jalankan program dari prompt DOS dengan
miliki (dalam hal ini lakukan dengan Turbo C) mengetikkan hitung.exe {enter} atau dari Turbo C
dan ketikkan kode C berikut : dengan Ctrl+F9.
{ Harap perhatikan pengetikan huruf kecil dan {Perhatikan bahwa program belum menghasilkan apa
huruf besar harus sama! } pun di layar}
• Modifikasi kode program di atas menjadi seperti
int A; berikut :
int B,C;
int main() #include <stdio.h>
{
A=5;B=3; int A;
C=A+B; int B,C;
return(0); int main()
} {
A=5;B=3;
• Simpan dengan nama file : hitung.c C=A+B;
printf(“Hasiljumlah =%d \n”,C);
• Compile (Alt+F9) kode tersebut untuk return(0);
menghasilkan file : hitung.obj, buktikan }
dengan melihatnya melalui prompt DOS
• Compile dan Link kembali program (secara singkat
• Link (Compile-Link) kode file objek tersebut lakukan langsung dengan Run-Run). Perhatikan jika
untuk menghasilkan file : hitung.exe anda melakukannya dari menu Turbo C hasil
• Dari prompt DOS atau windows explorer program tidak akan terlihat. Untuk itu tambahkan di
akhir program dengan perintah : getchar()
catat besar file-file berikut :
(sebelum return 0)
Hitung.c : ……… bytes
• Hasil program akan tampak di layar :
Hitung.obj : ……… bytes
Hitung.exe : ……… bytes Hasil jumlah =8
Bersambung…
E
k
…sambungan s
p
•Program yang baru anda cobakan belum bersifat •Statement Pengulangan pada C dapat menggunakan : e
r
interaktif sebab input variabel A dan B langsung i
While (….) m
dimasukkan di dalam kode program. Untuk
{ Statement yang diulang} e
menjadikan program interaktif tambahkan perintah
Scanf() sehingga kode program menjadi seperti •Untuk menghilangkan statemen return 0 dalam fungsi main
n

berikut : type kembaliannya dganti dari int menjadi void : void main()
#include <stdio.h>
•Selanjutnya lengkapi kode program tersebut menjadi seperti
int A; berikut :
int B,C; {Aktifkan fungsi fflush() jika getchar() tidak berfungsi ! }
int main()
{
//A=5;B=3; /* Nama File: hitung.c */
printf("Masukkan nilai A :"); #include <stdio.h>
scanf("%d",&A); #include <conio.h>
printf("Masukkan nilai B :"); void main()
scanf("%d",&B); {
C=A+B; int A,B,C;
printf(“Hasiljumlah =%d \n”,C); char k;
getchar(); k='y';
return(0); while(k=='y')
{
} clrscr();
gotoxy(1,3);
•Simpan kembali program, jalankan dan catat hasilnya ! textcolor(14);cprintf("Masukkan nilai A : ");
•Tanda // digunakan sebagai komentar untuk C++ scanf("%d",&A); //fflush(stdin);
gotoxy(1,4);
tetapi dikenal juga pada turbo C ver 3.0 untuk C. textcolor(12);cprintf("Masukkan nilai B : ");
Tanda komentar khusus C adalah : /* …….*/. scanf("%d",&B); //fflush(stdin);
C=A+B;
•Untuk membersihkan layar setiap program dijalankan, gotoxy(1,5);
tambahkan fungsi clrscr() di tempat yang sesuai. textcolor(9);printf("Hasil jumlah = %d \n",C);
gotoxy(1,8);
•Untuk menentukan posisi kursor gunakan fungsi printf("Hitung lagi [yt] ? ");
gotoxy(), untuk memberikan efek warna gunakan k=getchar();
fungsi textcolor() , textbackground() dengan }
}
pencetakan cprintf(). Fungsi-fungsi ini deklarasinya
berada pada header conio.h
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 •Tipe data dasar di C adalah :
Char; yaitu tipe data character
• Yaitu identifier yang digunakan untuk menam-
pung data/informasi Int ; yaitu tipe data integer, bilangan bulat
Float; yaitu tipe data pecahan, bilangan floating
• Format deklarasi variabel point, yang menggunakan titik desimal dan
<tipe data> <nama variabel>
<tipe data> <nama variabel> = <nilai inisial>
exponen
Double; yaitu bilangan double-precision floating
• Contoh : point, seperti float tetapi angka signifikannya lebih
int a,b,c;
besar
float p,q;
int x=20; {Informasi lebih detail pada hal. Selanjutnya}

• Syarat penulisan variabel : •Sebenarnya ada dua tipe data dasar lain yang juga
1. Diawali dengan huruf atau garis bawah dan sering digunakan, yaitu void yang sering digunakan
selanjutnya bisa diikuti oleh huruf atau pada fungsi dan enum yang akan dijelaskan
garis bawah atau angka kemudian
2. Panjang variabel maksimum 32 karakter •Escape sequence
(standar ANSI)
3. Tidak boleh menggunakan keyword \t tab \” double quote
\n new line \\ backsalash
\b backspace \’ single quote
Tipe Data \f form feed \r carriage retrun
\ddd ASCII code (octal)
• Yaitu yang menentukan jenis data yang
\xdd ASCII code (hexa)
tersimpan pada variabel.
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 : • Operator relational • Operator kondisional
< > <= >=
+ - * / % ?:
== {equal}
Contoh : != {not equal} Contoh :
c=a+b; Contoh : z = (x < y) ? x : y;
d=5%2;
(5>=2)
{ Note : Pangkat dengan fungsi pow() } (k==toupper(‘y’)) pernyataan di atas sama dengan :
• Operator Aritmatic Assignment (n!=0) if (x < y)
• Operator Logika z = x;
+= -= *= /= %=
else
Contoh : && {AND} z = y;
c=5; || {OR}
c+=2; {c=7 dari c=c+2} • Operator Pergeseran bit
c-=2; {…………………..} ! (Not} << {Shift Right}
Contoh : >> {Shift left}
Operator increment/decrement (n!=0) &&
Contoh :
++ -- (k=toupper(‘y’))
A || B A=1;
Contoh :
• Operator pointer B=A << 3 {B=8}
c=4;
c++; {c=5 dari c=c+1} & {address of} Operasi-operasi berikut ini valid :
c--; {…………………..} c=b=a+5;
a=5; * {value of}
c=b=(c!=d);
b=a++; {a=6 b=5} Contoh :
b=++a; {a=6 b=6} { Next discussion }
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 KONTROL PENGULANGAN :
arah/aliran program. Secara umum dapat di-
kelompokkan kepada :
for
1. Kontrol Pengulangan (loop); yaitu
statemen yang dapat membuat sebagian Format :
kode program dilaksanakan beberapa
kali (mengulangi) for (exp1;exp2;exp3) statemen_diulang
2. Kontrol Penyeleksian (decision); yaitu atau
statemen yang dapat memilih apakah for (exp1;exp2;exp3)
sebagian kode program dilaksanakan {
atau tidak (memutuskan) statemen_diulang
}
• Yang termasuk kontrol Pengulangan :
for Exp1 = ekspresi untuk inisialisasi
Exp2 = ekspresi untuk conditional
while Exp3 = ekspresi untuk decrement
do-while
Contoh :
• Yang termasuk kontrol Penyeleksian :
int i;
if for (i=0;i<100;i++) printf(“%d\n”,i);
if-else
atau
switch-case
for (int=0;i<100;i++) printf(“%d\n”,i);
Bandingkan dengan pascal :
Var i: integer
For i=1 to 100 do writeln(I);
Contoh :
While
Pada C memungkinkan untuk membuat
statemen for seperti berikut :
int h=1;
for(j=1,k=1;j<10 && k<12;j++,k++)
while(h<10)
{ {
statement1
statement2 printf(“%d”,hitung);
… hitung++;
} }

Boleh juga menjadi :


While
Format : int h=1;
while(h<10) printf(“%d”,hitung++)
while(exp) statement
atau do-while
while(exp) Format :
{
Statement1; do
Statement2; {
}
Statements
Exp = ekspresi boolean yang dapat true atau }while(exp);
false, tetapi pada C true berarti tidak 0 dan falsa
berarti 0. Perbedaannya dengan while yang pertama yaitu do-
Statemen akan dilaksanakan berulang-ulang while pasti akan melaksanakan statemen yang
selama exp tidak 0. diulang minimal sekali yaitu saat pertama dilalui,
sedangkan while ada kemungkinan tidak
melaksanakan statemen yang diulang jika exp
bernilai 0.
n
y
e
l
e
k

KONTROL PENYELEKSIAN :
s
• Statemen do-while dapat digunakan seperti i
a
repeat-until pada pascal n
1

Contoh :
if
char k; Format :
do{ If (exp boolean) statemen

… atau
printf(“ingin mengulang ?”); If (exp boolean)
k=getchar(); {
}while(k=toupper(‘y’)); statements
}

Bandingkan jika di pascal : Jika exp boolean menghasilkan nilai true (bukan0) maka
statemen akan dilaksanakan, jika bernilai 0 tidak akan
repeat dilaksanakan


write(‘Ingin mengulang ?’); If (umur<50) printf(“Kerja terus..”);
read(k);
until (k<>upcase(‘y’)); Bandingkan dengan pascal :
If umur<50 then writeln(‘kerja terus’);

if-else
Format :

if (exp boolen) statemen1;


else statemen2;
y
e
l
e

atau : {lanjutan format if-else} Switch-case :


k
s
i
a
n
if (exp boolen) Fungsinya seperti case-of pada pascal atau select- 2
{statemen1; case pada basic, yaitu untuk menggantikan if
statemen2;
bertingkat.
}
else
{statemen3; Format :
statemen4; Switch (exp)
} {
case constant1 : statemen1;break;
Contoh : case constant2 : statemen2;break;
case constant3 : statemen3;break;
if (umur<50) default : statemen4;
printf(“kerja terus\n”); }
else
printf(“anda pensiun\n”); 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()
Fungsi
• Kegunaan : • Deklarasi fungsi boleh sebelum dan setelah
fungsi main()
 Salah-satu implementasi prinsip
modularisasi pada C Contoh 2 :
 Menghindari penulisan kode yang sama /*Nama File : tukar1.c
berulang kali Prinsip Call by value
Oleh : */
Istilah-istilah yang sering muncul:
#include <stdio.h>
Called function : … #include <conio.h>
Calling function : … void tukar(int a,int b)
Formal argumen : … {
int temp;
Aktual argumen : … temp=a;
Call by value : … a=b;
b=temp;
Call by reference : … }
void main(){
Contoh 1 : clrscr();
#include<stdio.h> int x=3, y=5;
printf("\nNilai x dan y semula");
printf("\nx = %d y = %d",x,y);
void main(){ tukar(x,y);
int a,b,c; printf("\nNilai x dan y kemudian");
int hitung (intg x, intg y); printf("\nx = %d y = %d",x,y);
printf(“Masukkan nilai a dan b :”); getch();}
scanf(“%d %d”,&a,&b);
c=hitung(a,b);
printf(“%3d+%3d =%3d”,a,b,c); Istilah untuk scope variabel :
} Global (extern)
int hitung(int x,int y) Local (automatic)
{ int z; Static: tetap menyimpan nilai walau keluar dari fungsi
z=x+y;
return(z); Register: menyimpan nilai di salah satu register pada CPU
}
Pointer, Array dan String
Pointer Jika misalnya variabel A berisi nilai 23, dan ptrA
• Merupakan variabel yang fungsinya menunjuk variabel A yang merupakan representasi
menyimpan alamat (address) variabel alamat memory nomor 2, maka hal tersebut dapat
diilustrasikan seperti berikut :
• Fasilitas untuk mengakses suatu variabel
ptrA
dengan memakai adress

Kegunaan
• Calling by reference 1 2 3 4 5 6 Alamat
memory
• Mengembalikan lebih satu nilai dari satu (A)
fungsi
23
• Mengirimkan array dan string dari suatu
fungsi ke fungsi lain Prosesnya dalam kode C dapat dituliskan seperti berikut :
• Memudahkan dalam manipulasi array
• Manipulasi memory dalam system Int A;
• Membuat struktur data dinamis seperti Int *ptrA;
linklist, tree, graph dan sebagainya A=23;
*ptrA=&A;

Deklarasi pointer Jadi operator * digunakan untuk menyatakan isi (content


<tipe_data> *<nama_variabel> of) pointer, sedangkan operator & digunakan untuk
menyatakan alamat memory (adress of) variabel .
Contoh : Jika ingin meng-akses (mencetak) nilai 23 (isi memory)
melalui variabel biasa, maka perintahnya adalah :
int *ptrA;
Printf(“%d”,A);
ptrA adalah variabel pointer untuk tipe data
integer Jika ingin meng-akses (mencetak) nilai 23 (isi memory)
melalui pointer, maka perintahnya adalah :
Printf(“%d”,*ptrA);
Percobaan pointer
 Coba program berikut dan amati untuk • Contoh program penerapan pointer
memahami kode pemrograman pointer : untuk argumen fungsi call by
/*
reference :
Nama File :pointer.c
/*Nama File : tukar2.c
*/ Prinsip Call by reference
#include <stdio.h> Oleh : */
#include <conio.h>
#include <stdio.h>
#include <conio.h>
void main()
{ void tukar(int *a,int *b)
int A;//deklarasi var biasa {
int *ptrA; //deklarasi var pointer int temp;
temp=*a;
clrscr(); *a=*b;
A=23; *b=temp;
ptrA=&A; }
printf("\n A = %d",A); //isi dari var A
void main(){
printf("\n&A = %u",&A); //alamat memory var A clrscr();
printf("\n*(&A) = %u",*(&A)); //isi di alamat pada var A int x=3, y=5;
printf("\nptrA = %u",ptrA);//isi dari var pointer ptrA printf("\nNilai x dan y semula");
printf("\n*ptrA = %d",*ptrA);//isi di alamat pada var ptrA printf("\nx = %d y = %d",x,y);
tukar(&x,&y);
printf("\n&ptrA = %u",&ptrA);//alamat memory var ptrA printf("\nNilai x dan y
getch(); kemudian");
} printf("\nx = %d y = %d",x,y);
getch();}
Array
• Array adalah suatu variabel yang dapat Contoh program untuk menguji array dan looping
menyimpan beberapa item data yang tipenya dengan for :
sama
/* Nama File : acak.c */
• Deklarasi array : #include <stdio.h>
Format : #include <stdlib.h>

<tipe_data> <nama_variabel>[exp1][exp2][…] void main()


{
Contoh : int acak[5][5][5];
int i,j,k;
int bulan[12]; /*Harga awal untuk fungsi random*/
float harga[50],barang[50][50]; srand(1234);
char nama[20];
for (i=0;i<5;i++)
• Indeks awal array dimulai dari 0 sehingga {
variabel bulan di atas terdiri dari bulan[0] for(j=0;j<5;j++)
{
s/d bulan[11]. for(k=0;k<5;k++)
• Nilai array dapat langsung diinisial seperti {
contoh berikut : acak[i][j][k]=rand();
int A[5] = {15,34,32,12,11}; printf("\n Acak[%d][%d][%d]\
= %d",i,j,k,acak[i][j][k]);
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]. }

Latihan : ubah kontrol pengulangan for pada


kode program di atas dengan while !
Array

Array dan fungsi Array dan pointer


Lanjut

• Pada fungsi sebagai argumen formal array


hanya diberi tanda [] saja tanpa diberi • Nama array adalah alamat memory (pointer)
indeks, sedangkan sebagai argumen aktual pertama dari elemen array tersebut. Jika A adalah
array yang disebut namanya saja tanpa []. array berdimensi satu maka alamat memory dari
elemen pertama adalah &A[0] atau A saja.
Contoh : Sehingga &A[i] sama dengan (A+i). Maka A[i] pun
… sama dengan *(A+i)
• Berikut contoh program tentang bagaimana
//called function
int maksimum(int d[],maks) mengakses data array menggunakan konsep
{ pointer :
… /* Nama file :p_array.c */
}
#include <stdio.h>
void main() #include <conio.h>
{
int dat[10]; void main()
… {
//Calling function int Nilai[5]={55,75,60,90,80};
Hasil=maksimum(dat,n);
clrscr();
} for(int i=0;i<5;i++)
{
//akses dengan indeks array
printf("\nNilai[%d] = %d",i,Nilai[i]);
Latihan : Lengkapi kode program tersebut //akses dengan pointer
printf("\n*(Nilai+%d)= %u",i,*(Nilai+i));
yang tujuannya mencari nilai maksimum
dari sekelompok nilai yang dimasukkan }
melalui keyboard }
String
• String adalah array dari tipe character yang diakhiri • Deklarasi char *nama menunjukkan bahwa
dengan null character (\0) string adalah pointer, atau dapat diakses
• Data konstan string ditulis dengan diapit oleh tanda dengan cara-cara yang sama dengan pointer
petik dua (“…string…”) atau array
• Character string konstan memiliki scope static yang • Contoh program mengakses string dalam
berarti ………………………………………………………….. function :
• Deklarasi tipe string : /*Nama file : p_string.c */
Format :
char <nama_variabel>[exp] #include <stdio.h>
#include <string.h>
atau
char <nama_variabel>[]={inisial} void ubah_nama(char *nama)
{
nama=strcat(nama," Nasution");
atau }
char *<nama_variabel>
void main()
Contoh : {
char nama[]; char *nm;
clrscr();
char *alamat; printf("\nMasukkan nama anda :");gets(nm);
ubah_nama(nm);
• Pemberian nilai inisial ke string dapat dilakukan printf("\nNama anda sekarang : %s",nm);
getch();
dengan : }
char nama[]=“Hanif”;

Atau
char nama[]={‘H’,’a’,’n’,’I’,’f’,’\0’};
Structure
• Struktur yaitu suatu variabel yang dapat • Boleh juga digabung langsung seperti berikut :
menyimpan sejumlah item dari tipe data yang struc mahasiswa
berbeda. {
• Struktur pada C sama dengan record pada char nim[10];
char nama[25];
pasca
int umur;
• Deklarasi Struktur : } amir, amat, tuti;
Format :
struct <nama_struktur> • Dari deklarasi tersebut berari variabel amir
{ memiliki 3 elemen yaitu : amir.nim,
member1 amir.nama dan amir.umur
member2
member3 • Variabel structur dapat langsung diinisialisasi
… seperti berikut :
};
mahasiswa amir ={“20019823”,”Amir
mahmud”,19};
• Setelah struktur dideklarasikan, selanjutnya
dapat dideklarasikan variabel jenis struktur : yang sama dengan :
<nama_struktur> <nama_variabel> amir.nim=“20019823”;
amir.nama=”Amir mahmud”;
Contoh : amir.umur=19;

Tugas/Latihan :
struc mahasiswa
{ Buatlah program data mahasiswa yang memiliki
char nim[10]; dua operasi yaitu : entri dan tampil. Item datanya
char nama[25]; terdiri dari : nim,nama, alamat,tempat & tanggal
int umur; lahir. Bila perlu gunakan menu sederhana untuk
}
memilih operasi.
mahasiswa amir, amat, tuti; Anda perlu membaca refrensi lain untuk
menyelesaikan tugas ini !
Pemrograman File

//Program Perhitungan matematika sederhana


#include <stdio.h>
#include <conio.h>
void main()
{
printf(“Nilai dari 9 + 4 = %i”, 9 + 4); /* mencetak hasil 9 + 4 */
printf(“Nilai dari 9 - 4 = %i”, 9 - 4); /* mencetak hasil 9 - 4 */
printf(“Nilai dari 9 * 4 = %i”, 9 * 4); /* mencetak hasil 9 * 4 */
printf(“Nilai dari 9 / 4 = %i”, 9 / 4); /* mencetak hasil 9 / 4 */
printf(“Nilai dari 9 % 4 = %i”, 9 % 4); /* mencetak hasil 9 % 4
*/
getch();
}
PENYELEKSIAN KONDISI
IF (KONDISI) PERNYATAAN
/* Program if untuk memeriksa suatu kondisi */
#include “stdio.h”
#include “conio.h”
void main()
{ float nilai;
printf(“Masukan nilai yang didapat : “);
scanf(“%f”, &nilai);
if(nilai > 65)
printf(“\n ANDA LULUS !!!!\n”);
getch();
}
IF…ELSE
#include “stdio.h”
#include “conio.h”
void main()
{ float nilai;
clrscr();
printf(“Masukan nilai yang didapat : “);
scanf(“%f”, &nilai);
if (nilai > 65)
printf(“\n LULUS !!!\n”);
else
printf(“\n TIDAK LULUS !!!\n”);
getch();
}
STRUKTUR PERULANGAN
for(inisialisasi; syarat; penambahan)
pernyataan;

/* Program perulangan menggunakan for */


#include “stdio.h”
#include “conio.h”
void main()
{ int x;
for(x = 1; x<= 10; x++)
printf(“%d BAHASA C\n”, x);
getch();
}
LANJUTAN PERULANGAN
/* Program Perulangan menggunakan while */
#include “stdio.h”
#include “conio.h”
void main()
{ int x;
x = 1; // awal variabel
while (x <= 10) // Batas akhir perulangan
{ printf(“%d BAHASA C\n”, x);
x ++; // variabel x ditambah dengan
1
}
getch();
}
FUNGSI
Tujuan pemakaian fungsi :
1. Program menjadi terstruktur, sehingga mudah dipahami
dan mudah dikembangkan
2. Dapat mengurangi pengulangan kode (duplikasi kode)
BENTUK UMUM PENDEKLARASIAN FUNGSI :
tipe_fungsi nama_fungsi(parameter_fungsi);
BENTUK UMUM PENDEFINISIAN FUNGSI :
Tipe_fungsi nama_fungsi(parameter_fungsi)
{ statement
statement
………...
………...
}
CONTOH PEMAKAIAN FUNGSI
//Program untuk menampilkan kalimat yang berulang
#include "stdio.h"
#include "conio.h"

void info_program();
void main()
{ info_program();
getch();
info_program();
getch();
}
void info_program()
{
printf ("Selamat Belajar Bahasa C\n");
printf ("Anda akan selangkah lebih maju dalam dunia
IT\n");
printf ("Salam dari PENS AKAMIGAS\n");
}
FUNGSI DENGAN NILAI BALIK
#include "stdio.h"
#include "conio.h"
float tambah(float x, float y); // prototype fungsi
tambah(), ada titik koma
void main()
{ float a, b, c;
printf("A = "); scanf("%f", &a);
printf("B = "); scanf("%f", &b);
c = tambah(a,b); // pemanggilan fungsi
tambah()
printf("A + B = %.2f", c);
getch();
}

float tambah(float x, float y) // Definisi fungsi , tanpa


titik koma
{
return (x+y); // Nilai balik fungsi
}

Anda mungkin juga menyukai