Soal :
Merubah dari fungsi main ke OOP dengan overloading input dan output
Program 1 : Program untuk menghitung jumlah kuadrat
Fungsi main :
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i=1,n, jumlah=0;
cout << "Program untuk menghitung jumlah kuadrat\n";
cout << "masukan bilangan positif : ";
cin >> n;
while(i<=n){
jumlah+=i*i;
i++;
}
cout << "Jumlah 1 sampai " << n << " kuadrat " << jumlah << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Setelah diubah ke OOP :
#include <cstdlib>
#include <iostream>
using namespace std;
class Kuadrat{
friend istream& operator>>(istream&, Kuadrat&);
friend ostream& operator<<(ostream&, const Kuadrat&);
public:
Kuadrat();
void hitung();
private:
int n, jumlah;
};
Kuadrat::Kuadrat(){
cout << "Program untuk menghitung jumlah kuadrat\n";
}
istream& operator>>(istream& in, Kuadrat& x){
cout << "masukan bilangan positif : ";
in >> x.n;
return in;
}
ostream& operator<<(ostream& out, const Kuadrat& x){
int jum;
jum=x.jumlah;
out <<"Jumlah 1 sampai " << x.n << " kuadrat " << jum-2<<endl;
}
void Kuadrat::hitung(){
int i=1;
while(i<=n){
jumlah+=i*i;
i++;
}
}
int main(int argc, char *argv[])
{
Kuadrat A;
cin >> A;
A.hitung();
cout << A;
system("PAUSE");
return EXIT_SUCCESS;
}
output dari source code :
Program 2 : Program Menghitung Faktorial dari Inputan Angka
Fungsi main :
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int angka;
int faktor=1;
cout << "Program Menghitung Faktorial dari Inputan Angka\n";
cout << "Masukan Angka : ";
cin >> angka;
for(int i=1; i<= angka; i++){
faktor*=i;
cout << i << " ";
}
cout << "\nhasil = " << faktor << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Setelah diubah ke OOP :
#include <cstdlib>
#include <iostream>
using namespace std;
class Faktor{
friend istream& operator>>(istream&, Faktor&);
friend ostream& operator<<(ostream&, const Faktor&);
public:
Faktor();
void hitung_faktor();
private:
int angka;
int faktor;
};
Faktor::Faktor(){
cout << "Program Menghitung Faktorial dari Inputan Angka\n";
}
istream& operator>>(istream& in, Faktor& x){
cout << "Masukan Angka : ";
in >> x.angka;
return(in);
}
void Faktor::hitung_faktor(){
for(int i=1; i<= angka; i++){
faktor*=i;
cout << i << " ";
}
}
ostream& operator<<(ostream& out, const Faktor& x){
int tmp;
tmp=x.faktor;
out << "\nhasil : " << tmp/2 << endl;
}
int main(int argc, char *argv[])
{
Faktor A;
cin >> A;
A.hitung_faktor();
cout << A;
system("PAUSE");
return EXIT_SUCCESS;
}
output dari source code :
Program 3 : Program Menghitung Jarak Jatuhnya Peluru
Fungsi main :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
float sudut, kecepatan, rad, jarak;
cout << "Program Menghitung Jarak Jatuhnya Peluru\n";
cout << "Masukan sudut penembakan (derajat) : ";
cin >> sudut;
cout << "Masukan kecepatan tembak (m/s) : ";
cin >> kecepatan;
rad=sudut*3.14/180;
jarak=2*pow(kecepatan,2)*sin(rad)*cos(rad)/9.8;
cout << "Peluru Jatuh Pada Jarak(m) : " << jarak << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Setelah diubah ke OOP :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
class Jarak_jatuh{
friend istream& operator>>(istream&, Jarak_jatuh&);
friend ostream& operator<<(ostream&, const Jarak_jatuh&);
public :
void hitung_jarak();
private:
float sudut, kecepatan, rad, jarak;
};
istream& operator>>(istream& in, Jarak_jatuh& x){
cout << "Program Menghitung Jarak Jatuhnya Peluru\n";
cout << "Masukan sudut penembakan (derajat) : ";
cin >> x.sudut;
cout << "Masukan kecepatan tembak (m/s) : ";
cin >> x.kecepatan;
return in;
}
void Jarak_jatuh::hitung_jarak(){
rad=sudut*3.14/180;
jarak=2*pow(kecepatan,2)*sin(rad)*cos(rad)/9.8;
}
ostream& operator<<(ostream& out, const Jarak_jatuh& x){
cout << "Peluru Jatuh Pada Jarak(m) : " << x.jarak << endl;
}
int main(int argc, char *argv[])
{
Jarak_jatuh A;
cin >> A;
A.hitung_jarak();
cout << A;
system("PAUSE");
return EXIT_SUCCESS;
}
output dari source code :
Program 4 : rogram Penjumlahan Dua Buah Vektor
Fungsi main :
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int elemen[100];
int elemen1[100];
int elemen2[100];
int banyak;
int A,B;
cout << "Program Penjumlahan Dua Buah Vektor\n";
cout << "\nBanyak elemen : ";
cin >> A;
cout << "Masukan data vektor\n";
for(int i=0; i<A; i++){
cout << "Data[ " << i+1 << " ]";
cin >> elemen1[i];
}
cout << endl;
for(int i=0; i<A; i++){
cout << "Data [ " << i+1 << " ] = " << elemen1[i] << endl;
}
cout << "\nBanyak elemen : ";
cin >> B;
cout << "Masukan data vektor\n";
for(int i=0; i<B; i++){
cout << "Data[ " << i+1 << " ]";
cin >> elemen2[i];
}
cout << endl;
for(int i=0; i<B; i++){
cout << "Data [ " << i+1 << " ] = " << elemen2[i] << endl;
}
cout << "\nhasil : \n";
if(A<B)
banyak=A;
else banyak=B;
for(int i=0; i<banyak; i++){
elemen[i]=elemen1[i]*elemen2[i];
cout << "Data [ " << i+1 << " ] = " << elemen[i] << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Setelah diubah ke OOP :
#include <cstdlib>
#include <iostream>
using namespace std;
class Vektor{
friend ostream& operator<<(ostream&, Vektor&);
friend istream& operator>>(istream&, Vektor&);
public:
Vektor();
void perkalian_vektor(const Vektor&, const Vektor&);
void beri_nilai(int);
private:
int elemen[100];
int banyak;
};
Vektor::Vektor(){
banyak=3;
for(int i=0; i<banyak; i++)
elemen[i]=0;
}
void Vektor::beri_nilai(int i){
banyak=i;
}
istream& operator>>(istream& in, Vektor& x){
cout << "Program Penjumlahan Dua Buah Vektor\n";
cout << "\nBanyak elemen : ";
in >> x.banyak;
cout << "Masukan data vektor\n";
for(int i=0; i<x.banyak; i++){
cout << "Data[ " << i+1 << " ]";
in >> x.elemen[i];
}
return(in);
}
ostream& operator<<(ostream& out, Vektor& x){
out << endl;
for(int i=0; i<x.banyak; i++)
out << "Data [ " << i+1 << " ] = " << x.elemen[i] << endl;
return(out);
}
void Vektor::perkalian_vektor(const Vektor& A, const Vektor& B){
if(A.banyak<B.banyak)banyak=A.banyak;
else banyak=B.banyak;
for(int i=0; i<banyak; i++)
elemen[i]=A.elemen[i]*B.elemen[i];
}
int main(int argc, char *argv[])
{
Vektor X,Y,Z;
cin >> X;
cout <<X;
cin >> Y;
cout <<Y;
Z.perkalian_vektor(X,Y);
cout << "\n Hasil : \n" << Z;
system("PAUSE");
return EXIT_SUCCESS;
}
output dari source code :
Program 5 : Program Menghitung jarak dua buah titik koordinat
Fungsi main :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
int x1,x2,y1,y2;
float hasil;
cout << "Masukan Koordinat\n";
cout << "Koordinat 1\n";
cout << "x : "; cin >> x1;
cout << "y : "; cin >> y1;
cout << "Koordinat 1 : (" << x1 << ", " << y1 << ")\n";
cout << "Koordinat 2\n";
cout << "x : "; cin >> x2;
cout << "y : "; cin >> y2;
cout << "Koordinat 2 : (" << x2 << ", " << y2 << ")\n";
hasil=sqrt((abs(x1-x2))^2+(abs(y1-y2)));
cout << "Jarak dua titik : " << hasil << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Setelah diubah ke OOP :
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
class Jarak_dua_titik{
friend istream& operator>>(istream&, Jarak_dua_titik&);
friend ostream& operator<<(ostream&, const Jarak_dua_titik&);
public:
void hasil_jarak(){hasil=sqrt((abs(x1-x2))^2+(abs(y1-y2))^2);};
private:
int x1,x2,y1,y2;
float hasil;
};
istream& operator>>(istream& in, Jarak_dua_titik& X){
cout << "Masukan Koordinat\n";
cout << "Koordinat 1\n";
cout << "x : "; in >> X.x1;
cout << "y : "; in >> X.y1;
cout << "Koordinat 1 : (" << X.x1 << ", " << X.y1 << ")\n";
cout << "Koordinat 2\n";
cout << "x : "; in >> X.x2;
cout << "y : "; in >> X.y2;
cout << "Koordinat 2 : (" << X.x2 << ", " << X.y2 << ")\n";
return(in);
}
ostream& operator<<(ostream& out, const Jarak_dua_titik& X){
out << "Jarak dua titik : " << X.hasil << endl;
return(out);
}
int main(int argc, char *argv[])
{
Jarak_dua_titik A;
cin >> A;
cout << A;
system("PAUSE");
return EXIT_SUCCESS;
}
output dari source code :
Makasih...
0 komentar:
Posting Komentar