Skip to main content

Polymorphic

Polymorphic merupakan konsep dalam pemrograman yang memungkinkan sebuah tipe data atau function untuk beroperasi pada berbagai jenis tipe data atau argumen yang berbeda secara generik, tanpa perlu mengetahui secara pasti jenis tipe data atau argumen yang diberikan pada saat penggunaan.

Polymorphism dapat diterapkan dalam berbagai aspek pemrograman, seperti pada inheritance, interfaces, dan generics. Dalam inheritance, polymorphism mengacu pada kemampuan sebuah objek untuk merespon terhadap berbagai metode dan properti dari kelas yang berbeda. Dalam interfaces, polymorphism mengacu pada kemampuan sebuah class untuk mengimplementasikan berbagai interface yang berbeda secara generik. Sedangkan pada generics, polymorphism mengacu pada kemampuan sebuah function atau class untuk bekerja dengan berbagai jenis tipe data secara generik.

Contoh penerapan polymorphism pada generics:

function printArray<T>(arr: T[]): void {
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
}

let numbers: number[] = [1, 2, 3, 4, 5];
let strings: string[] = ["hello", "world"];

printArray(numbers); // Output: 1 2 3 4 5
printArray(strings); // Output: hello world

Dalam contoh di atas, function printArray menggunakan tipe generik T sehingga dapat menerima argumen dalam bentuk array dengan berbagai jenis tipe data yang berbeda. Function ini dapat mencetak semua elemen dalam array, tanpa harus mengetahui jenis tipe data dari elemen tersebut. Karena itu, function ini dapat digunakan untuk mencetak elemen dari array dengan tipe data apapun, seperti array dengan tipe data number atau string. Inilah yang disebut dengan polymorphism pada generics.