Minggu, 12 Mei 2013

Dasar Pemograman Berorientasi Objek


Perbedaan pemograman tradisional dan berorientasi objek adalah pada cara menyelesaikan suatu permasalahan. Pada pemograman tradisional dalam memecahkan suatu masalah, masalah akan dibagi menjadi fungsi-fungsi yang lebih kecil, sedangkan pada pemograman berorientasi objek (PBO) setiap masalah diselesaikan dengan cara dibagi ke dalam objek-objek.

Pada PBO dilakukan pembungkusan data (attributes) dan fungsi (behavior) ke paket yang disebut kelas. Attributes merupakan data yang menggambarkan status internal sebuah objek dan biasanya merupakan “members variables” pada C++, tidak dapat di akses dari luar (enkapsulasi), dan juga sebagai “state”. Methods merupakan fungsi yang mengakses status internal sebuah objek dan biasanya merupakan “member fungtions” pada C++, dapat diakses dari luar, memanipulasi atribut, dan disebut juga “behavior”. Berikut ini merupakan gambaran mengenai objek.


Kelas (class) terdiri dari model objek yang memiliki atribut (data members) dan behaviors (member fungtions), dan member fungtions  yaitu method yang dipanggil sebagai reponse terhadap pesan. Kelas didefinisikan dengan keywordclass.

            Mode akses yang ada pada kelas ada tiga, yaitu private yang merupakan default mode akses dan dapat diakses oleh member fungtions, public  yang dapat diakses oleh setiap Accessible fungsi dalam program, dan protected yang biasanya digunakan untuk pewarisan.

            Fungsi constructor merupakan member fungtions khusus yang menginisialisasi deta members dan memiliki nama yang sama dengan nama kelas. Fungsi constructor dipanggil saat membuat objek dari kelas dan tidak memiliki tipe balikan.

            Member fungtions  yang didefinisikan di luar kelas dilakukan dengan menggunakan binary scope resolution operator (::) yang berfungsi untuk “mengikat” nama fungsi ke nama kelas dan mengidentifikasikan fungsi dari suatu kelas tertentu. Berikut format dari member fungtions.
NilaiBalikan NamaKelas: :NamaFungsi () {
   ……
}
Member fungtions yang didefinisikan di dalam kelas tidak membutuhkan scope resolution operator dan nama kelas.

contoh programnya : 
#include
#include

Class sepeda {
Public:
Sepeda (int, int, int);
Void mengubahPutaran (int);
Void mengubahGir (int);
Void mengerem (int);
Void tampilanInfo ();
Private:
Int kecepatan;
Int putaran;
Int gir;
};

Sepeda: :sepeda (int k, int p, inr g)
{
Kecepatan = k;
Putaran = p;
Gir = g;
}
Void sepeda: :menggubahPutaran (int p)
{
Putaran = p;
}
Void sepeda: : mengubahGir (int g)
{
Gir = g;
}
Void sepeda::mengerem()
{
Cout<< “Kecepatan dan Putaran berkurang ...” ;
}
Void sepeda::tampilInfo()
{
Cout<< “Gir : “ << gir << endl << “kecepatan : “
<
}
Int main()
{
            Sepeda sepeda1(10,60,3),
Sepeda2(4,12,10,
Sepeda3(35,80,5);

Sepeda1.tampilInfo();
Sepeda2.tampilInfo();
Sepeda3.tampilInfo();
-
getch();
return 0;
}
      contoh lainnya, program untuk menghitung volume dan keliling sebuah kotak, dengan rumus V = panjang x lebar x tinggi, dan K = (2 x panjang) + (2 x lebar) + (2 x tinggi). Program tersebut harus memiliki setidaknya 1 (satu) buah classdan 1 (satu) buah constructor.
#include
#include
class kotak
{
      public:
             void vol();
             void kel();
             private:
                     int p,l,t,v,k;
                     };
                     void kotak::vol()
                     {
                          cout<<"Mencari Volume dan Keliling Kotak"<
                          cout<
                          cout<<"masukan panjang : ";cin>>p;
                          cout<<"masukan lebar   : ";cin>>l;
                          cout<<"masukan tinggi  : ";cin>>t;
                          cout<
                          v=p*l*t;
                          cout<<"Volume Kotak adalah : "<
                          }
                          void kotak::kel()
                          {
                               k=(2*p)+(2*l)+(2*t);
                               cout<<"Keliling Kotak adalah : "<
                               }
                          int main()
                          {
                              kotak a;
                              a.vol();
                              cout<
                              cout<
                              a.kel();
                              getch();
                              return 0;
                              }

Tidak ada komentar:

Domo-kun Staring