Keyword this pada OOP (C++, class, lingkaran)

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 LingkaranA tanpa this

Class LingkaranB dengan 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;
}

 

 



5 1 vote
Article Rating
Subscribe
Notify of
guest

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

3 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Billy
Billy
3 years ago

Akhirnya ngerti, kmrn guru saya mengajarkan saya susah mengertinya

Investasi Saham
3 years ago

Mas edinson, guru pemrograman ya pak ? salam saya juga programmer pak,
owner mastersaham.com