Salah satu konsep terpenting dalam pemrograman berorientasi objek adalah konsep pewarisan, di mana kita menciptakan kelas baru dari satu atau lebih kelas yang sudah ada. Kosekuensinya adalah terjadi pewarisan field/method tertentu dari kelas yang sudah ada sebelumnya (superclass/baseclass) kepada kelas yang baru (subclass).
Oleh karena itu kelas yang baru/kelas turunan akan sangat mirip dengan kelas induknya sehingga jika kita ingin kelas turunan berbeda dengan induknya, Kita harus menambahkan field atau method baru pada kelas ini.
Contoh dalam JAVA :
public class silinder
{ // ini akan diwariskan ke turunanya
protected int radius;
protected int tinggi;
// konstruktor
public silinder (int r , int h)
{
radius=r;
tinggi=h;
}
private double getVolume ()
{
return Math.PI*radius*radius*tinggi;
}
}
public class kapsul extends silinder
{
int cembungan; // bagian dari alas dan tutup yang melengkung keluar
public kapsul (int r int h, int c)
{
super(r.h) ;
cembungan=c;
}
private float getVolume()
{
//detail penghitungan volume kapsul
}
2. Enkapsulasi
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
3. POLIMORPHISME
Adalah kemampuan sebuah variable dari suatu tipe/kelas untuk digunakan sebagai rujukan/acuan objek dari tipe yang berbeda, dan secara otomatis dapat memanggil method yang spesifik untuk tiap tipe itu.
Contoh dalam JAVA :
Program.Binatang.java
public class Binatang
{
Binatang (String jenis)
{
this.jenis=jenis;
}
protected void suara ()
{
}
public String toString()
{
return “seekor”+ jenis;
}
private String jenis;
}
Program Burung.java
public class Burung extends Binatang
{
Burung(String nama)
{
super(“Burung”);
this.nama=nama;
}
public void suara()
{
System.out.println(“berkicau”);
}
public String toString()
{
return super.toString()+” “+nama;
}
private String nama;
}
Program Kambing.java
public class Kambing extends Binatang
{
Kambing(String nama)
{
super(“Kambing”);
this.nama=nama;
}
public void suara()
{
System.out.println(“mengembik”);
}
public String toString()
{
return super.toString()+” “+nama;
}
private String nama;
}
Program Kucing.java
public class Kucing extends Binatang
{
Kucing(String nama)
{
Super(“Kucing”);
This.nama=nama;
}
public void suara()
{
System.out.println(“mengeong”);
}
public String toString()
{
return super.toString()+” “+nama;
}
private String nama;
}
Program Anjing.java
public class Anjing extends Binatang
{
Anjing(String nama)
{
Uper(“Anjing”);
This.nama=nama;
}
public void suara()
{
System.out.println(“menggonggong”);
}
public String toString()
{
Return super.toString()+” “+nama;
}
private String nama;
}
Program Coba Polimorpic.java
import java.util.Random;
public class CobaPolimorpic
{
public static void main(String[] args)
{
Binatang [] peliharaanku={new Burung(“kutilang”),
New Kucing(“Angora”),
New Kambing(“etawa”),
New Anjing(“bulldog”) };
Binatang kesayangan;
Random pilihan=new Random();
// memilih secara accak
Kesayangan=peliharaanku[pilihan.nextInt(peliharaanku.length)];
System.out.println(“binatang kesayangan anda:”+kesayangan);
System.out.println(“suaranya:”);
Kesayangan.suara();
}
}
Hasil run program:
Binatang kesayamgan anda:seekor burung kutilang
Suaranya : berkicau
Penjelasan program:
Variabel random merupakan objek dari kelas Random, yang diimport
dari paket java.util. Fungsi variable ini adalah untuk mengambil bilangan acak, yaitu dengan memanggil method nextInt(i) dengan i adalah bilangan bulat. Method ini akan mengembalikan bilangan dari 0 sampai i-1.
Pada program diatas kita menampilkan informasi dari objek kesayangan dengan dengan menggunakan method println(). Ini secara implicit akan memanggil method toString.
1 komentar:
Ingin penjelasan lebih mengenai 3 pilar pbo ini silahkan klik
link : https://adiinformatika.blogspot.com/2020/04/tiga-pilar-pbo-pemrograman-berorientasi.html
Posting Komentar