Skip to main content

Dynamic Binding



Dalam C++, dynamic binding terjadi ketika sebuah virtual function dipanggil menggunakan sebuah reference atau sebuah pointer ke sebuah base class. Faktanya, reference atau pointer tersebut mungking merujuk ke base class yang lain atau derived-class object yang merupakan inti untuk dynamic binding. Pemanggilan virtual functions dipanggil melalui sebuah reference atau pointer yang di jalankan saat program berjalan (run time). Fungsi yang dipanggil adalah salah satu fungsi yang di defenisikan oleh tipe obyek yang sebenarnya kemana reference atau pointer itu merujuk.

Dynamic binding membolehkan pengguna menulis program yang menggunakan obyek dari bermacam tipe yang ada dalam hierarki inheritance tanpa memperdulikan tipe spesifik obyek. Program yang menggunakan classes perlu untuk tidak bingung antara fungsi yang didefenisikan pada base class ataupun pada derived class-nya.

Bayangkan sebuah hirarki class yang disebut Shape berfungsi sebagai dasar untuk kelas lainnya kelas (Triangle dan Square):

class Shape
{
public:
void virtual Draw() {} //dummy implementation
//..
};
class Square
{
public:
void Draw(); //overriding Shape::Draw
}
class Triangle
{
public:
void Draw(); //overriding Shape::Draw
}

Draw () adalah sebuah fungsi virtual dalam Shape. Fungsi Draw() dideklarasikan secara virtual dalam base class untuk mengaktifkan derived class untuk mengabaikan dan menyediakan implementasi sendiri. Keindahan dalam polymorphism adalah sebuah pointer atau referensi ke Shape sebenarnya boleh mengarah ke obyek dari Square atau Triangle:

void func(const Shape* s)
{
s->Draw()
}
int main()
{
Shape *p1= new Triangle;
Shape *p2 = new Square;
func(p1);
func(p2);
}

C++ membedakan antara statis dan dinamis obyek. Jenis statis ditentukan pada waktu kompilasi. Ini adalah jenis yang ditetapkan dalam Deklarasi. Sebagai contoh, kedua jenis statis p1 dan p2 adalah “Shape *”. Namun, jenis dinamis ini pointer ditentukan oleh jenis objek yang mereka rujuk: “Triangle *” dan “Square *”, masing-masing. Ketika func () memanggil fungsi anggota Draw () , C++ resolve yang dinamis jenis s dan memastikan bahwa sesuai versi Draw () adalah invoked. Perhatikan bagaimana kuat dinamis mengikat : Anda dapat berasal dari kelas-kelas tambahan yang akan melakukan override kepada fungsi Draw () bahkan setelah func () dikompilasi. Ketika func () invokes Draw () , C++ masih akan menyelesaikan panggilan dinamis sesuai dengan jenis s.

Comments

Popular posts from this blog

Keanggotaan, Keuntungan, dan Konfigurasi Umum VLAN

Keanggotaan dalam suatu  VLAN dapat dikelompokkan berdasarkan port yang digunakan, MAC address, atau tipe protokol yang digunakan. Berdasarkan Port Keanggotaan pada suatu VLAN dapat di dasarkan pada port yang digunakan oleh VLAN tersebut. Sebagai contoh, pada bridge/switch dengan 4 port, port 1, 2,  dan 4 merupakan VLAN 1 sedang port 3 dimiliki oleh VLAN 2, lihat Tabel 2.1 berikut ini. Tabel 2.1 VLAN berdasarkan port Port 1 2 3 4 VLAN ID 2 2 1 2 Kelemahannya adalah pengguna tidak bisa untuk berpindah-pindah. Apabila harus berpindah maka administrator  jaringan harus mengkonfigurasikan ulang. Berdasarkan MAC Address Keanggotaan suatu VLAN didasarkan pada MAC address dari setiap  komputer yang dimiliki oleh pengguna. Switch akan mencatat semua MAC address yang dimiliki oleh setiap Virtual LAN. Kelebihannya apabila pengguna berpindah-pindah maka dia akan tetap terkonfigurasi sebagai anggota dari VLAN tersebut. Kekurangannya adalah setiap mesin harus dikonfigurasi secara m

Jenis Router, Keutungan, dan Kerugian Router

Ada tiga  jenis router yang biasa digunakan dalam  jaringan komputer , yaitu: Router PC Router PC adalah komputer dengan sistem operasi yang memiliki fasilitas untuk membagi  dan men-sharing IP Address. Perangkat jaringan (PC) yang terhubung ke komputer tersebut akan dapat menikmati IP Address atau koneksi internet yang disebarkan oleh sistem operasi tersebut. Contoh sistem operasi yang dapat digunakan adalah semua sistem operasi berbasis client-server, seperti Windows NT, Windows NT 4.0, Windows 2000 server, Windows 2003 Server, MikroTik (Berbasis Linux), dan lain-lain. Router Aplikasi Router aplikasi adalah aplikasi yang dapat di-install pada sistem operasi sehingga sistem operasi tersebut akan memiliki kemampuan seperti router. Contoh aplikasi ini adalah Winroute, WinGate, SpyGate, dan WinProxy. Router Hardware Router hardware adalah hardware yang memiliki kemampuan seperti router sehingga dari hardware tersebut dapat memancarkan atau membagi IP Address dan men-sharing IP

Keuntungan dan Kerugian VoIP

Keuntungan VoIP Bertelepon menggunakan VoIP memberikan banyak keuntungan. Yang paling terlihat adalah dari segi biaya yang jelas lebih murah dari tarif telepon tradisional, karena jaringan IP bersifat global sehingga untuk hubungan internasional dapat ditekan hingga 70%. Selain itu, biaya maintenance dapat ditekan karena jaringan suara dan data terpisah, sehingga IP phone dapat ditambah, dipindah, dan diubah. Hal ini karena VoIP dapat dipasang disembarang ethernet dan IP address, tidak seperti telepon tradisional yang harus mempunyai port tersendiri di sentral atau PBX. Kelemahan VoIP Begitu banyaknya keuntungan yang ditawarkan oleh VoIP, tetapi masih ada kelemahan-kelemahan yang ditemukan seperti sulitnya mengirimkan fax, perlu jalur internet yang cepat ( biasanya backbone diharuskan menggunakan Fiber Optic ), dan susah untuk menentukan emergency call. Kelemahan jaringan yang menjadi musuh utama dari VoIP antara lain : -      Delay Jaringan yang berbasis atau dengan backbone