TUGAS TM04- PEMROGRAMAN BERORIENTASI OBYEK

TM 04 : Class Time (PBO)
(Albert Hendry Harsono/1701296914/02PPT)

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.

class time{
private :
	int hour;
	int minute;
	int second;
public:
	//Konstruktor
	time(){
		hour=0;
		minute=0;
		second=0;
	}
        //Destruktor
	~time(){
		cout<<"Data Deleted";
		cin.get();
	}
        //Setter-Getter
	void setData(int h,int m,int s);
	int getData()const;
	void printData()const;
};

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.

void time::setData(int h,int m,int s){
	hour=h;
	minute=m;
	second=s;
}

int time::getData()const{
	return hour;
	return minute;
	return second;
}

void time::printData()const{
	getData();
	cout<<"Time <"<<hour<<":"<<minute<<":"<<second<<">"<<endl;
	cin.get();
}

c. Berikan alasan mengapa fungsi getData() dan printData() perlu dibuat konstan?

getData(); harus konstan untuk menghindari pengubahan data yang terjadi secara tidak disengaja, sedangkan untuk fungsi printData(); dibuat konstan agar dapat memanggil fungsi getData yang juga bersifat konstan.

d. Selanjutnya tulis fungsi main() untuk mengetes class yang Anda desain.

int main(){
	time t; int j=-1,m=-1,s=-1;
	while(j<0||j>24){
		cout<<"Masukan Jam[0...24]: "; 		cin>>j;
cin.sync();
cin.clear();
	}
	while(m<0||m>59){
		cout<<"Masukan Menit[0...59] : "; 		cin>>m;cin.sync();cin.clear();
	}
	while(s<0||s>59){
		cout<<"Masukan Detik[0...59] : "; 		cin>>s;cin.sync();cin.clear();
	}
	t.setData(j,m,s);
	t.printData();

}

I AM PROUD AS A BINUSIAN

This entry was posted in PBO, Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *