Selasa, 08 Oktober 2013

   Pengertian Class, Atribute, Method pada C#
·         Class   
Class merupakan gambaran dari suatu object,benda atau kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of car’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam merk/jenis mobil. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
Contoh :

namespace Bab6 {
         public class Mahasiswa {
private int nim;
private string nama;
private string mail;

          public int Jawab( string soal) {
int nilai = 0;
// instruksi-intruksi lainnya
return nilai; }
           public void CetakKartuUjian() {
Console .WriteLine( "Nomor Induk Mahasiswa: " + nim);
Console .WriteLine( "Nama Mata Kuliah: Matematika Dasar" );
}
         }
}

·         Attribute
Atribut adalah suatu pengenal yang digunakan untuk menyimpan suatu nilai. Nilai dalam variabel dapat berubah selama proses dalam program masih berlangsung. Sebelum variabel digunakan, harus dideklarasikan terlebih dahulu.
Contoh :
string kata;
int angka;
·         Methods.
Method merupakan function atau subrutin yang tersedia pada sebuah class, structure, interface, atau delegate. Pada sebuah method terdapat parameter atau argumen yang dapat dikirimkan by value atau by reference. Bagi programer Visual Basic 6.0 sudah tentu tidak asing lagi dengan parameter by value maupun by reference yang biasa digunakan dalam pembuatan function/procedure. By value berarti perubahan nilai pada variabel parameter yang dikirimkan hanya akan berlaku di dalam function, sementara by reference berarti perubahan nilai pada variabel di dalam function akan tetap berlaku pada saat function tersebut selesai dieksekusi dan kembali pada pemanggil.
Contoh :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Namespacemethod
{
    classProgram
    {
        privatestaticvoidtulis()
        {
            Console.WriteLine("method pertama");
        }
        privatestaticvoidgaris()
        {
            Console.WriteLine("--------------------------");
        }
        publicstaticvoidMain(string[] args)
        {
            garis();
            tulis();
            garis();
            garis();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

2.     Pengertian Object
  • Object
Object adalah pembungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer.Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. contohnya : Mobil, Motor, Sepeda,dll. Object merupakan bentuk nyatanya dari suatu Class, dimana Object  memiliki Attribute (Properties) dan memiliki Method (Behavior). Object membungkus data dan fungsi menjadi suatu unit dalam sebuah program komputer. Objek merupakan dasar dari struktur dalam sebuah program komputer berorientasi objek. Dalam Pemrograman Berorientasi Objek melihat atau memandang  sesuatu berdasarkan objek. Objek sebenarnya mencerminkan pola kerja manusia dalam kehidupan sehari-hari.

3.     Cara membuat object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut. 

                  Contohnya:
String str = new String(); 
Random r = new Random(); 
Pegawai p2 = new Pegawai(); 
Date hari = new Date(); 
hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date. Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().

4.     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.
Contohnya:
  1. class Program  
  2.  {  
  3.   public static void Main(string[] args)  
  4.   {  
  5.    Konstruk kon = new Konstruk();  
  6.      
  7.    kon.Show();  
  8.      
  9.    Console.WriteLine();  
  10.    Console.Write("Press any key to continue . . . ");  
  11.    Console.ReadKey(true);  
  12.   }  
  13.  }  
  14.    
  15.  class Konstruk  
  16.  {  
  17.   public int A,B;  
  18.   public Konstruk()    //  <<--- Construktor  
  19.   {  
  20.    Console.WriteLine("   ==================================");  
  21.    Console.WriteLine("   =            Constructor         =");  
  22.    Console.WriteLine("   ==================================");  
  23.    Console.WriteLine();  
  24.    Console.WriteLine();  
  25.    Console.WriteLine();  
  26.    //inisialisasi  
  27.    A = B = 10;  
  28.   }  
  29.   ~Konstruk()  //  <<--- Destruktor  
  30.   {  
  31.    Console.WriteLine("Finalizing");  
  32.   }  
  33.   public void Show()  
  34.   {  
  35.    Console.WriteLine("Nilai A = {0}",A);  
  36.    Console.WriteLine("Nilai B = {0}",B);  
  37.    Console.WriteLine();  
  38.    Console.WriteLine("Hasil Perkalian = {0}",A*B);  
  39.   }  
  40.  }  


5.      Pengertian Private , Protected
·        Private
Private adalah informasi yang dibungkus dalam sebuah Class sehingga orang yang menggunakan class tersebut tidak perlu tahu detail-nya, hanya cukup mengetahui method dan property apa saja yang ada dalam class tersebut beserta kegunaannya. Private dibuat untuk memasukan nilai yang tidak kita inginkan, maka anda harus mendeklarasikan variable tersebut secara private agar pada saat setMethod anda dapat menambahkan validasi inputan dari user.

·        Protected
Protected adalah akses terbatas pada class itu sendiri atau dapat diturunkan ke class turunannya dan berganti akses ke privat.


6.     Public Karakteristik OOP
o   Inheritance
merupakan bentuk yang lebih spesifik dari Object misalnya : Mobil maka inheritance dari mobil adalah dapat berupa Mobil Truk Tronton, Mobil Truk FUSO, Mobil Sedan,Mobil Pick up, Mobil Sedan dll. Pada C# hubungan spesialisasi diimplementasikan menggunakan prinsip inheritance. Penulisan inheritance di C# sebagai berikut
public class ListBox : Window
Kode diatas berarti class ListBox adalah turunan dari class Window
Penggunaan inheritance dapat dilihat pada program dibawah ini
   1: public class Window
   2:     {
   3:         //objek konstruktor
   4:         public Window(int top, int left)
   5:         {
   6:             this.top = top;
   7:             this.left = left;
   8:         }
   9:
  10:         // simulasi menggambar pada windows
  11:         public void DrawWindow()
  12:         {
  13:             Console.WriteLine("Drawing Window at {0}, {1}",
  14:             top, left);
  15:         }
  16:
  17:         //variabel didefinisikan private sehingga
  18:         //tidak dapat digunakan pada kelas turunannya
  19:         private int top;
  20:         private int left;
  21:     }
  22:
  23:     // ListBox diturunkan dari class Window
  24:     public class ListBox : Window
  25:     {
  26:         // menambahkan parameter pada konstruktor
  27:         public ListBox(int top, int left, string theContents) :
  28:             base(top, left) // call base constructor
  29:         {
  30:             mListBoxContents = theContents;
  31:         }
  32:
  33:         // new version (new keyword) karena
  34:         // pada method di kelas turunan dirubah isinya
  35:         public new void DrawWindow()
  36:         {
  37:             base.DrawWindow(); // memanggil dari base class
  38:             Console.WriteLine("Writing string to the listbox: {0}",
  39:             mListBoxContents);
  40:         }
  41:         private string mListBoxContents; // member variabel baru
  42:     }
  43:
  44:     public class Tester
  45:     {
  46:         public static void Main()
  47:         {
  48:             // membuat instan class baru
  49:             Window w = new Window(5, 10);
  50:             w.DrawWindow();
  51:
  52:             // membuat instan dari class turunan
  53:             ListBox lb = new ListBox(20, 30, "Hello world");
  54:             lb.DrawWindow();
  55:         }
  56:     }



o   Polymorphisme
merupakan parameter yang digunakan oleh suatu Class/Object contoh nya : kita mempunyai Class yang berupa mobil apabila diturunkan menjadi dua buah class menjadi Mobil Matic dan Mobil Manual. Ketika Melakukan Metode Berjalan maka yang dilakukan akan berbeda. Mobil Matic akan berjalan sendiri dengan hanya menginjak gas, sedangkan Mobil Manual akan berjalan dengan memasukan gigi terlebih dahulu.
Kondisi yang harus dipenuhi supaya Polimorfisme dapat di implementasikan adalah:
         Method yang dipanggil harus melalui variable dari basis class atau superclass.
         Method yang dipanggil harus juga menjadi method dari basis class.
         Signature method harus sama baik pada superclass maupun subclass.
         Method access atribut pada subclass tidak boleh lebih terbatas dari basis class.
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Penggunaan prinsip polymorphism dapat dilihat pada contoh program dibawah ini
   1: public class Window
   2:     {
   3:         //deklarasi konstruktor dengan dua parameter
   4:         public Window(int top, int left)
   5:         {
   6:             this.top = top;
   7:             this.left = left;
   8:         }
   9:
  10:         //method untuk draw window
  11:         public virtual void DrawWindow()
  12:         {
  13:             Console.WriteLine("Window: drawing Window at {0}, {1}",
  14:             top, left);
  15:         }
  16:
  17:         //member variabel dideklarasikan protected
  18:         //berarti dapat diakses dari class turunannya
  19:         protected int top;
  20:         protected int left;
  21:
  22:     }  // end Window
  23:
  24:     // class ListBox diturunkan dari class Window
  25:     public class ListBox : Window
  26:     {
  27:         //konstruktor yang menmanggil konstruktor dari base class nya
  28:         public ListBox(int top,int left,string contents): base(top, left)
  29:         {
  30:             listBoxContents = contents;
  31:         }
  32:
  33:         //method yang di override dari base class-nya
  34:         //karena mempunyai implementasi yang berbeda
  35:         public override void DrawWindow()
  36:         {
  37:             base.DrawWindow(); // invoke the base method
  38:             Console.WriteLine("Writing string to the listbox: {0}",
  39:             listBoxContents);
  40:         }
  41:
  42:         private string listBoxContents; // member variabel baru
  43:     }  // end ListBox
  44:
  45:     public class Button : Window
  46:     {
  47:         public Button(
  48:         int top,
  49:         int left)
  50:             : base(top, left)
  51:         { }
  52:
  53:         // an overridden version (note keyword) because in the
  54:         // derived method we change the behavior
  55:         public override void DrawWindow()
  56:         {
  57:             Console.WriteLine("Drawing a button at {0}, {1}\n",
  58:             top, left);
  59:         }
  60:     }  // end Button
  61:
  62:     public class Tester
  63:     {
  64:         static void Main()
  65:         {
  66:             Window win = new Window(1, 2);
  67:             ListBox lb = new ListBox(3, 4, "Stand alone list box");
  68:             Button b = new Button(5, 6);
  69:             win.DrawWindow();
  70:             lb.DrawWindow();
  71:             b.DrawWindow();
  72:
  73:             Window[] winArray = new Window[3];
  74:             winArray[0] = new Window(1, 2);
  75:             winArray[1] = new ListBox(3, 4, "List box in array");
  76:             winArray[2] = new Button(5, 6);
  77:
  78:             for (int i = 0; i < 3; i++)
  79:             {
  80:                 winArray[i].DrawWindow();
  81:             }   // end for
  82:         }   // end Main
  83:     }      // end Tester
Jika dijalankan akan diperoleh output sebagai berikut:
   1: Window: drawing Window at 1, 2
   2: Window: drawing Window at 3, 4
   3: Writing string to the listbox: Stand alone list box
   4: Drawing a button at 5, 6
   5:
   6: Window: drawing Window at 1, 2
   7: Window: drawing Window at 3, 4
   8: Writing string to the listbox: List box in array
   9: Drawing a button at 5, 6



o   Encapsulation
merupakan cara menyembunyikan suatu proses dari sebuah system dalam rangka menyederhanakan pengaplikasian dari system tersebut dan menghindari gangguan dari system tersebut.atau memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.contohnya : stang pada motor, tombol stater pada motor, Tombol ON/OFF pada remote TV.
membuat public method set dan get untuk memberi dan mengambil nilai variabel tersebut, misal:
   1: // private member variables
   2:           private int Year;
   3:    
   4:           public int getYear() //get method
   5:           {
   6:               return this.Year;
   7:           }
   8:    
   9:           public void setYear(int Year) //set method
  10:           {
  11:               this.Year = Year;
  12:           }
Selain menggunakan cara tersebut diatas pada C# disediakan object property untuk memberi nilai dan mengambil nilai dari private variabel dalam suatu class. Penggunaan object property lebih memudahkan anda dalam penulisan kode dibandingkan harus membuat dua method set dan get untuk mengakses satu variabel private. Contoh penggunaan property dapat dilihat pada contoh kode dibawah ini.
   1: class Mahasiswa {
   2:         private string nim;
   3:         private string nama;
   4:  
   5:         public string Nim {
   6:             get {
   7:                 return nim;
   8:             }
   9:             set {
  10:                 this.nim = value;
  11:             }
  12:         }
  13:  
  14:         public string Nama {
  15:             get {
  16:                 return nama;
  17:             }
  18:             set {
  19:                 this.nama = value;
  20:             }
  21:         }
  22:  
  23:         public string DisplayInfo() {
  24:             return Nim + " " + Nama;
  25:         }
  26:     }
  27:  
  28:     class ClassProperty {
  29:         public static void Main(string[] args) {
  30:             Mahasiswa mhs1 = new Mahasiswa();
  31:             mhs1.Nim = "22002321";
  32:             mhs1.Nama = "Erick";
  33:             Console.WriteLine(mhs1.DisplayInfo());
  34:         }
  35:     }




o   Abstraction
Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

o   Aggregation
adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dan lain-lain.
Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat. Pemrograman visual membawa OOP ke level berikutnya. Tujuan pemrograman visual adalah agar pemrograman menjadi lebih mudah bagi para programmer dan lebih mudah diakses oleh kalangan nonprogrammer dengan meminjam bahasa OOP, dan mempraktikanya secara grafis atau visual. Pemrograman visual memungkinkan pengguna untuk lebih fokus pada pemecahan masalah ketimbang cara menangani bahasa pemrograman.
Contoh : mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dan lain-lain.




7.     Overloading
Overloading yaitu menambahkan method baru dengan nama yang sama, tetapi dengan pengenal yang berbeda. Overloading mengizinkan Anda memiliki dua atau lebih method dengan nama yang sama. Dua method tersebut akan muncul pada fasilitas IntelliSense sehingga pengguna dapat memilih method yang diinginkan. Bagaimanapun, salah memilih method dapat menyebabkan runtime-error, Anda dapat menghilangkan method yang tidak diinginkan untuk tampil dengan menggunakan keyword Shadows.Pada C# anda dapat mendeklarasikan method atau konstruktor dengan nama yang sama pada sebuah class, tetapi parameter method tersebut harus berbeda bisa jumlah atau tipe datanya. Pada contoh dibawah ini akan ditunjukan bagaimana cara menggunakan overloading konstruktor
   1: public class Time
   2: {
   3:          // private member 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 accessor methods
  12:          public void DisplayCurrentTime()
  13:          {
  14:              System.Console.WriteLine("{0}/{1}/{2} {3}:{4}:{5}",
  15:              Month, Date, Year, Hour, Minute, Second);
  16:          }
  17:          // constructors
  18:          public Time(System.DateTime dt)
  19:          {
          20:              Year = dt.Year;
  21:              Month = dt.Month;
  22:              Date = dt.Day;
  23:              Hour = dt.Hour;
  24:              Minute = dt.Minute;
  25:              Second = dt.Second;
  26:          }
  27:          public Time(string strTime) // overloading konstruktor
  28:          {
  29:              Console.WriteLine(strTime);
  30:          }
  31:   
  32:          public Time(int Year, int Month, int Date,
  33:          int Hour, int Minute, int Second) // overloading konstruktor
  34:          {
  35:               this.Year = Year;
  36:               this.Month = Month;
  37:               this.Date = Date;
  38:               this.Hour = Hour;
  39:               this.Minute = Minute;
  40:               this.Second = Second;
  41:          }
  42:      }
  43:   
  44:      class Tester
  45:      {
  46:          public void Run()
  47:          {
  48:              System.DateTime currentTime = System.DateTime.Now;
  49:              Time time1 = new Time(currentTime);
  50:              time1.DisplayCurrentTime();
  51:              Time time2 = new Time(2000, 11, 18, 11, 03, 30);
  52:              time2.DisplayCurrentTime();
  53:          }
  54:   
  55:          static void Main()
  56:          {
  57:              Tester t = new Tester();
  58:              t.Run();
  59:          }
  60:      }
Selain konstruktor overloading juga bisa diterapkan pada method dalam suatu class yang sama, contoh penulisannya:
   1: void MyMethod(int p1);
   2: void MyMethod(int p1, int p2);    // beda banyak parameter
   3: void MyMethod(int p1, string s1); // beda tipe data


8. membuat program OOp untuk
·        hitung nilai Mata Kuliah dan konversinya
class Program
    {
        static void Main(string[] args)
        {
            double ntugas, nuts, npart, nuas, nakhir;

            Console.WriteLine("menghitung Nilai Mata Kuliah mahaiswa");
            Console.WriteLine("--------------------------------------------");
            Console.Write("nilai patisipasi  = ");
            npart = double.Parse(Console.ReadLine());

            Console.Write("nilai UTS         = ");
            nuts = double.Parse(Console.ReadLine());

            Console.Write("nilai Tugas       = ");
            ntugas = double.Parse(Console.ReadLine());

            Console.Write("nilai UAS         = ");
            nuas = double.Parse(Console.ReadLine());

            Console.WriteLine("------------------------------------");
            nakhir = hitungNilaiAkhir(npart, ntugas, nuts, nuas);
            Console.Write("Nilai akhir  = " + nakhir);
            Console.WriteLine();
            Console.Write("Nilai Huruf  = " + konversiHuruf(nakhir));
            Console.ReadKey();

        }
        public static double hitungNilaiAkhir(double np, double nt, double nuts, double nuas)
        {
            return 0.3 * np + 0.2 * nt + 0.3 * nuas + 0.2 * nuts;
        }
        public static string konversiHuruf(double na)
        {
            string nh = "";
            if (na > 85 && na <= 100)
            {
                nh = "A";

            }
            if (na > 80 && na <= 85)
            {
                nh = "A-";
            }
            if (na > 75 && na <= 80)
            {
                nh = "B+";
            }
            if (na > 70 && na <= 75)
            {
                nh = "B";
            }
            if (na > 65 && na <= 70)
            {
                nh = "B-";
            }
            if (na > 60 && na <= 65)
            {
                nh = "C+";
            }
            if (na > 55 && na <= 60)
            {
                nh = "C";
            }
            if (na > 50 && na <= 55)
            {
                nh = "C-";
            }
            if (na > 40 && na <= 50)
            {
                nh = "D";
            }
            if (na <= 40)
            {
                nh = "E";
            }
            return nh;
        }
    }
}

Outputnya :
DAFTAR PUSTAKA






Tidak ada komentar:

Posting Komentar