Home Blog Page 9

Memahami Properties dalam C#

0

Pada pemrograman berorientasi objek (OOP) di C#, kita sering bekerja dengan kelas dan objek. Salah satu fitur penting dalam kelas adalah properties. Di artikel ini kita akan belajar:

  • Apa itu properties
  • Kenapa properties penting
  • Cara membuat dan menggunakan properties
  • Studi kasus yang implementatif

Semua penjelasan dibuat supaya mudah dipahami teman-teman yang sedang memulai belajar OOP di C#.

Apa Itu Properties di C#?

Dalam C#, properties adalah cara untuk mengakses nilai dari field privat dalam kelas secara terkontrol. Properties terlihat seperti variabel biasa, tapi sebenarnya ada accessor berupa kode get dan set yang mengatur bagaimana nilai dibaca dan ditulis.

Sebagai gambaran:

  • get → mengambil (membaca) nilai
  • set → memberikan (menulis) nilai
    Properties membantu menjaga enkapsulasi — yaitu prinsip OOP untuk melindungi data dari akses langsung yang tidak aman.
private int age;

public int Age
{
    get { return age; }
    set { age = value; }
}

Contoh di atas menunjukkan property Age yang bisa membaca dan mengubah field privat age.

Kenapa Kita Butuh Properties?

Tanpa properties, kita bisa membuat field kelas public dan mengaksesnya langsung. Tapi ini bisa berbahaya karena:

  • Tidak ada aturan untuk validasi nilai
  • Tidak bisa mencegah perubahan nilai yang tidak wajar
  • Kode jadi kurang aman dan sulit dipelihara

Properties hadir untuk memberikan kontrol penuh sambil tetap membuat akses ke data terasa simpel.

Contoh 1: Properties Dasar — Kontrol Data

Misalnya kita punya kelas Mahasiswa dengan nilai skor ujian. Kita ingin skor hanya diisi antara 0 dan 100. Kita buat property yang memeriksa nilai sebelum disimpan:

using System;

class Mahasiswa
{
    private int skorUjian;

    public int SkorUjian
    {
        get { return skorUjian; }
        set
        {
           if (value >= 0 && value <= 100)
                skorUjian = value;
            else
                Console.WriteLine("Nilai harus antara 0 dan 100!");
        }
    }
}


class Program
{
    static void Main()
    {
        Mahasiswa mhs = new Mahasiswa();
        mhs.SkorUjian = 90;
        Console.WriteLine("Skor Ujian: " + mhs.SkorUjian);
        mhs.SkorUjian = 150; // Gagal karena tidak sesuai aturan
    }
}

Di sini property SkorUjian bertindak seperti pengaman:

  • Nilai ditetapkan hanya jika sesuai aturan
  • Bila tidak, muncul pesan peringatan
    Ini contoh bagaimana properties membantu melindungi data tanpa mengorbankan kemudahan penggunaan.

Jenis-Jenis Properties

  1. Read-Write Property – punya get dan set. Bisa dibaca dan diubah.
  2. Read-Only Property – hanya punya get. Cocok untuk data yang harus tetap setelah dibuat.
  3. Write-Only Property – hanya punya set. Jarang dipakai, tapi berguna saat hanya perlu input.
  4. Auto-Implemented Property – property simpel tanpa logika tambahan. C# membuat field tersembunyi otomatis.

Contoh auto-implemented property:

public class Buku

{
    public string Judul { get; set; } = "Belajar C#";
}

Tanpa menulis field privat, C# otomatis menyiapkan bagian internalnya.

Contoh 2: Read-Only Property

Kadang ada data yang hanya boleh dibaca, misalnya ID mahasiswa yang diberi saat objek dibuat:

class Mahasiswa

{
    private readonly int id;
    public int ID
    {
        get { return id; }
    }

    public Mahasiswa(int id)
   {
        this.id = id;
    }
}

ID hanya punya get, sehingga nilainya tidak bisa diubah setelah objek dibuat. Ini membantu menjaga integritas data.

Studi Kasus: Properti Sederhana untuk Toko

Bayangkan aplikasi toko yang punya kelas Produk. Kita ingin:

  • Nama produk disimpan
  • Harga tidak boleh negatif

Ini contoh yang menggunakan properties untuk itu:

using System;

class Produk
{
    private string nama;
    private decimal harga;

    public string Nama
    {
        get { return nama; }
        set { nama = value; }
    }

    public decimal Harga
    {
       get { return harga; }
        set
        {
            if (value >= 0)
                harga = value;
            else
                Console.WriteLine("Harga tidak boleh negatif!");
        }
    }
}


class Program
{
    static void Main()
    {
        Produk barang = new Produk();
        barang.Nama = "Sepatu";
        barang.Harga = 250000; // Benar
        barang.Harga = -10;    // Tidak diterima

        Console.WriteLine($"Produk: {barang.Nama}, Harga: {barang.Harga}");
    }

}

Dengan properties, aturan bisnis seperti “harga tidak boleh negatif” bisa ditanam langsung dalam kelas sehingga tidak perlu dicek di luar program. Ini membuat kode lebih aman dan bersih.

Kesimpulan

Properties adalah fitur penting di C# untuk:

  • Mengontrol akses terhadap field privat kelas
  • Menyediakan fitur baca/tulis/data validasi dalam bentuk yang bersih
  • Membantu menerapkan prinsip enkapsulasi dalam OOP

Properties itu seperti “variabel pintar”: terlihat sederhana saat dipakai, tetapi punya aturan di balik layar. Ini menjadikannya alat yang sangat berguna saat membangun aplikasi yang kuat dan mudah dirawat di C#.

- Advertisement -

Recent Posts