0Pricing
C# Academy · Pelajaran

Properti yang Diimplementasikan Otomatis

Deklarasikan properti dengan sintaks otomatis yang ringkas.

Properti yang Diimplementasikan Otomatis adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Apa Itu Properti?

Properti tampak seperti bidang dari luar, tetapi didukung oleh metode aksesor (get dan set). Properti memungkinkan Anda mengekspos data sekaligus tetap mengendalikan cara data tersebut dibaca dan ditulis.

using System;

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

    static void Main()
    {
        var p = new Program();
        p.Name = "Coddy";
        Console.WriteLine(p.Name);
    }
}

Sintaks Implementasi Otomatis

Properti yang diimplementasikan secara otomatis menggunakan { get; set; }. Kompilator membuat bidang pendukung tersembunyi untuk Anda, sehingga Anda tidak perlu menulisnya sendiri.

using System;

class Person
{
    public string FirstName { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        var person = new Person { FirstName = "Ada", Age = 36 };
        Console.WriteLine(person.FirstName + " is " + person.Age);
    }
}

Mengapa Menggunakan Properti, Bukan Bidang?

Properti publik memberi Anda API yang stabil. Nantinya Anda dapat menambahkan validasi atau mengubah penyimpanan tanpa merusak kode pemanggil. Bidang publik tidak dapat melakukan hal itu.

using System;

class Account
{
    public decimal Balance { get; set; }
}

class Program
{
    static void Main()
    {
        var a = new Account();
        a.Balance = 100.50m;
        Console.WriteLine("Balance: " + a.Balance);
    }
}

Properti Otomatis Hanya-Baca

Hilangkan set untuk menjadikan properti hanya-baca. Properti tersebut hanya dapat diberi nilai di konstruktor atau melalui penginisialisasi, sehingga nilainya secara bawaan tidak dapat diubah.

using System;

class Circle
{
    public double Radius { get; }

    public Circle(double radius)
    {
        Radius = radius;
    }
}

class Program
{
    static void Main()
    {
        var c = new Circle(5.0);
        Console.WriteLine("Radius: " + c.Radius);
    }
}

Nilai Awal Properti

Anda dapat memberikan nilai awal pada properti otomatis dengan = value;. Ini dijalankan saat objek dibuat, sebelum isi konstruktor mana pun.

using System;

class Settings
{
    public bool DarkMode { get; set; } = true;
    public int Volume { get; set; } = 50;
}

class Program
{
    static void Main()
    {
        var s = new Settings();
        Console.WriteLine("DarkMode: " + s.DarkMode + ", Volume: " + s.Volume);
    }
}

Penyetel Privat

private set memungkinkan kelas mengubah nilai secara internal, sekaligus mencegah kode dari luar memodifikasinya. Ini merupakan pola enkapsulasi yang umum.

using System;

class Counter
{
    public int Count { get; private set; }

    public void Increment()
    {
        Count++;
    }
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.Increment();
        counter.Increment();
        Console.WriteLine("Count: " + counter.Count);
    }
}

Penyetel Hanya-Init

Aksesor init (C# 9+) memungkinkan pemberian nilai hanya selama inisialisasi objek. Setelah konstruksi selesai, nilainya terkunci.

using System;

class Product
{
    public string Name { get; init; }
    public decimal Price { get; init; }
}

class Program
{
    static void Main()
    {
        var p = new Product { Name = "Book", Price = 12.99m };
        Console.WriteLine(p.Name + ": " + p.Price);
    }
}

Properti dengan Tingkat Akses Berbeda

Properti mengikuti pengubah akses biasa. Anda dapat menggabungkan beberapa tingkat: pengambil publik dengan penyetel privat, atau properti yang sepenuhnya internal.

using System;

class User
{
    public string Id { get; private set; }

    public User(string id)
    {
        Id = id;
    }
}

class Program
{
    static void Main()
    {
        var u = new User("u-001");
        Console.WriteLine("User Id: " + u.Id);
    }
}

Properti Otomatis yang Tampak Terhitung

Properti otomatis menyimpan data; properti tersebut tidak melakukan perhitungan. Jika Anda memerlukan nilai hasil perhitungan, gunakan properti lengkap yang akan dibahas nanti. Untuk saat ini, anggap properti otomatis sebagai penyimpanan sederhana.

using System;

class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
}

class Program
{
    static void Main()
    {
        var r = new Rectangle { Width = 4, Height = 3 };
        double area = r.Width * r.Height;
        Console.WriteLine("Area: " + area);
    }
}

Memperbarui Properti Otomatis

Anda dapat membaca dan menetapkan ulang properti otomatis yang dapat disetel sebanyak yang Anda inginkan, sama seperti variabel.

using System;

class Player
{
    public int Score { get; set; }
}

class Program
{
    static void Main()
    {
        var player = new Player();
        player.Score = 10;
        player.Score += 5;
        player.Score *= 2;
        Console.WriteLine("Score: " + player.Score);
    }
}

Menggabungkan Semuanya

Kelas model biasanya sebagian besar terdiri dari properti otomatis: ada yang dapat disetel, hanya dapat di-init, dan memiliki penyetel privat. Hal ini membuat kelas tetap ringkas dan jelas.

using System;

class BankAccount
{
    public string Owner { get; init; }
    public decimal Balance { get; private set; }

    public void Deposit(decimal amount)
    {
        Balance += amount;
    }
}

class Program
{
    static void Main()
    {
        var acct = new BankAccount { Owner = "Lin" };
        acct.Deposit(250m);
        Console.WriteLine(acct.Owner + ": " + acct.Balance);
    }
}

Uji Singkat

Ujilah pemahaman Anda tentang properti yang diimplementasikan secara otomatis.

Ringkasan

Anda telah mempelajari bahwa properti yang diimplementasikan secara otomatis menggunakan { get; set; } dengan bidang pendukung yang dibuat oleh kompilator. Variasinya mencakup { get; } hanya-baca, private set untuk perubahan yang terkendali, dan init untuk nilai yang hanya ditetapkan sekali. Properti ini merupakan cara bawaan untuk mengekspos data pada kelas.

using System;

class Demo
{
    public string A { get; set; } = "settable";
    public string B { get; } = "read-only";
    public string C { get; init; } = "init-only";
}

class Program
{
    static void Main()
    {
        var d = new Demo { C = "changed-at-init" };
        Console.WriteLine(d.A + ", " + d.B + ", " + d.C);
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Properti yang Diimplementasikan Otomatis” gratis?

Ya — teks lengkap “Properti yang Diimplementasikan Otomatis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Properti yang Diimplementasikan Otomatis”?

Deklarasikan properti dengan sintaks otomatis yang ringkas. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Properti yang Diimplementasikan Otomatis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Properti yang Diimplementasikan Otomatis
  2. Properti Lengkap dengan Field Pendukung
  3. Anggota Berbentuk Ekspresi
  4. Indexer
← Kembali ke C# Academy