Pemrograman Komputer (C++): Tipe Data dan Operator
Mengenal Tipe Data dan Operator pada C++
2.1 TIPE DATA PADA C++
Seperti yang terlihat pada contoh program C++ sebelumnya, ketika kita mendeklarasikan sebuah variable dan fungsi, selain nama varibel kita juga harus memberikan tipe data dari variable atau fungsi tersebut sehingga compiler mengetahui tipe data yang digunakan.
Tipe data mendefinisikan ukuran dan rentang nilai yang dapat disimpan pada sebuah variable atau konstanta, atau nilai yang dapat dihasilkan oleh sebuah fungsi. Selain itu tipe data juga menentukan operasi yang dapat dilakukan terhadap data tersebut.
Tipe data digunakan untuk membatasi nilai suatu variable sehingga pemakaian memori yang terbatas dapat lebih efisien. Terdapat empat tipe dasar pada pemprograman C++, yaitu (1) bilangan bulat, (2) bilangan pecahan, (3) logika dan (4) karakter/string.
Tabel di bawah ini menunjukan tipe data pada C++ berikut ukuran memori dan rentang nilainya.
C/C++ | Ukuran | Rentang Nilai |
Tipe data karakter | ||
char | 1 byte | -128 s/d 127 |
unsigned char | 1 byte | 0 s/d 255 |
wchar_t | 2 byte | 0 s/d 65,535 |
Tipe data logika | ||
bool | 1 byte | True or False |
Tipe data bilangan bulat | ||
short | 2 byte | -32,768 s/d 32,768 |
unsigned short | 2 byte | 0 s/d 65,535 |
int | 4 byte* | -2,147,483,648 s/d 2,147,483,6487 |
unsigned int | 4 byte* | 0 s/d 4,294,967,295 |
long | 4 byte | -2,147,483,648 s/d 2,147,483,6487 |
unsigned long | 4 byte | 0 s/d 4,294,967,295 |
enum | 4 byte* | -2,147,483,648 s/d 2,147,483,6487 |
long long | 8 byte | -9,223,372,036,854,775,808 s/d 9,223,372,036,854,775,807 |
unsigned long long | 8 byte | 0 s/d 18,446,744,073,709,551,615 |
Tipe data bilangan pecahan | ||
float | 4 byte | 3.4E-38 s/d 3.4E+38 (7 digit) |
double | 8 byte | 1.7E-308 s/d 1.7E+308 (15 digit) |
long double | 10 byte | 1.2E-4932 s/d 1.2E+4932 (19 digit) |
Tipe tanpa tipe data (tidak memilki nilai) | ||
void | 0 | Tidak ada nilai |
*
Contoh Program menggunakan tipe data dan menampilkan nilainya.
main.cpp | |
#include <iostream> using namespace std; void tipedata(); int main() { tipedata(); return 0; } void tipedata() { char chr_nilai = 48; int int_nilai = 48; float phi = 3.14, rasio = -0.898989; unsigned int uint_nilai = 42; int neg_nilai = -90; bool val = true; cout << “tampilkan nilai character (chr) ” << chr_nilai << endl; cout << “tampilkan nilai integer (int) ” << int_nilai << endl; cout << “tampilkan nilai float positif(float) ” << phi << endl; cout << “tampilkan nilai float negatif(float) ” << rasio << endl; cout << “tampilkan nilai integer positif(u int) ” << uint_nilai << endl; cout << “tampilkan nilai integer negatif(chr) ” << neg_nilai << endl; } |
Berikut tampilan ketika program di atas dijalankan

2.2 OPERATOR PADA C++
Seperti yang terlihat pada contoh program C++ sebelumnya, ketika kita mendeklarasikan sebuah variable dan fungsi, selain nama varibel kita juga harus memberikan tipe data dari variable atau fungsi tersebut sehingga compiler mengetahui tipe data yang digunakan. Tipe data mendefinisikan ukuran dan rentang nilai yang dapat disimpan pada sebuah variable atau konstanta, atau nilai yang dapat dihasilkan oleh sebuah fungsi. Selain itu tipe data juga menentukan operasi yang dapat dilakukan terhadap data tersebut.
2.2.1 Operator Aritmatika
Operator | Keterangan | Contoh |
+ | Penjumlahan | 4 + 6 = 10 |
– | Pengurangan | 7 – 3 = 4 |
* | Perkalian | 2 * 3 = 6 |
/ | Pembagian | 6 / 2 = 3 |
% | Modulus (sisa hasil bagi) | 8 % 3 = 2 |
Contoh program operasi aritmatika pada C/C++
main.cpp |
#include <iostream> using namespace std; #define PHI 3.14 void lingkaran() { float diameter = 0; float luas_lingkaran = 0, keliling_lingkaran = 0; cout << “masukkan diameter lingkaran (cm) “; cin >> diameter; cout << endl; luas_lingkaran = PHI * (diameter/2) * (diameter/2); keliling_lingkaran = PHI * diameter; cout << “Luas Lingkaran = ” << luas_lingkaran << ” cm2″ << endl; cout << “Keliling Lingaran = ” << keliling_lingkaran << ” cm” << endl; } int main() { cout << “Program Menghitung Luas dan Keliling Lingkaran” << endl; lingkaran(); return 0; } |
Berikut tampilan ketika program di atas dijalankan

2.2.2 Operator Penugasan
Operator | Keterangan | Contoh | Equivalen |
= | Penugasan/Assigment | A = 10 | |
+= | Penjumlahan | Jumlah += 1 | Jumlah = Jumlah + 1 |
-= | Pengurangan | Kurang -= 5 | Kurang = Kurang – 1 |
*= | Perkalian | Kali *= 2 | Kali = Kali * 2 |
/= | Pembagian | Bagi /= 6; | Bagi = Bagi / 6 |
%= | Modulus | Modulus %= 6 | Modulus = Modulus % 6 |
&= | AND | B &= 1 | B = B & 1 |
|= | OR | C |= 1 | C = C | 1 |
^= | XOR | D ^= 0 | D = D ^ 0 |
<<= | Geser ke kiri | LS <<= 1 | LS = LS << 1 |
>>= | Geser ke kanan | RS >>= 2 | RS = RS >> 2 |
2.2.3 Operator Unary
Operator | Keterangan | Contoh | equivalen |
– | Unary minus | A = -1 | |
++ | Penambahan 1 | Value++ ++Value | Value = Value + 1 |
— | Pengurangan 1 | Nilai– –Nilai | Nilai = Nilai – 1 |
! | Not (negasi) | B = !1 | B = 0 |
~ | Unary complement satu (bitwise not) | B = ~C | |
& | Menghasilkan alamat memory operant (operator pointer) | Catatan: akan dijelaskan pada pembahasan tentang pointer | |
* | Menghasilkan nilai pengenal di alamat memory (operator pointer) | ||
sizeof | Ukuran dari operand dalam byte |
Contoh Program operasi matematika dengan operator penugasan dan operator unary
main.cpp |
#include <iostream> using namespace std; int main() { int hasil_operasi = 0, nilai_A = 0, nilai_B = 0, nilai_C = 0; cout << “Contoh Menggunakan Operator” << endl; cout << “nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, nilai C = ” << nilai_C << endl; cout << “hasil = ” << hasil_operasi << endl; nilai_A += 10; nilai_B -= 3; nilai_C++; hasil_operasi = nilai_A + nilai_B / nilai_C; cout << “nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, nilai C = ” << nilai_C << endl; cout << “hasil dari A + B / C = ” << hasil_operasi << endl; nilai_A /= 5; nilai_B–; nilai_C *= 8; hasil_operasi = nilai_A % nilai_B * nilai_C; cout << “nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, nilai C = ” << nilai_C << endl; cout << “hasil dari A % B * C = ” << hasil_operasi << endl; return 0; } |
Berikut tampilan ketika program dijalankan

Terdapat dua jenis increment/decremet pada C/C++ yaitu pre-increment/decrement (prefix) dan post-increment/decrement (posfix). Pre-increment akan melakukan penambahan nilai terlebih dulu sebelum variabel diproses, sedangkan post-increment melakukan proses terlebih dahulu sebelum variabel ditambahkan nilainya. Demikian juga dengan decrement, Pre-decrement akan melakukan pengurangan nilai terlebih dulu sebelum variabel diproses, sedangkan post-decrement melakukan proses terlebih dahulu sebelum variabel dikurangi nilainya.
Contoh penggunaan operator increment dan decrement
main.cpp |
#include <iostream> using namespace std; int main() { int hasil_operasi = 0, nilai_A = 0, nilai_B = 0; cout << “Contoh Prefix dan Postfix” << endl; cout << “(1) nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, hasil = ” << hasil_operasi << endl; hasil_operasi = (nilai_A++) + (++nilai_B); cout << “(2) nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, hasil = ” << hasil_operasi << endl; hasil_operasi = nilai_A + nilai_B; cout << “(3) nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, hasil = ” << hasil_operasi << endl; hasil_operasi = (nilai_A–) + (–nilai_B); cout << “(4) nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, hasil = ” << hasil_operasi << endl; hasil_operasi = nilai_A + nilai_B; cout << “(5) nilai A = ” << nilai_A << “, nilai B = ” << nilai_B << “, hasil = ” << hasil_operasi << endl; return 0; } |
Berikut tampilan ketika program dijalankan

2.2.4 Operator bitwise
Operator | Keterangan | Contoh |
& | Bitwise AND | A = B & C |
| | Bitwise OR | A = B | C |
~ | Bitwise Not (komplemen) | A = ~B |
^ | Bitwise XOR | A = B ^ C |
<< | Binary Left Shift | A = B << 1 |
>> | Binary Right Shift | C = D >> 2 |
Contoh penggunaan operator bitwise
main.cpp |
#include <iostream> using namespace std; int main() { unsigned short in_A = 0, in_B = 0, in_C = 0, outD = 0; in_A = 0x00ff; in_B = 0xf0f0; in_C = 0x0f0f; cout << “input A = ” << in_A << endl; cout << “input B = ” << in_B << endl; cout << “input C = ” << in_C << endl; outD = in_A & in_B | in_C; cout << “D = A & B | C = ” << outD << endl; outD = in_A | in_B ^ in_C; cout << “D = A & B ^ C = ” << outD << endl; outD = ~outD; cout << “D = ~D = ” << outD << endl; outD = in_B << 8; cout << “D = B << 8 = ” << outD << endl; outD = in_B >> 8; cout << “D = B >> 8 = ” << outD << endl; return 0; } |
