Senin, 04 Oktober 2010

Praktikum Struktur Data I


Konstruksi Program C++

==> Program :
#include
#include

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:"<<
 out<<"Bagian float:"<<
 return out;
 }

 void bilangan::banding_int(const bilangan& x, const bilangan& y)
 {
      if(x.a > y.a)cout<<<"::x lebih besar dari"<<<"::y";
      else cout<<<"::x lebih kecil dari"<<<"::y";
      }
      
 bilangan& bilangan::operator=(const bilangan& x)
 {a=x.a;
  b=x.b;
  return*this;
  }
  istream& operator>>(istream& in, bilangan& x)
  {cout<<"\nmasukkan bagian integer:";
   in>>x.a;
   cout<<"Masukkan 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(int argc, char *argv[])
{     bilangan s,t(-2,-3.14),d;
     cout<<"Nilai awal s\n";
     cout<<"Nilai awal t dari deklarasi\n"<
     s=t;
     cout<<"Setelah s di-assign t\n";
     cout<<"Nilai s\n"<
     cout<<"Masukkan nilai-nilai objek d";
     cin>>d;
     cout<<"Setelah d+t=>\n"<
     cout<<"Nilai d dinegatifkan\n"<<-d;
     
    system("PAUSE");
    return EXIT_SUCCESS;
}

==> PostTest
Pada bagian ini merupakan hasil dari praktikum yang saya lakukan, mencakupi jawaban pertanyaan Post Test itu sendiri.
Dari source code diatas mana yang merupakan :

1.Bagian class:

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;
       };      

2.Bagian Konstruktor:

 bilangan(int a0=0,float b0=0.0):a(a0),b(b0){}

3.Bagian Method:

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

4.Bagian Data Member:

 int a;
 float b;

5.Bagian operator overloading:

a. Overloading sebagai friend

 friend ostream& operator<<(ostream&, const bilangan&);
 friend istream& operator>>(istream&, bilangan&);

 b. Overloading sebagai anggota class
 
 bilangan& operator=(const bilangan&);
 bilangan operator+(const bilangan&)const;
 bilangan operator-()const;

==> Analisis

OOP adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan. Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi.
Karena OOP merupakan teknik pembuatan program, maka ada pendekatan yang digunakan. Ada aturan yang harus diikuti saat menyusun programnya, dan ada tools yang digunakan untuk menuliskan programnya.

Tiga Konsep OOP
Pemrograman berorientasi objek memiliki tiga konsep dasar yang penting, yaitu enskaplusi, pewarisan, dan polimorfisme.
Enkapsulasi berarti objek memuat data dan instruksi pemrosesan yang relevan. Setelah objek dibuat, objek dapat digunakan kembali untuk program lain. Pemahaman mudahnya kita ambil satu contoh : Kalkulator, yang anda tau mempunyai fungsi untuk berhitung, waktu anda membeli kalkulator tentunya anda hanya memilih kualitas kalkulator yang bagus, itu yang terpenting. Anda tidak perduli bagaimana cara rangkaian mesin digital yang bekerja didalam kalkulator itu. Intinya kita hanya perlu tau apa kegunaannya, bagaimana cara memakainya dan hasilnya apa.
setelah mencipatakan sebuah objek. Anda dapat menggunakanya sebagai fondasi untuk objek yang sama yang memilliki perilaku atau karakteristik sama. Semua objek berasal dari atau yang saling berhubungan bisa membntuk suatu kelas. Masing-masing kelas memuat instruksi khusus (method) yang unik untuk kelompok tersebut.
Pewarisan (inheritance), setelah mencipatakan sebuah objek. Anda dapat menggunakannya sebagai fondasi untuk objek yang sama yang memilliki perilaku atau karakteristik sama. Semua objek berasal dari atau yang saling berhubungan yang bisa membentuk suatu class. Masing-masing kelas memuat instruksi khusus (method) yang unik untuk kelompok tersebut.
intinya adalah mengembangkan class yang sudah ada. Jadi anda tidak perlu membuat dari awal lagi, class yang sudah ada bisa dimodifikasi dan/atau ditambah fungsinya sesuai dengan kebutuhan. Contoh mudahnya adalah apabila anda mempunyai handphone, mungkin dulu hp anda hanya sebatas bisa telpon dan sms saja, setelah ditambah atau dimodifikasi sekarang hp anda sudah bisa untuk akses internet atau bermain game.
Jadi, dengan pewarisan semua perubahan itu tidak merubah semua objek yang ada, tetapi hanya menambah dan memodifikasi dengan mempertahankan objek (class) yang sudah ada.
Polimorfisme, Dalam pemrograman berorientasi objek, polimorfisme berarti sebuah pesan (permintaan yang sudah digeneralisasi) memberikan hasil yang berbeda berdasarkan objek yang dikirimkan. Intinya dengan satu baris perintah kita bisa menggunakannya untuk berbagai keperluan. Ilustrasi mudahnya adalah contoh anda perhatikan tombol “Play”, tombol ini pada semua alat mempunyai fungsi yang sama untuk menjalankannya, padahal kalo anda perhatikan tombol “Play” pada remote tv atau radio bahkan vcd mempunyai cara kerja yang berbeda satu sama lain.
Inti Polimorpisme adalah objek yang anda gunakan ini bisa berubah sesuai dengan kondisi yang terjadi. Jadi anda tidak perlu menulis kode program panjang-panjang.

Selasa, 01 Juni 2010

Source Code C++ "Sederhananya Kalkulator Saya"


Suatu hari saya ditanyain dosen Matik 4 pangkat 24 . . $_$. Nah lo!! Ngitung pake jari mpe berapa lap juga gak bakalan selesai. Terlanjur dendam kesumat ma ntu dosen saya lampiaskan buat program kalkuator ini. Check this out!!! 


#include <iostream>
#include <math.h>
#include <cstdlib>


using namespace std;
class kalkulasi {
      friend istream& operator>>(istream&, kalkulasi&);
      friend ostream& operator<<(ostream&, const kalkulasi&);
      public:
             void pilihan();
      private:
              long double a,m,r,n;
      };


      void kalkulasi::pilihan(){
                  if (n==1){
                  a=m+r;
                  }
                  else if (n==2){
                  a=m-r;
                  }
                  else if(n==3){
                  a=m*r;
                  }
                  else if(n==4){
                  a=m/r;
                  }
                  else if(n==5){
                  a=pow(m,1.0/r);
                  }
                  else if(n==6){
                  a=pow(m,r);}
                 else {
                      cout<<"kami tidak menyediakan perhitungan selain ke 6 diatas\n";
                      }
                 }


      istream& operator>>(istream& in, kalkulasi& input){
      cout<<"^+^^++===================++^^+^ "<<endl;
      cout<<"^  KALKULATORKU KALKULATORMU  ^ "<<endl;
      cout<<"^    DIJAMIN KETEPATANNYA     ^ "<<endl;
      cout<<"^+^^++===================++^^+^ "<<endl<<endl<<endl;
      cout<<"OPERASI PERHITUNGAN YANG KAMI SEDIAKAN"<<endl<<endl;
      cout<<"\n1.Penjumlahan\n2.Pengurangan\n3.Perkalian\n4.Pembagian\n5.Pengakaran\n6.Pemangkatan\n" <<endl;
       cout<<"PILIH PERHITUNGAN YANG ANDA INGINKAN :"<<endl;
      in >>input.n;
      cout<<endl;
      cout<<"MASUKKAN ANGKA YANG ANDA INGINKAN :\n ";
      in>>input.m>>input.r;
      cout<<endl;
       
      return in;
      }
      
      ostream& operator<<(ostream& out, const kalkulasi& output){
      out<<output.a;
      return out;
      }


int main()
{
    kalkulasi k;
    cin>>k;
    k.pilihan();
    cout<<"HASILNYA : "<<k<<endl;
    system("PAUSE");system("cls");
return main();
}