Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Menggunakan Method Overloading Java dan Fungsinya

Overloading memungkinkan berbagai method yang berbeda untuk memiliki nama yang sama, tetapi dengan signature yang berbeda pada bahasa pemrograman Java. Signature dapat berbeda oleh angka dari input parameter atau tipe dari input parameter atapun juga keduanya. Overloading juga berkaitan dengan compile time (atau staticpolymorphism.


Sebelum lebih lanjut mempelajari materi tentang Cara Menggunakan Method Overloading Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Cara Access dan Non Access Modifier Java dan Fungsinya, Acces Modifier Java dan Fungsinya, dan Menggunakan THIS Java dan Fungsinya.

Method overloading adalah salah satu konsep penting dalam pemrograman Java yang memungkinkan untuk mendefinisikan beberapa metode dengan nama yang sama di dalam sebuah kelas, namun dengan parameter yang berbeda. Dalam artikel ini, akan dijelajahi cara menggunakan method overloading dalam Java beserta fungsinya.

Method overloading dapat dilakukan dengan cara berikut:
  • Mendefinisikan Metode dengan Parameter yang Berbeda: Method overloading memungkinkan untuk mendefinisikan beberapa metode dengan nama yang sama, tetapi dengan parameter yang berbeda. Ini dapat dilakukan dengan mengubah jumlah parameter, tipe data parameter, atau urutan parameter.
  • Memanggil Metode Sesuai dengan Argumen yang Diberikan: Saat memanggil metode yang di-overload, Java akan menentukan metode mana yang harus dipanggil berdasarkan jumlah dan tipe argumen yang diberikan. Java akan memilih metode yang paling cocok dengan tipe argumen yang diberikan.

Contoh:

// Program Java

// mendemonstrasikan kerja

// dari method overloading

// pada Java.

public class Sum

 

// melakukan overloading sum()

// yang mengambil dua

// parameter int.

public int sum(int x, int y

{return (x + y);} 

 

// melakukan overloading sum()

// yang mengambil tiga

// parameter int.

public int sum(int x, int y, int z

{return (x + y + z);} 

 

// melakukan overloading sum()

// yang mengambil dua

// parameter double.

public double sum(double x, double y

{return (x + y);} 

 

/* Driver code */

public static void main(String args[]

Sum s = new Sum(); 

System.out.println(s.sum(10, 20)); 

System.out.println(s.sum(10, 20, 30)); 

System.out.println(s.sum(10.5, 20.5)); 

}

 

}

Output:
30
60
31.0

Jika Prototipe Tidak Cocok dengan Argumen

Secara prioritas, kompilator akan mengambil langkah-langkah berikut ini:
  • Ketik Conversion tetapi dengan tipe yang lebih tinggi (dalam hal rentang) pada 'family' yang sama.
  • Ketik Conversion ke 'family' yang lebih tinggi selanjutnya jika tidak terdapat tipe data long yang tersedia untuk tipe data int, maka yang akan dicari adalah tipe data float. Berikut adalah contoh dari penerapan konsep tersebut:

Contoh:

class Demo 

public void show(int x

{System.out.println("In int" 

+x);} 

 

public void show(String s

{System.out.println("In"

+" String" 

+s);}

 

public void show(byte b

{System.out.println("In"

+" byte"

+b);}

}

 

class UseDemo 

{

public static void main(String[] args

{byte a = 25

Demo obj = new Demo();

 

// akan menuju ke argumen byte 

obj.show(a); 

 

// String

obj.show("hello");

 

// Int  

obj.show(250); 

 

// Ketika tipe data char tidak

// tersedia, maka tipe data

// yang lebih tinggi dari char

// dalam hal rentang adalah

// int.

obj.show('A');

 

// String 

obj.show("A"); 

 

// Ketika tipe data float

// tidak tersedia dan juga

// bukan merupakan tipe data

// yang lebih tinggi, maka

// pada tahap ini akan terjadi

// error.

obj.show(7.5);}

}


Keuntungan dari Overloading

Keuntungannya adalah tidak perlu menciptakan dan mengingat nama-nama fungsi yang berbeda untuk melakukan tugas yang sama. Contohnya, pada program berikut ini jika overloading tidak didukung oleh Java, maka harus diciptakan method dengan nama sum1, sum2, ..., dan seterusnya.

Baca Juga:

Method Overloading pada Tipe Return

Tidak bisa dilakukan overloading oleh tipe returnBehavior ini juga sama pada C++, berikut contoh program untuk rincian lebih lengkap dari pemahaman tersebut.

Contoh:

public class Main 

 

public int foo() { return 10; } 

 

// compiler error: foo() sudah

// didefinisikan.

public char foo() { return 'a'; } 

 

public static void main(String args[]){}

 

}


Namun, method overloading pada tipe return mungkin dapat dilakukan pada kasus dimana tipe data dari fungsi akan dipanggil secara spesifik dan eksplisit. Perhatikan contoh program berikut ini:

Contoh:

// Program Java untuk

// mendemonstrasikan kerja

// dari method overloading

// pada static method.

public class Main

 

public static int foo(int a) { return 10; } 

 

public static char foo(int a, int b) { return 'a'; } 

 

public static void main(String args[]

System.out.println(foo(1)); 

System.out.println(foo(1, 2)); 

}

 

}

Output:
10
a

Contoh:

// Program Java

// mendemonstrasikan kerja

// dari method overloading

// dalam sebuah method.

class

public int foo(int a)

{return 10;} 

 

public char foo(int a, int b

{return 'a';} 

 

public class Main 

public static void main(String args[]

{A a = new A(); 

System.out.println(a.foo(1)); 

System.out.println(a.foo(1, 2));}

}

Output:
10
a

Overloading pada method static

Method static dapat memiliki lebih dari satu static method dengan nama yang sama, tetapi berbeda pada input parameternya.

Method Overloading yang berbeda hanya pada bagian keyword static

Tidak dapat dilakukan overloading dua method pada Java jika berbeda hanya pada keyword static-nya saja atau angka dari parameter dan tipe dari parameter adalah sama.

Overloading pada main() Java

Seperti halnya static method lainnya, main() dapat dilakukan overloading pada Java. Berikut adalah contoh programnya.

Contoh:

// Sebuah program Java dengan

// overloading main().

import java.io.*

 

public class Test 

 

/* Normal main() */

public static void main(String[] args

{System.out.println("Hi "

+"Peek (from main)"); 

Test.main("Peek");} 

 

/* Overloading main method */

public static void main(String arg1

{System.out.println("Hi, " 

+ arg1); 

Test.main("Dear Kon"

"My Flen");} 

 

public static void main(String arg1, String arg2

{System.out.println("Hi, " 

+arg1 

+", "

+arg2);}

 

}

Output:
Hi Peek (from main)
Hi, Peek
Hi, Dear Kon, My Flen

Java mendukung operator overloading

Tidak seperti C++, Java tidak mengijinkan user-defined overloading operator. Secara internal Java melakukan overloading operator.

Perbedaan antara overloading dan overriding pada Java:
  • Overloading adalah tentang fungsi yang sama tetapi memiliki signature yang berbeda. Overriding adalah tentang fungsi yang sama, signature yang sama, tetapi class yang terhubung melalui inheritance berbeda seperti diperlihatkan pada gambar 1.
  • Overloading adalah contoh dari compiler time polymorphism dan overriding adalah contoh dari runtime polymorphism.

6 Contoh Program Method Overloading pada Java
Gambar 1 Perbedaan antara overloading dan overriding pada Java


Fungsi Method Overloading dalam Java:
  • Mempermudah Penggunaan: Method overloading mempermudah penggunaan dan pemanggilan metode dengan nama yang sama, karena pengembang dapat memanggilnya dengan argumen yang berbeda tanpa harus mengingat nama metode yang berbeda.
  • Meningkatkan Keterbacaan Kode: Dengan menggunakan method overloading, pengembang dapat menyimpan nama metode yang sama untuk operasi yang berbeda. Hal ini membuat kode lebih mudah dipahami dan konsisten.
  • Fleksibilitas: Method overloading memberikan fleksibilitas dalam penggunaan metode dengan argumen yang berbeda. Ini memungkinkan untuk menangani berbagai kasus penggunaan dengan nama metode yang sama.
  • Menghindari Duplikasi Kode: Dengan menggunakan method overloading, pengembang dapat menghindari duplikasi kode dengan menggabungkan fungsi-fungsi yang serupa menjadi satu metode dengan nama yang sama.
  • Peningkatan Produktivitas: Method overloading dapat meningkatkan produktivitas dalam pengembangan perangkat lunak dengan menyederhanakan dan mengelompokkan kode, serta mengurangi kebutuhan untuk menulis dan memelihara banyak metode dengan nama yang berbeda.

Dengan memahami dan menggunakan method overloading dengan bijak, pengembang dapat meningkatkan keterbacaan, fleksibilitas, dan produktivitas kode program dalam pengembangan perangkat lunak Java. Method overloading adalah salah satu fitur yang kuat dalam Java yang dapat membantu dalam menulis kode yang lebih efisien dan mudah dipelihara.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Muhammad Iqbal As Syegaf, Nadya Yuli Rismawati, Nibrose Zukhruf Febrina, Nikodemus Galih Candra Wicaksono, dan Piawai Madani Rudini.

22 komentar untuk "Cara Menggunakan Method Overloading Java dan Fungsinya"

  1. Apa yang dimaksud dengan method overloading pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Method overloading adalah fitur yang memungkinkan class memiliki lebih dari satu method yang memiliki nama yang sama jika daftar argumennya berbeda pada bahasa pemrograman Java. Hal ini mirip dengan constructur Java overloading, yang juga memungkinkan class memiliki lebih dari satu constructor yang memiliki daftar argumen yang berbeda.

      Hapus
  2. Apa perbedaan antara overloading dan overring pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Method overloading adalah kondisi dimana dua atau lebih method dalam satu class memiliki nama method yang sama tetapi dengan parameter yang berbeda. Sendangkan method overriding terjadi ketika dua method memiliki nama dan paramter method adalah sama dimana salah satu method ada di class induk, dan method lainnya dalah di class anak.

      Hapus
  3. Apa keuntungan menggunakan method overloading pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Method overloading dapat digunakan untuk meningkatkan kemampuan program pada Java. Dimana method overloading akan memberikan fleksibilitas bagi programmer untuk memanggil method serupa untuk berbagai jenis data. Overloading jgua dapat digunakan pada constructor untuk membuat object baru dengan jumlah data yang berbeda.

      Hapus
  4. Java sering direkomendasikan sebagai bahasa pemrograman pertama yang perlu dipelajari oleh pengembang baru sebelum mempelajari bahasa pemrograman lain. Bahasa pemrograman Java memiliki kelebihan dibandingkan dengan bahasa pemrograman yang lain yaitu dapat berjalan pada platform atau perangkat apapun. Selain itu, Java juga memiliki akses ke banya library dan juga mendapatkan banyak dukungan dari berbagai komunitas pengembang yang akan membantu mempermudah untuk menyelesaikan permasalahan ketika mempelajari bahasa pemrograman ini, salah satunya adalah seperti mempelajari tentang materi overloading pada Java

    BalasHapus
  5. 1234567*
    123456*8
    12345*78
    1234*678
    123*5678
    12*45678
    1*345678
    *2345678
    Ada yang bisa bantu menyelesaikan pola nya dalam bentuk program Java?

    BalasHapus
    Balasan
    1. Coba gunakan kode program ini:

      For(i=1;i<=8;i++)
      {
      For(j=1;j<=8;j++)
      {
      If(j==9-i)
      Printf("*");
      Else
      Printf("%d",I);
      }
      }

      Hapus
    2. Ini juga bisa:

      public class Pattern1 {

      public static void main(String args[]) {

      int i, j;

      for (i = 8; i >=1; i--) {
      for (j = 1; j <= 8; j++) {
      if(i == j)
      System.out.print("*");
      else
      System.out.print(j);
      }
      System.out.println();
      }
      }
      }

      Hapus
    3. Ini gan, monggo dicoba,

      for(int i = 8; i > 0; i--) {
      for(int j = 1; j <= 8; j++){
      if(j != i)
      System.out.print(String.valueOf(j));
      else
      System.out.print("*");
      }
      System.out.println("");
      }

      Hapus
  6. Saya menemukan kesalahan pada bagian ini...
    pada section string java... disini tidak dapat dibuka *SPLIT() METHOD*, apa mungkin ada yang salah?

    BalasHapus
    Balasan
    1. Tambahkan tanda dot(.), mungkin dapat bekerja.

      Hapus
  7. Apakah materi tentang java overloading yang saya pelajari sekarang adalah materi Java tingkat lanjut, atau Java Inti?

    BalasHapus
    Balasan
    1. Saya rasa materi yang disampaikan pada blog ini sudah hampir mencakup semua hal dasar tentang Java. Mungkin yang dimaksud dengan definisi Java tingkat lanjut tersebut adalah Framework yang dikembangkan dengan bahasa pemrograman Java. Jika, benar maka pada blog ini memang belum dipelajari.

      Hapus
  8. Saat ini saya sedang berkuliah disalah satu universitas swasta pada Jurusan Teknik Informatika, dan sedang masuk semester 2, saya sedang mengalami permasalahan tentang penjelasan antara perbedaan Java dan OOP? bisa bantu jelaskan?

    BalasHapus
    Balasan
    1. Saya rasa anda memiliki kesalahpahaman tentang definisi fundamental Java. OOP pada dasarnya adalah sebuah konsep atau paradigma pemrograman yang diikuti oleh beberapa tingkatan bahasa pemrograman tertentu, termasuk juga Java.

      Hapus
    2. OOP bukan bahasa pemrograman. OOP adalah gaya pemrograman yang menggunakan object, bukan bahasa pemrograman yang biasanya normal dipelajari (a.k.a dasar kode program). OOP itu lebih ke pola pikir dalam membuat program, sedangkan Java adalah salah satu fasilitas yang digunakan untuk membuat program tersebut.

      Hapus
  9. class baap
    {
    public int h=4;
    public int geth()
    {
    System.out.println("Baap"+h);
    return h;
    }
    }

    public class beta extends baap{
    public int h=44;
    public int geth(){
    System.out.println("Beta" +h);
    }

    public statis void main(String[]args)
    {
    baap b = new beta();
    System.out.println(b.h+" "+b.geth());

    beta bb = (Beta) b;
    System.out.println(bb.h+" "bb.geth());

    }

    }

    Ada yang bisa bantu, hasil keluaran atau outputnya seperti apa?

    BalasHapus
    Balasan
    1. Kemungkinan akan terjadi error, karena method utama ditulis dapat bentuk static dan kesalahan sintak lainnya juga perlu diperbaiki. Jika telah diperbaiki, kemungkinan hasilnya adalah:

      4 44
      44 44

      Hapus
  10. Saya masih mengalami kesulitan dalam memahami materi tentang overloading pada artikel ini, adalah baru mulai belajar coding. Ada yang bisa bantu saya, supaya bisa lebih memahami materi ini...

    BalasHapus
    Balasan
    1. Untuk lebih mudah dapat dimulai dari mempelajari topik pada bagian daftar isi dimulai dari bagian paling atas terlebih dahulu kemudian berlanjut kebagian bawah pada link berikut:

      https://www.elfanmauludi.id/p/java.html

      Jika masih menemukan masalah, coba kemukakan masalahnya secara lebih spesifik, dan bisa diajukan pada kolom komentar,

      happy coding :D

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -