Pokok Bahasan
- Buat perbandingan konsep pemrograman berorientasi objek dengan non orientasi objek
- Pada pengembangan property function class, kapan suatu function dioverride ? berikan contoh kasusnya dengan Script PHP
- Apa pengaruh pendokumentasian suatu function atau class yang Anda develop terhadap pengembangan perangkat lunak ?
- Buat super class lingkaran yang didalamnya terdapat function untuk menghitung luas. Kemudian buat subclass untuk menghitung volume tabung.
- Berikan alasan Anda tentang penerapan patern MVC (model view controller) pada pengembangan web programming.
- PHP Framework Interop Group disitusnya http://www.php-fig.org/psr/psr-1/ mengulas tentang standarisasi penulisan kode. Berikan alasanya mengapa perlu ada standarisasi dalam penulisan kode?

1. Perbandingan Konsep OOP dan Non OOP
Pemrograman Berorientasi Objek atau dalam bahasa Inggrisnya adalah Object Oriented Programming atau disingkat OOP. Di dalam paradigma ini, semua data maupun fungsi/method dikemas dalam class-class atau objek-objek sehingga pendokumentasiannya lebih rapi. Berikut ini adalah perbedaan antara OOP dengan Non OOP.
| OOP | NON OOP (Prosedural) |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Modularity, source code suatu class dapat ditulis dan dikelola secara independen dan tidak bergantung dengan class lainnya. Setelah dibuat, sebuah objek dapat dengan mudah melewati objek lainnya dalam sistem yang sama. | Tidak Modularity Tidak Independent |
| Informasi-bersembunyi, cara berinteraksi hanya dengan metode obyek, rincian implementasi internal tetap tersembunyi dari dunia luar ( Data tersemmbunyi dan tidak dapat diakses oleh fungsi eksternal ). | Informasi-terbuka, cara berinteraksi dengan fungsi atau method dan data bebas bergerak di sekitar sistem dari satu fungsi lain. |
| Code re-use, jika sebuah class sudah ada, Anda dapat menggunakannya kembali untuk obyek lainnya (inheritance). | Code-solid, |
| Debugging mudah, jika ada masalah pada objek tertentu, maka programmer dapat menghapusnya dan menggantinya dengan objek baru, konsep seperti ini sama halnya dengan seorang mekanik mengganti mur-baut yang sudah rusak pada mobil. | Debugging sulit, untuk skala besar Debugging mudah, untuk skala kecil |
| Fokus utama pada data yang sedang beroperasi. | Fokus utama pada fungsi dan prosedur yang beroperasi pada data. |
| Program besar terdiri dari unit kecil yang disebut class | Program besar terdiri dari unit kecil yang disebut fungsi/method |
| Data dan fungsi diperlakukan sebagai entitas terpisah | Data dan fungsi diperlakukan sebagai entitas terpisah |
| Program didesain untuk melakukan perluasan “Buttom Up” yaitu memuat prosedur-prosedur untuk menyelesaian tugas-tugas yang sederhana, kemudian menggabungkan prosedur-prosedur tersebut dalam prosedur yang lebih kompleks, sampai fungsionalitas yang ingin tercapai | Program didesain untuk melakukan pendekatan “Top Down” yaitu tugas-tugas kompleks dipecah menjadi bagian yang lebih kecil, sampai sub-tugas tersebut mudah diimplementasikan |
2. Penggunaan Override Function dalam Pengembangan Property Function Class
Overriding dipakai saat kita menggunakan method yang sama tapi berbeda implementasinya.
Contoh Kasus Menggunakan Script PHP
<?php
// Parent Class
class Hewan {
public $namahewan;
public function Jalan ($namahewan){
echo $namahewan." : hewan ini berjalan.";
}
}
// Child Class
class Burung extends Hewan {
public $namahewan;
public function Jalan ($namahewan){
echo $namahewan." : hewan ini terbang.";
}
}
}
//Mengeksekusi Object
$merpati = new Burung;
$merpati->Jalan('Merpati');
?>
3. Pengaruh Pendokumentasian Suatu Function atau Class Terhadap Pengembangan Perangkat Lunak
- Memudahkan dalam mempelajarinya (memahami konsep program yang dikembangkan).
- Pendokumentasian lebih rapi dan terorganisir
- Memudahkan dalam melakukan debugging
- Memudahkan programmer untuk melakukan pengembangan baik secara team-work maupun individu.
4. Implementasi Super class dan Sub class
Dengan cara membuat super class lingkaran yang mana di dalamnya terdapat function untuk menghitung luas. Sedangkan sub class digunakan untuk menghitung volume tabung.
Contoh:
<? //super class
class lingkaran{
public $jari2;
public $luas = 0;
public function luasLingk(){
$luas =3.14 * $this->jari2 * $this->jari2;
return $luas;
}
}
//sub class
class tabung extends lingkaran{
public $tinggi;
public $volTabung = 0;
public function volume(){
$volTabung = $this->luasLingk() * $this->tinggi;
return $volTabung;
}
}
//object dari class lingkaran
$Lingkaran1=new lingkaran ();
echo "Jari-jari : ".Lingkaran1->jari2=27;
echo "<br>Luas lingkaran : ".$Lingkaran1->luasLingk();
echo "<br>";
//object dari class tabung
$tabung1 = new tabung();
echo "<br>Jari - jari : ".$tabung1->jari2=8;
echo "<br>Tinggi : ".$tabung1->tinggi=6;
echo "<br>Luas Alas : ".$tabung1->luasLingk();
echo "<br>Volume Tabung : ".$tabung1->volume();
?>
Output:

5. Alasan Tentang Penerapan Patern MVC (Model View Controller) pada Pengembangan Web
Penggunaan metode penulisan MVC, memudahkan developer dalam hal pengembangan website. Selain itu, dengan penggunaan struktur MVC, developer akan mudah melakukan tracing terhadap website apabila terjadi kesalahan pemrograman ketika proses pengembangan website.
MVC adalah konsep dasar yang digunakan oleh CodeIgniter. Apabila ingin develop menggunakan framework ini, alangkah baiknya kita mengenal terlebih dahulu konsep MVC pada Code Igniter. MVC adalah singkatan dari istilah Model, View, Controller. Komponen-komponen pendukung MVC antara lain.
Model
Model sangat erat hubungannya dengan data yang berinteraksi langsung dengan database. Dalam struktur model, file yang terdapat didalamnya kebanyakan berupa teks, file XML dan web service. Didalam struktur ini juga terdapat sebuah class yang berfungsi unguk create, update dan delete data pada website
View
Berbeda dengan model, view sangat erat kaitannya dengan tampilan website yang ditampilkan pada end user. Tampilan tersebut bisa berupa halaman web, rss, javascript dan lain sebagainya. Biasanya kita lebih familiar dengan istilah HTML, CSS dan Javascript, nah lebih kurang konsep View memiliki fungsi seperti itu. Pada struktur View, disarankan untuk tidak terdapat proses logika dan proses pengitungan data.
Controller
Controller mempunyai fungsi sebagai penghubung antara data dan view. Didalam proses ini terdapat class yang memproses permintaan dari view ke dalam struktur data yang berada di model. Sama dengan ketentuan di view, pada struktur kontroller sangat disarankan untuk tidak terdapat proses logika dan perhitungan data. Controller sendiri memiliki tugas untuk menyediakan variabel guna ditampilkan pada view dan menghubungkan model dengan database.
6. Mengapa Perlu Ada Standarisasi Penulisan Kode?
Berdasarkan Ulasan PHP Framework Interop Group dalam situsnya http://www.php-fig.org/psr/psr-1/, coba jelaskan!
Alasannya adalah, karena:
- Standarisasi diperlukan untuk memudahkan pengembangan dan peningkatan mutu dari genersi ke generasi
- Memberikan jaminan keabsahan agar layak untuk dipelajari.
- Memiliki acuan untuk melakukan debungging terhadap standar program yang kita gunakan.
- Untuk menghindari konflik persepsi antara programmer.
Referensi
Perbedaan OOP dan NON OOP :
Implementasi fungsi Override :
Penerapan MVC pada pengembangan web programming :