Tugas ini membahas konsep-konsep OOP dan MVC dalam PHP. Topik utama yang dibahas meliputi definisi class, properti, method, object, constructor dan destructor, visibilitas, pewarisan, serta penerapan konsep MVC menggunakan framework PHP seperti CakePHP, CodeIgniter, dan Symfony.
3. Definisi Class
>> Class disusun berdasarkan karakteristik sebuah objek
benda. Sifat ini disebut sebagai Abstraksi (Abstraction).
>> Class adalah penampung sekumpulan elemen data
(variable) dan kode program (function) yang digunakan
oleh pengolahan datanya. Sifat ini disebut sebagai
enkapsulasi (Encapsulation) .
>> Class dapat disusun secara hierarki sehingga suatu
class dapat mewariskan beberapa atau semua
karakteristiknya ke class lain (class anak/child class).
Sifat ini disebut sebagai Pewarisan (Inheritance)
4. Properti / Variable
>> Berdasarkan sifat abstraksi, suatu class menyimpan
karakteristik suatu benda dalam suatu variable. Variabel ini
sering disebut sebagai properti.
>> Contoh:
1. Class Orang mempunyai properti seperti Nama, Warna
Rambut, Tinggi, Berat, Tahun Lahir dan lain-lain.
2. Class KoneksiDB mempunyai properti seperti Alamat Server,
User Name, Password dan Nama Database.
5. Method / Function
>> Selain mempunyai properti, sebuah class juga mempunyai
Method. Dalam PHP, method suatu class diwujudkan dalam
sebuah function. Method adalah perilaku yang dapat dilakukan
oleh class.
>> Contoh :
1. Class Orang mempunyai method seperti Makan, Minum,
Tidur, Ucap Salam, dan lain-lain.
2. Class KoneksiDB mempunyai method seperti Koneksi,
EksekusiQuery, AmbilData dan lain-lain
Object
>> Objek merupakan insansiasi dari suatu Class. Sebuah class
tidak dapat digunakan tanpa diinstansiasikan dulu (kecuali
untuk Static Class).
>> Objek sebenarnya sebuah variabel.
6. Constructor dan Destructor
>> Constructor adalah suatu function khusus yang akan
dieksekusi ketika suatu objek dibuat (instansiasi class).
>> Umumnya constructor dibuat untuk memberikan suatu operasi
awal yang harus dilakukan ketika sebuah objek dilahirkan
(inisialisasi objek).
>> Destructor adalah function khusus yang dilakukan ketika suatu
objek akan dihapus.
>> Umumnya destructor dibuat untuk mengembalikan kembali
sumber daya komputer (misalnya memori, file). Contoh operasi
dalam destructor menghapus kembali memori yang telah
digunakan atau menutup koneksi ke suatu file.
7. Visibilitas Member
>> Visibilitas dari properti atau method dapat dilakukan dengan
mengawali pendefinisian dengan keyword :
1. Public : Member ini dapat diakses dimanapun, walaupun dari
luar classnya.
2. Private : Member ini hanya dapat diakses di dalam
pendeklarasian classnya saja. Member ini tidak dapat dikenal
di class turunannya.
3. Protected : Mirip dengan private, tetapi member ini dapat
dikenal di class turunannya.
8. Function Setter dan Getter
>> Function Setter adalah fungsi yang digunakan untuk
memberikan (set) nilai untuk suatu properti. Umumnya function
ini digunakan untuk properti yang mempunyai visibilitas
protected atau private. Function setter sering digunakan untuk
memvalidasi data yang masuk sebelum data tersebut diisikan
ke suatu properti.
>> Function Getter adalah suatu function yang digunakan untuk
menghasilkan (get) suatu nilai baik dari member public, private,
protected atau pun dari hasil perhitungan.
9. Pewarisan (Inheritance)
>> Pewarisan/Penurunan merupakan fitur OOP yang sangat
berguna. Dengan pewarisan, sebuah class dapat diturunkan
menjadi class baru yang mempunyai sebagian atau seluruh
karakteristik dari class parentnya.
>> Pewarisan dilakukan dengan keyword “extends”.
>> Visibility member berlaku di pewarisan.
>> Dalam pewarisan dikenal istilah Override yaitu mendefinisikan
ulang suatu function yang telah tersedia di class child sehingga
mempunyai perilaku yang berbeda dari perilaku function class
parentnya.
>> Dalam class turunan, boleh ditambah properti atau member
baru.
11. Pengertian MVC :
MVC adalah konsep pemrograman, dimana logika pemrograman,
query database, dan tampillannya dipisahkan. Sehingga kode-
kode penyusun sebuah aplikasi web terlihat lebih sederhana
dan terstruktur. Jadi, tidak akan ada query database di dalam
sebuah file yang memang ditujukan untuk tampilan. Gambaran
tentang konsep MVC :
12. MVC (Model, View, Controller)
• Model adalah sebuah layer pada MVC yang merepresentasikan
data yang digunakan oleh aplikasi sesuai dengan proses yang
terjadi pada data tersebut, dengan memilahnya menjadi
beberapa bagian terpisah kembali, seperti penampungan data,
persistence, proses manipulasi, dan lain- lain. Secara singkat,
model bertugas untuk menangani query-query database.
• View adalah sebuah layer pada MVC yang mengandung
keseluruhan detai dari implementasi user interface dengan
melibatkan komponen grafis yang menyediakan representasi
proses internal aplikasi dan meuntun alur interaksi user
terhadap aplikasi.
• Controller adalah sebuah layer pada MVC yang menyediakan
detai alur program dan transisi layer, dan bertanggung jawab
akan penampungan event yang dibuat oleh user dari view dan
melakukan update terhadap komponen model menggunakan
data dari user.
14. Beberapa Konsep Penggunaan MVC yang terdapat pada PHP
Frameworks :
• CakePHP
• Code Igniter (CI)
• Symphony
15. CAKEPHP
CakePHP adalah sebuah framework open source yang
digunakan untuk mengembangkan aplikasi web dengan dasar
kerja CRUD (Create, Read, Update, Delete). CakePHP juga
menjadi salah satu framework pilihan yang memungkinkan
developer untuk membuat sebuah aplikasi web dengan karakter
pengembangan RAD (Rapid Application Development), yang
memungkinkan untuk digunakan dan dikembangkan menjadi
aplikasi lain yang lebih kompleks. CakePHP terdiri dari file-file
pustaka (library), kelas kelas, dan infrastruktur run-time yang
terinspirasi oleh framework Ruby on Rails. CakePHP juga
banyak digunakan oleh para programmer yang memilih untuk
bekerja dengan struktur yang rapi dan padat tanpa kehilangan
fleksibilitas pengembangan framework.
16. Kelebihan:
- Support AJAX dan ORM
- Pengembangan yang terus dilakukan, saat ini telah mencapai versi
1.3.7.
- Mendukung PHP4 dan PHP5
- Arsitektur OOP dan MVC yang sesungguhnya
- Semua fungsi dalam CodeIgniter sudah ada dalam CakePHP
- memiliki teknik unik yang tidak didapatkan pada framework lain
Kekurangan:
- Manual Book tidak selengkap CodeIgniter
- Terlalu banyak aturan jika dibandingkan CodeIgniter (namun sisi ini
ada nilai positifnya, yaitu mempermudah pengembangan karena
penamaan file dan database telah diatur semua nya oleh CakePHP,
sehingga Developer tidak bisa main-main)
- Butuh waktu belajar lama jika ingin menguasai framework ini
(namun jika sudah benar-benar menguasai, Framework CakePHP
mempunyai kemampuan yang benar-benar luar biasa handal)
17. CODEIGNITER
Framework CodeIgniter merupakan framework pengembangan
aplikasi web yang menggunakanPHP. Tujuan dari CodeIgniter
adalah untuk memberikan kesempatan kepada orang untuk
membuat web lebih cepat dibanding apabila dilakukan dari nol
(from scratch) dengan menyediakan sekumpulan library untuk
mengerjakan proses-proses yang biasa dilakukan,disertai
dengan interface dan struktur logika yang sederhana untuk
mengakses library ini.
18. Beberapa keuntungan yang didapat dari CodeIgniter diantaranya adalah:
• CodeIgniter ini merupakan framework yang gratis, dimana kita bisa
mengunduh danmenginstallnya tanpa harus membayar.
• CodeIgniter ini sangat ringan, dimana system utamanya hanya memerlukan
sedikit sekali library. Berbeda dengan kebanyakan framework yang
membutuhkan resources yang lebih banyak. Library tambahan dapat
ditambahkan secara dnamis berdasarkan permintaan sehingga system
dasar sangat kecil dan cepat.
• Framework telah banyak dibuktikan sebagai framework yang cepat
dibandingkankebanyakan framework PHP yang ada.
• CodeIgniter menggunakan pendekatan konsep Model-Visual-Controller
(MVC),sehingga pengembangan aplikasi menjadi lebih teratur dan
terstruktur.
• CodeIgniter dapat menghasilkan URL yang bersih.Contoh URL yang
bersih: http://www.contoh.com/berita/tajuk/1
• CodeIgniter datang dengan sekumpulan library yang biasanya dibutuhkan
untuk mengembangkan website, misalnya untuk mengakses database,
mengirim email,memvalidasi form data, memelihara session, memanipulasi
gambar, dan sebagainya.
• CodeIgniter dapat dengan mudah diperluas kemampuannya sesuai dengan
yang kitainginkan melalui penggunaan plugin dan helper.Kekurangannya :
• Tidak mendukung AJAX, dan ORM
• Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih
memberikankebebasan user untuk melanggar aturan MVC
19. SYMFONY
Symfony adalah framework web yang ditujukan untuk PHP 5.
Selain itu Symfony juga kompatibel dengan berbagai sistem
database. Sama seperti CakePHP dan CodeIgniter,
Symfonyjuga menganut arsitektur MVC (Model View Controller).
Dukungan untuk AJAX juga tersedia di framework Symfony ini.
Dokumentasi yang disediakancukup baik. Mungkin yang
menjadi persoalan adalah proses instalasi dan konfigurasi
cukuprumit bila dibandingkan dengan framework sebelumnya.
20. Kelebihan :
- Dukungan terhadap AJAX, ORM.
- Kompatibel dengan berbagai macam database.
- Banyak library dan fungsi symfony yang sudah tersedia.
Bahkan hampir mendekati CMS. Sehingga ada yang
mengatakan ”Symphony is a CMS with a heart of a framework.”
ini menjadi kelebihan sekaligus kekurangan.
Kekurangan :
- Tidak mendukung PHP4.
- Relatif butuh waktu lama untuk mengerti framework ini.
- Instalasi dan konfigurasinya cukup rumit