BAB 3
Bahasa Pemrograman C++
TIPE DATA
1. Tipe data Sederhana
Tipe data yang umum digunakan dalam
bahasa pemrograman C++ diataranya adalah :
a.
Tipe data angka
Untuk tipe data data angka memiliki nilai dan panjang field yang
berbeda
-
Integer (int) : “merupakan tipe data yang
digunakan untk meyimpan nilai dengan bilangan bulat positif tanpa titik decimal
pada bilangan tersebut, misalnya 1, 2, 3 ... dst”
1.
Dengan nilai konstata misalnya
Int x = 5;
2.
Dengan data inputan
int x ;
-
Floating point : “Merupakan tipe data
yang digunakan untuk menyimpan data angka dengan nilai pecahan misalnya 27.72;
54.36 dst” namun pada floating point kita dapat mengenal macammacamnya dan
mengetahui panjang field yang tersimpan pada masing-masing tipe datanya
-
Tpe data floating point terbagi atas :
1.
Float : “merupakan tipe data yang
menyimpan nilai pecahan penyimpanan data 4-8 bytes”
2.
Double dan long : “merupakan tipe data
yang menyimpan nilai 8 byte”.
Cara mendeklarasikannya yaitu :
1. Dengan
nilai konstan float x = 3.12; double x = 3.122222;
2. Dengan
nilai inputan float x; doubel x;
b.
Tipe data karakter : “merupakan tipe data
yang digunakan untuk menyimpan nilai karakter (1 buah huruf)” Cara
mendeklarasikannya adalah : char nilai = ‘A’;
c.
Tipe data string : “merupakan tipe data
yang menyimpan nilai dari gabungan beberapa karakter”
Cara mendeklarasikannya adalah :
char Kota (10);
SUPLEMEN
MENGENAL PEMROGRAMAN C++
Secara ringkas, struktur bahasa C++ dapat
terdiri dari:
1.
Header
2.
Program utama
-
deklarasi label
-
definisi konstanta - definisi tipe
-
deklarasi variabel
-
deklarasi prosedur
-
deklarasi fungsi
3. Bagian
Pernyataan (statetement program/baris perintah)
#incluede <iostream>{ Header
using manespace std : standar C++}
int main () {penanda program utama}
{
} tempat intruksi/perintah
}
a.
Deklarasi variabel
Untuk
membuat variabel/pengenal/indentifier pada yaitu dengan menuliskan nama
variabel dan tipe datanya pada bagian deklarasi
variabel
Format penulisan: [tipe_data nama_identifier ; ] contoh :
int i = 1; char nama[10];
bool Jenis_kelamin=true; float Luas,Panjang,Lebar;
double luas;
b.
Operator Aritmatika
Operator aritmatik yang dipakai dalam C++
adalah :
+
tambah
- kurang
* kali
/ bagi
%
modulus
Operator-operator di atas dikenal sebagai
binary operators artinya operator-operator ini memerlukan dua operan. Operator
+, -, * dan / telah jelas artinya, yang perlu dijelaskan adalah operator
modulus (%), operator ini dipakai untuk mencari sisa dan pembagian antar
bilangan bulat, misalnya 20 % 8 menghasilkan 4 karena sisa pembagian dari 20
dibagi 8 adalah 4. Operator + dan – dapat dipakai sebagai unary operator,
artinya operator-operator ini hanya
memerlukan satu operan saja. Suatu variabel dapat dinyatakan positip atau
negatip dengan unary operator + atau -, misalnya:
a = -25; b = +25; c =
-a+b; .
Suatu ekpresi dapat mengandung lebih dari
satu jenis operator, C++ mengartikannya berdasar order of precedence dari
operator-operator tersebut. Order of precedence dari operator menunjukkan
hirarki matematis dari suatu operator misalnya:
2 + 3 * 2;
C++ akan menghitung 3*2 dulu karena
operator kali (*) hirarkinya lebih tinggi dari operator + sehingga ekpresi di
atas hasilnya adalah 8, bukan 10. Untuk operator aritmatik order of precedence-nya
yang tinggi adalah kali (*), bagi (/) dan modulus (%) sedang yang rendah adalah
tambah (+) dan kurang (-),Jadi C++ selalu melakukan kali, bagi dan modulus lalu
diikuti tambah dan kurang. Operator-operator dalam C++ terdistribusi dalam 15
hirarki precedence yang dapat dilihat pada tabel di bawah ini.
Tabel Precedence dari Operator dalam C++
Precedence Level
|
Symbol
|
Description
|
Associativity
|
|
|
1
|
++
|
Prefex increment
|
Left to right
|
|
–
|
Prefex decrement
|
|
()
|
Function call and subexpression
|
|
[]
|
Array subscript
|
|
->
|
Structure pointer
|
|
.
|
Structure member
|
|
2
|
!
|
Logical negation
|
Right to left
|
|
~
|
1’s complement
|
|
-
|
Unary negation
|
|
+
|
Unary plus
|
|
(type)
|
Type cast
|
|
*
|
Pointer deference
|
|
&
|
Address of
|
|
Sizeof
|
Size of
|
|
3
|
*
|
Multiplication
|
Left to right
|
|
/
|
Division
|
|
%
|
Modulus
|
|
4
|
+
|
Addtion
|
Left to right
|
|
-
|
Subtraction
|
|
5
|
<<
|
Bitwise left shift
|
Left to right
|
|
>>
|
Bitwise right right shift
|
|
6
|
<
|
Less than
|
Left to right
|
|
<=
|
Less than or equal to
|
|
>
|
Greater than
|
|
>=
|
Greater than or equal
|
|
|
|
to
|
|
|
7
|
==
|
Equal test
|
Left to right
|
|
!=
|
Not equal to
|
|
8
|
&
|
Bitwise AND
|
Left to right
|
|
Precedence Level
|
Symbol
|
Description
|
Associativity
|
|
|
9
|
^
|
Bitwise exclusive OR
|
Left to right
|
|
10
|
|
|
Bitwise inclusive OR
|
Left to right
|
|
11
|
&&
|
Logical AND
|
Left to right
|
|
12
|
||
|
Logical inclusive OR
|
Left to right
|
|
13
|
?:
|
Conditional test
|
Left to right
|
|
14
|
=
|
Assigment
|
Left to right
|
|
+=
|
Compound add
|
|
-=
|
Compound substract
|
|
*=
|
Compound multiply
|
|
/=
|
Compound divide
|
|
%=
|
Compound modulus
|
|
<<=
|
Compound bitwise left shift
|
|
>>=
|
Compound bitwise
right shift
|
|
&=
|
Compound bitwise AND
|
|
^=
|
Compound bitwise exclusive OR
|
|
|=
|
Compound bitwise inclusive OR
|
|
15
|
,
|
Sequence point
|
Left to right
|
|
++
|
Postfix increment
|
|
–
|
Postfix decrement
|
|
Berdasar table of precedence di atas
assignment berlipat banyak dapat dimengerti dengan mudah, misalnya :
A = b = c = d = e = 100;
dalam hal ini
assosiativitasnya adalah dari kanan ke kin, jadi 100 dipasangkan di variabel e,
lalu dari variabel e ke variabel
d demikian seterusnya sampai
akhirnya n, sehingga setelah selesai
dieksekusi variabel-variabel a, b, c, d, e mempunyai nilai 100. Bahkan kita
dapat menulis ekpresi sebagai berikut :
x = 5 + (y = 9 – z);
Order
of precedence dari operator dapat di bypass dengan tanda kurung,karena
tingkatan precedence dari tanda kurung adalah di atas operator kali, bagi dan
modulus sehingga ekpresi tadijika ditulis (2+3)*2 akan menghasilkan 10. Contoh
lain adalah :
Contoh program berikut ini menjelaskan
pemakaian tanda kurung untuk mencari rata-rata:
1
|
//C1_2.CPP
|
2
|
#include
<iostream>
|
3
|
#include
<iomanip>
|
4 5
|
Using
namespace std;
|
6
|
main()
|
7
|
{
|
8
|
float
nilai_1, nilai_2, nilai_3, rata2;
|
9
|
nilai_1 = 85.0;
|
10
|
nilai_2 = 80.0;
|
11 12
|
nilai_3 = 75.0;
|
13
|
// rata2 =
nilai_1 + nilai_2 + nilai_3 /
3.0;
|
14
|
/*
Perhatikan tanda kurung diperlukan untuk mengubah
|
15
|
order of
precedence supaya rata-ratanya benar */
|
16
|
rata2 = (nilai_1 + nilai_2 + nilai_3)
/ 3.0;
|
17
|
cout << “Rata-rata nilai adalah : ” <<
setprecision(2)
<< rata2;
|
18
|
return 0;
|
19
|
}
|
|
|
|
Operator-operator aritmatik ini dapat
digabungkan untuk membentuk operator gabungan (compound operator). Dari tabel
of precedence tampak bahwa tingkatan precedence dari operator gabungan ini
rendah sehingga pada suatu ekpresi yang mengandung banyak operator, operator
gabungan ini pada umumnya dievaluasi pada saat-saat akhir. Contoh pemakaian
operator gabungan:
Operator
|
Contoh
|
Ekivalen
|
+=
|
bonus += 500;
|
bonus = bonus + 500;
|
-=
|
budget -= 50;
|
budget = budget •- 50;
|
*=
|
gaji *= 1.2;
|
gaji=gaji * 1.2;
|
/=
|
faktor/= 50;
|
faktor= faktor/.50;
|
%=
|
jml_hari %=7;
|
jml_hari =jml_hari % 7;
|
Contoh program berikut ini akan
memperjelas pengertian mengenai operator gabungan dan tingkatan precedence nya.
1
|
//
C2_2.CPP
|
2
|
#include
<iostream>
|
3 4
|
using
namespace std;
|
5
|
main()
|
6
|
{
|
7
|
int i
= 4;
|
8
|
int j
= 8;
|
9
|
int k = 12;
|
10
|
int jwb;
|
11
|
jwb = i + j;
|
12
|
cout << jwb << " n
"; //12
|
13
|
jwb += k;
|
14
|
cout << jwb << " n
"; //24
|
15
|
jwb /= 3;
|
16
|
cout << jwb << " n
"; //8
|
17
|
jwb -= 5;
|
18
|
cout << jwb << " n
"; //3
|
19
|
jwb *= 2;
|
20
|
cout << jwb << " n
"; //6
|
21
|
jwb %= 4;
|
22 23
|
cout << jwb << " n
"; //2
|
24
|
jwb *= 5+3;
|
25
|
cout << jwb << " n
"; //16
|
26
|
jwb += 4-2;
|
27
|
cout << jwb << " n
"; //18
|
28
|
return 0;
|
29
|
}
|
Pada suatu ekpresi dalam C++ tipe data tidak harus sama.
Kalau suatu bilangan bulat ditambah dengan suatu bilangan pecahan maka C++ akan
mengkonversi tipe yang lebih kecil ke tipe yang lebih besar. Konversi ini, yang
hanya bersifat sementara pada saat ekpresi dievalusi saja, pada umumnya akan
memberikan hasil yang lebih teliti. Jika konversi dilakukan sebaliknya maka
terjadi pemotongan pada tipe data yang lebih besar sehingga mengurangi
ketelitian. Konversi yang bersifat otomatis ini dapat di bypass dengan type
casting, yaitu kita memaksa compiler untuk mengkonversi menjadi tipe data yang
kita inginkan. Tipe data yang di type cast ini berubah menjadi tipe baru hanya
pada saat ekpresi dievaluasi, jadi sifatnya sementara. Format dari suatu type
cast adalah: (tipe data) ekspresi
dalam hal ini tipe data adalah tipe data yang ada di C++,
dan ekspresi dapat berupa variabel,
konstanta atau kombinasinya. Program berikut ini memakai suatu type cast untuk
menghitung bunga pinjaman.
1
|
#include
<iostream>
|
2 3
|
#include
<iomanip>
|
4 5
|
using
namespace std;
|
6
|
main
()
|
7
|
{
|
8
|
int jml_hari =45;
|
9
|
float
jml_pinjaman = 2000000.00;
|
10
|
float bunga_tahunan = 0.155;
|
11 12
|
float
bunga_harian, bunga_pinjaman;
|
13
|
// Type cast jumlah hari dalam 1 tahun
menjadi tipe float
|
14
|
bunga_harian
= bunga_tahunan / (float)365;
|
15
|
//Karena
jml_hari adalah integer, konversikan menjadi float
|
16
|
bunga_pinjaman
=jml_pinjaman * bunga_harian
*
(float)jml_hari;
|
17
|
jml_pinjaman += bunga_pinjaman;
|
18
|
cout << "Total piutang anda
adalah "<< setiosflags(ios::fixed) << setprecision(2)
<<
|
19
|
jml_pinjaman;
|
20
|
return 0;
|
c.
Operator pemberi nilai (assignment operator) Menggunakan
sintax : “ = “ (dua sama dengan) contoh:
LUAS = PANJANG * LEBAR
(hasil perkalian PANJANG * LEBAR dimasukan kedalam variabel LUAS)
d. Pernyataan
masukan dan keluaran
CIN
Digunakan untuk meminta masukan dari papan ketik untuk
diolah computer.
CIN >> nama; à memasukan
nilai ke variabel
COUT
Digunakan untuk menampilkan data ke layar.
COUT << “Halo”; menampilkan string halo
COUT << nama; menampilkan isi variable nama.
Untuk pindah baris dibawahnya dapat digunakan “\n”
Contoh Program :
1
2
|
#include
<iostream>
|
3
4
|
using
namespace std;
|
5
|
int
main()
|
6
|
{
|
7
|
char x;
|
8
|
char i[20],j[20],k[20],l[20];
|
9
|
float nilai1, nilai2;
|
10
|
int hasil;
|
11
|
double hasil1;
|
12
13
|
float hasil2;
|
14
|
cout << "Inputkan nilai 1 :
";
|
15
|
cin >> nilai1;
|
16
|
cout << "Inputkan Nilai 2 :
";
|
17
cin
>> nilai2;
18
cout
<< "Inputkan sebuah huruf : ";
19
cin
>> x;
20
cout
<< "Inputkan Nama Anda : ";
21
cin
>> i;
22
cout
<< "Masukkan Kelas anda : ";
23
cin
>> j;
24
cout
<< "Masukkan No.Telp/HP Anda : ";
25
cin
>> k;
26
cout
<< " Masukkan Alamat Anda : ";
27
cin
>> l;
28
//memproses perkalian, penjumlahan dan pengurangan
29
hasil
= nilai1 * nilai2;
30
hasil1
= nilai1 + nilai2;
31
hasil2
= nilai1-nilai2;
32
//mencetak hasil operator matematika 33 cout << "Hasil perkalian adalah : " <<
hasil << "\n";
34
cout << "Hasil penjumlahan adalah : " <<
hasil1 << "\n";
35
cout << "Hasil Pengurangan adalah : " <<
hasil2 << "\n";
36
return
0;
37 }
|