Selasa, 08 November 2016

Untuk Apa Keyword This di C++? Kapan Harus Menggunakannya?


Keyword this bukan hanya ada dalam C++, bahasa pemrograman object oriented lain juga sama-sama menggunakan this dengan cara yang sama. Biasanya keyword this dipakai oleh method yang bernaung di dalam sebuah class. Oleh perspektif programmer, keyword this merupakan simbol untuk merujuk kepada member kelas dari method tersebut.

Yang membuatnya sedikit membingungkan, di C++ kita bisa mengakses member tanpa menggunakan this.
#include <iostream>
using namespace std;

class MyClass{
    public:
    int X;
   
    void MyMethod(){
        X = 1;
        cout<<X<<endl;
    }
};

int main(){
    MyClass *test = new MyClass();
    test->MyMethod();
}


Output :
1

Lantas, mengapa harus ada keyword this jika bisa mengakses member secara langsung?
Kegunaan keyword this memang rumit jika dijelaskan dengan kata-kata, definisi atau pengertian. Tapi, setelah melihat ini, anda akan tahu, mengapa harus ada keyword this.
#include <iostream>
using namespace std;

class MyClass{
    public:
    int X;
   
    void MyMethod(){
        int X;
       
        X = 1;
        this->X = 2;
        cout<<X<<endl;
        cout<<this->X<<endl;
    }
};

int main(){
    MyClass *test = new MyClass();
    test->MyMethod();
}


Output:
1
2

Yap, keyword this bisa dimanfaakan jika method yang dibuat memiliki nama local variable atau nama parameter yang sama dengan nama salah satu member class.

Kalau dari pendapat penulis sendiri, keyword this dapat berguna untuk mengurangi kompleksitas dalam OOP. Ini dapat terjadi karena method dari class boleh memiliki nama parameter yang sama persis dengan salah sau member class tersebut.
class MyClass{
    public:
    int X;
   
    void MyMethod(int X){
        this->X = X;
    }
};


Tanpa dukungan keyword this, programmer harus mendeskripsikan parameter dengan nama lain yang tidak boleh konflik dengan salah satu member class.
class MyClass{
    public:
    int X;
   
    void MyMethod(int newX){
        X = newX;
    }
};


Meski efeknya kode akan butuh lebih panjang untuk ditulis, namun hal ini dapat meningkatkan keterbacaan kode.

Sekarang sudah tidak bingung lagi kan, kenapa C++ memiliki keyword this?
OK, see you..
Load disqus comments

0 comments