Saturday, January 7, 2017

Pemrograman Berorientasi Objek(Enkapsulasi, Inheritance, Polimorphisme, dan Package)



  • 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 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
Sudah pada tahu belum apa yang dimaksud inheritance?. Inheritance adalah penurunan sifat dari kelas induk(super class) ke kelas anaknya (sub class), termasuk method dan tipe data di kelas induknya diturunkan ke kelas anaknya. Apa sih ciri dari kelas inheritance.?, cirinya adalah ada extends pada kelas anaknya (Lihat gambar 2).

Di bawah ada contoh program inheritance, yang mana terdiri dari tiga kelas. Yang pertama yaitu Class Lingkaran, Class Tabung, dan Class Main. Class Lingkaran yaitu kelas induknya. Class Tabung yaitu kelas anaknya, yang mana dia mendapatkan sifat dari kelas lingkaran. Terakhir yaitu Class Main, kelas main ini adalah kelas untuk meng-kompile program, tanpa kelas main program tidak dapat dijalankan.

1. Class Lingkaran

2. Class Tabung

3. Class Main

Output Program:

Sumber referensi: http://top-ilmu.blogspot.com/2012/10/contoh-program-inheritance-pada-java.html


  • Polimorphisme
Polimorfisme adalah metode yang digunakan untuk menyatakan satu nama yang merujuk ke beberapa fungsi berbeda. Ada 2 cara Java dalam mengimplementasikan polimorfisme , yaitu:
Methode overloading
Methode overriding dengan pewarisan

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();
}

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() );
   }

}

Save dengan nama file SegiEmpat.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() );
   }

}

Save dengan nama file Segitiga.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() );
   }

}

Save dengan nama file Lingkaran.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());
      }

   }

}

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

Output Program:



Jadi intinya pada program di atas adalah Class Poligon mempunyai bentuk bentuk banyak dari class segitiga, class segi empat dan kelas lingkaran.

Sumber referensi: http://top-ilmu.blogspot.com/2012/11/contoh-program-java-polimorfisme.html


  • Package
Konsep Package
Pengertian package adalah sebuah sarana untuk mengelompokan atau mengorganisasikan kelas dan interface yang sama atau sekelompok menjadi satu unit tunggal dalam library.
Secara fisik, package dapat berupa folder yang berisi file file/kelas interface/enum lain yang kegunaannya hampir sama sehingga patut untuk dikelompokan.
Package mempengaruhi mekanisme hak akses ke kelas didalamnya. Pengertian package adalah sebuah sarana untuk mengelompokan atau mengorganisasikan kelas dan interface yang sama atau sekelompok menjadi satu unit tunggal dalam library.
Secara fisik, package dapat berupa folder yang berisi file file/kelas interface/enum lain yang kegunaannya hampir sama sehingga patut untuk dikelompokan.
Package mempengaruhi mekanisme hak akses ke kelas didalamnya.

Mengatur kelas ke dalam paket.
Setiap kelas Java akan diletakkan (dikelompokkan) ke dalam paket. Kelas-kelas tersebut diletakkan ke dalam paket saat program sumber Java (Java source program) dikompilasi. Untuk meletakkan sebuah kelas hasil kompilasi ke dalam paket yang dituju, Anda dapat menyertakan pernyataan package diikuti nama paket di program sumber Java. Pernyataan package yang diikuti nama peket adalah pernyataan Java yang paling pertama. Berikut ini adalah sintak pernyataan package untuk meletakkan hasil kompilasi ke dalam paket:
package nama-paket;

Sumber referensi: http://arraydalamprogram.blogspot.co.id/2010/06/package-dalam-bahasa-pemograman-java.html









No comments:

Post a Comment