Operator, Tipe Casting
dan Pengaturan Desimal
Yuli Astuti, Jurusan Sistem Informasi, STMIK AMIKOM Yogyakarta,
Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta, Indonesia
3.1. OperatorDalam dunia pemrograman operator sering di gunakan untuk mendefinisikan operasi-operasi di dalamnya, baik itu operasi-operasi perhitungan, perbandingan maupun operasi-operasi-operasi-operasi yang lainnya. Operator-operator yang sering digunakan yaitu :
a. Operator Aritmatik
Operator Jenis Operasi Contoh
+ Penjumlahan 2 + 3 = 5 - Pengurangan 6 – 3 = 3 * Perkalian 2 * 4 = 8 / Pembagian 5 / 2 = 2.5 % Modulo 5 % 2 = 1 Contoh program 3.1 : #include <iostream.h> #include <conio.h> main() { int a,b,plus,min,kali,bagi,mod;
cout<<"Contoh penggunaan operator aritmatik\n"; cout<<"Masukkan angka pertama (a) = ";cin>>a; cout<<"Masukkan angka kedua (b) = ";cin>>b; plus=a+b; min=a-b; kali=a*b;
bagi=a/b; mod=a%b; cout<<"\nJumlah = "<<plus; cout<<"\nKurang = "<<min; cout<<"\nKali = "<<kali; cout<<"\nBagi = "<<bagi; cout<<"\nModulo = "<<mod; getch();}
Output dari contoh program 3.1 sebagai berikut :
b. Operator Gabungan
Operator Contoh Ekivalen
+= bonus += 500; bonus = bonus + 500;
-= budget -= 50; budget = budget - 50;
*= gaji *= 1.2; gaji=gaji * 1.2;
/= faktor/= 50; faktor= faktor/.50;
%= jml_hari %=7; jml_hari =jml_hari % 7;
Contoh program 3.2 :
Output dari contoh program 3.2 sebagai berikut :
#include <iostream.h> #include <conio.h> main(){ int i = 4; int j = 8; int k = 12; int jwb; jwb = i + j; cout << jwb << "\n"; jwb += k; cout << jwb << "\n"; jwb /= 3; cout << jwb << "\n"; jwb -= 5; cout << jwb << "\n"; jwb *= 2; cout << jwb << "\n"; jwb %= 4; cout << jwb << "\n"; jwb *= 5+3; cout << jwb << "\n"; jwb += 4-2; cout << jwb << "\n"; getch();}
c. Operator Logika
Adalah operator yang digunakan untuk melakukan operasi dimana nilai yang dihasilkan dari operasi tersebut hanya berupa nilai benar (true) dan salah (false), atau sering disebut dengan nilai boolean.
Operator Jenis Operator Contoh && AND (dan) 1 && 1 = 1
|| OR (atau) 1 || 0 = 0
! NOT (negasi) !0 = 1
Contoh program 3.3 :
Output dari contoh program 3.3 sebagai berikut :
#include <iostream.h> #include <conio.h>
main() {
cout<<”1 && 1 = ”<<(1 && 1)<<endl; cout<<”1 && 0 = ”<<(1 && 0)<<endl; cout<<”0 && 0 = ”<<(0 && 0)<<endl; cout<<”0 && 1 = ”<<(0 && 1)<<endl;
cout<<”1 || 1 = ”<<(1 || 1)<<endl; cout<<”1 || 0 = ”<<(1 || 0)<<endl; cout<<”0 || 0 = ”<<(0 || 0)<<endl; cout<<”0 || 1 = ”<<(0 || 1)<<endl; cout<<”!1 = “<<!1<<endl; cout<<”!0 = ”<<!0<<endl; getch();}
yaitu akan melakukan penambahan nilai sebelum suatu variabel tersebut diproses, sedangkan post-increase merupakan kebalikannya yaitu melakukan proses terlebih dahulu sebelum dilakukan penambahan nilai.
Sedangkan decrease atau descremen adalah proses pengurangan satu (menurunkan satu), untuk decrease juga mempunyai dua jenis yaitu pre-decrease (prefix) dan post-decrease (posfix). Pre-decrease yaitu akan melakukan pengurangan nilai sebelum suatu variabel tersebut diproses, sedangkan post-decrease merupakan kebalikannya yaitu melakukan proses terlebih dahulu sebelum dilakukan pengurangan nilai.
Operator Contoh Deskripsi Pernyataan yang ekivalen
++ J++; posfix j = j + 1; j += 1;
++ ++j; prefix j = j + 1; j += 1;
-- j--; postfix j = j - 1; j -= 1;
-- --j; prefix j = j - 1; j -= 1;
Contoh program 3.4 :
Output dari contoh program 3.4 sebagai berikut :
// increase dan decrease #include <iostream.h> #include <conio.h> main() { int i1=4,i2=4; int j1=8,j2=8; int a,b,c,d; a=++i1; b=i2++; c=--j1; d=j2--; cout<<"\nNilai a = "<<a; cout<<"\nNilai i1 = "<<i1; cout<<"\n\nNilai b = "<<b; cout<<"\nNilai i2 = "<<i2; cout<<"\n\nNilai c = "<<c; cout<<"\nNilai j1 = "<<j1; cout<<"\n\nNilai d = "<<d; cout<<"\nNilai j2 = "<<j2; getch();}
3.3. Type Casting
Tipe casting yaitu tipe data sementara, artinya mengubah tipe data suatu variabel hanya dalam operasi aritmatika. Setelah operasi aritmatika, tipe data variabel tersebut tetap sesuai deklarasi awalnya.
Contoh program 3.5 :
Output dari contoh program 3.5 sebagai berikut :
Untuk hasil pembagian seharusnya 2,5 karena dari 5 di bagi 2 adalah 2,5. Mengapa demikian? Karena variabel a dan b bertipe integer. Tetapi jika variabel a dan b dirubah menjadi tipe data float maka akan error sehingga muncul pesan :
Apa arti dari pesan error tersebut? Arti pesan error tersebut yaitu, untuk dua variabel a dan b yang bertipe integer tersebut tidak bisa digunakan untuk operasi aritmatik modulo (mod atau
#include <iostream.h> #include <conio.h>
main() {
int a,b,mod; float hasil;
cout<<"Contoh penggunaan / dan %\n\n";
cout<<"Masukkan angka pertama (a) = ";cin>>a; cout<<"Masukkan angka kedua (b) = ";cin>>b; hasil=a/b;
mod=a%b;
cout<<"\nHasil pembagian = "<<hasil; cout<<"\nSisa hasil bagi = "<<mod; getch();}
satu program dan dengan variabel yang sama ini tidak bisa dikerjakan. Dengan demikian, agar kedua operasi tersebut bisa berjalan bersama dalam satu program maka dibutuhkan type casting (tipe data sementara), sehingga menjadi sebagai berikut :
Contoh program 3.6 :
Untuk rumus hasil=float(a)/b ini yang disebut dengan tipe casting, pada rumus hasil variabel a sudah berubah tipe data menjadi float dan ini hanya sementara atau hanya berlaku pada rumus hasil atau pada operasi pembagian saja. Ketika pada operasi modulo atau pada rumus mod variabel a sudah kembali lagi ke tipe data integer yang sudah dideklarasikan di awal program. Sehingga aoutput dari contoh program 3.6 adalah :
3.4. Pengaturan Desimal dan Non Desimal
Ada dua metode pengaturan desimal dan non desimal yaitu:  menggunakan instruksi setprecision(n)
 menggunakan instruksi setiosflag(ios::fixed)
Kedua perintah tersebut memerlukan header file iomanip.h
#include <iostream.h> #include <conio.h>
main() {
int a,b,mod; float hasil;
cout<<"Contoh penggunaan / dan %\n\n";
cout<<"Masukkan angka pertama (a) = ";cin>>a; cout<<"Masukkan angka kedua (b) = ";cin>>b; hasil=float(a)/b; atau hasil=a/folat(b); mod=a%b;
cout<<"\nHasil pembagian = "<<hasil; cout<<"\nSisa hasil bagi = "<<mod; getch();}
Contoh program 3.7 :
Output dari contoh program 3.7 adalah :
Contoh program 3.8 adalah :
Output dari contoh program 3.8 adalah :
ada 1 angka di depan koma dan 5 angka di belakang koma (,) #include <iostream.h> #include <conio.h> main() { int a,b,mod; float bagi;
cout<<"\n\tContoh penggunaan / dan %\n\n"; cout<<"\tMasukkan angka pertama (a) = ";cin>>a; cout<<"\tMasukkan angka kedua (b) = ";cin>>b; bagi=float(a)/b;
mod=a%b;
cout<<"\n\tHasil pembagian = "<<bagi; cout<<"\n\tSisa hasil bagi = "<<mod; getch();} #include <iostream.h> #include <conio.h> #include <iomanip.h> main() { int a,b,mod; float bagi;
cout<<"\n\tContoh penggunaan / dan %\n\n"; cout<<"\tMasukkan angka pertama (a) = ";cin>>a; cout<<"\tMasukkan angka kedua (b) = ";cin>>b; bagi=float(a)/b;
mod=a%b;
cout<<"\n\tHasil pembagian = "<<setprecision(3)
<<bagi; cout<<"\n\tSisa hasil bagi = "<<mod; getch();}
Jika inputan di rubah angkanya :
Perintah setprecision(n) artinya n adalah ketelitian/presisi untuk desimal dan bilangan bulat, atau bisa dikatakan pesan space (tempat) untuk angka didepan dan di belakang koma. Pada contoh 3.8 terdapat perinah :
cout<<"\n\tHasil pembagian ="<<setprecision(3)<<bagi;
artinya : pada variabel bagi hanya akan menampilkan angka 3 digit saja untuk bilangan bulat dan desimalnya.
Contoh program 3.9 adalah :
Output dari contoh program 3.9 adalah :
Jika inputan di rubah angkanya :
#include <iostream.h> #include <conio.h> #include <iomanip.h> main() { int a,b,mod; float bagi;
cout<<"\n\tContoh penggunaan / dan %\n\n"; cout<<"\tMasukkan angka pertama (a) = ";cin>>a; cout<<"\tMasukkan angka kedua (b) = ";cin>>b; bagi=float(a)/b;
mod=a%b;
cout<<"\n\tHasil pembagian = “<<setiosflags(ios::fixed) <<setprecision(3)
<<bagi; cout<<"\n\tSisa hasil bagi = "<<mod; getch();}
ada 1 angka di depan koma dan 3 angka di belakang koma (,)
ada 2 angka di depan koma dan 3 angka di belakang koma (,)
ada 2 angka di depan koma dan 1 angka di belakang koma (,)
Perintah setiosflags(ios::fixed)<<setprecision(n) artinya n adalah ketelitian/presisi untuk desimalnya saja, atau bisa dikatakan pesan space (tempat) untuk angka di belakang koma. Jadi n yang pada awalnya untuk pengaturan bilangan bulat dan desimal, sekarang dengan tambahan perintah <<setiosflags(ios::fixed)sebelum perintah <<setprecision(3) sudah berubah fungi menjadi pengaturan bilangan desimal saja. Pada contoh 3.9 terdapat perinah :
cout<<"\n\tHasil pembagian ="<<setiosflags(ios::fixed) <<setprecision(3)<<bagi;
artinya : pada variabel bagi hanya akan menampilkan 3 digit saja untuk bilangan desimalnya.
3.5. Fungsi Built-in
Fungsi-fungsi tersebut antara lain:
 Fungsi sqrt(x)  digunakan untuk mencari akar (x).  Fungsi pow(x,y)  digunakan untuk mencari pangkat (xy).
Kedua fungsi tersebut harus menggunakan header file math.h Contoh program 3.10 adalah :
Output dari contoh program 3.10 adalah :
//penggunaan sqrt dan pow #include <iostream.h> #include <conio.h> #include <math.h> main() { float a,b,c,d; a=5; b=7; c=sqrt(a); d=pow(a,b); cout<<"\nAkar "<<a<<" = "<<c; cout<<"\n"<<a<<" pangkat "<<b<<" = "<<d; getch();}
Keterangan : c=sqrt(a);
Perintah diatas artinya, variabel c berisi akar dari variabel a yang nilainya 5,artinya sama dengan c=√a.
d=pow(a,b);
Sedangkan perintah pow digunakan untuk pangkat, artinya variabel d berisi angka dari variabel a pangkat b artinya sama dengan d=ab .
Daftar Pustaka
Budi raharjo, Pemrograman C++ mudah dan cepat menjadi master C++ , Informatika, 2007
Indra Yatini B , Pemrograman terstruktur , J & J Learning, 2001
Armadyah Amborowati, Pengantar pemrograman terstruktur, Andi, 2007
www.ilmukomputer.com www.cplusplus.com