Media Belajar Bahasa Pemrograman | by APPKEY

JavaTutorial Java 18 : Fungsi Polimorfisme Java dalam Bahasa...

Tutorial Java 18 : Fungsi Polimorfisme Java dalam Bahasa Pemrograman Java

-

Tahukah kamu, dalam bahasa Java dikenal sebuah fungsi yang bernama polimorfisme? Polimorfisme java 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!

Polimorfisme 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 25 : Cara Membuat Split String 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 Python 9 : Cara membuat perulangan (Looping) pada Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Tutorial Dart 18 : Ayo Mulai, Pelajari Cara Install Flutter

Pada seri tutorial Dart kali ini, Codekey akan menampilkan hal yang sedikit berbeda, yaitu tentang aplikasi-aplikasi yang mendukung pemrograman...

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 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 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 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 SQL 9 : Cara Mengolah data Menggunakan Fungsi Agregasi

Agregasi data adalah cara runtuh, meringkas, atau mengelompokan data. Agregasi adalah hal yang selalu ada di setiap aplikasi untuk...

Tutorial SQL 1 : Pengenalan SQL untuk Pemula

Pernahkah Anda mendengar istilah SQL sebelumnya? Saat terjun ke dunia IT khususnya coding pemrograman komputer, SQL adalah salah satu...

Tutorial SQL 8 : Bagaimana Fungsi dan Penggunaan Constraint dalam SQL?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

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