Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>// cout,cin,cin.get(),cin sync(),cin.clear(),cin.gcount(yg mau ditung(semua itungan +1!!)),cin.getline(nama var,panjangnya)
- #include<string>// string
- #include<iomanip>//fixed,setprecision
- using namespace std;
- class data{
- private :
- friend void setNameViaFriend(data &x,string name){
- x.nama=name;
- }
- int nim;
- string nama;
- public :
- data(){//constructor
- cout<<"Object Born..."<<endl;
- nim=0;
- nama="Anonim";cout<< nim << nama<<endl;
- }
- data(int a,string b=""){//overload constructor dengan int a dan string b
- cout<<"Object has been overload"<<endl;
- nim=a;
- nama=b;cout<< nim << nama<<endl;
- }
- data(const data &x){//copy constructor dengan mengambil paramater di dalam ke data baru
- cout<<"object has been copied"<<endl;
- nim=x.nim;
- nama=x.nama;
- cout<< nim <<nama <<endl;
- }
- void setNimName(int x,string y){//setter(setter=implentor)
- nim=x;
- nama=y;
- }
- const int getNim(){//getter(getter=accesor)//buat fungsi getter biasakan pake const
- return nim;
- }
- const string getNama(){//getter
- return nama;
- }
- ~data(){//destructor
- cout<<"All Object has been deleted"<<endl;
- }
- };
- class overload{
- private :
- int angka;
- public :
- overload (){
- angka=0;
- }
- overload(int x){//constructor
- angka=x;
- }
- friend void cetak(overload &x){
- cout<<"Angka "<<x.angka<<endl;
- }
- overload& overload::operator=(const overload &x){//overloading assignment =
- angka=x.angka;
- }
- overload overload::operator+(const overload &x){//overloading assignment +
- overload temp;
- temp.angka=(this->angka+x.angka);
- return temp.angka;
- }
- };
- inline int kaliab(int a, int b){//fungsi inline
- return a*b;
- }
- int jumlah(int a,int b){//pass by vale,tidak mengubah value asal(a,b)
- return a+b;
- }
- int jumlah(int *a, int*b){//pass by address semua diaksih *, value asal dapat diubah//disini terjadi overload function jumlah jadi penggunan jumllah bergantung isi actual paramater di int main();
- *a=5;
- *b=10;
- return *a+*b;
- }
- int jumlahreference (int &a,int&b){//pass by reference pake & di paramaternya, value asal bisa diubah
- a=b;
- return a+b;
- }
- int main(){
- cout<<endl<<"Normal Constructor : "<<endl;
- data normal;//constructor
- cout<<endl<<"Overload/parameterized Constructor : "<<endl;
- data timpa(10,"makan");//overload constructor
- cout<<endl<<"Copy Constructor(normal) : "<<endl;
- data copyn(normal);//copy constructor (from normal)
- cout<<endl<<"Copy Constructor(overload) : "<<endl;
- data copyo(timpa);//copy constructor(from overload);
- normal.setNimName(100,"abcde");//setter
- cout<<"Via Setter: ";
- cout<<"Nim : "<<normal.getNim()<<", Nama : "<< normal.getNama()<<endl;//getter
- cout<<endl<<"Slide 3 beres,press <enter>"<<endl;
- cin.get();
- char x[100];
- cout<<"Masukan Kalimat : ";
- cin.getline(x,100);cin.sync();cin.clear();//input satu baris
- cout<<"rata kanan : "<<right<<setw(20)<<setfill('.')<<x<<endl;//rigth buat nentuin rata ki/ka,setw buat nentuinbooking space kaya %5c di c,setfill isi kosongnya pake character yg ditentuin.
- cout<<"rata kiri : "<<left<<setw(20)<<setfill('.')<<x<<endl;
- cout<< "Jumlah Character dalam input Kalimat : "<<cin.gcount()-1<<endl;//hitung character harus -1 karena di akhir setiap input c++ ada "/n" yg ditung sebagai 1 character
- float y;
- cout<<"Masukan Angka (dengan koma diatas 10): ";
- cin>>y;cin.sync();cin.clear();
- cout<<"normal: "<< y <<endl;
- cout.setf(ios::showpoint);//biar bisa di desimal
- cout<<"desimal: "<<y<<endl;//default presicion 6
- cout.precision(7);
- cout<<"desimal 7 digit: "<<y<<endl;//yang dilihat jumlah angkanya bukan 7 dibelakang coma
- cout<<"Slide 4 beres,press <enter>"<<endl;
- cin.get();
- cout<<"Fungsi Inline: "<<kaliab(5,2)<<endl;
- setNameViaFriend(normal,"test");//menset nama di object normal tanpa mengunakan setName();
- cout<<"Nim : "<<normal.getNim()<<", Nama : "<< normal.getNama()<<endl;
- cout<<"Slide 5 beres,press <enter>"<<endl;
- cin.get();
- cout <<"(a,b) = (10,20)"<<endl;
- int a=10,b=20;
- cout <<"Hasil Jumlah(a,b)(P.B Value) : " << jumlah(a,b);
- cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
- cout <<"Hasil Jumlah(&a,&b)(P.B Address) : " << jumlah(&a,&b) ;
- cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
- cout <<"Hasil Jumlahreference(a,b)(P.B reffernce) : " << jumlahreference(a,b);
- cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
- cout<<"Slide 6 beres,press <enter>"<<endl;
- cin.get();
- overload awal(10);cetak(awal);
- cout<<"Awal"<<endl;
- overload akhir=awal;cetak(akhir);
- cout<<"Copy dari awal"<<endl;
- overload campur=awal+akhir;cetak(campur);
- cout<<"Jumlah data 1+2"<<endl;
- cin.get();
- cout<<"Bahan Uts Beres,press <enter>"<<endl;
- cin.get();
- system("cls");
- cout<<"Bonus Validasi"<<endl<<"========================="<<endl;
- cout<<"input Harus memiliki 5 kata(tidak lebih tidak kurang), kata pertama disi 'The' kata ke 3 disi dengan lambang & dan kata terakhir harus angka antara 2/3"<<endl;
- cout<<"Contoh input yg benar The Cat & Mouse 3";
- int flag,j=0;
- int s=0;
- do{
- cout<<endl<<"Masukan Judul sesuai ketentuan diatas : ";
- char judul[100];
- cin.getline(judul,100);cin.sync();cin.clear();
- flag =0;//reset semua nya
- j=0;
- s=0;
- do{//cek ada 5 kata ga
- if(judul[j]==' ')
- {
- s++;
- if(s==2&&judul[j+1]=='&')//cek kata ke 3 & bukan
- flag++;//kalo ada & di ke 3 flag tambah 1
- }
- if(s==4)
- flag++;//kalo ada 5 kata flag tambah 1
- j++;
- }while(j<strlen(judul));
- if(judul[0]==('T'||'t')&&judul[1]==('H'||'h')&&judul[2]==('E'||'e'))
- flag++;//kalo kata pertama the flag tambah 1
- if(judul[strlen(judul)-1]=='2'||judul[strlen(judul)-1]=='3')
- flag++;//kalo kata terakhir 2/3 flag tambah 1
- }while(flag!=4);
- system("cls");
- cout<<"Inpur Benar"<<endl<<"======================="<<endl<<"Sukses UTSNYA!!!";
- cin.get();
- //sebelum keluar desructor akan dipanggil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement