TUGAS PEMROGRAMAN BERORIENTASI OBJEK 2

NAMA           : EDWARD EVBERT A
NPM             : 17117369
KELAS          : 3KA20

OBJECT ORIENTED PROGRAMMING




Apa itu OOP?
OOP (Object Oriented Programming) atau dalam bahasa indonesia dikenal dengan pemrograman berorientasikan objek (PBO) merupakan sebuah paradigma atau teknik pemrograman yang berorientesikan Objek.

Pada OOP, Fungsi dan variabel dibungkus dalam sebuah objek atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program.

Variabel dalam objek akan menyimpan data dari objek. Sedangkan fungsi akan menentukan operasinya.

Contoh objek dalam dunia nyata: Mobil, Burung, Drone, Meja, Pohon, dll.

------------------OBJEK
Drone
------------------Variabel/Atribut
energi = 100;
ketinggian = 200;
kecepatan = 29;
------------------Fungsi
terbang();
matikanMesin();
turun();
maju();
mundur();
belok();
------------------
Semua objek di dunia nyata yang memiliki sifat dan tingkah laku, bisa kita representasikan dalam kode.


Class dan Object

Class adalah rancangan atau blue print dari sebuah objek. Sedangkan objek dalam pemrograman adalah sebuah variabel yang merupakan instance dari Class. Instance bisa diartikan sebagai wujud dari class.

Class berisi definisi variabel dan fungsi yang menggambarkan sebuah objek.

Dalam OOP:


  • Variabel disebut atribut atau properti;
  • Fungsi disebut method.


Contoh Class:

class NamaClass {
    String atribut1;
    String atribut2;

    void namaMethod(){ ... }
    void namaMethodLain(){ ... }
}

Lalu, Kita biasanya membuat objek (instance) seperti ini:
NamaClass namaObj = 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.

Contoh:

namaObj.namaMethod();
namaObj.atribut1;

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


1. Encapsulation

Maksud dari encapsulation adalah membungkus class dan menjaga apa apa saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari :

a. Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.

b. Public = memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun (property atau class lain diluar class yang bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B dan seterusnya.

c. Protected = memberikan hak akses kepada class itu sendiri dan class hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh class A sendiri dan class yang meng Extends class A. Namun harus dipahami class lain yang berada dalam satu package dengan class A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada diluar package class A. untuk dapat mengaksesnya, class yang berada diluar package class A harus meng extends class A.

2. Inheritance

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

3. Polymorphysm

Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.


Contoh program Encapsulation dan Inheritance:
Contoh programnya seperti berikut, kita buat 2 package bernama a dan b. Dalam package a buat 2 class :
-          Bapak.java

package a;

public class Bapak {
    private String nama = "Bapak";
    private String alamat = "Sleman";

    public String getNama() {
        return nama;
    }
   
    private String getNamaPrivate(){
        return nama;
    }
   
    protected String getAlamat(){
        return alamat;
    }
}

-          Anak.java
package a;

public class Anak extends Bapak{
   
     public String getNamaPublic(){
         return super.getNama();
     }
// public String getNamaPrivate(){
//         return super.getNamaPrivate();
//       INI AKAN ERROR karena hak akses di parent class untuk method ini private
//     }


     @Override
     public String getAlamat(){
         return super.getAlamat();
     }

    
    public static void main(String args[]) {
        Anak g = new Anak();
        System.out.println("dari method public : " + g.getNamaPublic());
        System.out.println("dari method protected : " + g.getAlamat());

    }
}

Class ini berusaha mengakses method private milik Bapak.java. Walaupun sudah meng extends Bapak tapi karena menggunakan modifier private, siapapun tidak bisa mengaksesnya.


Contoh program polymorphism :
                jika method yang digunakan pada child class sama dengan parent classnya, maka hal itu harus di override.
package override;

class Animal{

protected void hello(){
                System.out.println("Hello");
}
               
 protected void move(){
      System.out.println("Animals can move");
   }
  
}

class Dog extends Animal{
 @Override
 public void move(){
      System.out.println("Dogs can walk and run");  }

     
 // method tambahan untuk analisa
                public void bark(){
      System.out.println("Dogs can bark");
   }
       

}

public class Override_Test{

   public static void main(String args[]){
      Animal a = new Animal(); // Animal reference and object
     Animal b = new Dog(); // Animal reference but Dog object

  a.move();
  b.move();


 System.out.println();
 a.hello();

   }
}




Mengenal Class Diagram

Class Diagram adalah sebuah diagram yang menggambarkan hubungan antar class. Class Diagram dapat kita buat dengan aplikasi perancangan (CASE), seperti StarUML.



Sebuah class digambarkan dengan sebuah tabel 1 kolom dan 3 baris.
Baris pertama berisi nama class; Baris kedua berisi atribut; dan Baris ketiga berisi method.



Selain itu, terdapat garis yang menggambarkan hubungan antar class.



Class Diagram biasanya digunakan oleh software engineer untuk merancang software dengan paradigma OOP. Sebagai programmer, kita hanya perlu tahu cara membaca dan menuliskannya ke dalam kode. Jika kamu tertarik dengan class diagram, bisa membaca buku-buku tentang UML.




Reference : 1  2




Comments

Popular Posts