Keyword Readonly pada Bahasa Pemrograman C#
Dalam C#, keyword readonly
digunakan untuk mendeklarasikan field yang nilainya hanya dapat diinisialisasi saat deklarasi atau di dalam constructor. Field yang diberi modifier readonly
tidak dapat diubah setelah object dibuat, sehingga memberikan perlindungan terhadap perubahan nilai secara tidak sengaja.
Artikel ini akan membahas apa itu keyword readonly
dalam C#, bagaimana cara menggunakannya, serta contoh implementasinya dalam berbagai skenario pemrograman.
1. Apa Itu Keyword readonly
dalam C#?
Keyword readonly
digunakan untuk membuat field yang hanya dapat diberi nilai saat inisialisasi atau dalam constructor. Ini berbeda dari const
, yang harus diinisialisasi saat deklarasi dan tidak bisa diubah dalam constructor.
Sintaks Dasar readonly
class Contoh {
public readonly int Nilai;
public Contoh(int nilai) {
Nilai = nilai; // Hanya bisa diubah di constructor
}
}
Perbedaan readonly
dan const
Perbedaan | readonly |
const |
---|---|---|
Nilai dapat diinisialisasi di constructor | ✅ Ya | ❌ Tidak |
Nilai tetap setelah object dibuat | ✅ Ya | ✅ Ya |
Hanya bisa dideklarasikan di dalam class | ✅ Ya | ❌ Tidak (harus bersifat static ) |
2. Contoh Penggunaan readonly
dalam C#
2.1 Menggunakan readonly
dengan Constructor
using System;
class Kendaraan {
public readonly string Merek;
public readonly int Tahun;
public Kendaraan(string merek, int tahun) {
Merek = merek;
Tahun = tahun;
}
}
class Program {
static void Main() {
Kendaraan mobil1 = new Kendaraan("Toyota", 2022);
Console.WriteLine("Mobil: " + mobil1.Merek + " Tahun: " + mobil1.Tahun);
// mobil1.Merek = "Honda"; // Error! Tidak bisa diubah setelah object dibuat
}
}
Output:
Mobil: Toyota Tahun: 2022
Penjelasan:
readonly
memastikan bahwaMerek
danTahun
hanya dapat diatur di constructor.- Setelah object dibuat, nilainya tidak dapat diubah.
2.2 Menggunakan readonly
dengan Inisialisasi Langsung
class Konfigurasi {
public readonly string Versi = "1.0"; // Bisa diinisialisasi langsung
}
class Program {
static void Main() {
Konfigurasi config = new Konfigurasi();
Console.WriteLine("Versi Aplikasi: " + config.Versi);
}
}
Output:
Versi Aplikasi: 1.0
Penjelasan:
readonly
bisa langsung diinisialisasi saat deklarasi.- Jika diinisialisasi saat deklarasi, nilainya tetap dan tidak bisa diubah setelah object dibuat.
3. Menggunakan readonly
dengan Array atau Reference Type
Walaupun field readonly
tidak bisa diubah, isi dari array atau objek reference type masih bisa diubah.
class Data {
public readonly int[] Angka = { 1, 2, 3 };
}
class Program {
static void Main() {
Data data = new Data();
// data.Angka = new int[] { 4, 5, 6 }; // Error! Tidak bisa mengganti reference array
data.Angka[0] = 99; // Bisa! Mengubah isi array diperbolehkan
Console.WriteLine(string.Join(", ", data.Angka));
}
}
Output:
99, 2, 3
Penjelasan:
- Field
readonly
tidak bisa diberikan reference baru, tetapi isi array masih bisa dimodifikasi. - Jika ingin benar-benar melindungi data, gunakan immutable collection atau const.
4. Kapan Harus Menggunakan readonly
?
✅ Gunakan readonly
jika:
- Nilai hanya perlu diatur sekali, tetapi tidak bisa dipastikan saat deklarasi.
- Nilai bisa ditentukan saat object dibuat, tetapi tidak boleh diubah setelahnya.
- Perlu melindungi data agar tidak dimodifikasi setelah inisialisasi.
❌ Jangan gunakan readonly
jika:
- Nilai tidak berubah sama sekali (gunakan
const
jika memungkinkan). - Perlu diubah setelah object dibuat (gunakan field biasa).
5. Kesimpulan
- Keyword
readonly
digunakan untuk membuat field yang hanya bisa diinisialisasi dalam constructor atau saat deklarasi. - Berbeda dengan
const
,readonly
memungkinkan nilai diatur dalam constructor. - Readonly bisa digunakan untuk field reference type, tetapi isi reference masih bisa diubah.
- Berguna untuk menjaga nilai tetap aman setelah object dibuat, tetapi tetap fleksibel dalam inisialisasi.
Dengan memahami keyword readonly
dalam C#, Anda dapat membuat program yang lebih aman, efisien, dan mudah dikelola!