Senin, 20 Desember 2010

Pertemuan X1(Sebelas)


ABSTRACT CLASS,INTERFACE CLASS,INNER CLASS

ABSTRACT CLASS
Abstract class adalah suatu yang dinyatakan abstract, umumnya memiliki satu atau lebih abstract method.Abstract method adalah suatu method yang belum memilki implementasi dan menggunakan modifier abstract.Abstract class biasanya dijadikan parent/super class dari kelas-kelas yang dapat dibuat objek,abstract class tidak dapat diinstansiasi.

Analogi Inheritance dan abstract class:
       Inheritance dapat dianalogikan seperti penggolongan kelas ordo,phylum dalam biologi.
kita mengetahui bahwa suatu kelas dapat di instansiasi menjadi suatu objek,misal kelas manusia dapat diinstansiasi menjadi joko,susi,ari,ria dll,namun kita tidak mungkin dapat menginstansiasi kelas makhluk hidup,maupun kelas hewan sebab kelas tersebut terlalu umum(abstract),kelas seperti inilah yang disebut sebagai abstract class.Apabila kelas makhluk hidup mempunyai method bernafas,maka kita tidak dapat mementukan(mengimplementasikan)cara makhluk hidup tersebut bernafas,dengan paru-paru,Insang atau stomata dengan kita dapat menyatakan bahwa didalam kelas makhluk hidup,bernafas merupakan method yang abstract.

INTERFACE CLASS
Interface adalah suatu kelas yang berisi method-method tanpa implementasi namun tanpa modifier abstract,apabila suatu interface memiliki atribut,maka atributnya akan berlaku sebagai konstanta(Static final).
·         Interface berbeda dengan class
·         Interface berisi method kosong dan konstanta
·         Method dalam Interface tidak memiliki statement
·         Satu class boleh mengimplementasikan lebih dari satu Interface.
·         Suatu interface boleh mengextends(mewariskan) lebih dari satu interface.
Analogi Interface:
Interface dapat dianalogikan sebagai kontrak yang dapat dipakai oleh setiap kelas.
Dalam kehidupan nyata kita mengetahui bahwa ada manusia yang bekerja sebagai penyanyi,pengacara,pelawak,dsb,tentunya manusia-manusia tersebut selain harus memiliki method standar seorang manusia,juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat seorang objek joko penyanyi kita harus membuat kelas yang merupakan turunan kelas manusia yang mengimplementasikan interface penyanyi.

INNER CLASS
Inner Class Merupakan kelas yang disisipkan di dalam kelas yang lain.fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya.
Inner class bersifat tersarang terhadap kelas utamanya,seperti halnya blok penyeleksian(if,or) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang pada method yang tersarang pada method lainnya.
Analogi Inner Class:
Inner class dianalogikan sebagai hubungan antara manusia dan paru-paru.Setiap manusia pasti bernafas dengan menggunakan paru-paru.Dalam hal ini berarti kinerja dari paru-paru turut mendukung/menentukan kinerja dari manusia.Dalam bahasa pemrograman berorientasi objek manusia dapat dikatakan sebagai outer class dan paru-paru sebagai inner classnya.
Contoh:
1.       Membuat program makhlukhidup.java,manusia.java dan tumbuhan.java

Source Code makhlukhidup.Java
public abstract class makhlukhidup {    //dinyatakan sebagai kelas abstrak
protected String nama; //nama atribut yang bernama: nama
protected int  jumlkaki; //nama atribut yang bernama:jumlkaki
protected boolean bisaterbang; //nama atribut yang bernama:bisaterbang
public makhlukhidup(String nama, int jumlkaki,
                     boolean bisaterbang){
                     this.nama=nama; //berikan nilai ke atribut nama yang nilainya=nama
                     this.jumlkaki=jumlkaki; //berikan nilai ke atribut nama yang nilainya=jumlkaki
                     this.bisaterbang=bisaterbang; //berikan nilai ke atribut nama yang nilainya=bisaterbang
                     }
                     abstract void bernafas(); //method abstract yang tidak memiliki implementasi
                     public void status(){
                     System.out.println("nama     :"+nama);
                     System.out.println("jumlahkaki: "+jumlkaki);
                     System.out.println("bisa terbang? "+bisaterbang);
                     }
                     }
ada 3 method yang terdapat di kelas makhlukhidup yaitu:
method makhlukhidup,bernafas,status.

-          Simpan dengan nama makhlukhidup.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:








Source Code manusia.java 

kelas manusia merupakan kelas turunan dari kelas makhlukhidup
public class manusia extends makhlukhidup{
manusia(String nama){
   super(nama, 2, false); //memanggil konstruktor ke kelas induk
   }
  public void bernafas(){  //implementasi method bernafas
       System.out.println(nama+" bernafas dengan menghirup O2");
       }
       public static void main(String[] args){
              manusia m=new manusia("Sayuti");
              m.status(); //m merupakan object dari manusia
              m.bernafas();
              }
              }

-          Simpan dengan nama manusia.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:


Source Code tumbuhan.java
public class tumbuhan extends makhlukhidup{
tumbuhan(String nama){
super(nama, 0, false);
}
public void bernafas(){
   System.out.println(nama+" bernafas dengan menghirup CO2");
   }
  public static void main(String[] args){
   tumbuhan m=new tumbuhan("Bayam");
   m.status();
   m.bernafas();
   }
   }
-          Simpan dengan nama tumbuhan.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
2.      Membuat program pekerjaan.java dan sasya.java

Source Code pekerjaan.java


pekerjaan merupakan interface:kelas yang memiliki method-method harus tanpa implementasi
interface pekerjaan{
     public void namapekerjaan(); //memiliki 2 method
     public void gaji();
     }
-          Simpan dengan nama pekerjaan.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

 Source Code sasya.java //merupakan turunan dari manusia dan implementasi dari pekerjaan
public class sasya extends manusia implements pekerjaan{
       public sasya(){
              super("sasya");
              }
               //mengimplementasikan method milik interface
              public void namapekerjaan(){ //merupakan implementasi
                     System.out.println(" pekerjaan:sekretaris");
                     }
                     //mengimplementasikan method milik interface
                     public void gaji(){
                            System.out.println("gaji:Rp.3000.000,-");
                            }
                            public static void main(String[] args){
                            sasya s=new sasya();
                            s.status();
                            s.bernafas();
                            s.namapekerjaan();
                            s.gaji();
                            }
                            }

-          Simpan dengan nama sasya.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:


Source Code jantungmanusia.java
class orang {
private int jumlkaki=2;
public void dengarbunyijantung(){
jantung j=new jantung();
j.bunyijantung();
}
public void tahannafas(){
System.out.println("jantung berhenti berdetak!");
}

//inner class
class jantung{
public void bunyijantung() {
       System.out.println("deg..deg..deg..");
       }
       public void istirahat(){
       System.out.println("silakan ke "+jumlkaki+"kaki.");
       tahannafas();
       }
       }
       }
Selanjutnya Tekan Ctrl+1
Hasil Kompilenya:

     Kemudian tekan Ctrl+2 untuk menjalankan program
Program yang telah dijalankan:


Rabu, 15 Desember 2010

Pertemuan X(Sepuluh)


INFORMATION HIDING,INHERITANCE,ENCAPSULATION DAN POLYMORPHISM
1.       Inheritance
Inheritance adalah Penurunan atribut dan method dari suatu class super/kelas induk ke sub class/kelas anak.
Deklarasi:
[modifier] class NamaSubclass extends NamaKelassuper {
Class body;
}

Keterangan:Kata kunci extends digunakan untuk menyatakan Pewarisan
Pada pendeklarasian diatas terdapat  modifier,Modifier merupakan sifat yang dimiliki oleh sebuah atribut/class.

2.      Encapsulation
Encapsulation atau pengkapsulan adalah suatu kemampuan dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain.
Tujuan Encapsulation:Menyembunyikan atribut/method dari suatu objek ke objek lain.
Pengkapsulan dilakukan dengan cara memberikan modifier”Private” pada suatu method dan variable.
Method yang diawali dengan kata “set” merupakan Method yang digunakan untuk memberikan nilai pada suatu atribut yang bersifat private.sedangkan Method yang digunakan untuk mengambil nilai dari suatu atribut yang bersifat  private biasanya diawali dengan kata”get” .


Contoh:
Source 1. superclass.java

public class superclass{
public superclass() {
 System.out.println("Ini Konstruktor milik superclass");
 }
 public void methodsuperclass() {
    System.out.println("Ini method milik superclass");
    }
    }
-          Simpan dengan nama superclass.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

Keterangan kode program dari class superclass:
public class superclass{   //merupakan nama class yaitu”superclass” yang merupakan class anak.
public superclass() {  //merupakan perintah untuk menampilkan objek superclass
 System.out.println("Ini Konstruktor milik superclass");
//digunakan untuk menampilkan teks” ini       konstruktor milik superclass
 }
 public void methodsuperclass() { // merupakan method dengan nama  superclass
 System.out.println("Ini method milik superclass"); // perintah untuk menampilkan teks”ini method milik superclass”
}
}
Source 2.subclass.java
public class subclass extends superclass {
public subclass() {
super();
}
public void methodsubclass() {
super.methodsuperclass();
}
}
-          Simpan dengan nama subclass.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

Seperti yang kita ketahui sebelumnya Method merupakan tingkah laku dari suatu objek maka Dari contoh diatas dapat kita lihat ada 2 method yaitu:
1.      Method superclass
2.      Method subclass

Pembahasan dari kode program subclass:
public class subclass extends superclass { //maksudnya subclass merupakan turunan dari superclass
public subclass() { // merupakan method/ konstruktor dari subclass
super(); // digunakan untuk memanggil konstruktor dari class induk(kelas utamanya)
}
public void methodsubclass() { // nama dari sebuah method yaitu method subclass
super.methodsuperclass(); // memanggil konstruktor dari method superclass
}
}
Source 3.demoinheritance.java
public class demoinheritance{
public static void main(String[] args){
subclass sc = new subclass();
sc.methodsubclass();
}
}

-          Simpan dengan nama demoinheritance.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

Pembahasan dari kode program demoinheritance:
public class demoinheritance{ // merupakan nama class dengan nama demoinheritance
public static void main(String[] args){ //merupakan class induk(kelas utama) karena memiliki void main
subclass sc = new subclass(); //membuat objek baru dengan nama  sc dari kelas” subclass” dan memanggil konstruktor subclass
sc.methodsubclass(); //menuju method-method subclass pada objek sc
}
}
Source 4.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){
//method yang di sembunyikan
return p*l;
}

public void setpanjang(double panjang1){
//method-method pengakses
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);
}
}

-          Simpan dengan nama persegi.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya: 


Pembahasan kode program dari class persegi:
public class persegi { //merupakan nama kelas dengan nama persegi
private double panjang;   //atribut yang di sembunyikan
private double lebar;    //atribut yang di sembunyikan
private double tinggi;   //atribut yang di sembunyikan
maksudnya:panjang,lebar,tinggi dideklarasikan dengan tipe data double
public persegi(){
panjang=0; // nilai panjang=0
lebar=0; //nilai lebar=0
}
private double luas(double p,double l){ //private dipakai agar program tersebut tidak diketahui dengan sembarng objek.
//method yang di sembunyikan
return p*l;
}

public void setpanjang(double panjang1){ //setpanjang digunakan untuk memberikan nilai panjang
//method-method pengakses
this.panjang=panjang1; //maksudnya:berikan nilai ke atribut panjang=panjang1 yang nilai awalnya o berubah menjadi 10
}
public void setlebar(double lebar1){ //setlebar digunakan untuk memberikan nilai lebar
this.lebar=lebar1; //maksudnya:berikan nilai ke atribut lebar=lebar1 yang nilai awalnya o berubah menjadi 20
}
public double getpanjang(){ //getpanjang digunakan untuk mengambil nilai panjang
return panjang;
}

public double getlebar(){  //getlebar digunakan untuk mengambil nilai lebar
return lebar;
}
public double getluas(){   //getluas digunakan untuk mengambil nilai luas
return luas(panjang, lebar);
}
}

Source 5.mainpersegi.java
public class mainpersegi{ //merupakan nama kelas dengan nama mainpersegi
public static void main(String[] args){ // merupakan class induk(kelas utama) karena memiliki void main
persegi pg = new persegi//membuat objek baru dengan nama  pg dari kelas” persegi” dan memanggil konstruktor persegi
pg.setpanjang(10); // memberikan nilai panjang dari objek baru pg dengan nilai 10
pg.setlebar(20); // memberikan nilai lebar dari objek baru pg dengan nilai 20
System.out.println("panjang: "+pg.getpanjang()); //menampilkan nilai panjang dengan mengambil nilai panjang dari objek pg
System.out.println("lebar: "+pg.getlebar());//menampilkan  nilai lebar dengan mengambil nilai lebar dari objek pg
System.out.println("luas: "+pg.getluas());//menampilkan nilai luas dengan mengambil nilai luas dari objek pg
}
}

Selanjutnya tekan Ctrl+1 untuk Kompile Program
Hasil dari Kompile program:




Selanjutnya tekan Ctrl+2 untuk menjalankan program
Hasil dari running Program:


























































Jumat, 10 Desember 2010

Pertemuan IX(Sembilan)


INFORMATION HIDING,INHERITANCE,ENCAPSULATION DAN POLYMORPHISM
1.       Inheritance
Inheritance adalah Penurunan atribut dan method dari suatu class super/kelas induk ke sub class/kelas anak.
Deklarasi:
[modifier] class NamaSubclass extends NamaKelassuper {
Class body;
}

Keterangan:Kata kunci extends digunakan untuk menyatakan Pewarisan
Pada pendeklarasian diatas terdapat  modifier,Modifier merupakan sifat yang dimiliki oleh sebuah atribut/class.

2.      Encapsulation
Encapsulation atau pengkapsulan adalah suatu kemampuan dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain.
Tujuan Encapsulation:Menyembunyikan atribut/method dari suatu objek ke objek lain.
Pengkapsulan dilakukan dengan cara memberikan modifier”Private” pada suatu method dan variable.
Method yang diawali dengan kata “set” merupakan Method yang digunakan untuk memberikan nilai pada suatu atribut yang bersifat private.sedangkan Method yang digunakan untuk mengambil nilai dari suatu atribut yang bersifat  private biasanya diawali dengan kata”get” .


Contoh:
Source 1. superclass.java

public class superclass{
public superclass() {
 System.out.println("Ini Konstruktor milik superclass");
 }
 public void methodsuperclass() {
    System.out.println("Ini method milik superclass");
    }
    }
-          Simpan dengan nama superclass.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:
Keterangan kode program dari class superclass:
public class superclass{   //merupakan nama class yaitu”superclass” yang merupakan class anak.
public superclass() {  //merupakan perintah untuk menampilkan objek superclass
 System.out.println("Ini Konstruktor milik superclass");
//digunakan untuk menampilkan teks” ini       konstruktor milik superclass
 }
 public void methodsuperclass() { // merupakan method dengan nama  superclass
 System.out.println("Ini method milik superclass"); // perintah untuk menampilkan teks”ini method milik superclass”
}
}
Source 2.subclass.java
public class subclass extends superclass {
public subclass() {
super();
}
public void methodsubclass() {
super.methodsuperclass();
}
}
-          Simpan dengan nama subclass.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya: 

Seperti yang kita ketahui sebelumnya Method merupakan tingkah laku dari suatu objek maka Dari contoh diatas dapat kita lihat ada 2 method yaitu:
1.      Method superclass
2.      Method subclass

Pembahasan dari kode program subclass:
public class subclass extends superclass { //maksudnya subclass merupakan turunan dari superclass
public subclass() { // merupakan method/ konstruktor dari subclass
super(); // digunakan untuk memanggil konstruktor dari class induk(kelas utamanya)
}
public void methodsubclass() { // nama dari sebuah method yaitu method subclass
super.methodsuperclass(); // memanggil konstruktor dari method superclass
}
}
Source 3.demoinheritance.java
public class demoinheritance{
public static void main(String[] args){
subclass sc = new subclass();
sc.methodsubclass();
}
}

-          Simpan dengan nama demoinheritance.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

Pembahasan dari kode program demoinheritance:
public class demoinheritance{ // merupakan nama class dengan nama demoinheritance
public static void main(String[] args){ //merupakan class induk(kelas utama) karena memiliki void main
subclass sc = new subclass(); //membuat objek baru dengan nama  sc dari kelas” subclass” dan memanggil konstruktor subclass
sc.methodsubclass(); //menuju method-method subclass pada objek sc
}
}
Source 4.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){
//method yang di sembunyikan
return p*l;
}
public void setpanjang(double panjang1){
//method-method pengakses
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);
}
}

-          Simpan dengan nama persegi.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya: 
Pembahasan kode program dari class persegi:
public class persegi { //merupakan nama kelas dengan nama persegi
private double panjang;   //atribut yang di sembunyikan
private double lebar;    //atribut yang di sembunyikan
private double tinggi;   //atribut yang di sembunyikan
maksudnya:panjang,lebar,tinggi dideklarasikan dengan tipe data double
public persegi(){
panjang=0; // nilai panjang=0
lebar=0; //nilai lebar=0
}
private double luas(double p,double l){ //private dipakai agar program tersebut tidak diketahui dengan sembarng objek.
//method yang di sembunyikan
return p*l;
}

public void setpanjang(double panjang1){ //setpanjang digunakan untuk memberikan nilai panjang
//method-method pengakses
this.panjang=panjang1; //maksudnya:berikan nilai ke atribut panjang=panjang1 yang nilai awalnya o berubah menjadi 10
}
public void setlebar(double lebar1){ //setlebar digunakan untuk memberikan nilai lebar
this.lebar=lebar1; //maksudnya:berikan nilai ke atribut lebar=lebar1 yang nilai awalnya o berubah menjadi 20
}
public double getpanjang(){ //getpanjang digunakan untuk mengambil nilai panjang
return panjang;
}

public double getlebar(){  //getlebar digunakan untuk mengambil nilai lebar
return lebar;
}
public double getluas(){   //getluas digunakan untuk mengambil nilai luas
return luas(panjang, lebar);
}
}

Source 5.mainpersegi.java
public class mainpersegi{ //merupakan nama kelas dengan nama mainpersegi
public static void main(String[] args){ // merupakan class induk(kelas utama) karena memiliki void main
persegi pg = new persegi//membuat objek baru dengan nama  pg dari kelas” persegi” dan memanggil konstruktor persegi
pg.setpanjang(10); // memberikan nilai panjang dari objek baru pg dengan nilai 10
pg.setlebar(20); // memberikan nilai lebar dari objek baru pg dengan nilai 20
System.out.println("panjang: "+pg.getpanjang()); //menampilkan nilai panjang dengan mengambil nilai panjang dari objek pg
System.out.println("lebar: "+pg.getlebar());//menampilkan  nilai lebar dengan mengambil nilai lebar dari objek pg
System.out.println("luas: "+pg.getluas());//menampilkan nilai luas dengan mengambil nilai luas dari objek pg
}
}
Selanjutnya tekan CTRL+1 untuk mengkompile
Hasil program yang telah dikompile

Tekan CTRL+2 untuk menjalankan program
Source program karyawan.java
abstract class karyawan {
int gaji;
karyawan(){
gaji=1000000;
}

int getgaji(){
return gaji;
}

abstract void naikgaji();
}

-          Simpan dengan nama karyawan.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:


Source program  manager.java
class manager extends karyawan{
manager(){
gaji +=2000000;
}
void naikgaji(){gaji+=3000000;}
}

-          Simpan dengan nama manager.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:


-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:

Source program receptionist.java
class receptionist extends karyawan {
receptionist(){
gaji +=1000000;
}
void naikgaji() { gaji +=1000000; }
}
-          Simpan dengan nama receptionist.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:

-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya:


Source program polymorphisme.java
class polymorphisme{
public static void main(String[]args){
karyawan K[]=new karyawan[13];

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

-          Simpan dengan nama polymorphisme.java
      Tekan Ctrl+1 untuk mengkompile
Hasil setelah di compile:
-          Selanjutnya tekan Ctrl+2 untuk menjalankan program
Outputnya: