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.
Dalam
JAVA, dasar enkapsulasi adalah class. anda membuat suatu class yang menyatakan
bahwa variable atau method sebuah class tidak dapat diakses oleh class lain
dengan menjadikan class tersebut private, atau dengan menjadikan class tersebut
protected, yaitu hanya bisa diakses oleh turunannya.
lain
hal jika anda menggunakan class public, dalam hal ini dapat diakses oleh
sembarang class karena bersifat umum.
Contoh
program sederhana ENKAPSULASI :
import
java.io.*;
public
class lingkaran{
private double radius;
public lingkaran(double radius){
this.radius=radius;
}
public void Luas(){
double luas= 3.14*radius*radius;
System.out.println("Luas lingkaran: "+luas);
}
public void Keliling(){
double keliling= 2.0*3.14*radius;
System.out.println("Keliling
Lingkaran: "+keliling);
}
public static void main(String[]args)throws Exception{
DataInputStream dis= new DataInputStream(System.in);
System.out.print("input radius: ");
String input= dis.readLine();
double i= Double.parseDouble(input);
lingkaran A= new lingkaran(i);
A.Luas();
A.Keliling();
}
}
Contoh
Outputnya :
Sumber
referensi :
http://setyonugroho09.wordpress.com/2010/02/17/konsep-enkapsulasiencapsulation-pada-object-oriented-programming-dengan-java/
INHERITANCE
Pewarisan
(Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan
sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP memungkinkan
kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas
lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara
bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin
spesifik.
pewarisan
memberikan atau mewariskan sesuatu kepada keturunan berikutnya. misalnya,
seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki
oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat
diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat
atau perilaku dari kelas induknya. sebagai contoh, apabila anda memiliki kelas
A dalam program yang anda buat maka anda dapat membentuk kelas-kelas turunan
dari kelas A tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang
terkandung dalam kelas A. dalam proses pembuatan kelas turunan tersebut, Anda
dapat menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya
tidak dimiliki dalam kelas A. Dalam terminologi java, kelas induk dinamakan
dengan superclass dankelas turunan dinamakan dengan subclass. untuk membuat kelas anak atau kelas
turunan berdasarkan class yang ada, anda dapat menggunakan kata kunci extends.
keterangan : extends artinya diturunkan.
contoh
program:
program
induk kakek.java
public
class kakek
{
protected String namekakek;
protected String address;
public kakek()
{
System.out.println(“\n Program Demo Inheritance”);
System.out.println(“============================”);
System.out.println(” Masukan construktor kakek “);
System.out.println(“–Dijalankan oleh class Bapak–“);
namekakek=”Doni wijaya”;
address=”Merauke”;
}
public kakek(String name,String address)
{
this.namekakek=namekakek;
this.address=address;
}
public String getName()
{
return namekakek;
}
public String getAddress()
{
return address;
}
}
{
protected String namekakek;
protected String address;
public kakek()
{
System.out.println(“\n Program Demo Inheritance”);
System.out.println(“============================”);
System.out.println(” Masukan construktor kakek “);
System.out.println(“–Dijalankan oleh class Bapak–“);
namekakek=”Doni wijaya”;
address=”Merauke”;
}
public kakek(String name,String address)
{
this.namekakek=namekakek;
this.address=address;
}
public String getName()
{
return namekakek;
}
public String getAddress()
{
return address;
}
}
program
anak/turunan:
program bapak.java
public
class bapak extends kakek
{
protected String namebapak;
protected String addressbapak;
public bapak()
{
System.out.println(“Nama Kakek :”+namekakek);
System.out.println(“Address kakek :”+address);
System.out.println(“\n”);
System.out.println(” Masukan Construktor Bapak “);
System.out.println(“—-dijalankan class cucu—-“);
namebapak=”Ridho Saputra”;
addressbapak=”Yogyakarta”;
}
public bapak(String namebapak,String addressbapak)
{
this.namebapak=namebapak;
this.addressbapak=addressbapak;
}
public String getNama()
{
return namebapak;
}
public String getAddress()
{
return addressbapak;
}
public static void main(String []args)
{
bapak sari=new bapak();
}
}
{
protected String namebapak;
protected String addressbapak;
public bapak()
{
System.out.println(“Nama Kakek :”+namekakek);
System.out.println(“Address kakek :”+address);
System.out.println(“\n”);
System.out.println(” Masukan Construktor Bapak “);
System.out.println(“—-dijalankan class cucu—-“);
namebapak=”Ridho Saputra”;
addressbapak=”Yogyakarta”;
}
public bapak(String namebapak,String addressbapak)
{
this.namebapak=namebapak;
this.addressbapak=addressbapak;
}
public String getNama()
{
return namebapak;
}
public String getAddress()
{
return addressbapak;
}
public static void main(String []args)
{
bapak sari=new bapak();
}
}
program cucu.java
public
class cucu extends bapak
{
public cucu()
{
System.out.println(“Nama Bapak :”+namebapak);
System.out.println(“Address Bapak :”+addressbapak);
}
public static void main(String []args)
{
String namacucu;
cucu lagan=new cucu();
System.out.println(“\nSaya adalah CUCU”);
System.out.println(“Nama Saya : Samuel”);
System.out.println(“”);
}
}
{
public cucu()
{
System.out.println(“Nama Bapak :”+namebapak);
System.out.println(“Address Bapak :”+addressbapak);
}
public static void main(String []args)
{
String namacucu;
cucu lagan=new cucu();
System.out.println(“\nSaya adalah CUCU”);
System.out.println(“Nama Saya : Samuel”);
System.out.println(“”);
}
}
jika
ingin menjalankan program datas makan kita perlu mengkompile terlebih dahulu
class kakek.java, jangan di
run karena main programnya terdapat dalam class bapak.java dan cucu.java.
jika
kita menjalankan class bapak maka akan seperti berikut tampilannya
jika
kita menjalankan program cucu maka akan seperti berikut tampilannya:http://doniavira.wordpress.com/2012/04/19/pewarisan-inheritance/
POLIMORFISME
Polimorfisme
adalah metode yang digunakan untuk menyatakan satu nama yang merujuk ke
beberapa fungsi berbeda.
Ada 2 cara
Java dalam mengimplementasikan polimorfisme , yaitu:
1. Methode
overloading
2. Methode overriding
dengan pewarisan
Ok tanpa basa-basi lagi
di sini ada contoh program polimorfisme, yang mana di dalamnya
terdapat Program Interface juga yang bisa sekalian sobat
pelajari. Bentuk
polimorfismenya bisa dilihat di Class
Utama yang berwarna merah pada program di bawah ini.
- Interface Poligon
interface
Poligon {
// Deklarasi methode
double Luas();
double Keliling();
String displayInfo();
}
// Deklarasi methode
double Luas();
double Keliling();
String displayInfo();
}
Save dengan nama file Poligon.java
- Class Lingkaran
class
Lingkaran implements Poligon {
// Deklarasi atribut
private double radius;
private final double PI = 3.14;
// Definisi method
// Konstruktor
public Lingkaran(double r) {
radius = r;
}
// Selector
public double getRadius() {
return radius;
}
// Definisi method dari kelas induk
public double Luas() {
return (PI*radius*radius);
}
public double Keliling() {
return (2*PI*radius);
}
public String displayInfo() {
return ( "Lingkaran"
+ "\no Jari-jari: " + (float)getRadius()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
// Deklarasi atribut
private double radius;
private final double PI = 3.14;
// Definisi method
// Konstruktor
public Lingkaran(double r) {
radius = r;
}
// Selector
public double getRadius() {
return radius;
}
// Definisi method dari kelas induk
public double Luas() {
return (PI*radius*radius);
}
public double Keliling() {
return (2*PI*radius);
}
public String displayInfo() {
return ( "Lingkaran"
+ "\no Jari-jari: " + (float)getRadius()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
Save dengan nama file Lingkaran.java
- Class Segi Empat
class
SegiEmpat implements Poligon {
// Deklarasi atribut
private double panjang, lebar;
// Definisi method
// Konstruktor
public SegiEmpat(double p, double l) {
panjang = p;
lebar = l;
}
// Selector
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
// Definisi method dari kelas induk
public double Luas() {
return (panjang*lebar);
}
public double Keliling() {
return (2*(panjang+lebar));
}
public String displayInfo() {
return ( "Segi Empat"
+ "\no Panjang : " + (float)getPanjang()
+ "\no Lebar : " + (float)getLebar()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
// Deklarasi atribut
private double panjang, lebar;
// Definisi method
// Konstruktor
public SegiEmpat(double p, double l) {
panjang = p;
lebar = l;
}
// Selector
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
// Definisi method dari kelas induk
public double Luas() {
return (panjang*lebar);
}
public double Keliling() {
return (2*(panjang+lebar));
}
public String displayInfo() {
return ( "Segi Empat"
+ "\no Panjang : " + (float)getPanjang()
+ "\no Lebar : " + (float)getLebar()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
Save dengan nama file SegiEmpat.java
- Class Segitiga
import
java.lang.Math;
class SegiTiga implements Poligon {
// Deklarasi atribut
private double alas, tinggi;
// Definisi method
// Konstruktor
public SegiTiga(double a, double t) {
alas = a;
tinggi = t;
}
// Selector
public double getAlas() {
return alas;
}
public double getTinggi() {
return tinggi;
}
// Definisi method dari kelas induk
public double Luas() {
return (alas*tinggi)/2;
}
public double Keliling() {
double d;
d = (double)Math.sqrt((alas*alas)+(tinggi*tinggi));
return (alas+tinggi+d);
}
public String displayInfo() {
return ( "Segi Tiga"
+ "\no Alas : " + (float)getAlas()
+ "\no Tinggi : " + (float)getTinggi()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
class SegiTiga implements Poligon {
// Deklarasi atribut
private double alas, tinggi;
// Definisi method
// Konstruktor
public SegiTiga(double a, double t) {
alas = a;
tinggi = t;
}
// Selector
public double getAlas() {
return alas;
}
public double getTinggi() {
return tinggi;
}
// Definisi method dari kelas induk
public double Luas() {
return (alas*tinggi)/2;
}
public double Keliling() {
double d;
d = (double)Math.sqrt((alas*alas)+(tinggi*tinggi));
return (alas+tinggi+d);
}
public String displayInfo() {
return ( "Segi Tiga"
+ "\no Alas : " + (float)getAlas()
+ "\no Tinggi : " + (float)getTinggi()
+ "\no Luas : " + (float)Luas()
+ "\no Keliling : " + (float)Keliling() );
}
}
Save dengan nama file SegiTiga.java
- Class Utama
//
Program utama
class TesPoligon {
public static void main(String args[]) {
// Deklarasi array
Poligon p[] = new Poligon[4];
SegiEmpat se = new SegiEmpat(17,8);
SegiTiga sg = new SegiTiga(21,4);
Lingkaran lg = new Lingkaran (10);
Lingkaran lh = new Lingkaran (7);
//bentuk polimorfisme
p[0] = se;
p[1] = sg;
p[2] = lg;
p[3] = lh;
Lingkaran x = new Lingkaran(8);
// Display informasi
for (int i=0; i < p.length; i++) {
System.out.println("\n"+p[i].displayInfo());
}
}
}
class TesPoligon {
public static void main(String args[]) {
// Deklarasi array
Poligon p[] = new Poligon[4];
SegiEmpat se = new SegiEmpat(17,8);
SegiTiga sg = new SegiTiga(21,4);
Lingkaran lg = new Lingkaran (10);
Lingkaran lh = new Lingkaran (7);
//bentuk polimorfisme
p[0] = se;
p[1] = sg;
p[2] = lg;
p[3] = lh;
Lingkaran x = new Lingkaran(8);
// Display informasi
for (int i=0; i < p.length; i++) {
System.out.println("\n"+p[i].displayInfo());
}
}
}
Save dengan nama file TesPoligon.java
Cara menjalankan program :
1. Save semua file di atas
2. Jalankan satu persatu filenya terlebih dahulu
3. Apabila sudah jalan semua jalankan program utama TesPoligon.java
Cara menjalankan program :
1. Save semua file di atas
2. Jalankan satu persatu filenya terlebih dahulu
3. Apabila sudah jalan semua jalankan program utama TesPoligon.java
Output
Program
Jadi intinya pada program di atas adalah Class Poligon mempunyai
bentuk bentuk banyak dari class segitiga, class segi empat dan kelas lingkaran.
http://top-ilmu.blogspot.com/2012/11/contoh-program-java-polimorfisme.html
bagus ya :D
BalasHapus