Setiap variabel dalam bahasa C++ dideklarasikan dengan tipe data sesuai nilai yang akan diberikan. Masing-masing tipe data punya struktur, ukuran dan rentang nilai yang berbeda-beda.
Tipe Data Dasar
Di antara beberapa tipe data yang ada, ada tipe data yang disebut tipe data dasar. Tipe data dasar dapat digunakan untuk menyimpan satu nilai dengan rentang tertentu. Tipe data dasar bisa menyimpan angka dan karakter. Jika nilai yang diberikan pada variabel tidak sesuai ukuran dan rentang nilai tipe data, maka nilainya bisa jadi sesuai dengan keinginan kita.
Berikut ini adalah tipe data dasar yang ada dalam bahasa C++.
- Tipe data Boolean : bool
- Tipe data Character : char
- Tipe data Integer : int, short, long, long long
- Tipe data pecahan desimal : float, double, long double
- Tipe Data Valueless (void)
Tipe data Bentukan
Tipe data yang merupakan gabungan atau pengembangan dari tipe data dasar disebut dengan tipe data bentukan. Tipe data bentukan dalam bahasa C bisa kalian lihat di bawah ini.
- Tipe data struct
- Tipe data Union
- Tipe data Array
- Tipe data string
- Tipe data enumerasi
- Tipe Data Valueless (void)
Tiap tipe data dasar punya versi signed dan unsigned. Penambahan signed dan unsigned tidak mengubah ukuran suatu tipe data. Walaupun tidak mengubah ukuran nilainya dalam byte, signed dan unsigned akan mempengaruhi awal dan akhir dari nilai yang bisa diberikan.
Unsigned hanya akan menerima nilai positif, dan tidak bisa menyimpan angka negatif. Dengan kata lain, tipe unsigned dimulai dari 0 dengan nilai akhir sekitar 2 kali lipat dari nilai positif versi signed-nya, walaupun rentang nilainya tetap sama karena tidak ada nilai negatif.
Berbeda dengan unsigned, signed dimulai dari bilangan negatif. Contohnya, signed char dan unsigned char sama-sama berukuran 1 byte, walaupun nilai awal dan akhirnya berbeda. Secara default, seharusnya semua tipe data dasar akan bertipe signed.
Tipe data | Ukuran (byte) | Rentang nilai |
---|---|---|
short int | 2 | -32,768 .. 32,767 |
unsigned short int | 2 | 0 .. 65,535 |
unsigned int | 4 | 0 .. 4,294,967,295 |
int | 4 | -2,147,483,648 .. 2,147,483,647 |
long int | 4 | -2,147,483,648 to 2,147,483,647 |
unsigned long int | 4 | 0 to 4,294,967,295 |
long long int | 8 | -(2^63)..(2^63)-1 |
unsigned long long int | 8 | 0..18,446,744,073,709,551,615 |
signed char | 1 | -128..127 |
unsigned char | 1 | 0..255 |
Float | 4 | |
double | 8 | |
long double | 12 |
Saat menggunakan cout, output akan sesuai dengan tipe data yang digunakan. Ini berbeda dengan printf yang mencetak nilai sesuai dengan "format specifier" yang diberikan. Kalian tidak perlu memusingkan penggunaan format specifier jika kalian lebih tertarik untuk menggunakan cout. Untuk mengakali output dari cout kalian perlu mempelajari tentang type casting yang akan saya bahas lain kali.
Mendeklarasikan Tipe Data Baru dengan Typedef
#include <iostream>
typedef char stringku[256];
int main(){
stringku kalimat1="Halo";
stringku kalimat2="dunia";
std::cout << kalimat1 << kalimat2;
return 0;
}
Halodunia
Setelah tipe data baru dibuat, kita bisa menggunakan tipe data buatan kita di dalam deklarasi variabel. Pada contoh di atas, kata adalah tipe data bentukan kita sendiri yang berasal dari array dengan tipe data char.
Auto
Auto adalah keyword C++ yang secara otomatis memperkirakan tipe data saat runtime ( saat program dijalankan). Itu menggunakan nilai yang diberikan pertama kali untuk menentukan tipe data variabel.
Contoh :
#include <iostream>
using namespace std;
int main() {
auto x = 5;
auto y = 3;
auto z = x + y;
cout << z << endl;
}