Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Embed Size (px)
description
Transcript of Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

IMPLEMENTASI OOP PADA PHP DAN KONSEP MVC PADA PHP
Dosen Pengampu : Triawan Adi Cahyanto,S.Kom
Mata Kuliah : Aplikasi Internet
Oleh :
IIS DAHLIA : 1200631047
SITI RUMAINAH : 1200631018
NIDA KOMARIAH : 1200631028
PROGRAM STUDI MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JEMBER
TAHUN 2014

PEMBAHASAN
A. IMPLEMENTASI OOP PADA PHP
1. Definisi OOP (Object-Oriented Programming)
Pemrograman berorientasi objek atau object-oriented programming
(OOP) merupakan suatu pendekatan pemrograman yang menggunakan
object dan class. Saat ini konsep OOP sudah semakin berkembang.
Hampir setiap perguruan tinggi di dunia mengajarkan konsep OOP ini
pada mahasiswanya. Pemrograman yang banyak dipakai dalam penerapan
konsep OOP adalah Java dan C++. OOP bukanlah sekedar cara penulisan
sintaks program yang berbeda, namun lebih dari itu, OOP merupakan cara
pandang dalam menganalisa sistem dan permasalahan pemrograman.
Dalam OOP, setiap bagian dari program adalah object. Sebuah object
mewakili suatu bagian program yang akan diselesaikan.
Beberapa konsep OOP dasar, antara lain :
a) Encapsulation (Class dan Object)
b) Inheritance (Penurunan sifat), dan
c) Polymorphisme
2. Perkembangan OOP di PHP
PHP pada awalnya hanyalah kumpulan script sederhana. Dalam
perkembangannya, selanjutnya ditambahkan berbagai fitur pemrograman
berorientasi objek. Hal ini dimulai sejak PHP 3 & 4, namun masih sangat
sederhana.
Karena perkembangan web application (ASP.NET, JSP) yang
support full OOP dikembangkan PHP5 yang support full OOP untuk
memenuhi kebutuhan Pengembangan aplikasi yang besar (Enterprise
Application). Dengan lahirnya PHP 5, fitur-fitur pemrograman
berorientasi objek semakin mantap dan semakin cepat.
Dengan PHP 5, script yang menggunakan konsep object-oriented akan
lebih cepat dan lebih efisien.

3. Istilah-istilah dalam OOP
Membuat aplikasi dengan menggunakan konsep OOP bisa
diibaratkan dalam dunia nyata dengan membuat atau memproduksi mobil.
Yang mana sebelum membuat mobil, diperlukan adanya desain
atau sketsa tampilan mobil, inilah yang disebut dengan Class. Sketsa
tersebut menggambarkan tentang warna, ukuran, jumlah roda dari mobil,
inilah yang disebut dengan Property.
Sketsa tersebut juga menjelaskan tentang apa yang nantinya bisa
dilakukan oleh mobil seperti berjalan engan roda, mengerem,
membunyikan klakson dan sebagainya. Sesuatu yang bisa dilakukan oleh
mobil inilah yang disebut dengan Method. Kemudian, sketsa tersebut
dikirimkan ke pabrik untuk dibuatkan bentuk fisiknya yaitu mobil, mobil –
mobil hasil produksi inilah yang disebut dengan Object.
Salah satu keuntungan program didefinisikan dengan konsep OOP
adalah adanya pengkapsulan (encapsulation) program dalam class dan
object, dimana programmer yang menggunakan class tidak perlu
mengetahui isi dan jalannya class secara detail, hanya perlu tahu
bagaimana cara menggunakannya. Sama halnya dengan sebuah mobil
misalnya. Seorang pemilik mobil tentunya tidak perlu mengetahui bagian-
bagian mobil secara menyeluruh.
Dia tidak perlu mengetahui bagaimana mesin mobil melakukan
pembakaran dan bagaimana mesin mobil bisa menggerakkan roda, dsb.
Dia hanya perlu tahu bagaimana cara menjalankan mobil, bagaimana
menghentikan mobil, dan fungsi mobil lainnya.
4. Konsep OOP dasar pada PHP
a) Mendefinisikan Class
Bentuk umum mendefinisikan sebuah class adalah sbb :
class NamaClass
{
Deklarasikan dan definisikan properties di sini

Definisikan semua method di sini
}
Example #1 Simple Class definition
<?php
class MobilClass
{
// property declaration
public $jumlah_roda;
// method declaration
public function DisplayJumlahRoda() {
echo $this->jumlah_roda;
}
}
?>
b) Menambahkan Konstruktor
Konstruktor merupakan sebuah method khusus yang akan secara
otomatis dijalankan saat object terbentuk. Konstruktor tidak harus ada,
namun dalam satu class hanya boleh ada satu konstruktor. Method
konstruktor biasanya berisi pemberian nilai default dari masing-masing
properties (variabel).
Untuk membuat konstruktor, cukup dengan mendefinisikan suatu
fungsi dengan nama_construct(). Perhatikan contoh sebagai berikut :
class MobilClass
{
public $jumlah_roda;
public function __construct() {
$this->jumlah_roda = 4;
}
public function DisplayJumlahRoda() {

echo $this->jumlah_roda;
}
}
c) Menciptakan Object Baru / Encapsulation (One Class Many Object)
Untuk menciptakan object baru dari class yang sudah dibuat adalah
sebagai berikut:
class MobilClass
{
public $jumlah_roda;
// constructor
public function __construct() {
$this->jumlah_roda = 4;
}
public function DisplayJumlahRoda() {
echo $this->jumlah_roda;
}
}
$mobil = new MobilClass(); // Create objek mobil
$mobil->DisplayJumlahRoda(); // Menjalankan method object mobil 4
echo $mobil->jumlah_roda; // Mengakses variabel public 4
$mobil->jumlah_roda=6; // set variabel ke 6
$mobil->DisplayJumlahRoda(); // 6
$mobil2 = new MobilClass(); // Create objek mobil baru lagi
$mobil2->DisplayJumlahRoda(); // Menjalankan method mobil 4
d) Menambahkan Destruktor
Kebalikan dengan konstruktor, destruktor merupakan sebuah method
yang akan secara otomatis dijalankan saat object dihapus atau
dinullkan atau eksekusi skrip PHP telah selesai.

class MobilClass
{
public $jumlah_roda;
public function __destruct() {
echo "Object telah dihapus";
}
public function DisplayJumlahRoda() {
echo $this->jumlah_roda;
}
}
$mobil = new MobilClass(); // Create objek mobil
e) Static Properties / Method
Jika Method / Property dideklarasikan secara statik maka Method /
Property tersebut dapat langsung diakses tanpa harus membuat instan
class berupa :
class MobilClass
{
public static $jumlah_roda=4;
public static function DisplayJumlahRoda() {
echo self::$jumlah_roda; // akses static value
}
}
MobilClass::DisplayJumlahRoda(); // Akses static method 4
echo MobilClass::$jumlah_roda; // Akses static variabel 4
$mobil = new MobilClass(); // Create objek mobil
$mobil::DisplayJumlahRoda(); // 4
Echo $mobil::$jumlah_roda; // 4

f) Constant Property
Pada dasarnya constant property sama dengan static property, hanya
saja cara pendeklarasiannya beda.
class MobilClass
{
const JUMLAH_RODA=4;
public function DisplayJumlahRoda() {
echo self::JUMLAH_RODA; // akses constant
}
}
echo MobilClass::JUMLAH_RODA; // Akses constant 4
$mobil = new MobilClass(); // Create objek mobil
$mobil->DisplayJumlahRoda(); // 4
g) Cloning Object
Kita bisa mengkloning object sehingga dua object akan memiliki
property dan method yang sama seterusnya.
<?php
class MyClass {
public $var = 1;
}
$obj1 = new MyClass();
$obj2 = $obj1;
$obj2->var = 2;
echo $obj1->var;
?>

h) Inheritance & Polymorphism
Inheritance = Pewarisan
Parent mewariskan sifat ke child
Polymorphism = Banyak Bentuk
Method dengan nama yang sama tapi beda parameternya
(Overloading)
Method dengan nama sama parameter sama tapi berada dalam
kelas anak (Overriding)
<?php
class Hewan {
public function suara(){
echo "tergantung hewannya apa????";
}
}
class Kucing extends Hewan {
public function suara(){
echo "meoong";
}
}
class Ayam extends Hewan {
public function suara($gender=1){
if($gender==1) echo "Kukuruyuk";
else echo "Petok-petok";
}
}
$hewan1 = new Hewan();
$hewan1->suara(); // tergantung hewannya apa????
$hewan2 = new Kucing();

$hewan2->suara(); // meoong
$hewan3 = new Ayam();
$hewan3->suara(0); // Petok-petok
?>
i) Visibility of Properties and Methods
Visibility Property and Methods maksudnya adalah skope hak akses
dari property and method. Di PHP digunakan 3 keyword yaitu :
1) Private artinya method atau property hanya bisa diakses di dalam
class itu sendiri
2) Protected artinya method atau property bisa diakses di dalam class
itu sendiri dan class-class anaknya.
3) Public artinya method atau property bisa diakses dimanapun,
<?php
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error

$obj->printHello(); // Shows Public, Protected and Private
?>
class MyClass2 extends MyClass
{
// We can redeclare the public and protected method, but not private
protected $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj2->public; // Works
echo $obj2->private; // Undefined
echo $obj2->protected; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, Undefined
B. KONSEP MVC PADA PHP
Kerangka CodeIgniter adalah sebuah framework PHP yang
menggunakan konsep MVC, dimana MVC itu sendiri adalah singkatan dari
model, view dan controller.
MVC adalah arsitektur aplikasi yang memisahkan kode-kode aplikasi
dalam tiga lapisan, Model, View dan Control. MVC termasuk dalam
arsitektural design pattern yang menghendaki organisasi kode yang terstruktur
dan tidak bercampur aduk. Ketika aplikasi sudah sangat besar dan menangani
struktur data yang kompleks, harus ada pemisahan yang jelas antara domain
model, komponen view dan kontroler yang mengatur penampilan model
dalam view.

database
Controllerc
ModelM
Viewv
user
Secara sederhana dapat dijelaskan bahwa MVC merupakan sistem
dasar pada Codeigniter yang mengelompokkan fungsi-fungsi dalam
framework tersebut berdasarkan tiga kategori yaitu :
a) Model : berfungsi untuk menangani semua fungsi yang berhubungan
dengan database.
b) View : berfungsi untuk menangai bagian tampilan pada aplikasi yang
dibagnun dengan Codeigniter.
c) Controller : berfungsi sebagai perantara atau pengontrol pergerakan aliran
data dari model menuju view dan sebaliknya.
Untuk memahami Alur Kerja dari konsep MVC dapat dilihat pada
gambar dibawah ini :
Pengertian bagan diatas adalah, ketika user melakukan request website
ke web server, maka pertama kali yang di runing adalah file controller,
kemudian file kontroller ini akan mengecek, apoakah memerlukan database
atau tidak, jika iya maka rute selanjutnya adalah, kontroller memanggil model
=> disni model melakukan pengolahan database lalu mereturnkan hasilnya ke
dalam controller. Selanjutnya kontroller akan memparsing hasil dari model
tadi ke dalam views dan ditampilkan ke user.

C. KONSEP PENGGUNAAN MVC YANG TERDAPAT PADA PHP
FRAMEWORK
Codeigniter Framework adalah salah satu dari sekian framework yang
menggunakan sistem MVC (Model-View-Controller).
Pengertian Framework merupakan suatu perangkat lunak (software)
yang bersifat penggunaan ulang suatu library atau classes yang ada di dalam
sistem tersebut untuk menjadi suatu aplikasi. Di dalam framework PHP, sudah
terdapat beberapa classes, objects dan library. Dengan begitu ketika kita
membuat aplikasi menggunakan framework, kita bisa menggunakan fitur yang
sudah ada di dalam software tersebut.
Sebagai contoh, saat seseoarng ingin mengirimkan email dan di dalam
framework sudah ada library email, jadi tidak perlu membuat code pengirim
email, cukup memanggil function library pada email. Di dalam Framework
Codeigniter sendiri telah terdapat beberapa library di dalamnya, seperti library
email, cart (keranjang belanja web ecommerce), validasi form, pagination,
session, dan lain-lain.
MVC itu sendiri adalah suatu konsep Model – View – Controller. Pada
dasarnya dalam konsep MVC ini, Model merupakan pengolah data dan
berkomunikasi dengan database, View adalah tampilan yang ditampilkan ke
user, sedangkan Controller merupakan pengolah request user dan
mengembalikan request user dalam bentuk View.