SlideShare une entreprise Scribd logo
1  sur  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
Con
toh
dekl
arasi
1

Format Penulisan deklarasi library/header
#include <header_name>
atau
#include “header_name”
Contoh :
#include “stdio.h”
atau
#include “c:tc3includestdio.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 : %dn",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

ASCII Editor

Linker

Static Library File
(*.Lib)

Source Code
(*.c,*.cpp)

Include File
(*.h)

Compiler

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 …bintc.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 dicompile atau di-link akan memberikan
pesan kesalahan tertentu sesuai dengan
jenis kesalahannya
Jenis pesan kesalahan :
Warnings : A problem that can be overlooked .
• Compile-time warnings
• TLINK warnings
• 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 errors

Fatal Errors : A problem of critical nature that
prevents execution from continuing.
• Compile-time fatal errors
• TLINK fatal errors
• MAKE fatal errors

Dari sisi lain jenis kesalahan juga dapat
dibedakan seperti :
•Compile-Time Error
•Linking Error
•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 anda
miliki (dalam hal ini lakukan dengan Turbo C)
dan ketikkan kode C berikut :

• Jalankan program dari prompt DOS dengan
mengetikkan hitung.exe {enter} atau dari Turbo C
dengan Ctrl+F9.

{ Harap perhatikan pengetikan huruf kecil dan
huruf besar harus sama! }

{Perhatikan bahwa program belum menghasilkan
apa pun di layar}

int A;
int B,C;
int main()
{
A=5;B=3;
C=A+B;
return(0);
}
• 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

: ……… bytes

Hitung.obj : ……… bytes
Hitung.exe : ……… bytes

• Modifikasi kode program di atas menjadi seperti
berikut :
#include <stdio.h>
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 cprintf(). Fungsi-fungsi ini deklarasinya
berada pada header conio.h

•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 menampung 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 :

•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
• Diawali dengan huruf atau garis bawah dan sering digunakan, yaitu void yang sering digunakan
pada fungsi dan enum yang akan dijelaskan
selanjutnya bisa diikuti oleh huruf atau
kemudian
garis bawah atau angka
• Panjang variabel maksimum 32 karakter
(standar ANSI)
• Tidak boleh menggunakan keyword

•Escape sequence

 
 Tipe Data

t tab
” double quote
n new line backsalash
b backspace
’ single quote
f form feed
r carriage retrun

• Yaitu yang menentukan jenis data yang
tersimpan pada variabel.

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;

Contoh :

{ Note : Pangkat dengan fungsi pow() }

• Operator Aritmatic
Assignment
+= -= *= /= %=
Contoh :

c=5;
c+=2;
c-=2;

(5>=2)
(k==toupper(‘y’))
(n!=0)
• Operator Logika
&& {AND}
||

{c=7 dari c=c+2}
{…………………..}

Operator increment/decrement
++

• Operator relational
< > <= >=
== {equal}
!= {not equal}

--

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 }

• Operator kondisional
?:
Contoh :

z = (x < y) ? x : y;
pernyataan di atas sama dengan :
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 dikelompokkan 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(“%dn”,i);
atau
for (int=0;i<100;i++) printf(“%dn”,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
atau
while(exp)
{
Statement1;
Statement2;
}
Exp = ekspresi boolean yang dapat true atau
false, tetapi pada C true berarti tidak 0 dan falsa
berarti 0.
Statemen akan dilaksanakan berulang-ulang
selama exp tidak 0.

Contoh :

Whi
le

int h=1;
while(h<10)
{
printf(“%d”,hitung);
hitung++;
}
Boleh juga menjadi :
int h=1;
while(h<10) printf(“%d”,hitung++)

do-while
Format :
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}

Switch-case :

if (exp boolen)
{statemen1;
statemen2;
}
else
{statemen3;
statemen4;
}

Fungsinya seperti case-of pada pascal atau selectcase pada basic, yaitu untuk menggantikan if
bertingkat.

Contoh :
if (umur<50)
printf(“kerja terusn”);
else
printf(“anda pensiunn”);

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

1

2 3
(A)

4

5

6

Alamat
memory

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 :
Printf(“%d”,*ptrA);
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;

Anda perlu membaca refrensi lain untuk
menyelesaikan tugas ini !

Tugas/Latihan :
Pemrograman File

Contenu connexe

Tendances

Pengaturan Starting Motor Secara Berurutan
Pengaturan Starting Motor Secara BerurutanPengaturan Starting Motor Secara Berurutan
Pengaturan Starting Motor Secara Berurutan
Edyan Noveri
 
Pengolahan database dengan d base
Pengolahan database dengan d basePengolahan database dengan d base
Pengolahan database dengan d base
Hendichenko
 
Menggambar instalasi listrik rumah sederhana
Menggambar instalasi listrik rumah sederhanaMenggambar instalasi listrik rumah sederhana
Menggambar instalasi listrik rumah sederhana
Agus Tri
 
M odul 5 komponen dasar visual basic
M odul 5 komponen dasar visual basicM odul 5 komponen dasar visual basic
M odul 5 komponen dasar visual basic
Jamil Jamil
 
Makalah Sejarah komputer
Makalah Sejarah komputerMakalah Sejarah komputer
Makalah Sejarah komputer
agusjafar
 
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskritPengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Beny Nugraha
 
Mp 4 mode-pengalamatan
Mp 4 mode-pengalamatanMp 4 mode-pengalamatan
Mp 4 mode-pengalamatan
Olbers Letfaar
 

Tendances (20)

Pengaturan Starting Motor Secara Berurutan
Pengaturan Starting Motor Secara BerurutanPengaturan Starting Motor Secara Berurutan
Pengaturan Starting Motor Secara Berurutan
 
Pengolahan database dengan d base
Pengolahan database dengan d basePengolahan database dengan d base
Pengolahan database dengan d base
 
Media penyimpanan CD-WORM
Media penyimpanan CD-WORMMedia penyimpanan CD-WORM
Media penyimpanan CD-WORM
 
Menggambar instalasi listrik rumah sederhana
Menggambar instalasi listrik rumah sederhanaMenggambar instalasi listrik rumah sederhana
Menggambar instalasi listrik rumah sederhana
 
Bank Soal Materi Pelajaran Dioda
Bank Soal Materi Pelajaran DiodaBank Soal Materi Pelajaran Dioda
Bank Soal Materi Pelajaran Dioda
 
Modul io
Modul ioModul io
Modul io
 
Soal essay 1 jarkom
Soal essay 1 jarkomSoal essay 1 jarkom
Soal essay 1 jarkom
 
M odul 5 komponen dasar visual basic
M odul 5 komponen dasar visual basicM odul 5 komponen dasar visual basic
M odul 5 komponen dasar visual basic
 
NULL MODEM
NULL MODEMNULL MODEM
NULL MODEM
 
Open Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DCOpen Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DC
 
3 Linked List
3   Linked List3   Linked List
3 Linked List
 
cache memory
cache memorycache memory
cache memory
 
Makalah Sejarah komputer
Makalah Sejarah komputerMakalah Sejarah komputer
Makalah Sejarah komputer
 
Data link control.pptx
Data link control.pptxData link control.pptx
Data link control.pptx
 
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskritPengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
Pengolahan Sinyal Digital - Slide week 2 - sistem & sinyal waktu diskrit
 
Makalah sistem-operasi
Makalah sistem-operasiMakalah sistem-operasi
Makalah sistem-operasi
 
Mp 4 mode-pengalamatan
Mp 4 mode-pengalamatanMp 4 mode-pengalamatan
Mp 4 mode-pengalamatan
 
penyajian algoritma
penyajian algoritmapenyajian algoritma
penyajian algoritma
 
Teknik Kompilasi
Teknik KompilasiTeknik Kompilasi
Teknik Kompilasi
 
Perangkat lunak presentation
Perangkat lunak presentationPerangkat lunak presentation
Perangkat lunak presentation
 

En vedette

Modul praktikum c++ lanjutan semester 2 BSI
Modul praktikum c++ lanjutan  semester 2 BSIModul praktikum c++ lanjutan  semester 2 BSI
Modul praktikum c++ lanjutan semester 2 BSI
Bari Ajha
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
achsan
 
Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratn
Lanoy Jr.
 
VISI, MISI, STRATEGI dan PROGRAM
VISI, MISI, STRATEGI dan PROGRAMVISI, MISI, STRATEGI dan PROGRAM
VISI, MISI, STRATEGI dan PROGRAM
Anatta Budiman
 
Presentasi supervisor competency
Presentasi supervisor competencyPresentasi supervisor competency
Presentasi supervisor competency
Ari Winarno
 

En vedette (11)

Installing and running qimo
Installing and running  qimoInstalling and running  qimo
Installing and running qimo
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
 
Modul praktikum c++ lanjutan semester 2 BSI
Modul praktikum c++ lanjutan  semester 2 BSIModul praktikum c++ lanjutan  semester 2 BSI
Modul praktikum c++ lanjutan semester 2 BSI
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
 
Diktat penuntun praktikum fortran
Diktat penuntun praktikum fortranDiktat penuntun praktikum fortran
Diktat penuntun praktikum fortran
 
C/C++ programming
C/C++ programmingC/C++ programming
C/C++ programming
 
Pemrograman c-wakuadratn
Pemrograman c-wakuadratnPemrograman c-wakuadratn
Pemrograman c-wakuadratn
 
Materi matakuliah bahasa c
Materi matakuliah bahasa cMateri matakuliah bahasa c
Materi matakuliah bahasa c
 
Buku tutorial pemprograman c
Buku tutorial pemprograman cBuku tutorial pemprograman c
Buku tutorial pemprograman c
 
VISI, MISI, STRATEGI dan PROGRAM
VISI, MISI, STRATEGI dan PROGRAMVISI, MISI, STRATEGI dan PROGRAM
VISI, MISI, STRATEGI dan PROGRAM
 
Presentasi supervisor competency
Presentasi supervisor competencyPresentasi supervisor competency
Presentasi supervisor competency
 

Similaire à Presentasi c

PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptxPPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
ssuser9dddf7
 
Teknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman cTeknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman c
adhifatra agussalim
 
Kompilasi pada bahasa c session 3
Kompilasi pada bahasa c session 3Kompilasi pada bahasa c session 3
Kompilasi pada bahasa c session 3
adhifatra agussalim
 
M04a sekilastentang c
M04a sekilastentang cM04a sekilastentang c
M04a sekilastentang c
Billy Alhamra
 
D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++
Paulino Guterres
 
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera UtaraModul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
Muhammad Fadlan Ariska
 
D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++
Saybia Himma
 

Similaire à Presentasi c (20)

PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptxPPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
PPT-UEU-Bahasa-Pemrograman-Pertemuan-1.pptx
 
Compiler dan Interpreter
Compiler dan InterpreterCompiler dan Interpreter
Compiler dan Interpreter
 
Sekilas tentang c
Sekilas tentang cSekilas tentang c
Sekilas tentang c
 
Teknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman cTeknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman c
 
Kompilasi pada bahasa c session 3
Kompilasi pada bahasa c session 3Kompilasi pada bahasa c session 3
Kompilasi pada bahasa c session 3
 
Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)Pertemuan 1 Pengenalan CodeBlocks (CB)
Pertemuan 1 Pengenalan CodeBlocks (CB)
 
Algoritma Pemrograman - Pendahuluan
Algoritma Pemrograman - PendahuluanAlgoritma Pemrograman - Pendahuluan
Algoritma Pemrograman - Pendahuluan
 
Pertemuan 1 Pengenalan Code Blocks
Pertemuan 1 Pengenalan Code BlocksPertemuan 1 Pengenalan Code Blocks
Pertemuan 1 Pengenalan Code Blocks
 
Pertemuan I Teori
Pertemuan I TeoriPertemuan I Teori
Pertemuan I Teori
 
pendahuluanv2.ppt
pendahuluanv2.pptpendahuluanv2.ppt
pendahuluanv2.ppt
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
 
M04a sekilastentang c
M04a sekilastentang cM04a sekilastentang c
M04a sekilastentang c
 
D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++
 
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera UtaraModul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
Modul Lab Dasar Pemrograman Departemen Teknik Elektro Universitas Sumatera Utara
 
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
 
C++
C++C++
C++
 
C basic
C basicC basic
C basic
 
Pask 1 14_s16010_sandro
Pask 1 14_s16010_sandroPask 1 14_s16010_sandro
Pask 1 14_s16010_sandro
 
D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++D3 modul algol_&_pemrog_i_c++
D3 modul algol_&_pemrog_i_c++
 
C++
C++C++
C++
 

Plus de Actur Saktianto

Tugas makalah pengolahan besi
Tugas makalah pengolahan besiTugas makalah pengolahan besi
Tugas makalah pengolahan besi
Actur Saktianto
 

Plus de Actur Saktianto (15)

Makalah pengolahan mineral zeolite
Makalah pengolahan mineral zeoliteMakalah pengolahan mineral zeolite
Makalah pengolahan mineral zeolite
 
Makalah pengolahan mineral magnetic separation
Makalah pengolahan mineral magnetic separationMakalah pengolahan mineral magnetic separation
Makalah pengolahan mineral magnetic separation
 
Makalah pengolahan mineral grinding
Makalah pengolahan mineral grindingMakalah pengolahan mineral grinding
Makalah pengolahan mineral grinding
 
Makalah pengolahan mineral gravity separation
Makalah pengolahan mineral gravity separationMakalah pengolahan mineral gravity separation
Makalah pengolahan mineral gravity separation
 
Makalah pengolahan mineral floatasi
Makalah pengolahan mineral floatasiMakalah pengolahan mineral floatasi
Makalah pengolahan mineral floatasi
 
Makalah pengolahan mineral electrostatic separation
Makalah pengolahan mineral electrostatic separationMakalah pengolahan mineral electrostatic separation
Makalah pengolahan mineral electrostatic separation
 
Makalah pengolahan mineral crushing
Makalah pengolahan mineral crushingMakalah pengolahan mineral crushing
Makalah pengolahan mineral crushing
 
Makalah pengolahan mineral bentonite
Makalah pengolahan mineral bentoniteMakalah pengolahan mineral bentonite
Makalah pengolahan mineral bentonite
 
Fasa tunggal
Fasa tunggal Fasa tunggal
Fasa tunggal
 
ktistalo act
ktistalo actktistalo act
ktistalo act
 
Muhammad Al-Fatih
Muhammad Al-Fatih Muhammad Al-Fatih
Muhammad Al-Fatih
 
Resistansi
ResistansiResistansi
Resistansi
 
Bahasa Pemprograman c
Bahasa Pemprograman cBahasa Pemprograman c
Bahasa Pemprograman c
 
Fisika Dasar
Fisika Dasar Fisika Dasar
Fisika Dasar
 
Tugas makalah pengolahan besi
Tugas makalah pengolahan besiTugas makalah pengolahan besi
Tugas makalah pengolahan besi
 

Presentasi c

  • 2. 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,…
  • 3. 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
  • 4. 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
  • 5. Con toh dekl arasi 1 Format Penulisan deklarasi library/header #include <header_name> atau #include “header_name” Contoh : #include “stdio.h” atau #include “c:tc3includestdio.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)
  • 6. 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;
  • 7. 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); }
  • 8. 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 : %dn",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.
  • 9. Proses Pembuatan Program Aplikasi Run Make Mulai ASCII Editor Linker Static Library File (*.Lib) Source Code (*.c,*.cpp) Include File (*.h) Compiler Object Code (*.obj) Executable File (*.exe) Dynamic Library File (*.dll) Preprosessor Execution Output Selesai
  • 10. 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
  • 11. Menjalankan program C dengan Turbo C ver 3.0 Memulai : Dari prompt DOS …bintc.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 !
  • 13. 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
  • 14. Tampilan Visual C : Win32 Concole Application : Tampilan VC
  • 15. 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
  • 16. Error Messages (Pesan Kesalahan) Kode program (source code) yang belum sesuai dengan aturan-aturan C, jika dicompile atau di-link akan memberikan pesan kesalahan tertentu sesuai dengan jenis kesalahannya Jenis pesan kesalahan : Warnings : A problem that can be overlooked . • Compile-time warnings • TLINK warnings • 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 errors Fatal Errors : A problem of critical nature that prevents execution from continuing. • Compile-time fatal errors • TLINK fatal errors • MAKE fatal errors Dari sisi lain jenis kesalahan juga dapat dibedakan seperti : •Compile-Time Error •Linking Error •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.
  • 17. Eksperimen Pertama Pemrograman C (Lakukan di labor) • Aktifkan editor pada Compiler C yang anda miliki (dalam hal ini lakukan dengan Turbo C) dan ketikkan kode C berikut : • Jalankan program dari prompt DOS dengan mengetikkan hitung.exe {enter} atau dari Turbo C dengan Ctrl+F9. { Harap perhatikan pengetikan huruf kecil dan huruf besar harus sama! } {Perhatikan bahwa program belum menghasilkan apa pun di layar} int A; int B,C; int main() { A=5;B=3; C=A+B; return(0); } • 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 : ……… bytes Hitung.obj : ……… bytes Hitung.exe : ……… bytes • Modifikasi kode program di atas menjadi seperti berikut : #include <stdio.h> 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…
  • 18. …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 cprintf(). Fungsi-fungsi ini deklarasinya berada pada header conio.h •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(); } }
  • 19. 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.
  • 20. 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
  • 22. Unsur-unsur Program C Variabel • Yaitu identifier yang digunakan untuk menampung 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 : •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 • Diawali dengan huruf atau garis bawah dan sering digunakan, yaitu void yang sering digunakan pada fungsi dan enum yang akan dijelaskan selanjutnya bisa diikuti oleh huruf atau kemudian garis bawah atau angka • Panjang variabel maksimum 32 karakter (standar ANSI) • Tidak boleh menggunakan keyword •Escape sequence    Tipe Data t tab ” double quote n new line backsalash b backspace ’ single quote f form feed r carriage retrun • Yaitu yang menentukan jenis data yang tersimpan pada variabel. ddd ASCII code (octal) xdd ASCII code (hexa)
  • 23. 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
  • 24. Operator • Operator Arithmatic : + - * / % Contoh : c=a+b; d=5%2; Contoh : { Note : Pangkat dengan fungsi pow() } • Operator Aritmatic Assignment += -= *= /= %= Contoh : c=5; c+=2; c-=2; (5>=2) (k==toupper(‘y’)) (n!=0) • Operator Logika && {AND} || {c=7 dari c=c+2} {…………………..} Operator increment/decrement ++ • Operator relational < > <= >= == {equal} != {not equal} -- 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 } • Operator kondisional ?: Contoh : z = (x < y) ? x : y; pernyataan di atas sama dengan : 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);
  • 25. 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()
  • 26.
  • 27. Statemen Kontrol • Yaitu statemen yang dapat mengatur arah/aliran program. Secara umum dapat dikelompokkan 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(“%dn”,i); atau for (int=0;i<100;i++) printf(“%dn”,i); Bandingkan dengan pascal : Var i: integer For i=1 to 100 do writeln(I);
  • 28. 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 atau while(exp) { Statement1; Statement2; } Exp = ekspresi boolean yang dapat true atau false, tetapi pada C true berarti tidak 0 dan falsa berarti 0. Statemen akan dilaksanakan berulang-ulang selama exp tidak 0. Contoh : Whi le int h=1; while(h<10) { printf(“%d”,hitung); hitung++; } Boleh juga menjadi : int h=1; while(h<10) printf(“%d”,hitung++) do-while Format : 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.
  • 29. • 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;
  • 30. atau : {lanjutan format if-else} Switch-case : if (exp boolen) {statemen1; statemen2; } else {statemen3; statemen4; } Fungsinya seperti case-of pada pascal atau selectcase pada basic, yaitu untuk menggantikan if bertingkat. Contoh : if (umur<50) printf(“kerja terusn”); else printf(“anda pensiunn”); 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
  • 31. 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
  • 32. 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 1 2 3 (A) 4 5 6 Alamat memory 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 : Printf(“%d”,*ptrA);
  • 33. 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();}
  • 34. 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 !
  • 35. 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)); } }
  • 36. 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(); }
  • 37. 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; Anda perlu membaca refrensi lain untuk menyelesaikan tugas ini ! Tugas/Latihan :