Pengertian Obyek Oriented

Obyek, baik yang konkret maupun yang konseptual, selalu ada di sekeliling kita. Obyek-obyek inilah yang membentuk dunia kita sehari-hari.

Pengertian Obyek 

Obyek, baik yang konkret maupun yang konseptual, selalu ada di sekeliling kita. Obyek-obyek inilah yang membentuk dunia kita sehari-hari. Eksekutif perusahaan akan melihat karyawan, absensi, gaji, profit dan lain-lain sebagai obyek. Demikian juga halnya seorang arsitek akan melihat gedung, biaya dan tenaga kerja sebagai obyek. Orang akan melihat mobil lebih sebagai obyek dibanding serangkaian proses yang membentuk mobil.

Sebuah obyek memiliki keadaan sesaat (state) dan perilaku (behaviour). State sebuah obyek adalah kondisi obyek tersebut yang dinyatakan dalam attribute/properties. State sebuah obyek adalah kondisi obyek tersebut yang dinyatakan dalam attribute/properties. Sedangkan perilaku suatu obyek mendefinisikan bagaimana sebuah obyek bertindak /beraksi dan memberikan reaksi. Perilaku sebuah obyek dinyatakan dalam operation. Menurut Schmuller, attribute dan operation bila disatukan akan memberikan fitur/ features. 

Himpunan obyek-obyek yang sejenis disebut class. Obyek adalah contoh /instance dari sebuah class. Sebagai contoh class binatang adalah berekor dan berkaki empat. Contoh/instance yang mungkin pada class ini adalah kucing, gajah, kuda dan lain-lain. Berikut adalah aspek-aspek penting yang sering dibahas di UML yang berkaitan dengan obyek. 

Abstraksi

Abstraksi bertujuan untuk memfilter properties dan operation pada suatu obyek, sehingga hanya tinggal properties dan operation yang dibutuhkan saja. Seringkali masalah yang berbeda membutuhkan sejumlah informasi yang berbeda pula pada areal yang sama. Sebagai contoh pada kasus TV, Ketika kita membuat program komputer untuk mengatur volume suara, perubahan channel dan pengaturan kontras, kita mungkin harus membuang attribute nomor seri karena tidak terlalu berguna. Akan tetapi ketika kita akan menelusuri transaksi penjualan TV, maka kita butuh nomor seri dan setiap TV yang terjual. 

Inheritance

Seperti yang sudah diuraikan di atas, obyek adalah contoh/ instance dari sebuah class. Hal ini mempunyai konsekuensi yang penting yaitu sebagai instance sebuah class, sebuah obyek mempunyai semua karakteristik dari classnya. Inilah yang disebut dengan inheritance (pewarisan sifat). Dengan demikian apapun attribute dan operation dari class akan dimiliki pula oleh semua obyek yang diinherit/ diturunkan dari class tersebut. Sifat ini tidak hanya berlaku untuk obyek terhadap class, akan tetapi juga berlaku untuk class terhadap class lainnya. 

Polimorphisme

Kadangkala class yang berbeda mempunyai nama operation yang berbeda. Sebagai contoh operation “buka" bisa dipakai untuk membuka pintu, membuka jendela, membuka buku, membuka seminar dan lain-lain. Meski kedengarannya sama, sebenarnya apa yang dilakukan berbeda. Konsep inilah yang disebut dengan polimorphisme. 

Polimorphisme adalah konsep yang sangat handal bagi pengembang perangkat lunak untuk pemisahan secara jelas diantara sub sistem yang berbeda. Dengan demikian sebuah sistem akan bisa dimodifikasi secara mudah karena hanya dibutuhkan interface antar class. Sebagai contoh kita bisa membuat operation hitungGaji. Operation hitungGaji ini bisa dipakai untuk menghitung gaji semua 

pegawai baik pegawal tetap, pegawai paruh waktu maupun pegawai kantrak, dengan konsep polimorphisme kita bisa menghitung gaji masing-masing pegawai. Sekedar ilustrasi, untuk menghitung gaji karyawan tetap jelas akan memperhitungkan jabatan dan golongan. Sedangkan untuk pegawai paruh waktu akan memperhitungkan jumlah jam kerja Adapun untuk pegawai kontrak tidak ada tunjangan pensiun. 

Encapsulation

Encapsulation sering disebut dengan penyembunyian informasi (information hiding) Konsep ini sebenarnya lebih didasari pada fakta yang ada di dunia nyata bahwa tidak semua hal perlu drperhatikan Sebagai contoh untuk memperbesar volume suara pada TV kita hanya perlu menekan satu tombol tertentu saja. Kita tidak perlu tahu atau bahkan tidak mau tahu bagaimana proses dibelakang itu semua sehingga suara TV bisa sesuai dengan yang kita harapkan. Padahal kalau kita perhatikan ada serangkaian banyak proses yang harus dilakukan oleh TV tersebut, dan semua itu tidak diperlihatkan kepada kita. 

Mengapa encapsulation penting? Di dunia nyata encapsulaHan membantu kita untuk melokalisir masalah. Sebagai contoh monitor menyembunyikan operasinya terhadap CPU, Ketika ada masalah dengan monitor, maka kita hanya perlu memperbaiki monitor atau menggantinya dengan monitor yang lain. Kita tidak perlu mengutak-atik CPU Demikian juga halnya di dunia software. Jika suatu kesalahan / error terjadi pada suatu obyek, kita mungkin hanya perlu memperbaiki obyek tersebut tanpa perlu mengotak-atik obyek yang lain. 

Meski banyak hal yang tidak perlu diperlihatkan, tetap saja suatu obyek perlu memiliki 'wajah' yang bisa dilihat sehingga memungkinkan kita untuk berinteraksi dengan obyek tersebut guna meminta kopada obyek tersebut untuk menjalankan suatu operasi. Contoh riil pesawat TV mempunyai tombol-tombol pada TV atau pada remote controlnya. 

Message Sending

Dalam sistem OO, obyek-obyek saling berkomunikasi satu sama lain dengan mengirimkan pesan. Suatu obyek mengirim sebuah pesan kepada obyek yang lain untuk menjalankan sebuah operation dan obyek yang menerima akan memberikan respon untuk menjalankan operation tersebut. 

Ilustrasi tentang pengiriman pesan ini bisa dilihat pada kasus pesawat TV di depan. Jika kita ingin menonton TV, kita tinggal menekan tombol-tombol yang ada pada remote control dan kemudian TV-pun menyala. Sebenarnya fakta yang terjadi adalah obyek remote mengirim pesan kepada obyek TV untuk menjalankan operation menyala. Obyek TV menerima pesan ini dan menjalankan operation untuk menyalakan TV. 

Contoh nyata yang lain bisa dilihat pada pencetakan slip gaji. Pada kasus ini kita akan mempunyai class karyawan sebagai instance dari orang. Setiap obyek karyawan bertanggung jawab untuk mengetahui berapa jumlah gaji yang diterima. Obyek berikutnya adalah cetakSlipGaji yang bertanggung jawab untuk mencetak slip gaji karyawan setiap bulannya. Untuk bisa mencetak slip gaji, obyek SlipGaji harus mengetahui berapa gaji yang diperoleh karyawan. Oleh karena itu obyek cetakSlipGaji kemudian mengirimkan pesan kepada obyek karyawan untuk menanyakan berapa gaji yang harus dibayarkan, 

Association

Association (asosiasi) adalah hubungan antar obyek yang saling membutuhkan. Hubungan ini bisa satu arah ataupun lebih dari satu arah. Sebagai contoh saat kita menyalakan TV, bisa dikatakan kita berasosiasi dengan TV secara satu arah. Ilustrasi lain yang menunjukkan hubungan lebih dari satu arah bisa dilihat pada pertemanan si A dan si B. Pertemanan disini tidak akan jalan kalau hanya berjalan satu arah. Pertemanan membutuhkan hubungan dua arah. Selain dengan sesama obyek, sebuah class bisa juga berasosiasi dengan lebih dari satu class. Seorang sopir mungkin mengendarai sebuah mobil ataupun sebuah bis. 

Multiplicity adalah sebuah aspek yang penting dalam asosiasi antar obyek. Ini berkaitan dengan sejumlah obyek dalam satu class yang saling berasosiasi. Sebagai contoh sebuah kursus diajar oleh seorang instruktur. Kursus dan instruktur adalah asosiasi satu ke satu (one-to-one). Akan tetapi dalam kasus perkuliahan, seorang instruktur mungkin akan mengajar lebih dari satu kursus selama satu semester. Dalam kasus ini kursus dan instruktur berasosiasi satu ke banyak (one-to-many). 

Aggregation

Aggregation (agregasi) adalah bentuk khusus dari asosiasi yang menggambarkan seluruh bagian suatu obyek merupakan bagian dari obyek yang lain. Sebagai contoh sebuah komputer dibuat dari sekumpulan komponen seperti CPU, keyboard, mouse, monitor dan lain-lain. 

Salah satu bentuk agregasi yang melibatkan hubungan yang sangat erat antar obyek dan komponen obyek disebut composition. Kata kunci composition adalah komponen itu hanya bisa ada sebagai komponen pada obyek composition. Sebagai contoh baju mengandung unsur lengan, kerah, kancing dan sebagainya. Kalau kita ambil kerah saja maka tidak akan ada gunanya.