Sabtu, 26 Oktober 2013

Pertemuan 5: Abstract Class,Interface dan Inner Class

1. Abstract Class
    a. MakhlukHidup.java
        public abstract class MakhlukHidup {
        protected boolean BisaTerbang = false ;
        protected String Nama ;
        protected int JlhKaki ;
        public MakhlukHidup(String Nama1, int JlhKaki1,boolean BisaTerbang1) {
        this.Nama = Nama1;
        this.JlhKaki = JlhKaki1;
        this.BisaTerbang = BisaTerbang1;
        }
        abstract void bernafas();
        public void status(){
        System.out.println("Nama :"+Nama);
        System.out.println("Jumlah Kaki : "+JlhKaki);
        System.out.println("Bisa Terbang : "+BisaTerbang);
        }
        }

    b. Manusia.java
        public class Manusia extends MakhlukHidup {
        Manusia (String nama) {
        super(nama, 2, false);
        }

        public void bernafas () {
        System.out.println(Nama+" bernafas dengan menghirup O2");
        }
        public static void main(String [] args) {
        Manusia m = new Manusia("sayuti");

        m.status();
        m.bernafas();
        }
        }

        Outputnya:






      

       c. 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 t = new Tumbuhan ("Bayam");
           t.status();
           t.bernafas();
           }
           }

         Output:               
            


     2. Interface
         a. Pekerjaan.java
             interface Pekerjaan {
             public void namaPekerjaan();
             public void gaji();
             }

          b. Sasya.java
              public class Sasya extends Manusia implements Pekerjaan {
              public Sasya() {
              super("Sasya");
              }

              public void namaPekerjaan() {
              System.out.println("Pekerjaan :Sekretaris");
              }

              public void gaji() {
              System.out.println("Gaji : Rp. 3.000.000");
              }

              public static void main(String[] args) {
              Sasya s = new Sasya();
              s.status();
              s.bernafas();
              s.namaPekerjaan();
              s.gaji();
              }
              }



             Output:
               



         3. Inner Class
             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("Silangkan ke "+jumlKaki+" kaki.");
              tahanNafas();
              }
              }
              }
              class JantungManusia {
              public static void main(String[] args) {
              Orang o = new Orang();
              Orang.Jantung p = o.new Jantung();
              o.dengarBunyiJantung();
              p.istirahat();
              }
              }


             Output:
           

Minggu, 20 Oktober 2013

Praktikum 4: Information Hiding, Inheritance, Encapsulation dan Polymorphism

A. Inheritance
    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");
        }
        }




    2. SubClass.java
        public class SubClass extends SuperClass{
        public SubClass() {
        super();
        }

        public void methodSubClass() {
        super.methodSuperClass();
        }
        }

   3. DemoInheritance.java
       public class DemoInheritance{
       public static void main (String[] args) {
       SubClass sc = new SubClass();
       sc.methodSubClass();
       }
       }

B. Encapsulation
    1. Persegi.java
        public class Persegi {
        private double panjang;        //atribut yang disembunyikan
        private double lebar;        //atribut yang disembunyikan
        private double    tinggi;        //atribut yang disembunyikan

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

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

       Output:
     


C. Polymorphism
    1. Karyawan.java
        abstract class Karyawan {
        int gaji;
        Karyawan() {
        gaji = 1000000;
        }

        int getGaji() {
        return gaji;
       }
       abstract void naikGaji();
      }

    2. Manager.java
        class Manager extends Karyawan {
        Manager() {
        gaji += 2000000;
        }

        void naikGaji() { gaji+=3000000; }
        }







    3. Receptionist.java
        class Receptionist extends Karyawan {
        Receptionist() {
        gaji += 1000000;
        }

        void naikGaji() { gaji+=1000000; }
        }


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

      Output: