Properti pada Class dalam Bahasa Pemrograman C#

Properti pada Class dalam Bahasa Pemrograman C#
Photo by Christin Hume / Unsplash

Dalam pemrograman berorientasi objek (OOP) di C#, properti digunakan untuk mengontrol akses terhadap atribut dalam class. Properti memungkinkan kita membaca, menulis, dan memvalidasi data dengan cara yang lebih fleksibel dibandingkan dengan penggunaan field langsung.

Artikel ini akan membahas apa itu properti dalam C#, bagaimana cara menggunakannya, serta contoh implementasi dalam berbagai skenario pemrograman.

1. Apa Itu Properti dalam C#?

Properti adalah anggota dalam class yang digunakan untuk mengakses dan memanipulasi field (variabel) secara aman. Properti bertindak sebagai perantara antara data pribadi dalam class dan dunia luar.

Keuntungan Menggunakan Properti

✅ Memungkinkan enkapsulasi dengan menyembunyikan data secara langsung.
✅ Dapat melakukan validasi sebelum nilai disimpan.
✅ Membantu menjaga integritas data dalam object.
✅ Bisa bersifat hanya-baca (read-only) atau hanya-tulis (write-only).

2. Properti Sederhana dalam C#

Properti dalam C# biasanya memiliki getter dan setter, yang digunakan untuk membaca dan menulis nilai dari field.

class Mobil {
    private string merek; // Field private

    public string Merek { 
        get { return merek; } // Getter
        set { merek = value; } // Setter
    }
}

Cara Menggunakan Properti

Mobil mobil1 = new Mobil();
mobil1.Merek = "Toyota"; // Menggunakan setter
Console.WriteLine(mobil1.Merek); // Menggunakan getter

Output:

Toyota

Penjelasan:

  • Getter (get) → Mengembalikan nilai field merek.
  • Setter (set) → Mengatur nilai merek dengan value yang diberikan.

3. Properti dengan Validasi Data

Kita bisa menambahkan validasi di dalam setter untuk memastikan nilai yang diberikan memenuhi aturan tertentu.

class Produk {
    private double harga;

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

Cara Menggunakan

Produk p = new Produk();
p.Harga = -5000; // Output: Harga tidak boleh negatif!
p.Harga = 10000; 
Console.WriteLine("Harga produk: " + p.Harga);

Output:

Harga tidak boleh negatif!
Harga produk: 10000

Penjelasan:

  • Setter mengecek apakah value < 0. Jika iya, pesan error ditampilkan.
  • Jika nilainya valid, maka nilai harga diperbarui.

4. Properti Hanya-Baca (Read-Only)

Kita bisa membuat properti yang hanya bisa dibaca tanpa bisa diubah setelah inisialisasi.

class Pengguna {
    private string nama;
    public Pengguna(string nama) {
        this.nama = nama;
    }

    public string Nama {
        get { return nama; } // Hanya memiliki getter
    }
}

Cara Menggunakan

Pengguna user = new Pengguna("Budi");
Console.WriteLine(user.Nama); // Bisa dibaca
// user.Nama = "Andi"; // Error! Tidak bisa diubah

Output:

Budi

Penjelasan:

  • Properti Nama hanya memiliki getter, sehingga tidak bisa diubah setelah object dibuat.

5. Properti Auto-Implemented (Sederhana)

C# menyediakan cara lebih ringkas untuk mendeklarasikan properti menggunakan auto-implemented properties.

class Mahasiswa {
    public string Nama { get; set; } // Properti otomatis
}

Cara Menggunakan

Mahasiswa mhs = new Mahasiswa();
mhs.Nama = "Aldo";
Console.WriteLine(mhs.Nama);

Output:

Aldo

Penjelasan:

  • C# akan secara otomatis membuat field privat di belakang layar untuk menyimpan nilai properti.

6. Properti Read-Only dengan Auto-Implemented Property

Jika properti hanya boleh diisi saat object dibuat, kita bisa menggunakan get tanpa set.

class Karyawan {
    public string Nama { get; }

    public Karyawan(string nama) {
        Nama = nama;
    }
}

Cara Menggunakan

Karyawan k = new Karyawan("Siti");
Console.WriteLine(k.Nama);
// k.Nama = "Dewi"; // Error! Tidak bisa diubah

Output:

Siti

7. Kapan Menggunakan Properti?

Gunakan properti jika:

  • Perlu membatasi akses ke variabel class.
  • Ingin menambahkan validasi sebelum nilai diubah.
  • Membuat field hanya-baca atau hanya-tulis.
  • Menyederhanakan akses data tanpa harus membuat method getter dan setter secara manual.

Jangan gunakan properti jika:

  • Variabel hanya digunakan dalam class dan tidak perlu diakses dari luar.

8. Kesimpulan

  • Properti digunakan untuk mengelola akses ke atribut dalam class.
  • Properti bisa memiliki getter dan setter untuk membaca dan menulis data.
  • Bisa menambahkan validasi dalam setter untuk menjaga integritas data.
  • Auto-implemented properties membuat deklarasi lebih sederhana.
  • Properti read-only digunakan untuk data yang tidak boleh diubah setelah inisialisasi.

Dengan memahami properti dalam C#, Anda dapat mengembangkan kode yang lebih aman, modular, dan mudah dikelola!

Read more