Jumat, 15 Maret 2019

Pertemuan 6. OVERLOADING, OVERRIDING DAN EXCEPTION

OVERLOADING, OVERRIDING DAN EXCEPTION
A.    OVERLOADING
Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan satu nama method untuk beberapaa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter).
B.     OVERRIDING
Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan. Ada dua alasan dilakukanya Overriding :
1.      Mendefinisikan kembali method kelas induk scara total.
2.      Menambahkan behaviour tertentu pada method kelas induk.

C.     EXCEPTION
Exception merupakan objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. Setelah objek exception dibuat oleh java, objek tersebut dikirimkan ke program, proses ini disebut throwing an exception. Penanganan exception dalam java dibuat dengan menuliskan kode program ecxception handling pada source kode, yang berguna untuk mencegah program menjadi “hang”.  Kode program exception handling terdiri dari 3 bagian yaitu : try, cacth dan finally.
Kategori error dalamprogram :
1.      Syntax error : Error yang terjadi apabila java compiler menemukan kesalahan pada syntax.
2.      Runtime error : Error yang terjadi karena faktor eksternal, se[perti adanya pembagian denagan nol, input yang tidak sesuai dengan type yang dimainta.

3.      Logic error : Error karena kesalahan pemrograman. Seperti hasil pembagia dua buah bilangan diberi type data int. Ini akan menyebabkan hasil tidak valid karena ada bagian koma desimal yang akan hilang.

A.     MEMBUAT PROGRAM SegiTiga.java
class SegiTiga {
public SegiTiga (double panjang) {
System.out.println("\nVariabel = segitiganya sama sisi");
System.out.println ("Panjang = " +panjang);
keliling (panjang);
}
public SegiTiga (double panjang, double sisiMiring) {
System.out.println ("\n2Variable = segitiganya sama kaki");
System.out.println ("panjang = " +panjang+ " sisi miring = " +sisiMiring);
keliling(panjang, sisiMiring);
}
public void keliling (double panjang) {
tampilkanHasil(panjang*3);
}
public void keliling(double p, double sM) {
tampilkanHasil (2*sM+p);
}
protected void tampilkanHasil(double h) {
System.out.println("Hasil =" +h);
}
}

B.   MEMBUAT PROGRAM MainSegita.java
class MainSegiTiga {
public static void main (String[] args) {
new SegiTiga(7);
new SegiTiga(4,7);
}
}

OUTPUT :

 C..    MEMBUAT PROGRAM OverRiding.java
class OverRiding {
public void MethodAsli() {
System.out.println("Method milik class OverRiding dijalankan");
}
public static void main(String[] args) {
OverRiding o = new OverRiding();
o.MethodAsli();
}
}


 D.    MEMBUAT PROGRAM SubOverriding.java
class SubOverRiding extends OverRiding {
public void methodAsli(){
System.out.println("Method yang sudah OverRiding dijalankan");
}
public void MethodAsliSuper(){
System.out.println("Method pemanggil MethodAsli dijalankan");
super.MethodAsli();
}
public static void main (String[] args){
SubOverRiding SO = new SubOverRiding();
SO.MethodAsli();
SO.MethodAsliSuper();
}
}

OUTPUT :

 E.    MEMBUAT PROGRAM TanpaException.java
class TanpaException {
public static void main(String[] args) {
int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang dimasukkan : " +Nilai);
}
}


F.    MEMBUAT PROGRAM CobaException.java
class CobaException {
public static void main (String [] args) {
int nilai = 0;
try {

int Nilai = Integer.parseInt (args[0]);
System.out.println("Nilai yang diimasukkan  " +Nilai);
}
catch(Exception e) {
System.out.println("Pasti yang diinput bukan Integer");
}
finally {
System.out.println("Blok finally tetap dilakukan");
}
}
}

G.    MEMBUAT PROGRAM PembagianNol.java
class PembagianNol{
public static void main (String [] args) {
System.out.println("Sebelum pembagian");
try {
System.out.println (5/0);
}
catch (Throwable T) {
System.out.println ("Terjadi pembagian nol");
}
System.out.println("Sesudah pembagian");
}
}

OUTPUT :

H.    MEMBUAT PROGRAM TesInputData.java
import java.io.*;
class TesInputData {
public static void main (String[] args) {
BufferedReader BR = new BufferedReader (new InputStreamReader (System.in));
String Input = " ";
try {
System.out.println ("Masukkan data : ");
Input = "Salah";
}
finally {
System.out.println ("Data yang anda masukkan adalah "+Input);
}
}
}

Kesimpulan :
*Overloading bisa memiliki nama method yang sama dalam satu kelas, sedangkan Overriding memiliki nama method yang sama tapi berbeda kelasnya. Yang membedakan hanya pada jumlah parameternya.

Kamis, 14 Maret 2019

Pertemuan 5. ABSTRACT CLASS, INTERFACE, INNER CLASS

Assalamu’alaikum Wr.Wb...

ABSTRACT  CLASS, INTERFACE, INNER CLASS

A.     ABSTRACT CLASS
Abstract Class adalah suatu kelas yang dinyatakan abstract, umumnya memiliki suatu atau lebih abstract method. Abstract method adalah suatu method yang memiliki implementasi dan menggunakan modifier abstract. Abstract Class biasanya dijadkan super class dari kelas yang dapat membuat objek, abstract class tidak dapat diinstansiasi.

B.     INTERFACE
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.
           
C.     INNER CLASS
Inner class adalah kelas yang disisipkan dalam kelas lain. Fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya.

Contoh:
A.     MEMBUAT PROGRAM MakhlukHidup.java
public abstract class MakhlukHidup {
            protected boolean BisaTerbang = false;
            protected String Nama;
            protected int JlhKaki;

            public MakhlukHidup(String Namal, int JlhKakil,boolean BisaTerbangl) {
                        this.Nama = Namal;
                        this.JlhKaki = JlhKakil;
                        this.BisaTerbang = BisaTerbangl;
            }
            abstract void bernafas();

            public void status() {
                        System.out.println("Nama : " +Nama);
                        System.out.println("Jumlah Kaki : " +JlhKaki);
                        System.out.println("Bisa terbang : " +BisaTerbang);
            }

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

            public void bernafas () {
                        System.out.println(Nama+" bernafas dengan menghirup 02");
            }

            public static void main(String [] args) {
                        Manusia m = new Manusia ("Sayuti") ;
                        m.status();
                        m.bernafas();
            }
}

OUTPUT :

C.     MEMBUAT PROGRAM 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 :

D.     MEMBUAT PROGRAM Pekerjaan.java
interface Pekerjaan {
            public void namaPekerjaan () ;
            public void gaji();
}

E.     MEMBUAT PROGRAM 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:

F.     MEMBUAT PROGRAM 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 :


Ok teman-teman, lebih dan kurangnya saya mohon maaf.
Wassalamu’alaikum Wr.Wb...

Jumat, 08 Maret 2019

Pertemuan 4. INFORMATION HIDING, INHENTERITANCE, ENCAPSULATION DAN POLYMORPHISM

INFORMATION HIDING, INHENTERITANCE, ENCAPSULATION DAN POLYMORPHISM

  1. INHERITANCE (pewarisan)
Inheritance adalah penurunan atribute dan method  dari suatu kelas super/kelas Induk ke sub kelas/kelas anak. Pewarisan ini bersifat menyeluruh sehingga semua atribute dan method  yang dimiliki kelas super dapat diturunkan ke subkelas.
Deklarasi :
            [modifier] class NamaSubKelas extends NamaKelasSuper {
                        Class body;
            }
Keterangan : Kata kunci extends digunakan untuk menyatakan pewarisan.


B.     ENCAPSULATION

Encapsulation adalah suatu kemampuan dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain. Dalam pemrograman, memyembunyikan detail ini dikenal dengan istilah information hiding.

Pengkapsulan dilakukan dengan cara memberikan modifier private pada suatu method dan pada variable. Method untuk memberikan nilai padasuatu atribut privat yang diawali dengan kata “set”, sedangkan method untuk mengambil nilai dari suatu atribut yang diawali dengan“get.

C.    POLYMORPHISM

Polymorfisme bermakna satu kata yang memilik banyak arti. Contoh :
1.      “Sayuran itu masih mentah”.
2.      “Pukulan petinju itu berhasil dimentahkan lawanya”.
3.      “Gagasan itu masih mentah sehingga perlu dibahas kembali”.
Dapat diartikan bahwa polimorfisme memiliki nama yang sama, namun memiliki tingkah laku yang berbeda dan beda pula dam mengimplementasikanya.


LANGKAH-LANGKAH PRAKTIKUM

A.    MEMBUAT PROGRAM SuperClass.java

public class SuperClass{
            public SuperClass() {
                        System.out.println ("Ini konstruktor milik SuperClass");
            }
            public void methodSubClass() {
                        System.out.println("Ini method milik SuperClass");
            }
}
B.     MEMBUAT PROGRAM SubClass.java

public class SubClass extends SuperClass {
            public SubClass() {
                        super();
            }
            public void methodSubClass() {
                        System.out.println ("supermethodSuperClass");
            }
}



C.    MEMBUAT PROGRAM DemoInheritance.java

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

OUTPUT :
sc: digunakan untuk membuat object baru.



D.    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 panjangl) {
                        this.panjang = panjangl;
    }
    public void setLebar(double lebarl) {
                        this.lebar = lebarl;
    }
    public double getPanjang() {
                        return panjang;
    }
    public double getLebar() {
                        return lebar;
            }
            public double getLuas() {
                        return luas(panjang, lebar);
            }
}




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

OUTPUT :



F.     MEMBUAT PROGRAM Karyawan.java

abstract class Karyawan {
            int gaji;
            Karyawan () {
                        gaji = 1000000;
            }
            int getGaji () {
                        return gaji;
            }
            abstract void naikGaji();
}

G.    MEMBUAT PROGRAM Manager.java

class Manager extends Karyawan {
            Manager () {
                        gaji += 2000000;
            }
            void naikGaji() { gaji+=3000000; }
}

H.    MEMBUAT PROGRAM Receptionist.java

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

class Polymorphisme {
            public static void main (String[] args) {
                        Karyawan K[] = new Karyawan[3];

                        K[0] = new Manager();
                        K[1] = new Receptionist();
                        K[3] = 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:



 Nb : Program tidak akan menghasilkan output jika didalam sebuah program tidak memiliki syarat/fungsi utama "public static void main".