Lompat ke konten Lompat ke sidebar Lompat ke footer

Fungsi Overloading Bahasa C Beserta Penjelasannya

Fungsi overloading merupakan sebuah fitur dari bahasa pemrograman yang memungkinkan satu fungsi untuk memiliki banyak fungsi dengan nama yang sama tetapi memiliki peranan yang berbeda. Fitur ini ditampilkan pada sebagian besar bahasa pemrograman berorientasi objek seperti C++ dan Java. Tetapi, pada bahasa fitur fungsi overloading tidak didukung penggunaannya karena bahasa C bukan termasuk bahasa pemrograman berorientasi objek, dan karena pada dasarnya kompilator bahasa C memang tidak mendukung penggunaan fitur tersebut. Namun demikian, terdapat alternatif lain yang dapat digunakan untuk membuat fitur overloading dengan fungsi yang masih memiliki kesamaan secara tidak langsung pada Bahasa C.

Fungsi Overloading Bahasa C Beserta Penjelasannya
Fungsi Overloading Bahasa C

Sebelum memahami lebih dalam materi tentang Fungsi Overloading Bahasa C Beserta Penjelasannya, terlebih dahulu pelajari materi tentang: Perintah Evaluasi Fungsi Parameter Bahasa C [klik], Menghitung Variabel Angka Dari Argumen Bahasa C [klik], dan Statement Return VS Statement EXIT Pada Fungsi Main Bahasa C [klik].

Salah satu cara yang dapat digunakan untuk membuat fungsi yang memiliki kemiripan seperti fungsi overloading adalah dengan menggunakan tipe void* dari pointer sebagai nilai argumen ke fungsi, dan argumen lainnya bertugas untuk memberi tahu tipe data aktual dari argumen pertama yang akan dilewatkan.

Baca Juga:

Sintak:
int foo(void * arg1, int arg2);

arg2 dapat diinterpretasikan sebagai berikut:
  • 0 = Struct1 tipe variabel,
  • 1 = Struct2 tipe variabel, dan lain sebagainya.

Berikut Struct1 dan Struct2 yang didefinisikan dari tipe data struct, yang sekaligus juga dilakukan pemanggilan fungsi foot pada lokasi yang berbeda.
  • foo(arg1, 0); /* arg1 adalah pointer ke variabel tipe struct dengan nama Struct1 */
  • foo(arg1, 1); /* arg1 adalah pointer ke variabel tipe struct dengan nama Struct2 */

Karena argumen kedua dari foo menjaga jalur tipe data dari tipe pertama, maka di dalam fungsi foo, salah satunya bisa mendapatkan tipe data aktual dari argumen pertama melalui typecast yang berada di dalam fungsi foo.

if(arg2 == 0)
{
struct1PtrVar = (Struct1 *)arg1;
}
else if(arg2 == 1)
{
struct2PtrVar = (Struct2 *)arg1;
}
else
{
/*Error Handling*/
}


Terdapat beberapa alternatif lain yang dapat digunakan untuk mengimplementasikan fungsi overloading pada Bahasa C, tetapi semua alternatif tersebut harus menggunakan pointer, yang merupakan fitur yang sangat powerfull yang dimiliki oleh Bahasa C.

Catatan:
  • Jika tidak terdapat fitur pointer pada bahasa C, maka penggunaan program berbasis C tidak dapat dijalankan secara efektif dan efisien pada kehidupan nyata.
  • Dapat pula digunakan "varargs" untuk melakukan pendekatan penggunaan fungsi overloading pada Bahasa C.

Artikel ini didedikasikan kepada: Ari Setiawan, Ayu Rahmawati, Bobby Teguh Yulianto, Desy Intan Larasati, dan Doohan Legin.

5 komentar untuk "Fungsi Overloading Bahasa C Beserta Penjelasannya"

  1. Apa yang dimaksud dengan fungsi overloading pada Bahasa C?

    BalasHapus
    Balasan
    1. Fungsi overloading bahasa C merupakan fungsi yang memiliki banyak fungsi dengan nama yang sama teatpi dengan signature fungsi yang berbeda yang terdapat dalam kode program.

      Hapus
    2. Fungsi overloading tersebut memiliki nama yang sama tetapi bekerja pada tipe argumen yang berbeda dan mengembalikan tipe data yang berbeda pula.

      Hapus
    3. Fungsi overloading pada dasarnya hanyalah sekumpulan fungsi berbeda yang kebetulan memiliki nama yang sama.

      Hapus
    4. Penentuan fungsi mana yangakan digunakan untuk pemanggilan tertentu diselesaikan pada saat kompilasi dilaksanakan pada fungsi overloading. Pada bahasa pemrograman berbasis objek, konsep overloading disebut sebagai polimorfisme waktu kompilasi dan polimorfisme statis.

      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 -