Properti pada Class dalam Bahasa Pemrograman C#
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 fieldmerek
. - Setter (
set
) → Mengatur nilaimerek
denganvalue
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!