Saat praktek coding membuat plugin WordPress, seorang murid saya tiba-tiba saja bertanya “this itu untuk apa pak”. Cliiing….. Saya tentunya paham apa itu this (rugi kuliah di ITS kalau tidak mengerti this dan mengajar OOP pula 🙂 ). Namun karena saya ingin menjelaskan supaya mudah siswa saya memahami, saya mesti menyiapkan slide dan coding-nya dulu.
Kata kunci atau keyword this pada OOP digunakan untuk merujuk pada anggota class didalam lingkup class yang bersangkutan.
Bingungkan? Untuk lebih mudah memahami saya akan jelaskan dengan menggunakan contoh class berikut dalam bahasa C++. Kita akan membuat 2 class untuk lingkaran, kemudian membandingkan keduanya untuk memahami kegunaan keyword this.
Contents
1) class LingkaranA
class LingkaranA { private: double radius; public: void setRadius(double radius) { this->radius = radius; } double hitungLuas (double r) { setRadius(r); return (22.0/7.0) * radius * radius; } }; int main() { LingkaranA lingkaran1; double luas; luas = lingkaran1.hitungLuas(7); cout << "\n\nLuas lingkaran Class A : " << luas; cin.get(); return 0; }
2) class LingkaranB
class LingkaranB { private: double radius; public: void setRadius(double radius) { this->radius = radius; } double hitungLuas (double r) { setRadius(r); return (22.0/7.0) * radius * radius; } }; int main() { LingkaranB lingkaran2; double luas; luas = lingkaran2.hitungLuas(7); cout << "\n\nLuas lingkaran Class B : " << luas; cin.get(); return 0; }
3) Pembandingan back to back – kegunaan Keyword this pada OOP

Class LingkaranA tanpa this
Class LingkaranB dengan this
4) Program selengkapnya
Berikut program selenkapnya. Dibuat menggunakan Visual Studio 2010.
Project C++ -> CLR Console Application.
Program ini mendemonstrasikan 2 class lingkaran untuk menghitung luas lingkaran.
// lingkaranOOP_CLR_ConsoleAPp.cpp : main project file. #include "stdafx.h" #include <iostream> using namespace System; using namespace std; class LingkaranA { private: double radius; public: void setRadius(double r) { radius = r; } double hitungLuas (double r) { setRadius(r); return (22.0/7.0) * radius * radius; } }; class LingkaranB { private: double radius; public: void setRadius(double radius) { this->radius = radius; } double hitungLuas (double r) { setRadius(r); return (22.0/7.0) * radius * radius; } }; int main(array<System::String ^> ^args) { LingkaranA lingkaran1; LingkaranB lingkaran2; double luas; luas = lingkaran1.hitungLuas(7); cout << "\n\nLuas lingkaran Class A : " << luas; luas = lingkaran2.hitungLuas(7); cout << "\n\nLuas lingkaran Class B : " << luas; cin.get(); return 0; }
Akhirnya ngerti, kmrn guru saya mengajarkan saya susah mengertinya
Mas edinson, guru pemrograman ya pak ? salam saya juga programmer pak,
owner mastersaham.com
Iya. Salam kenal kembali.