Rangkuman OOP di C#

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



1. Class, atribute, method


Class 
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. Class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain Class juga merupakan penggambaran dari sebuah object atau benda,sifat objek, dan juga apa yang bisa dilakukan oleh objek tersebut. 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.

Atribut 
Merupakan nilai data yang terdapat pada suatu object yang berasal dari class. Atributes merepresentasikan karakteristik dari suatu object. Didalam penerapannya diprogram, atribut adalah Variabel atau Member.

Method 
Method adalah merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggi lmelalui object. 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). Operasi-operasi yang dilakukan oleh Methode, diantaranya, Suatu Method bisa menerima dan memanipulasi data atau field didalam diri Method tersebut. Suatu Method bisa mempengaruhi nilai suatu Object lain.

2. Object

Object adalah merupakan suatu bentuk dari class. 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. Kalau kita mengikuti analogi di atas, maka object dari class Hewan adalah Burung, Kambing, Ayam, Kuda.. Mereka adalah contoh dari class Hewan. Semua dari mereka adalah Hewan yang mempunyai nama, kaki, Jenis makanan dst. Dan bisa berlari, bersuara, berkembang biak dll.

3. Cara membuat object

Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut. 
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 membuat instant class / objek baru maka konstruktor dijalankan. Jika tidak mendefinisikan konstruktor secara eksplisit maka tetap dianggap membuat konstruktor kosong. Konstruktor juga dapat di-overload (dapat membuat konstruktor lebih dari satu asal parameternya jumlahnya beda atau tipe datanya beda). Variabel dalam class harus diinisialisasi.

5. Private, protected, public

Private 
Private adalah kode yang sesuai dengan namanya, akses ini bersifat private. dengan kata lain data maupun method hanya dapat diakses oleh kelas yang dimilikinya saja.

Protected 
Protected adalah kode akses yang membuat suatu data atau method yang didefinisikan dengan tingkatan akses yang dapat diakses oleh kelas yang memilikinya saja dan juga kelas-kelas yang masih memiliki keturunan atau Encapsulation data

Public 
Public adalah kode akses yang bersifat umum. Dengan kata lain, data maupun method dalam suatu kodingan tersebut dapat diakses oleh semua bagian di dalam program.

6. Karakteristik oop dan contohnya

Inheritance 
Inherintence atau pewarisan adalah merupakan konsep dimana suatu object memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki tertentu. Hal ini memungkinkan satu kelas (sub-class) harus didasarkan atas yang lain (kelas super) dan mewarisi semua fungsi secara otomatis. Kode tambahan kemudian dapat ditambahkan untuk membuat versi yang lebih khusus dari kelas. Dalam contoh kendaraan, sub-kelas untuk mobil atau motor dapat dibuat. Masing-masing masih akan memiliki semua perilaku kendaraan tetapi dapat menambahkan metode khusus dan properti.

Polymorphisme 
Polymorphism adalah konsep dimana beberapa object dapat memiliki metode yang sama dengan aksi yang berbeda. Hal ini mengakibatkan adanya kemampuan untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu digunakan. Dimana kelas obyek mewarisi dari kelas super atau mengimplementasikan satu atau lebih interface , dapat disebut dengan kelas atau interface nama-nama. Jadi jika kita memiliki metode yang mengharapkan sebuah objek dari tipe 'kendaraan' untuk diteruskan sebagai parameter, kita dapat melewati setiap kendaraan, mobil atau motor objek untuk metode yang meskipun tipe data mungkin secara teknis berbeda.

Encapsulation 
Encapsuation adalah penyatuan antara proses-proses yang terjadi dan sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu. Pengelompokan tersebut adalah dengan dibentuknya suatu object secara abstrak (abstraction). Akibatnya, obyek dapat bekerja sama dalam banyak hal dalam sistem. Dalam beberapa situasi, kelas dan objek dapat erat bersama-sama untuk menyediakan fungsionalitas yang lebih kompleks. Dalam contoh mobil, roda, panel, mesin, gearbox, dll dapat dianggap sebagai kelas individu. Untuk membuat mobil sekelasnya, perlu menghubungkan semua benda-benda bersama, mungkin dapat menambahkan fungsionalitas lebih lanjut. Kerja internal masing-masing kelas yang tidak penting karena enkapsulasi sebagai komunikasi antara obyek masih melalui lewat pesan ke antarmuka publik mereka.

Abstraction 
Pesawat yang telah dicontohkan masuk dalam kelas kendaraan, kelas kendaraan merupakan contoh abstraction.Abstraction adalah proses yang mewakili versi yang disederhanakan dari objek dunia nyata dalam kelas dan objek. Hal ini berarti dalam pengembangan perangkat lunak seorang programmer akan menggunakan atau menciptakan sejumlah object dimana object tersebut akan ada dan berperilaku pada sistem.

Aggregation 
Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.

7. Over loading

Overloading adalah suatu cara membuat lebih dari constructor pada suatu class. Supaya pengaksesan constructor tersebut lancar, maka sebagai pembedanya adalah tipe parameter dan atau jumlah parameternya. Overloading juga merupakan suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan suatu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter). Overloading memodifikasi secara horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama.

0 Response to "Rangkuman OOP di C#"

Posting Komentar