๏ปฟ
๏ปฟ
OOPHub Modul 10 ๐Ÿ”ฎ
๐ŸฆŽ

Polymorphism (Si Bunglon) ๐Ÿ”ฎ

Hari ini kita masuk ke ilmu sihir tertinggi di OOP! Gimana caranya sebuah tipe data bisa berubah-ubah wujud? Dan apa hubungannya sama kemampuan Flutter ngerender ribuan tombol dengan gampang?

๐ŸŽฏ Goals Hari Ini

  • Paham Polymorphism (*Dynamic Dispatch*).
  • Bisa mengeksekusi banyak class berbeda sekaligus pakai Loop.
  • Mendeteksi wujud asli pakai is dan as.
  • Tahu kelemahan bawaan Inheritance (1 Bapak).
  • Menguasai fitur Trinitas Mixin (Suntikan DNA): mixin, with, dan on.

Asal Usul Nama "Polymorphism" ๐ŸฆŽ

Dari bahasa Yunani: Poly (Banyak) dan Morph (Bentuk). Di dunia OOP, ini berarti: Sebuah variabel yang tipe datanya menggunakan class Bapak (Mandor), wujud fisik aslinya bisa berbentuk anak-anak manapun yang dia miliki!

// BUKTI POLYMORPHISM:
// Tipe Datanya = Hero (Bapak)
// Wujud Aslinya = Mage / Fighter (Anak)

Hero h1 = Mage();
Hero h2 = Fighter();

// DYNAMIC DISPATCH (Komputer tau wujud aslinya!)
h1.attack(); // Output: Bola Api!
h2.attack(); // Output: Tebasan Pedang!
๐Ÿ“ฆ โžก๏ธ ๐Ÿง™โ€โ™‚๏ธ / ๐Ÿฅท

Wadah Bapak, Isi Anak

Variabel bertipe Hero sangat fleksibel. Komputer pada saat dijalankan (Runtime) akan menggunakan sihir *Dynamic Dispatch* untuk melihat wujud asli apa yang dimasukkan ke dalam wadah tersebut untuk menentukan efek attack-nya!