Perbedaan Prosedural dan OOP

Perbedaan Bahasa Prosedural dan Pemrograman Berorientasi Objek


Hallo kali ini saya akan membahas mengenai perbedaan antara bahasa prosedural dan perograman berorientasi objek. Sebelumnya sudah di posting mengenai pengertian dari prosedural dan PBO namun sepertinya masih ada yang bingung apasih perbedaan diantara keduanya. Bagaimana yah cara membedakan mana yang permrograman prosedural dan mana pemrograman berorientasi objek. 

OOP : Program adalah serangakian objek yang bekerja sama untuk menyelesaikan suatu problem.
PROSEDURAL : Program adalah suatu urutan instruksi

Berikut sekilas mengenai perbedaanya :

  • Posedural fokus pada bagaimana cara komputer menangani masalah
  • OOP fokus pada masalah yang ditangani dengan menggunakan komputer.
Prosedural biasa digunakan untuk membuat program yang sederhana sementara OOP untuk yang lebih kompleks karena cara berfikirnya bisa seperti manusia (natural)

Perbedaan lebih lanjut :

Prosedural :
  1. Fokus utama pada fungsi dan prosedur yang beroperasi pada data-data.
  2. Program besar terbagi dalam program unit kecil yang disebut fungsi.
  3. Data dan fungsi diberlakukan sebagai entitas terpisah.
  4. Data bebas begerak di sekitar sistem dari fungsi lain.
  5. Data bersifat pasif.
  6. Program desain dengan pendekatan "Top Down" yaitu tugas-tugas komplek bisa dipecah menjadi bagian yang lebih kecil, sampai sub-tugas tersebut mudah siimplementasikan.
OOP :
  1. Menekankan pada data yang sedang beroperasi dan tidak fungsi dan tidak fungsi atau prosedur.
  2. Program dibagi ke dalam apa yang disebut objek.
  3. Data dan fungsi diberlakukan sebagai entitas terpisah.
  4. Data tersembunyi dan tidak dapat diakses oleh fungsi eksternal.
  5. Objek-objek dalam OOP bersifat aktif.
  6. Program desain pendekatan "Button Up" yaitu memuat prosedur-prosedur untuk menyelesaikan tugas-tugas yang sederhana, kemudian menggabungakn prosedur-prosedur tersebut dalam prosedur yang lebih kompleks, sampai funsionalitas yang ingin tercapai.
Untuk memudahkan pemahaman anda, berikut ini contoh program ditulis dengan pendekatan kode prosedural dan nanti akan kita lihat bagaimana kode ditulis dengan pendekatan object oriented programming.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function ubahAlamat($siswa, $alamatbaru)
{
      $siswa['alamat']=$alamatbaru;
      return $siswa;
}
 
function naikKelas($siswa)
{
     ++$siswa['kelas'];
     return $siswa;
}
 
$siswa1 = array(
   'nama'=>'Rosalie Naurah',
   'alamat'=>'Depok',
   'kelas'=>3
);
$siswa2 = array(
   'nama'=>'Faiz Fikri',
   'alamat'=>'Kalibata',
   'kelas'=>1
);
 
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';
 
// siswa 1 alamatnya berubah dan naik kelas
$siswa1 = ubahAlamat($siswa1,'Bogor');
$siswa1 = naikKelas($siswa1);
 
// siswa 2 naik kelas
$siswa2 = naikKelas($siswa2);
 
// output setelah terjadi perubahan
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';
 
?>

Berikut output yang dihasilkan :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Siswa 1 : Array
(
    [nama] => Rosalie Naurah
    [alamat] => Depok
    [kelas] => 3
)
Siswa 2 : Array
(
    [nama] => Faiz Fikri
    [alamat] => Kalibata
    [kelas] => 1
)
Siswa 1 : Array
(
    [nama] => Rosalie Naurah
    [alamat] => Bogor
    [kelas] => 4
)
Siswa 2 : Array
(
    [nama] => Faiz Fikri
    [alamat] => Kalibata
    [kelas] => 2
)
Berikut ini kode program dengan pendekatan Object Oriented Programming
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
 
class Siswa {
 
   private $nama;
   private $alamat;
   private $kelas;
 
   function __construct($nm, $al, $kl)
   {
        $this->nama = $nm;
        $this->alamat = $al;
        $this->kelas = $kl;
   }
 
   function ubahAlamat($alamatbaru)
   {
        $this->alamat = $alamatbaru;
   }
 
   function naikKelas()
   {
        ++$this->kelas;
   }
 
}
 $siswa1 = new Siswa ('Rosalie Naurah','Depok',3);
 $siswa2 = new Siswa ('Faiz Fikri','Kalibata',1);
 
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';
 
// siswa 1 alamatnya berubah dan naik kelas
 $siswa1->ubahAlamat('Bogor');
 $siswa1->naikKelas();
 
// siswa 2 naik kelas
 $siswa2->naikKelas();
 
// output setelah terjadi perubahan
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';
Dan berikut output yang dihasilkan :

Siswa 1 : Siswa Object
(
    [nama:Siswa:private] => Rosalie Naurah
    [alamat:Siswa:private] => Depok
    [kelas:Siswa:private] => 3
)
 
Siswa 2 : Siswa Object
(
    [nama:Siswa:private] => Faiz Fikri
    [alamat:Siswa:private] => Kalibata
    [kelas:Siswa:private] => 1
)
 
Siswa 1 : Siswa Object
(
    [nama:Siswa:private] => Rosalie Naurah
    [alamat:Siswa:private] => Bogor
    [kelas:Siswa:private] => 4
)
 
Siswa 2 : Siswa Object
(
    [nama:Siswa:private] => Faiz Fikri
    [alamat:Siswa:private] => Kalibata
    [kelas:Siswa:private] => 2
)

Pada implementasi dengan skala kecil memang terlihat banyak perbedaan antara kode program dengan prosedural dengan object oriented programming, tetapi untuk aplikasi yang terus berkembang dan meluas maka implementasi kode program dengan pendekatan object oriented programming akan sangat significant membuat aplikasi anda akan mudah implementasi.

Sekian postingan kali ini semoga bermanfaat and see you...

Komentar

Postingan populer dari blog ini

Pengertian OOP System, Object, Class, Attribute, Intance Variable, Class Variable, Behavior, dan Method.

Program Java (WKantin)