Nama S

26 Januari 2024 10:06

Iklan

Nama S

26 Januari 2024 10:06

Pertanyaan

Sebutkan dan jelaskan tipe-tipe dari Polymorphism beserta contoh program dari tipe-tipe polymorphism?

Sebutkan dan jelaskan tipe-tipe dari Polymorphism beserta contoh program dari tipe-tipe polymorphism?
 

Ikuti Tryout SNBT & Menangkan E-Wallet 100rb

Habis dalam

00

:

14

:

36

:

02

Klaim

1

2

Jawaban terverifikasi

Iklan

Nanda R

Community

06 Maret 2024 21:13

Jawaban terverifikasi

Polimorfisme dalam pemrograman dapat terjadi dalam beberapa tipe. Berikut adalah beberapa tipe polimorfisme beserta contoh program menggunakan bahasa pemrograman Java: 1. Polimorfisme Compile-Time (Static): Melibatkan konsep overloading di mana nama fungsi yang sama digunakan, tetapi dengan parameter yang berbeda. Contoh Program: javaCopy code class MathOperations { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } } public class CompileTimePolymorphism { public static void main(String[] args) { MathOperations math = new MathOperations(); System.out.println(math.add(2, 3)); // Memanggil fungsi int add System.out.println(math.add(2.5, 3.5)); // Memanggil fungsi double add } } 2. Polimorfisme Runtime (Dynamic): Melibatkan konsep overriding di mana metode dalam kelas turunan menyediakan implementasi yang sama dengan metode di kelas induk. Contoh Program: javaCopy code class Animal { void makeSound() { System.out.println("Some generic sound"); } } class Cat extends Animal { void makeSound() { System.out.println("Meow!"); } } class Dog extends Animal { void makeSound() { System.out.println("Woof!"); } } public class RuntimePolymorphism { public static void main(String[] args) { Animal cat = new Cat(); Animal dog = new Dog(); cat.makeSound(); // Memanggil makeSound() dari objek Cat dog.makeSound(); // Memanggil makeSound() dari objek Dog } } 3. Polimorfisme dengan Antarmuka (Interface): Melibatkan implementasi antarmuka yang memungkinkan kelas-kelas berbeda untuk menyediakan implementasi yang berbeda untuk metode yang sama. Contoh Program: javaCopy code interface Shape { void draw(); } class Circle implements Shape { public void draw() { System.out.println("Drawing Circle"); } } class Rectangle implements Shape { public void draw() { System.out.println("Drawing Rectangle"); } } public class InterfacePolymorphism { public static void main(String[] args) { Shape circle = new Circle(); Shape rectangle = new Rectangle(); circle.draw(); // Memanggil draw() dari objek Circle rectangle.draw(); // Memanggil draw() dari objek Rectangle } } Polimorfisme memungkinkan fleksibilitas dan reusabilitas dalam pemrograman, karena memungkinkan objek memiliki banyak bentuk atau perilaku tergantung pada konteksnya.


Iklan

Salsabila M

Community

31 Maret 2024 07:05

Jawaban terverifikasi

<p>Polimorfisme adalah konsep dalam pemrograman berorientasi objek di mana sebuah objek dapat memiliki banyak bentuk (atau perilaku) yang berbeda dalam waktu yang berbeda. Ada dua tipe utama dari polimorfisme dalam pemrograman berorientasi objek: compile-time polymorphism (polimorfisme waktu kompilasi) dan runtime polymorphism (polimorfisme waktu runtime). Mari kita jelaskan keduanya beserta contoh program:</p><p>### 1. Compile-time Polymorphism:<br>Compile-time polymorphism terjadi saat keputusan pada saat kompilasi yang metode yang akan dipanggil terjadi berdasarkan jumlah, tipe, atau urutan parameter yang berbeda. Terdapat dua bentuk compile-time polymorphism: method overloading dan operator overloading.</p><p>#### a. Method Overloading:<br>Method overloading terjadi ketika dua atau lebih metode dalam sebuah kelas memiliki nama yang sama, tetapi memiliki parameter yang berbeda.</p><p>Contoh program method overloading:<br>```java<br>public class OverloadingExample {<br>&nbsp; &nbsp;// Metode overloading untuk menghitung luas persegi<br>&nbsp; &nbsp;public static int hitungLuas(int sisi) {<br>&nbsp; &nbsp; &nbsp; &nbsp;return sisi * sisi;<br>&nbsp; &nbsp;}<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;// Metode overloading untuk menghitung luas persegi panjang<br>&nbsp; &nbsp;public static int hitungLuas(int panjang, int lebar) {<br>&nbsp; &nbsp; &nbsp; &nbsp;return panjang * lebar;<br>&nbsp; &nbsp;}<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Luas persegi: " + hitungLuas(5));<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Luas persegi panjang: " + hitungLuas(4, 6));<br>&nbsp; &nbsp;}<br>}<br>```</p><p>#### b. Operator Overloading:<br>Java tidak mendukung operator overloading seperti bahasa pemrograman lain seperti C++.</p><p>### 2. Runtime Polymorphism:<br>Runtime polymorphism terjadi saat keputusan pada saat runtime yang metode yang akan dipanggil terjadi berdasarkan objek yang dibuat dalam memori pada saat runtime. Terdapat dua bentuk runtime polymorphism: method overriding dan late binding (dynamic method dispatch).</p><p>#### a. Method Overriding:<br>Method overriding terjadi ketika sebuah subclass memberikan implementasi ulang terhadap metode yang sudah didefinisikan di superclassnya.</p><p>Contoh program method overriding:<br>```java<br>class Animal {<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Suara hewan...");<br>&nbsp; &nbsp;}<br>}</p><p>class Cat extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Meow!");<br>&nbsp; &nbsp;}<br>}</p><p>public class OverridingExample {<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal = new Cat(); // Objek Cat disimpan dalam referensi Animal<br>&nbsp; &nbsp; &nbsp; &nbsp;animal.sound(); // Panggil metode sound(), yang akan memanggil implementasi di Cat<br>&nbsp; &nbsp;}<br>}<br>```</p><p>#### b. Late Binding (Dynamic Method Dispatch):<br>Late binding terjadi ketika pemanggilan metode dilakukan pada saat runtime, dan JVM (Java Virtual Machine) menentukan implementasi yang tepat berdasarkan objek yang dibuat dalam memori pada saat runtime.</p><p>Contoh program late binding:<br>```java<br>class Animal {<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Suara hewan...");<br>&nbsp; &nbsp;}<br>}</p><p>class Cat extends Animal {<br>&nbsp; &nbsp;@Override<br>&nbsp; &nbsp;void sound() {<br>&nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Meow!");<br>&nbsp; &nbsp;}<br>}</p><p>public class DynamicMethodDispatchExample {<br>&nbsp; &nbsp;public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal1 = new Animal();<br>&nbsp; &nbsp; &nbsp; &nbsp;Animal animal2 = new Cat(); // Objek Cat disimpan dalam referensi Animal<br>&nbsp; &nbsp; &nbsp; &nbsp;animal1.sound(); // Panggil metode sound() dari Animal<br>&nbsp; &nbsp; &nbsp; &nbsp;animal2.sound(); // Panggil metode sound() yang di-overridden dari Cat<br>&nbsp; &nbsp;}<br>}<br>```</p><p>Dalam contoh di atas, metode `sound()` yang dipanggil pada saat runtime akan dipilih berdasarkan objek yang dibuat dalam memori. Jadi, metode yang tepat yang akan dipanggil akan ditentukan pada saat runtime.</p>

Polimorfisme adalah konsep dalam pemrograman berorientasi objek di mana sebuah objek dapat memiliki banyak bentuk (atau perilaku) yang berbeda dalam waktu yang berbeda. Ada dua tipe utama dari polimorfisme dalam pemrograman berorientasi objek: compile-time polymorphism (polimorfisme waktu kompilasi) dan runtime polymorphism (polimorfisme waktu runtime). Mari kita jelaskan keduanya beserta contoh program:

### 1. Compile-time Polymorphism:
Compile-time polymorphism terjadi saat keputusan pada saat kompilasi yang metode yang akan dipanggil terjadi berdasarkan jumlah, tipe, atau urutan parameter yang berbeda. Terdapat dua bentuk compile-time polymorphism: method overloading dan operator overloading.

#### a. Method Overloading:
Method overloading terjadi ketika dua atau lebih metode dalam sebuah kelas memiliki nama yang sama, tetapi memiliki parameter yang berbeda.

Contoh program method overloading:
```java
public class OverloadingExample {
   // Metode overloading untuk menghitung luas persegi
   public static int hitungLuas(int sisi) {
       return sisi * sisi;
   }
   
   // Metode overloading untuk menghitung luas persegi panjang
   public static int hitungLuas(int panjang, int lebar) {
       return panjang * lebar;
   }
   
   public static void main(String[] args) {
       System.out.println("Luas persegi: " + hitungLuas(5));
       System.out.println("Luas persegi panjang: " + hitungLuas(4, 6));
   }
}
```

#### b. Operator Overloading:
Java tidak mendukung operator overloading seperti bahasa pemrograman lain seperti C++.

### 2. Runtime Polymorphism:
Runtime polymorphism terjadi saat keputusan pada saat runtime yang metode yang akan dipanggil terjadi berdasarkan objek yang dibuat dalam memori pada saat runtime. Terdapat dua bentuk runtime polymorphism: method overriding dan late binding (dynamic method dispatch).

#### a. Method Overriding:
Method overriding terjadi ketika sebuah subclass memberikan implementasi ulang terhadap metode yang sudah didefinisikan di superclassnya.

Contoh program method overriding:
```java
class Animal {
   void sound() {
       System.out.println("Suara hewan...");
   }
}

class Cat extends Animal {
   @Override
   void sound() {
       System.out.println("Meow!");
   }
}

public class OverridingExample {
   public static void main(String[] args) {
       Animal animal = new Cat(); // Objek Cat disimpan dalam referensi Animal
       animal.sound(); // Panggil metode sound(), yang akan memanggil implementasi di Cat
   }
}
```

#### b. Late Binding (Dynamic Method Dispatch):
Late binding terjadi ketika pemanggilan metode dilakukan pada saat runtime, dan JVM (Java Virtual Machine) menentukan implementasi yang tepat berdasarkan objek yang dibuat dalam memori pada saat runtime.

Contoh program late binding:
```java
class Animal {
   void sound() {
       System.out.println("Suara hewan...");
   }
}

class Cat extends Animal {
   @Override
   void sound() {
       System.out.println("Meow!");
   }
}

public class DynamicMethodDispatchExample {
   public static void main(String[] args) {
       Animal animal1 = new Animal();
       Animal animal2 = new Cat(); // Objek Cat disimpan dalam referensi Animal
       animal1.sound(); // Panggil metode sound() dari Animal
       animal2.sound(); // Panggil metode sound() yang di-overridden dari Cat
   }
}
```

Dalam contoh di atas, metode `sound()` yang dipanggil pada saat runtime akan dipilih berdasarkan objek yang dibuat dalam memori. Jadi, metode yang tepat yang akan dipanggil akan ditentukan pada saat runtime.


Mau pemahaman lebih dalam untuk soal ini?

Tanya ke AiRIS

Yuk, cobain chat dan belajar bareng AiRIS, teman pintarmu!

Chat AiRIS

LATIHAN SOAL GRATIS!

Drill Soal

Latihan soal sesuai topik yang kamu mau untuk persiapan ujian

Cobain Drill Soal

Perdalam pemahamanmu bersama Master Teacher
di sesi Live Teaching, GRATIS!

Pertanyaan serupa

Jawab cepat dan jelaskan dengan benar

5

5.0

Jawaban terverifikasi