Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan




Pengertian


Pemrograman Berorientasi Objek (PBO) atau bahasa asingnya adalah Object Oriented Programming (OOP) merupakan sebuah paradigma atau teknik pemrograman yang berorientasikan Objek. Pada OOP, Fungsi dan variabel dibungkus dalam sebuah objek atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program.

Di dalam OOP terdapat Class dan Objek. Class adalah blueprint atau prototype atau rancangan cetakan untuk membuat sebuah objek. Sedangkan objek adalah (instansi) perwujudan dari sebuah class.

Contoh Class :

class namaClass(){
}


Contoh Objek :

NamaClass namaObjek = new NamaClass();


Kata kunci new berfungsi untuk membuat objek baru dari class tertentu. Setelah membuat objek, kita bisa mengakses atribut dan method dari objek tersebut. Berikut ini merupakan contoh codingan untuk mengakses atribut dan method.

Contoh :

namaObj.namaMethod();
namaObj.atribut1;

Tanda titik (.) berfungsi untuk mengakses atribut dan method.


Konsep Dasar OOP


Berikut ini merupakan konsep - konsep dasar OOP adalah sebagai berikut.

1. Class


Di dalam sebuah objek Class merupakan prototype atau rancangan yang menafsirkan variabel dan berbagai method pada sebuah objek tertentu. Fungsinya adalah untuk menampung konten atau isi dari sebuah program yang akan dijalankan. Dengan kata lain, kelas/class adalah rancangan atau prototype dari sebuah objek dalam pemrograman berorientasi objek.

Untuk mempermudah kita memahami tentang class, salah satu contoh dari class adalah class person, class animal, class vehicle, class fruit, dan lain-lain. Dalam bidang pemrograman, sebuah class haruslah dapat dikenali bahkan oleh orang bukan programmer, karena class merupakan dasar dari sebuah program.

Contoh class :

class namaClass(){
}

class Mahasiswa(){
}


2. Objek


Yang dimaksud dengan objek dalam pemrograman berorientasi objek adalah kumpulan perangkat lunak yang terdiri dari metode-metode dan variabel yang saling berkaitan. Objek juga merupakan wujud nyata dari prototype atau rancangan yang disebutkan dalam class tadi.

Contoh :

NamaClass namaObjek = new NamaClass();

Mahasiswa mhs = new Mahasiswa();


3. Atribut


Atribut adalah variabel global yang dimilki sebuah kelas, contoh :

class Mahasiswa(){
//atribut String nama; int npm;
}


4. Method


Method atau metode merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu objek. Method didefinisikan pada class, namun dipanggil melalui objek. Contoh, pada objek buah pear: terdapat ‘metode ambil rasa’, ‘kupas kulit’ dan lain-lain.

Dalam pemrograman berorientasi objek, method merupakan kumpulan dari berbagai program yang memiliki nama. Ini adalah alat yang digunakan oleh seorang programmer dalam memecah sebuah program menjadi bagian yang kecil-kecil dan kompleks sehingga dapat digunakan berulang kali.

Contoh :

class LuasPersegiPanjang(){
   //atribut
   int panjang;
   int lebar;

   //method
   int hitung(panjang, lebar){
   int hasil;
   hasil = panjang * lebar;
   return hasil;
   }
}


5. Enkapsulasi


Enkapsulasi adalah suatu bentuk dimana pengguna dari sebuah objek tidak dapat mengganti atau mengubah (memodifikasi) suatu keadaan dari sebuah objek dengan cara yang tidak layak, oleh karena itu keadaan ini hanya dapat dimodifikasi sesuai dengan ketentuan yang terdapat di dalam objek tersebut. Begitupun ketika kita ingin mengganti interfacenya haruslah memenuhi aturan dari objek yang bersangkutan. Objek yang lainnya tidak akan tergantung dengan objek tersebut.

Berikut ini merupakan macam - macam Enkapsulasi :

Visibility Public Protected Default Private
From the same class Yes Yes Yes Yes
From any class in the same package Yes Yes Yes No
From a sub-class in the same package Yes Yes (Package, Inheritance) Yes (Package) No
From a sub-class outside the same package Yes Yes (Inheritance) No No
From any non sub-class class outside the package Yes No No No


Contoh penggunaan :

public class LuasPersegiPanjang(){
   //atribut
   private int panjang;
   private int lebar;

   //method
   public int hitung(panjang, lebar){
      int hasil;
      hasil = panjang * lebar;
      return hasil;
   }
}


Pola enkapsulasi paling sering yang digunakan oleh class adalah public, atribut adalah private, dan method adalah public. Kenapa? supaya class dapat diakses semuanya, method juga sama, tapi tidak dengan atribut. Atribut di beri private agar hanya kelas itu saja yang bisa mengolah variabel itu. Untuk mengakses nilai atribut dibuatlah method GET dan SET supaya bisa diakses semua, seperti dibawah ini.


public class LuasPersegiPanjang(){
   //atribut
   private int panjang;
   private int lebar;

   //method
   public int hitung(panjang, lebar){
      int hasil;
      hasil = panjang * lebar;
      return hasil;
   }
   public void setPanjang(int panjang){
      this.panjang = panjang;
   }
   public void setLebar(int lebar){
      this.lebar = lebar;
   }
   public int getPanjang(){
      return this.panjang;
   }
   public int getLebar(){
      return this.lebar;
   }
}


6. Inheritance


Inheritance itu adalah sebuah konsep, konsep pewarisan. Jadi seperti bapak dan anak, bapak mewarisi sifat ke anak.

Di dalam kasus java, sebuah kelas (super class) dapat menurunkan sifatnya (berupa atribut dan method dengan syarat enkapsulasi yang) kepada anaknya (sub class).

Contoh super class :

class Superclass{
   int umur; 
   //ini namanya konstruktor 
   Superclass(int umur) { 
      this.umur = umur; 
   } 
   public void getUmur(){ 
      System.out.println("umur : " + umur); 
   } 
}


Contoh sub class :

public class Subclass extends Superclass {
   //subclass dapat menggunakan atribut super class
   Subclass(int umur) {
      super(umur);
   }

   public static void main(String arguments[]) {
      //subkelas dapat menggunakan metode super kelas
      Subclass s = new Subclass(24);
      s.getUmur();
   }
}


Penjelasanya :

Untuk mewarisi sifat yang dimiliki super class kita menggunakan keyword “extends”. Jadi, kita bebas menggunakan atribut ataupun method yang dimiliki super class, namun super class tidak dapat menggunakan atribut dan metode yang dimiliki sub kelasnya.

Untuk kasus lainnya dikarenakan satu sub class hanya boleh meng-extends satu super class dan apabila sub class ingin menggunakan method dari class lainnya, digunakanlah interface.

Sebagai contoh :

interface Bicycle {
   //wheel revolutions per minute
   void changeCadence(int newValue);
   void changeGear(int newValue);
   void speedUp(int increment);
   void applyBrakes(int decrement);
}


7. Abstraksi


Abstraksi merupakan kemampuan dari sebuah program untuk melewati aspek informasi yang diproses olehnya, atau bisa juga disebut sebagai kemampuan untuk memfokuskan pada intinya. Setiap objek dalam sistem OOP merupakan model dari “pelaku” abstrak yang dapat melakukan suatu pekerjaan, pelaporan dan perubahan pada keadaannya, dan melakukan komunikasi dengan objek lainnya yang ada di dalam sistem suatu program, tanpa memperlihatkan bagaimana hal ini diterapkan.

Contoh :

//kelas Abstrak
public abstract class komponen {

   //method Abstrak
   abstract void bahan_bahan();
   abstract void peralatan();
   abstract void proses_pembuatan();
}


Kelebihan dan Kekurangan OOP


Berikut ini merupakan kelebihan dan kekurangan OOP.

Kelebihan OOP :

  1. Improved software-development productivity
    • Modularity : Pembuatan program dengan membuat modul-modul berupa object.
    • Flexibility : Sistem Program dapat dimodifikasi tanpa melibatkan banyak modul, hanya object yang terlibat saja.
    • Extensibility : Class Object dapat dikembangkan dengan menambahkan attributes dan behaviors baru.
    • Expandability : Sistem Program dapat dikembangankan sampai skala yang paling kompleks (large scale software system).
    • Reusability : Class Object dipakai lagi pada lintas aplikasi program.
  2. Improved software maintainability
    Karena desainnya modular, bagian dari software system dapat dengan mudah di-maintain jika ada perubahan meskipun dalam skala yang besar.
  3. Faster development
    OOP disupport oleh banyak library object yang reusable, sehingga mempercepat penyelesaian program dan juga project berikutnya.
  4. Lower cost of development
    Faster development tentu akan mengurangi biaya pengembangan proyek software.
  5. Higher-quality software
    Faster development akan memberikan lebih banyak waktu dan resource untuk melakukan proses verification software. Banyak library object yang digunakan juga sudah teruji.


Kekurangan OOP :

  1. Lebih kompleks untuk dipelajari.
  2. Untuk beberapa programmer, butuh waktu untuk terbiasa dengan OOP. Program OOP yang komprehensif melibatkan banyak konsep, seperti abstraction, inheritance dan polymorphism.
  3. Ukuran program OOP lebih besar dibandingkan dengan program POP (Procedural Oriented Programming).
  4. Runtime program OOP lebih lambat dari pada POP karena ukurannya lebih besar.
  5. Tidak semua masalah program diselesaikan dengan OOP. Beberapa solusi lebih efisien menggunakan POP atau programming style yang lain.


Cukup sekian artikel mengenai Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan. Semoga bermanfaat bagi para pembaca, jangan lupa untuk membagikan artikel ini kepada teman - teman yang lainnya agar ilmu ini terus mengalir sampai jauh tiada hentinya. Tunggu artikel berikutnya .. Terimakasih
Aji Fauzi Pangestu Saya hanya seorang Mahasiswa biasa yang rendah hati, rajin menabung, dan tidak sombong :)

Belum ada Komentar untuk "Pemrograman Berorientasi Objek (OOP) - Pengertian, Konsep Dasar, Kelebihan dan Kekurangan"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel