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 | 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 | 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
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 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
C ⟾ 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
= ⟾ 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
Contoh :
luas = panjang * lebar;
diskon = 0.01 * total_belanja;
diskon = 0.01 * total_belanja;
b). Operator Unary
Operator | Jenis Operasi | Contoh |
---|---|---|
+ | Membuat nilai positif | +7 |
- | Membuat nilai negatif | -7 |
++ | Increment | C++ |
-- | Decrement | C-- |
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 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
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
tR = 4/5 * tc
Alagoritma dari program konversi ini adalah sebagi berikut :
- Masukkan derajat celcius
- tf 9/5 * tc + 32
- tR 4/5 * tc
- Tampilkan tf
- 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
Contoh 2. Konvrersi satuan panjang
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
Contoh 3. Operator Assignment
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
Contoh 4. Operator Unary
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
Contoh 5. Operator Unary
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
Contoh 6. Operator Binary
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
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)
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
Contoh 8. Operato logika
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
Contoh 9. Operator Bitwise
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
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
- 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.
- 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.
- 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)) - 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)
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
Running program
[2]
Running program
[3]
Running program
[4]
Running program
AKAN SEGERA DIUPLOAD