Konsep Pemrograman Generik di C++

Pelopor pemrograman generik dan juga template C++ adalah Alexander Stevanov. Di pemrograman generik algoritma ditulis dengan konsep “to be specified later” kemudian diinisialisasi saat dibutuhkan untuk tipe tertentu sebagai parameter. Bahasa yang pertama kali menggunakan konsep ini adalah Ada di tahun 1983, dimana penulisan fungsi generik yang dapat dipanggil dengan tipe yang berbeda sehingga mengurangi duplikasi. Entitas pemrograman yang menggunakan pemrograman generik dikenal dalam berbagai nama: generic di Ada, Java, C# dan Visual Basic.NET, parametric polymorphism di M, Scala dan Haskl, template di C++ dan parameterized type di buku Design Patterns (Gang of Four 1995) yang ide dasarnya dikemukakan oleh Christopher Alexander di bidang Ilmu Arsitektur tetapi kemudian diadopsi oleh banyak bidang ilmu termasuk Ilmu Komputer.

C++ Template

Ada dua bentuk template di C++:

  • Function Template.
  • Class Template disebut juga generic class/parameterized type.

Contoh Function Template

template <class T>
void swap (T& x, T& y)
{  T temp = x;
   x = y;
   y = temp;
}

Function template tersebut dapat dipanggil dengan tipe parameter yang berbeda, misal:
swap(1,2); // tipe parameter: integer
swap(‘A’,’B’); // tipe parameter: char
Ketika fungsi swap dipanggil dengan parameter bertipe integer, compiler C++ akan membentuk fungsi swap dengan parameter bertipe integer ini pada saat compile time (bukan run time). Dengan demikian Template C++ merupakan polymorphism jenis static.

Contoh Class Template

template<class T>
class A{
public : 
   T x;
};

Class template tersebut dapat dipanggil dengan tipe object yang berbeda, misal:
A Obj1; // tipe object: integer
A Objw; // tipe object: string

 

Sumber: Subandijo. 2011. Paradigma Bahasa Pemrograman. Jurnal ComTech Vol.2 No. 2 Desember 2011: 702-714

 

Send your comment