Media Belajar Bahasa Pemrograman | by APPKEY

Java Tutorial Java 18 : Fungsi Polimorfisme dalam Bahasa Java

Tutorial Java 18 : Fungsi Polimorfisme dalam Bahasa Java

-

Tahukah kamu, dalam bahasa Java dikenal sebuah fungsi yang bernama polimorfisme? Polimorfisme adalah kemampuan suatu objek untuk mengambil banyak bentuk.

Pada seri tutorial Java kali ini Codekey akan membahas tentang polimorfisme Java serta implementasinya. Jika kamu tertarik untuk tahu, mari simak artikel ini!

Polymorphism dalam Java

Polimorfisme dalam bahasa Java adalah konsep di mana kita dapat melakukan satu tindakan dengan cara yang berbeda. Polimorfisme berasal dari 2 kata Yunani: poli dan morf. Kata “poli” berarti banyak dan “morf” berarti bentuk. Jadi polimorfisme berarti banyak bentuk.

Objek Java apa pun yang dapat lulus lebih dari satu tes IS-A dianggap polimorfik. Di Java, semua objek Java adalah polimorfik karena objek apa pun akan lulus uji IS-A untuk tipenya sendiri dan untuk kelas Object.

Penting untuk kamu ketahui bahwa satu-satunya cara yang mungkin untuk mengakses suatu objek adalah melalui variabel referensi. Variabel referensi hanya dapat terdiri dari satu jenis. Setelah dideklarasikan, jenis variabel referensi tidak dapat diubah.

Variabel referensi dapat dipindahkan ke objek lain asalkan tidak dinyatakan final. Jenis variabel referensi akan menentukan metode yang dapat dipanggil pada objek.

Variabel referensi dapat merujuk ke objek apa pun dari tipe yang dideklarasikan atau subtipe dari tipe yang dideklarasikan. Variabel referensi dapat dideklarasikan sebagai kelas atau tipe antarmuka.

Ada dua jenis polimorfisme Java: polimorfisme waktu kompilasi dan polimorfisme runtime. Kita dapat melakukan polimorfisme di java dengan metode overloading dan metode overriding. Jika kamu membebani metode statis di Java, hal itu adalah contoh polimorfisme waktu kompilasi.

Contoh Implementasi Polimorfisme Java

polimorfisme java java

Lihatlah contoh di bawah ini dengan saksama!

Monyet mo = new Monyet();
Hewan he = mo;
Omnivora om = mo;
Object ob = mo;

Sekarang, kelas Deer dianggap polimorfik karena memiliki banyak pewarisan. Berikut ini yang benar untuk contoh di atas:

  • Monyet adalah Hewan
  • Monyet adalah Omnivora
  • Monyet adalah Monyet
  • Monyet adalah Object

Ketika kami menerapkan fakta variabel referensi ke referensi objek Deer, deklarasi berikut adalah deklarasi yang legal. Contoh:

Monyet mo = new Monyet();
Hewan he = mo;
Omnivora om = mo;
Object ob = mo;

Semua variabel referensi mo,he, om, ob, ditujukan untuk objek Monyet yang sama di tumpukan yang ada.

Artikel Terkait  Tutorial Java 9 : Mari Belajar Memahami Konsep Inheritance pada Java

Metode Virtual

Pada segmen ini, Codekey akan menunjukkan bagaimana behavior atau perilaku metode yang diganti di Java. Hal ini memungkinkan Kamu untuk memanfaatkan polimorfisme saat mendesain kelas yang kamu gunakan.

Kita sudah membahas metode override di tutorial sebelumnya, di mana kelas anak dapat menimpa metode di kelas induknya. Metode yang ditimpa pada dasarnya tersembunyi di kelas induk, dan tidak dipanggil kecuali kelas anak menggunakan kata kunci super di dalam metode utama.

/* File name : Siswa.java */
public class Siswa {
   private String nama;
   private String hobi;
   private int umur;

   public Siswa(String nama, String hobi, int umur) {
      System.out.println("Selamat Belajar JAVA!");
      this.nama = nama;
      this.hobi = hobi;
      this.umur = umur;
   }

   public void hasil() {
      System.out.println("Nama" +this.name + "Hobi" + this.hobi + "Umur" + this.umur +);
   }

   public String toString() {
      return nama + " " + hobi + " " + umur;
   }

   public String getNama() {
      return nama;
   }

   public String getHobi() {
      return hobi;
   }

   public void setHobi(String newHobi) {
      hobi = newHobi;
   }

   public int getUmur() {
      return umur;
   }
}

Semua variabel referensi mo,he, om, ob, ditujukan untuk objek Monyet yang sama di tumpukan yang ada.

Metode Virtual

Pada segmen ini, Codekey akan menunjukkan bagaimana behavior atau perilaku metode yang diganti di Java. Hal ini memungkinkan Kamu untuk memanfaatkan polimorfisme saat mendesain kelas yang kamu gunakan.

Kita sudah membahas metode override di tutorial sebelumnya, di mana kelas anak dapat menimpa metode di kelas induknya. Metode yang ditimpa pada dasarnya tersembunyi di kelas induk, dan tidak dipanggil kecuali kelas anak menggunakan kata kunci super di dalam metode utama.

/* File name : Siswa.java */
public class Siswa {
   private String nama;
   private String hobi;
   private int umur;

   public Siswa(String nama, String hobi, int umur) {
      System.out.println("Selamat Belajar JAVA!");
      this.nama = nama;
      this.hobi = hobi;
      this.umur = umur;
   }

   public void hasil() {
      System.out.println("Nama" +this.name + "Hobi" + this.hobi + "Umur" + this.umur +);
   }

   public String toString() {
      return nama + " " + hobi + " " + umur;
   }

   public String getNama() {
      return nama;
   }

   public String getHobi() {
      return hobi;
   }

   public void setHobi(String newHobi) {
      hobi = newHobi;
   }

   public int getUmur() {
      return umur;
   }
}

Di sini kamu akan melihat contoh implementasi kode ketika kamu ingin memperluas kelas siswa sebagai berikut:

/* File name : Nilai.java */
public class Nilai extends Siswa {
   private double nilai;
   
   public Nilai(String nama, String hobi, int umur, double nilai) {
      super(nama, hobi, umur);
      setNilai(nilai);
   }
   
   public void hasil() {
      System.out.println("-----------");
      System.out.println("Siswa bernama" + getNama()
      + " dengan nilai Bahasa Indonesia " + nilai);
   }
   
   public double getNilai() {
      return nilai;
   }
   
   public void setNilai (double newNilai) {
      if(newNilai >= 0.0) {
         nilai = newNilai;
      }
   }
   
   public double pesan() {
      System.out.println("Selamat" + getNama());
      return nilai/10;
   }
}

Sekarang kamu bisa pelajari contoh program di bawah ini dengan saksama dan cobalah untuk menemukan outputnya:

/* File name : UjiCoba.java */

public class UjiCoba {

   public static void main(String [] args) {
      Nilai n = new Nilai("Andi", "Berenang", 13, 57);
      Siswa s = new Nilai("Budi", "Membaca", 12, 77);
      System.out.println("Dari referensi Nilai ");   
      n.mailCheck();
      System.out.println("\n Dari referensi Siswa ");
      s.mailCheck();
   }
}

Maka hasil dari program ini adalah:

Selamat Belajar JAVA!
Selamat Belajar JAVA!

Dari referensi Nilai
-----------
Siswa bernama Andi dengan nilai Bahasa Indonesia 57

Dari referensi Siswa
-----------
Siswa bernama Budi dengan nilai Bahasa Indonesia 77

Di sini, kami membuat instance dua objek nilai. Satu menggunakan referensi nilai n, dan lainnya menggunakan referensi siswa s.

Saat menjalankan n.hasil(), kompilator melihat hasil() di kelas nilai pada waktu kompilasi, dan JVM memanggil hasil() di kelas nilai pada waktu proses.

hasil() pada s sangat berbeda karena s adalah referensi siswa. Ketika kompilator melihat s.hasil(), kompiler melihat metode hasil() di kelas siswa.

Di kode ini, pada waktu kompilasi, compiler menggunakan hasil() di Siswa untuk memvalidasi pernyataan ini. Namun, pada saat dijalankan, JVM memanggil hasil() di kelas nilai.

Perilaku ini disebut sebagai pemanggilan metode virtual, dan metode ini disebut sebagai metode virtual. Metode yang diganti dipanggil pada waktu proses, tidak peduli tipe data apa referensi yang digunakan dalam kode sumber pada waktu kompilasi.

Artikel Terkait  Tutorial Java 20 : Mari Belajar Cara Menggunakan Java Map

Contoh Runtime Java Polimorfisme

Dalam contoh ini, Codekey akan memberi contoh runtime polymorphism dalam java. Kami membuat dua kelas Persegi dan Nilai. Kelas Nilai memberi nilai pada kelas persegi dan mengganti metode hitung()-nya. Kami memanggil metode run dengan variabel referensi kelas Induk. Karena mengacu pada objek subkelas dan metode subkelas menimpa metode kelas Induk, metode subkelas dipanggil saat runtime.

Karena pemanggilan metode ditentukan oleh JVM bukan kompiler, ini dikenal sebagai polimorfisme runtime.

1.	class Persegi{  
2.	  void hitung(){System.out.println("Rumus :");}  
3.	}  
4.	class Nilai extends Persegi{  
5.	  void hitung(){System.out.println("S x S");}  
6.	  
7.	  public static void main(String args[]){  
8.	    Persegi p = new Nilai();  
9.	    p.hitung();  
10.	  }  
11.	}  

Output yang dihasilkan adalah sebagai berikut:

Rumus : S x S

Itulah penjelasan tentang polimorfisme Java yang membantu kamu untuk mengubah-ubah bentuk objekmu di Java. Kalau kamu tertarik untuk belajar tentang Java, kami menyarankan kamu untuk mengunjungi seri tutorial Java yang ada di Codekey.

Situs codekey menyediakan berbagai tutorial, penjelasan, materi, tips, dan trik untuk kamu belajar bahasa pemrograman. Jangan lupa untuk dapatkan update terbaru tentang tutorial bahasa pemrograman di Codekey.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial Dart 1 : Pengenalan Bahasa Pemrogaman Dart untuk Pemula

Halo pembaca setia Codekey! Belajar pemrograman saat ini menjadi keharusan bagi semua orang yang ingin berkarir sebagai programmer, hal...

Tutorial Swift 2 : Tahap Awal Persiapan dan Mengatur Lingkungan Kerja pada Swift

Setelah Anda mengenal bahasa pemrograman Swift 4, langkah selanjutnya adalah Anda perlu memulai pemrograman Swift 4 dengan cara install...

Tutorial Javascript 6 : Cara Membuat Event pada Javascript

Event JavaScript adalah tindakan atau proses khusus yang terjadi dalam program atau situs web yang akan Anda kembangkan. Anda...

Tutorial Javascript 8 : Panduan Lengkap Cara Membuat Array di Javascript

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial Javascript 1 : Pengenalan Javascript untuk Pemula

Ada banyak sekali jenis bahasa pemrograman yang bisa Anda pelajari untuk menjadi seorang programmer profesional. Salah satunya adalah belajar...

Tutorial Dart 3 : Belajar Menggunakan Syntax atau Perintah dasar Dart

Setelah mengatur lingkungan kerja serta instalasi Dart ke dalam sistem operasi yang kalian miliki, dalam pembuatan suatu program baik...

Tutorial PHP 8 : Memahami Array Multidimensi di PHP | Kapan dan Bagaimana Menggunakannya?

Pada artikel sebelumnya kami telah membahas tentang array PHP serta membahas sedikit tentang array multidimensi PHP. Pada artikel kali...

Tutorial Javascript 2 : Tahap Awal Cara Mudah Menulis Kode di Javascript

Kembali lagi di seri belajar Javascript bersama Codekey! Setelah di postingan sebelumnya Anda belajar Javascript terkait konsep-konsep dasarnya, kini...

Tutorial Python 7 : Tutorial Dasar Cara Mengoperasikan String pada Python

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial PHP 9 : Belajar Menggunakan Sort Array Berdasarkan Key dan Value

Array PHP sangat berguna untuk para developer untuk menyimpan data pada variabel. Anda dapat mengelompokkannya dengan membuat kategori tertentu...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya