Apa yang dimaksud dengan Object-Oriented Programming

Beberapa bahasa pemrograman mendukung untuk melakukan Object-Oriented Programming atau Pemrograman berorientasi objek, contohnya Java, Python, PHP, Ruby. Pertanyaannya adalah Apa yang dimaksud dengan Object-Oriented Programming?

Object-Oriented Programming atau Pemrograman berorientasi objek adalah pola berpikir atau pendekatan kepada bahasa pemrograman yang berbeda dengan Pemrograman Prosedural dimana jika Prosedural menekankan urutan pengerjaan yang prosedural dan OOP menekankan pada pembuatan sebuah objek / membayangkan program menjadi objek - objek yang lebih kecil.

Pada gambar diatas bisa kita lihat kita misalkan Vehicle atau Kendaraan sebagai sebuah Objek yang lebih besar / orang tua. Dibawah Kendaraan akan ada Wheeled Vehicle atau kendaraan beroda dan dibawah kendaraan ada sepeda dan mobil, dan dibawah mobil masih ada bermacam - macam jenis mobil. Mobil, Sepeda, Kapal itu adalah sebuah Objek kelas anak, jika kita misalkan disini Kendaraan mempunyai method untuk berjalan maka semua kelas yang berada dibawahnya juga mempunyai method berjalan juga. Konsep diatas dinamakan dengan Inheritance yaitu penurunan method orang tua kepada anak kelasnya. Inheritance adalah salah satu konsep penting dalam Pemrograman berorientasi objek karena nantinya akan membuat kode lebih ringkas dan re-useable atau bisa digunakan kembali. Sebelum mempelajari lebih jauh kita harus bisa mengerti dulu apa perbedaan dari objek dan kelas. Objek adalah hasil dari sebuah kelas, jadi bisa kita misalkan kelas adalah blueprint atau cetak biru dari sebuah objek. Jadi, nantinya sebuah kelas bisa membuat lebih 1 objek.
Contoh paling mudah adalah pembuatan objek Scanner misalnya

Scanner input = new Scanner(System.in);

disini input adalah objek dengan method yang berada di kelas Scanner.

Jadi, sebenarnya Pemrograman berorientasi objek bukanlah sesuatu yang baru, karena sebenarnya membuat objek - objek kecil dalam permasalahan yang besar sudah menjadi bagian dari kehidupan sehari - hari. Untuk mempelajari Pemrograman berorientasi objek yang paling mudah adalah dengan mempelajari bahasa pemrograman Java karena walaupun java bukan bahasa dengan object-oriented murni tetapi dalam java kita tidak bisa menuliskan code diluar kelas sehingga memudahkan untuk mengingat Pemrograman berorientasi objek.

Dalam OOP juga dikenal dengan adanya 4 Pilar Pemrograman Berorientasi Objek yaitu:

  1. Abstraksi
    Abstraksi adalah proses dimana semua data yang tidak berhubungan dengan objek diabaikan atau ditiadakan untuk mengurangi kerumitan program dan efisiensi program.

  2. Enkapsulasi
    Enkapsulasi adalah konsep untuk menyembunyikan data dan implementasi sebuah method sehingga nantinya kode yang berhubungan dapat diubah atau diganti nilainya.

  3. Penurunan sifat atau Inheritance

  4. Polimorfisme
    Polimorfisme adalah konsep untuk mengubah kelas menjadi lebih fleksibel dan dinamis dengan overloading dan overriding.

Sumber :

  1. 10 Essential Object Oriented Concepts for Java Developers | Java67
  2. What is Abstraction? - Definition from WhatIs.com
  3. https://aryadharmaadi.com/blog/2016/02/05/konsep-dasar-pemrograman-berorientasi-objek/

Pemrograman berorientasi objek (OOP) mengacu pada jenis pemrograman komputer (perancangan perangkat lunak) dimana pemrogram tidak hanya mendefinisikan tipe data dari struktur data, tetapi juga jenis operasi (fungsi) yang dapat diterapkan pada struktur data. Dengan cara ini, struktur data menjadi objek yang mencakup data dan fungsi. Selain itu, pemrogram dapat menciptakan hubungan antara satu objek dengan objek lainnya. Misalnya, objek bisa mewarisi karakteristik dari benda lain.

Langkah pertama dalam OOP adalah untuk mengidentifikasi semua objek yang ingin diprogram oleh programmer dan bagaimana hubungannya satu sama lain, sebuah latihan yang sering dikenal sebagai pemodelan data. Begitu sebuah objek telah diidentifikasi, objek itu di generalisasi sebagai kelas objek yang mendefinisikan jenis data yang dikandungnya dan rangkaian logika yang dapat memanipulasinya. Setiap urutan logika yang berbeda dikenal sebagai metode. Objek berkomunikasi dengan antarmuka yang didefinisikan dengan baik yang disebut pesan.

Konsep dan aturan yang digunakan dalam pemrograman berorientasi obyek memberikan manfaat penting ini:

  1. Konsep kelas data memungkinkan untuk mendefinisikan subclass dari objek data yang berbagi beberapa atau semua karakteristik kelas utama. Disebut warisan, properti OOP ini memaksa analisis data yang lebih menyeluruh, mengurangi waktu pengembangan, dan memastikan pengkodean yang lebih akurat.

  2. Karena sebuah kelas mendefinisikan hanya data yang perlu diperhatikan, ketika sebuah instance dari kelas itu (sebuah objek) dijalankan, kodenya tidak akan dapat mengakses data program lainnya secara tidak sengaja. Karakteristik persembunyian data ini memberikan keamanan sistem yang lebih besar dan menghindari korupsi data yang tidak diinginkan.

  3. Konsep kelas data memungkinkan programmer membuat tipe data baru yang belum didefinisikan dalam bahasa itu sendiri.

Sumber :

oop

Secara garis besar bahasa pemrograman dapat dibedakan menjadi bahasa pemrograman terstruktur dan bahasa pemrograman berorientasi objek. OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Misalnya Mobil, Mobil adalah sebuah objek. Mobil itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, stir, kursi, dll. Mobil sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

Konsep Object Oriented sebenarnya bukanlah barang baru dalam dunia bahasa pemograman. Konsep ini sudah lama ada, dimulai dari bahasa pemrograman Small Talk,LISP,C++,dan beberapa bahasa pemrogaran lainnya. Pemoograman Object Oriented dimaksudkan untuk membuat suatu program yang terdiri dari berbagai objek yang saling berinteraksi. Dalam membangun program yang masih sederhana konsep object oriented ini akan terasa sangat menyusahkan, akan tetapi ketika kita membuat Sebuah program yang ruang lingkupnya luas konsep object oriented akan terasa sangat membantu karena akan terasa lebih mudah untuk mengorganisir program yang telah kita buat.

Dalam konsep object oriented akan kita temukan kata object dan class,class merupakan pola atau template yang menggambarkan kumpulan object yang mempunyai sifat yang sama,perilaku,atu disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class. Sebagai contoh : dalam pembangunan suatu gedung tentunya seorang arsitek akan menggunakan gambar desain gedung,dan kemudian akan dibuat gedung nyatanya, Dalam contoh ini gambar desain gedung dapat kita kategorikan sebagai class dan gedungnyata sebagai implementasi dari gambar gedung yang dapat kita kategorikan sebagai object,Dari suatu class dapat di buat beberapa object yang sama.

Konsep OOP (Object Oriented Programming) adalah :

  1. Kelas Abstrak (Class Abstraksi)

  2. Enkapsulasi (encapsulation)

  3. Pewarisan (Inheritance)

  4. Polimorfisme (polymorphism)

Sumber :
https://fatihamaliah.wordpress.com/2013/04/02/pengertian-konsep-oop-object-oriented-programming/
http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html