Perbedaan antara OOP dan Prosedural: Konsep dan Karakteristik yang Berbeda

Banyak orang yang mempelajari pemrograman pasti tidak asing dengan istilah OOP (Object Oriented Programming) dan prosedural. Perbedaan OOP dan prosedural bisa menjadi poin penting untuk dipahami sebelum memutuskan metode apa yang akan digunakan dalam coding. Keduanya adalah paradigma pemrograman yang berbeda satu sama lain. Namun, memiliki kelebihan dan kekurangan masing-masing.

OOP adalah pemrograman dengan orientasi pada objek atau model objek. Sedangkan, prosedural adalah salah satu cara untuk memprogram yang berdasarkan urutan logis instruksi. Perbedaan mendasar antara keduanya adalah cara mereka memproses data dan operasi yang diberikan. OOP berfokus pada objek, di mana objek digunakan untuk merepresentasikan data dan fungsi-fungsi dalam program, sedangkan prosedural lebih fokus pada urutan tindakan dan fungsi-fungsi yang dimiliki program itu sendiri.

Banyak developer memiliki preferensi masing-masing terkait perbedaan OOP dan prosedural. Mempelajari perbedaan keduanya juga membuka perspektif baru dalam coding. Memahami kelebihan dan kekurangan dari kedua paradigma bisa membantu dalam mengambil keputusan dan solusi terbaik untuk setiap masalah pemrograman yang dihadapi. Bagi yang sudah berpengalaman, tentu sudah bisa menentukan mana yang lebih efektif dan efisien untuk digunakan dalam projek pemrograman yang sedang dijalankan.

Definisi OOP dan Prosedural

Pemrograman Orientasi Objek (OOP) dan Pemrograman Prosedural adalah dua paradigma pemrograman yang paling umum digunakan dalam pengembangan software. OOP menggunakan konsep objek sedangkan pemrograman prosedural adalah pendekatan yang menekankan pada urutan eksekusi suatu program. Keduanya memiliki karakteristik yang berbeda dan kelebihan yang unik.

  • Pemrograman Orientasi Objek (OOP)

OOP mempertimbangkan data dan fungsi sebagai satu kesatuan yang disebut dengan “object,” sehingga memungkinkan pembuatan objek dari sejumlah data, dan fungsi dapat menangani objek tersebut. Pendekatan ini membantu developer membuat kode yang lebih mudah di-maintain, lebih efisien, dan mudah dimengerti. OOP menggabungkan beberapa komponen, termasuk enkapsulasi, pewarisan, dan polimorfisme, yang memungkinkan pengguna membuat kode yang mudah digunakan dan fleksibel untuk digunakan kembali di masa depan.

  • Pemrograman Prosedural

Pemrograman prosedural adalah paradigma pemrograman yang tergantung pada fungsi dan proses. Pendekatan ini memberikan kesempatan programmer untuk mendekomposisi tugas menjadi fungsi yang manfaatnya dapat diakses dari berbagai bagian dalam program. Keuntungan pemrograman prosedural adalah mudah dibaca dan ditulis, karena fungsi dapat digunakan kembali dari mana saja. Namun, kompleksitas program dapat bertambah ketika proyek menjadi terlalu besar.

Konsep Paradigma Pemrograman

Pemrograman merupakan suatu ilmu yang mempelajari bagaimana cara membuat sebuah program komputer. Terdapat banyak paradigma atau pendekatan dalam pemrograman yang bisa kita gunakan, termasuk OOP (Object-Oriented Programming) dan Prosedural. Keduanya memiliki konsep yang berbeda dan akan kita jelaskan di bawah ini.

Perbedaan OOP dan Prosedural

  • Pemrograman Prosedural:

    • Menggunakan prosedur atau sub-routine untuk menjalankan kode program.
    • Memiliki aliran kontrol yang linear atau berurutan.
    • Program dipecah menjadi sejumlah fungsi atau prosedur.
  • Pemrograman OOP:

    • Menggunakan objek sebagai dasar dari program.
    • Memiliki aliran kontrol yang tidak berurutan atau dapat dianggap paralel.
    • Program dipecah menjadi sejumlah kelas atau objek.

Konsep OOP

Konsep OOP didasarkan pada penggunaan objek. Objek merupakan kumpulan dari data dan metode yang ada dalam program. Dalam OOP, objek dianggap sebagai hal yang mampu melakukan sesuatu (mempunyai fungsi), dan sesuatu tersebut diwakili oleh data dan metodenya. Objek juga bisa berinteraksi dengan objek lainnya dalam program, yang dianggap sebagai fitur penting dalam pengembangan program yang kompleks.

Objek dalam OOP dirancang sedemikian rupa sehingga dapat mengurangi kompleksitas dari sebuah program. Penggunaan objek juga memungkinkan programmer untuk merepresentasikan aplikasi dalam suatu model yang nyata dan lebih mudah dimengerti oleh pengguna.

Konsep Prosedural

Pada dasarnya, pemrograman prosedural hanya menggunakan fungsi atau prosedur sebagai dasar dari programnya. Fungsi atau prosedur pada pemrograman prosedural sering digunakan untuk melakukan manipulasi terhadap data yang diterima program sebagai masukan, kemudian mengembalikannya dalam bentuk hasil pengolahan.

Salah satu keuntungan dari pemrograman prosedural adalah sifat kesederhanaannya. Struktur organisasi programnya yang linear atau berurutan membuat program menjadi lebih mudah dipahami, terutama untuk pemula. Namun, pada program yang kompleks dengan banyak aliran kontrol yang harus diatur, pemrograman prosedural kurang efektif dibandingkan dengan OOP.

Tabel Perbandingan OOP dan Prosedural

Konsep OOP Prosedural
Dasar Program Objek Fungsi/Prosedur
Aliran Kontrol Tidak berurutan (paralel) Linear/berurutan
Kompleksitas Cenderung kompleks Relatif sederhana

Dari tabel perbandingan di atas, bisa dilihat bahwa OOP cenderung lebih kompleks dibandingkan dengan pemrograman prosedural. Namun, penggunaan objek di dalam program sangat membantu dalam mengembangkan program yang kompleks dan mempermudah pemeliharaannya di masa depan.

Tujuan OOP dan Prosedural

Ketika membahas perbedaan antara OOP (Object Oriented Programming) dan prosedural, hal yang penting untuk diperhatikan adalah tujuan dari kedua paradigma ini. Meskipun keduanya digunakan untuk membuat aplikasi, tujuan di balik penggunaan keduanya sangat berbeda.

Tujuan OOP

  • Memudahkan pengembangan dan pemeliharaan aplikasi
  • Meningkatkan reusability dan fleksibilitas kode
  • Memungkinkan pengembangan berdasarkan model dunia nyata (real-world)

Dalam OOP, aplikasi dipandang sebagai kumpulan objek yang saling berinteraksi satu sama lain untuk mencapai tujuan tertentu. Masing-masing objek memiliki properti dan perilaku tertentu, dan dikembangkan dengan mempertimbangkan hierarki pewarisan dan polimorfisme. Tujuan utama dari OOP adalah memudahkan pengembangan dan pemeliharaan aplikasi dengan memecah aplikasi menjadi objek-objek yang lebih kecil dan lebih mudah diatur.

Tujuan Prosedural

Di sisi lain, tujuan dari paradigma prosedural adalah berbeda. Dalam prosedural, aplikasi dipandang sebagai urutan proses dan instruksi yang dikerjakan oleh komputer. Data dan fungsi dipisahkan, dan penggunaan variabel global dihindari. Tujuan dari paradigma ini adalah membuat kode menjadi lebih efektif, terstruktur dengan rapi, dan mudah dipahami.

Kesimpulan

Jadi, meskipun keduanya digunakan untuk membuat aplikasi, tujuan dari OOP dan prosedural sangat berbeda. OOP dirancang untuk memudahkan pengembangan dan pemeliharaan aplikasi dengan membagi aplikasi menjadi objek-objek, sedangkan prosedural dirancang untuk membuat kode lebih efektif, terstruktur dengan rapi, dan mudah dipahami.

OOP Prosedural
Memecah aplikasi menjadi objek-objek Mengorganisir kode menjadi urutan proses
Meningkatkan reusability dan fleksibilitas kode Membuat kode menjadi lebih efektif dan mudah dipahami
Memungkinkan pengembangan berdasarkan model dunia nyata Menghindari penggunaan variabel global

Jadi, pemilihan paradigma yang tepat tergantung pada tujuan dan kebutuhan aplikasi yang diinginkan. Penting untuk memahami perbedaan antara kedua paradigma ini agar dapat memilih pendekatan yang tepat dalam pengembangan aplikasi.

Kelebihan dan Kekurangan OOP dan Prosedural

OOP (Object Oriented Programming) dan prosedural merupakan dua paradigma pemrograman yang berbeda dalam pendekatan pengembangan aplikasi. Masing-masing memiliki kelebihan dan kekurangan yang perlu dipertimbangkan sebelum memilih salah satu pendekatan. Berikut adalah beberapa kelebihan dan kekurangan OOP dan prosedural:

  • Kelebihan OOP:
    • Dapat mempermudah pengembangan aplikasi dengan membagi program menjadi beberapa modul yang terpisah, sehingga mempermudah dalam pemeliharaan dan pengembangan aplikasi.
    • Dapat meningkatkan reusabilitas kode, sehingga menghemat waktu dalam pengembangan aplikasi.
    • Dapat mewujudkan konsep pengelompokan attribut dan perilaku menjadi satu kesatuan, sehingga memungkinkan untuk mengidentifikasi kesamaan antara objek-objek yang ada dalam sistem.
  • Kekurangan OOP:
    • Membutuhkan pemahaman konsep yang lebih dalam dan kompleks dari programmer, sehingga membutuhkan waktu lebih lama dalam pengembangan aplikasi.
    • Membutuhkan sumber daya yang lebih besar dalam pengembangan aplikasi, terutama saat membuat blueprint class.
    • Kemungkinan terjadi masalah performa saat aplikasi menjadi terlalu kompleks.
  • Kelebihan Prosedural:
    • Sederhana dan mudah dipahami, sehingga mempermudah dalam pengembangan aplikasi.
    • Tidak membutuhkan sumber daya yang besar dalam pengembangan aplikasi.
    • Cocok untuk digunakan dalam pengembangan aplikasi kecil dan sederhana.
  • Kekurangan Prosedural:
    • Mudah untuk membuat program menjadi tidak terorganisir dan sulit untuk dipelihara terutama saat program semakin besar dan kompleks.
    • Tidak mampu memisahkan antara data dan fungsi, sehingga mempersulit dalam memahami dan mengelola aplikasi.
    • Tidak efisien dalam hal penggunaan sumber daya karena setiap kali fungsi dipanggil maka akan dibuat satu salinan untuk menampung data dan nilai kembalian.

Contoh Perbedaan OOP dan Prosedural

Misalnya, dalam pengembangan aplikasi perpustakaan, OOP dapat digunakan dengan cara membagi program menjadi beberapa class seperti class buku, class anggota, class pinjam, dan class kembali. Setiap class memiliki attribut dan perilaku yang berbeda-beda dan dapat saling berinteraksi satu sama lain.

Fitur OOP Prosedural
Pemeliharaan Memudahkan, karena kode yang terpisah dan dapat dipelihara secara terpisah. Sulit, karena struktur kode yang kompleks dan tergantung pada fitur lain.
Reusabilitas Dapat meningkatkan reusabilitas kode, sehingga menghemat waktu dalam pengembangan aplikasi. Tidak dapat meningkatkan reusabilitas kode secara efektif.
Performa Kemungkinan terjadi masalah performa saat aplikasi menjadi terlalu kompleks. Lebih efisien dalam hal penggunaan sumber daya daripada OOP.

Implementasi OOP dan Prosedural di Bahasa Pemrograman

Perbedaan antara OOP (Object-Oriented Programming) dan prosedural terletak pada cara pendekatan dalam menulis dan merancang program. Pada OOP, program dibangun dengan memikirkan objek-objek yang saling berinteraksi untuk mencapai suatu tujuan, sedangkan pada prosedural, program dibangun dengan memikirkan urutan langkah-langkah yang harus dilakukan untuk mencapai tujuan tersebut.

  • Pada implementasi OOP di bahasa pemrograman, objek-objek dibuat sebagai suatu instansi dari sebuah class. Dalam class, terdapat atribut dan method yang dapat diakses dengan menggunakan objek tersebut.
  • Pada implementasi prosedural, program dibuat dengan mengorganisir statement-statement dalam fungsi-fungsi yang saling terkait.
  • Penggunaan OOP akan memudahkan dalam pengembangan suatu program yang besar karena objek-objek dapat dipisahkan tugasnya dan dapat dijalankan secara independen.

Namun, pada implementasi OOP di bahasa pemrograman, terdapat beberapa konsep yang harus dipahami dengan baik seperti inheritance, polymorphism, dan encapsulation. Konsep-konsep tersebut memungkinkan pembuatan program yang lebih fleksibel dan dapat diatur ulang dengan lebih mudah.

Pada implementasi prosedural, terdapat beberapa teknik yang dapat digunakan untuk membuat program lebih terstruktur seperti pemisahan fungsi-fungsi ke dalam modul-modul yang terpisah.

Kelebihan OOP Kelebihan Prosedural
  • Dapat mengatasi kompleksitas program yang besar
  • Memberikan fleksibilitas dalam pembuatan program
  • Memudahkan dalam pemeliharaan dan pengembangan program
  • Lebih mudah dipahami oleh pemula
  • Tidak terlalu kompleks dalam penggunaannya
  • Dapat digunakan untuk program kecil hingga besar

Dalam memilih pendekatan yang tepat dalam menulis program, tergantung pada jenis program yang akan dibuat dan pengalaman si programmer dalam menggunakan teknik-teknik tersebut. Namun demikian, perbedaan antara OOP dan prosedural bukanlah menentukan mana yang lebih baik, tapi lebih ke mana yang sesuai dengan kebutuhan dan kemampuan programmer.

Perbedaan OOP dan Procedural

Objek-oriented programming (OOP) dan procedural programming adalah dua paradigma pemrograman yang berbeda. Di bawah ini adalah enam perbedaan utama antara OOP dan procedural programming.

  • OOP mendukung konsep pengelolaan data yang lebih baik daripada procedural programming. Pemrograman prosedural menggunakan struktur data sederhana seperti array dan rekaman untuk menyimpan data, sedangkan OOP menggunakan objek dan kelas.
  • OOP lebih fleksibel daripada procedural programming. Saat menggunakan OOP, Anda dapat dengan mudah menambahkan atau mengubah fungsi objek tanpa memengaruhi kode lain yang menggunakan objek tersebut. Namun, dengan procedural programming, setiap kali Anda memperbarui fungsi, Anda harus memastikan semua kode yang menggunakannya juga diperbarui.
  • Dalam OOP, kode dan data bersama-sama membentuk objek yang independen. Sedangkan dalam procedural programming, data dan fungsionalitas ditempatkan dalam prosedur-prosedur yang dapat dipanggil dari program utama.
  • OOP memberikan kemampuan untuk menghasilkan kode yang lebih bersih, terstruktur, dan mudah dimengerti.
  • OOP memberikan teknik pewarisan dan polimorfisme yang berguna dalam pengembangan aplikasi yang kompleks.
  • Procedural programming lebih efektif dalam menangani tugas yang sederhana dan tidak membutuhkan kompleksitas pengelolaan objek.

Manfaat OOP dan Procedural

Baik OOP maupun programming prosedural memiliki manfaat mereka sendiri, dan pemilihan antara keduanya tergantung pada jenis tugas dan persyaratan proyek.

Manfaat OOP antara lain:

  • Kemudahan dalam memperbarui kode
  • Kode lebih mudah dibaca dan dipahami
  • Berguna untuk memecah kode menjadi modul yang lebih kecil
  • Kemampuan untuk membangun aplikasi yang skalable dan mudah dikembangkan, karena dapat dipecah menjadi bagian-bagian yang independen satu sama lain.

Manfaat Programming Prosedural antara lain:

  • Lebih mudah digunakan untuk tugas sederhana
  • Kode lebih efisien dan cepat
  • Lebih mudah dipelajari
  • Memiliki kinerja yang lebih baik pada tugas-tugas yang membutuhkan sedikit manipulasi data.

Contoh OOP dan Procedural Programming

Contoh di bawah ini membandingkan dua pendekatan pemrograman untuk menghitung rata-rata nilai mahasiswa:

Contoh Procedural Programming: Contoh OOP:
function hitungRata($arr) {
   $total = 0;
   $count = count($arr);
   foreach($arr as $a) {
      $total += $a;
   }
   return $total / $count;
}
class Grades{
   private $grades;
   
   function __construct($arr) {
      $this->grades = $arr;
   }
   
   function hitungRata() {
      $total = 0;
      $count = count($this->grades);
      foreach($this->grades as $grade) {
         $total += $grade;
      }
      return $total / $count;
   }
}

Pada tampilan contoh procedural programming di atas, fungsi hitungRata() menerima daftar nilai dan menghitung rata-ratanya secara prosedural. Sedangkan pada contoh OOP, metode hitungRata() dipanggil pada objek Grades yang menghasilkan rata-rata.

Dari contoh di atas, terlihat jelas bahwa OOP lebih fleksibel, efektif, dan mudah dikelola daripada procedural programming ketika diterapkan pada tugas yang kompleks. Namun, untuk tugas yang lebih sederhana, programming prosedural dapat menghasilkan kode yang lebih ringkas dan mudah dipahami.

Prinsip Encapsulation pada OOP dan Prosedural

Prinsip Encapsulation adalah salah satu prinsip utama dalam OOP dan menjadi perbedaan utama antara OOP dan prosedural. Encapsulation adalah sebuah cara untuk mengatur dan mengontrol akses terhadap data dan tindakan yang terkait dengan data tersebut.

Dalam prosedural, data dan tindakan yang terkait dengan data tersebut dipisahkan, sehingga seringkali sulit untuk mengontrol dan mengatur akses terhadap data tersebut. Sedangkan dalam OOP, data dan tindakan yang terkait dengan data tersebut digabungkan dalam sebuah objek dan hanya dapat diakses melalui metode-metode yang telah ditentukan. Hal ini dapat memudahkan pengontrolan dan pengaturan akses terhadap data tersebut.

Keuntungan Prinsip Encapsulation dalam OOP

  • Menyembunyikan rincian implementasi dari pengguna sehingga dapat mempermudah penggunaan objek tersebut;
  • Mengurangi kompleksitas kode karena data dan tindakan yang terkait dengan data tersebut digabungkan dalam sebuah objek;
  • Memungkinkan penggunaan metode-metode yang telah ditentukan untuk memanipulasi data;
  • Memudahkan pengontrolan dan pengaturan akses terhadap data dan tindakan yang terkait.

Contoh Implementasi Prinsip Encapsulation

Contoh implementasi prinsip encapsulation dapat dilihat pada kode berikut:

Prosedural:

Penggunaan Variabel Tindakan terhadap Variabel
nama menampilkan nama
umur menampilkan umur
alamat menampilkan alamat

OOP:

Objek Metode
pengguna get_nama(), get_umur(), get_alamat()

Pada contoh di atas, terlihat perbedaan antara penggunaan variabel pada prosedural dengan metode pada OOP. Pada OOP, akses terhadap data hanya dapat dilakukan melalui metode-metode yang telah ditentukan pada objek pengguna. Hal ini memudahkan pengontrolan dan pengaturan akses terhadap data dan tindakan yang terkait.

Pewarisan pada OOP dan Prosedural

Pewarisan dalam pemrograman adalah konsep untuk memperluas penggunaan fitur dari kelas yang sudah ada ke dalam kelas turunan. Pada OOP, konsep pewarisan ditujukan untuk membuat kelas turunan memiliki sifat-sifat kelas induk. Sedangkan pada prosedural, konsep ini tidak bisa diterapkan karena tidak menggunakan kelas.

  • Pada OOP, pewarisan memungkinkan pengembangan program yang efisien dan meminimalkan pengkodean ulang karena kelas turunan dapat menggunakan sifat-sifat kelas induk.
  • Pada prosedural, tanpa adanya konsep pewarisan, pengembangan program memerlukan pengkodean ulang bila fitur yang sama dibutuhkan pada beberapa bagian program.

Pada OOP, terdapat dua jenis pewarisan:

  • Pewarisan tunggal: dimana sebuah objek turunan hanya memiliki satu kelas induk.
  • Pewarisan ganda: dimana sebuah objek turunan memiliki lebih dari satu kelas induk.

Berikut contoh implementasi sederhana pada program OOP:

Kelas induk “Hewan”:

Property Method
Nama: string Suara(): void
Berat: integer Makanan(): void

Kelas turunan “Kucing” dan “Anjing”:

Property (Hak Akses: protected) Method
– JumlahKaki: integer – Jalan(): void
– Ukuran: string – Suara(): void (override)

Kelas turunan “Kucing” dan “Anjing” dapat memiliki sifat dan method yang sama seperti kelas induk “Hewan”, seperti Sifat Berat dan Method Makanan. Dengan demikian, pengembangan program lebih cepat dan efisien.

Polymorphism pada OOP dan Prosedural

Polymorphism adalah konsep penting dalam pemrograman berorientasi objek. Konsep ini memungkinkan penggunaan objek dengan cara yang berbeda tanpa mengubah class aslinya. Hal ini terdapat perbedaan antara polimorfisme dalam pemrograman berorientasi objek dan pemrograman prosedural.

Dalam pemrograman berorientasi objek, terdapat 2 jenis polimorfisme: static dan dynamic. Static polymorphism terjadi pada saat kompilasi waktu, sedangkan dynamic polymorphism terjadi pada saat runtime.

  • Static Polymorphism – Static polymorphism biasanya terjadi dengan overload operator, method dan constructor. Saat method yang sama diubah dengan parameter yang berbeda akan disebut sebagai overload.
  • Dynamic Polymorphism – Dynamic polymorphism dapat dicapai dengan konsep inheritance. Objek anak dapat menggunakan seluruh fungsi dari objek induk.

Sementara dalam pemrograman prosedural, polimorfisme menggunakan fungsi yang sama yang diimplementasikan pada berbagai masukan dengan cara yang berbeda.

Dalam bentuk tabel dapat dijelaskan sebagai berikut :

OOP Polymorphism Prosedural Polymorphism
Dalam bentuk static dan dynamic. Polimorfisme hanya dapat dicapai dengan berbagai masukan.
Polimorfisme dapat dicapai dengan inheritance. Polimorfisme dapat dicapai dengan fungsi yang sama pada berbagai masukan.

Jadi dapat disimpulkan, polimorfisme pada pemrograman berorientasi objek berfokus pada kegunaan yang berbeda yang diperbolehkan oleh class yang sama, sedangkan polimorfisme pada pemrograman prosedural berfokus pada penggunaan fungsi yang sama pada berbagai masukan.

Abstraksi pada OOP dan Prosedural

Perbedaan dasar antara paradigma pemrograman OOP dan prosedural adalah cara mereka mengekspresikan abstraksi. Abstraksi adalah konsep dasar dalam pemrograman di mana tugas-tugas kompleks dibagi menjadi bagian-bagian yang lebih kecil atau lebih abstrak, sehingga lebih mudah untuk dimengerti dan diatur. Dalam pemrograman prosedural, abstraksi dilakukan dengan mengorganisir kode menjadi serangkaian prosedur yang saling berhubungan. Sementara itu, dalam OOP, abstraksi dicapai melalui pembuatan kelas dan objek.

  • Pada pemrograman prosedural, berkaitan dengan abstraksi kode, fokusnya cenderung pada fungsi-fungsi/algoritma dan hasil kembalian dari hal tersebut. Pada OOP, abstraksi kode dirancang agar lebih mudah dipahami dengan konsep class dan objek.
  • Abstraksi prosedural dilakukan dengan mengikuti tata cara pemrograman atau perancangan koding secara procedural, dengan mendefinisikan urutan perintah yang akan dilakukan oleh komputer untuk mencapai tujuan tertentu. Abstraksi OOP justru berfokus pada pengelompokan kode menjadi fungsionalitas tertentu, memperjelas pola interaksi antar fungsionalitas tersebut, dan tidak terbatas pada urutan pemrosesan pesan yang harus dilakukan oleh komputer.
  • Abstraksi pada OOP memungkinkan terciptanya suatu model yang mirip dengan dunia nyata. Misalnya, jika kita ingin membuat program untuk manajemen suatu toko, maka kita dapat membuat class-class seperti class Produk, class Pelanggan, dan class Transaksi yang masing-masing memiliki atribut dan method-method yang berkaitan dengan kelas tersebut.

Dalam OOP, abstraksi melibatkan konsep inheritance atau pewarisan, di mana kelas turunan dapat menggunakan dan memperluas perilaku kelas induknya. Hal ini dapat meningkatkan efisiensi pengembangan dan memungkinkan kita untuk membuat kode yang lebih modular dan mudah dipelihara. Dalam prosedural, abstraksi dilakukan dengan mengelompokkan kode ke dalam fungsi-fungsi dan prosedur-prosedur.

Untuk memperjelas perbedaan antara abstraksi pada OOP dan prosedural, bisa dilihat pada tabel berikut ini:

Prosedural OOP
Fokus pada fungsi, prosedur, dan struktur data Fokus pada objek dan kelas
Perilaku didefinisikan dengan cara menggunakan fungsi dan prosedur Perilaku didefinisikan oleh objek
Mudah diimplementasikan dalam bahasa pemrograman yang lebih sederhana Mungkin lebih sulit diimplementasikan, tetapi dapat memudahkan pengembangan aplikasi yang kompleks

Secara umum, OOP menghasilkan kode yang lebih modular dan mudah dipelihara, sementara prosedural sering digunakan ketika kita butuh pemrosesan data yang kompleks sehingga kurang membutuhkan interaksi antar objek.

Access Modifier pada OOP dan Prosedural

Access Modifier adalah suatu kata kunci yang digunakan pada bahasa pemprograman untuk mengatur hak akses atau tingkat keamanan suatu kelas, metode, atau variabel. Dalam OOP dan Prosedural, access modifier dapat digunakan untuk mengatur hak akses suatu function atau method. Tentu saja, kedua paradigma pemrograman tersebut memiliki perbedaan dalam mengimplementasikan Access Modifier.

  • Pada Paradigma Prosedural

Pada Paradigma Prosedural, terdapat 3 macam Access Modifier yang bisa digunakan:

  • Public
  • Private
  • Protected

Access Modifier Public mengizinkan suatu variabel atau fungsi diakses oleh variabel di luar program dan dalam program. Sedangkan Access Modifier Private hanya memungkinkan variabel dan fungsi diakses di dalam program tersebut. Access Modifier Protected digunakan untuk memberi akses pada variabel atau fungsi di dalam kelas yang sama atau kelas turunan.

  • Pada Paradigma OOP

Sedangkan pada paradigma OOP, terdapat 4 macam Access Modifier yang bisa digunakan:

  • Public
  • Private
  • Protected
  • Default / Package Private

Access Modifier di OOP memiliki tambahan yaitu Default / Package Private, yang hanya bisa diakses oleh kelas dalam satu package. Access Modifier Public dalam OOP memiliki arti yang sama dengan pada Prosedural. Access Modifier Protected juga sama, hanya saja bisa diberikan pada variabel atau fungsi yang berada dalam kelas turunan. Access Modifier Private pun juga sama maknanya.

Contoh:

Untuk lebih jelasnya, mari kita lihat tabel berikut yang memperlihatkan perbedaan access modifier pada OOP dan Prosedural:

Access Modifier Prosedural OOP
Public Dapat diakses dari luar program dan dalam program Dapat diakses dari luar program dan dalam program
Private Dapat diakses hanya dalam program Dapat diakses hanya dari dalam kelas itu sendiri
Protected Dapat diakses dalam program dan kelas turunan Dapat diakses dalam kelas itu sendiri dan kelas turunan
Default / Package Private Dapat diakses dalam satu package Dapat diakses dari dalam kelas di dalam package tersebut

Hal ini menunjukkan bahwa kedua paradigma memiliki perbedaan dalam penggunaan Access Modifier, namun tetap memiliki fungsinya masing-masing untuk memastikan level keamanan dan keterbacaan kode program yang dibuat.

Selamat Mencoba!

Itulah perbedaan antara pemrograman berorientasi objek dan pemrograman prosedural. Sementara keduanya memiliki kelebihan dan kekurangannya masing-masing, penting untuk memahami perbedaan tersebut agar Anda dapat memilih metode pemrograman yang tepat untuk proyek Anda. Jangan lupa untuk terus mengasah skill pemrograman Anda dan stay tune untuk artikel menarik kami selanjutnya! Terima kasih sudah membaca.