Penjelasan dan Cara menggunakan Template

Written by: Fajar   |   Updated on: Oktober 26, 2019
Template

Pada artikel sebelumnya pernah dijelaskan mengenai function overloading, dimana kita dimungkinkan untuk membuat fleksibilitas function tepatnya saat kita mencoba membuat function tersebut yang dapat menyesuaikan dengan tipe data yang akan digunakan. Tapi kenyataanya, cara tersebut akan menyulitkan anda untuk melakukan pemeliharaan

Penjelasan Template

Templates adalah salah satu fitur dari C++ yang memungkinkan anda untuk membuat sebuah program generik. Dengan arti lain bahwa anda dimungkinkan untuk membuat sebuah function atau class yang dapat menyesuaikan dan bekerja dengan tipe data yang berbeda.

Dengan adanya template kita dimungkinkan membuat sebuah kode yang dapat digunakan berulangkali dan bersifat fleksibel dengan berbagai macam tipe data. Dan juga mempermudahkan kita dalam melakukan perawatan kode.

Bentuk Penulisan:

template <typename T>
//atau
template <class T>
//Keduanya secara garis besar sama

Bagaimana CPU bekerja pada Template

Saat waktu kompilasi kode program, kompiler akan memeriksa tipe data dan melakukan peluasan, hasil dari kompilasi akan menghasilkan banyak salinan dari sebuah kode function/class dengan perbedaan dalam tipe data yang digunakan. Singkatnya kompiler akan membuat function/class overloading dari template yang telah dibuat oleh programmer. peluasan dilakukan hanya sebatas tipe data yang dibutuhkan atau disebutkan.

Function Template

Saat sebuah template digunakan pada function, hal itu akan memberikan kemampuan ke pada function untuk dapat menyesuaikan dengan berbagai tipe data yang dimaksud.

Contoh Penulisan:

template <typename T>
T namaFunction(T parameter){
	//
}

Contoh program:

#include <iostream>
using namespace std;

template <typename T> //Template dengan identitas T
T tambah(T x, T y) //Function dengan return type 'template T' dan parameter 'template T'
{
   return x+y;
}

int main()
{
  cout << tambah<int>(5, 8) << endl;  // memanggil function tambah dengan integer
  cout << tambah<double>(6.3, 9.1) << endl; // memanggil function tambah dengan double
  cout << tambah<string>("hallo ", "semua") << endl; // memanggil function tambah dengan string

  return 0;
}

Class Template

Sama seperti function, dimana class akan dapat menyesuaikan banyak tipe data, satu class yang sama dapat digunakan untuk semua tipe data.

Baca :   Penjelasan Dan Cara Menggunakan Static Member Function

Contoh Penulisan

template <class T>
class nama_kelas{
	//
public:
	T contohVariabel;
	T contohFunction(T parameter);
	//
}

Contoh Program

#include <iostream>
using namespace std;

template <class T>
class Larik {
private:
    T *ptr; //anggota variabel dengan template
    int size;
public:
    Larik(T arr[], int s); //anggota function dengan template
    void print();
};

template <class T>
Larik<T>::Larik(T arr[], int s) {//definisi function pada
    ptr = new T[s]; //memori baru
    size = s;
    for(int i = 0; i < size; i++) //memasukan array
        ptr[i] = arr[i];
}

template <class T>
void Larik<T>::print() {
    for (int i = 0; i < size; i++)
        cout<<" "<<*(ptr + i);
    cout<<endl;
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5}; //array
    Larik<int> a(arr, 5); //memanggil function dengan array integer
    a.print(); //cetak
    return 0;
}

Default Template

Seperti halnya sebuah parameter, dalam template kita juga dimungkinkan untuk membuat sebuah default template atau template yang secara default sudah memiliki nilai.

Contoh Penulisan

template<class T, class U = integer>

Template memiliki lebih argumen

Dalam mendirikan template kita juga dimungkinkan untuk mendirikan template lebih dari satu.

Contoh Penulisan

template<class T, class u>
class A{
	//
}

Contoh Pemanggilan

A<string, double> a;

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *