OOP Encapsultaion, Inheritance & Polymorphism pada Java

Posted: 06/04/2019 in Uncategorized

Pada kali ini saya akan menjelaskan mengenai ciri ciri dari OOP yaitu Enkapsulasi, Turunan, dan Polimorfisme (Banyak Bentuk) pada bahasa pemrogran Java.

OOP merupakan hal yang wajib untuk dikuasai jika ingin menggunakan java, karena java sendiri terdiri dari objek objek. jadi untuk penggunaan bahasa java kalian tidak bisa terlepas dengan yang namanya OOP.

Langsung saja amati Source Code dibawah ini


class OperationMath {
private int int_nilai;
private double dbl_nilai;


public int penjumlahan(int bil1, int bil2) {
return bil1 + bil2;
}
public double penjumlahan(double bil1, double bil2) {
return bil1 + bil2;
}
public int penjumlahan(int[] bil) {
int_nilai = bil[0];
for(int count = 1; count < bil.length; count++) {
int_nilai += bil[count];
}
return int_nilai;
}
public double penjumlahan(double[] bil) {
dbl_nilai = bil[0];
for(int count = 1; count < bil.length; count++) {
dbl_nilai += bil[count];
}
return dbl_nilai;
}


public int pembagian(int bil1, int bil2) {
return bil1/bil2;
}
public double pembagian(double bil1, double bil2) {
return bil1/bil2;
}
}
class Average extends OperationMath {
Average(int[] bil) {
avg = (penjumlahan(bil));
avg = pembagian(avg, bil.length);
}
Average(double[] bil) {
dbl_avg = (penjumlahan(bil));
dbl_avg = pembagian(dbl_avg, bil.length);
}


public int getAverage() {
return avg;
}

public double getDblAverage() {
return dbl_avg;
}


private int avg;
private double dbl_avg;
}

public class Matematika {

/**
*
* @param args

*/
public static void main(String[] args) {
int data[] = {6,7,8};
Average avg = new Average(data);


double data2[] = {20.12, 12.4, 15, 30.56};
Average avg2 = new Average(data2);


System.out.println("Nilai rata-rata dari [6,7,8]= " + avg.getAverage());
System.out.println("Nilai rata-rata dari [20.12, 12.4, 15, 30.56]= " + avg2.getDblAverage());


}
}

 

Penjelasan

  1. Terdapat 2 objek class, yaitu objek OperationMath dan Average. OperationMath bertugas untuk menyimpan method method atau fungsi fungsi sebuah operasi pada matematika, seperti penjumlahan, pengurangan, perkalian dan pembagian. Sedangkan Average bertugas untuk melakukan kalkulasi untuk mencari nilai rata-rata atau nilai tengah.
  2. class OperationMath {
    private int int_nilai;
    private double dbl_nilai;

    Pada code ini terdapat kata private, yang berarti sebuah atribute atau properti ini hanya dapat diakses oleh objek itu sendiri yaitu objek OperationMath saja, objek lainnya tidak dapat mengaksesnya.
    Berikut penjelasan singkatnya:
    Public: dapat diakses oleh siapa saja
    Protected: dapat diakses oleh objeknya sendiri dan hanya oleh turunannya
    Private: hanya objeknya yang dapat mengaksesnya

    Inilah yang dinamakan enkapsulasi, yaitu penyembunyian sebuah properti atau method dari objek, jadi hanya properti atau objek tertentu saja yang dapat diakses oleh objek lain, sehingga proses kerja objek tersebut tidak dapat berubah alurnya.

  3. public int penjumlahan(int bil1, int bil2) {
    return bil1 + bil2;
    }
    public double penjumlahan(double bil1, double bil2) {
    return bil1 + bil2;
    }
    public int penjumlahan(int[] bil) {
    int_nilai = bil[0];
    for(int count = 1; count < bil.length; count++) {
    int_nilai += bil[count];
    }
    return int_nilai;
    }
    public double penjumlahan(double[] bil) {
    dbl_nilai = bil[0];
    for(int count = 1; count < bil.length; count++) {
    dbl_nilai += bil[count];
    }
    return dbl_nilai;
    }

    Kenapa ada banyak fungsi/method dengan nama penjumlahan, metode ini adalah sebuah ciri OOP yaitu polimorfisme dimana sebuah method memiliki banyak bentuk. apa yang membedakannya yaitu sebuah tipe data paramater, jumlah parameter dan tipe data kembalian dari method tersebut.

  4. class Average extends OperationMath {
    Average(int[] bil) {
    avg = (penjumlahan(bil));
    avg = pembagian(avg, bil.length);
    }
    Average(double[] bil) {
    dbl_avg = (penjumlahan(bil));
    dbl_avg = pembagian(dbl_avg, bil.length);
    }

    public int getAverage() {
    return avg;
    }

    public double getDblAverage() {
    return dbl_avg;
    }

    private int avg;
    private double dbl_avg;
    }

    Pada class diatas kita mendefinisikan sebuah konstruktur untuk class ini, konstruktor adalah sebuah fungsi/method yang akan dijalankan pertama kali ketika/tepat pada saat sebuah objek itu terbentuk/terinisialisasi. cara mendefinisikannya dengan menggunakan nama class tersebut.
    Pada class di atas juga kita menggunakan sebuah fungsi yang belum dideklarasikan di dalam class tersebut, namun fungsi tersebut telah ada pada class OperationMath, tapi fungsi tersebut bisa kita gunakan tanpa perlu melakukan initialisasi sebuah objek OperationMath. kita hanya perlu menambahkan keyword extends NAMA_CLASS pada sebuah nama class kita. keyword ini adalah sebuah tanda bahwa class yang kita buat merupakan turunan dari class NAMA_CLASS dan class kita ini bisa menggunakan semua properti dan method pada NAMA_CLASS yang memiliki scope public ataupun protected.

  5. int data[] = {6,7,8};
    Average avg = new Average(data);

    double data2[] = {20.12, 12.4, 15, 30.56};
    Average avg2 = new Average(data2);

    System.out.println("Nilai rata-rata dari [6,7,8]= " + avg.getAverage());
    System.out.println("Nilai rata-rata dari [20.12, 12.4, 15, 30.56]= " + avg2.getDblAverage());

    disini kita menggunakan sebuah variabel array sebagai parameter untuk inisialisasi objek Average, lalu akan menampilkan hasilnya dengan memanggil fungsi getAverage() dan getDblAverage()

 

Berikut ScreenShoot pada saat dijalankan

 

Sekian terimakasih

Komentarlah dengan kata-kata yang baik