Mari Berkenalan Dengan Object Oriented Programming (OOP)!

Tentang Artikel :

Pemrograman berorientasi objek (object-oriented programming) merupakan paradigma prmrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Mari pelajari lebih lanjut mengenai OOP.


Pengertian dan Sejarah OOP

WAKOOL.ID - Pemrograman Berbasis Objek atau Object Oriented Programming (OOP) adalah sebuah tata cara pembuatan program (programming paradigm) dengan menggunakan konsep “objek” yang memiliki data (atribut yang menjelaskan tentang objek) dan prosedur (function) yang dikenal dengan method. Dalam pengertian sederhananya, OOP adalah konsep pembuatan program dengan memecah permasalahan program dengan menggunakan objek. Objek dapat diumpamakan dengan ‘fungsi khusus’ yang bisa berdiri sendiri. Untuk membuat sebuah aplikasi, berbagai objek akan saling bertukar data untuk mencapai hasil akhir. Berbeda dengan konsep fungsi atau ‘function’ di dalam pemrograman, sebuah objek bisa memiliki data dan function tersendiri. Setiap objek ditujukan untuk mengerjakan sebuah tugas, dan menghasilkan nilai akhir untuk selanjutnya dapat ditampilkan atau digunakan oleh objek lain.

Konsep OOP bermula pada era 1960-an. Sebuah bahasa pemrograman Simula memperkenalkan berbagai konsep yang mendasari OOP dengan SIMULA I (1962-65) dan Simula 67 (1967). Kemudian pada tahun 70-an, bahasa pemrograman Smalltalk menjadi yang pertama kali disebut object-oriented. Pada tahun 1980-an, dua bahasa pemrograman ADA (US Department of Defense) dan PROLOG (the Japanese “Fifth Generation Computer Project”) dipercayai akan bersaing ketat sebagai bahasa pemrograman yang paling dominan. Namun justru OOP yang menjadi paradigma pemrograman yang paling dominan sampai sekarang. Bahasa pemrograman yang object-oriented seperti C++ pada tahun 80-an menjadi populer. Pada tahun 90-an, bahasa-bahasa pemrograman seperti Java mulai menerapkan OOP. Sampai pada 2002, Microsoft Visual Studio memperkenalkan bahasa object-oriented baru yang diberi nama C#. Disusul VB.NET yang merupakan penyempurnaan Visual Basic 6.0 yang tidak mendukung OOP.

Konsep Dasar OOP

Secara umum konsep dasar OOP dapat dilihat pada gambar dibawah ini.

Berdasarkan gambar tersebut berikut merupakan penjelasan dari komponen-komponen yang menjadi konsep dasar OOP.

Object

Objeck adalah suatu cara untuk membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dalam sebuah program komputer berorientasi objek. Setiap objek memiliki dua karakteristik yaitu Attribute (State) dan Behavior. Attribute (State) merupakan identitas atau informasi objek itu sendiri atau disebut juga sebagai variable, sedangkan Behavior adalah tingkah laku atau apa yang dapat dilakukan oleh objek itu atau disebut juga sebagai method.

Class

Class adalah cetak biru (rancangan) atau prototype atau template dari objek. Kita bisa membuat banyak objek dari satu macam class. Class mendefinisikan sebuah tipe dari objek. Di dalam class kita dapat mendeklarasikan variabel dan menciptakan objek (instansiasi). Sebuah class mempunyai anggota yang terdiri dari atribut dan method. Atribut adalah semua field identitas yang kita berikan pada suatu class, misal class manusia memiliki field atribut berupa nama dan umur. Method dapat kita artikan sebagai semua fungsi ataupun prosedur yang merupakan perilaku (behaviour) dari suatu class. 

Inheritance

Inheritance adalah pewarisan yang artinya sebuah class dapat mewarisi atribut dan metho dari class lain. untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class. Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis objek tidak selalu memiliki inheritas). 

Contoh Program Inheritance:

public class Mamalia () {

System.out.println(“Ciri umum mamalia adalah bernapas dengan paru-paru, ” +

“berkembang biak dengan cara beranak”);

}

class () Paus extends Mamalia () {

String x = “Ikan Paus”;

System.out.println(“Mamalia yang Anda pilih adalah “+ x );

System.out.println(“Mamalia ini berada di laut”);

System.out.println(“Paus termasuk jenis mamalia terbesar”);

}

class Sapi () extends Mamalia (){

String x = “Sapi”;

System.out.println(“Mamalia yang Anda pilih adalah “+ x );

System.out.println(“Mamalia ini berada di darat”);

System.out.println(“Sapi termasuk jenis mamalia pemamah biak”);

}

 

Polymorism

Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk Suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek. Polymorism dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Contoh Program Polimorfisme:

Simpan dengan nama BeautyfullMahasiswa.java

public class BeautyfullMahasiswa extends Mahasiswa{

public void printNama(){

System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”)

Super.printNama();

}

}

Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {

BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();

mhs.setNim(“0320110013”);

mhs.setNama(“Mirna Puji Rahayu”);

mhs.printNim();

mhs.printNama();

}

}

 

Abstraction 

Abstraksi adalah proses menyembunyikan detail implementasi dengan hanya menampilkan fungsionalitas kepada pengguna. Secara lain hal ini hanya menunjukkan hal-hal penting kepada pengguna dan menyembunyikan detail internal. Abstraksi memungkinkan kita untuk fokus pada apa yang dilakukan objek alih-alih bagaimana melakukannya. Terdapat dua cara untuk mencapai abstraksi di java yaitu melalui Abstract class (0 to 100%) & Interface (100%).

Contoh Program Abstraction:

abstract class Siswa{  

  abstract void run();  

}  

class Kelas4 extends Siswa{  

void run(){System.out.println("Testing Berjalan");}  

public static void main(String args[]){  

Siswa obj = new Kelas4();  

 obj.run();  

}  

}  

 

Encapsulation 

Encapsulation adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Dalam OOP Encapsulation di wujudkan dalam bentuk “class”. Seperti yang telah dijalaskan sebelumnya dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.

  • Private - Memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
  • Protected - Memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
  • Public - Memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.

Contoh Program Encapsulation:

public class Siswa {

public String nama;

public String nrp;

public void Info() {

System.out.println(“Saya adalah”);

System.out.println(“Nama ” + nama);

System.out.println(“Nrp ” + nrp);

}

}

// Setelah itu kita buat New Class lagi dengan nama IsiData

public class IsiData {

public static void main(String[] args) {

Siswa IT = new Siswa();

IT.nama = “Mirna”;

IT.nrp = “0320110013″;

IT.Info();

}

}

 

Karakteristik OOP

Dalam penerapannya OOP memiliki karakteristik sebagai berikut:

  • Semua adalah objek. 
  • Komputasi dilakukan dengan komunikasi antar objek. 
  • Setiap objek berkomunikasi dengan objek yang lain melalui pengiriman dan penerimaan pesan. 
  • Sebuah pesan merupakan permintaan atas sekumpulan aksi dengan semua argumen yang diperlukan untuk menyelesaikan suatu tugas tertentu. 
  • Setiap objek memiliki memori sendiri, yang dapat terdiri dari objek-objek lainnya. 
  • Setiap objek adalah wakil atau representasi dari suatu kelas. Sebuah kelas dapat mewakili sekelompok objek yang sama. 
  • Kelas merupakan kumpulan tingkah laku yang berkaitan dengan suatu objek. Jadi, semua objek yang merupakan wakil dari kelas yang sama dapat melakukan aksi yang sama pula. 
  • Kelas-kelas diorganisasikan ke dalam struktur pohon yang berakar tunggal, yang dinamakan dengan jenjang pewarisan (inheritance hierarchy). 
  • Setiap objek pada umumnya memiliki tiga sifat, yaitu keadaan, operasi dan identitas objek. 
  • Operasi merupakan tindakan yang dapat dilakukan oleh sebuah objek. 
  • Keadaan objek merupakan koleksi dari seluruh informasi yang dimiliki oleh objek pada suatu saat. 
  • Informasi yang terkandung pada objek tersebut pada akhirnya memberikan identitas khusus yang membedakan suatu objek dengan objek lainnya. 

Manfaat OOP

 Object Oriented adalah himpunan tools dan method yang memungkinkan programer membangun program yang:

  • Reliable 
  • Reusable 
  • User friendly 
  • Dapat memenuhi kebutuhan user 
  • Maintanable 
  • Well documented 

[wkid/sumber artikel:Wikipedia-Pemrograman berorientasi objek/javatpoint-Java OOPs Concepts/Laboratorium Prodase-Oject oriented programming module]

[wkid/picture:javatpoint/java-oops-concepts]


ARTIKEL TERKAIT