Advertisement
akevintg

Bahan UTS PBO

Apr 28th, 2014
600
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.78 KB | None | 0 0
  1. #include<iostream>// cout,cin,cin.get(),cin sync(),cin.clear(),cin.gcount(yg mau ditung(semua itungan +1!!)),cin.getline(nama var,panjangnya)
  2. #include<string>// string
  3. #include<iomanip>//fixed,setprecision
  4.  
  5. using namespace std;
  6.  
  7. class data{
  8. private :
  9.     friend void setNameViaFriend(data &x,string name){
  10.         x.nama=name;
  11.     }
  12.     int nim;
  13.     string nama;
  14. public :
  15.     data(){//constructor
  16.         cout<<"Object Born..."<<endl;
  17.         nim=0;
  18.         nama="Anonim";cout<< nim << nama<<endl;
  19.     }
  20.     data(int a,string b=""){//overload constructor dengan int a dan string b
  21.         cout<<"Object has been overload"<<endl;
  22.         nim=a;
  23.         nama=b;cout<< nim << nama<<endl;
  24.     }
  25.     data(const data &x){//copy constructor dengan mengambil paramater di dalam ke data baru
  26.         cout<<"object has been copied"<<endl;
  27.         nim=x.nim;
  28.         nama=x.nama;
  29.         cout<< nim <<nama <<endl;
  30.     }
  31.     void setNimName(int x,string y){//setter(setter=implentor)
  32.         nim=x;
  33.         nama=y;
  34.     }
  35.     const int getNim(){//getter(getter=accesor)//buat fungsi getter biasakan pake const
  36.         return nim;
  37.     }
  38.     const string getNama(){//getter
  39.         return nama;
  40.     }
  41.     ~data(){//destructor
  42.         cout<<"All Object has been deleted"<<endl;
  43.     }
  44.    
  45. };
  46.  
  47. class overload{
  48. private :
  49.     int angka;
  50. public :
  51.     overload (){
  52.         angka=0;
  53.     }
  54.     overload(int x){//constructor
  55.         angka=x;
  56.     }
  57.     friend void cetak(overload &x){
  58.         cout<<"Angka "<<x.angka<<endl;
  59.     }
  60.     overload& overload::operator=(const overload &x){//overloading assignment =
  61.         angka=x.angka;
  62.     }
  63.     overload overload::operator+(const overload &x){//overloading assignment +
  64.         overload temp;
  65.         temp.angka=(this->angka+x.angka);
  66.         return temp.angka;
  67.     }
  68. };
  69.  
  70. inline int kaliab(int a, int b){//fungsi inline
  71.     return a*b;
  72. }
  73.  
  74. int jumlah(int a,int b){//pass by vale,tidak mengubah value asal(a,b)
  75.     return a+b;
  76. }
  77.  
  78. 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();
  79.     *a=5;
  80.     *b=10;
  81.     return *a+*b;
  82. }
  83.  
  84. int jumlahreference (int &a,int&b){//pass by reference pake & di paramaternya, value asal bisa diubah
  85.     a=b;
  86.     return a+b;
  87. }
  88.  
  89. int main(){
  90.     cout<<endl<<"Normal Constructor : "<<endl;
  91.     data normal;//constructor
  92.     cout<<endl<<"Overload/parameterized Constructor : "<<endl;
  93.     data timpa(10,"makan");//overload constructor
  94.     cout<<endl<<"Copy Constructor(normal) : "<<endl;
  95.     data copyn(normal);//copy constructor (from normal)
  96.     cout<<endl<<"Copy Constructor(overload) : "<<endl;
  97.     data copyo(timpa);//copy constructor(from overload);
  98.     normal.setNimName(100,"abcde");//setter
  99.     cout<<"Via Setter: ";
  100.     cout<<"Nim : "<<normal.getNim()<<", Nama : "<< normal.getNama()<<endl;//getter
  101.     cout<<endl<<"Slide 3 beres,press <enter>"<<endl;
  102.     cin.get();
  103.     char x[100];
  104.     cout<<"Masukan Kalimat : ";
  105.     cin.getline(x,100);cin.sync();cin.clear();//input satu baris
  106.     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.
  107.     cout<<"rata kiri : "<<left<<setw(20)<<setfill('.')<<x<<endl;
  108.     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
  109.     float y;
  110.     cout<<"Masukan Angka (dengan koma diatas 10): ";
  111.     cin>>y;cin.sync();cin.clear();
  112.     cout<<"normal: "<< y <<endl;
  113.     cout.setf(ios::showpoint);//biar bisa di desimal
  114.     cout<<"desimal: "<<y<<endl;//default presicion 6
  115.     cout.precision(7);
  116.     cout<<"desimal 7 digit: "<<y<<endl;//yang dilihat jumlah angkanya bukan 7 dibelakang coma
  117.     cout<<"Slide 4 beres,press <enter>"<<endl;
  118.     cin.get();
  119.     cout<<"Fungsi Inline: "<<kaliab(5,2)<<endl;
  120.     setNameViaFriend(normal,"test");//menset nama di object normal tanpa mengunakan setName();
  121.     cout<<"Nim : "<<normal.getNim()<<", Nama : "<< normal.getNama()<<endl;
  122.     cout<<"Slide 5 beres,press <enter>"<<endl;
  123.     cin.get();
  124.     cout <<"(a,b) = (10,20)"<<endl;
  125.     int a=10,b=20;
  126.     cout <<"Hasil Jumlah(a,b)(P.B Value) : " << jumlah(a,b);
  127.     cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
  128.     cout <<"Hasil Jumlah(&a,&b)(P.B Address) : " << jumlah(&a,&b) ;
  129.     cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
  130.     cout <<"Hasil Jumlahreference(a,b)(P.B reffernce) : " << jumlahreference(a,b);
  131.     cout<<", Nilai A : "<<a<<", Nilai B : "<<b<<endl;
  132.     cout<<"Slide 6 beres,press <enter>"<<endl;
  133.     cin.get();
  134.     overload awal(10);cetak(awal);
  135.     cout<<"Awal"<<endl;
  136.     overload akhir=awal;cetak(akhir);
  137.     cout<<"Copy dari awal"<<endl;
  138.     overload campur=awal+akhir;cetak(campur);
  139.     cout<<"Jumlah data 1+2"<<endl;
  140.     cin.get();
  141.     cout<<"Bahan Uts Beres,press <enter>"<<endl;
  142.     cin.get();
  143.     system("cls");
  144.     cout<<"Bonus Validasi"<<endl<<"========================="<<endl;
  145.     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;
  146.     cout<<"Contoh input yg benar The Cat & Mouse 3";
  147.     int flag,j=0;
  148.     int s=0;
  149.     do{
  150.         cout<<endl<<"Masukan Judul sesuai ketentuan diatas : ";
  151.         char judul[100];
  152.         cin.getline(judul,100);cin.sync();cin.clear();
  153.         flag =0;//reset semua nya
  154.         j=0;
  155.         s=0;
  156.         do{//cek ada 5 kata ga
  157.             if(judul[j]==' ')
  158.             {
  159.                 s++;
  160.                 if(s==2&&judul[j+1]=='&')//cek kata ke 3 & bukan
  161.                     flag++;//kalo ada & di ke 3 flag tambah 1
  162.             }
  163.             if(s==4)
  164.                 flag++;//kalo ada 5 kata flag tambah 1
  165.             j++;
  166.         }while(j<strlen(judul));
  167.         if(judul[0]==('T'||'t')&&judul[1]==('H'||'h')&&judul[2]==('E'||'e'))
  168.             flag++;//kalo kata pertama the flag tambah 1
  169.         if(judul[strlen(judul)-1]=='2'||judul[strlen(judul)-1]=='3')
  170.             flag++;//kalo kata terakhir 2/3 flag tambah 1
  171.     }while(flag!=4);
  172.     system("cls");
  173.     cout<<"Inpur Benar"<<endl<<"======================="<<endl<<"Sukses UTSNYA!!!";
  174.     cin.get();
  175.     //sebelum keluar desructor akan dipanggil
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement