Selasa, 28 September 2010

praktikum Sdata rabu 09.00


//DESTA ARIANTI
//09018291

#include <iostream>
using namespace std;
class Bilangan {
      friend ostream& operator<<(ostream&, const Bilangan&) ;
      friend istream& operator>>(istream&, Bilangan&);
public:
       Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
       void banding_int (const Bilangan&, const Bilangan&);
       Bilangan& operator =(const Bilangan&);
       Bilangan operator +(const Bilangan&) const;
       Bilangan operator -() const ;
private:
        int a;
        float b;
        };
       
ostream& operator<<(ostream& out, const Bilangan& x){
         out <<"Bagian integer :"<<x.a<<endl;
         out <<"Bagian float :"<<x.b<<endl;
return out;
}

void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
     if (x.a>y.a)cout<<x.a<<"::x lebih besar dari "<<y.a<<"::y";
     else cout <<x.a<<"::x lebih kecil"<<y.a<<"::y";
     }
    
     Bilangan& Bilangan ::operator =(const Bilangan& x)
     {
               a=x.a;
               b=x.b;
               return *this;
               }
     istream& operator>>(istream& in ,Bilangan& x)
     {
              cout<<"\nMasukan bagian integer :";
              in>>x.a;
              cout<<"masukan bagian float :";
              in>>x.b;
              return in ;
              }
              
     Bilangan Bilangan ::operator+(const Bilangan& x) const
     {
              Bilangan cc;
              cc.a=a+x.a;
              cc.b=b+x.b;
              return cc;
              }
             
     Bilangan Bilangan ::operator -() const
     { Bilangan x;
     x.a=-a;
     x.b=-b;
     return x;
     }
    
     int main () {
          Bilangan s , t (-2,3.14),d;
          cout<<"Nilai awal s\n"<<s;
          cout<<"Nilai awal t dari deklarasi\n"<<t;
          s=t;
          cout<<"Setelah s di-assign t \n";
          cout<<"nilai s\n"<<s;
          cout<<"masukan nilai-nilai objek d";
          cin>>d;
          cout<<"setelah d +t =>\n"<<d+t;
          cout<<"nilai d dinegatifkan\n"<<-d;
          system ("PAUSE");
          return EXIT_SUCCESS;
          }

NAMA    : DESTA ARIANTI
NIM    : 09018291

3. A. KELAS
class Bilangan {
      friend ostream& operator<<(ostream&, const Bilangan&) ;
      friend istream& operator>>(istream&, Bilangan&);
public:
       Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
       void banding_int (const Bilangan&, const Bilangan&);
       Bilangan& operator =(const Bilangan&);
       Bilangan operator +(const Bilangan&) const;
       Bilangan operator -() const ;
private:
        int a;
        float b;
        };

  B. KONSTRUKTOR
void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
     if (x.a>y.a)cout<<x.a<<"::x lebih besar dari "<<y.a<<"::y";
     else cout <<x.a<<"::x lebih kecil"<<y.a<<"::y";
     }
    
     Bilangan& Bilangan ::operator =(const Bilangan& x)
     {
               a=x.a;
               b=x.b;
               return *this;

  C. METHOD
 int a;
        float b;
        };

  D. DATA MEMBER
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
       void banding_int (const Bilangan&, const Bilangan&);
       Bilangan& operator =(const Bilangan&);
       Bilangan operator +(const Bilangan&) const;
       Bilangan operator -() const ;

  E. OPERATOR OVERLOADING
      friend ostream& operator<<(ostream&, const Bilangan&) ;
      friend istream& operator>>(istream&, Bilangan&);
         
         

6 komentar:

  1. itu methodnya bener yang itu ????kayaknya method itu fungsi....
    tapi aq juga belum tau yang mana....:-)

    BalasHapus
  2. des jawabannya uda yakin bener ???

    BalasHapus
  3. Des...pnyamu da yg slah kya yg data member kan
    seharuse dari :
    private:
    int a;
    float b;

    BalasHapus
  4. ckckc .. yang ngomentarin .. :D :D desta , mika , arum .. di bolak balik juga itu terus ... pis

    BalasHapus
  5. betul mas.. comentnya cm itu itu thok orangnya..wkwk,

    Desta, mw tanya..
    1. Jawaban itu apakah udh yakin bener semua,?
    Bukankah yang namanya konstruktor itu nama nya seperti nama class tersebut, dan tidak ada nilai kembaliannya ?
    kok void banding_int(const Bilangan&, const Bilangan&); disertakan dalam konstruktor,?

    2. Apakah methodnya bener yang itu ?
    bukankah itu yang biasa disebut sebagai data member ?

    3. Kemudian benarkah dalam program tersebut hanya ada 2 operator overloading ?
    Lalu, apakah ini bukan merupakan operator overloading ?

    Bilangan& operator =(const Bilangan&);
    Bilangan operator +(const Bilangan&) const;
    Bilangan operator -() const ;

    Operator overloading tidak harus input dan output saja bukan ?

    BalasHapus
  6. wew...
    kalo menurut aku sih ni...
    ya bener itu kayak gini...

    a. class :

    class Bilangan {
    friend ostream& operator<>(istream&,const Bilangan&);
    public :
    Bilangan(int a0=0, float b0=0.01) : a(a0), b(b0) { }
    void banding_int(const Bilangan&, const Bilangan&);
    Bilangan& operator=(const Bilangan&);
    Bilangan operator+(const Bilangan&) const;
    Bilangan operator-()const;
    private:
    int a;
    float b;
    };

    b. konstruktor :

    Bilangan(int a0=0, float b0=0.01) : a(a0), b(b0) { }

    c. Method =

    void banding_int(const Bilangan&, const Bilangan&);

    d.Data member :

    int a;
    float b;

    e.Operator overloading :

    as a friend :

    friend ostream& operator<>(istream&,const Bilangan&);
    as a class member :

    Bilangan& operator=(const Bilangan&);
    Bilangan operator+(const Bilangan&) const;
    Bilangan operator-()const;

    BalasHapus