OOP dengan C# (Bagian 1)

Karena semester ini kebetulan saya sedang mengajar C# Programming di kampus, saya ingin share juga materi yang saya buat agar bisa berguna juga untuk teman-teman mahasiswa yang lain yang ingin belajar C# Programming.

Topik yang dibahas kali ini

  • Pengantar OOP
  • Class dan Object
  • C# Modifier
  • Konstruktor
  • Initilizer
  • "this" keyword
  • static dan instance member

 

Pengantar OOP

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 *** 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.


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 / object.

image 


Elemen Pada Class

Class pada C# terdiri dari :

· Instance Variable / Field

· Method

image

Method digunakan untuk merubah state pada field.

 

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 atau field
   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(); //memanggil method dalam class
  24:       }
  25: }

 

C# Modifier

C# memiliki beberapa modifier class yaitu:

image

 

Access Modifiers

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

image

 

Method Arguments

Method pada C# dapat memiliki banyak argumen dengan tipe data yang berbeda. Method juga dapat memiliki nama yang sama asal parameter / tipe datanya berbeda (Method Overloading).

   1: class MyClass {
   2:         public void SomeMethod(int firstParam, double secondParam) {
   3:             Console.WriteLine("Parameter 1 : {0} dan parameter 2 : {1}",
   4:                 firstParam, secondParam);
   5:         }
   6:  
   7:         //overload method
   8:         public void SomeMethod(int firstParam) {
   9:             Console.WriteLine("Parameter 1 : {0}", firstParam);
  10:         }
  11:  
  12:         public void SomeMethod(int firstParam, string secondParam) {
  13:             Console.WriteLine("Parameter 1 : {0} dan parameter 2 : {1}",
  14:                 firstParam, secondParam);
  15:         }
  16:     }
  17:  
  18:     class MethodArgumen {
  19:         static void Main(string[] args) {
  20:             MyClass m1 = new MyClass(); //membuat instan object
  21:             m1.SomeMethod(12, 1.25);
  22:             m1.SomeMethod(34);
  23:             m1.SomeMethod(12, "Hello");
  24:         }
  25:     }

 

Konstruktor

Konstruktor adalah method yang namanya sama dengan nama class-nya. Konstruktor digunakan untuk inisialisasi variabel ketika membuat instan class / objek baru. Sebenarnya setiap kali anda membuat instant class / objek baru maka konstruktor dijalankan. Jika anda tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong.

Konstruktor juga dapat di-overload (anda dapat membuat konstruktor lebih dari satu asal parameternya jumlahnya beda atau tipe datanya beda). Variabel dalam class harus diinisialisasi, nilai defaultnya adalah

image

 

   1: public class Time {
   2:         // private member variables
   3:         int Year;
   4:         int Month;
   5:         int Date;
   6:         int Hour;
   7:         int Minute;
   8:         int Second;
   9:  
  10:         // constructor
  11:         public Time(System.DateTime dt) {
  12:             Year = dt.Year;
  13:             Month = dt.Month;
  14:             Date = dt.Day;
  15:             Hour = dt.Hour;
  16:             Minute = dt.Minute;
  17:             Second = dt.Second;
  18:         }
  19:  
  20:         // public methods
  21:         public void DisplayCurrentTime() {
  22:             System.Console.WriteLine("{0}/{1}/{2} {3}:{4}:{5}",
  23:               Month, Date, Year, Hour, Minute, Second);
  24:         }
  25:         
  26:     }
  27:  
  28:     class LatKonstruktor {
  29:         public static void Main(string[] args) { 
  30:             DateTime currTime = DateTime.Now;
  31:             Time t = new Time(currTime); //memanggil constructor
  32:             t.DisplayCurrentTime();
  33:         }
  34:     }

 

Initializer

Pada C# anda bisa menginisialisasi variabel dalam class secara langsung tanpa harus mengisialisasi-nya lewat konstruktor.

   1: public class Time
   2: {
   3:        // private member variables
   4:        int year;
   5:        int month;
   6:        int date;
   7:        int hour;
   8:        int minute;
   9:        int second = 30; //initializer
  10: }

 

“This” Keyword

This keyword digunakan untuk mengakses instan class / objek itu sendiri, penggunaan keyword this diperlukan untuk membedakan pengaksesan class variabel dan method variabel yang mempunyai nama yang sama.

   1: public class Time {
   2: // private member variables, class variable
   3: int year;
   4: int month;
   5: int date;
   6: int hour;
   7: int minute;
   8: int second = 30;
   9:  
  10: public void SetTime(year, month, date, newHour, newMinute, newSecond) {
  11:       this.year = year;         // penggunaan "this" dibutuhkan
  12:       this.month = month;       // dibutuhkan
  13:       this.date = date;         // dibutuhkan
  14:       this.hour = hour;         // penggunaan "this" optional
  15:       this.minute = newMinute;  // optional
  16:       second = newSecond;       // optional
  17: }
  18: }

 

Static dan Instance Member

Field, property, dan method dalam suatu class bisa merupakan instance member atau static member. Instance member dibentuk ketika class tersebut dibuat instan-nya, secara default field, property, dan method yang tidak diberi keyword static merupakan instance member.

Static member tidak berhubungan dengan instan class melainkan langsung berhubungan dengan class tersebut. Dengan menggunakan keyword static anda dapat mengakses field, property, atau method pada suatu class tanpa harus membuat instan class-nya.

   1: public class Kucing {
   2:     private static int instances = 0;
   3:     public Kucing() {
   4:         instances++;
   5:     }
   6:     public static void BanyakKucing() {
   7:         Console.WriteLine("Banyak Kucing : {0}", instances);
   8:     }
   9: }
  10:  
  11: class StaticMember {
  12:    public static void Main(string[] args) {
  13:         Kucing meong1 = new Kucing();
  14:         Kucing.BanyakKucing();
  15:         Kucing meong2 = new Kucing();
  16:         Kucing meong3 = new Kucing();
  17:         Kucing.BanyakKucing();
  18:     }
  19: }

 

bersambung next blog ^_^

Published Saturday, March 21, 2009 10:05 AM by Erick Kurniawan
Filed under:

Comments

# re: OOP dengan C# (Bagian 1)

Saturday, March 21, 2009 10:15 AM by sony

nah ini dia ;)

# OOP dengan C# (Bagian 3)

Sunday, March 22, 2009 9:40 PM by Erick Kurniawan

Posting ini adalah lanjutan dari posting saya yang sebelumnya tentang : OOP dengan C# (bagian 1) OOP

# OOP dengan C# (Bagian 4)

Sunday, March 22, 2009 9:43 PM by Erick Kurniawan

Posting ini adalah lanjutan dari posting saya yang sebelumnya tentang : OOP dengan C# (bagian 1) OOP

# Tutorial OOP dengan C#

Sunday, March 22, 2009 9:56 PM by Erick Kurniawan

Halo, karena kebetulan semester ini saya sedang mengajar C# programming di kampus, saya ingin share juga

# re: OOP dengan C# (Bagian 1)

Monday, March 23, 2009 1:27 PM by Aris

mangstab..!!

# Tutorial OOP dengan C# « Actual Training

Monday, March 23, 2009 10:10 PM by Tutorial OOP dengan C# « Actual Training

Pingback from  Tutorial OOP dengan C# « Actual Training

Powered by Community Server (Commercial Edition), by Telligent Systems