Anda di halaman 1dari 35

PENDAHULUAN

Sejarah Singkat
Bahasa Pemrograman C diciptakan dan dikembangkan oleh Brian Kernighan dan
Denis Ritchie di Bell Research Labs. Bahasa Pemrograman C secara khusus diciptakan
dengan tujuan agar para programmer (orang yang membuat program komputer)
dapat mengakses seluruh internal register.
I/O

slots

dan

absolute

address

dari

sebuah

komputer.

Pada awal tahun 1960-an, sistem operasi komputer mulai menjadi jauh lebih kompleks
dari sebelumnya karena adanya pengenalan multi terminal dan kemampuan
multi prosessor. Pada saat itu, sistem operasi diciptakan dengan menggunakan
bahasa assembly (bahasa pemrograman tingkat rendah).
Di mana banyak pengembang yang menyadari bahwa suatu sistem operasi
dapat dikembangkan lebih lagi, tidak cukup hanya dengan menggunakan
bahasa assembly. Inilah asal mula Bahasa C yang dimplementasikan pada Digital
Equipment

Corporation

PDP-7.

Pada

perkembangan

selanjutnya

Bahasa

Pemrograman C digunakan untuk mengimplementasikan Sistem Operasi Unix.


Keluarga Besar Bahasa Pemrograman C
Bahasa Pemrograman C telah mengalami banyak evolusi sejak awal diciptakanya
hingga saat ini. Saat ini, banyak Bahasa Pemrograman yang merupakan
turunan/varian/keluarga dari Bahasa C seperti: C ++, Java Script, PHP, Java, perl dan
lain sebagainya.
C dan C++
Banyak orang yang bingung tentang perbedaan antar Bahasa Pemrograman C dan
Bahasa Pemrograman C ++ . Sebenarnya ada sedikit perbedaan antara C dan C++
yang merupakan keturunan Bahasa C. Pertama, perbedaan nama (C dan C++). Kedua,
perbedaan sintaks; sintaks bahasa pemrograman c++ dan c agak sedikit berbeda di
beberapa bagian.

Kegunaan Belajar Bahasa C pada Saat ini


Anda mungkin berpikir bahwa saat ini sudah tidak ada gunanya lagi belajar Bahasa C
karena sudah tidak terpakai lagi. Sebenarnya anda salah, karena pada saat ini, sistem
operasi linux mulai dipakai secara luas, di mana bahasa C(GCC) dapat digunakan
untuk pemrograman sistem linux dan pemrograman jaringan linux. Bahkan jika anda
ingin menjadi hacker yang baik anda harus menguasai GCC (socket programming,
system programming, database programming dan shellcoding).

Pengenalan Bahasa C
C merupakan bahasa universal dalam bidang pegembangan software dan
banyak digunakan pada mesin-mesin dan komputer, banyak sekali software sistem
yang dibuat dengan C karena bahasa C memiliki kemampuan untuk mengakses sistem
dari komputer, mulai dari RAM yang sederhana, disk bahkan sampai yang sangat
detail dan dalam seperti register dan port-port pada komputer, baik itu PC maupun
mini computer dan Mainframe.
Menulis Bahasa Pemrograman C tidaklah sesulit yang anda bayangkan. Saya
asumsikan anda menggunakan sistem operasi linux/unix atau mungkin cygwin di
windows, di mana sudah terinstall compiler yang tersedia untuk Bahasa Pemrograman
C. Ada begitu banyak kompiler untuk bahasa c ini di berbagai platform seperti GCC,
CC di linux/unix; Miracle C, Turbo C, Microsoft Visual C++ di linux/unix.Kompiler
yang akan kita pergunakan kali ini adalah GCC.
Selanjutnya anda juga perlu mempersiapkan text editor apa saja. Bisa notepad
jika anda menggunakan windoze atau vi, pico, vim, kwort, nano, gedit, emacs dan lain
sebagainya.

Dasar-Dasar C
Sebelum kita mulai mempelajari pemrograman bahasa C++, ada baiknya kita tahu
pengertian dari C++ itu sendiri. Bahasa C++ merupakan pengembangan dari bahasa
pemrograman C. Bahasa C++ dikembangkan oleh Dennis Ritchie, dan pertama kali
diimplementasikan

di

komputer

DEC

PDP-11

pada

C++ menggunakan konsep yang penting dari bahasa BCPL dan B.

tahun

1972

Pertama kali bahasa C dikenal dengan luas oleh karena bahasa


pengembangan dari UNIX operating system, Pada saat ini kebanyakan dari sistem
operasi menggunakan bahasa C & C++, Selama hampir dua dekade, bahasa C dapat
dioperasikan di semua komputer. C++ ( ekstensi dari C ), dikembangkan oleh B jarne
Stourstrup di awal tahun 1980, banyak kemampuan-kemampuan baru yang ada di C+
+, tapi lebih penting lagi C++ mempunyai kemampuan object-oriented.
Bahasa C++ ini juga merupakan pemrograman terstruktur dimana untuk
menyelesaikan

sebuah

masalah

harus

bertahap

sesuai

dengan

algortima

pemrograman, dimana secara garis besar program yang akan dieksekusi dari awal
secara berurut sampai akhir.
Bahasa C++ sendiri merupakan bahasa pemrograman yang lumayan banyak
digemerai oleh programmer dan merupakan dasar untuk mempelajari bahasa
pemrograman yang lebih grafis (GUI) seperti Visual C++, Visual C, dan lain-lain.
Bahasa C ++ mengembangkan kemampuan dari bahasa C yaitu dengan:
a) Memberikan dukungan untuk menciptakan dan memanfaatkan abstraksi data.
b) Dapat digunakan untuk pemrograman berorientasi objek.
c) Dan yang terakhir telah menutupi beberapa kekurangan dalam bahasa C.

Mengenal C
Sebuah berkas program C terdiri dari beberapa unsur, yaitu dokumentasi program ,
pengarah prapengolahan, bagian deklarasi global, sebuah fungsi main ( ), dan fungsifungsi buatan pemrogram. Masing-masing fungsi ini terdiri dari badan fungsi yang
memuat deklarasi local dank ode program yang dapat dieksekusi.

Gambar Susunan Program C

[Dokumentasi Program]
[Pengarah Prapengolahan]
[Deklarasi Global]
[Jenis Data] main ([daftar argumen])
{
[Deklarasi Lokal]
[Kode Program Yang Dapat Dieksekusi]
}
[Fungsi-fungsi Buatan pemrogram]

Kurung siku [ ] pada tiap tiap bagian program pada gambar menyatakan
bahwa bagian-bagian tersebut bersifat opsional. Sementara itu ada tiga unsur pada
sebuah program C yang selalu ada yakni sebuah kata main yang merupakan judul
fungsi utama pada sebuah program; kurung kurawal { } menyatakan blok pembatas
yang dapat digunakn untuk mengumpulkan beberapa pernyataan kedalam satu
kesatuan; dan kurung biasa ( ) yang digunakan sebagai pembatas dalam penulisan
daftar argumen yang diberikan kesebuah fungsi, daftar parameter yang diberikan pada
saat pemanggilan fungsi, dan lain-lain. Sebagai contoh, dengan mengabaikan bagianbagian yang bersifat opsional, berikut sebuah program sederhana :
/* Nama file : Program sederhana
Conto program sederhana pada program C*/
#include<stdio.h>
int main ( )
{
return 0;
}

Dokumentasi Program

Memberikan

dokumentasi

pada program sangat berguna untuk membantu

memperjelas alur logika penyusunan program. Karena tujuannya hanya sebagai


dokumentasi, komentar-komentar yang dituliskan pada program tidak diproses oleh
compiler. Komentar dapat dimulai dengan simbol dua karakter yang terdiri dari garis
miring dan asterisk (/*) dan diakhiri dengan asterisk dan garis miring.
Karakter komentar /* dapat diletakkan dimana saja didalam program dan dapat
mencakup lebih dari satu komentar, dengan syarat setiap /* harus ditutup dengan */.
Pada awal program, komentar yang diberikan biasanya bertujuan untuk menjelaskan
apa yang dilakukan oleh program, sedangkan pada bagian probram yang lain
tujuannya adalah untuk memperjelas logika program.
Dalam membeikan komentar untuk dokumentasi program, ada beberapa hal
yang perlu diperhatikan, diantaranya:
1.

Komentar hendaklah diberikan pada tempat-tempat yang bias menimbulkan


kekaburan pengertian

2.

Beri komentar ditempat yang perlu saja, misalnya pada awal program untuk
menjelaskan secara ringkas tujuan program, pada awal blok pernyataan untuk
menjelaskan kumpulan tugas yang dilakukan , pada pernyataan keputusan untuk
menjelaskan kondisi yang harus dipenuhi dalam pengambilan keputusan.

3.

Komentar tidak bisa dibuat bertingkat , yaitu adanya komentar dalam komentar,
misalnya;
/* Komentar awal /* Komentar lagi /* Komentar berikutnya*/

Pengarah Prapengolahan
Dalam mengolah kode-kode program, compiler C melaksanakan beberapa tahapan
yaitu melakukan prapengolahan untuk melakukan persiapan yang diperlukan sebuah
berkas program kompilasi. Di dalam program pengarah prapengolahan diawali oleh
karakter # yang dituliskan pada baris-baris pertama program.
Prapengolahan memperlakukan berkas program sebagai sederetan baris teks:
membaca, mengolah, dan menuliskan kembali hasil pengolahan kedalam berkas
semula. Prapengolah membuang semua baris perintah prapengolahan dari berkas
sumber dan melakukan perubahan terhada berkas sumber sesuai dengan arahan

perintah yang diberikan. Secara garis besar pelayanan prapengolah dibagi dalam tiga
kelompok :
1) Penyisipan berkas (#include),
2) Pendefenisian makro (#define), dan
3) Pengarah kendali compiler (#ifdef, #ifndef, dll)
Dalam menyertakan berkas judulyang diperlukan olefh fungsi input dan
outputyang digunakan dalam program : #include<stdio.h> dan untuk mendefenisikan
sebuah konstanta (pi): #define PI 3.1459, sementara itu #ifdef diguakan apabila
hendak melakukan kompilasi terhadap satu bagian program hanya apabila sebuah
ekspresi tertentu telah didefenisikan menggunakan #define. Standar ANSI C
menambahkan beberapa pengarah prapengolahan tambahan; pengujian alternatif,
pernyataan instruksi, pendeteksian kesalahan, pengubahan pengenal menjadi string
dan penggabungan pengenal.
Deklarasi Global
Pada bagian deklarasi global terdapat pendeklarasian variable dan prototipe fungsi.
Semua variable y ang dideklarasikan pada bagian ini akan dikenal oleh semua bagian
program yang terdapat dibawahnya. Sementara itu prototipe fungsi adalah sebuah
deklarasi tentang akan digunakannya sebuah fungsi didalam program. Ada tiga unsur
yang perlu disebutkan: jenis data yang dikembalikan oleh fungsi, nama fungsi dan
daftar argumen yang diberikan pada fungsi yang diberi jumlah argumen (arity) dan
jenis data masing-masing argumen.
Fungsi Main ( )
Fungsi main ( ) memegang peranan yang penting pada sebuah program. Fungsi ini
merupakan fungsi utama pada setiap program C dimana eksekusi keseluruhan
program dimulai. Barapapun banyaknya fungsi yang terdapat pada sebuah program C,
main ( ) adalh fungsi utama yang akan dilaksanakan oleh compiler. Contoh program
yang memperlihatkan struktur fungsi main ( ) sederhana.

/* Nama file : Hello.c


Menampilkan teks dilayar*/
#include <stdio.h>
int main ( )
{
printf(hello, world!\n);
return 0;
}
Pada contoh diatas fungsi main ( ) tidak memerlukan argumen, badan fungsi
main ( ) tidak memiliki bagian deklarasi lokal, dan hanya memiliki sebuah pernyataan
yang dapat dieksekusi, berupa fungsi output printf ( ). Kode program (pernyataan)
yang dapat dieksekusi adalah kode program yang merupakan baris-baris instruksi
yang harus dilaksanakan oleh kompiler. Kode program ini dapat berupa input/output,
konstruksi runtunan, konstruksi keputusan dan konstruksi pengulangan. Dalam badan
fungsi main ( ) terdapat pula bagian deklarasi lokal yang dimaksudkan untuk
mendeklarasikan variable-variabel dan prototipe-prototipe fungsi. semua variable
dan prototipe fungsi ini bersifat lokal terhadap main ( ), dalam arti hanya dikenal oleh
main ( ).
Fungsi Buatan Pemrogram
Selain main ( ) yang mempunyai kedudukan khusus dalam sebuah program, terdapat
pula fungsi-fungsi buatan pemrogram. Pada fungsi ini dapat diberikan deklarasi
prototype fungsi lain secara local, sehingga hanya dikenal oleh fungsi tersebut. Kode
program yang dapat dieksekusi juga dapat berupa fungsi input/output

standar,

konstruksi runtunan, konstruksi keputusan, dan konstruksi pengulangan.


Pembatas
Setelah pendefenisian fungsi terdapat kurung kurawal buka { dan kurung kurawal
tutup } yang menunjuk akhir blok fungsi, kurung kurawal ini disebut pembatas
(delimeters). Dalam badan program kurung kurawal juga dapat digunakan untuk
membatasi pernyataan majemuk yang dimiliki oleh sebuah blok kode program. Selain
kurung kurawal juga terdapat beberapa pembatas lain, diantaranya: [ ], < >, ( ), ,
dan .

Akhir Pernyataan
Setiap pernyataan (statement) dalam C diakhiri dengan titik koma ( ; ) yang berperan
untuk memberitahu compiler akhir pernyataan.

Carriage return yang diperoleh

sewaktu menekan tombol <enter> bukan penunjuk akhir pernyataan, karena C


mengabaikan semua karakter yang disebut karakter-karakter whitespace, yaitu spasi,
tabulator dan carriage return (newline).
Tipe Data
Adalah suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel dan
operator. Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai
yag dapat berubah-ubah selama eksekusi berlangsung. Pada dasarnya tipe data terdiri
dari:

Tipe data simple merupakan tipe data bawaan dari C++, tipe data ini terdiri dari
beberapa tipe data yaitu:
o Tipe data integral merupakan tipe data yang terdiri dari bilangan dengan range
yang berbeda-beda.
Tipe Data Integral
Bytes Range
Panjang Range
Char
1
-128 127
0 255
Short
2
-32.768 32.767 0 65.535
Int
2
-32.768 32.767 0 65.535
o Floating merupakan tipe data untuk bilangan desimal. Untuk semua Turbo C+
+, type floating-point yang menggunakan format-format IEEE floating-point
digunakan oleh intel 8087. Type float menggunakan real format 32-bit IEEE.
Type double menggunakan real format 64-bit IEEE. Type long double
menggunakan extended real format 80-bit IEEE.
Tipe Data Integral
Float
Double

Bytes
4
4

Range
3.4E-38 3.4E+38 (7 digit)
1.7E-308 1.7E+308 (15 digit)
8

Long Double

1.7E-308 1.7E+308 (15 digit)

Address merupakan tipe data yang digunakan untuk menunjuk suatu alamat memori.
Sedangkan tipe data structured merupakan tipe data bentukan.
Identifiers
Identifiers adalah untaian satu atau lebih huruf, angka, atau garis bawah ( _ ). Panjang
dari identifier, tidak terbatas, walaupun untuk beberapa kompiler hanya 32 karakter
pertama saja yang dibaca sebagai identifier (sisanya diabaikan). Identifier harus selalu
diawali dengan huruf atau garis bawah ( _ ). Ketentuan lainnya yang harus
diperhatikan dalam menentukan identifier adalah tidak boleh menggunakan keyword
dari bahasa C.
Daftar Key Word ANSI C
asm
catch
continue
dynamic_cast
false
if
namespace
public
signed
switch
try
unsigned
wchar_t

Auto
Char
Default
Else
Float
Inline
New
Register
Sizeof
Template
Typedef
Using

bool
class
delete
enum
for
int
operator
reinterpret_cast
static
this
typeid
virtual

break
const
do
explicit
friend
long
private
return
static_cast
throw
typename
void

case
const_cast
double
extern
goto
mutable
protacted
short
struct
truee
union
volatile

Sebagai tambahan, representasi alternatif dari operator, tidak dapat digunakan sebagai
identifier. Contoh

: and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor,

xor_eq
NB

: Bahasa C adalah bahasa yang case sensitive , ini berarti identifier yang

dituliskan dengan huruf capital akan dianggap berbeda dengan identifier yang sama
tetapi dituliskan dengan huruf non capital, sebagai contoh : variabel RESULT tidak
sama dengan variable result.

Dekalarasi Variabel
Untuk menggunakan variable pada C, kita harus mendeklarasikan tipe data yang akan
digunakan. Sintaks penulisan deklarasi variable adallah dengan menuliskan tipe data
yang akan digunakan diikuti dengan identifier yang benar, contoh :
int a;
float mynumber;
Jika akan menggunakan tipe data yang sama untuk beberapa identifier maka data
dituliskan dengan tanda koma, contoh :
int a, b, c;
Tipe data integer (char, long, short, dan int) dapat berupa signed atau unsigned
tergantung dari kisaran nilai yang direpresentasikan. Dilakukan dengan menyertakan
keyword signed atau unsigned sebelum tipe data, contoh :
unsigned short NumberofSons;
signed int MyAccountBalance;
jika tidak ditulis maka akan dianggap signed.
Inisialisasi Variabel
Ketika mendeklarasikan variable local, kita dapat memberikan nilai tertentu. Sintaks
penulisan sbb :
Tipe identifier = initial_value ;
Misalkan kita akan mendklarasikan variable int dengan nama a yang bernilai 0, maka
dapat dituliskan :
int a = 0;
Atau dengan cara lain, yaitu menyertakan nilai yang akan diberikan dalam tanda ( ) :
tipe identifier (initial_value);

10

Contoh :
Int a (0);
Konstanta : Literals
Konstanta adalah ekspesi dengan nilai yang tetap. Terbagi dalam nilai integer, nilai
floating point karakter, dan string.
Nilai Integer
Merupakan nilai konstanta numeric yang meng-identifikasikan nilai integer decimal.
Karena merupakan nilai numeric, maka tidak memerlukan tanda kutip ( ) maupun
karakter khusus lainnya. Contoh :
1776
707
-273
C memungkinkan kita untuk menggunakan nilai octal (base 8) dan heksadesimal (base
16). Jika menggunakn octal harus digunakan dengan karakter 0 (karakter nol), dan
untuk heksadesimal diawali dengan karakter 0X (nol, X). contoh
75

// decimal

0113

// octal

0X4b // heksadecimal
Nilai Floating Point
Merepresentasikan nilai decimal dan / atau eksponen, termasuk titik decimal dan
karakter e (yang merepresentasikan dikali 10 pangkat n , dimana n merupakan nilai
integer) atau keduanya. Contoh

3.14159

// 3.14159

6.02e23

// 6.02 * 10^23

1.6e-19

// 1.6 * 10^-19

3.0

// 3.0

11

Karakter dan String


Merupakan konstanta non-numeric, contoh :
z
p
hello world
how do you do ?
Untuk karakter tunggal dituliskan diantara kutip tunggal ( ) dan untuk untaian
beberapa karakter, dituliskan diantara kutip ganda ( ). Konstanta karakter dan string
memiliki beberapa hal khusus, seperti escape codes.
\n
\r
\t
\v
\b
\f
\a
\
\
\?
\\

Newline
Carriage return
Tabulation
Vertical tabulation
Backspace
Page feed
Alert (beep)
Single quotes ( )
Double quotes ( )
Question ( ? )
Inverted slash ( \ )

Sebagai tambahan kita dapat menuliskan karakter apapun dengan menuliskan kode
ASCII, mengekspresikan sebagai octal (contoh, \23 atau \40) mupun heksadecimal
(contoh, \X20 atau \X4A).
Konstanta Define (#define)
Kita dapat mendefenisikan sendiri nama untuk konstanta yang akan kita pergunakan,
dengan menggunakan preprocessor directive #define. Dengan format :
#define identifier value
Contoh :
#define PI 3.14159

12

#define NEWLINE \n
#define WIDTH 100
Deklarasi Konstanta (const)
Dengan prefix const kita dapat mendeklarasikan konstanta dengan tipe yang spesifik
seperti yang kita inginkan. Contoh

const int width = 100;


constchar tab = t;
const zip = 12440;
Jika tipe data tidak disebutkan, maka compiler akan mengsumsikan sebagai int.
Operator
Operator yang disediakan C berupa keyword atau karakter khusus. Operator-operator
ini cukup penting untuk diketahui karena merupakan salah satu dasar bahasa C.
Assignation ( = )
Operator ini digunakan untuk membeikan nilai ke suatu variable.
a=5;
Memberikan nilai integer 5 ke variable a. Sisi kiri dari operator disebut lvalue (left
value) dan sisi kanan disebut rvalue (right value). lvalue harus selalu berupa variable
dan sisi kanan berupa konstanta, variable, hasil dari suatu operasi atau kombinasi dari
semuanya. Contoh :
Int a, b;

// a : ?

b:?

a = 10;

// a : 10 b : ?

b = 4;

// a : 10 b : 4

a = b;

// a : 4

b:4

b = 7;

// a : 4

b:7

Hasil dari contoh diatas , a bernilai 4 dan b bernilai 7.

13

Contoh :
a = 2 + (b = 5);
equivalent dengan

b=5
a=2+b
Arithmetic Operators ( +, -, *, / , % )
+ addition
- substraction
* multiplication
/

division

% module
Increase (++) and decrease (--).
Contoh

:
a++;
a+=1;
a=a+1;

Operator increase dan decrease dapat digunakan sebagai prefix dan suffix. Dengan
kata lain dapat dituliskan sebelum identifier variable (++a) atau sesudahnya (a++).
Operator increase yang digunakan sebagai prefix (++a), letak perbedaan :
Example 1

Example 2

B=3;

B=3;

A=++B;

A=B++;

// A is 4, B is 4

// A is 3, B is 4

Relasional Operators (= =, !=, >, <, >=, <=)


Untuk mengvaluasi antara dua ekspresi, dapat digunakan operator relasional. Hasil
dari operator ini adalah nilai bool yaitu hanya berupa true atau false, atau dapat juga

14

dalam nilai int, 0 untuk merepresentasikan false dan 1 untuk merepresentasikan


true. Operator-operator relasional pada C :
==

Equal

!=

Different

>

Greater than

<

Less than

>=

Greater or equal then

<=

Less or equal then

Logic Operators ( !, &&, || )


Operator ! equivalent dengan operasi Boolean NOT, hanya mempunyai 1 operand,
berguna untuk membalikkan nilai dari operand yang bersangkutan. Contoh :
! (5 = = 5)

returns false because the expression at is right (5 = = 5) would


be true.

! (6 =<= 4)

returns true because (6 <=4) be false.

! true

returns false.

!false

returns false.

Operator logika && dan || digunakan untuk mengevaluasi 2 ekspresi dan


menghasilkan 1 nilai akhir. Mempunyai arti sama dengan logika Boolean AND dan
OR. Contoh

:
First

Second

Result

Result

Operand

Operand

a && b

a || b

True
True
False
False

True
False
True
False

True
False
False
False

True
True
True
False

Conditional Operator ( ? )
Operator kondisional mengevaluasi ekspresi dan memberikan hasil tergantung dari
hasil evaluasi (true atau false ). Sintaks

15

conditional ? result1 : result2


Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan
result2.
7==5 ? 4:3

returns 3 since 7 is not equal to 5.

7 = = 5 + 2 ? 4 :3

returns 4 since 7 is equal to 5 + 2.

5>3 ? a:b

returns a, since 5 is greater than 3.

a > b ? a :b

returns the greater one, a or b.

Bitwise operator (&, |, ^, ~, <<, >>)


Operator bitwise memodifikasi variable menurut bit yang merepresentasikan nilai
yang disimpan, atau dengan kata lain dalam representasi binery.

op
&
|
^
~
<<
>>

asm
AND
OR
XOR
NOT
SHL
SHR

Descrition
Logical AND
Logical OR
Logical exclusive OR
Complement to one (bit inversion)
Shift Left
Shift Right

Explisit Type Casting Operators


Explisit type casting operators memungkinkan untuk mengkonversikan tipe data yang
sudan diberikan ke tipe data ynag lain. Ada beberapa cara yang dilakukan dalam C,
yang paling populer yaitu tipe baru dituliskan dalam tanda kurung ( ), contoh
int i;
float f = 3.14;
i = (int) f;

16

Contoh diatas mengkonversikan nilai 3.14 menjadi nilai integer (3). Tipe casting
operator yang digunakan (int). cara lainnya :
i = int ( f );
Operator ini menerima 1 parameter, dpat berupa type variable atau variable itu sendiri
dan mengembalikan ukuran type atau object tersebut dalam bytes :
a = sizeof (char);
Contoh diatas akan memberikan nilai 1 ke a karena char adalah tipe data dengan
panjang 1 byte. Nilai yang diberikan ole sizeof bersifat konstan.

17

Contoh Program C
1. Membuat program Faktorial
#include<stdio.h>
Int main ( )
{
int n, hsl;
printf(Menghitung nilai factorial);
printf(input sebuah bilangan :);
scanf(%d, &n);
hsl = 1;
for(i = 1;i <= n ;i++)
hsl = hsl * i;
printf(hasil = %d\n, hsl);
return 0;
}
2. Program menghitung Persegi panjang
#include<stdio.h>
int main ( )
{
float Luas;
int p, l;
float persegi (int, int);
printf(n\Menghitung luas persegi panjang.);
printf(input nilai panjang dan lebar :);
scanf(%d %d, &p, &l);
Luas = persegi(p, l);
printf(luas persegi panjang = %f\n, Luas);
return 0;
}
float persegi (int p,int l)
float luas;
Luas = program * l;
return luas;
}
18

3. Program menghitung Konversi suhu dari Celcius ke Fahrenheit


#include<stdio.h>
int main ( )
{
int c, f;
printf(berikan nilai temperatur dalam celcius :)
scanf(%d, &c);
f = (9 * c) / 5 + 32;
Printf(%d derajat celcius = %d derajat Fahrenheit. \n, c, f);
Return 0;
}
4. Program mencari nilai min dan max
#include<stdio.h>
int main()
{
float min, max , x, y ;
printf ("mencari min dan max dari dua buah bil. \n");
printf("input nilai x: ");
scanf("%f", &x);
printf("input nilai y: ");
scanf("%f", &y);
if((float)(x-y)>=0)
max = (float)(x+y+(x-y)/(float)2.0);
else
max = (float)(x+y-(x-y)/(float)2.0);
printf("max= %f\n", max);
if((float)(x-y)>=0)
min = (float)(x+y-(x-y)/(float)2.0);
else
min = (float)(x+y+(x-y)/(float)2.0);
printf("min= %f\n", min);
return 0;
}
19

5. Program mencari regangan jembatan


#include <stdio.h>
int main()
{
float L,l,d;
printf ("mencari regangan jembatan. \n");
printf("input panjang rentangan: ");
scanf("%f", &l);
printf("input lengkungan : ");
scanf("%f", &d);
L=(float)l+(float)(8.0*(d*d))/(float)3.0*l;
printf("panjang kabel=%f\n", L);
return 0 ;
}
6. Program mencari volume kerucut
#include <stdio.h>
#define pi 3.14159
int main()
{
float v,r,h;
printf ("mencari volume kerucut. \n");
printf("input jari-jari: ");
scanf("%f", &r);
printf("input tinggi kerucut: ");
scanf("%f", &h);
v = (float) 1.0 / (float) 3.0 * (float) pi * r* r ;
printf("volume kerucut:%f\n", v);
return 0;
}
20

7. Program mencari bilangan kuadrat


#include <stdio.h>
int main()
{
int bil, n, Hasil;
Hasil = 0;
printf("mancari hasil kuadrat dari bilangan sembarang.\n\n");
printf("input sebuah bilangan bulat : ");
scanf("%d", &bil);
if(bil==0)
printf("Bilangan harus lebih besar dari nol !\n");
else
for(n=1;n<=bil;n++)
Hasil += 2*n-1;
printf("Hasil kuadrat = %d\n", Hasil);
return 0;
}
8. Program membuat bentuk berlian dari sebuah katakter dan bilangan
#include <stdio.h>
int main()
{
char ch;
int lebar, x, y, z;
printf("masukkan banyak baris dan karakter :");
scanf("%d %c", &lebar, &ch);
if(lebar == 0)
printf("banyak baris minimal 1\n");
else if
(lebar%2 == 1)
{
/* pengulangan bagian atas */
for(x=1;x<=lebar/2+1;x++)
{
21

for(y=1;y<=lebar/2+1-x;y++)
printf(" ");
for(z=1;z<=2*x-1;z++)
printf("%c", ch);
printf("\n");
}
/* pengulangan bagian bawah */
for(x=1;x<=lebar/2;x++)
{
for(y=1;y<=x;y++)
printf(" ");
for(z=1;z<=lebar-2*x;z++)
printf("%c", ch);
printf("\n");
}
}
else
{
/* pengulangan bagian atas */
for(x=1;x<=lebar/2;x++)
{
for(y=1;y<=lebar/2-x;y++)
printf(" ");
for(z=1;z<=2*x;z++)
printf("%c", ch);
printf("\n");
}
/* pengulangan bagian bawah */
for(x=1;x<=lebar/2-1;x++)
{
for(y=1;y<=x;y++)
printf(" ");
for(z=1;z<=lebar-2*x;z++)

22

printf("%c", ch);
printf("\n");
}
}
return 0;
}
9. Program menghitung jumlah deret aritmatika
#include<stdio.h>
int main( )
{
float a, define, sn;
int n, i;
printf(berikan suku pertama : );
scanf(%f, &a);
printf(berikan beda :);
scanf(%f, &d);
printf(jumlah deret sampai suku keberapa ?);
scanf(%d, &n);
for(sn=a, i=1; i<n; i++)
sn +=(a + i*d);
printf(jumlah deret hingga %d suku = %f\n, n, sn);
return 0;
}
10. Program menganalisa sirkuit sederhana
#include<stdio.h>
typedef double resistance;
int main ( )
{
Resistance R1, R2, R3;
double TotalR, Voltase, Arus;

23

/* Minta tiga resistan dan voltase */


printf(berikan tiga resistan (ohm) :);
scanf(%lf %lf %lf, &R1, &R2, &R3);
printf(voltase yang digunakan (volt) :);
scanf(%lf, &voltase);
/* Hitung total resistan dan arus */
Total = 1.0 / (1.0 / R1 + 1.0 / R2 + 1.0 / R3);
Arus = Voltase / TotalR;
/* Tampilkan Arus */
printf(Arusnya = %lf amps.\n, Arus);
return 0;
}
11. Program menentukan nama-nama hari
#include<stdio.h>
int main()
{
int kode;
printf("Menetukan hari.\n");
printf("input kode [1 - 7]: ");
scanf("%d", &kode);
switch (kode)
{
case 1:puts("hari minggu"); break;
case 2:puts("hari senin"); break;
case 3:puts("hari selasa"); break;
case 4:puts("hari rabu"); break;
case 5:puts("hari kamis"); break;
case 6:puts("hari jumat"); break;
case 7:puts("hari sabtu"); break;
default:puts("kode salah");
}
return 0;
}
24

12. Program kalkulator sederhana


#include<stdio.h>
int main()
{
char op;
int bil1, bil2;
printf("Tuliskan bilangan, operator, bilangan :");
scanf("%d %c %d", &bil1, &op, &bil2);
switch(op)
{
case '+': printf("= %d", bil1 + bil2); break;
case '-': printf("= %d", bil1 - bil2); break;
case '*': printf("= %d", bil1 * bil2); break;
case '/': printf("= %d", bil1 / bil2); break;
default : printf("operator tidak dikenal!");
}
printf("\n\n");
return 0;
}
13. Program perkalian bilangan bulat 1-10
#include<stdio.h>
int main()
{
int kol, brs;
for(brs = 1; brs<11; brs++)
{
for(kol = 1; kol<11; kol++)
printf("%4d", brs*kol);
printf("\n");
}
return 0;
}
25

14. Program menentukan bil prima


#include<stdio.h>
int main()
{
int i, habis = 0;
long x;
printf("berikan bilangan bulat : ");
scanf("%ld", &x);
if(x<=1)
{
printf("bilangan prima terkecil adalah 2.\n");
}
for(i = 2; i < x; i++)
{
if((x % i) == 0)
{
printf("habis dibagi %d, karena itu ", i);
habis = 1;
break;
}
}
if(!habis)
printf("bilangan prima.\n");
else
printf(" %ld bukan bilangan prima.\n", x);
return 0;
}

26

Contoh Program Praktikum Lab Pertama


* Mencari Luas segitiga *
Flowchart Segitiga

Start
Luas, a, t

Luas=(a*t)/
2

Luas

End
Program Luas Segitiga

/* Nama File : Luas segitiga.c


Mencari luas segitiga */
#include<stdio.h>
#include<math.h>
int main ( )
{
float Luas, a, l;
printf(Menghitung Luas segitiga\n);
printf (input nilai alas :);
scanf(%f, &a);
printf(input nilai tinggi :);
scanf(%f, &t);
Luas = (float)(alas * tinggi)/((float)2.0);
27

printf(luas segitiga =%f\n, Luas);


return 0;
}

28

Contoh Program Praktikum Lab ke Dua


* Mencari Nilai Min dan Max *
Flowchart Nilai Min dan Max dari dua bilangan :

Start
a, b

(a>b

max = a, max =b

End

Program nilai min dan max dari dua bilangan


/* Nama file : max dan min.c
Mencari nilai max dan min */
#include<stdio.h>
int main( )
{
int a, b;
printf(beri nilai a :);
scanf(%d, &a);
printf(beri nilai b :);
scanf(%d, &b);
if (a > b)

29

max = b, max =a

printf(max = %d \n, a);


printf(min = %d \n, b);
else
printf(max = %d \n, b);
printf(min = %d \n, a);
return 0;
}

* Tugas membuat program Min dan Max dari tiga bilangan *


Flowchart Min dan Max dari tiga bilangan

Start
a, b, c, min, max

(min=(a<b)?
a:b)<c?min:c

(max=(a>b)?a:b)>c
max:c

End
30

Program nilai min dan max dari tiga bilangan

/* Nama file : min dan max.c


Mencari nilai min dan max */
#include<stdio.h>
int main()
{
int a, b, c, min, max;
printf("beri nilai a :");
scanf("%d", &a);
printf("beri nilai b :");
scanf("%d", &b);
printf("beri nilai c :");
scanf("%d", &c);
min = (min=(a < b) ? a : b) < c ? min : c;
max = (max=(a > b) ? a : b) > c ? max : c;
printf("bilangan minimum : %d\n", min);
printf("bilangan maximum : %d\n", max);
return 0;
}

31

Contoh Program Praktikum Lab ke Tiga


* Membuat program bilangan secara menurun dan berkurang 1 angka *
Flowchart pengulangan sederhana

Start
i,n

i=n

i >= 1

i--

End
Program pengulangan sederhana :
/*Nama file : program bilangan.c
Membuat program bil berkurang 1 angka*/
#include<stdio.h>
int main()
{
int n, i;
printf("input bil 8 : ");
scanf("&d", &n);
for(i=n; i>=1; i--)

32

printf("%d\n", i);
return 0;
}

33

* Membuat program bintang *


Flowchart program bintang

Start
i, j, k, a

a = a -2

i=1

i <=0

i=i+2

j=i

j >= 1
j=j-2
k=1

k <= a
k++

End

34

Program bintang

#include<stdio.h>
int main()
{
int i, j, k, a;
printf("input sebuah bilangan : ");
scanf("%d", &a);
a = a-2;
for(i=1; i<=a; i=i+2)
{
printf(" ");
for(j=i; j>=1; j=j-2)
printf(" ");
{
for(k=i; k<=a; k++)
printf("*");
printf("\n");
}
}
return 0;
}

35

Anda mungkin juga menyukai