Menambahkan UserControl di C# Winforms Agar Aplikasi Kamu Lebih User-Friendly

Padli Nurohman 20 April 2018

Menambahkan UserControl di C# Winforms Agar Aplikasi Kamu Lebih User-Friendly

Hallo apa kabar sobat Codepolitan?

Sebelumnya, saya ingin bertanya kepada sobat setia Codepolitan. Apakah sobat pernah, atau setidaknya mencoba membuat program aplikasi seperti Kasir, Perpustakaan, atau sejenisnya menggunakan C# Windows Forms Application di Visual Studio? Jika jawabannya pernah, berarti tulisan ini akan sangat berguna sekali untuk sobat yang sedang membuat aplikasi, atau yang sedang mengembangkan aplikasinya menggunakan C# Windows Forms Application.

Baik sobat, sekarang beri saya waktu untuk flashback ke satu tahun yang lalu dimana saat itu saya memiliki tugas besar ujian akhir semester (UAS) di mata kuliah Pemograman Terstruktur. Bpk. Dosen meminta kami untuk membuat program aplikasi C# Winforms yang memiliki hubungan langsung dengan DBMS (Database Management System). Program aplikasi yang saya buat saat itu adalah program aplikasi Inventory yang menampilkan kelompok data barang masuk, keluar, serta transaksi pada menubar. Penampakan aplikasinya kurang lebih seperti gambar berikut:

Aplikasi Inventory

Disini kita tidak membicarakan isi database nya ya sobat, tapi lebih ke User Interface (UI). Kalau kita amati pada aplikasi saya, terlihat tidak masuk akal ya. Coba lihat di bilah kiri pada panel menu, tidak sesuai sama tema aplikasi sama sekali. Masa temanya inventory, ikonnya Github kan ngga cocok (kalau kata bpk. dosen kalkulus saya Dr.Irwanto ). Begitu juga dengan MDI form (child form) yang di sisipkan di kiri panel, terlihat kurang sesuai. Belum lagi, jika sobat tahu, aplikasi ini akan memunculkan beberapa form seperti pop-up ketika dipanggil di masing-masing menu, yang mungkin penggunaan formnya tidak wajar. Coba kita tengok ke aplikasi teman saya (yang saya dapatkan gambarnya dari Google Images):

Inventory UI

Bagaimana sobat? mungkin sekarang terlihat masuk akal ya. Terlihat UI dan elegan sekali, seperti tidak ada tandingannya, apalagi jika dibandingkan sama yang diatasnya. Meskipun ini masih design menggunakan Photoshop, tapi ini bisa menjadi benar-benar aplikasi, sobat. Lalu pertanyaannya, bagaimana? membuat aplikasi yang terlihat User-Friendly seperti yang diatas (bukan yang diatasnya lagi)?

UserControl

Benar sobat, UserControl. UserControl merupakan bagian .NET yang berpengaruh besar pada antarmuka pengguna. Coba sejenak kita baca definisi singkat dari MSDN yang menjelaskan UserControl:

Overview of User Controls

Microsoft® .NET controls are all inherited from a common base class called UserControl. This class has all the basic functionality for a graphical control that will be used on a Windows Form. All of the built-in .NET controls inherit from this same base class. You can inherit from this same base class as well, and create your own controls. When you inherit from the UserControl class, you will be automatically supplied with certain properties and events.

Kalau malas baca dalam kalimat bahasa Inggris, saya coba terjemahkan ke dalam bahasa Kita:

Ikhtisar Kontrol Pengguna

Kontrol Microsoft® .NET semuanya diwarisi dari kelas basis umum yang disebut UserControl. Formulir ini memiliki fungsi dasar untuk kontrol grafis yang akan digunakan pada Windows Form. Semua built-in. NET kontrol mewarisi dari kelas dasar yang sama ini. Anda dapat mewarisi dari kelas dasar yang sama ini juga, dan membuat kontrol Anda sendiri. Bila Anda mewarisi dari kelas UserControl, Anda akan secara otomatis disertakan dengan properti dan acara tertentu.

Saya yakin 99% sobat belum mudeng apa maksudnya :hehehe. Tidak apa-apa sobat, kita akan mengetahuinya bersama-sama. Jadi begini, dari pengalaman saya menggunakan UserControl, itu seperti kita menambahkan atau menyeret Component Panel dari ToolBox Winforms. Kenapa demikian, karena memang bentuknya mirip seperti panel (100% ngga bohong). Pasti ada perbedaannya dong ? Ada, perbedaannya terletak pada bagian (.cs) nya. Maksudnya, UserControl memiliki kelas (class), sedangkan Panel tidak.

usercontrol

Lalu keutungannya apa selain definisi dari UserControl itu sendiri?

Keuntungannya yang kita tahu lebih User-Friendly sobat. Coba kita bayangkan, jika kita masih menggunakan banyak Form yang menampilkan menu-menu di aplikasi kita, misalnya 3 menu deh dengan konsep mungkin seperti ini:

ketika *user* klik menu1, maka form2 visible = true dan form1 visible = false,
ketika *user* klik menu2 (yang ada di form2), maka form2 visible = false dan form3 
visible = true, 
ketika *user* klik menu2 (yang ada di form3), maka form3 visible = false dan form4 
visible = true, 
ketika *user* mau kembali ke menu1 yang ada di form1...? 

Membingungkan ya sobat? konsep seperti ini masih sering saya jumpai di ade-ade maba Teknik Informatika. Tapi tidak apa-apa, toh saya juga dulu seperti itu :hehe. Nah, jika sobat menggunakan UserControl konsepnya tidak akan lagi seruet itu dan ngga bakalan membingungkan diri sendiri. Karena UserControl ini seperti panel, maka tidak ada lagi konsep visible - visible-an, kita cukup tempelkan ke area Form1 dengan menyeretnya dari ToolBox atau me-load nya lewat function. Hebatnya lagi, kita bisa mengkontrol komponen-komponen lainnya yang kita tambahkan pada UserControl yang kita buat. Contoh kasusnya mungkin aplikasi garapan mahasiswa ini (bukan sombong ya sobat, cuma untuk asset):

T3
T3

Pada aplikasi diatas saya hanya menggunakan satu Form, yaitu form1, dan untuk menampilkan konten lainnya saya menggunakan UserControl. Disini kita tidak mengenal konsep seperti yang sudah saya sebutkan diatas tadi. Semua UserControl dikontrol penuh oleh form1 dan konten yang terdapat pada UserControl, itu sudah menjadi urusannya; usercontrol. Keuntungan lain yang bisa sobat dapatkan jika menggunakan UserControl adalah:

  • Code reusability
  • Hemat form
  • Hemat memory
  • Mudah dalam menemukan error

Kesimpulan

Pada intinya, penggunaan UserControl dapat membuat user atau pengguna nyaman selain kita sendiri. Teratur dan terkonsep, itu kelebihan yang menonjol dimiliki UserControl. Tapi jangan semata-mata kalau pada aplikasi kita harus semuannya menggunakan UserControl, tidak! Pasti ada dimana kita harus menambahkan satu atau dua form lagi pada aplikasi kita. Semua itu bergantung lagi ke Aplikasi yang akan di bangun.

Baik, rasanya sudah cukup panjang kita berbincang :) Terima kasih banyak untuk Codepolitan yang sudah menyediakan tempat berbaginya orang-orang jenius. Dan tentu, terima kasih juga untuk sobat yang sudah membaca artikel ini. Semoga artikel ini bisa menjadi inpirasi bersama untuk membangun aplikasi yang lebih keren lagi, lebih hebat lagi.

Jika sobat tertarik untuk melihat beberapa cuplikan video menarik seputar pemograman C#, sobat bisa mengunjungi saluran atau Channel YouTube saya disini: Padli Nurohman, atau apabila sobat juga tertarik untuk melihat tutorial dalam cuplikan video mengenai materi ini, sobat bisa tonton disini: UserControl Tutorial.