Outline: Class Objek Konstruktor Destruktor Overloading dan Tipe value PEMROGRAMAN VISUAL II Outline: Class Objek Konstruktor Destruktor Overloading dan Tipe value
PENDAHULUAN Pemrograman berorientasi objek merupakan pemrograman yang menyatukan (encapsulation) state (data) dan behavior (operasi) yang merupakan wujud abstrak dari objek dalam dunia nyata. State Merupakan keadaan atau situasi pada objek. State dinyatakan dalam sekumpulan atribut (variabel) dan nilai. Behaviour Merupakan tingkah laku atau cara objek bereaksi terhadap objek yang lain. Behavior dari objek berbentuk operasi-operasi yang dapat dilakukan oleh objek.
Field? Method?
What is the state and behaviour?
CLASS Class dapat didefinisikan sebagai model abstrak sederhana yang digunakan untuk mendefinisikan sebuah tipe data baru. Class merupakan prototipe yang mendefinisikan variabel dan metode secara umum. Sebuah kelas bisa mengandung berbagai kombinasi dari data enkasulaspi (field atau member variable) atau operasi yang dapat diterapkan pada data (methods), maupun accesor data (properti). Class MyClass { // fields, operation, and properties go here }
OBJEK Seperti dijelaskan sebelumnya, Class adalah adalah sebuah model abstrak. Sedangkan objek adalah sebuah realisasi yang konkret dari sebuah model yang dispesifikasikan oleh kelas. Sebuah objek diciptakan dimemory menggunakan keyword new, dan diacu oleh sebuah identifier yang disebut “reference”.
OBJEK Pada dasarnya, objek adalah sebuah benda. Benda apa saja yang dapat dikenali maupun dibayangkan. Nyata maupun abstrak. Fisik maupun konseptual. Termasuk juga software. Bagi programmer, objek adalah benda yang dapat dinyatakan dalam sebuah program. Seorang customer adalah sebuah objek yang dapat dinyatakan dalam program, demikian juga produk, perusahaan, hingga benda-benda seperti database, file, dll. Disisi lain objek merupakan “instance” atau lebih tepatnya cloning/cetakan dari sebuah class.
CLASS VS OBJEK Seperti disebutkan diatas, perbedaan antara objek dengan class adalah: class adalah sebuah model abstrak untuk mendefinisikan sebuat tipe data baru, sedangkan objek adalah realisasi konkrit dari sebuah model yang di definisikan oleh kelas tersebut. Misalnya sebelum membuat lilin berbentuk kucing, maka terlebih dulu dibuat cetakannya (class), sedangkan lilin yang berbentuk kucing adalah objek. Contoh lain:
? ?
Mana class & object?
ELEMEN-ELEMEN DALAM CLASS Fields adalah data yang terdapat didalam kelas Method adalah operasi yang diterapkan pada data Instantiating Class membuat objek dari class Mengakses Anggota dari Class Access Modifier (level Akses) Properties Static Members dari Class
KONSTRUKTOR Kontrukstor adalah salah jenis method khusus yang memiliki properties sebagai berikut: Memiki nama yang sama dengan kelas yang membawahinya Tidak memiliki tipe return Otomatis dipanggil saat new instance atau objek dari kelas terbentuk, oleh karena itu disebut konstruktor. Konstruktor mengandung code inisialisasi dari setiap objek, seperti memberi nilai default kepada fields.
DESTRUKTOR Destructor adalah lawan dari konstruktor. Menggunakan keywors ~. Digunakan untuk menghancurkan objek setelah selesai digunakan. Kenyataannya destructor jarang digunakan didalam pemrograman C# karena secara otomatis compiler akan mendestroy objek setelah selesai digunakan.
OVERLOADING Di C# kita bisa mendeklarasikan method atau konstruktor pada sebuah kelas dengan nama yang sama, tetapi dengan parameter yang berbeda. Hal tersebut di kenal dengan nama overloading.
TIPE VALUE Disini nilai x tetap 4, padahal kita sudah memanggil method yang mengincrement variabelnya, tetapi hasil outnya tetap 3. Ini dikarenakan pada C# secara default yang dikirimkan kedalam method adalah nilainya, atau “pass by value”. Jadi jika ada perubahan nilai parameter pada method tersebut tidak akan berpengaruh ke method. Jika ingin mengirimkan parameter referenced / “pass by reference” anda dapat menambahkan keyword ref sebelum tipe data pada method parameternya.