Object Oriented Programming in C# (Part1)

Pengantar Object Oriented

Aplikasi berbasis windows dan web adalah program yang sangat kompleks yang menyajikan tampilan menarik kepada user dan menawarkan user interface yang kompleks dengan tombol, dropdown, popup menu, toolbox, dan masih banyak komponen yang lain. Dibelakang user interface tersebut masih ada hubungan bussiness prosess yang kompleks seperti misal hubungan antara Product, Customer, dan Order yang melibatkan banyak logika dan pengolahan data.

Untuk menangani berbagai kompleksitas yang terjadi maka programmer mengembangkan teknik yang diberi nama “Objcet Oriented Programming”, dengan tujuan yang sederhana yaitu mengatur kompleksitas dengan memodelkan aspek esensial yang ada. Jika model yang dikembangkan semakin mendekati problem yang akan dipecahkan maka semakin mudah pula persoalan tersebut dapat dimengerti sehingga program lebih mudah ditulis dan di-maintain.

Problem yang akan dipecahkan dan semua informasi yang berhubungan dengan problem tersebut sering disebut sebagai problem domain. Misal jika anda ingin membuat program untuk keperluan Inventory dan Sales di suatu perusahaan maka problem domainnya adalah semua informasi tentang perusahaan tersebut yang berhubungan dengan pengaturan stok inventory, cara penjualan, pemasukan penjualan dan data lainnya. Manaager penjualan dan Manager bagian gudang akan menjadi problem domain expert yang dapat membantu anda dalam menyelesaikan masalah.

Design dari Object Oriented harus berisi objek-objek yang ada pada problem domain tersebut. Sebagai contoh jika problem domainnya adalah mesin ATM maka objek didalamnya seharusnya adalah customer, rekening, dll.

Pada level pertama untuk mendesain anda harus berpikir interaksi antar objek-objek tersebut, dilihat dari status, kapabilitas, dan tanggung jawabnya.

  • Status : programmer harus mengacu pada kondisi status objek tersebut. Sebagai contoh anda mempunyai objek untuk merepresentasikan customer maka status dari customernya adalah customer address, phone number, email, sejarah pembelian customer, dsb.
  • Kapabilitas / Hak : customer dapat memiliki kapabilitas tapi programmer harus memilih yang berhubungan dengan problem domainnya diantaranya untuk membuat rekening, menarik tabungan, menyimpan tabungan, transfer dsb.
  • Tanggung Jawab: bersama dengan kapabilitas /hak ada pula tanggung jawab. Customer mempunyai tanggung jawab untuk mengisi informasi alamat tempat tinggalnya.

Class vs Object

Apa sich bedanya?. Jika anda ingin membangun rumah Class adalah blueprint / gambar (berisi spesifikasi lengkap dari rumah yang akan dibuat, ukuran, jumlah, dll).
Sedangkan object adalah bentuk fisik / rumah yang dibangun berdasarkan blueprint / class yang sudah ada, biasa disebut instan class.

image

Mendefinisikan Class

Class di C# dapat terdiri dari kumpulan variable (field), property dan method. Cara untuk menggunakan class adalah dengan membuat instan class-nya. Untuk menjalankan class maka harus ada satu method main pada class tersebut. contoh pendeklarasian class di C# sebagai berikut:

   1: public class Time
   2:     {
   3:         // private variables
   4:         private int year;
   5:         private int month;
   6:         private int date;
   7:         private int hour;
   8:         private int minute;
   9:         private int second;
  10:  
  11:         // public methods
  12:         public void DisplayCurrentTime()
  13:         {
  14:             Console.WriteLine("Menampilkan Waktu..");
  15:         }
  16:     }
  17:  
  18:     class Program
  19:     {
  20:         static void Main(string[] args)
  21:         {
  22:             Time timeObject = new Time(); //membuat instan class
  23:             timeObject.DisplayCurrentTime();
  24:         }
  25:     }

 

Access Modifiers

Access Modifiers digunakan untuk menentukan hak akses dari class dan method, adapun access modifier yang ada pada C# sebagai berikut:

image

Continue reading

Dynamic Image Pada Crystal Report

Pada artikel ini saya akan membahas bagaimana caranya untuk menampilkan dynamic image pada crystal report dengan ASP.NET. Pada program yang saya buat, file gambar saya simpan pada folder di web servernya dengan pertimbangan performance, jika disimpan di database maka performance akan berkurang karena record dalam database menjadi besar, maka saya menyimpan datanya pada folder kemudian menyimpan nama filenya di database.

Adapun design database yang dibuat:

image

Data gambar disimpan pada folder secimages

image

Kemudian untuk mengambil data dari database untuk ditampilkan pada crystal report saya menggunakan cara menampungnya dulu kedalam object dataset karena jika mengambil langsung dari database akan menyulitkan jika aplikasi dipindah ke komp server lain (harus merubah computer name pada program).

Maka buat datasetnya dulu untuk datasource pada crystal report

image

Tambahkan satu field baru pada dataset section yaitu image_stream untuk menampung gambar yang akan kita tampilkan kedalam crystal report, kemudian ubah property DataType pada field image_stream menjadi System.Byte[];

image

Kemudian pada halaman report-nya (halaman yang ada komponen CrystalReportSource dan CrystalReportViewer) tambahkan kode sebagai berikut:

Continue reading