Sabtu, 18 November 2017

Abstract Class & Interface (PBO 2017, Teknik Informatika UTM)

Abstract Class
Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat di instansiasi secara langsung menjadi object.

Concrete Class
Concrete class java adalah kelas seperti itu yang memiliki implementasi dari semua anggota yang diwarisinya baik dari kelas antarmuka atau abstrak, dapat disimpulkan bahwa concrete class selain dari abstract class dan interface. 

- Mendefinisikan class yang nyata
- Dapat membentuk atau instansiasi object
- Dapat menurunkan implementasi dari super class
- Dapat sebagai base class pada hierarchical relationship dan membutuhkan class lain untuk mewarisinya

Interface
Interface adalah sebuah tipe referensi pada Java. Interface secara struktur serupa dengan class. Isi dari interface adalah method abstract, artinya method hanya dideklarasikan tidak ditulis secara utuh. Deklarasi method pada interface serupa dengan method pada class abstract.


Penggunaan Abstract Class
Sebagai contoh, kita akan membuat superclass bernama Makhluk Hidup. Class ini mempunyai method tertentu seperti bernafas, makan, tidur, dan berjalan. Akan tetapi, ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil contoh, method "berjalan".

Tidak semua kehidupan "berjalan" dalam cara yang sama. Manusia sebagai contohnya, kita manusia berjalan dengan dua kaki, dimana kehidupan lainnya seperti anjing atau kucing berjalan dengan empat kaki. Akan tetapi, beberapa ciri umum dalam kehidupan sudah biasa, itulah kenapa kita inginkan membuat superclass umum dalam hal ini.


Penggunaan Interface
Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah-olah class yang berhubungan.

Jumat, 10 November 2017

Pengertian Overriding dan Overloading Method (PBO 2017, Teknik Informatika UTM)

Overloading
      Overloading adalah salah satu cara penerapan dalam konsep polimorfisme. Overloading ada dua jenis,yaitu:
1.Overloading method
2.Overloading constructor

Overloading methode
      Dalam Java memungkinkan untuk mendefinisikan dua atau lebih metode dalam kelas yang sama, menggunakan nama yang sama, tetapi parameter yang dideklarasikan harus berbeda (jumlah atau tipe parameternya). Jika jumlah parameternya sama maka Tipe harus berbeda semua, tetapi jika jumlah parameternya berbeda-beda maka boleh tipenya sama.

Jenis-jenis metode overloading:
1.Jumlah parameter beda, tipe beda
2.Jumlah parameter sama, tipe beda
3.Jumlah parameter beda, tipe sama

Metode overloading ini, terjadi pada objek yang sama, tapi nilai argumennya berbeda- beda. Ketika metode overloaded dipanggil, Java mencari kesamaan antara argumen yangdigunakan untuk memanggil metode dan parameter dari metode. Tetapi, kesamaan initidak mutlak. Hal ini karena pada java adanya otomatisasi konversi tipe yang berbeda.

Overloading Contructor
      Overloading selain diterapkan pada metode juga diterapkan pada konstuktor. Bedanya overloading constructor terjadi pada objek yang berbeda-beda, nilai argument berbeda, sehingga metode bisa lebih dari satu. Penerapan overloading pada kelas Java akan menjadi suatu norma tanpa perkecualian.
      Contoh Overloading :

class PersegiPanjang{
            public PersegiPanjang(double Panjang){
                     System.out.println(“\nVariabel = persegi panjang pada bentuk hp“);
                     System.out.println(“panjang = “ +Panjang);
                     Keliling(Panjang);
             Public SegitigaPanjang(double Lebar){
                     System.out.println(“\n2Variabel = segitiganya sama kaki”);
                     System.out.println(“panjang = “ +Panjang+ “Lebar = “ +Lebar");
                     Keliling (Panjang, Lebar);


pada contoh di atas bahwa terdapat 2 method dengan nama sama “ segitiga” memiliki parameter berbeda. Inilah yang disebut Overloading.


Overriding

      Overriding memiliki method yang namanya sama namun berbeda class. Method pertama adalah method yang berasal dari class induk dengan parameter yang sama dengan method pada class anak. Pada Overriding nama method dan parameternya pada kedua classnya harus sama.
      Metode overriding adalah metode pada subclass yang mempunyai nama dan tipeidentik atau sama dengan metode superclass.

package nama;

public class Nama
{
        public void Sapa()
       {
               System.out.println("Halo Alvin!");
       }

        public static void main(String [] args)
       {
                Siapa ss;
                Nama nn;
                ss = new Siapa();
                nn = new Nama();

                ss.Sapa();
                //memanggil method Sapa() pada class Siapa
                nn.Sapa();
                //memanggil method Sapa() pada class Nama
         }
}
class Siapa extends Nama
{
       //Method Sapa() pada class Nama di override

       public void Sapa()
       {
                System.out.println("Alvin");
        }
}


Pada kedua kelas di atas jelas terlihat bahwa method “ Sapa()” pada superclass “Nama” dioverride di subclass “Siapa” memilki kesamaan dari segi nama parameter(potongan code dibawah) namun perbedaan pada implementasinya yaitu dalam mencetak kalimat yang berbeda


public void Sapa()
{
          System.out.println("Alvin");
}


Perbedaan overloading dengan overriding
Overloading adalah method dengan nama yang sama dengan method lain pada suatu class tetapi dengan parameter yang berbeda. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama sedangkan Overriding adalah method Subclass sama dengan method super class, parameternya sama tetapi pernyataan atau implementasinya berbeda.