#trik_pojok { position:fixed;_position:absolute;bottom:0px; left:0px; clip:inherit; _top:expression(document.documentElement.scrollTop+ document.documentElement.clientHeight-this.clientHeight); _left:expression(document.documentElement.scrollLeft+ document.documentElement.clientWidth - offsetWidth); }

Kamis, 25 Oktober 2012

BAB 3. INFORMATION HIDING, ENCAPSULATION, INHERITANCE, DAN POLYMORHISM

Encapsulation
Latar Belakang Encapsulation
Vendor perangkat lunak computer merahasiakan source code produknya, user hanya diberitahu melalui manual cara menggunakan produknya. Programmer java pun tidak perlu mengetahui
bagaimana rinci source code dari modul antarmuka referensi (API), programmer hanya perlu tahu return value dan parameter milik method-methodnya, atau hanya perlu tahu parameter milik constructor- constructornya.
Information Hiding dan Encapsulation
Information Hiding adalah menyembunyikan attribute suatu objek dari objek lain. Encapsulation adalah menyembunyikan method suatu objek dari objek lain. Attribute maupun method disembunyikan dengan cara memberikan modifier private. Method dalam kelas yang sama, yang memberikan nilai pada attribute private disebut method setter, sedangkan method masih dalam kelas yang sama, yang mengambil nilai dari attribute private disebut getter.
Pewarisan (inheritance)
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh dari hierarki class :
http://ilovecico.files.wordpress.com/2010/04/srt.jpg?w=300&h=140
Superclass
Adalah class yang letaknya di atas class tertentu di dalam hierarki.
Subclass
Adalah class yang letaknya di bawah class tertentu        di dalam hierarki.
Meng-override method
—        Jika sebuah subclass menginginkan implementasi yang berbeda terhadap method dari superclassnya, maka salah satu caranya dapat dilakukan dengan meng-override method bersangkutan.
—        Sebuah subclass dapat meng-override method superclassnya dengan menyediakan sebuah implementasi baru untuk method tersebut.
Polymorphism
Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.
Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.
—        Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee
Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya.
 A. MEMBUAT PROGRAM SuperClass.java
public class SuperClass{
          public SuperClass() {
                   System.out.println("Ini konstruktor milik SuperClass");
          }

          public void methodSuperClass() {
                   System.out.println("Ini method milik SuperClass");
          }
}
A.  MEMBUAT PROGRAM SubClass.java
public class SubClass extends SuperClass {
          public SubClass() {
                   super ();
          }

          public void methodSubClass() {
                   super.methodSuperClass();
          }
}
B.  MEMBUAT PROGRAM DemoInheritance.java
public class DemoInheritance{
          public static void main(String[] args) {
                   SubClass sc = new SubClass();
                   sc.methodSubClass();
          }
}
C.  MEMBUAT PROGRAM Persegi.java
public class Persegi {

          private double panjang;                                     //atribut yang di sembunyikan
          private double lebar;                                //atribut yang di sembunyikan
          private double tinggi;                              //atribut yang di sembunyikan

          public Persegi() {
                   panjang = 0;
                   lebar = 0;
          }

          private double luas(double p,double l) {
                   return p*l;
          }

          public void setPanjang (double panjang1) {
                   this.panjang = panjang1;
          }

          public void setLebar(double lebar1) {
                   this.lebar = lebar1;
          }

          public double getPanjang() {
                   return panjang;
          }

          public double getLebar() {
                   return lebar;
          }

          public double getLuas() {
                   return luas(panjang, lebar);
          }
}
D.  MEMBUAT PROGRAM MainPersegi.java
public class MainPersegi {
          public static void main(String[] args) {
                   Persegi pg = new Persegi();
                   pg.setPanjang(10);
                   pg.setLebar(20);

                   System.out.println("Panjang : "+pg.getPanjang());
                   System.out.println("Lebar : "+pg.getLebar());
                   System.out.println("Luas : "+pg.getLuas());
          }
}
E.  MEMBUAT PROGRAM Karyawan.java
abstract class Karyawan {
          int gaji;
          Karyawan() {
                   gaji = 1000000;
          }

          int getGaji() {
                   return gaji;
          }

          abstract void naikGaji();
}
F.   MEMBUAT PROGRAM Manager.java
class Manager extends Karyawan {
          Manager() {
                   gaji +=2000000;
          }

          void naikGaji() { gaji+=3000000; }
}
G.  MEMBUAT PROGRAM Receptionist.java
class Receptionist extends Karyawan {
          Receptionist() {
                   gaji +=1000000;
          }

          void naikGaji() { gaji+=1000000; }
}
H.  MEMBUAT PROGRAM Plymorphisme.java
class Polymorphisme {
          public static void main(String[] args) {
                   Karyawan K[] = new Karyawan[3];

                   K[0] = new Manager();
                   K[1] = new Receptionist();
                   K[2] = new Manager();

                   for (int i=0;i<3;i++)
                             System.out.println("Gaji karyawan "+i+" adalah "+K[i].getGaji());

                   for (int i=0;i<3;i++)
                             K[i].naikGaji();

                   for (int i=0;i<3;i++)
                             System.out.println("Gaji sekarang "+i+" adalah "+K[i].getGaji());
          }
}

Kamis, 18 Oktober 2012

BAB 2. CLASS, METHOD, CONSTRUCTOR, MODIFIER DAN OBJECT



Seperti halnya bahasa pemrograman lainnya, java memiliki struktur dasar yang wajib diketahui sebelum belajar lebih jauh tentang pemrograman java.
terdapat beberapa struktur yaitu: Class, Method, Constructor, Modifier dan Object. Agar dapat lebih mengerti, berikut pengenalan tentang struktur program java tersebut :

1.  Class 
  • cetak biru (blueprint) dari suatu objek
  • mendefenisikan atribut dan method yang terdapat pada objek.
  • menggabungkan atribut dan method ke dalam sebuah entitas
  • akses terhadap atribut/method ditentukan berdasarkan access specifier
  • access spesifier terhadap atribut/method terbagi atas 3, yaitu : Private, Protected dan Public.
  • pada java, access terhadap class juga ditentukan oleh access specifier.
  • pada setiap file source, code java, harus terdapat 1 class public.
  • Umumnya, atribut dideklarasikan sebagai anggota private dari sebuah class
  • Tujuannya adalah untuk menghalangi perubahan atribut yang dilakukan tanpa terkendali yang
    menyebabkan kerusakan state objek
  • Tetapi, supaya suatu objek dapat berfungsi harus ada informasi (atribut) yang dapat diakses dari
    objek lain
  • Akses terhadap atribut disediakan melalui method yang dideklarasi sebagai anggota public
  • Pada Java, setiap class merupakan turunan (subclass) dari class Object
  • Setiap objek dapat di-cast menjadi String
  • Cast ke String dilakukan dengan memanggil method toString dari objek bersangkutan
  • Apabila tidak didefinisikan, maka method yang dipanggil adalah method yang didefinisikan pada superclass (class Object)
  • Dengan mendefinisikan method toString, kita dapat mengubah representasi String objek dari class yang bersangkutan 
  • Contoh deklarasi kelas pada java :
                                          [modifier1] class Matakuliah [modifier2] {
                                                               class body;
                                                         }
2
.   Method
  • Method menyediakan akses terhadap operasi yang dapat dilakukan oleh/terhadap objek
  • Method yang dideklarasikan dengan access specifier public merupakan interface objek
  • Interface menyediakan akses terhadap objek, sehingga state objek dapat dimanipulasi dengan cara yang terkendali
  • Method public yang berfungsi untuk mengakses (mengembalikan) nilai atribut private disebut sebagai getter/aksesor
  • Contoh deklarasi Method pada java :
                                          [modifier] tipeNilaiAkhir namaMethod (parameter input) {
                                                       method body;
                                                             }
3. Constructor
  • Merupakan method khusus yang berfungsi untuk menginisialisasi state objek pada saat objek pertama kali dibentuk
  • Nama constructor sama dengan nama class
  • Apabila pada suatu class tidak didefinisikan constructor, maka Java secara otomatis akan mendefinisikan sebuah constructor default
  • Constructor default adalah method constructor yang tidak menerima parameter
  • Constructor default yang definisi oleh Java secara otomatis menginisialisasi seluruh instance variable (atribut) dengan nilai defaultnya.
  • Sebuah class boleh memiliki lebih dari satu constructor
  • Masing-masing constructor harus memiliki tipe atau jumlah parameter yang berbeda
  • Constructor yang berbeda menyediakan cara untuk membentuk objek dengan cara yang
    berbeda juga

4. Object
  • Merupakan perwujudan dari class (instance of class)
  • Masing-masing objek merupakan entitas yang berbeda, walaupun berada dari class yang sama
    dan memiliki atribut yang sama
  • Objek dibentuk (instantiate) dengan menggunakan kata kunci: new
  • Masing-masing objek memiliki identitas objek
  • Hal ini berpengaruh terhadap proses perbandingan (operator ==) dan proses penyalinan (operator =)  
  • Contoh deklarasi Object pada java :

                                

 5. Modifier
  • Penggunaan modifier berfungsi untuk melakukan enkapsulasi (membungkus data) pada objeck.
  • Dengan menggunakan modifier kita dapat menentukan siapa saja yang boleh menggunakan atau mengakses member dari suatu objek.
  • Ada empat macam modifier yang dikenal oleh Java, yaitu private, protected, public dan tanpa modifier. 
  • Class Modifier : Bentuk penggunaan modifier pada class:
                modifier class NamaClass{
                    
                    
                     }
  • Method Modifier :Bentuk penggunaan method modifier:
·             modifier tipe-data namaMethod(parameter){
·                    
·                    
             } 


A.  MEmbuat Program Disket.Java
public class Disket {
                int panjang =  10;
                final int LEBAR = 10;
                String warna = "kuning";
                String bentuk = "segiempat";
                String data = "";
Disket() {
                panjang = 100;
}
Disket(int Panjang1) {
        this.panjang = Panjang1;
}

                void simpanData ( String data1 ) {
                        this.data += data1;
                }

                void hapusdata () {
                        data = "";
                }

                String bacaData() {
                        return data;
                }
}
b. MEMBUAT PROGRAM MAINDISKET.Java

class MainDisket{
public static void main (String[] args) {
Disket disk1 = new Disket(50);
System.out.println("Panjang disket = "+ disk1.panjang);
System.out.println("Lebar disket = "+ disk1.LEBAR);
            System.out.println("Warna disket = "+ disk1.warna);
            System.out.println("Bentuk disket = "+ disk1.bentuk);

            System.out.println("data mula-mula = "+disk1.bacaData());
            disk1.simpanData("Belajar java");
            System.out.println("Setelah SimpanData = "+disk1.bacaData());
            disk1.hapusdata();
            System.out.println("Setelah hapusData = "+disk1.bacaData());
    }
}