Tipe-tipe Data di Dalam Pemrograman C++

Bahasa C++ adalah bahasa pemrograman awal yang biasa dipelajari di sekolah menengah dan perguruan tinggi. Dalam pemrograman C++, ada beberapa tipe data yang biasa dipakai dan terdapat di dalamnya. Tipe-tipe data tersebut adalah numerikal, karakter, logika, string, dan enumerasi. Kelima tipe data tersebut adalah data-data yang bisa dipakai di dalam bahasa C++.

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.

Tipe-tipe Data di Dalam Pemrograman C++

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)
Contoh penggunaan dalam program C++ beberapa tipe data diatas, dapat dilihat pada source code berikut.
#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
Contoh penggunaan dari tipe di atas adalah sebagai berikut.
#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 tipe bool 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 kelas string. 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 kunci enum.

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