Bahasa C Operator ini menerma 1 parameter

SEJARAH C
Akar dari bahasa C adalah BPCL yang dikembangkan oleh Martin Richards pada
tahun 1967, kemudian dikembangkan menjadi bahasa B oleh Ken Thompson pada tahun
1970. Yang dikembangkan lebih lanjut menjadi bahasa C oleh Dennis Ritchie sekitar tahun
1970-an di Bell Telephone Laboratories Inc.
C adalah bahasa standar, artinya suatu program ditulis dengan versi bahasa C
tertentu akan dapat dikompilasi dengan versi bahasa C yang lain dengan

sedikit

modifikasi. Kepopuleran C membuat versi-versi yang banyak untuk komputer mikro. Untuk
menstandarisasikannya maka dibentuk komite pada tahun 1983 yang menetapkan standar
ANSI untuk bahasa C.

Alasan-alasan Menggunakan Bahasa C
1.

Bahasa C tersedia hampir disemua jenis komputer.

2.


Kode bahasa C bersifat Portable.

3.

Bahasa C hanya menyediakan sedikit Reserved Word. Keandalan C dicapai
dengan fungsi-fungsi pustaka.

4.

Proses executable program dalam bahasa C lebih cepat.

5.

Dukungan pustaka yang banyak.

6.

C merupakan bahasa terstruktur.

7.


Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat menengah.

8.

C adalah bahasa kompiler.

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

1

STRUKTUR PROGRAM C
Struktur program C dapat dilihat sebagai kumpulan satu atau lebih fungsi-fungsi.
Fungsi yang harus ada adalah main( ), karena fungsi ini merupakan titik awal dan titik
akhir peng-eksekusian program. Diawali dengan tanda ( { ) dan diakhiri dengan ( } ).
Bentuk umumnya:
main()
{
Block statement;
}

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya
menggunakan fungsi-fungsisebagai program-program bagian (subroutine). Fungsi-fungsi
ini dapat ditulis setelah fungsi utama atau diletakkan di file pustaka (library). Jika Fungsi
diletakkan di file library dan akan dipakai pada suatu program maka nama header file- nya
harus disertakan didalam program dengan preprocessor directive #include.
Contoh program sederhana:
#include
main()
{
printf(“Selamat Datang”);
}
Hasilnya:
Selamat Datang

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

2

Header File
Merupakan file yang berisi prototype (judul, nama, dan sintaks ) dari sekumpulan

fungsi-fungsipustaka tertentu, sedangkan fungsi-fungsi pustakanya sendiri disimpan difile
pustaka (library file dengan extension .LIB). Cara penulisannya adalah
#include
atau
#include “nama header file”
Reserved Word
Bahasa C standar ANSI mempunyai 32 kata kunci dan turbo C menambahkan 7
kata kunci. Katakunci ini tidak dapat digunakan sebagai nama variable atau nama fungsi.
asm *
auto
break
case
cdecl *
char
const
continue

default
do
double

else
enum
extern
far *
float

for
goto
huge *
if
int
interrupt *
long
near *

pascal *
register
return
short
signed

sizeof
static
struct

switch
typedef
union
unsigned
void
volatile
while

Tanda * menunjukan tambahan dari turbo C. Bahasa C adalah bahasa yang case
sensitive. Huruf kecil dibedakan dengan huruf besar dan semua kata kunci ditulis dalam
huruf kecil.
Identifier Name
Merupakan nama yang dibuat oleh programmer untuk pemberian nama variable,
konstanta, fungsi atau label. Ketentuan membuat identifier name adalah sebagai berikut:
1. Panjang minimal 1 karakter, maksimaltidak terbatas, tetapi hanya 32
karakter pertama saja yang diperhatikan.

2. Karakter pertama harus berupa huruf atau garis bawah.
3. Tidak diperbolehkan menggunakan karakter khusus dan blank/spasi.
4. Case sensitive, huruf besar dan kecil dianggap beda.
5. Tidak diperkenankan menggunakan kata kunci.
Statement-statement
Statement adalah pernyataan yang menyebabkan suatu tindakan dilakukan oleh
komputer. Statement dalam bahasa C diakhiri dengan tanda titik koma ( ; ).
Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

3

Empty Statement / Null Statement
Statemen kosong adalah statement yang hanya terdiri dari peng-akhir titik koma
saja, sehingga tidak melakukan tindakan apapun. Digunakan untuk membuat perulangan
kosong yang dimaksudkan untuk memberi jarak ke proses selanjutnya.
Expression Statement
Statemen ungkapan merupakan statemen yang dibentuk dari ungkapan yang
diakhiri dengan titik koma.
Control Statement
Statemen kendali merupakan statemen yang berfungsi untuk mengendalikan

proses dari program, dapat berupa proses seleksi kondisi, perulangan atau lompatan.
Statemen ini dibentuk dengan menggunakan kata kunci if, switch, do-while, goto, break
dan continue.
Coumpound Statement/Block Statement
Statemen jamak adalah statemen yang terdiri dari beberapa statemen tunggalyang
ditulis diantara tanda kurung kurawal ( { } )

TIPE DATA

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

4

C menyediakan 5 macam tipe data dasar, yaitu tipe data integer (numerik bulat
dideklarasikan dengan int), floating point (numerik pecahan ketepatan tunggal
dideklarasikan dengan float), double precision (numerik pecahan ketepatan ganda
dideklarasikan dengan double), karakter (dideklarasikan dengan char) dan kosong
(dideklarasikan dengan void).
Untuk int, float, double dan char dapat dikombinasikan dengan pengubah
(modifier) signed, unsigned, long, short, maka hasilnya menjadi seperti pada tabel

berikut.
TIPE DATA DASAR
TIPE
int
signed int
short int
signed short int
unsigned int
unsigned short int
long int
signed long int
unsigned long int
float
double
long double
char
signed char
unsigned char

Lebar

16 bit

Jangkauan Nilai
- 32768 s/d 32767

16 bit

0 s/d 65535

32 bit

- 2147483648 s/d 2147483649

32 bit
32 bit
64 bit
80 bit
8 bit

0 s/d 4294967296

3.4E-38 s/d 3.4E+38
1.7E-308 s/d 1.7E+308
3.4E-4932 s/d 3.4E+4932
- 128 s/d 127

8 bit

0 s/d 255

Konstanta
Konstanta adalah suatu nilai yang tidak pernah berubah selama proses program.
Dibagi menjadi 4, yaitu:
a.

Konstanta Numerik Integer
Merupakan nilai numerik bilangan bulat. Sesuai dengan tipe data yang ada
maka dapat berupa konstanta numerik integer bertanda diberi tanda, integer tidak
bertanda (diberi huruf u atau U pada akhir nilainya), integer panjang bertanda (diberi
huruf l atau L diakhir nilainya) dan integer panjang tidak bertanda (diberi huruf ul
atau UL diakhir nilainya).

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

5

b.

Konstanta numerik pecahan
Merupakan nilai numerik yang dapat mempunyai nilai pecahan dibelakang titik
desimal. Dapat bernilai ketepatan tunggal (float), ketepatan ganda (double), atau
ketepatan ganda panjang (long double).

c.

Konstanta Karakter dan String
Merupakan nilai sebuah karakter yang ditulis diantara tanda petik ganda.
Pengertian karakter disini meliputi huruf a-z atau A-Z, digit 0 – 9 karakter khusus dan
karakter grafik.

d.

Konstanta Karakter Escape
Escape character banyak digunakan di statemen-statemen untuk menampilkan
hasil. Konstanta karakter escape diawali dengan tanda ‘ \ ‘.
Karakter Escape
\a
\b
\f
\n
\r
\t
\v
\0
\’
\”
\\

Fungsi
bunyi bel (bell atau alert)
mundur 1 spasi (backspace)
ganti halaman (form feed)
ganti baris baru (new line)
ke kolom pertama, baris yang sama (carriage return)
tabulasi horisontal
tabulasi vertikal
nilai kosong (null)
karakter petik tunggal
karakter petik ganda
karakter backslash
OPERATOR

Operator adalah suatu tanda atau simbol yang digunakan untuk suatu operasi
tertentu. Bahas aC menyediakan operator pengerjaan, operator aritmatika, operator tipe,
operator hubungan, operator logika, operator bitwise, operator ternary dan operator koma.
Operator Aritmatika
Operator aritmatika melibatkan 2 buah operand, terkadang operand yang
digunakan berbeda tipenya. Untuk menghindari hal-hal yang tidak diinginkan maka
kompiler C mempunyai pedoman untuk operand yang berbeda tipe:
1.

Tipe char akan dikonversikan ke tipe int

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

6

2.

Tipe float akan dikonversikan ke tipe double

3.

Jenjang tertinggi adalah mulai dari long double, double, long int,
unsigned int, dan int. Ini berarti tipe double dioperasikan dengan tipe int
akan menghasilkan tipe double.

Operator
*
/
%
+
-

Fungsi
Perkalian
Pembagian
Pembagian modulo (Sisa pembagian)
Penjumlahan
Pengurangan

Jenjang
3
3
3
4
4

Operator Unary
Operator unary merupakan operator yang hanya menggunakan sebuah operand
saja. Operator-operator unary mempunyai jenjang 2.
Operator
++
-(tipe)
sizeof
!
~
&
*

Fungsi
Unary minuss
Increase dgn penambahan nilai 1
Decrease dengan pengurangan nilai 1
Cast
Ukuran operand dalam byte
unary NOT
Komplemen 1 (bitwise NOT)
Menghasilkan alamat memori operand(operator pointer)
Menghasilkan nilai pengenal dialamatnya(operator pointer)

Operator Pengerjaan Aritmatika
Operator pengejaan digunakan untuk memindahkan nilai dari suatu ungkapan
kesuatu pengenal. Operator pengerjaan mempunyai jenjang 14.
Operator
=
+=
-=
*=
/=
%=

Contoh
A=B+C
A += 1
A -= B
A *= B
A /= B
A %= B

Ekuivalen dengan
Mengerjakan B + C ke A
A=A+1
A=A–B
A=A*B
A=A/B
A=A%B

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

7

Operator Relasional
Operator hubungan digunakan untuk menunjukkan hubungan antara 2 buah
operand. Banyak digunakan untuk penyeleksian kondisi dengan statemen if, do-while,
atau while.
Operator
Fungsi
<
Lebih kecil dari

Lebih besar dari
>=
Lebih besar atau sama dengan
==
Sama dengan
!=
Tidak sama dengan
Operator Logika (Logical Operator)

Jenjang
6
6
6
6
7
7

Operator logika digunakan untuk membandingkan logika hasil dari operatoroperator hubungan.
Operator
&&
||

Fungsi
Logika DAN (AND)
Logika ATAU (OR)

Jenjang
11
12

Operator Koma (Comma Operator)
Operator koma digunakan untuk menggabungkan beberapa ungkapan dengan
proses yang berurutan dari ungkapan sebelah kiri koma ke ungkapan sebelah kanan
koma. Operator koma mempunyai jenjang 16.
Operator Bitwise
Operator bitwise digunakan untuk memanipulasi bit-bit nilai data yang ada di
memori. Operator-operator ini hanya dapat digunakan untuk tipe data char, int, dan long
int.
Operator
>
&
^
|
~

Fungsi
Pergeseran bit ke kiri
Pergeseran bit ke kanan
Bitwise AND
Bitwise XOR (Exclusive OR)
Bitwise OR
Bitwise NOT

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

Jenjang
5
5
8
9
10
1
8

Operator Pengerjaan Bitwise
Operator
=
&=
^=
|=

Contoh
A = 2
A &= 0x1b
A ^= 0x1b
A |= 0x1b

Ekuivalen dengan
A = A > 2
A = A & 0x1b
A = A ^ 0x1b
A = A | 0x1b

Menampilkan hasil
Prototype dari fungsi-fungsi untuk menampilkan hasil terdapat pada file judul
stdio.h bersifat standar yaitu putchar(), puts(), printf(), fprintf() dan conio.h bersifat
tidak standar, dalam arti tidak semua kompiler C menyediakan yaitu clrscr(), gotoxy().
Untuk menampilkan hasil tidak terformat digunakan putchar() untuk menampilkan
karakter tidak terformat dan puts() untuk menampilkan string tidak terformat. Maksudnya
tidak terformat adalah lebar dan bentuk tampilannya tidak dapat diatur.
Sedangkan untuk hasil terformat digunakan perintah printf

dengan kode-kode

format sebagai berikut ini:
Kode Format
%c
%s
%d
%i
%u
%x
%o
%f
%e
%g
%p

Fungsi
Menampilkan sebuah karakter
Menampilkan nilai string
Menampilkan nilai desimal integer
Menampilkan nilai desimal integer
Menampilkan nilai desimal integer tidak bertanda
Menampilkan nilai heksa desimal integer
Menampilkan nilai oktal integer
Menampilkan nilai pecahan
Menampilkan nilai pecahan dalam notasi scientific
Sebagai pengganti ‘%f’ atau ‘%e’ tergantung mana yang terpendek
Menampilkan suatu alamat memori untuk pointer

Memasukkan Data

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

9

Fungsi-fungsi pustaka yang digunakan untuk memasukkan data melalui keyboard,
prototypenya ada di file judul stdio.h dan conio.h . Fungsi-fungsi yang menggunakan file
judul stdio.h yaitu gets() dan scanf(). Sedangkan fungsi yang menggunakan file judul
conio.h, yaitu getche(), getchar(), dan getch().
Untuk memasukkan nilai karakter tidak terformat digunakan getche(), getchar() dan
getch, tergantung dari karakteristik masing-masing. getche() digunakan jika nilai karakter
yang dimasukan tanpa diakhiri dengan penekanan tombol enter, sedangkan jika dengan
penekanan tombol enter maka digunakan getchar(), sedangkan jika pemasukkan nilai
karakter tidak diakhiri dengan penekanan tombol enter dan karakter yang di input tidak
tampak dilayar maka digunaka getch(). Untuk meng-input nilai string digunakan gets().
Untuk meng-input nilai data terformat digunakan perintah scanf(), dengan kode
format sebagai berikut:
Kode Format
%c
%s
%d
%i
%x
%o
%f
%e
%g
%h

Fungsi
Membaca sebuah karakter
Membaca nilai string
Membaca nilai desimal integer
Membaca nilai desimal integer
Membaca nilai heksa desimal integer
Membaca nilai oktal integer
Membaca nilai pecahan
Membaca nilai pecahan
Membaca nilai pecahan
Membaca nilai short integer desimal

PENYELEKSIAN KONDISI
Statement If
Bentuk If tunggal sederhana
Sintaks:
if ( kondisi ) statement ;
Bentuk ini menunjukkan jika kondisi bernilai

benar, maka statement yang

mngikutinya akan di-eksekusi. Jika tidak maka statement selanjutnya yang akan diproses.

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

10

contoh:
#include
main()
{
int JumlahAnak;
float GajiKotor, Tunjangan, PersenTunjangan = 0.2;
printf (“Gaji Kotor

? ”);

scanf (“%f”, &GajiKotor);
printf (“Jumlah Anak

? ”);

scanf (“%f”, &JumlahAnak);
if (JumlahAnal > 2) PersenTunjangan = 0.3;
Tunjangan = GajiKotor * PersenTunjangan ;
Printf(\nBesarnya Tunjangan = Rp %10.2f\n”, Tunjangan);
}
Hasilnya:
Gaji Kotor ? 100000
Jumlah Anak

? 5

Besarnya Tunjangan = Rp 30000.00

Bentuk If tunggal blok statement
Sintaks:
if ( kondisi )
{
blok statement;
}
Perbedaan dengan bentuk sebelumnya statement yang akan dilaksanakan ada dalam
satu blok kurung kurawal.

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

11

Bentuk If Else
Sintaks:
if ( kondisi )
statement1;
else
statement2;
Statement setelah kondisi atau statement sesudah else dapat berupa statement
kosong, statement tunggal maupun blok statement. statement1 akan dijalankan jika
kondisi benar, jika salah maka statement2 yang akan diproses.

Bentuk If..else if…else
Sintaks:
if ( kondisi 1)
statement1;
else if ( kondisi 2 )
statement2;
else if ( kondisi 3)
statement3;
.
:
else
statement default;
Proses akan mulai dari penyeleksian kondisi 1, jika benar maka statement yang
mengikutinya akan dieksekusi, jika salah maka akan masuk proses seleksi kondisi 2,
begitu seterusnya. Jika semua kondisi tidak ada yang terpenuhi, maka program akan
menjalankan statement default.

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

12

Bentuk If bersarang ( nested if )
Sintaks:
if ( kondisi 1)
if ( kondisi 2)
...
if (kondisi n )
statement;
else
statement;
....
else
statement;
else statement;
Kondisi yang akan diseleksi pertama kali adalah kondisi yang paling luar (kondisi 1).
Jika bernilai benar maka statement setelah else yang terluar ( pasangan dari if yang
bersangkutan ) yang akan diproses.
Bentuk If dengan kondisi berupa variable
Contoh:
if ( D == 0 )
printf (“Nilai D sama dengan Nol \n”);
else
printf (“Nilai D tidak sama dengan Nol \n”);
Bentuk If dengan kondisi Jamak
Beberapa

kondisi

dapat

diseleksi

sekaligus

dalam

statement

if

dengan

menggunakan operator logika AND ( && ), OR ( || ), atau NOT ( ! )
Operator ?
Dapat digunakan untuk menggantikan statement if..else..
Sintaks:
( kondisi ) ? statement1 : statement2;

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

13

Jika benar statement1 akan diproses, jika salah statement2 yang akan diproses.

Statement Switch
Statement Switch tunggal
Sintaks:
switch ( kondisi )
{
case konstanta1 :
statement-statement;
break;
case konstanta2 :
statement-statement;
break;
....
default:
statement-statement;
}

Statement nested switch
Yaitu statement switch yang berada didalam switch lainnya.
Sintaks:
switch ( kondisi )
{
case konstanta 1 :
statement-statement ;
switch ( kondisi x )
{
case konstanta 1a :
statement-statement ;
break;
case konstanta 1b :

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

14

statement-statement ;
break;
}
break;
case konstanta 2 :
statement-statement;
break;
}

2.9

Perulangan
a. Statement for
Sintaks:
for ( inisialisasi; terminasi; iterasi ) statement;
inisialisasi

adalah pemberian nilai awal variable untuk perulangan,

terminasi adalah pemberian nilai akhir atau batas perulangan, iterasi adalah
perubahan variable kontrol (counter).
b. Statement while
Sintaks:
while (kondisi ) statement;
Statement dapat berupa statement kosong, statement tunggal maupun
blok statement. Proses perulangan akan terus dilaksanakan jika kondisi dalam
while masih bernilai benar.
c. Statement do…while
Sintaks:
do
......statement .....
while

( kondisi )

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

15

Sedikitnya statement akan diproses sebanyak 1 kali karena seleksi
kondisi dilaksanakan diakhir statement.
d. Statement continue
Statement continue akan menyebabkan proses perulangan kembali ke
awal perulangan dengan mengabaikan statement setelah statement continue.
e. Statement break
Statement break akan menyebabkan proses keluar dari blok looping atau
blok statement pada case.
f. Statement goto label
Digunakan untuk melompat dari satu proses ke proses tertentu didalam
program.
Sintaks:
goto label;

2.10

Array (Larik)
Larik adalah kumpulan nilai-nilai data bertipe sama dalam urutan tertentu
yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik disebut
dengan elemen larik yang letak urutannya ditunjukkan oleh suatu subscript atau
suatu index yang dimulai dengan index nol.
Larik dapat berdimensi satu (one dimensional array) yang mewakili suatu
vektor, larik berdimensi dua (two dimensional array) mewakili bentuk suatu matrik
atau tabel, larik berdimensi tiga (three dimensional array) mewakili suatu bentuk
ruang atau berdimensi lebih dari tiga.
Suatu larik dapat dideklarasikan dengan menyebutkan jumlah dari
elemennya yang dituliskan diantara tanda ‘[ ]’, contohnya:
Int X[5];
Berarti variabel X bertipe integer dan merupakan larik dimensi satu.
Contoh larik berdimensi Satu :
#include
main()

Yuti Dewita Arimbi- Algoritma Pemrograman 3- Bahasa C- PTA 2004-2005

16

{

float X[3] = {5,3,7}, Total = 0;
int I;
for(I=0;I