google-site-verification: googleb4c12044f63f46ba.html Pemograman Polimorfisme Dinamis Skip to main content

Featured

STRUKTUR DATA SEARCHING (PENCARIAN)

SEARCHING (PENCARIAN).       Dalam kehidupan sehari-hari sebenarnya kita sering melakukan pencarian data. Pencarian data sering juga disebut table look-up atau storage and retrieval information adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin.       Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). Ada beberapa pencarian yang akan kita uraikan disini: Pencarian Beruntun (Sekuensial Search). Pencarian Bagi dua (Binary Search). I. PENCARIAN BERURUTAN (SEKUENSIAL SEARCH).        Pencarian berurutan sering disebut pencari...

Pemograman Polimorfisme Dinamis



1. Indikator Topik Pembahasan.

  • Mampu memahami konsep Inclusion polimorfisme.
  1. Mengenal metode override.
  2. Mengenal metode virtual.
  3. Menerapkan metode override. 
2.Peralatan yang digunakan.
  • Visual Studio 2017 Community.
3. Materi Pembelajaran. 
           Bagian dari polimorfisme adalah polimorfisme dinamis. Polimorfisme ini dikenal dengan nama Inclusion Polymorphism atau dikenal juga dengan nama Subtyping. Polimorfisme dinamis tidak terjadi ketika proses kompilasi ("Compile-Time"). Polimorfisme dinamis terjadi disaat "Run-Time", hal ini membuat polimorfisme dinamis dapat berjalan tidak hanya di bahasa kompilasi, melainkan juga di bahasa interpreter tidak seperti polimorfisme statis. 
       Pewarisan dapat memberlakukan proses upcasting dan downcasting. Perhatikan potongan program berikut yang akan menunjukan proses upcasting dan downcasting. 


       Upcasting adalah proses instansi dari class turunan dengan menjadikan base class sebagai objeknya. Downcasting sebaliknya, proses instansi dari base class dengan menjadikan class turunan sebagai objeknya. 
          Ketika class diwariskan ke class yang lain, maka semua metode yang terdapat pada base class dapat digunakan langsung oleh semua class turunannya. Metode yang diturunkan mempunyai fungsionalitas yang disesuaikan oleh base class, sehingga class turunan harus mengikuti aturan fungsionalitas yang berlaku. Pada kenyataannya terkadang class turunan dapat memiliki fungsionalitas yang bervariasi bahkan berbeda untuk sebuah metode yang sama. Polimorfisme dinamis dibutuhkan untuk mempermudah ketika proses upcasting atau downcasting digunakan.  

Inclusion Polymorphism 
        Polimorfisme jenis ini berlaku dimetode dengan memiliki nama, tipe kembalian serta jumlah, urutan, dan tipe parameter yang harus identik sama. Hanya isi konten dari tubuh metode yang berbeda. Untuk dapat melakukan polimorfisme jenis ini diperlukan dua class atau lebih dimana class tersebut terikat akan hubungan hirarki pewarisan.

Metode Override
       Polimorfisme ini menggunakan metode yang dikenal "Override". Inti dari metode override adalah menimpa metode asli yang ada pada base class dengan metode yang didefinisikan ulang oleh class turunan. 


      Metode yang menimpa (override) harus mengikuti ketentuan yang berlaku di polimorfisme inlclusion, yaitu memiliki nama, tipe kembalian serta jumlah, urutan, dan tipe parameter yang harus identik sama. Metode dari base class yang dapat ditimpa haruslah metode yang dibuat virtual.  

Metode Virtual 
       Kata kunci “virtual” digunakan untuk memodifikasi sebuah metode, properti, Indekser, atau Event menjadi virtual. Metode yang dirubah menjadi virtual akan digunakan untuk mengaktifkan pilihan bahwa metode tersebut boleh didefinisikan kembali oleh setiap class-class yang diturunkan. Metode virtual memiliki perbedaan dengan metode biasa. Pada proses "run-time", ketika metode virtual dipanggil, maka metode tersebut tidak akan langsung dijalankan melainkan akan dilakukan pengecekan terlebih dahulu apakah metode tersebut ditimpa dengan metode lain atau tidak. Berikut contoh pembuatan virtual class. Perhatikan contoh dibawah ini.


       Selama terjadinya hubungan pewarisan Metode virtual mengijinkan class-class turunan untuk menimpa isi konten metode tersebut dengan isi konten lain yang berbeda. Metode virtual hanya dimiliki oleh class yang punya status sebagai base class. Virtual tidak dapat diterapkan pada metode yang statis, abstrak, modifikasi private, atau metode override.
         Dalam bahasa Csharp metode yang dibuat secara default adalah non-virtual. Metode non-virtual tidak dapat ditimpa (override), namun metode non-virtual masih dapat dibuat bayangannya dengan menggunakan kata kunci new (shadow method) berkebalikan dengan bahasa JAVA dimana metodenya secara default adalah virtual.  

Perbedaan Metode Override dan Metode Shadowing.
       Tampak sekilas metode Override (dengan kata kunci "override") sama seperti metode Shadowing (dengan kata kunci "new"). Akan tetapi perlu diingat metode override merupakan polimorfisme dimana dua metode atau lebih tetapi dihitung satu oleh mesin, sedangkan metode bayangan (Shadowing) bukanlah sebuah bentuk polimorfisme. Perhatikan contoh berikut. 


Dari pemaparan contoh diatas, perbedaan antara metode override dengan metode bayangan dapat terlihat jelas ketika proses upcasting dilakukan. Metode bayangan akan tergantikan kembali oleh metode aslinya ketika upcasting dilakukan, tetapi metode override tetap mempertahankan metode turunannya meskipun yang diakses adalah virtualnya. 
        Dengan kata lain Metode bayangan membuat metode baru yang kemudian menyembunyikan metode lama dari kompilator. Metode Override (metode baru) melakukan ekspansi dari metode virtual (metode lama). Namun tetap mempertahankan asumsi bahwa metode tersebut tetap terlihat satu.  






Comments

Popular Posts