Pemrogro,mcfit
C don C++
1,.:,
t..
i:
?,,,
,..:.
l'.: ,
l.
1.
Algoritma Pemrograman Menggunakan C ++
#include <stdio.h>
int main ( )
{
printf ( "Se1amat Belajar C\n" ) ;
ret,urn 0;
]
#include <iostream.h>
int main ( )
{
cout "Selamat Belajar C\n";
return 0;
)
eototo n
Contoh pengenal yang absah dan yang salah dapat dilihat pada tabel
berikut:
Tabel 4.1 Pengenal yculg absah dan yang salalt
n 1
Semester (ada spasi)
Bilangan 3Bulan (diawali dengan angka)
semeseter_l modal*bunga (ada tanda *)
PERUSAHAAN
'l-ina
r rlJL :
Keterangan
tloat Menyatakan bilangan titik-mengambang
(bilangan real) densan ketelitian rendah
mt Menyatakan bilangan bulat antara 32768
sampai dengan 32167.
long int Menyatakan bilangan bulat yang berkisar antara
-2147 483648 st d 2147 483647
..r1.,,
.. . ......:-,:::.',.., ::,.:.
.
4. 4. L Mendeklarasikan Variabel
Sebelum Anda dapat menggunakan suatu variabel dalam
program, variabel harus dideklarasikan dulu. Pendeklarasian variabel
digunakan untuk memesan lokasi dalam memori komputer dan
menentukan tipe dari data yang dapat disimpan dalam variabel. Bentuk
pendeklarasiannya adalah sebagai berikut:
tipe_data nama variabel;
Contoh dapat dilihat pada tabel berikut:
Tabel 4.3 Contoh deklarasi variobel
Jika ada beberapa variabel dengan tipe yang sama, pendeklarasian dapat
dilakukan dengan menggunakan sebuah pemyataan. Contoh;
int i, j, k;
Contoh:
n = 7':
o/. Algoritma Pemrograman Menggunakan C ++
n€n+l n:n+ 1;
. i::::iB*:llrriiiiiiiill
YauriFff,ffial
il-ffi
il
Tab vertikal
Karakter \
Karakter petik tunggal
Karakter petik ganda
\? Karakter tanda tanya
\DDD Menyatakan sebuah karakter yang nilai ASCII-
nya sama dengan nilai oktal DDD
\xHH Menyatakan sebuah karakter yang niiai ASCII
nya sama dengan nilai heksadesimal HH
String pada C dan C++ selalu diakhiri dengan karakter NULL 00).
Sebagai contoh, jika terdapat string "Yogya", secara internal string itu
disaj ikan seperti berikut:
Dasar Pemrograman C dan C++ 65
Y'l' (} a \0
' t) Y,,
6eliorllomr
Hal ini perlu dilakukan mengingat prototipe fungsi strcpyQ terdapat pada
berkas tersebut.
Contoh program C:
E tr.c
66 Algoritma Pemrograman Menggunakan C ++
#include <stdio.h>
#include <string.h>
int main ( )
t
char info [25 ] ;
Akhir Kode,Sumber
Pada program di atas,
char info[25];
digunakan untuk mendeklarasikan variabel string bemama info yang
dapat menyimpan hingga 24 karakter (plus sebuah karakter NULL).
Melalui pernyataan
strcpy(info, "Nama: David Beckam" ) ;
variabel string info diisi dengan string "Nama: David Beckam".
Selanj utnya, pernyataan
strcpy(info, "Info: Pemain sepakbola" ) ;
diganti dengan "lnfo: Pemain sepakbola".
Hasil pengeksekusian program dapat dilihat pada gambar berikut:
int rnain ( )
{,
char info [25] ;
E
l-
#include <stdio.h>
# j-nclude <string. h>
int main ( )
{
char info[25] = "Nama: David Beckam,';
printf (info) ;
printf("\n");
strcpy(info, ,'Info: pemain sepakbola', ) ;
printf (info) ;
return 0;
68 Algoritma Pemrograman Menggunakan C ++
#include <iostream.h>
#include <string.h>
int main ( )
{
char infol25l = "Nama: David Beckam";
cout << info;
cout. << " \n",'
strcpy(info, "Info: Pemain sepakbola") ;
1=------
fr-,.t* I
r
kota[0]
qY'
dipakai untuk menentukan lebar data secara keseluruhan (m) dan untuk
menentukan jumlah digit pecahan (n). Contoh:
printf ("2e.2f" , 52.0) ;
ti/
printf (""88 -2f " , 12 .A) ;
,a;,
printf ("t-Bs". "Hai") ; l:gi'ii
E
15 Kode Sumbep f,++ I hexoct.cpp
#include <iostream.h>
int main ( )
{
int bi1 = 23;
cout << "Desimal = " << bil << "\n"'
cout << "Heksadesimal = " << hex << bi1 << "\n";
cout << "Oktaf = r'<< oct << bi1 << "\n';
couL << bil << "\n",'
return 0;
]
Akhir'Kode Sumber:
Hasil program di atas adalah seperti berikut:
illtliailikr
ios::skipws Mengabaikan spasi-putih pada pemasukan
data
E
l- Kode Sumbe7 (,++ i manip.cpp
#include <iosiream.h>
#include <iomanip.h>
int maj-n ( )
{
int. bi1 = 23;
char st[] = "Ha1o";
cout << bi1 << "\n';
cout << setw(4) << bi1 <<
cout << setw{S) << bi1 <<
return 0;
76 Algoritma Pemrograman Menqgunakan C ++
#include <iostream.h>
#include <iomanip.h>
int main ( )
{
double bil = 46'7856-6784532;
cout << bi1 << "\n";
cout << setiosflags ( ios: : fixed)
<< setw(15)
<< setprecision (2 )
<< bi1 << "\n",'
cout << setw(15)
<< setprecision (3 )
<< bi1 << "\nn'
cout << setw(15)
C dan C++
<< setprecision(5)
<< bil << "\nil'
cout << bi1 << " 1tr". / / Tetap berpresisi 5 digit pecahan
cout << set.iosflags ( ios: :scientific)
<< biL << "\n"'
return 0;
467 857
467 856 .68 Efek setpreci-sion (2 )
Operator
Ekspresi
a>b?1:0
Ekspresi di atas berarti 'Jika a lebih besar daripada b maka ekspresi
rnenghasilkan nilai 1, sedangkan kalau tidak maka ekspresi
menghasiikan nilai 0""
eqtotqn
Piibritas
I Unary minus
$Iri['i i'-
I
+ I Unary plus +1
{<
2 Perkalian 2*346
2*3.0t6.0
2 Pembagian 7 t2>3
1 t2.0 ) 3.s
7.012)3.s
o/
/o 2 Sisa 1%2+t
pembagian 8%3t2
8%2>0
+ J Penjumlahan 2+3>5
2+3.0t5.0
J Pengurangan 3 1)2
3-1.0)2"0
a Pemrograman Menggunakan C ++
:..:'
eqtoton -' Frioritas.: dalam operator menentukan urutan
pengerjaan :dalam 'satu eksPresi, Contoh, Pada
, ekspresi ,sePerti 2 +'3 " 4,.3
* 4 akan.,'dikerjakan
terlebih dulu.
Hasil ekspresi ditentukan oleh tipe operand' l-ebih
lanjut, lihatlah Subbab 4.10,
C dan C++ tidak mendukung' operator untuk
menanganl perpangkatan. Untukr,lmenangani
perpandtat"n, C Oan C++ menyediakan fung5i
b*riiut* pow(). Prototipe fungsi ini ada'Pada
berkas header math.h.
Pad; GNU/Linux, jika Anda menggunakan:.gcc
untuk,,mengompilasi program C yang melibatkan
iungai mat;naiika, Anda perlu menambahkah opsi '
Oerip, -lm,(huruf L kecit dan M kecil)' Contoh::
gCC :lmr,namapfog,C *O namaprog
t_
Berkasheadermath.hmenyediakanprototipesejumlahfungsi
yang terkait dengan operasi aritmetika' Tabel 4'11 mencantumkan
beberapa fungsi untuk operasi aritmetika'
Tabel 4.11 Sejumtah Jungsi aritmetika
trrtffii
sqrt(x) ffiaakarx Nilaibalik
bertipe double dan argumen juga bertipe double'
pow(x, y) ffirupa x)'. Nilai balik
bertipe double dan argumen juga bertipe double'
tan(x) Memberikan nilai balik berupa tangent x'
Argumen x beruPa nilai dalam satuan radians'
Nilai balik bertiPe double dan algumen juga
bertipe double
sin(x) Memberikan nilai balik berupa Sinus x Argumen x
berupa nilai dalam satuan radians' Nilai balik
bertipe double dan argumen juga bertipe double'
cos(x) Memberikan nilai balik berupa Cosinus x.
Argumen x beruPa nilai dalam satuan radians.
Nilai balik bertiPe double dan argumen juga
bertipe double.
Dasar Pemrograman C dan C++ 81
#include <stdio.h>
#include <math.h>
int. main ( )
i
double kecepatan, sudut, jarak;
kecepat.an = 32;
sudut = 40;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.L4 / 180) *
cos(suduL * 3.14 / 180) / 9.8;
print.f (".Tarak- = Zf " , jarak) ;
.
return O;
)
Akhir'Koda Sumber
Hasil program di atas adalah seperti berikut:
C: \progc>peluruJ
;a,al*,.,*3i$,?,1'Sl ;9di$*,:t i i=ii*i,1 +g.i,. i, r ti:,liLl,.'r
C: \progc>C: \progc>
E
l:
#include <iostream.h>
#incl-ude <math. h>
int main ( )
{
doubfe kecepatan, sudut, jarak;
kecepatan = 32;
sudut -- 40;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.14 / lBA\ *
cos(sudut x 3.L4 / LB1) / 9.8;
cout << "Jarak = 't << jarak,.
rallvn A,
Lebih dari
Kurang dari
Sama dengan
5>1 I (benar)
4<5 I (benar)
4 <:3 0 (salah)
'A'>'B' 0 (salah)
ii Operator "atau
Operator "bukan"
kar >= 'A' && kar <= 'Z' Hasil berupa benar hanya
kalau kar berupa huruf
kapital
kode == ,a, I I kode -= ,A' Hasil berupa benar kalau
kode berupa huruf a atau A
(kar == 'A') Hasil berupa benar kalau kar
tidak berupa huruf A
=3,S.fl.UqEii
++ Penaikan di belakang Tertinggi Kiri ke kanan
Penurunan di belakang
0 Pemanggilan fungsi
n Elemen array
Pointer ke anggota
strukfur atau kelas
Anggota struktur, union,
atau kelas
++ Penaikan di depan Kanan ke kiri
Penurunan di belakang
! Logika bukan
Operator komplemen bit
Tanda minus
+ Tanda plus
& Alamat
)k
Indirection
new Pengalokasian memori
delete Dealokasi memori
sizeof Ukuran tipe data
(tipe) Type casting
_: ((:
,&:, n:,
I
l-
Operator koma Terendah Kiri ke kanan
r_#
5+4
1. Jika salah saflt operand bertipe long double. maka yang lain
dikonversi ke long double.
2. Jika salah satu operand bertipe double, maka yang lain dikonversi ke
double.
3. Jika salah satu operand bertipe float, maka yang lain dikonversi ke
float.
4. Jika salah satu operand bertipe char, signed char, unsigned char,
atau unsigned short maka yang lain dikonversi ke int.
5. Tipe enumerasi akan dikonversikan ke int, unsigned int, long, atau
unsigned long dengan mengakomodasi jangkauan tipe enumerasi.
6. Jika salah satu operand bertipe unsigned long, maka yang lain
dikonversi ke unsigned long.
7. Jika salah satu operand bertipe long dan yang lain bertipe unsigned
int maka kedua operand dikonversi ke unsigned long.
8. Jika salah satu operand bertipe long, maka yang lain dikonversi ke
long.
Dasar Pemrograman C dan C++ 91
I;:
horgoTotol = horgoPerUnit - jumlo h;
Dikonversi dari
int ke float
#incfude <stdio.h>
int main ( )
{
char kar - 'A' ;
int nilai;
nilai = (int) kar;
printf ( "Nilai ASC]r Zc
return 0;
)
c: \progc>konversj-J
tl:i.Ue$l; s ntl najL, e5:+ €4 ,iiiiff*iii#+i. iiiri":i+;ti:i,:n::i:
C: \proqc>ec
Variabel peg
#incfude <stdio-h>
#include <string.h>
struct datajegawai
t
int nip;
char nama [25] ;
94 Algoritma Pemrograman Menggunakan C ++
{
struct data3egawai peg;
Peg.niP = 456'7;
strcpy(peg.nama, "Audi Febrianti" ) ;
peg.gaji = 1200000L;
,Akhir Kqde,
C: \progc>struct!
#include <iostream.h>
#include <slring.h>
struct data3egawai
{
int nip;
char nama[25];
long int gaji;
Dasar Pemrograman C dan C++ 95
i;
int main ( )
{
struct data3egawai peq;
Peg.niP = 4561;
strcpy(peg.nama, "Audi Febrianti" ) ;
peS.Saji = 1,200000L;
cout << "NIP : " << peg.nip << "\n";
cout << "Nama : " << peg.nama << "\n"i
couL << "Gaji : " << peg.gaji << "\n";
return 0,'
]
6ctoton
Penentu format menentukan tipe data yang akan dibaca. Kode-kode yang
dapat dipakai dalam penentu format dapat dilihat pada Tabel 4.19.
Tabel 4.19 Penentuformat pada scanf)
iu2.c
#include <stdio.h>
#include <math.h>
int main ( )
{
double kecepatan, sudut, jarak;
printf ( "Kecepatan: " ) ;
scanf ( "U 1f",
&kecepatan) ;
printf("Sudut : ");
scanf ('?1f", &sudut) ;
jarak = 2 * kecepatan * kecepatan *
sin(suduL x 3.14 / L8A) *
cos(sudut * 3.14 / 180) / 9.8;
Printf ("'farak = %f" , jarak) ;
return 0;
]
{
double kecepatan, sudut, jarak;
cout << "Kecepatan: ",'
cin >> kecepatan;
cout << "Sudut : ";
cin >> sudut;
jarak = 2 * kecepatan * kecepatan *
sin(sudut * 3.14 / I80) *
cos(sudut " 3.14 / LB]) / 9.8;
couL << ",Jarak = " << jarak << " \n" -
return 0;
]
eototc n
Dasar Pemrograman C dan C++ 101
E
l:
#include <stdio.h>
int main ( )
{
char nama[35];
printf("Nama Anda: ");
gets (nama) ;
return 0;
)
Pada C++, string juga dapat dibaca melalui cin. Contoh berikut
memperlihatkan program C++ yang setara dengan program
bacanama. c di depan:
102 Algoritma Pemrograman Mengqunakan C ++
Ei roa" sumbar
#include <iostream.h>
int main ( )
{
char nama [35] ;
Jawab:
Anda perlu menggunakan fungsi bemama strcmp0. Prototipenya ada
pada dua berkas header string.h.
Jawab:
Fungsi seperti itu sangat spesifik terhadap platform yang digunakan.
Pada Borland C, Anda dapat menggunakan getchQ dengan prototipe
pada conio.h.
Dasar Pemrograman C dan C++ 103
4.16 Soal
1. Manakah nama pengenal yang benar pada C dan C++:
a. Halo
b.h
c. nama bulan
d. semester-2
e. bungalrer bulan
f. 2bulan
2. Tipe data apa yang Anda perlukan jika Anda diminta untuk
menyimpan data berikut:
a. usia orang
b. sebuahhurufkapital
c. jumlah penduduk di Indonesia
3. Lrbahlah notasi matematika berikut ke dalam perrlyataan CIC++I
,-Lz
d. *'
a+b
e' ,Eit -i7
f. log"(a-b)2
b. oct
c. hex
d. setw
e. setfill
5. Buatlah program C atau C** untuk membaca dua buah bilangan
bulat dan kemudian menampilkan jumlah kedua bilangan tersebut.
6. Buatlah program C atau C++ yang membaca dua buah data jam dan
kemudian menghitung selisih kedua jam tersebut. Bentuk dialognya
adalah seperti berikut:
Jam 1:
Menit 1:
Jam2:
Menit 2:
Selisih kedua jam tersebut: .. menit