Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Membuat Program Overriding Java dan Fungsinya

Method overriding adalah salah satu konsep penting dalam pemrograman berorientasi objek yang memungkinkan kelas turunan (subclass) untuk mendefinisikan ulang (override) implementasi metode yang telah didefinisikan dalam kelas induknya (superclass). Dalam artikel ini, akan dibahas cara membuat program menggunakan method overriding dalam Java beserta fungsinya.


Sebelum lebih lanjut mempelajari materi tentang Cara Membuat Program Overriding Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Acces Modifier Java dan Fungsinya, Menggunakan THIS Java dan Fungsinya, dan Cara Menggunakan Method Overloading Java dan Fungsinya.

Langkah-langkah Membuat Program Overriding Java:
  • Definisikan Kelas Induk (Superclass): Mulailah dengan mendefinisikan kelas induk yang berisi metode yang akan di-override di kelas turunannya. Ini adalah kelas yang akan menjadi acuan bagi implementasi metode di kelas turunan.
    • /* Kelas induk (Superclass) */ public class Hewan { public void suara() { System.out.println("Hewan bersuara..."); } }
  • Buat Kelas Turunan (Subclass): Selanjutnya, buat kelas turunan yang akan mewarisi kelas induknya dan mendefinisikan ulang metode yang ingin di-override. Pastikan untuk menggunakan anotasi @Override sebelum mendefinisikan metode yang akan di-override untuk memastikan bahwa secara eksplisit melakukan overriding.
    • /* Kelas turunan (Subclass) */ public class Anjing extends Hewan { @Override public void suara() { System.out.println("Guk guk"); } }
  • Panggil Metode dari Kelas Turunan: Terakhir, panggil metode yang telah di-override dari kelas turunan. Saat metode tersebut dipanggil, Java akan secara otomatis mengeksekusi implementasi yang didefinisikan dalam kelas turunan, bukan implementasi yang ada dalam kelas induk.
    • public class Main { public static void main(String[] args) { Hewan hewan = new Anjing(); hewan.suara(); /* Output: Guk guk */ } }

Berikut adalah contoh dari output program Overring pada bahasa pemrograman Java.

Contoh: Output overriding program 1.

class Derived

{

 

protected final void getDetails(){

System.out.println("Derived"

+" class");}

 

}

 

public class Test extends Derived

{

 

protected final void getDetails(){

System.out.println("Test"

+" class");}

 

public static void main(String[] args){

Derived obj = new Derived();

obj.getDetails();}

 

}

Pilih salah satu jawaban berikut ini:
a) Derived class
b) Test class
c) Runtime error
d) Compilation error

Jawabannya adalah d. Compilation error
Penjelasan: Method final dan static tidak bisa overriding.

Contoh: Output overriding program 2.

class Derived

{

 

public void getDetails(String temp){

System.out.println("Derived"

+" class " 

+temp);}

 

}

 

public class Test extends Derived

{

 

public int getDetails(String temp)

{System.out.println("Test"

+" class " 

+temp);

return 0;}

 

public static void main(String[] args)

{Test obj = new Test();

obj.getDetails("MKN");}

 

}

Pilih salah satu jawaban berikut ini:
a) Derived class MKN
b) Test class MKN
c) Compilation error
d) Runtime error

Jawabannya adalah c. Compilation error
Penjelasan: Method overriding harus memiliki signature yang sama, yang didalamnya termasuk daftar argumen dan tipe return.

Baca Juga:

class Derived

{

public void getDetails()

{System.out.println("Derived"

+" class");}

}

 

public class Test extends Derived

{

protected void getDetails()

{System.out.println("Test"

+" class");}

public static void main(String[] args){

Derived obj = new Test(); 

/* line xyz */

obj.getDetails();}

}

Pilih salah satu jawaban berikut ini:
a) Test class
b) Compilation error pada line xyz
c) Derived class
d) Compilation error pada access modifier

Jawabannya adalah d. Compilation error pada access modifier
Penjelasan: Method overriding tidak bisa mengubah akses yang lebih ketat.

Contoh: Output overriding program 4.

import java.io.IOException;

 

class Derived

{

public void getDetails() throws IOException 

/* line 23 */

{System.out.println("Derived"

+" class");}

}

 

public class Test extends Derived

{

 

public void getDetails() throws Exception 

/* line 24 */

{System.out.println("Test"

+" class");}

 

public static void main(String[] args) throws IOException 

/* line 25 */

{Derived obj = new Test();

obj.getDetails();}

 

}

Pilih salah satu jawaban berikut ini:
a) Compilation error pada line 23
b) Compilation error pada line 24
c) Compilation error pada line 25
d) Compilation error pada line 23, 24, dan 25

Jawabannya adalah b. Compilation error pada line 24
Penjelasan: Exception oleh overriding method seharusnya bukan exception yang baru atau lebih luas cakupannya. Pada contoh program sebelumnya exception adalah class yang lebih luas dari exception yang diperiksa IOexception, sehingga menghasilkan error compilation.

Contoh: Output overriding program 5.

class Derived

{

public void getDetails()

{System.out.printf("Derived"

+" class ");}

}

 

public class Test extends Derived

{

 

public void getDetails()

{System.out.printf("Test "

+"class ");

super.getDetails();}

 

public static void main(String[] args)

{Derived obj = new Test();

obj.getDetails();}

 

}

Pilih salah satu dari jawaban berikut ini:
a) Test class Derived class
b) Derived class Test class
c) Compilation error
d) Runtime error

Jawabannya adalah a. Test class Derived class
Penjelasan: keyword super digunakan untuk memanggil method overriding dari child class secara eksplisit.

Fungsi Method Overriding dalam Java:
  • Polimorfisme: Method overriding memungkinkan pengembang untuk menciptakan polimorfisme dalam program Java. Polimorfisme memungkinkan pengembang untuk menggunakan objek dari kelas turunan dengan cara yang sama seperti objek dari kelas induknya, tetapi perilaku yang sesuai dengan tipe objek aktual akan dipanggil.
  • Fleksibilitas: Method overriding memberikan fleksibilitas dalam mendefinisikan perilaku yang sesuai dengan kelas turunan tanpa mengubah struktur atau implementasi dari kelas induknya. Ini memungkinkan untuk menyesuaikan perilaku objek sesuai dengan kebutuhan aplikasi.
  • Penggunaan Kode Ulang: Method overriding memungkinkan untuk menggunakan kembali kode yang sudah ada dan mengubah perilaku yang diperlukan di kelas turunan. Hal ini mengurangi duplikasi kode dan mempermudah pemeliharaan kode.
  • Enkapsulasi: Method overriding mendukung prinsip enkapsulasi dalam pemrograman berorientasi objek dengan memungkinkan untuk memisahkan logika implementasi dari antarmuka publik. Ini memungkinkan perubahan dalam implementasi metode tanpa mempengaruhi penggunaan metode tersebut.
  • Peningkatan Keterbacaan Kode: Dengan menggunakan method overriding dengan bijak, pengembang dapat meningkatkan keterbacaan kode dengan menyediakan implementasi yang sesuai dengan nama metode yang sudah dikenal dari kelas induknya. Ini membuat kode lebih mudah dipahami dan dipelihara.

Meskipun method overriding adalah salah satu fitur yang sangat berguna dalam pemrograman berorientasi objek, namun ada beberapa kekurangan yang perlu diperhatikan:
  • Keterbatasan pada Penggunaan Final dan Static: Metode yang didefinisikan sebagai final dalam kelas induk tidak dapat di-override di kelas turunan. Begitu pula dengan metode yang didefinisikan sebagai static, karena metode tersebut tidak terkait dengan instansi objek dan tidak dapat di-override. Hal ini mengurangi fleksibilitas dalam penggunaan method overriding.
  • Keterbatasan pada Perubahan Perilaku: Terkadang, method overriding dapat membatasi kemampuan untuk mengubah perilaku metode secara drastis di kelas turunan. Ini karena implementasi metode harus tetap konsisten dengan antarmuka yang telah ditentukan di kelas induknya.
  • Membingungkan dan Menyulitkan Pemahaman Kode: Terlalu banyak method overriding yang kompleks atau berantakan dapat membuat kode sulit dipahami dan membingungkan. Hal ini terutama terjadi jika ada banyak kelas turunan yang melakukan overriding pada metode yang sama dari kelas induknya.
  • Kesulitan dalam Debugging: Jika terjadi kesalahan dalam implementasi method overriding, debugging kode dapat menjadi sulit karena harus melacak implementasi metode yang benar dari kelas yang relevan. Hal ini dapat memakan waktu dan menghambat proses pengembangan.
  • Pemahaman yang Salah: Penggunaan method overriding yang tidak tepat atau tidak jelas dapat menghasilkan pemahaman yang salah tentang perilaku objek dalam program. Ini dapat menyebabkan kesalahan dalam logika program dan mempersulit pemeliharaan kode di masa mendatang.

Meskipun demikian, kekurangan dalam penggunaan method overriding dapat diatasi dengan praktik terbaik dalam pengembangan perangkat lunak, seperti penggunaan yang konsisten dan tepat, dokumentasi yang baik, dan pengujian yang menyeluruh. Dengan memahami baik kelebihan maupun kekurangan method overriding, pengembang dapat menggunakan fitur ini secara efektif dalam pengembangan perangkat lunak Java.

Dengan memahami dan menggunakan method overriding dengan bijak dalam pengembangan perangkat lunak Java, pengembang dapat menciptakan kode yang lebih fleksibel, mudah dimengerti, dan mudah dikelola. Method overriding adalah salah satu konsep penting dalam pemrograman berorientasi objek yang memungkinkan untuk memanfaatkan polimorfisme dan meningkatkan modularitas kode.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Nadya Yuli Rismawati, Nibrose Zukhruf Febrina, Nikodemus Galih Candra Wicaksono, Piawai Madani Rudini, dan Rafadila Putri Wardani.

5 komentar untuk "Cara Membuat Program Overriding Java dan Fungsinya"

  1. Mendeklarasikan method sub class yang sudah ada pada class induk dikenal sebagai method overriding. Overriding dilakukan agar class anak dapat memberikan suatu implementasi sendiri ke method yang sudah disediakan oleh class indukk.

    BalasHapus
  2. Dalam bahasa pemrograman berorientasi object apapun, overriding adalah fitur yang memungkinkan subclass atau class turunan untuk menyediakan implementasi spesifik dari method yang sudah disediakan oleh salah satu class super atau class induk. Method overriding merupakan salah satu cara bagi java untuk mencapai runtime polymorphism.

    BalasHapus
  3. Fungsi dari anotasi @overridie pada Java adalah memberi tahu kompilator bahwa elemen tersebut dimaksudkan untuk mengganti (override) elemen yang telah dideklarasikan dalam superclass.

    BalasHapus
  4. Apa yang terjadi dalam suatu method override pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Kemampuan subclass untuk menggati method memungkinkan class untuk mewarisi sifat dari superclass yang perilakukany cukup dengan dan kemudian mengubah perilaku tersebut sesuai dengan kebutuhan dari class tersebut. Method overriding memiliki nama, jumlah, dan tipe parameter yang sama, dan tipe kembalian sebagai method yang telah di-override.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -