Object Oriented Programming

Aditya Novandri
3 min readApr 22, 2024

--

Di tulisan ini saya akan membahas mengenai pemrograman berorientasi object (Object Oriented Programming).

Seperti yang kita ketahui ada beberapa paradigma dalam pemrograman, diantaranya adalah Imperative dan Declarative.

  1. Imperative: adalah paradigma pemrograman dimana sebuah program mendeskripsikan serangkaian langkah yang dapat mengubah kondisi (state) dari sebuah program itu sendiri. Programmer membuat program dengan membuat perintah secara sekuensial. Seringkali menggunakan data baik yang bersifat mutable* dan immutable**. Paradigma ini berfokus ke cara (“How”) untuk membuat sebuah program. Contoh: Java, C, C++
  2. Declarative: adalah paradigma pemrograman yang menekankan logic tanpa secara eksplisit mendeskripsikan serangkaian langkah yang mengubah state dari program itu sendiri. Paradigma ini seringkali berfokus pada alur data (data flow). Sebagai contoh pada SQL, dimana kita berfokus pada data yang dihasilkan (“What”) dari sebuah query berserta dengan kondisi-kondisi yang menyertainya daripada berfokus terhadap proses bagaimana query itu bekerja. Contoh: SQL, Haskell, Erlang.

Apakah dalam mengembangkan sebuah program kita harus menggunakan salah satu dari paradigma Imperative / Declarative atau bisa menggabungkan keduanya? “Jawabannya adalah kita bisa menggabungkan kedua paradigma tersebut

Kali ini kita akan berfokus terhadap Object Oriented Programming (OOP) yang seringkali disebut sebagai bagian dari paradigma pemrograman Imperative.

OOP

OOP adalah paradigma pemrograman berorientasi object dimana dalam membuat sebuah program kita memodelkannya menjadi object-object yang saling berinteraksi satu sama lain. Setiap object mewakili instance dari suatu class yang mendefinisikan struktur dan perilaku dari object itu sendiri.

Ada beberapa konsep utama dalam pemrograman OOP:

  • Class: adalah blueprint atau template yang digunakan untuk membuat sebuah object. Class mendefinisikan data (attribute) serta fungsi (method) yang dimiliki dan dijalankan oleh object.
class Product {
private String category;
private String name;

public Product(String name, String category) {
this.category = category;
this.name = name;
}
}
  • Object: adalah unit dasar dalam OOP yang menggabungkan data (attribute) dan perilaku (method) dan merupakan instance dari class. Object bisa berupa benda dan bisa dalam bentuk yang masih abstract.
//Membuat instance object product dari class Product
Product product = new Product("Electronic", "Television");
  • Encapsulation: adalah konsep yang memungkinkan attribute dan method dari sebuah object untuk dikelompokkan bersama dan dibatasi aksesnya. Ini membantu dalam memelihara integritas data dan meminimalkan ketergantungan antara bagian-bagian yang berbeda dalam sebuah program.
class Product {
private String category; // category tidak dapat diakses dari class yang berbeda
private String name; // name tidak dapat diakses dari class yang berbeda

public Product(String name, String category) {
this.category = category;
this.name = name;
}

public String getName() {
return this.name;
}
}
  • Inheritance: adalah konsep pewarisan dimana sebuah class dapat mewariskan attribute dan method yang dimiliknya ke class turunannya. Hal ini dimungkinkan untuk mengatur dan mengelompokkan kode dengan lebih baik.
class Electronic extends Product {
private static final String CATEGORY = "Electronic";

public Electronic(String name) {
super(CATEGORY, name);
}
}
  • Polymorphism: adalah kemampuan sebuah object untuk memiliki banyak bentuk atau perilaku. Dalam konteks OOP, ini berarti object yang merupakan instance dari suatu class dapat memiliki perilaku yang berbeda tergantung pada implementasi dari object nya itu sendiri. Polymorphism ini akan berhubungan dengan bagaimana cara kita meng-abstraksi sebuah implementasi object.
class Product { ... }

class Electronic extends Product { ... }

class Fashion extends Product {
private static final String CATEGORY = "Fashion";

public Fashion(String name) {
super(CATEGORY, name);
}
}

class Sample {
public static void main(String[] args) {
Product product = new Electronic("Television");
System.out.println(product.getName()) // menampilkan "Television"

product = new Fashion("Sneaker");
System.out.println(product.getName()) // menampilkan "Sneaker"

//Object product dapat berperilaku sebagai Electronic maupun Fashion
//tergantung dari implementasi dari object tersebut
}
}

Contoh-contoh diatas menggunakan bahasa pemrograman Java.

Artikel selanjutnya :

Keterangan:

*Mutable: sebuah object dimana internal data (attribute) dari object tersebut dapat diubah.

**Immutable: sebuah object dimana internal data (attribute) yang dimilikinya tidak dapat diubah. Ketika kita ingin mengubah attribute dari object tersebut maka perlu untuk membuat object yang baru.

--

--

Aditya Novandri
Aditya Novandri

Written by Aditya Novandri

Passionate in software engineering.

No responses yet