Skip to main content

Apa itu Dynamic Binding?

Dalam ilmu komputer, pengikatan nama adalah asosiasi pengidentifikasi, seperti fungsi atau nama variabel, ke bagian kode atau data.Dalam skenario yang paling umum, ikatan statis, pemetaan ini diketahui pada waktu kompilasi.Dalam pengikatan dinamis, objek yang dipetakan oleh fungsi tidak diketahui pada waktu kompilasi dan hanya dapat ditentukan selama waktu menjalankan program.Untuk alasan ini, pengikatan dinamis juga disebut ikatan terlambat.Meskipun pengikat dinamis menawarkan fleksibilitas yang tidak tersedia dengan pengikatan statis, ia juga memerlukan lebih banyak biaya kinerja daripada pengikatan statis.

Ikatan dinamis terkait erat dengan polimorfisme, yang merupakan bagian dari pemrograman berorientasi objek.Polimorfisme memungkinkan nama metode yang sama diimplementasikan dengan cara yang berbeda.Jika kode tidak ditulis sedemikian rupa sehingga metode yang tepat tidak dapat ditentukan pada waktu kompilasi, maka pengikatan dinamis harus digunakan.

Misalnya, kelas bentuk mungkin memiliki metode yang disebut getarea, karena setiap bentuk memiliki area.Subkelas lingkaran bentuk, bagaimanapun, akan menerapkan GETAREA secara berbeda dari cara subclass persegi.Oleh karena itu, jika objek baru dibuat dari bentuk jenis, dan jika kode memanggil metode getarea pada bentuk itu, kompiler tidak akan memiliki cara untuk mengetahui apakah bentuknya akan berakhir menjadi lingkaran atau persegi, dan karenanya tidak akan tahuMetode getarea mana yang akan dihubungi.Ini adalah contoh pengikatan dinamis, karena metode getarea yang benar akan dipetakan hanya pada waktu berjalan, setelah program mengetahui bentuk apa objek.digunakan.Dalam contoh bentuk, kode dapat ditulis untuk menghindari pengikatan dinamis dengan secara eksplisit menggunakan logika ini: jika bentuknya adalah lingkaran, maka panggil metode Circles Getarea;Lain, jika bentuknya adalah persegi, panggil metode getarea spesifik untuk kotak.Manfaat dari pengikatan dinamis adalah bahwa kode ini lebih bersih dan lebih dapat dipelihara daripada alternatifnya.Dalam contoh pengikatan statis, ada duplikasi kode, dan kode harus diperbarui kapan saja jenis bentuk baru ditambahkan.

Kelemahan dari pengikatan dinamis adalah kinerja dan keamanan.Dalam pengikatan statis, kompiler tahu persis kode apa yang akan dihubungi dan dapat mengoptimalkan kode untuk berjalan lebih efisien.Ketik keamanan dapat menjadi masalah karena, dalam beberapa implementasi pengikatan dinamis, metode dapat dipanggil pada objek yang tidak mendukung metode ini.Misalnya, metode GETAREA mungkin dipanggil pada objek yang bukan bentuk dan karenanya tidak memiliki metode GETAREA, yang dapat mengakibatkan kesalahan run-time.Ikatan statis akan mencegah skenario ini dengan meningkatkan kesalahan kompilasi.