Lompat ke konten Lompat ke sidebar Lompat ke footer

Static dan Dynamic Binding Java dan Fungsinya

Dalam artikel ini akan dijelaskan perbandingan antara static binding dan dynamic binding dalam bahasa pemrograman Java.


2 Konsep Utama Static vs Dynamic Binding pada Java
Ilustrasi  Static vs Dynamic Binding Java


Static Binding: binding yang dapat diselesaikan pada saat waktu kompilasi oleh kompilator dikenal sebagai static atau early bindingBinding dari method staticprivate, dan final diselesaikan pada waktu kompilasi program.

Binding dari Method StaticFinal, dan Private Selalu Static
Static binding memiliki performa yang lebih baik karena tidak ada overhead ekstra yang dipersyaratkan dan kompilator mengetahui hal tersebut, bahwa method seperti itu tidak bisa overridden dan selalu dapat diakses oleh object dari class lokal. Karenanya, kompilator tidak memiliki kesulitan apapun untuk menentukan object dari class lokal. Inilah alasan kenapa method binding adalah selalu static.

Contoh: Perhatikan program berikut ini.

public class NewClass 

{

 

public static class superclass 

static void print() 

{System.out.println("dicetak"

+" dalam superclass.");} 

}

 

public static class subclass extends superclass 

static void print() 

{System.out.println("dicetak"

+" dalam subclass.");} 

 

public static void main(String[] args

{superclass A = new superclass(); 

superclass B = new subclass(); 

A.print(); 

B.print();} 

}

Output:
dicetak dalam superclass.
dicetak dalam superclass.

Seperti yang terlihat dalam kedua kasus method print dari superclass yang dipanggil sebelumnya. Makan, perhatikan kenapa hal tersebut dapat terjadi:
  • Dapat diciptakan satu object dari subclass dan satu object dari superclass dengan referensi dari superclass.
  • Ketika method print dari superclass adalah static, maka kompilator dapat mengetahui bahwa method tersebut tidak akan overridden dalam subclass dan karenya kompilator dapat mengenali hal tersebut, maka selama waktu kompilasi, method print akan dipanggil dan tidak akan terjadi ambiguitas sama sekali.

Pada latihan berikut ini, nilai referensi dapat diubah dari object B menuju subclass dan memeriksa hasil output-nya.



Dynamic Binding: pada dynamic binding kompilator tidak memutuskan method mana yang akan dipanggil. Overriding adalah sebuah contoh sempurna dari dynamic binding. Dalam overriding kedua parent dan child class memiliki method yang sama. 

Contoh: Perhatikan program berikut ini.

public class NewClass 

 

public static class superclass 

void print() 

{System.out.println("dicetak"

+" dalam superclass.");} 

 

public static class subclass extends superclass 

@Override

void print() 

{System.out.println("dicetak"

+" dalam subclass.");} 

 

public static void main(String[] args

{superclass A = new superclass(); 

superclass B = new subclass(); 

A.print(); 

B.print();} 

}

Output:
dicetak dalam superclass.
dicetak dalam subclass.

Hasil dari output memiliki keluaran yang berbeda, karena:
  • Pada contoh program method tidak static.
  • Selama kompilasi, kompilator tidak memiliki gagasan method print mana yang akan dipanggil ketika kompilator hanya memiliki variabel referensi saja dan tidak oleh tipe dari object. Dan karena hal tersebut, maka binding akan ditunda menuju ke runtime dan versi koresponden dari print akan dipanggil berdasarkan tipe object-nya.

Point penting
  • Anggota privatefinal, dan static  yang berupa method dan variabel menggunakan static binding sementara untuk method virtual pada method Java virtual yang bersifat default, binding dilakukan selama runtime berdasarkan runtime object.
  • Static binding menggunakan tipe informasi untuk binding sementara dynamic binding menggunakan object untuk menyelesaikan binding.
  • Overloaded method dapat diselesaikan dengan memutuskan method mana yang akan dipanggil ketika terdapat lebih dari satu method dengan nama sama menggunakan static binding, sementara overridden method menggunakan dynamic binding saat runtime.


Artikel ini didedikasikan kepada: Adnan Ghiffari, Afriza Prima Safira, Ana Tasya Putri Rahma, Aprillia Puteri Pradana, dan Arum Galuh Saputri.

6 komentar untuk "Static dan Dynamic Binding Java dan Fungsinya"

  1. Apa yang dimaksud dengan static binding pada Java?

    BalasHapus
    Balasan
    1. Static binding pada java adalah mengacu pada pelaksanaan program dimana jenis object ditentukan atau diketahui pada waktu kompilasi program, yaitu ketika kompilator mengeksekusi kode program, maka kompilator akan mengetahui jenis object atau class yang dimiliki oleh object tersebut.

      Hapus
  2. Bagaimana cara static binding bekerja pada Java?

    BalasHapus
    Balasan
    1. Static binding terjadi pada waktu kompilasi sementara dimana dynamic binding terjadi pada waktu proses tersebut. Ketika proses overriding terjadi dan referensi jenis tipe parent ditetapkan oleh object dari jenis instance class, dimana proses binding tersebut diselesaikan selama waktu proses dijalankan pada Java.

      Hapus
  3. Apa yang dimaksud dengan dynamic binding pada Java?

    BalasHapus
    Balasan
    1. Dalam dynamic binding Java, method call terikat pada body method ketika runtime dijalankan. Hal ini juga dikenal sebagai late binding, yang dilakukan dengan menggunakan method instance.

      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 -