Object Oriented Programming (OOP) atau Pemrograman
Berorientasi Objek sekarang telah menjadi menu wajib pada hampir semua bahasa
pemrograman, termasuk C#. Karena itu, suka atau tidak suka programmer pemula
juga harus menguasai.
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, atribute, dan method
Class
Class merupakan kumpulan atas
definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah
class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi
objek. 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).
Atribute
Attribute, merupakan
perlengkapan yang dimiliki oleh sebuah object. Misalnya
sapi memiliki attribute berat,
tinggi, warna kulit, dll. Fungsi attribute
yaitu untuk menerangkan object
secara jelas.
Method
Method merupakan suatu aksi yang bisa dilakukan oleh suatu object. Misalnya sapi dapat
berjalan dan makan.
- Object
Object didefinisikan sebagai membungkus data dan fungsi
bersama menjadi suatu unit dalam sebuah program
komputer; object
merupakan dasar dari modularitas
dan struktur
dalam sebuah program komputer berorientasi objek.
3. Cara membuat object
4. Konstruktor
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
5. Private, Protected, dan
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 beserta
Contohnya
Inheritance
Inheritance
atau turunan atau pewarisan merupakan konsep yang sangat dekat sekali dengan
keseharian kita. Sebagai ilustrasih, setiap dari kita pasti punya orang tua.
Hubungan orang tua-anak adalah hubungan pewarisan. Apa yang ada pada anak
umumnya juga ada pada orang tua. Suara anak kadang hampir sama dengan orang
tua. Warna kulit, bentuk rambut, gigi, dan lain sebagainya juga mengikuti pola
demikian. Jadi pewarisan adalah konsep yang sangat dekat sekali dengan
keseharian kita.
Dalam OOP pola turunan ini dicoba untuk ditiru. Hubungan turunan orangtua-anak disebut sebagai hubungan “is a” atau yang dalam bahasa Indonesianya “ia adalah”. Jika Mamat adalah ayah Agus, maka dalam bahasa OOP boleh disebut sebagai “Agus adalah Mamat”. Sebab sebagian sifat Agus diambil/diturunkan dari Mamat.
Dalam OOP pola turunan ini dicoba untuk ditiru. Hubungan turunan orangtua-anak disebut sebagai hubungan “is a” atau yang dalam bahasa Indonesianya “ia adalah”. Jika Mamat adalah ayah Agus, maka dalam bahasa OOP boleh disebut sebagai “Agus adalah Mamat”. Sebab sebagian sifat Agus diambil/diturunkan dari Mamat.
Contoh
penerapan inheritance
ClassTurunan.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using STS.Console; namespace STS.Console
public class Mamat {
public string BentukRambut {
get {
return “Kriting”;
}
}
}
public class Agus:Mamat {
}
Polimorfisme melalui pengiriman pesan.
Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim
pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan
tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila
sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan
terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan
kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang
sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah
variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda
selagi program berjalan, dan teks program yang sama dapat memanggil beberapa
metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini
berlawanan dengan bahasa
fungsional yang mencapai polimorfisme melalui penggunaan fungsi
kelas-pertama.
Enkapsulation
Enkapsulation – 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.
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.
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 merupakan 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.
Sumber
Tidak ada komentar:
Posting Komentar