Sekilas tentang Object-Oriented Programming.

Apa itu Object-Oriented Programming?

Object-Oriented Programming adalah pola programming yang membahas mengenai object/entitas dalam sebuah program. OOP berusaha untuk merepresentasikan dunia nyata dalam bentuk object yang memiliki atribut dan behavior yang terkait. Object dianggap sebagai elemen utama yang memiliki kemampuan untuk berinteraksi satu sama lain melalui metode dan pesan yang dikirimkan.

Tujuan OOP

OOP bertujuan untuk menyederhanakan masalah yang kompleks ke dalam potongan-potongan kecil (blocks) yang lebih mudah untuk dikerjakan, terutama untuk pengembangan yang kolaboratif dan melibatkan banyak tim.

Block-block program tersebut bisa digunakan kembali dalam program yang sama ataupun berbeda. Proses maintain dan modifikasi juga bisa lebih mudah dilakukan tanpa memengaruhi block lainnya.

Prinsip encapsulation juga membuat data menjadi lebih aman karena data disembunyikan dari pihak-pihak lainnya.

Konsep Dasar OOP

a) Object

Object dalam OOP adalah benda/sesuatu dari dunia nyata yang datanya ingin kita simpan atau proses. Misalnya, object adalah meja, kursi, kucing, transaksi pembayaran, dsb. Object diartikan sebagai data yang memiliki atribut dan behavior yang unik.

b) Class

Class adalah template untuk membuat object, mudahnya class adalah cookie cutter dan object adalah cookie yang dicetak.

Class memiliki properties (atribut) untuk mendeskripsikan data apa saja yang akan dimiliki sebuah objek serta methods untuk menerangkan apa saja yang bisa dilakukan sebuah objek. Nantinya, masing-masing object akan diberi value atribut yang berbeda sehingga masing-masing object menjadi unik.

Misalkan, kita memiliki class Kucing. Class kucing ini memiliki atribut warna bulu, nama, dan warna mata serta method berlari, makan, dan tidur. Dalam class kucing, terdapat objek mainecoon, persia, dan anggora. Ketiga object tersebut akan memiliki atribut yang sama namun dengan value yang berbeda. Mainecoon, persia, dan anggora sama-sama memiliki warna bulu, nama, dan warna mata. Namun mainecoon memiliki warna bulu hitam, dengan nama Molly dan warna matanya hijau, sementara persia warna bulunya oranye, bernama Oyen, dan warna matanya biru.

c) Inheritance

Inheritance adalah pewarisan atribut sebuah class kepada class lainnya. Misalkan, terdapat class Person dengan atribut nama, umur, dan alamat. Terdapat pula dua class lainnya yakni Customer dan Employee. Jika kita mewariskan class Person kepada Customer dan Employee, dua class tersebut akan mewarisi atribut yang sama dengan class Person. Namun, masing-masing class Customer dan Employee tentunya akan memiliki atribut yang berbeda sehingga dua class tersebut unik. Person disebut superclass, sementara Customer dan Employee disebut subclass.

d) Polymorphism

Subclass yang berbeda dari dari superclass yang sama bisa mengimplementasikan interface (method) yang diwariskan dalam cara yang berbeda. Misalnya, pada class Employee dan Customer sama-sama mewarisi sifat dari class Person yakni bisa menyimpan data di database. Namun, Employee dan Customer akan menyimpan datanya di database yang berbeda.

e) Abstraction

Abstraction sederhananya adalah simplifikasi dari objek/benda yang ada di dunia nyata. Berfokus hanya pada data dan proses yang relevan dengan program yang dikembangkan. Jika kita melihat dunia nyata, seorang Person (orang) tentunya memiliki banyak sifat (atribut) yang bisa menerangkan dirinya. Seorang mahasiswa bisa jadi memiliki nama, alamat, NPM, hobi, game yang dimainkan, apa laptop yang digunakan, data tentang tempat wisata yang pernah dikunjungi, dsb. Namun, jika kita sedang membangun Sistem Database Mahasiswa, tentunya kita akan memerlukan data yang relevan saja, seperti nama, alamat, dan NPM. Kita tidak memerlukan apa game yang dimainkan, laptop apa yang digunakan, atau data tentang ke mana saja dia pernah berwisata.

f) Encapsulation

Encapsulation adalah menyembunyikan detail bagaimana sebuah program/class yang memanipulasi data lainnya bekerja. Simpelnya, encapsulation adalah library yang sering digunakan dalam memprogram sesuatu. Library adalah bentuk encapsulation. Seseorang yang menggunakan library tersebut tidak perlu mengetahui apa yang terjadi di dalam sana, ia hanya perlu mengetahui nama library, method yang bisa digunakan, serta atribut yang diperlukan. Encapsulation berguna untuk menjaga struktur dari data tersebut serta keamanan data dari pihak-pihak lainnya. Selain itu, jika kita mengenkapsulasi data, data tersebut bisa digunakan berulang kali.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>