Pengertian Pemrograman Berorientasi Objek
Pemrograman berorientasi objek (OOP) merupakan paradigma pemrograman yang menggunakan “objek” – struktur data yang terdiri dari datafields dan metode bersama dengan interaksi mereka – untuk merancang aplikasi dan program komputer. Teknik pemrograman dapat mencakup fitur seperti data abstraksi, enkapsulasi, modularitas, polimorfisme, dan pewarisan. Banyak bahasa pemrograman modern sekarang mendukung OOP.
Pemrograman berorientasi obyek memiliki akar yang dapat ditelusuri pada 1960-an. Seperti hardware dan software menjadi semakin kompleks, pengelolaan sering menjadi perhatian. Para peneliti mempelajari cara untuk menjaga kualitas perangkat lunak dan dikembangkan pemrograman berorientasi objek dalam bagian untuk mengatasi masalah-masalah umum dengan sangat menekankan diskrit, dapat digunakan kembali unit pemrograman logika [rujukan?]. Berfokus pada teknologi data daripada proses, dengan program yang terdiri dari modul mandiri ( “kelas”), masing-masing contoh yang ( “objek”) berisi semua informasi yang dibutuhkan untuk memanipulasi struktur data sendiri ( “anggota”).
Hal ini berbeda dengan yang ada pemrograman modular yang telah dominan selama bertahun-tahun yang berfokus pada fungsi dari module, bukan data spesifik, tetapi juga disediakan untuk penggunaan kembali kode, dan mandiri dapat digunakan kembali unit pemrograman logika, yang memungkinkan kolaborasi melalui penggunaan modul yang terhubung (subrutin). Pendekatan ini lebih konvensional, yang masih tetap, cenderung untuk mempertimbangkan data dan perilaku secara terpisah. Sebuah program berorientasi objek dengan demikian dapat dilihat sebagai kumpulan objek yang saling berinteraksi, berlawanan dengan model konvensional, di mana program dipandang sebagai daftar tugas (subrutin) untuk melakukan. Dalam OOP, setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek-objek lain dan dapat dipandang sebagai independen ‘mesin’ dengan peran atau tanggung jawab yang berbeda. Tindakan (atau “metode”) pada objek-objek ini sangat erat terkait dengan objek. Sebagai contoh, struktur data cenderung ‘membawa operator sekitar mereka sendiri dengan mereka “(atau setidaknya” mewarisi “mereka dari obyek atau kelas yang sama).
Metodologi berorientasi objek adalah sebuah strategi dalam mendevelop perangkat lunak yang mengkoordinir perangkat lunak sebagai kumpulan objek-objek yang didalamnya terdapat data dan operasi yang diatur. Metodologi berorientasi objek merupakan suatu metod bagaimana sistem perangkat lunak didevelop dengan pendekatan objek secara sistematis. Metode berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan yang sangat kompleksitas. berorientasi objek meliputi berbagai aktivitas analisa berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek. dan testing berorientasi objek.
Pada era sekarang ini, metode berorientasi objek banyak digunakan karena metodologi yang sebelumnya banyak menimbulkan problem yakni terdapat kesulitan pada saat merubah hasil dari satu fase pengembangan ke fase berikutnya, contohnya pada metode pendekatan yang terstruktur, jenis software yang dikembangkan pada era ini sangat berbeda dengan software pada masa lalu. Software yang dikembangkan pada saat ini sangat beragam (aplikasi e-commerce, utility , real-time, , dan lain-lain) dengan platform yang tidak sama, sehingga menimbulkan kebutuhan akan metodologi pengembangan yang dapat mengkoordinir ke semua jenis software yang dinginkan tersebut.
Konsep Dasar Pemrograman Berorientasi Objek
- Kelas kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. 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). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
- Objek membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
- Abstraksi 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.
- Enkapsulasi Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin 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.
- 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.
- Inheritas (Pewarisan) Konsep inheritas mempunyai fungsi mengatur polimorfise dan enkapsulasi dengan mengizinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada. Objek-objek ini dapat membagi dan memperluas perilaku mereka tanpa mengimplementasikan perilaku tersebut.
Keunggulan Pemrograman Berorientasi Objek
- Meningkatkan produktivitas
Class dan Object pada PBO yang dibuat untuk suatu problem masih dapat dipakai lagi untuk problem lainnya yang menggunakan objek tersebut (reusable). - Kecepatan pengembangan
karena sistem yang didevelop dengan cara yang baik dan benar pada saat menganalisis dan merancang akan menjadikan coding yang dibuat dapat diminimalisir kesalahannya. - Kemudahan pemeliharaan
Karena dengan model yang ebrorientasiobjek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang bisa saja berubah. - Adanya konsistensi
Karena sifat inheritance dan penggunaan fase yang sama pada saat menganalisis, merancang maupun coding. - Meningkatkan kualitas perangkat lunak
karena pendekatan pengembangan selalu dalam keadaan yang real dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.
Saat ini sudah banyak sekali bahasa pemrograman yang menggunakan metode berorientasi objek. Banyak orang tau bahwa pemrograman berorientasi objek selalu identik dengan bahasa Java. Bahasa Java adalah bahasa yang paling konsisten dalam menjalankan paradigma pemrograman berorientasi objek. Namun sesungguhnya bahasa pemrograman yang sama-sama mendukung pemrograman berorientasi objek bukan hanya bahasa Java.