Kamis, 19 April 2012

Polimorfisme




Polimorfisme adalah kemampuan untuk memperoleh bentuk. Dua objek atau lebih dikatakan polimorfis, bila objek-objek itu mempunyai antar muka-antarmuka identik namun mempunyai perilaku-perilaku berbeda. Bentuk ini memungkinkan kita menganggap sekelompok objek dengan tipe-tipe berbeda seperti dimiliki oleh suatu tipe yang sama. Polimorfisme merupakan fitur yang terjadi karena interaksi setiap konsep pewarisan dan dynamic binding. Contohnya pintu dan jendela memiliki perilaku yang sama yaitu dapat dibuka dan ditutup, namun untuk menutup jendela dilakukan misalnya dari atas ke bawah (vetikal), sedangkan pintu dari depan ke belakang (horizontal).

Polimorfisme bias diartikan seperti kemampuan suatu variable untuk mengubah perangai sesuai dengan objek hasil instansiasi yang digunakan. Polimorfisme membiarkan lebih dari 1 objek dari sub class – sub class dan diperlakukan sebagai objek dari super class tunggal

contoh program:


public class StudentInfo{
   public static void main(String[] args){
   StudentGrad myStudent = new StudentGrad();
   myStudent.Write(56410702, 1,"Subhan","Rubyansyah", 2014,"Universitas Gunadarma");
   myStudent.Display();
   }
}
class Student {
   public void Write(int ID, int Grad, String Fname, String Lname) {
   m_ID = ID;
   m_Graduation = Grad;
   m_First = Fname;
   m_Last = Lname;
   }
   public void Display(){
      System.out.println("Student ID: " + m_ID);
      System.out.println("Student name : "+m_First + " " + m_Last);
      System.out.println("Graduated: " + m_Graduation);
   }
   private int m_ID, m_Graduation;
   private String m_First;
   private String m_Last;
}
class StudentGrad extends Student {
   public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch) {
      super.Write(ID, Grad, Fname, Lname);
      m_UndergradSchool = unSch;
      m_Grad = Grad;
      YearGraduated = yrGrad;
   }
   public void Display(){
      super.Display();
      System.out.println("Graduated From: "+ m_UndergradSchool);
      System.out.println("Graduation Year : "+ YearGraduated);
   }
   private Integer YearGraduated,m_Grad;
   private String m_UndergradSchool;
   private String m_Major;
}

OUTPUT:
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication23\build\classes
Copied 1 empty directory to 1 empty directory under C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication23\build\classes
compile:
run:
Student ID: 56410702
Student name : Subhan Rubyansyah
Graduated: 1
Graduated From: Universitas Gunadarma
Graduation Year : 2014
BUILD SUCCESSFUL (total time: 4 seconds)




Selasa, 17 April 2012

Inheritance

Inheritance




Pewarisan (Inheritance) adalah penurunan sifat yang ada pada suatu kelas kepada kelas baru yang menjadi turunannya. Sifat-sifat suatu kelas ditentukan oleh data anggota dan metode, sehingga yang dimaksud penurunan sifat adalah penurunan sifat adalah penurunan data anggota atau metode. Kelas yang menurunkan sifat disebut kelas dasar disebut kelas turunan (derived class).

Dengan pewarisan dapat diciptakan suatu kelas baru yang mana kelas tersebut mewarisi seluruh sifat kelas dasar kelas yang mempunyai akses public atau protected ditambah sifat khusus dari kelas yang bersangkutan. Ketentuan utama dengan adanya pewarisan yaitu memungkinkan suatu kode yang telah ditulis mudah sekali untuk digunakan kembali. Kita telah membuat suatu kelas yang telah diuji. dan suatu hari nanti, kita ingin menerapkan kode tersebut pada sesuatu yang memiliki sifat-sifat kelas tersebut, tinggal mewariskan kelas yang telah ada di kelas baru (kelas turunan). Kita tidak perlu  mengotak ngatik kelas yang teruji, sehingga efek samping yang tidak diharapkan tidak terjadi. Dengan cara ini pengembangan program menjadi lebih efisien dan hemat waktu. Selain itu, kita dapat menambahkan sifat-sifat baru yang tidak ada pada kelas dasar atau bahkan dapat mengganti sifat-sifat pada kelas turunan, yang berbeda dengan sifat kelas dasar.


Pengertian Inheritance
• Inheritance merupakan salah satu dari tiga konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek / y dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
• Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
• Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
Deklarasi Inheritance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class‐nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.





Contoh Program:


class mahasiswa {
    private int npm;
    private String nama;
    private buku bukunya[];
    private int jumlah;
    public mahasiswa(int n, String m){
        npm = n;
        nama = m;
        jumlah = 0;
        bukunya = new buku [3];
        System.out.println("Constructor mahasiswa "+nama);
    }    public void pinjam_buku(buku b){
        if (jumlah < 3){
            bukunya[jumlah] = b;
            jumlah++;
            System.out.println(nama+" pinjam buku "+b.get_judul()+" karangan "+b.get_pengarang());
        }
        else
        System.out.println("Sudah Penuh!");
    }
    public void daftar_buku(){
        System.out.println("Daftar Bukunya "+nama+":");
        for(int i=0; i<jumlah; i++){
            System.out.println(i+1+". "+bukunya[i].get_judul());
        }
    }
}
class buku {
    public String judul;
    public String pengarang;
    public String penerbit;
    public buku(){};
    public buku(String j, String p){
        judul = j;
        pengarang = p;
        System.out.println("Constructor buku "+judul);
    }
    public void milik_buku(){
        System.out.println("Method ini milik class induk");
    }
    public String get_judul(){
        return judul;
    }
    public String get_pengarang(){
        return pengarang;
    }
}
class buku_sejarah extends buku {
    public void view_buku_sejarah(){
        milik_buku();  
    }
    public void set_buku(String j, String p){
        judul = j;
        pengarang = p;
        System.out.println(judul+" "+pengarang);
    }
}
public class Main {
    public static void main(String[] args) {
        mahasiswa si = new mahasiswa(123,"Ruby");
        buku bp = new buku("Java","Arie");
        si.pinjam_buku(bp);
        buku pti = new buku("Pengantar IT","Rudi");
        si.pinjam_buku(pti);
        buku logika = new buku("Logika","Pulung");
        si.pinjam_buku(logika);
        buku komik = new buku("Naruto","One Piece");
        si.pinjam_buku(komik);
        si.daftar_buku();
        buku_sejarah bukuku = new buku_sejarah();
        bukuku.view_buku_sejarah();
        bukuku.set_buku("Sejarah Kita","Top Cerr");
    }

}




Output:



OUTPUT:


init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication21\build\classes
compile:
run:
Constructor mahasiswa Ruby
Constructor buku Java
Ruby pinjam buku Java karangan Arie
Constructor buku Pengantar IT
Ruby pinjam buku Pengantar IT karangan Rudi
Constructor buku Logika
Ruby pinjam buku Logika karangan Pulung
Constructor buku Naruto
Sudah Penuh!
Daftar Bukunya Ruby:
1. Java
2. Pengantar IT
3. Logika
Method ini milik class induk
Sejarah Kita Top Cerr
BUILD SUCCESSFUL (total time: 8 seconds)

Minggu, 01 April 2012

Contoh Program Enkapsulasi

Nama : Ari Surya Gunawan
NPM : 51410041


Nama : Subhan Rubyansyah
NPM : 56410702


PROGRAM  ENKAPSULASI



List coding:


class Mahasiswa {


private String nama;
private String npm;


public Mahasiswa(String n, String npm) {
this.nama = n;
this.npm = npm;
}


public String tampilkanNama() {
return nama;
}


public String tampilkanNpm() {
return npm;
}


public void makan() {
System.out.println("Nyam... Nyam... Nyam...");
}


public void minum() {
System.out.println("ahhhhh segaaarrrr......");
}


public void olahraga() {
System.out.println("Sehat sehat sehat");
}


public void Belajar() {
System.out.println("Pintar pintar pintar");
}
}


class main {


public static void main(String[] args) {
Mahasiswa subhan = new Mahasiswa("Subhan Rubyansyah", "56410702");
System.out.println("Nama \t : " + subhan.tampilkanNama());
System.out.println("NPM \t : " + subhan.tampilkanNpm());
subhan.makan();
subhan.minum();
subhan.Belajar();
subhan.olahraga();
System.out.println();


Mahasiswa anda = new Mahasiswa("Ari Surya Gunawan", "51410041");
System.out.println("Nama \t : " + anda.tampilkanNama());
System.out.println("NPM \t : " + anda.tampilkanNpm());
anda.makan();
anda.minum();
anda.Belajar();
anda.olahraga();
System.out.println();


Mahasiswa kamu = new Mahasiswa("Kamu", "55555555");
System.out.println("Nama \t : " + kamu.tampilkanNama());
System.out.println("NPM \t : " + kamu.tampilkanNpm());
kamu.makan();
kamu.minum();
kamu.Belajar();
kamu.olahraga();
System.out.println();
}
}


Gambar:






OUTPUT


init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\user\My Documents\NetBeansProjects\JavaApplication15\build\classes
compile:
run:
Nama : Subhan Rubyansyah
NPM : 56410702
Nyam... Nyam... Nyam...
ahhhhh segaaarrrr......
Pintar pintar pintar
Sehat sehat sehat


Nama : Ari Surya Gunawan
NPM : 51410041
Nyam... Nyam... Nyam...
ahhhhh segaaarrrr......
Pintar pintar pintar
Sehat sehat sehat


Nama : Kamu
NPM : 55555555
Nyam... Nyam... Nyam...
ahhhhh segaaarrrr......
Pintar pintar pintar
Sehat sehat sehat


BUILD SUCCESSFUL (total time: 10 seconds)




LOGIKA:


enkapsulasi adalah suatu program yang dibuat untuk melindungi program khusus dari diakses dan intervensi dari program yang mempengaruhi pada tiap classnya. Untuk membuat program enkapsulasi dalam class-nya pada listingnya menggunakan private String pada nama dan npm yang difungsikan untuk pengkhususan pada block pada tiap class yang akan dipanggil pada system.out.print, dengan public Mahasiswa string n, string npm, yang akan dimasukan kedalam output biodatanya.


Pada public String tampilkanNama() { dan return nama disini difungsikan untuk pemanggilan program output yang telah dikhususkan kedalam classnya dan public String tampilkanNpm() sama. Pada pemanggilan awalnya digunakan class main sebagai patokan class yang akan diisi. 



Mahasiswa subhan = new Mahasiswa("Subhan Rubyansyah", "56410702");
System.out.println("Nama \t : " + subhan.tampilkanNama());
System.out.println("NPM \t : " + subhan.tampilkanNpm());
subhan.makan();
subhan.minum();
subhan.Belajar();
subhan.olahraga();
System.out.println();


Pada coding ini mahasiswa subhan mempunyai sebuah biodata nama dan npm-nya, terdapat kata-kata sintax  subhan.makan(), subhan.minum(), subhan.Belajar(), subhan olahraga(), ini dimaksudkan jika pada kata makan maka akan keluar outputnya seperti "nyam nyam nyam" yang dipanggil dari public void begitu pula yang lainnya dengan perantara public void pada class main yang dipanggil.