Download - Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

Transcript
Page 1: 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

Page 2: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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.

Page 3: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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

Page 4: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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() {

Page 5: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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.

Page 6: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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

Page 7: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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;

?>

Page 8: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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();

Page 9: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

$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

Page 10: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

$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.

Page 11: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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.

Page 12: Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028

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.