Panduan Lengkap Tentang Properti di C# untuk Pemula

Hai teman, bakal bintang pemrograman! Hari ini, kita akan memulai perjalanan menarik ke dunia Properti di C#. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda, dan kita akan mengatasi topik ini secara bertahap. Pada akhir panduan ini, Anda akan menjadi ahli Properti!

C# - Properties

Apa Itu Properti?

Sebelum kita masuk ke detil, bayangkan Anda memiliki sepotong tabungan. Anda dapat memasukkan uang dan mengambil uang, tetapi Anda tidak dapat mengakses secara langsung bagian dalam tabungan. Properti di C# bekerja sama seperti itu - mereka menyediakan cara untuk mengakses dan mengubah nilai field privat dalam kelas, sambil tetap menjaga kontrol bagaimana akses itu terjadi.

Mengapa Menggunakan Properti?

  1. Enkapsulasi: Mereka membantu menyembunyikan kerja internal kelas.
  2. Flexibilitas: Anda dapat mengubah bagaimana data disimpan tanpa mengubah bagaimana data diakses.
  3. Validasi: Anda dapat menambah pemeriksaan untuk memastikan data valid sebelum diatur.

Sekarang, mari kita meraba-raba beberapa kode!

Sintaks Properti Dasar

Ini adalah bentuk paling sederhana dari properti:

public class Person
{
private string name;

public string Name
{
get { return name; }
set { name = value; }
}
}

Dalam contoh ini, Name adalah properti kami. Itu terkait dengan field privat name. Bagian get dan set disebut penyesuai akses.

Penyesuai Akses

Properti memiliki dua penyesuai akses utama:

  1. get: Mengambil nilai properti
  2. set: Menetapkan nilai baru ke properti

mari kitauraikan properti Name kita:

public string Name
{
get { return name; } // Ini adalah getter
set { name = value; } // Ini adalah setter
}

Ketika Anda mengakses properti (misalnya, person.Name), getter dipanggil. Ketika Anda menetapkan nilai (misalnya, person.Name = "John"), setter dipanggil.

Properti Otomatis

C# memiliki singkatan untuk properti sederhana yang tidak memerlukan logika khusus:

public class Person
{
public string Name { get; set; }
}

Ini menciptakan properti Name dengan field pendukung tersembunyi yang dikelola oleh C# untuk Anda. Itu seperti magi!

Properti Dengan Logika

Sekarang, mari kita tambahkan sedikit keanehan ke properti kita:

public class BankAccount
{
private decimal balance;

public decimal Balance
{
get { return balance; }
set
{
if (value < 0)
{
throw new ArgumentException("Balance cannot be negative");
}
balance = value;
}
}
}

Di sini, kita memastikan bahwa saldo tidak bisa negatif. Jika seseorang mencoba menetapkan saldo negatif, kita melempar sebuah pengecualian. Itu seperti memiliki penjaga bagi tabungan Anda!

Properti Baca-Saja dan Menulis-Saja

kadang-kadang, Anda mungkin ingin membatasi akses ke properti Anda:

public class SecretAgent
{
private string codeName = "007";

// Properti baca-saja
public string CodeName
{
get { return codeName; }
}

// Properti menulis-saja
public string Mission
{
set { Console.WriteLine($"New mission: {value}"); }
}
}

James Bond pasti akan menyetujui level kerahasiaan ini!

Properti Dengan Eksripsi

Untuk properti sederhana, C# 6.0 memperkenalkan sintaks yang lebih ringkas:

public class Circle
{
public double Radius { get; set; }

// Properti baca-saja menggunakan tubuh ekspresi
public double Area => Math.PI * Radius * Radius;
}

Sintaks => adalah seperti mengatakan "properti ini ditentukan oleh ekspresi berikut". Itu pendek, manis, dan matematis!

Properti Abstrak

Dalam kelas abstrak, Anda dapat menetapkan properti abstrak yang kelas turunan harus implementasikan:

public abstract class Shape
{
public abstract double Area { get; }
}

public class Square : Shape
{
public double Side { get; set; }

public override double Area => Side * Side;
}

Itu seperti membuat blueprint untuk properti yang kelas "anak" Anda harus mengisi.

Tabel Metode Properti

Ini adalah tabel metode terkait properti:

Metode Deskripsi Contoh
get Mengambil nilai properti get { return name; }
set Menetapkan nilai properti set { name = value; }
init Menetapkan nilai properti hanya saat inisialisasi objek public string Name { get; init; }
value Representasi nilai yang ditetapkan dalam setter set { if (value != null) name = value; }

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia Properti di C#. Ingat, properti adalah seperti butler yang terlatih bagi field privat kelas Anda - mereka mengelola akses, menegakkan aturan, dan menjaga kebersihan.

Sebagai Anda terus melanjutkan perjalanan pemrograman Anda, Anda akan menemukan properti muncul di mana-mana. Mereka adalah bagian penting dari menulis kode C# yang bersih dan dapat dipelihara. Terus latih, dan segera Anda akan menjadi ahli Properti!

Selamat pemrograman, dan semoga properti Anda selalu terpelihara dengan baik! ??‍??‍?

Credits: Image by storyset