OOP Adalah: Pengertian, Prinsip, Contoh

OOP Adalah

Object-Oriented Programming (OOP) atau Pemrograman Berorientasi Objek adalah paradigma pemrograman yang berfokus pada penggunaan “objek” dalam proses pengembangan perangkat lunak. Setiap objek merepresentasikan entitas dunia nyata dan memiliki atribut (data) serta metode (fungsi) yang menggambarkan perilakunya. Konsep ini dirancang untuk membuat program lebih modular, mudah dikelola, dan fleksibel dalam pengembangan jangka panjang. Empat pilar utama OOP meliputi enkapsulasi, inheritance (pewarisan), polimorfisme, dan abstraksi. Pendekatan ini banyak digunakan dalam bahasa pemrograman modern seperti Java, C++, Python, dan C#.

Pengertian OOP (Object Oriented Programming)

Object-Oriented Programming (OOP) atau Pemrograman Berorientasi Objek adalah paradigma pemrograman yang menggunakan “objek” sebagai dasar utama dalam menyusun program. Objek ini merepresentasikan entitas dunia nyata dan memiliki dua komponen utama:

  1. Atribut (data/properti) – karakteristik dari objek.
  2. Metode (fungsi/behavior) – aksi atau perilaku yang bisa dilakukan objek.

Tujuan utama OOP adalah untuk mempermudah pengembangan dan pemeliharaan program dengan menyusun kode agar lebih modular, fleksibel, dan mudah digunakan kembali (reusable).

Baca Juga: CRUD Adalah: Cara Kerja, Fungsi, Contoh

Prinsip OOP

Prinsip dasar OOP (Object-Oriented Programming) ada empat, dan masing-masing punya peran penting dalam membuat kode yang modular, fleksibel, dan mudah dikelola. Berikut penjelasan keempat prinsip tersebut:

 1. Encapsulation (Enkapsulasi)

Menyembunyikan detail internal dari objek dan hanya memberikan akses melalui metode (fungsi) yang sudah ditentukan.

Tujuan: Melindungi data agar tidak diubah sembarangan dan menjaga integritas objek.

Contoh:

class BankAccount:

    def __init__(self):

        self.__saldo = 0  # tanda __ artinya private

    def deposit(self, jumlah):

        if jumlah > 0:

            self.__saldo += jumlah

    def lihat_saldo(self):

        return self.__saldo

 2. Inheritance (Pewarisan)

Suatu kelas dapat mewarisi properti dan metode dari kelas lain.

Tujuan: Mengurangi duplikasi kode dan memudahkan pengembangan program.

Contoh:

class Hewan:

    def bersuara(self):

        print("Hewan bersuara")

class Kucing(Hewan):

    def bersuara(self):

        print("Meong")

 3. Polymorphism (Polimorfisme)

Satu metode bisa memiliki banyak bentuk tergantung pada objek yang memanggilnya.

Tujuan: Memungkinkan satu antarmuka bisa digunakan untuk berbagai jenis objek.

Contoh:

def buat_suara(hewan):

    hewan.bersuara()

buat_suara(Kucing())   # Output: Meong

buat_suara(Hewan())    # Output: Hewan bersuara

 4. Abstraction (Abstraksi)

Menyembunyikan kompleksitas sistem dan hanya menunjukkan bagian penting kepada pengguna.

Tujuan: Menyederhanakan interaksi dengan objek dan meningkatkan fokus pada apa yang dilakukan, bukan bagaimana.

Kelebihan dan Kekurangan OOP

Berikut adalah kelebihan dan kekurangan OOP (Object-Oriented Programming) secara ringkas dan jelas:

Kelebihan OOP:

1. Modular dan Terstruktur

  • Kode dibagi dalam objek-objek yang terpisah, sehingga mudah dipahami dan dikelola.

2. Reusability (Dapat Digunakan Ulang)

  • Kelas dan objek bisa digunakan kembali di bagian lain program atau proyek lain.

3. Mudah Dikembangkan dan Dipelihara

  • Perubahan atau penambahan fitur bisa dilakukan dengan memodifikasi atau menambahkan class baru, tanpa mengganggu keseluruhan sistem.

4. Kolaborasi Lebih Mudah

  • Dalam tim, masing-masing developer bisa fokus mengembangkan objek/kelas tertentu.

5. Abstraksi

  • Fokus pada hal penting saja, detail kompleks disembunyikan (misalnya: pengguna tidak perlu tahu cara kerja internal suatu metode).

6. Keamanan Data (Encapsulation)

  • Data terlindungi karena akses hanya bisa dilakukan melalui metode tertentu.

 Kekurangan OOP:

1. Kompleks untuk Proyek Kecil

  • Struktur OOP bisa terasa terlalu “berat” atau rumit untuk program yang sederhana.

2. Performa Lebih Lambat

  • Dibandingkan pendekatan prosedural, OOP bisa sedikit lebih lambat karena adanya overhead dari class, inheritance, dan lain-lain.

3. Butuh Desain Awal yang Matang

  • Harus dipikirkan dengan baik sejak awal: class apa saja yang dibutuhkan, hubungan antar class, dll. Kalau desain awal buruk, bisa jadi sulit diperbaiki nantinya.

4. Curam untuk Pemula

  • Konsep seperti inheritance, polymorphism, dan abstraksi bisa membingungkan di awal.

Baca Juga: Spoofing Adalah: Tujuan, Jenis, Perbedaan

Contoh OOP

Berikut beberapa contoh OOP (Object-Oriented Programming) dalam kehidupan nyata dan penerapannya di berbagai bahasa pemrograman:

  1. Mobil (Objek)
    • Atribut: warna, merek, tahun
    • Metode: nyalakan mesin, jalan, rem
  2. Mahasiswa (Objek)
    • Atribut: nama, NIM, jurusan
    • Metode: belajar(), absen(), ujian()
  3. Hewan (Objek)
    • Atribut: jenis, umur, suara
    • Metode: makan(), tidur(), bersuara()

 Contoh Penerapan OOP di Bahasa Pemrograman

1. Python

class Mahasiswa:

    def __init__(self, nama, nim):

        self.nama = nama

        self.nim = nim

    def belajar(self):

        print(f"{self.nama} sedang belajar.")

mhs1 = Mahasiswa("Budi", "12345")

mhs1.belajar()  # Output: Budi sedang belajar.

2. Java

class Mahasiswa {

    String nama;

    String nim;

    Mahasiswa(String nama, String nim) {

        this.nama = nama;

        this.nim = nim;

    }

    void belajar() {

        System.out.println(nama + " sedang belajar.");

    }

}

public class Main {

    public static void main(String[] args) {

        Mahasiswa m1 = new Mahasiswa("Budi", "12345");

        m1.belajar();

    }

}

3. C++

#include <iostream>

using namespace std;

class Mahasiswa {

public:

    string nama;

    string nim;

    Mahasiswa(string n, string id) {

        nama = n;

        nim = id;

    }

    void belajar() {

        cout << nama << " sedang belajar." << endl;

    }

};

int main() {

    Mahasiswa m1("Budi", "12345");

    m1.belajar();

    return 0;}

Perbandingan OOP dan Functional Programing

Mari kita bahas perbandingan antara OOP (Object-Oriented Programming) dan Functional Programming (FP). Keduanya adalah paradigma pemrograman, tapi cara berpikir dan pendekatannya sangat berbeda.

AspekOOP (Object-Oriented Programming)Functional Programming (FP)
🔧 PendekatanBerbasis objek yang punya data & fungsiBerbasis fungsi murni tanpa efek samping
Unit utamaObjek (instansi dari class)Fungsi
Data dan ProsesData dan fungsi digabung dalam objekData dan fungsi terpisah
State (keadaan)Mengandalkan perubahan stateTidak mengubah state, tapi menghasilkan data baru
 – EnkapsulasiYa, dengan class dan akses kontrolTidak, semua data bisa transparan
ReusabilityMelalui inheritance dan polymorphismMelalui komposisi fungsi (function composition)
Efek sampingBoleh ada efek samping (misalnya mengubah data objek)Sebisa mungkin tidak ada efek samping
Mutability (bisa diubah)Data umumnya mutable (bisa diubah)Data umumnya immutable (tidak bisa diubah)
Contoh bahasaJava, C++, Python (bisa OOP)Haskell, Elixir, Scala, JavaScript (bisa FP)

Baca Juga: Cara Cek Link Phising atau Bukan dengan Mudah

Kesimpulan

Object-Oriented Programming (OOP) merupakan pendekatan pemrograman yang efektif dan terstruktur, karena mampu merepresentasikan elemen-elemen dunia nyata dalam bentuk objek. Dengan memanfaatkan prinsip-prinsip seperti enkapsulasi, pewarisan, polimorfisme, dan abstraksi, OOP membantu pengembang menciptakan program yang lebih modular, mudah dirawat, serta scalable. Oleh karena itu, OOP menjadi salah satu paradigma penting dalam dunia pemrograman modern yang banyak digunakan dalam berbagai aplikasi, mulai dari perangkat lunak desktop hingga sistem berbasis web dan mobile.

Belajar OOP (Object-Oriented Programming) makin lancar tanpa gangguan dengan paket Internet Only dari ION Network! Mulai dari 160 ribuan, kamu bisa nikmati kecepatan internet hingga 1 Gbps. Pas banget buat ngoding, belajar konsep OOP seperti enkapsulasi sampai polimorfisme, atau streaming tutorial tanpa buffering. Yuk, upgrade koneksimu dan jadikan proses belajar pemrograman lebih cepat, stabil, dan tanpa batas!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top