Lompat ke konten Lompat ke sidebar Lompat ke footer

Inheritance dan Constructor Java dan Fungsinya

Pada bahasa pemrograman Java, constructor dari base class yang tidak memiliki argumen dapat dipanggil otomatis dari derived class constructor.


Sebelum lebih lanjut mempelajari materi tentang Inheritance dan Constructor Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Java Bukan Pemrograman Berorientasi Objek Murni dan Alasannya, Multiple Inheritance Java dan Fungsinya, dan Membuat Object Java dari Class Turunan dan Fungsinya.

Dalam pemrograman berorientasi objek (OOP), pewarisan adalah konsep yang memungkinkan sebuah kelas (kelas turunan) untuk mewarisi sifat-sifat dan perilaku dari kelas lain (kelas induk). Konstruktor, di sisi lain, adalah metode khusus yang digunakan untuk menginisialisasi objek yang dibuat dari sebuah kelas. Artikel ini akan menjelaskan bagaimana pewarisan dan konstruktor bekerja dalam bahasa pemrograman Java, serta fungsinya dalam pengembangan perangkat lunak.

Pewarisan dalam Java

Pewarisan dalam Java memungkinkan sebuah kelas turunan untuk mewarisi semua sifat dan perilaku (metode dan variabel) dari kelas induknya. Dalam Java, pewarisan didefinisikan dengan menggunakan kata kunci extends. 

Contoh: Berikut adalah cara sederhana penggunaan pewarisan dalam Java.

// Definisikan kelas induk

class Parent {

// Variabel dan 

//metode kelas induk

}


// Definisikan kelas turunan

class Child extends Parent {

// Variabel dan 

//metode kelas turunan

}

Penjelasan: Kelas Child mewarisi semua sifat dan perilaku dari kelas Parent.

Konstruktor dalam Java

Konstruktor adalah metode khusus yang memiliki nama yang sama dengan nama kelasnya dan tidak memiliki tipe pengembalian. Tujuan utama konstruktor adalah untuk menginisialisasi objek yang dibuat dari sebuah kelas. Dalam Java, jika sebuah kelas tidak memiliki konstruktor yang didefinisikan secara eksplisit, Java akan membuatkan konstruktor default (tanpa parameter) secara otomatis. 

Contoh: Berikut adalah penggunaan konstruktor dalam Java.

class MyClass {

int x;


// Konstruktor tanpa parameter

MyClass() {x = 0;}


// Konstruktor dengan

// parameter

MyClass(int num) {

x = num;}


}

Penjelasan: MyClass memiliki dua konstruktor, satu tanpa parameter dan yang lainnya dengan satu parameter num.

Baca Juga:

Hubungan antara Pewarisan dan Konstruktor dalam Java

Ketika sebuah objek dari kelas turunan dibuat, konstruktor kelas induk dipanggil terlebih dahulu secara otomatis sebelum konstruktor kelas turunan dipanggil. Proses ini memastikan bahwa semua variabel dan status kelas induk diinisialisasi dengan benar sebelum objek kelas turunan digunakan. 

Contoh: Berikut adalah penjelasan tentang hubungan antara pewarisan dan konstruktor dalam Java.

class MyClass {

int x;


// Konstruktor tanpa parameter

MyClass() {x = 0;}


// Konstruktor dengan

// parameter

MyClass(int num) {

x = num;}


}

Penjelasan: Konstruktor kelas Child memanggil konstruktor kelas Parent menggunakan kata kunci super. Ini memastikan bahwa variabel x dari kelas induk diinisialisasi sebelum objek kelas Child digunakan.

Contoh: Output program.

/* filename: Main.java */

class Base

Base() { 

System.out.println("Base" +"Class Constructor" 

+" dipanggil"); 

 

class Derived extends Base

Derived() { 

System.out.println("Derived" 

+" Class Constructor" 

+" dipanggil"); 

 

public class Main

public static void main(String[] args) { 

Derived d = new Derived(); 

}

Output:
Base Class Constructor dipanggil
Derived Class Constructor dipanggil

Tetapi, jika ingin memanggil parameterisasi constructor dari base class, maka proses pemanggilan dapat dilakukan menggunakan super(). Perlu dicatat bahwa, pemanggilan constructor base class pertama-tama haruslah dimulai dari baris pertama dalam constructor derived class. Contohnya, pada program berikut ini, super() adalah baris pertama derived class constructor.

Contoh:

/* filename: Main.java */

class Base

int x; 

Base(int _x

{x = _x;} 

 

class Derived extends Base

int y; 

Derived(int _x, int _y

{super(_x); y = _y;} 

 

void Display() 

{System.out.println("x ="

+x

+", y = "

+y);} 

 

public class Main

public static void main(String[] args) { 

Derived d = new Derived(10, 20); 

d.Display();} 

}

Output:
x = 10, y = 20

Fungsi Pewarisan dan Konstruktor dalam Pengembangan Perangkat Lunak:
  • Penggunaan Kembali Kode: Pewarisan memungkinkan untuk menggunakan kembali kode yang sudah ada dalam kelas induk tanpa perlu menuliskan ulang kode yang sama di kelas turunan. Ini mengurangi duplikasi kode dan membuat kode lebih mudah dipelihara.
  • Inisialisasi Objek: Konstruktor digunakan untuk menginisialisasi objek yang dibuat dari sebuah kelas dengan nilai awal yang sesuai. Ini memastikan bahwa objek memiliki nilai yang valid sebelum digunakan dalam aplikasi.
  • Penyediaan Konteks yang Konsisten: Dengan menggunakan konstruktor kelas induk, pengembang dapat memastikan bahwa objek dari kelas turunan memiliki konteks yang konsisten dengan objek dari kelas induknya. Ini membantu dalam memastikan bahwa objek tersebut dapat digunakan dengan benar dalam aplikasi.

Beberapa kekurangan yang terkait dengan pewarisan dan konstruktor dalam Java:
  • Ketergantungan Terhadap Struktur Pewarisan: Penggunaan pewarisan yang terlalu dalam atau kompleks dapat menghasilkan ketergantungan yang tinggi antar kelas. Hal ini dapat membuat perubahan pada kelas induk mempengaruhi banyak kelas turunan, dan sebaliknya. Ini meningkatkan risiko kesalahan dan membuat pemeliharaan menjadi lebih sulit.
  • Kompleksitas Hubungan Antara Kelas: Semakin dalam hierarki pewarisan, semakin kompleks hubungan antara kelas-kelas. Hal ini dapat menyulitkan pemahaman terhadap struktur program, terutama dalam proyek-proyek besar yang melibatkan banyak kelas.
  • Konflik dan Ambiguitas: Dalam situasi dimana kelas turunan memiliki metode atau variabel dengan nama yang sama seperti kelas induk atau kelas turunan lainnya, dapat terjadi konflik atau ambiguitas. Ini menyulitkan dalam memahami kode dan memperbaiki masalah yang muncul.
  • Pembatasan Penggunaan Polimorfisme: Penggunaan konstruktor kelas induk dalam konstruktor kelas turunan dapat menghasilkan kode yang kurang fleksibel terkait dengan polimorfisme. Hal ini karena konstruktor kelas induk harus dipanggil terlebih dahulu dalam konstruktor kelas turunan, yang dapat membatasi kemampuan untuk memanfaatkan polimorfisme sepenuhnya.
  • Penggunaan Memori yang Lebih Besar: Setiap objek yang dibuat dari kelas turunan akan menyimpan informasi dari kelas induknya juga. Ini dapat mengakibatkan penggunaan memori yang lebih besar, terutama jika terdapat banyak objek yang dibuat dari kelas-kelas turunan yang kompleks.
  • Keterbatasan dalam Perubahan: Jika sebuah kelas induk mengalami perubahan, ini dapat berdampak pada kelas-kelas turunan yang bergantung padanya. Perubahan ini dapat memerlukan pembaruan besar dalam struktur pewarisan, yang dapat mempengaruhi banyak bagian dalam kode.

Meskipun memiliki kekurangan-kekurangan ini, dengan perencanaan yang baik dan pemahaman yang mendalam tentang struktur pewarisan dan penggunaan konstruktor, kebanyakan dari kekurangan-kekurangan ini dapat diminimalkan atau diatasi. Dengan pemikiran yang hati-hati, pengembang dapat merancang dan mengimplementasikan hierarki kelas yang efisien dan mudah dipelihara dalam aplikasi Java.

Kesimpulan

Pewarisan dan konstruktor adalah konsep penting dalam pemrograman berorientasi objek, termasuk dalam bahasa pemrograman Java. Dengan pemahaman yang baik tentang bagaimana pewarisan dan konstruktor bekerja bersama-sama, pengembang dapat merancang dan mengimplementasikan hierarki kelas yang efisien dan mudah dipelihara dalam aplikasi Java. Dengan memanfaatkan fitur-fitur ini dengan baik, pengembang dapat meningkatkan kualitas, fleksibilitas, dan skalabilitas dari kode program.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Arum Galuh Saputri, Aulia El Vaneza, Azzam Fattahulhaq Santoso, Cicik Munfarida, dan Deviana Puput Saputri.

5 komentar untuk "Inheritance dan Constructor Java dan Fungsinya"

  1. Derived Java class dapat memanggil constructor pada class dasarnya menggunakan keyword super. Faktanya, constructor dalam class turunan harus memanggil constructor super kecuali konstructor default telah tersedia untuk kedua class tersebut. Constructor juga membutuhkan dua parameter, nama depan, dan nama belakang.

    BalasHapus
  2. Apa yang dimaksud dengan derived class construtor pada Java?

    BalasHapus
    Balasan
    1. Construktor dari derived class menerima seluruh daftar nilai yang diperlukan sebagai nilai argumennya dan meneruskannya ke constructor dasar dalam urutan dimana akan dideklarasikan dalam class turunannya. Sebuah constructor class dasar dipanggil dan dijalankan sebelum mengeksekusi statement dari body derived class.

      Hapus
  3. Apa tujuan dari pembuatan constructor pada Java?

    BalasHapus
    Balasan
    1. Tujuan dari pembuatan constructor pada Java adalah untuk menginisialisasi object class. Constructor tidak bisa bersifat abstract, final, static.

      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 -