Tipe Data dan Operator C++ disertai Contoh, Tugas dan Jawaban - TeachMeSoft

Tipe Data dan Operator C++ disertai Contoh, Tugas dan Jawaban

Tipe Data dan Operator C++ disertai Contoh, Tugas dan Jawaban


1. Pengantar


Sebuah program dibangun untuk memecahkan permasalahan yang kompleks dan terkadang dituntut untuk mendefinisikan operasi-operasi lainnya. Permasalahan yang kompleks membutuhkan ketetapan memilih jenis-jenis data dan operator yang mendukung kecepatan, ketepatan dan kehandalan program.


2. Tipe data


Tipe data berfungsi untuk merepresentasikan jenis dari sebuah nilai terdapat dalam program. kesalahan dalam menyebutkan tipe data program dibuat tidak dapat dijalankan atau seandainya jalan akan menghasilkan nilai yang tidak akurat.

Sehingga tipe data harus digunakan sesuai dengan kebutuhan program. Dalam C++ terdapat beberapa tipe data dasar yang telah didefinisikna (floating-point), tipe logika (boolean), tipe karakter/ teks (character/string). Tipe-tipe tersebut adalah tipe yang siap digunakan tanpa adanya proses manipulasi terlebih dahulu.

a). Tipe Bilangan Bulat
Tipe data bilangan bulat digunakan untuk data-data angka yang tidak mengandung angka dibelakang koma, misalnya 21, 3, 8 dan sebagainya. Tipe data yang termasuk ke dalam kategori ini adalah seperti yang terlihat pada tabel dibawah ini.
Tipe Data Ukuran (bit) Rentang
int 16 atau 32 -32.768 sampai 32.767
Unsigned int 16 atau 32 0 - 65.535
Signed int 16 atau 32 Sama seperti int
Short int 16 -32.768 sampai 32.767
Unsigned short int 16 0 sampai 65.535
Signed Short int 16 Sama seperti short int
Long int 32 -2.147.483.648 sampai 2.147.483.647
Signed long int 32 Sama seperti long int
Unsigned long int 32 0 sampai 4.294.967.295

b). Tipe Bilangan Riil
Tipe data bilangan Riil adalah tipe merepresentasikan data-data bilangan yang mengandung angka dibelakang koma, misalnya 3.78, 21.03 dan  banyak lagi yang lainnya. Adapun tipe data yang termasuk ke dalam kategori ini adalah seperti yang ditunjukan pada tabel dibawah ini.
Tipe Data Ukuran (bit) Rentang Presisi
float 32 1.2E-38 sampai 3.4E+38 6 digit presisi
double 64 2.3E-308 sampai 1.7E+308 15 digit presisi
Long double 80 3.4E-4932 to 1.1E+4932 19 digit presisi

c). Tipe Logika
Tipe data Logika merepresentasikan data-data yang hanya mengandung dua buah nilai, yaitu nilai logika (boolean). Nilai logika itu sendiri hanya terdiri dari nilai benar (direpresentasikan dengan inilai selain no, biasanya nilai 1) dan salah (direprsentasikan dengan nilai 0).

Untuk sebagaian kompiler C++ tertentu yang telah memenuhi standar ANSI/ISO, tipe ini telah dinyatakan dalam tipe bool. dalam pemrograman, nilai ini umumnya lebih dikenal dengan nilai true (benar) dan False (salah).

d). Tipe Karakter/ String
Tipe Karakter/ String merepresentasikan data-data yang berupa karakter. Tipe data ini dinyatakan dengan tipe char, sedangkan untuk string (=kumpulan karakter) dinyaakan sebagai pointer dari tipe char, yaitu yang ditulis dengan char*.
Tipe Data Ukuran (bit) Rentang
char 8 -128 sampai 127 atau 0 sampai 255
Unsignet char 8 0 sampai 255
Signed char 8 -128 sampai 127

3. Operator


Untuk memecahkan masalah-masalah tertentu tersebut dibutuhkan operator-oprator yang sesuai. Beberapa pengertian penting dalam pembahasan operator antara lain :
C = 5+7

         ⟾   disebut dengan variabel
=            ⟾   disebut dengan operator assignment
5 dan 7  ⟾   disebut dengan operand
5+7        ⟾   disebut ekspresi
+            ⟾   disebut dengan operator aritmatikan (Penambahan)
C=5+7   ⟾   disebut dengan statement aritmatika

Dalam bahasa C++ operator dikelompokkan kedalam 4 bagian, yaitu operator assignment, unary, binary dan ternary.

a). Operator Assignment
Operator Assignment adalah operator yang berfungsi untuk memasukkan (assign) nilai ke dalam suatu variabel atapun konstanta. Operator ini dilambangkan dengan tanda sama dengan (=).
Contoh :
luas = panjang * lebar;
diskon = 0.01 * total_belanja;

b). Operator Unary
Dalam ilmu matematika yang disebut dengan operator unary adalah operator yang hanya melibatkan sebuah operand. Adapun yang termasuk ke dalam operator unary adalah seperti tampak pada tabel di bawah ini :
Operator Jenis Operasi Contoh
+ Membuat nilai positif +7
- Membuat nilai negatif -7
++ Increment C++
-- Decrement C--
⇛ increment
Increment adalah suatu penambahan nilai yang terjadi pada sebuah variabel. Adapaun operator yang digunakan untuk melakukan increment adalah operator ++. Operaotr ini akan menambahkn nilai dari suatu variabel dengan standar nilai 1.

Namun dalam C++ model ini dapat digunakan untuk dianamis, dimana increment dapat dirubah ke bentuk loncatan-loncatan lebih dari 1. Terdapat dua buah jenis increment yang terdapat dalam bahasa C++, yaitu pre-increment dan post-increment.

Arti dari pre-increment adalah melakukan penambahan nilai sebelum suatu variabel itu diproses, sedangkan post-increment merupakan sebaliknya, yaitu melakukan proses terlebih dahulu sebelum dilakukan penambahan nilai

⇛ Decrement
Decrement merupakan kebalikan dari proses incremen, yaitu menurunkan (mengurangi) nilai dari suatu variabel. Sama juga seperti pada increment, decrement juga dibagi ke dalam dua jenis yaitu pre-decrement dan post- decrement. berikut ini program yang menunjukan penggunaan decrement.

c). Operator Binary
Operator binary adalah operator yang digunakan dalam operasi yang melibatkan dua buah operand. Dalam bahasa C++, operator binary ini dikelompokkan lagi ke dalam empat jenis, yaitu operator aritmatika, logika, relasional dan bitwise.

⇛ Operator aritmatika
Operator aritmatika adalah operator yang digunakan untuk melakukan operasi-operasi aritmatika seperti penjumlahan, pengurangan, perkalian, pembagian dan sebagainya. Adapun yang termasuk dalam operator aritmatik didalam C++ adalah sebagai berikut :
Operator Jenis Operasi Contoh
+ Penjumlahan 2+5=5
- Pengurangan 5-3=2
* Perkalian 2*3=6
/ Pembagian 10.0/3.0=3.3333
% Sisa bagi 10%3=1

⇛ Operator  logika
Operator logika adalah operator yang digunakan untuk melakukan operasi dimana nilai yang dihasilkan dari operasi tersebut hanya berupa nilai benar (true) dan salah (false). Nilai ini disebut denga nilai boolean (ditemukan oleh matematikan inggris bernama George bool).
Operator Jenis Operasi Contoh
&& AND (dan) 1 && 1 = 1
|| OR (atau) 1 || 0 = 1
! NOT (negasi) !0 = 1

⇛ Operator relasional
Operator relasional adalah operator yang digunakan untuk menentukan relasi atau hubungan dari dua buah operand. Operator ini ditempatkan didalam sebuah ekspresi, yang kemudian akan menentukan benar atau tidaknya sebuah ekspresi.
Operator Jenis Operasi Contoh
> Lebih besar (5>2)=1
< Lebih kecil (5<2)=0
>= Lebih besar atau sama dengan (5>=5)=1
<= Lebih kecil atau sama dengan (5<=2)=0
== Sama dengan (5==2)=2
!= Tidak sama dengan (5!=2)=1

⇛ Operator Bitwise
Operator bitwise berguna untuk melakukan operasi-operasi yang berhubungan dengan pemanipulasi bit. Operator bitwise ini hanya dapat dilakukan pada operand yang bertipe char dan int saja karena ini berkoresponden dengan tipe byte atau word di dalam bit.
Operator Jenis Operasi Contoh
& AND 1&0=0
| OR 1|0=1
^ Exclusive OR (XOR) 1^1=0
~ NOT ~1=0
>> Shift Right 10>>1=5
<< Shift Left 5<<1=10

d). Operator Ternary
Operator ternary adalah operator yang digunakan dalam operasi yang melibatkan tiga buah operand. adapun operator yang digunakan untuk menyatakannya adalah operator ? :
Konsep yang mendasari operasi ini adalah suatu percabangan (pemilihan) yang didasarkan atas kondisi tertentu.

Struktur penulisan operator ternarry:
Ekspresi_1 ? Ekspresi_2 : ekspresi_3

JIka eksprsei_1 bernilai benar, maka program akan mengerjakan ekspresi_2. Sedangkan jika ekspresi_1 bernilai salah, maka yang akan dieksekusi adalah ekspresi_3.

Contoh :
Y = (X < 0) ? -X : X;

Y akan bernilai negatif (-X), jika X (pada ekpresi pertama ) bernilai benar dan Y akan bernilai positif jika ekspresi pertama (X<0) bernilai salah.

Operator ternary ini jarang digunakan pada program aplikasi karena ada perintah khusus  untuk menyelesaikan contoh-contoh ekspresi tersebut dengan menggunakan perintah if.


4. Contoh Program


Contoh 1. Konversi Suhu
Rumus konversi suhu dari celcius ke fahrenheit dan reamur dapat di tulis sebgai berikut :
tf   = 9/5 * tc + 32 
tR = 4/5 * t

Alagoritma dari program konversi ini adalah sebagi berikut :
  1. Masukkan derajat celcius
  2. tf 9/5 * tc + 32   
  3. tR 4/5 * t       
  4. Tampilkan tf
  5. Tampilkan tR  

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
double tc,tf,tr;

//Memasukkan data derajat celcius
cout<<"Memasukkan derajat celcius : "; cin>>tc;

//Konversi suhu dari celcius ke fahrenheit dan reamur
tf = ((9/5)*tc)+32;
tr = 0.8*tc;

//Menampilkan hasil konversi
cout<<endl;
cout<<"Hasil konversi"<<endl;
cout<<"Derajat Fahrenheit : "<<tf<<endl;
cout<<"Derajat Reamur : "<<tr<<endl;
}

Running program
Konversi Suhu

Contoh 2. Konvrersi satuan panjang
Konversi satuan panjang dari yard, kaki dan inchi ke meter menggunakan standar berikut ini :
1 yard  = 3 kaki= 0,9144 meter
1 kaki  = 12 inchi = 30,48 centimeter = 0,3048 meter
1 inchi = 25,4 milimeter = 0,025 meter

Alogoritma dari program ini adalah sebagai berikut :
1. Masukkan satuan panjang meter
2. Meter 0.9144 * yard + 0.3048 * kaki + 0.0254 * inchi
3. Tampilkan meter

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
double yard, kaki, inchi, meter;

//Memasukkan nilai yard, kaki dan inchi
cout<<"Memasukkan satuan yard : "; cin>>yard;
cout<<"Memasukkan satuan kaki : "; cin>>kaki;
cout<<"Memasukkan satuan inchi : "; cin>>inchi;

//Menghitung konversi
meter = 0.9144*yard+0.3048*kaki+0.0254*inchi;cout<<endl;

//Menampilkan hasil konversi
cout<<yard<<" Yard, "<<kaki<<" Kaki, "<<inchi<<" Inchi setara dengan "<<meter<<" meter"<<endl;
}

Running program
Konvrersi satuan panjang

Contoh 3. Operator Assignment
Berikut ini adalah program untuk memahami konsep operator assignment (assignment adalah memberi suatu nilai ke dalam variabel). Hamir semua program menggunakan operator ini.

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
double pecahan;
char karakter;
int bulat;

//Melakukan assignment pada variabel-variabel
karakter = 'A';
bulat = 28;
pecahan = 3.14;

//Menampilkan nilai dari variabel-variabel
cout<<"Isi karakter adalah : "<<karakter<<endl;
cout<<"Isi bulat adalah : "<<bulat<<endl;
cout<<"Isi pecahan adalah : "<<pecahan<<endl;

}

Running program
Operator Assignment

Contoh 4. Operator Unary
Berikut ini adalah contoh program untuk memahami kegunaan operator unary pada aplikasi program bersifat increment (naik). Perhatikan perbedaan operasi++A dan A++ pada saat program berjalan.  Pada ++A nilai A akan dinaikkan satu sebelum ditampilkan dan A++ dinaikan setelah proses A++.

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
int A;

//Assignment nilai -5 (negatif) ke variabel A
A=-5;

//Merubah nilai -5 menjadi -(-5) = 5 (positif)
A=-A;

//Melakukan pre-increment
cout<<"Nilai A awal : "<<A<<endl;
cout<<"Nilai ++A : "<<++A<<endl;
cout<<"Nilai A akhir : "<<A<<endl;

}

Running program
Operator Unary

Contoh 5. Operator Unary
Berikut ini adalah contoh program untukmemahami kegunaanoperator Unary pada aplikasi programbersifat decrement (turun).

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
int A;

//Assignment nilai 5 ke variabel A
A=5;

//Melakukan pre-decrement
cout<<"Nilai A awal : "<<A<<endl;
cout<<"Nilai --A : "<<--A<<endl;
cout<<"Nilai A akhir : "<<A<<endl;

//Merubah nilai A menjadi 10
A=10;

//Melakukan post-decrement
cout<<"Nilai A awal : "<<A<<endl;
cout<<"Nilai A-- : "<<A--<<endl;
cout<<"Nilai A akhir : "<<A<<endl;

}

Running program
Operator Unary,Pre decrement dan post decrement

Contoh 6. Operator Binary
Program berikut ini memberi gambaran penggunaan operator binary yang terdiri atas operator aritmatika penjumlahan, pengurangan, perkalian dan pembagian untuk bilangan bulat.

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
int A, B;

//Input bilangan pertama ke variabel A dan bilangan kedua ke B
cout<<"Masukkan bilangan pertama : ";cin>>A;
cout<<"Masukkan bilangan kedua : ";cin>>B;

//Proses perhitungan dan menampilkan
cout<<"Penjumlahan bilangan pertama dan kedua : "<<A+B<<endl;
cout<<"Pengurangan bilangan pertama dan kedua : "<<A-B<<endl;
cout<<"Perkalian bilangan pertama dan kedua : "<<A*B<<endl;
cout<<"Pembagian bilangan pertama dan kedua : "<<A/B<<endl;
}

Running program
Operator Binary

Catatan :
Masukkan bilangan pertama lebih besar dari bilangan kedua untuk mendapatkan hasil bilangan pada proses A/B, karena A/B merupakan pembagian bilangan bulat, misalnya 10/3 akan menghasilkan nilai 3.

Contoh 7. Sisa bagi bilangan Bulat (modulo)
Dalam bahasa C++, sisa bagi dilambangkan dengan operator %. Misalnya 7%3=1 (7 dibagi 3 dapat 2 sisa 1). Dalam bahasa pascal menggunakan perintah Mod, misalnya 7 mod 3=1.

Berikut ini adalah contoh program penggunaan operator % untuk menghitung konversi dari detik ke jam, menit, dan detik. Masukan dari program ini adalah waktu dalam satuan detik, kemudian akan dikonversikan ke dalam satuan jam, menit dan detik. Misalnya jika dimasukkan 3700 detik maka akan tampil 1 jam 1 menit 40 detik.

Algortima dari proses konversi ini adalah :
1. Masukkan satuan waktu detik
2. Jam ⇐ detik dibagi 3600, karena 1 jam = 3600 detik. Hasil perhitungan ini adalah bilangan bulat.
3. sisajam ⇐ detik modulo 3600, akan menghasilkan sisa dari perhitungan langkah 3.
4. menit ⇐ sisajam dibagi 60
5. sisamenit ⇐ sisajam modulo 60
6. detik ⇐ sisamenit, karenan sisa menit merupakan satuan terkecil yang dapat dikatakan sebagai detik.
7. Tampilkan jam, menit, detik.

Catatan:
1 jam 60 menit = 3600 detik

Source Code
#include <iostream>

using namespace std;

main(){

//Deklarasi variabel
int detik, menit, jam, sisajam;

//Input satuan waktu detik
cout<<"Masukkan waktu dalam detik : ";cin>>detik;cout<<endl;

//Proses konversi dari detik ke jam, menit dan detik
jam=detik/3600;

//Menghasilkan bilangan bulat sisa
sisajam=detik%3600; //Sisa bagi atau modulo

//Menit adalah sisa dari perhitungan di atas
menit=sisajam/60;

//Detik adalah sisa dari perhitung di atas
detik = sisajam%60;

//Menampilkan hasil operasi
cout<<"Waktu tersebut setara dengan "<<jam<<" Jam, "<<menit<<" menit, "<<detik<<" detik"<<endl;
}

Running program
Sisa bagi bialngan BUlat (modulo)

Contoh 8. Operato logika
Berikut ini adalah contoh penggunaan operator logika AND (&&), OR (||) dan NOT (!).

Source Code
#include <iostream>

using namespace std;

int main(){
cout<<"1 && 1 = "<<(1&&1)<<endl;
cout<<"1 && 0 = "<<(1&&0)<<endl;
cout<<"0 && 1 = "<<(0&&1)<<endl;
cout<<"0 && 0 = "<<(0&&0)<<endl;
cout<<"1 || 1 = "<<(1&&1)<<endl;
cout<<"1 || 0 = "<<(1&&0)<<endl;
cout<<"0 || 1 = "<<(0&&1)<<endl;
cout<<"0 || 0 = "<<(0&&0)<<endl;
cout<<" !1 = "<<(!1)<<endl;
cout<<" !0 = "<<(!0)<<endl;
return 0;
}


Running program
Operato logika

Contoh 9. Operator Bitwise
Berikut ini adalah contoh penggunaan operator bitwise (berfungsi untuk mengoperasikan suatu bilangan dalam bentuk biner, sehingga setiap operasi harus dikonversi ke dalam bilangan biner terlebih dahulu). Dalam program ini meliputi operator XOR (^), Shift Left/ menggeser bit ke kiri (<<) dan Shift Right / menggeser bit ke kanan (>>).

Source Code
#include <iostream>

using namespace std;

int main(){
cout<<"1 ^ 0 = "<<(1^0)<<endl;
cout<<"15 ^ 4 = "<<(15^4)<<endl;
cout<<"19 << 1 = "<<(19<<1)<<endl;
cout<<"19 << 2 = "<<(19<<2)<<endl;
cout<<"19 << 3 = "<<(19<<3)<<endl;
cout<<"19 >> 1 = "<<(19>>1)<<endl;
cout<<"19 >> 2 = "<<(19>>2)<<endl;
cout<<"19 >> 3 = "<<(19>>3)<<endl;
return 0;
}

Running program
Operator Bitwise

Hasil dari perintah 15^4 diatas dapat diilustrasikan berikut :
0 0 0 1 0 0 1 1     19 dalam bentuk biner
0 0 0 0 0 1 0 0     4 dalam bentuk biner
------------------    XOR (exclusif OR) atau yang benar-benar berbeda
0 0 0 1 0 1 1 1     23 dalam bentuk biner

Kemdian untuk perintah 19<<1 dan berikutnya dapat diilustrasikan dalam tabel berikut ini :
Perintah Operasi Hasil
19
19 << 1
19 << 2
19 << 3
0 0 0 1 0 0 1 1
0 0 1 0 0 1 1 0
0 1 0 0 1 1 0 0
1 0 0 1 1 0 0 0

38
76
152
19
19 >> 1
19 >> 2
19 >> 3
0 0 0 1 0 0 1 1
0 0 0 0 1 0 0 1
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0

9
4
2


5. Tugas


  1. Buatlah program untuk menghitung selisih dari dua waktu yang mempunyai format jam:menit:detik. Sebagai contoh, jika penggunaan memasukkan 03:00:00 dan 04:30:15, maka program akan menampilkan selisih adalah 01: 30:15.
  2. Masukkan dari progam ini adalah enam bilangan bulat yang masing-masing melambangkan pasangan jam, menit dan detik. Keluarannya juga terdiri atas enam bilangan bulat dengan format jam, menit dan detik selisih dari dua waktu tersebut.
  3. Buatlah program untuk menentukan berat badan ideal seseorang jika diketahui tinggi  badannya. Sebagai contoh jika tinggi badanya 180 centimeter maka berat badan yang ideal adalah 72 kilogram. Karena berat badan ideal dihitung dari tinggi badan dikurangi dengan 100 kemudian dikurangi lagi dengan10% dari sisanya. Jadi 180 cm dikurangna 100 cm menjadi 80 cm. Dari 80 cm dikurangi 10% (8cm) menjadi 72.
    Catatan : Berat badan ideal = tinggi bada -100 - (0.1* (tinggi badan -100))
  4. Buatlah program untuk mengkonversi dari bilangan desimal ke bilangan biner. Dimana masukkan dari progam ini adalah bilangan desimal dan keluaran adalah bilangan biner. Adapun proses perubahannya adalah membagi bilangan desimal itu terus menerus dengan bilangan 2 dan bilangan biner adalah sisa dari pembaigan itu. Misalnya bilangan desimal 19 konversi dalam bilangan biner adalah 10011 (jika standard 8 bit menjadi 0001 0011)
Didapati dari  :
19
--- sisa 1 (19 dibagi 2 dapat 8 sisa 1)
9
--- sisa 1 (19 dibagi 2 dapat 8 sisa 1)
4
--- sisa 0 (19 dibagi 2 dapat 8 sisa 1)
2
--- sisa 0 (19 dibagi 2 dapat 8 sisa 1)
2
Sehingga, nilai binernya dibaca dari bawah 10011. Jika dirubah dalam standar 8 bit ditambah angka 0 didepannya sehingga semuanya berjumlah 8 angka, contoh 0001 0011



6. Jawaban


[1] Program menampilkan selisih waktu

Source code


Running program 



[2] 
Source code


Running program 



[3] 
Source code


Running program 



[4] 
Source code


Running program 


AKAN SEGERA DIUPLOAD



Disqus comments