My Melody Crying Ayra blog: Bab 3 konsep tipe data
Stay in touch
Subscribe to our RSS!
Oh c'mon
Bookmark us!
Have a question?
Get an answer!

Bab 3 konsep tipe data

0 Comments

BAB 3
Konsep Tipe Data

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;
21 }
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       }

0 Comments: