Tricky Event-handler, cara membuat method event-handler dengan lebih efisien

Kali ini saya berbagi sedikit trik dalam penanganan event di pembuatan aplikasi. Saya sering menggunakan teknik ini jika saya menemui banyak Controller yang sejenis dan dapat dikatagorikan. Memang teknik ini bisa dikatakan bukan merupakan sesuatu yang krusial atau penting. Akan tetapi, dengan teknik ini, pihak pengembang akan lebih bisa lebih mengorganisasikan event yang dimaksud dan mengoordinasikan hubungan antar-event. Method event-handler bisa dibuat dengan lebih efisien. Inti dari teknik ini adalah bagaimana cara kita untuk membuat method event handler dengan lebih efisien dengan cara memanfaatkan properti lain dari controller – controller yang kita maksud.

Kalkulator Sederhana

Misalnya pada studi kasus pembuatan program Kalkulator sederhana seperti pada screenshot program di atas. Pastinya dalam pembuatan antar-muka Kalkulator terdapat banyak Controller Button. Entah itu merupakan button angka dari 0 – 1, button operator -,+,x,:, atau =, dan button – button pendukung lainnya. Agar lebih teratur, kita menamai button yang berfungsi sebagai operan diberi suffix ‘a’ sedangkan button berfungsi sebagai operator Biasanya kita sering menerapkan teknik pembuatan method event-handler satu – satu seperti pada potongan code berikut :

public partial class MainWindow : Window
{
 private void a1_Click(object sender, System.Windows.RoutedEventArgs e)
 {
 // TODO: Add event handler implementation here.
 }

 private void a2_Click(object sender, System.Windows.RoutedEventArgs e)
 {
 // TODO: Add event handler implementation here.
 }

 private void a3_Click(object sender, System.Windows.RoutedEventArgs e)
 {
 // TODO: Add event handler implementation here.
 }

 private void a4_Click(object sender, System.Windows.RoutedEventArgs e)
 {
 // TODO: Add event handler implementation here.
 }
}

Bisa dibayangkan betapa tidak efisiennya baris code yang digunakan. Selain itu betapa sulitnya untuk mengkoordinasi event – event click yang setipe. Belum lagi event pada operator – operator, pastinya jika menggunakan cara seperti itu, kita akan dibingungkan dengan alur program yang kita buat.

Solusi : Tricky Event-Handler Method

Tanpa kita sadari, sebenarnya kita sudah mengkatagorikan button – button tersebut dengan memberi nama controller yang terstruktur. Tinggal bagaimana cara memanfaatkan penggunaan nama controller itu sebagai, seakan – akan, nama variable / nilai tertentu yang kita operasikan lebih lanjut.

Berikut merupakan solusi dengan menggunakan tricky event-handler method :

  1. Pertama – tama, kita mengeset semua method event-handler click pada seluruh controller button dengan nama yang sama, yakni Button_Click Mengeset Name Event
  2. Pada baris code method Button_Click, implementasikan code berikut :
    private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
    {
    	//membuat sebuah variable button yang diberi nilai dari object sender
    	Button bt = sender as Button;
    	//var operand digunakan untuk menangkap nilai angka berapa yang ditekan
    	char operand;
    	//jika sender bernilai null atau bukan merupakan button, maka keluar
    	if(bt == null)
    		return;
    	//jika button yang ditekan merupakan button angka/operan, maka akan masuk
    	if(bt.Name.StartsWith("a"))
    	{
    		//operand didapat pada karakter setelah kode 'a'
    		operand = bt.Name[1];
    		//nilai operand ditampilkan di layar
    		TextBoxScreen.Text += operand;
    	}
    	//jika nama button berkodekan 'o', maka merupakan button operator
    	else if(bt.Name.StartsWith("o"))
    	{
    		//dispesifikasikan berdasarkan nama button
    		switch (bt.Name)
    		{
    			case "oplus" 	:
    				//agoritma penambahan diimplementasikan disini
    				break;
    			case "ominus" 	:
    				//agoritma pengurangan diimplementasikan disini
    				break;
    			case "ocorss" 	:
    				//agoritma perkalian diimplementasikan disini
    				break;
    			case "odiv" 	:
    				//agoritma pembagian diimplementasikan disini
    				break;
    			case "oequal" 	:
    				//agoritma sama dengan diimplementasikan disini
    				break;
    		}
    	}
    }
    
  3. Run dan lakukan penyesuaian code sesuai dengan kebutuhan

Nampak jelas perbandingannya, jika kita menggunakan trik ini, kita akan lebih mudah untuk mengorganisasi alur program yang kita buat. Selain itu, barisan code dari source code project kita semakin efisien. Ini baru diimplementasikan dalam program skala kecil, yakni kalkulator. Bayangkan jika program yang kita bangun merupakan program berskala menengah atau enterprise, pastinya dengan menggunakan cara ini, proses yang kita lakukan untuk membangun program bisa lebih terstruktur dan efisien.

Tinggalkan Jejak

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s