Pemograman berorientasi objek sekarang ini merupakan teknik pemograman yang paling banyak digunakan oleh programmer, software (perangkat lunak) yang ada pada saat sekarang ini biasanya dibangun dengan dasar pemograman yang berorientasi objek.
Apa itu pemograman berorientasi objek (Object Oriented Programming), yang biasanya disingkat dengan OOP. Paradigma pemograman berorientasi objek adalah hal yang relatif mudah untuk dimengerti dan diaplikasikan, karena pada dasarnya objek merupakan sesuatu hal yang mudah dimengerti oleh manusia. Berikut ini kita lihat hal-hal yang berkaitan dengan pemograman berorientasi objek.
Objek (object)
Objek adalah suatu benda, entitas, biasanya berupa kata benda (noun), sesuatu yang dapat kita angkat maupun kita tendang atau pukul. Beberapa objek berupa benda hidup, dan beberapa tidak. Contoh objek dalam kehidupan nyata sehari-hari adalah sebuah mobil, orang, rumah, meja, seekor anjing, kucing ataupun beruang. Objek memiliki atribut (attributes), misalnya: sebuah mobil memiliki atribut manufaktur, nomor model, warna, dan harga, seekor anjing memiliki atribut umur, warna, tinggi maupun berat. Objek juga memiliki kelakuan (behavior), misalnya: sebuah mobil dapat bergerak dari satu tempat ke tempat lainnya dan seekor anjing dapat menggongong.
Kelas (class)
Sebuah kelas mengenkaspsulasi karakteristik bawaan ke dalam sebuah kelompok objek (sekumpulan objek). Beberapa programmer mengatakan “objek merupakan instance (diumpamakan) dari sebuah kelas”, oleh karena itu istilah instance bisa dikatakan merupakan persamaankata (synonym) dari objek. Kelas merupakan sebuah model, pola, atau blueprint (cetak biru) yang digunakan untuk menciptakan sebuah objek (Benyamin L.Sinaga, 2005). Ambil contoh sebuah rumah yang dibuat oleh seorang arsitek. Ada banyak sekali rumah di dunia ini, kesemuanya memiliki karakteristik yang sama. Sebuah cetak biru menggambarkan semua karakteristik yang dimiliki oleh sebuah rumah, misalnya dinding, jendela, saluran listrik, dan lain sebagainya. Dengan menggunakan cetak biru tersebut, maka dapat dibuat banyak rumah. Rumah-rumah yang dibangun dari cetak biru itu disebut dengan instance dari kelas. Instance dari kelas adalah objek yang dibentuk dengan menggunakan kelas sebagai dasar pembentukannya. Rumah-rumah tersebut yang terbentuk dari cetak biru yang ada dapat berbeda satu dengan lainnya, misalnya: lokasi, bahan yang digunakan untuk membangun rumah, bentuk dan ukuran, dan lain sebagainya. Tetepi mereka dapat dikatakan memiliki karakteristik yang sama.
Enkapsulasi (Encapsulation)
Enkapsulasi merujuk pada sebuah objek yang menyembunyikan atau mengenkapsulasi atribut-atributnya terhadap operasi yang dikenakan (analoginya objek tersimpan dan terkunci dalam sebuah kapsul, dan operasi berada di tepian luar kapsul tersebut). Atribut yang tersembunyi ini disebut dengan private. Beberapa bahasa pemograman (sebagai contoh, Smalltalk) secara otomatis membuat atribut-atributnya sebagai private dan beberapa tidak (sebagai contoh, Java) membiarkan programmernya menentukan sendiri. Sebagai contoh mengapa enkapsulasi adalah sebuah ide yang bagus adalah bayangkanlah sebuah objek selalu menjaga kesopanan antara satu objek terhadap objek lainnya. Sebagai contoh, jika Anda hendak meminjam uang dari teman kita untuk membeli makanan di sebuah warung makan, Anda pastinya tidak akan serta-merta mengambil dompet teman Anda dan langsung melihat isi uang yang ada dalam dompet tersebut, apakah dompet itu berisi uang yang cukup untuk dipinjamkan kepada kita atau tidak. Sebaliknya, Anda hanya akan menanyakan apakah dia dapat meminjamkan Anda sejumlah uang dan mereka sendiri-lah yang akan melihat ke dalam dompet mereka dan memberikan uang tersebut kepada kita.
Asosiasi (Association) dan Agregasi (Aggregation)
Setiap objek memiliki kaitan dengan objek lainnya, baik itu secara langsung maupun tidak langsung, kuat maupun lemah. Dengan mengaitkan tiap objek, kita membuat mereka semakin kuat. Kaitan antar objek mengijinkan kita untuk membantu kita menemukan informasi dan kelakuan (behavior) ekstra. Ketika kita melakukan pemodelan objek, kita dapat mengaitkan mereka ke dalam 2 prinsip: Asosiasi atau Agregasi. Terkadang memang sulit untuk mencari letak perbedaan antara asosiasi dan agregasi ini. Berikut sedikit penjelasannya :
Asosiasi merupakan kaitan yang lemah: objek dapat berupa grup atau kelompok, namun objek ini tidak secara komplit tergantung satu dengan lainnya. Sebagai contoh, bayangkanlah sebuah mobil, seorang supir, seorang penumpang dan satu penumpang lainnya. Ketika supir dan dua penumpang berada dalam mobil, mereka berasosiasi dan mereka semua menuju ke arah atau alamat yang sama, mereka menempati tempat yang sama, yakni di dalam mobil. Namun kaitan asosiasi ini sifatnya lemah, supir dapat menurunkan salah satu atau kedua penumpang pada arah atau alamat yang terpisah, jadi penumpang tersebut tidak lagi berasosiasi dengan objek lainnya.
Agregasi berarti menempatkan objek bersama-sama untuk menjadikannya objek yang lebih besar. Barang-barang atau benda-benda manufaktur biasanya merupakan contoh dari bentuk agregasi. Sebagai contoh, sebuah microwave terbentuk dari sebuah cabinet (semacam lemari kaca), sebuah pintu, sebuah panel indikator, sejumlah tombol, sebuah alat pemanas dan lain sebagainya. Agregasi mengimplikasikan kedekatan ketergantungan. Sebagai contoh, alat pemanas akan tetap menjadi sebuah alat pemanas meskipun kita melepaskannya dari microwave, namun sebuah microwave akan menjadi tidak berguna tanpa sebuah alat pemanas, karena microwave tersebut tidak akan dapat memanaskan makanan lagi .