Senin, 19 Maret 2018

Pembahasan Workshop Algoritma bab 2

Pada kesempatan kali ini saya akan menjelaskan mereview kembali tetang tugas saya pada workshop mata kuliah Algoritma pemrograman yang bertemakan Over Loading,
  apakah over loading sebenarnya? overloading atau overload menurut bahasa adalah kelebihan beban atau menimpa untuk lebih jelasnya mungkin akan saya jelaskan di postingan berikutnya. kali ini saya akan fokus pada workshop yang sudah dikerjakan dan mungkin workshop ini tidaklah lengkap tetapi semoga ini bisa membantu.




1. Buatlah program yang meminta user memasukkan jam, menit dan detik kemudian menampilkannya dengan format jam:menit:detik. Deklarasikan jam dan menit berupa integer, sedangkan menit berupa floating point. Buat masukan dan keluaran menggunakan operator overloading << dan >> sesuai yang dikehendaki. a. Buat class waktu, termasuk operator overloading input dan output class waktu { friend ostream& operator<<(ostream&, const waktu&); friend istream& operator>>(istream&, waktu &); public: // berisi methods atau fungsi private: };

b. Buat implementasi operator overloading input dan output

c. Buat main function Untuk soal selanjutnya ulangi langkah-langkah sebagaimana soal nomor 1.

#include <iostream>

using namespace std;

class waktu {
friend ostream& operator <<(ostream& ,waktu&);
friend istream& operator >>(istream& ,waktu&);
public:
waktu();
private:
int jam,menit;
float detik;
};

waktu::waktu(){
cout<<"Program Jam Menit dan Detik :"<<endl;
cout<<endl;
}

istream& operator>>(istream& in, waktu& mlebu){
cout<<"masukan Jam :";
in>>mlebu.jam ;
cout<<"masukan Menit:";
in>>mlebu.menit ;
cout<<"masukan Detik:";
in>>mlebu.detik;
return in;
}

ostream& operator <<(ostream& out, waktu& metu){
cout<<"Keluarannya adalah = ";
out<<metu.jam<<":";
out<<metu.menit<<":";
out<<metu.detik<<"";
return out;
}


int main (){
waktu x;
cin>>x;
cout<<x;

return 0;
}




 2. Buatlah program yang meminta user memasukkan bagian penyebut dan pembilang dari sebuah bilangan rasional berbentuk p/q. Setiap memasukkan bilangan rasional outputnya berbentuk p/q. Misalnya, masukan 1 dan 2 maka tampilan outputnya ½.

3. Buatlah program yang meminta user memasukkan bagian ribuan, ratusan, puluhan dan satuan. Misalnya : 1000, 200, 30, 4. Tampilan yang dikehendaki adalah 1234.

#include <iostream>

using namespace std;

class waktu {
friend ostream& operator <<(ostream& ,waktu&);
friend istream& operator >>(istream& ,waktu&);
public:
waktu();
private:
int ribuan ,ratusan ,puluhan ,satuan;
};

waktu::waktu(){
cout<<"Program Ribuan Ratusan Puluhan satuan :"<<endl;
cout<<endl;
}

istream& operator>>(istream& in, waktu& mlebu){
cout<<"masukan Ribuan :";
in>>mlebu.ribuan ;
cout<<"masukan Ratusan:";
in>>mlebu.ratusan ;
cout<<"masukan Puluhan:";
in>>mlebu.puluhan;
cout<<"masukan Satuan:";
in>>mlebu.satuan;
return in;
}

ostream& operator <<(ostream& out, waktu& metu){
cout<<"Keluarannya adalah = ";
out<<metu.ribuan+metu.ratusan+metu.puluhan+metu.satuan;
return out;
}


int main (){
waktu x;
cin>>x;
cout<<x;

return 0;
}



 4. Buatlah program untuk merepresentasikan operasi-operasi aritmatika : penjumlahan, pengurangan, perkalian dan pembagian. User diminta memasukkan 2 buah bilangan bulat, kemudian menampilkan sajian lengkapnya dari semua operasi. Sebagai contoh, user memasukkan 1 dan 2 maka tampilan outputnya : 1 + 2 = 2 1 – 2 = -1 1 * 2 = 2 1 : 2 = ½

5. Buatlah program untuk merepresentasikan bilangan bulat menjadi bilangan scientific number berbentuk 1.23E1 untuk menyatakan bilangan 12.3. Masukan bilangan bulat 4 digit, keluaran berbentuk aEb, dengan a adalah bilangan antara 0 dan 10, sedangkan b dari 0 sampai 4.


#include <iostream>
#include <string>
using namespace std;

class waktu {
friend ostream& operator<<(ostream&, waktu&);
friend istream& operator>>(istream&, waktu&);

public:
waktu();

private:
float bilangan ,a ,b ;
string xyz;
};

waktu::waktu(){
cout<<"test ";
cout<<endl;
}


istream& operator>>(istream& in, waktu& mlebu){
for (int i=0; i<4; i++){


in>>mlebu.bilangan;
if (mlebu.bilangan>999){
mlebu.b=3;
mlebu.a=mlebu.bilangan/1000;
}
else
{
if (mlebu.bilangan>99){
mlebu.b=2;
mlebu.a=mlebu.bilangan/100;
}

else {
if (mlebu.bilangan>9){
mlebu.b=2;
mlebu.a=mlebu.bilangan/10;
}
}
}
}
}
ostream& operator>>(ostream& out, ostream& metu){
cout<<"keluarannya adalah :";
out<<metu.a<<"E"<<metu.b<<endl;
return out;
}
int main (){

 waktu x;
 cin>>x;
 cout<<x;
return 0;
}

0 komentar:

Posting Komentar

:a  :b  :c  :d  :e  :f  :g  :h  :i  :j  :k  :l  :m  :n  :o  :p  :q  :r  :s  :t