Antara tipe data yang satu dengan lainnya memiliki ciri khas masing-masing. Kita tidak bisa menggunakan data tersebut sembarangan, atau memasukkan nilai ke dalam data sekehendak kita. Ada beberapa hal yang harus anda mengerti terkait dengan tipe-tipe data diatas. Mari kita simak penjelasannya di bawah ini.
A. Tipe Data Numerik (Bilangan)
Bahasa Pemrograman C++ mendukung beberapa tipe data untuk keperluan penyimpanan data numerik. Data numerik yang dapat digunakan meliputi bilangan bulat, bilangan riil, dan bilangan kompleks. Mari kita bahas satu-persatu tipe data tersebut.1. Bilangan Bulat
Bilangan bulat adalah bilangan yang terdiri dari bilangan cacah (0, 1, 2, 3, ...) dan negatifnya (-1, -2, -3, ...). Mari kita simak tabel di bawah ini yang menunjukkan tipe bilangan bulat yang didukung oleh C++.
Tipe
data
|
Ukuran
|
Rentang
Nilai
|
char
|
1 byte
|
-128 s/d 127 atau 0
s/d 255
|
unsigned char
|
1 byte
|
0 s/d 255
|
wchar_t
|
2 byte
|
0 s/d 65.535
|
signed char
|
1 byte
|
-128 s/d 127
|
int
|
2 atau 4 byte
|
-32.768 s/d 32.767
atau
-2.147.483.648 s/d
2.147.483.647
|
unsigned int
|
2 atau 4 byte
|
0 s/d 65.535 atau 0
s/d 4.294.967.295
|
short
|
2 byte
|
-32.768 s/d 32.767
|
unsigned short
|
2 byte
|
0 s/d 65.535
|
long
|
4 byte
|
-2.147.483.648 s/d
2.147.483.647
|
unsigned long
|
4 byte
|
0 s/d 4.294.967.295
|
long long
|
8 byte
|
-263 s/d 263-1
(-9.223.372.036.854.775.808
s/d 9.223.372.036.854.775)
|
unsigned long long
|
8 byte
|
0 s/d 264-1
(0 s/d
18.446.744.073.709.551.615)
|
#include <iostream>
#include <climits>
#include <conio.h>
using namespace std;
int main() {
char c1;
unsigned char c2;
int i1;
unsigned int i2;
cout<<"Tipe Char: "<<endl;
cout<<"Nilai Minimum: "<<CHAR_MIN<<endl;
cout<<"Nilai Maksimum: "<<CHAR_MAX<<endl;
cout<<"Ukuran: "<<(int) sizeof(c1)<<" byte";
cout<<endl<<endl;
cout<<"Tipe Unsigned Char: "<<endl;
cout<<"Nilai Minimum: 0"<<endl;
cout<<"Nilai Maksimum: "<<UCHAR_MAX<<endl;
cout<<"Ukuran: "<<(int) sizeof(c2)<<" byte";
cout<<endl<<endl;
cout<<"Tipe Int: "<<endl;
cout<<"Nilai Minimum: "<<INT_MIN<<endl;
cout<<"Nilai Maksimum: "<<INT_MAX<<endl;
cout<<"Ukuran: "<<(int) sizeof(i1)<<" byte";
cout<<endl<<endl;
cout<<"Tipe Unsigned Int: "<<endl;
cout<<"Nilai Minimum: 0"<<endl;
cout<<"Nilai Maksimum: "<<UINT_MAX<<endl;
cout<<"Ukuran: "<<(int) sizeof(i2)<<" byte";
cout<<endl<<endl;
getch();
}
Hasil program:
Tipe Char:
Nilai Minimum: -128
Nilai Maksimum: 127
Ukuran: 1 byte
Tipe Unsigned Char:
Nilai Minimum: 0
Nilai Maksimum: 255
Ukuran: 1 byte
Tipe Int:
Nilai Minimum: -2147483648
Nilai Maksimum: 2147483647
Ukuran: 4 byte
Tipe Unsigned Int:
Nilai Minimum: 0
Nilai Maksimum: 4294967295
Ukuran: 4 byte
Konstanta
CHAR_MIN
, CHAR_MAX
, UCHAR_MAX
, dll merupakan konstanta yang didefinisikan oleh file header <climits>
. Konstanta-konstanta tersebut berguna untuk menunjukkan batas nilai minimum dan maksimum suatu tipe data.Baca juga: Berkenalan dengan "Flat Design" yang Sedang Populer
Ketika kita memasukkan nilai yang lebih besar dari rentang nilai maksimum kedalam suatu variabel dengan tipe tertentu, maka nilai tersebut akan dikembalikan lagi ke nilai minimum. Sebagai contoh, rentang nilai untuk tipe data char adalah dari -128 sampai 127. Jika kita memasukkan nilai 130 misalnya, maka nilai tersebut otomatis akan diubah menjadi -126.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
char c;
c=128;
cout<<"Nilai 128 diubah menjadi: "<<(int) c<<endl;
c=129;
cout<<"Nilai 129 diubah menjadi: "<<(int) c<<endl;
c=130;
cout<<"Nilai 130 diubah menjadi: "<<(int) c<<endl;
getch();
}
Hasil program:Nilai 128 diubah menjadi: -128
Nilai 129 diubah menjadi: -127
Nilai 130 diubah menjadi: -126
Jika kita menyertakan file header
<cstdint>
, maka kita juga dapat menggunakan tipe-tipe data berikut untuk merepresentasikan nilai bilangan bulat.
Tipe
data
|
Ukuran
|
Rentang
Nilai
|
int8_t
|
1 byte
|
-128 s/d 127
|
uint8_t
|
1 byte
|
0 s/d 255
|
int16_t
|
2 byte
|
-32.768 s/d 32.767
|
uint16_t
|
2 byte
|
0 s/d 65.535
|
int32_t
|
4 byte
|
-2.147.483.648 s/d
2.147.483.647
|
uint32_t
|
4 byte
|
0 s/d 4.294.967.295
|
int64_t
|
8 byte
|
-9.223.372.036.854.775.808
s/d 9.223.372.036.854.775
|
uint32_t
|
8 byte
|
0 s/d
18.446.744.073.709.551.615
|
2. Bilangan Riil
Untuk merepresentasikan data bertipe bilangan riil (mengandung angka di belakang koma), C++ menyediakan tipe float, double, dan complex. Pada bagian ini kita hanya akan membahas tipe float dan double, sedangkan untuk tipe complex akan ada pembahasan tersendiri.
Ukuran dan rentang nilai dari tipe data float dan double dapat dilihat pada tabel di bawah ini.
Tipe
data
|
Ukuran
|
Rentang
Nilai
|
float
|
4 byte
|
-1,2E-38 s/d 3,4E+38
|
double
|
8 byte
|
2,3E-308 s/d 1,7E+308
|
long double
|
10 byte
|
3,4E-4932 s/d
1,1E+4932
|
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
float PI=3.14159;
float r=3.0;
double luas = PI*r*r;
cout<<"Luas lingkaran= "<<luas;
getch();
}
Hasil program:
Luas lingkaran= 28.2743
3. Bilangan Kompleks
Bilangan kompleks direpresentasikan dengan tipe complex. Tipe ini didefinisikan pada file header
<complex>
. Bilangan kompleks adalah bilangan yang mengandung pasangan bilangan dari tipe float atau double. Bagian pertama merupakan bagian riil dan bagian kedua adalah bagian imajiner. Dalam C++, bilangan kompleks ditulis sebagai berikut:(-89.5, 2.125)
Pada contoh diatas, -89.5 disebut bagian riil, dan 2.125 disebut bagian imajiner. Bagian riil dapat diambil menggunakan
real
dan bagian imajiner diambil menggunakan atribut imag
, seperti berikut:#include <iostream>
#include <complex>
#include <conio.h>
using namespace std;
int main() {
complex<double> a(-89.5, 2.125);
cout<<"Bagian riil: "<<real(a)<<endl;
cout<<"Bagian imajiner: "<<imag(a)<<endl;
getch();
}
Hasil program:Bagian riil: -89.5
Bagian imajiner: 2.125
B. Tipe Data Karakter
Dalam C++, tipe karakter direpresentasikan menggunakan tipe char. Variabel yang dideklarasikan menggunakan tipe ini dapat diisi bilangan bulat maupun karakter. Bilangan bulat yang diperbolehkan hanyalah bilangan bulat yang merupakan kode ASCII. Sebagai contoh, jika c adalah variabel bertipe char, maka kita dapat menulis kode seperti berikut:C=65; //memasukkan kode ASCII 65
Atau
C=’A’ // memasukkan karakter ‘A’
Baca juga : Free download program c++: BMI Calculator
C. Tipe Data Logika
C++ menyediakan tipebool
yang menyatakan tipe logika (boolean). Nilai yang dapat diisikan ke dalam variabel bertipe bool
adalah true atau false.
Bool found=false;
While (!found) {
//lakukan sesuatu
}
C++ juga mengizinkan kita untuk memasukkan nilai bilangan bulat ke dalam variabel bool. Nilai 0 berati false, dan nilai selain 0 (biasanya 1) berarti true.
Bool b=1; //sama dengan: bool b=true;
String s=b?”true” : “false”;
Cout<<s;
D. Tipe Data String
Dalam C++, teks (string) direpresentasikan menggunakan kelasstring
. Objek string dapat dibentuk menggunakan cara berikut.#include <iostream>
#include <conio.h>
using namespace std;
int main() {
string s;
s="C++";
cout<<s;
getch();
}
Inisialisasi string dapat dilakukan menggunakan cara berikut:string s = “C++”;
Atau
string s(“C++”);
E. Tipe Data Enumerasi
Tipe enumerasi adalah tipe data bentukan yang daftar nilainya dapat didefinisikan sendiri. Sebagai contoh, tipe jenis kelamin memiliki dua nilai yaitu pria dan wanita. Kita dapat menyatakan tipe jenis kelamin ke dalam suatu enumerasi. Dalam C++, enumerasi dibuat menggunakan kata kuncienum
.enum NamaTipe {Nilai1, Nilai2, Nilai3, ...};
Contoh pembuatan tipe enumerasi dapat dilihat pada kode dibawah ini.
enum JenisKelamin {pria, wanita};
Nilai pria akan memiliki nilai ordinal 0 dan wanita akan memiliki nilai ordinal 1. Jika kita ingin mengubah nilai ordinal untuk nilai-nilai tersebut, gunakan kode berikut:
enum JenisKelamin {pria=1, wanita=2};
Kali ini, nilai ordinal pria adalah 1 dan wanita 2.
Setelah tipe enumerasi didefinisikan, kita dapat menggunakan tipe tersebut untuk mendeklarasikan variabel, misalnya seperti berikut:
JenisKelamin gender
;Untuk mengisi nilai ke dalam variabel terebut, gunakan kode berikut:
gender = pria; //atau: gender=wanita;
Berikut ini contoh kode yang menunjukkan pembuatan dan penggunaan tipe enumerasi.
#include <iostream>
#include <conio.h>
using namespace std;
enum JenisKelamin {pria,wanita};
int main() {
string name = "Dewi Sinta";
JenisKelamin gender=wanita;
cout<<name<<endl;
string sGender=(gender==pria)?"Pria" : "Wanita";
cout<<sGender;
getch();
}
Hasil program:Dewi Sinta
Wanita