Perbedaan antara Procedural dan Object Oriented Programming

By Rizky Kurniawan - March 12, 2023 ~5 mins read

RUANGDEVELOPER.com - Halo Talenta Digital, apakah saat ini kamu sedang memulai untuk belajar pemrograman? Kamu sedang mencari-cari materi pemrograman dan tidak sengaja menemukan materi tentang Procedural Programming dan Object Oriented Programming? Yuk kita bahas tentang Procedural Programming dan Object Oriented Programming pada postingan ini!

So, mari kita lanjutkan pembahasan tentang perbedaan antara Procedural Programming dan Object Oriented Programming.

Procedural Programming

Procedural Programming adalah paradigma pemrograman di mana sebuah program terdiri dari satu atau lebih prosedur atau fungsi. Dalam pendekatan ini, program akan dieksekusi secara berurutan dari awal hingga akhir, seperti sebuah skenario linear. Setiap prosedur memiliki tugas tertentu dan menerima input serta menghasilkan output.

Kelebihan Procedural Programming

  1. Modularitas: Procedural Programming memungkinkan programmer untuk membagi program menjadi modul-modul yang lebih kecil, sehingga memudahkan untuk memelihara dan mengubah program dalam skala besar.
  2. Efisiensi: Paradigma ini merupakan salah satu paradigma pemrograman yang paling efisien dalam hal penggunaan sumber daya, seperti memori dan CPU.
  3. Keterbacaan: Struktur dari paradigma ini yang terdiri dari fungsi-fungsi dan prosedur-prosedur membuat kode menjadi lebih mudah dibaca dan dipahami.
  4. Mudah Dipelajari: Procedural Programming relatif mudah dipelajari karena tidak memerlukan pengetahuan khusus seperti OOP (Object-Oriented Programming).

Kekurangan Procedural Programming

  1. Sulit Dalam Skala Besar: Ketika program menjadi semakin besar dan kompleks, maka struktur yang modular dan pemrograman linear dari paradigma ini menjadi kurang efektif dan sulit dikelola.
  2. Tidak Fleksibel: Paradigma ini kurang fleksibel karena semua fungsi-fungsi dan prosedur-prosedur terikat pada program utama.
  3. Masalah Maintenance: Ketika terdapat perubahan pada program, maka perlu dilakukan perubahan pada setiap bagian program yang terkait, sehingga memerlukan waktu dan usaha yang lebih banyak untuk memelihara program.
  4. Tidak Cocok Untuk Desain GUI: Procedural Programming kurang cocok untuk pembuatan aplikasi dengan antarmuka grafis yang kompleks seperti game atau aplikasi desktop modern karena kurang mendukung konsep OOP dan abstraksi visual yang lebih baik.

Contoh

Berikut ini adalah contoh Procedural Programming menggunakan JavaScript:

// Deklarasi variabel
let a = 5;
let b = 10;

// Fungsi penjumlahan
function tambah(a, b) {
  return a + b;
}

// Fungsi pengurangan
function kurang(a, b) {
  return a - b;
}

// Memanggil fungsi dan mencetak hasil
console.log(tambah(a, b));
console.log(kurang(a, b));

Object Oriented Programming

Di sisi lain, Object Oriented Programming (OOP) adalah paradigma pemrograman di mana program terdiri dari objek-objek yang saling berinteraksi untuk mencapai tujuan tertentu. Setiap objek memiliki atribut dan perilaku yang unik dan dapat berinteraksi dengan objek lain melalui metode yang ditentukan.

Kelebihan Object Oriented Programming

  1. Modularitas: OOP memungkinkan programmer untuk membagi program menjadi objek-objek yang lebih kecil, sehingga memudahkan untuk memelihara dan mengubah program dalam skala besar.
  2. Abstraksi: Konsep abstraksi dalam OOP memungkinkan programmer untuk menyembunyikan detail implementasi objek dan hanya menampilkan fungsionalitas yang dibutuhkan, sehingga memudahkan untuk memahami program secara keseluruhan.
  3. Inheritance: Konsep inheritance dalam OOP memungkinkan programmer untuk membuat hierarki kelas yang saling terkait, sehingga memudahkan untuk membagi kode dan mencegah duplikasi.
  4. Polymorphism: Konsep polymorphism dalam OOP memungkinkan programmer untuk membuat banyak objek dengan berbagai perilaku dan sifat yang berbeda, sehingga memungkinkan untuk membuat program yang lebih fleksibel dan mudah diubah.

Kekurangan Object Oriented Programming

  1. Kompleksitas: OOP dapat menjadi kompleks dan sulit dipelajari karena banyaknya konsep yang harus dipahami oleh programmer.
  2. Kinerja: OOP dapat memerlukan sumber daya yang lebih banyak daripada paradigma pemrograman lain, sehingga dapat mempengaruhi kinerja program.
  3. Overhead: Konsep inheritance dan polymorphism dalam OOP dapat menyebabkan overhead yang berlebihan pada program.
  4. Kesalahan Desain: Jika desain objek tidak dipikirkan dengan baik, maka dapat menyebabkan masalah dalam program, seperti meningkatnya kompleksitas, ketidakefisienan, dan kesulitan dalam pemeliharaan.

Contoh

Berikut ini adalah contoh Object Oriented Programming menggunkaan JavaScript:

// Membuat class dengan constructor
class Kalkulator {
  constructor(a, b) {
    this.a = a;
    this.b = b;
  }

  // Metode penjumlahan
  tambah() {
    return this.a + this.b;
  }

  // Metode pengurangan
  kurang() {
    return this.a - this.b;
  }
}

// Membuat objek dari class
let kalkulator = new Kalkulator(5, 10);

// Memanggil metode dan mencetak hasil
console.log(kalkulator.tambah());
console.log(kalkulator.kurang());

Perbedaan antara Procedural dan Object Oriented Programming

Berikut adalah beberapa perbedaan antara Procedural Programming dan Object Oriented Programming:

Pendekatan Berorientasi Objek (Object-Oriented Approach)

OOP berorientasi pada objek, sedangkan Procedural Programming berorientasi pada prosedur. Dalam OOP, program dibangun melalui pengelompokkan data dan fungsi-fungsi menjadi objek-objek yang dapat berinteraksi satu sama lain. Sedangkan, dalam Procedural Programming, program dibangun melalui serangkaian fungsi-fungsi yang dipanggil secara berurutan.

Penggunaan Class

OOP menggunakan class untuk membuat objek, sedangkan dalam Procedural Programming, tidak ada konsep class. Objek dalam OOP memiliki atribut dan metode yang menentukan perilaku objek tersebut. Dalam Procedural Programming, fungsi-fungsi mengoperasikan data yang diteruskan ke dalamnya.

Inheritance (Pewarisan)

Konsep inheritance memungkinkan penggunaan kembali kode yang ada dalam OOP. Inheritance memungkinkan objek untuk mewarisi sifat dan perilaku dari objek lain. Sedangkan, dalam Procedural Programming, pewarisan tidak ada, sehingga kode harus ditulis ulang.

Polimorfisme

Polimorfisme adalah kemampuan suatu objek untuk memiliki beberapa bentuk atau perilaku yang berbeda. OOP memungkinkan polimorfisme, di mana suatu metode dapat memiliki implementasi yang berbeda dalam beberapa kelas yang berbeda. Sedangkan, dalam Procedural Programming, polimorfisme tidak didukung secara alami, sehingga implementasi fungsi harus ditulis ulang jika fungsi yang sama digunakan dalam beberapa tempat.

Pemecahan Masalah

Dalam OOP, pemecahan masalah dilakukan dengan membuat objek-objek yang merepresentasikan bagian-bagian dari masalah. Setiap objek memiliki atribut dan metode yang merepresentasikan sifat dan perilaku objek tersebut. Sedangkan, dalam Procedural Programming, masalah dipecahkan dengan menuliskan serangkaian instruksi yang harus diikuti oleh program.

Nah, demikianlah perbedaan antara Procedural Programming dan Object Oriented Programming. Kedua paradigma ini memiliki kelebihan dan kekurangan masing-masing, dan keduanya dapat digunakan untuk memecahkan masalah secara efektif tergantung pada kebutuhan dan persyaratan program yang dibuat.

Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox