NAMA: Riyn Winesdyo W.
NIM: 1701292866
Kelas: 02PPT
TM 04 : Class Time
a. Desain klas dengan nama Time yang mempunyai tiga data anggota yaitu hour, minute dan second dengan level akses adalah private. Selain fungsi anggota baku constructor dan destructor, class Time juga mempunyai tiga fungsi anggota lain yang prototipenya adalah sebagai berikut: void setData() , fungsi konstant void geData() dan fungsi konstant void printData(). Tugas ketiga fungsi terakhir ini adalah sebagai berikut: fungsi setData() untuk memberi nilai hour, minute dan second , fungsi getData() untuk mengambil nilai data yang diisi oleh fungsi setData(), sedangkan fungsi printData() untukmencetak ketiga data anggota tersebut.
#include<iostream>
using namespace std;
class Time{
private:
int hour;
int minute;
int second;
public:
void setData(int hr, int min, int sec){
hour=hr;
minute=min;
second=sec;
}
void getData(int hr, int min, int sec)const{
hr=hour;
min=minute;
sec=second;
}
Time(){
hour=1;
minute=1;
second=1;
}
Time(int hr, int min, int sec){
hour=hr;
minute=min;
second=sec;
}
void printData()const{
cout<<"Hour : "<<hour<<endl;
cout<<"Minute : "<<minute<<endl;
cout<<"Second : "<<second<<endl;
}
~Time(){}
};
b. Definisikan atau implementasikan constructor dan destructor di dalam klas sedangkan fungsi setData() , getData() dan printData() di luar klas Time. Untuk definisi fungsi yang ada di luar class jangan lupa untuk menggunakan scope resolution operator.
#include<iostream>
using namespace std;
class Time{
private:
int hour;
int minute;
int second;
public:
void setData(int, int, int);
void getData(int, int, int)const;
Time(){
hour=1;
minute=1;
second=1;
}
Time(int hr, int min, int sec){
hour=hr;
minute=min;
second=sec;
}
void printData()const;
~Time(){}
};
void Time::setData(int hr, int min, int sec){
hour=hr;
minute=min;
second=sec;
}
void Time::getData(int hr, int min, int sec)const{
hr=hour;
min=minute;
sec=second;
}
void Time::printData()const{
cout<<"Hour : "<<hour<<endl;
cout<<"Minute : "<<minute<<endl;
cout<<"Second : "<<second<<endl;
}
c. Berikan alasan mengapa fungsi getData() dan printData() perlu dibuat konstant?
Konstan digunakan agar fungsi hanya bisa dibaca dan tidak bisa diubah. Member fungsi konstan tidak dapat mengubah non-static data member atau memanggil member fungsi yang tidak konstan.
d. Selanjutnya tulis fungsi main() untuk mengetes klas yang Anda desain.
void main(){
Time obj(3,50,10);
obj.printData();
cin.get();
}