Panduan untuk Pemula: Event di C

Halo, para pemula dalam dunia pemrograman! Hari ini, kita akan mendalaminya dunia menarik dari event C#. Sebagai guru komputer di lingkungan yang ramah, saya di sini untuk memandu Anda dalam perjalanan ini, langkah demi langkah. Jangan khawatir jika Anda baru saja memulai pemrograman – kita akan mulai dari dasar dan kemudian maju. Mari kita mulai!

C# - Events

Apa Itu Event?

Bayangkan Anda di sebuah pesta dan menunggu teman Anda datang. Ketika mereka datang, Anda ingin menyapa mereka. Di C#, event bekerja sama seperti itu – mereka adalah cara bagi objek untuk memberitahu objek lain saat sesuatu yang menarik terjadi. Itu seperti membuat "sistem notifikasi" di dalam kode Anda.

Analogi Dunia Nyata

Pikirkan event seperti sebuah bel untuk pintu. Ketika seseorang menekan bel (event), Anda (penangan event) merespon dengan pergi ke pintu. Bel tidak tahu atau peduli siapa yang merespon – itu hanya mengumumkan bahwa ada seseorang di depan pintu.

Menggunakan Delegates Dengan Event

Sebelum kita mendalami event, kita perlu memahami delegates. Jangan khawatir; mereka tidak sebanyak yang Anda pikirkan!

Apa Itu Delegates?

Delegates adalah seperti middlemen di C#. Mereka menyimpan referensi ke method (fungsi) dan dapat memanggil method tersebut saat diperlukan. Pikirkan delegate sebagai sebuah kartu bisnis yang canggih yang tidak hanya memiliki informasi kontak tetapi juga dapat membuat panggilan untuk Anda!

mari lihat contoh delegate sederhana:

public delegate void SimpleDelegate(string message);

class Program
{
static void Main(string[] args)
{
SimpleDelegate d = new SimpleDelegate(ShowMessage);
d("Hello, Delegates!");
}

static void ShowMessage(string message)
{
Console.WriteLine(message);
}
}

Dalam contoh ini, SimpleDelegate adalah jenis delegate kita. Kita membuat instance dari itu (d) dan menghubungkannya dengan method ShowMessage. Ketika kita memanggil d("Hello, Delegates!"), itu sebenarnya memanggil ShowMessage("Hello, Delegates!").

Mendeklarasikan Event

Sekarang kita telah memahami delegates, mari lihat bagaimana event bekerja. Event biasanya dideklarasikan menggunakan delegates. Ini adalah sintaks dasar:

public event DelegateType EventName;

mari buat contoh yang lebih praktis. Bayangkan kita sedang membuat aplikasi banking sederhana:

public class BankAccount
{
private decimal balance;
public delegate void BalanceChangedEventHandler(decimal newBalance);
public event BalanceChangedEventHandler BalanceChanged;

public decimal Balance
{
get { return balance; }
set
{
balance = value;
OnBalanceChanged(balance);
}
}

protected virtual void OnBalanceChanged(decimal newBalance)
{
BalanceChanged?.Invoke(newBalance);
}
}

Dalam contoh ini, kita membuat kelas BankAccount dengan event BalanceChanged. Setiap kali saldo berubah, event ini akan diterikan.

Contoh: Menggabungkan Segala Hal

mari lihat bagaimana kita dapat menggunakan kelas BankAccount beserta eventnya:

class Program
{
static void Main(string[] args)
{
BankAccount account = new BankAccount();
account.BalanceChanged += Account_BalanceChanged;

account.Balance = 1000;
account.Balance = 2000;
account.Balance = 500;
}

private static void Account_BalanceChanged(decimal newBalance)
{
Console.WriteLine($"Saldo baru Anda adalah: ${newBalance}");
}
}

Ketika Anda menjalankan program ini, Anda akan melihat:

Saldo baru Anda adalah: $1000
Saldo baru Anda adalah: $2000
Saldo baru Anda adalah: $500

Memecahkan Hal Itu

  1. Kita membuat objek BankAccount.
  2. Kita berlangganan event BalanceChanged menggunakan operator +=.
  3. Kita mengubah saldo tiga kali.
  4. Setiap kali saldo berubah, method Account_BalanceChanged secara otomatis dipanggil.

Ini adalah keajaiban event! Kelas BankAccount tidak perlu tahu siapa yang mendengarkan perubahan. Itu hanya mengumumkan perubahan, dan siapa pun yang tertarik dapat mendengarkan dan merespon.

Pola Event Umum

Berikut adalah beberapa pola umum yang Anda akan lihat dengan event di C#:

Pola Deskripsi Contoh
EventHandler Pola event standar public event EventHandler MyEvent;
Custom EventArgs Untuk mengirimkan data khusus public event EventHandler<CustomEventArgs> MyEvent;
Event Accessor Untuk mengontrol akses event public event EventHandler MyEvent { add { ... } remove { ... } }

Kesimpulan

Event di C# adalah cara yang kuat untuk membuat aplikasi yang longgar dan responsif. Mereka memungkinkan objek untuk berkomunikasi tanpa perlu mengetahui rincian satu sama lain, sama seperti stasiun radio memancarkan ke siapa pun yang mendengarkan.

Ingat, latihan membuat sempurna! Cobalah membuat kelas Anda sendiri dengan event dan eksperimen dengan berbagai skenario. Sebelum Anda tahu, Anda akan menjadi ahli event, mengatur simfoni objek di dalam aplikasi C# Anda!

Selamat coding, para pemrogram masa depan! ??

Credits: Image by storyset