Pemrograman Berorientasi Objek (Object-Oriented Programming)

 

Pemrograman Berorientasi Objek (Object-Oriented Programming)

OOP atau yang sering di sebut dengan Object-Oriented Programming merupakan, Pemrograman prosedural. OOP adalah tentang menulis prosedur atau fungsi yang melakukan operasi pada data, sedangkan pemrograman berorientasi objek adalah tentang membuat objek yang berisi data dan fungsi. Pemrograman berorientasi objek memiliki beberapa keunggulan dibandingkan pemrograman prosedural,yaitu:

  • Lebih cepat dan lebih mudah untuk mengeksekusi
  • Menyediakan struktur yang jelas untuk program
  • Membantu menjaga kode C ++ DRY "Don't Repeat Yourself", dan membuat kode lebih mudah untuk mempertahankan, memodifikasi, dan men-debug
  • Memungkinkan untuk membuat aplikasi yang dapat digunakan kembali penuh dengan kode yang lebih sedikit dan waktu pengembangan yang lebih pendek.

Prinsip "Jangan Ulangi Diri" (DRY) adalah tentang mengurangi pengulangan kode. Kita harus mengekstrak kode yang umum untuk aplikasi, dan menempatkannya di satu tempat dan menggunakannya kembali.

 

C ++ Apa itu Kelas dan Objek?

Kelas dan objek adalah dua aspek utama dari pemrograman berorientasi objek. Lihat ilustrasi berikut untuk melihat perbedaan antara kelas dan objek:

 

Class

 

Buah

Objek

 

Apel

Pisang

Mangga

 

Jadi, kelas adalah template untuk objek, dan objek adalah contoh dari kelas. Ketika objek individu dibuat, mereka mewarisi semua variabel dan fungsi dari kelas.

 

C++ Class/Objek

Segala sesuatu dalam Bahasa C ++ dikaitkan dengan kelas dan objek, bersama dengan atribut dan metodenya. Misalnya: dalam kehidupan nyata, mobil adalah objek. Mobil ini memiliki atribut, seperti berat dan warna, dan metode, seperti ban dan rem. Atribut dan metode pada dasarnya adalah variabel dan fungsi yang termasuk dalam kelas. Hal ini sering disebut sebagai "anggota kelas".

Kelas adalah tipe data yang ditentukan pengguna yang dapat kita gunakan dalam program, dan berfungsi sebagai konstruktor objek, atau "cetak biru" untuk membuat objek.

Membuat Kelas

Untuk membuat kelas, gunakan kata kunci class:

Contoh

Membuat kelas yang disebut "MyClass":

class MyClass {       // Kelas

  public:             // Penentu akses

    int myNum;        // Atribut (int variable)

    string myString;  // Atribut (string variable)

};

Keterangan:

  1. Kata kunci class digunakan untuk membuat kelas yang disebut MyClass.
  2. Kata kunci public adalah penentu akses, yang menentukan bahwa anggota (atribut dan metode) kelas dapat diakses dari luar kelas.
  3. Di dalam class, ada variabel integer myNum dan variabel string myString. Ketika variabel dinyatakan dalam kelas, mereka disebut atribut.
  4. Akhiri definisi kelas dengan titik koma;.

Membuat Objek

Dalam Bahasa C ++, sebuah objek dibuat dari class. Kita telah membuat kelas bernama MyClass, jadi sekarang dapat menggunakan ini untuk membuat objek. Untuk membuat objek MyClass, tentukan nama kelas, diikuti dengan nama objek. Untuk mengakses atribut kelas (myNum dan myString), gunakan sintaks titik (.) pada objek:

 

Contoh

Membuat objek yang disebut "myObj" dan mengakses atribut:

#include <iostream>

#include <string>

using namespace std;

 

class MyClass {       

  public:            

    int myNum;       

    string myString; 

};

 

int main() {

  MyClass myObj; 

 

  // Mengakses atribut dan mengatur nilai

  myObj.myNum = 15;

  myObj.myString = "Some text";

 

  // Mencetak nilai

  cout << myObj.myNum << "\n";

  cout << myObj.myString;

  return 0;

}

 

Class Methods

Metode adalah fungsi yang termasuk dalam kelas. Ada dua cara untuk mendefinisikan fungsi yang termasuk dalam kelas:

  • Definisi di dalam kelas
  • Definisi di luar kelas

Dalam contoh berikut, kita mendefinisikan fungsi di dalam kelas, dan kita menamakannya "myMethod".

Perlu di perhatikan untuk mengakses metode seperti  kita mengakses atribut; dengan membuat objek kelas dan menggunakan sintaks titik (.):

#include <iostream>

using namespace std;

 

class MyClass {        

  public:              

    void myMethod() {  

      cout << "Hello World!";

    }

};

 

int main() {

  MyClass myObj;     // Membuat objek dari MyClass

  myObj.myMethod();  // Memanggil method

  return 0;

}

 

Untuk menentukan fungsi di luar definisi kelas, Anda harus mendeklarasikannya di dalam kelas dan kemudian mendefinisikannya di luar kelas. Hal ini dilakukan dengan specifiying nama kelas, diikuti resolusi lingkup :: operator, diikuti dengan nama fungsi:

#include <iostream>

using namespace std;

 

class MyClass {         //

  public:               //

    void myMethod();    // Deklarasi Metode/fungsi

};

 

// Definisi metode/fungsi di luar kelas

void MyClass::myMethod() {

  cout << "Hello World!";

}

 

int main() {

  MyClass myObj;     // Membuat objek dari MyClass

  myObj.myMethod();  // Memanggil method

  return 0;

}

 

Konstruktor

Konstruktor dalam bahas C ++ adalah metode khusus yang secara otomatis disebut ketika objek kelas dibuat. Untuk membuat konstruktor, gunakan nama yang sama dengan kelas, diikuti dengan tanda kurung ():

 

Contoh

class MyClass { // Kelas

  public: // Penentu akses

    MyClass() { // Konstruktor

      cout << "Hello World!";

    }

};

int main() {

  MyClass myObj;    //Buat objek MyClass (ini akan memanggil konstruktor)

  return 0;

}

 

Catatan: Konstruktor memiliki nama yang sama dengan class, selalu public, dan tidak memiliki nilai pengembalian.

 

Parameter Konstruktor

Konstruktor juga dapat mengambil parameter (seperti fungsi biasa), yang dapat berguna untuk menetapkan nilai awal untuk atribut. Kelas berikut memiliki atribut merek, model dan tahun, dan konstruktor dengan parameter yang berbeda. Di dalam konstruktor kami mengatur atribut yang sama dengan parameter konstruktor (brand = x, dll). Ketika kita memanggil konstruktor (dengan membuat objek kelas), kita meneruskan parameter ke konstruktor, yang akan mengatur nilai atribut yang sesuai:

#include <iostream>

using namespace std;

 

class Car {       

  public:         

    string brand; 

    string model; 

    int year;     

    Car(string x, string y, int z) {  // Constructor dengan parameters

      brand = x;

      model = y;

      year = z;

    }

};

 

int main() {

  // Buat objek Mobil dan panggil konstruktor dengan nilai yang berbeda

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);

 

  // Mencetak nilai

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

Sama seperti fungsi, konstruktor juga dapat didefinisikan di luar kelas. Pertama, nyatakan konstruktor di dalam kelas, dan kemudian definisikan di luar kelas dengan menentukan nama kelas, diikuti oleh resolusi lingkup :: operator, diikuti dengan nama konstruktor (yang sama dengan kelas):

#include <iostream>

using namespace std;

 

class Car {       

  public:         

    string brand; 

    string model; 

    int year;     

    Car(string x, string y, int z);

};

 

// Definisi konstruktor di luar kelas

Car::Car(string x, string y, int z) {

  brand = x;

  model = y;

  year = z;

}

 

int main() {

  // Buat objek Mobil dan panggil konstruktor dengan nilai yang berbeda

  Car carObj1("BMW", "X5", 1999);

  Car carObj2("Ford", "Mustang", 1969);

 

  // Mencetak nilai

  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";

  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";

  return 0;

}

 

Akses Penentu

Sekarang, kita cukup sering dengan kata kunci public yang muncul di semua contoh class:

Contoh

class MyClass { 

  public:       

    // Anggota kelas pergi ke sini

};

Kata kunci publik adalah penentu akses. Penentu akses menentukan bagaimana anggota (atribut dan metode) dari kelas dapat diakses. Dalam contoh di atas, anggota bersifat publik - yang berarti bahwa mereka dapat diakses dan dimodifikasi dari luar kode. Namun, bagaimana jika kita ingin anggota menjadi Private dan tersembunyi dari dunia luar?

Dalam Bahasa C ++, ada tiga penentu akses:

  • public - Anggota dapat diakses dari luar kelas
  • private - anggota tidak dapat diakses (atau dilihat) dari luar kelas
  • protected - Anggota tidak dapat diakses dari luar kelas, namun, mereka dapat diakses di kelas pewarisan.

Dalam contoh berikut, menunjukkan perbedaan antara public and private members:

Contoh

#include <iostream>

using namespace std;

 

class MyClass {

  public:    // Public access specifier

    int x;   // Public attribute

  private:   // Private access specifier

    int y;   // Private attribute

};

 

int main() {

  MyClass myObj;

  myObj.x = 25;  // Allowed (x is public)

  myObj.y = 50;  // Not allowed (y is private)

  return 0;

}

Share on :

24 Responses to "Pemrograman Berorientasi Objek (Object-Oriented Programming)"

  1. Alfisah Damayanti_2155201110006

    BalasHapus
  2. muhammad nur hafillurin 215520110033

    BalasHapus
  3. Muhammad Ubaidillah_2155201110003

    BalasHapus
  4. Muhammad Zulfan Reva Maulana_2155201110024

    BalasHapus
  5. Nur Aina Susanti_2155201110027

    BalasHapus
  6. Fiqri Pramudya Adiyatma_2155201110013

    BalasHapus
  7. Khanda ahmad sukmawan_2155201110035

    BalasHapus
  8. Muhamad Bagad Bimantara_2155201110018

    BalasHapus
  9. Muhammad Iqbal adha_2155201110021

    BalasHapus