Lompat ke konten Lompat ke sidebar Lompat ke footer

Shadowing Fungsi Static Java dan Fungsinya

Pada artikel ini akan dijelaskan mengenai fungsi shadowing Static java beserta contoh dan penjelasan fungsi-fungsinya.


Sebelum lebih lanjut mempelajari materi tentang Shadowing Fungsi Static Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Cara Menggunakan Overloading Java dan Fungsinya, PUBLIC STATIC VOID MAIN Java dan Fungsinya, dan Overloading dan Overriding Static Java dan Fungsinya.

Shadowing fungsi static adalah sebuah konsep dalam pemrograman Java yang terjadi ketika sebuah variabel statis atau metode statis dideklarasikan kembali dalam kelas turunannya dengan nama yang sama seperti yang ada dalam kelas induknya. Dalam artikel ini, akan dijelajahi shadowing fungsi static dalam Java beserta fungsinya.

Contoh:

class Parent 

{

static int x = 10;

static void display() 

{System.out.println("Ini 

adalah metode display() dari 

kelas Parent");}

}


class Child extends Parent {

static int x = 20;


static void display() 

{System.out.println("Ini

 adalah metode display() dari

 kelas Child");}

}


public class Main {

public static void 

main(String args[]) {

        System.out.println("Nilai x 

dari Parent: " + Parent.x);

        System.out.println("Nilai x 

dari Child: " + Child.x);


Parent.display();

Child.display();

}

}

Output:
Nilai x dari Parent: 10
Nilai x dari Child: 20
Ini adalah metode display() dari kelas Parent
Ini adalah metode display() dari kelas Child

Jika nama dari derived class static funtion adalah sama seperti base class static function, maka derived class static function shadowing atau conceal adalah berasal dari base class static function. Contoh, perhatikan bentuk program berikut ini.

Contoh:

/* file name: Main.java */

class

static void fun() {

System.out.println("A.fun()");} 

 

class B extends

static void fun() {

System.out.println("B.fun()");} 

 

public class Main 

 

public static void main(String args[]

{A a = new B(); 

a.fun(); 

/* prints A.fun() */}

 

}

Jika dibuat keduanya A.fun() dan B.fun() sebagai non static maka program sebelumnya akan mencetak B.fun().

Baca Juga:

Fungsi Shadowing Fungsi Static dalam Java:
  • Memungkinkan Penyembunyian (Hiding) Variabel atau Metode: Shadowing fungsi static memungkinkan kelas turunan untuk menyembunyikan variabel atau metode static dari kelas induknya dengan mendeklarasikannya kembali dalam kelas turunannya dengan nama yang sama.
  • Memberikan Konteks Lokal: Dengan shadowing, kelas turunan dapat memiliki variabel atau metode static dengan nama yang sama seperti yang ada dalam kelas induknya, memberikan konteks lokal yang berbeda untuk kelas tersebut.
  • Mengakomodasi Perubahan dan Spesialisasi: Shadowing dapat digunakan untuk mengakomodasi perubahan dan spesialisasi dalam perilaku kelas turunan tanpa memengaruhi perilaku kelas induknya. Ini memungkinkan fleksibilitas dalam desain dan pemeliharaan kode.
  • Meningkatkan Keterbacaan Kode: Dengan menggunakan shadowing secara bijaksana, pengembang dapat meningkatkan keterbacaan kode dengan memberikan nama yang lebih deskriptif dan konteksual untuk variabel atau metode dalam kelas turunan.
  • Pentingnya Berhati-hati dalam Penggunaan Shadowing: Meskipun shadowing dapat bermanfaat dalam beberapa kasus, namun perlu diperhatikan bahwa penggunaan shadowing yang berlebihan atau tidak bijaksana dapat menyebabkan kebingungan dan kesulitan dalam pemahaman kode. Oleh karena itu, pengembang harus berhati-hati dalam penggunaan shadowing dan memastikan bahwa hal itu digunakan dengan tepat sesuai dengan kebutuhan dan tujuan desain kode.

Kelebihan Shadowing Fungsi Static dalam Java:
  • Fleksibilitas dalam Desain: Dengan menggunakan shadowing fungsi static, pengembang dapat menciptakan fleksibilitas dalam desain kelas dan struktur kode. Hal ini memungkinkan pengembang untuk menyesuaikan perilaku kelas turunan tanpa memengaruhi perilaku kelas induknya.
  • Isolasi Perubahan: Shadowing memungkinkan pengembang untuk mengisolasi perubahan dalam perilaku kelas turunan, memungkinkan untuk lebih mudah melakukan perubahan tanpa harus khawatir tentang dampaknya terhadap kelas induk atau kelas lain dalam hierarki.
  • Konteks Lokal yang Jelas: Dengan shadowing, kelas turunan dapat memiliki variabel atau metode static dengan nama yang sama seperti yang ada dalam kelas induknya, memberikan konteks lokal yang jelas untuk variabel atau metode dalam kelas turunan.
  • Penggunaan yang Tepat: Dalam beberapa kasus, shadowing fungsi static dapat digunakan secara efektif untuk mengatasi kekurangan dalam desain kelas atau hierarki pewarisan. Penggunaan yang tepat dari shadowing dapat memperbaiki desain kode dan meningkatkan struktur program secara keseluruhan.

Meskipun demikian, penting untuk diingat bahwa penggunaan shadowing fungsi static harus dilakukan dengan hati-hati dan dipertimbangkan dengan baik. Penggunaan yang tidak bijaksana dapat menyebabkan kebingungan dalam kode dan kesulitan dalam pemeliharaan. Selain itu, ada baiknya mencari alternatif desain jika mungkin untuk menghindari penggunaan shadowing yang berlebihan.

Kekurangan Shadowing Fungsi Static dalam Java:
  • Kesulitan dalam Pemahaman Kode: Shadowing fungsi static dapat menyebabkan kebingungan dalam pemahaman kode, terutama bagi pengembang baru atau yang tidak terbiasa dengan struktur kelas yang kompleks. Hal ini karena nama yang sama digunakan untuk variabel atau metode dalam kelas turunan dan kelas induk, tetapi perilaku keduanya dapat berbeda.
  • Risiko Penggunaan yang Salah: Jika shadowing fungsi static tidak digunakan dengan hati-hati, ada risiko penggunaan yang salah atau tidak sesuai dengan kebutuhan desain. Hal ini dapat menyebabkan kerentanan, bug, atau perilaku yang tidak diinginkan dalam program.
  • Peningkatan Kompleksitas: Penggunaan shadowing fungsi static dapat meningkatkan kompleksitas kode, terutama dalam hierarki kelas yang besar atau dalam program yang kompleks. Hal ini dapat menyulitkan pemeliharaan kode dan mengurangi keterbacaan kode secara keseluruhan.
  • Potensi Kesalahan: Shadowing fungsi static dapat menyebabkan potensi kesalahan jika pengembang tidak menyadari adanya shadowing yang terjadi dalam kode. Hal ini dapat mengakibatkan perilaku yang tidak terduga atau tidak diinginkan pada saat runtime.
  • Keterbatasan dalam Pemecahan Masalah: Saat menghadapi masalah atau bug dalam kode yang melibatkan shadowing fungsi static, pemecahan masalah dapat menjadi lebih sulit karena pengembang harus memahami hubungan antara kelas turunan dan kelas induk serta perilaku shadowing yang terjadi.
  • Kesulitan dalam Debugging: Saat terjadi kesalahan dalam kode yang melibatkan shadowing fungsi static, proses debugging bisa menjadi lebih rumit. Hal ini karena pengembang harus memeriksa dengan cermat bagaimana variabel atau metode statis yang di-shadowed digunakan dalam program dan memahami dampaknya terhadap perilaku keseluruhan.
  • Ketergantungan pada Perubahan: Perubahan dalam kelas induk yang di-shadowed dapat memiliki dampak pada perilaku kelas turunan yang melakukan shadowing. Hal ini membuat ketergantungan yang tidak diinginkan antara kelas-kelas dalam hierarki pewarisan, yang dapat mengakibatkan kesulitan dalam memprediksi efek dari perubahan tersebut.
  • Kesulitan dalam Pemeliharaan Kode: Shadowing fungsi static dapat meningkatkan kesulitan dalam pemeliharaan kode, terutama dalam proyek-proyek yang besar atau kompleks. Hal ini karena pengembang harus memahami dengan jelas bagaimana shadowing berdampak pada perilaku kelas dan memastikan konsistensi antara kelas induk dan kelas turunan.
  • Potensi untuk Mengabaikan Variabel atau Metode Induk: Dalam beberapa kasus, penggunaan shadowing fungsi static dapat menyebabkan pengembang mengabaikan variabel atau metode dari kelas induk yang di-shadowed. Hal ini dapat menghasilkan perilaku yang tidak diinginkan atau kehilangan fungsionalitas yang penting dalam kelas turunan.

Dengan mempertimbangkan kekurangan tersebut, penggunaan shadowing fungsi static sebaiknya dipertimbangkan dengan cermat dalam pengembangan perangkat lunak. Jika memungkinkan, pengembang dapat mencari alternatif desain atau pendekatan lain yang lebih mudah dipahami dan dipelihara.

Dengan memahami konsep shadowing fungsi static dalam Java, pengembang dapat menggunakan teknik ini secara efektif dalam pengembangan perangkat lunak untuk meningkatkan fleksibilitas, keterbacaan, dan modularitas kode program. Dengan penanganan yang bijaksana, shadowing dapat menjadi alat yang berguna dalam desain dan pemeliharaan aplikasi Java.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Rizaldi Yusuf Ridhallahi, Rosa Dyarma Syahda Firens, Safhira Kumala Dewi, Shinta Hidhayatuzzaroh Munawaroh, dan Tania Rosa Ristanti.

6 komentar untuk "Shadowing Fungsi Static Java dan Fungsinya"

  1. Apa yang dimaksud dengan shadowing pada Java?

    BalasHapus
    Balasan
    1. Shadowing pada Java merupakan praktik menggunakan variabel dalam cakupan yang tumpang tindih dengan nama yang sama dimana variabel dalam cakupan tingkat rendah menggantikan variabel cakupan dalam tingkat tinggi. Dalam hal ini variabel pada cakupan tingkat tinggi dibayangi (shadow) oleh variabel cakupan tingkat rendah pada Java.

      Hapus
  2. Secara umum, apa yang dimaksud dengan shadowing pada bahasa pemrograman secara umum?

    BalasHapus
    Balasan
    1. Dalam pemrograman komputer, variabel shadowing terjadi jika variabel yang dideklarasikan dalam suatu lingkup tertentu seperti block, method, atau inner class memiliki nama yang sama dengan variabel yang dideklarasikan pada lingkup luarnya.

      Hapus
  3. Apa yang dimaksud dengan shadow inheritance pada Java?

    BalasHapus
    Balasan
    1. Jika class turunan atau inheritance class mendefinisikan ulang elemen pemrograman yang diwarisi dari class dasar, elemen definisi ulang tersebut akan membayangi elemen aslinya. User dapat membayangi semua jenis elemen yang dideklarasikan, atau kumpulan elemen yang overloading, dengan jenis lainnya.

      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 -