Konsep Pemrograman Berorientasi Objek

Assalamualaikum Wr. Wb, saya akan menjelaskan konsep dari PBO (OOP), berikut penjelasannya.

 

KONSEP OOP

Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.
Konsep-konsep pemrograman berorientasi objek dalam Java secara umum sama dengan yang digunakan oleh bahasa-bahasa lain. Jadi kebanyakan konsep yang kita bahas juga terdapat dalam bahasa selain Java. Namun, terkadang terdapat perbedaan-perbedaan kecil antara penerapan konsep-konsep tersebut dalam masing-masing bahasa. Perbedaan-perbedaan ini juga akan dijelaskan seiring penjelasan masing-masing konsep.

Objek
Dalam penjelasan mengenai analogi, kita sudah menyinggung mengenai objek. Sekarang kita akan mengupas lebih dalam tentang objek sebagai konsep kunci dari pemrograman berorientasi objek.
Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode. Dengan penjelasan di atas, dapat disimpulkan bahwa objek adalah bagian software yang dibentuk dengan variabel-variabel dan metode-metode yang berhubungan dengan variabel tersebut.
Dengan karakteristik tersebut, kita dapat memodelkan berbagai objek dalam kehidupan nyata ke dalam objek-objek dalam sebuah program. Lebih lanjut kita dapat memodelkan objek-objek abstrak ke dalam sebuah program. Contoh umum untuk konsep abstrak seperti ini adalah objek Event, yaitu objek untuk mewakili peristiwa klik atau tombol ditekan.
Sebuah objek yang dibentuk dari sebuah kelas biasa disebut instans dalam terminologi OOP. Artinya objek tersebut adalah wujud nyata dari sebuah kelas. Variabel dan metode dari instans ini disebut variabel instans dan metode instans. Setiap instans menyimpan variabelnya sendiri-sendiri, jadi nilai variabel untuk tiap instans bisa berbeda.

Message (Pesan)
Objek-objek yang bekerja sama membentuk suatu sistem harus saling berkomunikasi untuk menjalankan sistem tersebut. Dalam sebuah program, objek-objek berkomunikasi satu sama lain dengan mengirimkan pesan. Sebagai contoh, jika sebuah objek ingin memanggil metode dari objek lain, maka objek ini akan mengirimkan sebuah pesan yang meminta objek tujuan untuk menjalankan metode yang dikehendaki. Pesan ini akan berisi informasi-informasi yang dibutuhkan objek tujuan untuk dapat menunaikan permintaan tadi. Sebuah pesan dibentuk oleh informasi berikut ini:

1) objek yang dituju;
2) nama metode yang ingin dipanggil;
3) parameter yang dibutuhkan metode tersebut.

Ada dua keuntungan dalam penggunaan pesan, yaitu:
1) semua kebutuhan interaksi antarobjek dapat dilakukan;
2) objek-objek yang saling berinteraksi tidak harus berada dalam satu proses atau bahkan dalam satu komputer.

Kelas (Class)
Kelas adalah semacam cetakan, atau template, untuk membuat objek. Ibaratkan sebuah rancangan rumah yang digunakan untuk membangun ratusan rumah. Rumah yang dibangun tersebut adalah objek dari kelas rancangan rumah. Hal ini dapat dilakukan karena semua objek rumah yang dibangun memiliki karakteristik yang sama, sehingga dapat dibuatkan semacam blueprint­nya. Tetapi objek-objek yang dibangun tetap akan memiliki bentuk fisik tertentu sendiri-sendiri, seperti variabel dalam sebuah program, atau pintu sebuah objek rumah. Dengan penjelasan ini, kelas dapat kita definisikan kembali menjadi sebuah blueprint, atau prototipe, yang mendefinisikan variabel dan metode yang sama untuk semua objek sejenis.
Sebagai contoh, misalkan kita ingin membuat kelas Rumah, maka kita harus membuat sebuah kelas yang mendefinisikan semua variabel yang dimiliki objek dari kelas tersebut. Selain itu, kelas tersebut juga harus mendeklarasikan metode-metode yang dimiliki objek dari kelas dan juga membuat implementasi dari metode tersebut. Dengan adanya kelas ini, kita dapat membuat sebanyak apapun objek-objek rumah yang sejenis, yaitu jenis yang didefinisikan oleh kelas Rumah. Setiap objek Rumah diciptakan, sistem akan mengalokasikan sejumlah memori untuk objek tersebut dan variabel-variabelnya. Dengan begitu setiap objek akan memiliki salinan masing-masing untuk setiap variabel instans.
Setelah mengenal konsep kelas, saatnya Anda dikenalkan dengan variabel kelas. Variabel kelas sebenarnya sama dengan variabel instans. Bedanya adalah, setiap objek berbagi satu dan hanya satu variabel kelas, tapi masing-masing memiliki salinan dari variabel instans. Misalkan kelas Rumah yang kita buat hanya akan mendukung 2 lantai, dan setiap objek Rumah terdiri atas 2 lantai. Maka informasi ini cukup disimpan satu kali, karena nilainya tidak berbeda untuk semua objek. Lebih jauh, bila ada satu objek yang mengubah nilai dari variabel kelas, maka semua objek sejenis lainnya akan mengikuti perubahan itu. Di samping variabel, terdapat juga metode kelas. Metode jenis ini dapat langsung dipanggil melalui kelas dan bukan dari instans kelas tersebut.

Enkapsulasi
Dalam istilah berorientasi-objek, enkapsulasi berkaitan dengan penyembunyian informasi. System-sistem yang tidak berorientasi-objek berdasarkan pada rutin dan subprogram yang berbagi-pakai data global, atau yang menerima data yang dikirimkan oleh pemanggil.Pendekatan berorientasi-objek, di pihak lain, mengadopsi konsep bahwa data dan fungsi mestinya dipaketkan bersama ke dalam sebuah kapsul tunggal. Bentuk kelas ini melayani maksud tersebut. Sebuah kelas terdiri dari elemen data dan elemen pemrosesan. Elemen data sebuah kelas disebut attribute, dan operasi pemrosesan disebut metodenya. Atribut dan metode merupakan anggota kelas: atribut adalah anggota data dan metode adalah fungsi anggota.
Maksud enkapsulasi disini adalah menyembunyikan detail implementasi sementara memusatkan pada antarmuka. Tujuannya adalah membuat sebuah abstraksi yang memaksa programmer berpikir secara konseptual. Biasanya, anggota – anggota data dari sebuah kelas terlihat oleh penggunanya. Jika sebuah anggota data harus dibuat agar dapat diakses oleh client kelas, maka kelas tersebut menyediakan sebuah metode yang memeriksanya dan mengembalikan nilainya. Saat sebuah kelas mengekspos anggota data, ia dikatakan memecahkan enkapsulasi.

Pewarisan (inheritance)
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass.
Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. Hal ini dapat dianalogikan dengan kelas manusia. Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut.

Polimorfisme
Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Ketika objek tersebut menunjuk kelas dasar, objek tersebut berperilaku seperti kelas dasar, tetapi ketika objek tersebut menunjuk kelas turunan, objek tersebut berperilaku seperti kelas turunan. Dalam hal ini objek dapat memiliki beberapa bentuk, tergantung pada saat itu kelas mana yang ditunjuk. Yang perlu menjadi catatan, bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan, tidak dapat objek kelas turunan menunjuk kelas dasar.
Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run-time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtualnya (maya).

 

Sekian penjelasan konsep dari Pemrograman Berorientasi Objek (OOP).

Wassalam….

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s