C# merupakan suatu bahasa program yang menggunakan konsep Object Oriented Programing (OOP). OOP merupakan
pemrograman yang memposisikan semua bagian yang terlibat dalam program adalah objek. Program dapat dibentuk dan dijalankan
melalui interaksi antara objek yang satu dengan objek yang lainnya.
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.