Belajar OOP dengan Java - Sejarah, Latar Belakang & Mengapa Membutuhkannya
Episode 1 of 23

Belajar OOP dengan Java - Sejarah, Latar Belakang & Mengapa Membutuhkannya

Menelusuri perjalanan OOP dari Simula (1967) dan Smalltalk (1972) yang menelurkan konsep class & object hingga Java yang mempopulerkannya di dunia enterprise sejak 1995, serta memahami mengapa OOP dan Java menjadi pilihan dominan untuk modeling dunia nyata, reuse, dan maintainability.

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

Pendahuluan

Setelah di episode 0 kita menyiapkan environment — memastikan JDK 25 LTS terinstall dan workspace ~/oop-lab siap — pada episode ini kita menarik napas sejenak dari hands-on dan memahami mengapa OOP ada. Sejarah sebuah paradigma mungkin terasa tidak penting, padahal justru di sanalah letak alasan mengapa desainnya seperti sekarang.

Mengapa harus memahami sejarah OOP? Karena OOP tidak lahir dari ruang rapat perusahaan, melainkan dari kebutuhan nyata para peneliti yang frustrasi dengan software yang makin rumit. Memahami asal-usulnya akan menjelaskan keputusan-keputusan desainnya — mengapa ada class dan object, mengapa ada inheritance, dan mengapa Java dibangun sebagai bahasa OOP dari hari pertama.

Sejarah OOP: Dari Simula ke Smalltalk

Simula (1967) — Lahirnya Class dan Object

OOP bermula dari Simula 67, bahasa simulasi yang dikembangkan Ole-Johan Dahl dan Kristen Nygaard di Norwegia. Saat itu mereka harus mensimulasikan kapal, lalu lintas, dan proses industri — masalah yang penuh dengan entitas yang saling berinteraksi dan punya keadaan masing-masing.

Dari kebutuhan ini, Simula memperkenalkan dua konsep yang menjadi fondasi OOP:

  • Class — cetak biru (blueprint) yang mendefinisikan struktur dan perilaku.
  • Object — instance nyata dari class dengan data miliknya sendiri.
FaktaDetail
Simula1967, oleh Dahl & Nygaard (Norwegia)
Konsep baruClass dan object
Tujuan awalSimulasi proses kompleks

Smalltalk (1972) — Mempopulerkan Nama "OOP"

Pada 1972, Alan Kay dan tim di Xerox PARC mengembangkan Smalltalk, bahasa yang menyempurnakan konsep Simula dan — yang terpenting — mempopulerkan istilah "object-oriented programming". Smalltalk memperkenalkan message passing sebagai cara object berkomunikasi: kalian tidak "memanggil fungsi", melainkan "mengirim pesan" ke object.

Dari Smalltalk pula muncul prinsip encapsulation yang ketat: data di dalam object tidak bisa diakses langsung dari luar — hanya bisa diubah lewat pesan (method). Kita akan lihat prinsip ini lagi di episode 6.

Java: Memopulerkan OOP di Dunia Enterprise

Kelahiran Java (1995)

Bahasa OOP sebelumnya seperti Smalltalk atau C++ terasa terpecah: Smalltalk terlalu eksperimental untuk industri, C++ terlalu dekat dengan C dan rawan error. Pada 1995, tim Sun Microsystems yang dipimpin James Gosling merilis Java dengan slogan khasnya: "write once, run anywhere".

Java dibangun sebagai bahasa OOP sejak awal — bukan ditambal kemudian. Semua kode di Java hidup di dalam class, dan setiap file .java adalah pendefinisian class. Inilah yang membuat Java konsisten mengekspos konsep OOP secara eksplisit, dan itulah alasan series ini memilih Java sebagai medium.

JavaSemua kode Java hidup dalam class
public class Hello {
    public static void main(String[] args) {
        System.out.println("Halo dari Java, bahasa OOP murni!");
    }
}

Perhatikan: bahkan program paling sederhana sekalipun wajib dibungkus class. Tidak ada "script top-level" seperti di Python. Inilah wujud nyata dari "Java adalah bahasa OOP murni".

Ekosistem JVM

Keunggulan Java tidak berhenti di bahasa itu sendiri. JVM (Java Virtual Machine) menjadi fondasi ekosistem raksasa: Android (melalui Kotlin/Java), sistem enterprise, big data (Hadoop, Spark, Kafka), sampai aplikasi backend berskala jutaan request per detik. Java juga menjadi pintu masuk alami ke bahasa JVM lain seperti Kotlin dan Scala.

Mengapa OOP + Java

Modeling Dunia Nyata

Paradigma sebelumnya (prosedural) memecah program menjadi fungsi dan data yang terpisah. OOP justru menggabungkan keduanya: sebuah object membawa data (state) sekaligus perilaku (behavior) dalam satu kesatuan. Untuk sistem nyata — pengguna, pesanan, transaksi — pemetaan ini terasa alami.

Reuse dan Maintainability

OOP menyediakan mekanisme reuse yang terstruktur:

  • Inheritance — class baru mewarisi perilaku class lama (episode 7).
  • Composition — object dibangun dari object lain (dibahas di episode 7 dan 14).
  • Polymorphism — satu antarmuka, banyak implementasi (episode 8).

Hasilnya: perubahan pada satu bagian sistem tidak meledak ke bagian lain. Inilah alasan utama OOP menang untuk software berskala besar.

Dominasi di Pasar Kerja

Di 2026, Java masih menjadi bahasa backend paling banyak dipakai di enterprise. Menguasai OOP dengan Java berarti membuka pintu ke Spring Boot, ekosistem cloud, Android, dan big data — bukan hanya soal sintaks, tapi soal cara berpikir yang dicari perusahaan.

Note

OOP bukan satu-satunya paradigma. Bahasa seperti Rust dan Go justru menonjolkan pendekatan non-OOP (traits dan composition). Perbandingan lengkap antar paradigma dan ekosistem akan kita bahas di episode 22.

Timeline Singkat

TahunTonggak
1967Simula — Dahl & Nygaard menciptakan class & object
1972Smalltalk — Alan Kay mempopulerkan istilah OOP & message passing
1983C++ — OOP ditambahkan ke atas C, jadi populer di industri
1995Java 1.0 — bahasa OOP murni dari Sun Microsystems
2000-anJava mendominasi enterprise; lahir ekosistem JVM (Android, Hadoop)
2014Java 8 — lambdas & streams (episode 13)
2025JDK 25 LTS — Java modern: virtual threads, records, sealed classes

Penutup

Pada episode 1 ini, kalian telah menelusuri perjalanan OOP dari Simula dan Smalltalk hingga Java yang memopulerkannya di dunia enterprise.

Inti yang harus dibawa pulang:

  • OOP lahir dari Simula (1967) dan Smalltalk (1972) — class, object, dan message passing.
  • Java (1995) membangun OOP murni sejak awal; setiap program adalah class.
  • OOP menang untuk modeling dunia nyata, reuse, dan maintainability.
  • Java + JVM adalah ekosistem backend paling dominan — pintu ke Spring, Android, dan big data.

Di episode 2 selanjutnya kita akan membedah paradigma dan empat pilar OOP — encapsulation, inheritance, polymorphism, dan abstraction — plus perbedaan fundamental antara class, object, state, behavior, dan message passing. Sampai jumpa di episode 2!