Menu
CoddyTech

Kata Kunci 'this'

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 4 dari 70.

Kata kunci this merujuk pada instance class saat ini. Kata kunci ini digunakan untuk mengakses anggota instance dan membedakan parameter dengan field yang memiliki nama sama.

Gunakan this untuk membedakan field dan parameter

public class Person
{
    private string name;
    private int age;
    
    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

Tanpa this, parameter akan membayangi field

// Ini tidak akan berfungsi seperti yang diharapkan
public Person(string name, int age)
{
    name = name;  // Memberikan nilai parameter ke parameter itu sendiri!
    age = age;    // Memberikan nilai parameter ke parameter itu sendiri!
}

Gunakan this dengan property

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    
    public Product(string name, decimal price)
    {
        this.Name = name;
        this.Price = price;
    }
    
    public void DisplayInfo()
    {
        Console.WriteLine($"{this.Name}: ${this.Price}");
    }
}

Gunakan this untuk memanggil konstruktor lain di class yang sama

public class Rectangle
{
    public int Width { get; set; }
    public int Height { get; set; }
    
    public Rectangle(int width, int height)
    {
        this.Width = width;
        this.Height = height;
    }
    
    // Konstruktor untuk persegi
    public Rectangle(int size) : this(size, size)
    {
    }
}

Contoh penggunaan:

Rectangle rect = new Rectangle(5, 10);
Rectangle square = new Rectangle(5);  // Membuat 5x5

Kata kunci this selalu merujuk pada instance object saat ini. Kata kunci ini sangat berguna saat nama parameter sama dengan nama field atau property, sehingga kodemu lebih jelas dan mencegah error.

challenge icon

Tantangan

Sedang

Lengkapi class Product dengan menambahkan konstruktor yang menggunakan kata kunci this untuk menetapkan nilai parameter ke property. Implementasikan juga method GetDescription() menggunakan this untuk mengakses property.

Method GetDescription() harus mengembalikan: "{Name} costs ${Price}"

Coba sendiri

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal price = decimal.Parse(Console.ReadLine());
        
        Product product = new Product(name, price);
        
        Console.WriteLine($"Product: {product.Name}");
        Console.WriteLine($"Price: ${product.Price}");
        Console.WriteLine(product.GetDescription());
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online