Belajar OOP dengan Java - Paradigma & Pilar OOP
Episode 2 of 23

Belajar OOP dengan Java - Paradigma & Pilar OOP

Memahami paradigma OOP secara utuh: perbedaan class sebagai blueprint, object sebagai instance, state sebagai field, behavior sebagai method, dan message passing sebagai cara object berkomunikasi, ditambah empat pilar OOP yang akan menjadi peta belajar di seluruh series.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 1 kita memahami dari mana OOP lahir dan mengapa Java mempopulerkannya, pada episode ini kita membangun kerangka pikir yang akan dipakai di seluruh series. Dua hal yang akan kita kuasai: vocabulary dasar OOP (class, object, state, behavior, message passing) dan empat pilar yang menjadi fondasi desain.

Mengapa episode ini penting? Karena hampir semua diskusi di series ini — dari encapsulation di episode 6 sampai SOLID di episode 14 — hanyalah elaborasi dari empat pilar ini. Jika kalian memahami kerangka di episode ini, episode-episode selanjutnya terasa seperti variasi dari satu tema besar, bukan kumpulan topik yang terpisah.

Konsep Dasar OOP

Class: Cetak Biru (Blueprint)

Class adalah definisi, bukan data. Ia mendeskripsikan apa saja yang dimiliki dan bisa dilakukan oleh sebuah entitas. Analoginya: class adalah cetakan kue atau denah rumah — cetakannya satu, tetapi bisa menghasilkan banyak hasil nyata.

JavaClass adalah blueprint
public class Mobil {
    String warna;
    int tahun;
 
    void gas() {
        System.out.println("Mobil melaju!");
    }
}

Perhatikan: Mobil belum memegang data spesifik apa pun. Ia hanya mendefinisikan bahwa setiap mobil punya warna, tahun, dan bisa gas().

Object: Instance Nyata

Object adalah hasil konkret dari class — data yang benar-benar hidup di memori. Menggunakan analogi di atas: object adalah kue yang sudah jadi atau rumah yang dibangun. Dari satu class Mobil, kalian bisa membuat banyak object mobil dengan warna berbeda.

JavaDari blueprint ke instance
public class Main {
    public static void main(String[] args) {
        Mobil mobilA = new Mobil();
        mobilA.warna = "merah";
        mobilA.tahun = 2024;
 
        Mobil mobilB = new Mobil();
        mobilB.warna = "hitam";
        mobilB.tahun = 2025;
    }
}

new Mobil() menciptakan object baru yang independen — mengubah mobilA tidak akan mengubah mobilB. Inilah pembeda utama class vs object.

State dan Behavior

Dua istilah yang sering dipakai di dunia OOP:

  • State (field) — data yang disimpan object. Pada contoh di atas, warna dan tahun adalah state.
  • Behavior (method) — tindakan yang bisa dilakukan object. gas() adalah behavior.

Prinsip penting yang akan muncul terus: state dan behavior hidup dalam satu kesatuan. Berbeda dengan paradigma prosedural yang memisahkan data dan fungsi, OOP menggabungkan keduanya sehingga tidak ada data yang "mengambang" tanpa pemilik yang jelas.

Message Passing

Dalam OOP, object berkomunikasi dengan mengirim pesan. Ketika mobilA.gas() dipanggil, secara konseptual kita sedang mengirim pesan "gas" ke object mobilA, dan object itu memutuskan bagaimana merespons.

100%

Konsekuensi penting dari message passing: pemanggil tidak perlu tahu bagaimana object bekerja di dalam. Ia hanya perlu tahu pesan apa yang bisa dikirim. Inilah cikal bakal abstraction (pilar keempat) dan interface.

Empat Pilar OOP

1. Encapsulation (Enkapsulasi)

Enkapsulasi berarti menyembunyikan detail internal dan hanya membuka antarmuka yang aman. Seperti mobil: kalian menginjak pedal gas, tanpa perlu tahu mesin membakar bahan bakar bagaimana. Detail internal tersembunyi; perilaku yang aman diekspos.

  • Apa yang dilakukan: menggabungkan state + behavior, lalu mengunci state agar tidak bisa diubah sembarangan.
  • Java tool: access modifiers (private, public), getter/setter.
  • Kapan dibahas: episode 6 secara penuh.

2. Inheritance (Pewarisan)

Inheritance memungkinkan sebuah class mewarisi state dan behavior dari class lain. Seperti anak yang mewarisi sifat orang tuanya, class MobilListrik bisa mewarisi semua dari Mobil lalu menambahkan atau mengubah perilaku.

  • Apa yang dilakukan: menciptakan relasi "is-a" dan reuse hierarki.
  • Java tool: keyword extends, method overriding.
  • Kapan dibahas: episode 7, termasuk pitfall "composition over inheritance".

3. Polymorphism (Polimorfisme)

Polymorphism berarti banyak bentuk. Satu pemanggilan pesan yang sama bisa menghasilkan perilaku berbeda tergantung object penerimanya. mobil.gas() pada MobilListrik menghasilkan suara berbeda dibanding pada Mobil biasa — tetapi pemanggil tidak perlu berubah.

  • Apa yang dilakukan: satu antarmuka, banyak implementasi.
  • Java tool: method overloading (compile-time) dan overriding/dynamic dispatch (runtime).
  • Kapan dibahas: episode 8.

4. Abstraction (Abstraksi)

Abstraction berarti menyoroti yang esensial dan menyembunyikan yang tidak perlu. Kalian hanya melihat "apa yang bisa dilakukan" tanpa dibebani "bagaimana caranya". Interface di Java adalah wujud paling murni: ia mendeklarasikan kontrak tanpa implementasi.

  • Apa yang dilakukan: memisahkan "apa" dari "bagaimana".
  • Java tool: abstract class dan interface.
  • Kapan dibahas: episode 9.

Hubungan Antar Pilar

Keempat pilar tidak berdiri sendiri. Abstraction sering dibangun di atas interface; polymorphism berjalan di atas inheritance atau interface; encapsulation menjaga integritas semua object. Visualisasikan alurnya seperti ini:

100%

Tiga pilar pertama (encapsulation, inheritance, polymorphism) adalah mekanisme; pilar keempat (abstraction) adalah goal yang membuat desain tetap bersih. Di episode 9 dan 14, kalian akan melihat bagaimana abstraction matang menjadi interface-driven design dan prinsip SOLID.

Tip

Cara paling efektif mengingat empat pilar: bayangkan sebuah ATM. Encapsulation menyembunyikan detail mesin uang, inheritance memungkinkan tipe ATM berbeda, polymorphism membuat tombol "Tarik Tunai" bekerja di semua tipe ATM, dan abstraction membuat kalian cukup tahu antarmuka tombolnya tanpa tahu mesinnya bekerja.

Peta Belajar Series

Empat pilar ini menjadi benang merah seluruh series:

EpisodePilar
4-5Class, object, constructor, method (fondasi)
6Encapsulation
7Inheritance
8Polymorphism
9Abstraction
10-13Alat modern Java (record, generics, streams) di atas pilar
14-15SOLID & design patterns — penerapan pilar secara profesional

Penutup

Inti yang harus dibawa pulang:

  • Class adalah blueprint, object adalah instance nyata yang independen.
  • State (field) dan behavior (method) hidup menyatu dalam object.
  • Object berkomunikasi lewat message passing — pemanggil tidak perlu tahu detail internal.
  • Empat pilar: encapsulation, inheritance, polymorphism, abstraction — dengan abstraction sebagai tujuan akhir.

Di episode 3 selanjutnya kita akan menginstall JDK 25 LTS (jika belum), menyiapkan editor, dan menulis Hello World pertama dengan javac dan java. Pastikan environment kalian sudah siap — coding dimulai sekarang!