Download - MVC Pattern & PHP Framework
1. Inheritance: 1. Inheritance
2. Final Method.
1. Polymorphism: 1. Polymorphism: 1. Class with polymorphism,
2. Overloading dan Overriding,
3. Abstract class,
4. Interfaces & multiple inheritance
5. Class library,
6. Implementasi Class library dalam sebuah aplikasi
7. Namespaces
� Membangun aplikasi web dengan konsep
OOP
� Unified Modeling Language (UML).
� Web Application Extension (WAE)
� Pattern dan pengantar MVC
� PHP Framework
� Codeigniter 1.7.2
� Website pertama kali dibuat oleh tim
Berners-Lee sebagai wadah bagi para peneliti
di European Council for Nuclear Research
(CERN) untuk mengakses hasil penelitian. (CERN) untuk mengakses hasil penelitian.
Hasil penelitian diakses melalui browser.
� Aplikasi web merupakan pengembangan dari
web site dalam arti aplikasi web
menggunakan arsitektur yang sama dengan
website (client-server).
� Penerapan aplikasi web telah meluas di
berbagai bidang.
� Contoh:
Perbankan� Perbankan
� Retail
� Automation system
� Ticketing
� dll
� Agar pembangunan aplikasi web lebih efisien
dan terencana diperlukan metode
pengembangan software yang mencakup:
Tahapan yang harus dilakukan� Tahapan yang harus dilakukan
� Kegiatan dalam setiap tahapan
� Hasil yang diharapkan pada setiap tahapan
� Peran individu/ kelompok
� Tools yang dipergunakan
� Berbeda dengan metode klasik seperti “waterfall life cycle” yang sering dipergunakan oleh disiplin ilmu teknik cenderung bersifat kaku yang memberi penegasan/ batasan antara desain dan memberi penegasan/ batasan antara desain dan implementasi.
� Pengembangan aplikasi web/ perangkat lunak cenderung bersifat dinamis, contoh: spesifikasi dari pelanggan (user requirements) sering kali berubah.
� Untuk itu diperlukan metode-metode baru
yang menggunakan tahapan iteratif.
� Metode ini lebih adaptif terhadap perubahan
user requirements.user requirements.
� Satu siklus tidak terlalu memakan waktu
yang lama, sehingga proses perbaikan (bugs,
errors, dll) dapat dilakukan pada siklus
berikutnya.
� Unified Modeling Language (UML)
merupakan metode yang ditujukan untuk
pengembangan aplikasi berorientasi object,
yakni dengan cara memodelkan artifak yakni dengan cara memodelkan artifak
(simbol dan diagram) dari perangkat lunak
� UML adalah bahasa standard guna
merepresentasikan model (deskripsi
masalah/ topik dari aplikasi yang akan
dibangun).dibangun).
� Dengan menggunakan model setiap anggota
tim pengembang akan “berbicara” dengan
bahasa yang sama
� Tahapan pembangunan aplikasi berorientasi
obyek pada umumnya bersifat iteratif.
� Satu siklus biasanya terdiri dari.
Tahap analisa permintaan,� Tahap analisa permintaan,
� Tahap analisa sistem.
� Tahap desain,
� Tahap implementasi.
UML
Coding: PHP,
ASP, JSP
� UML menyediakan 10 macam diagram guna memodelkan aplikasi berorientasi object.� Use case diagram untuk memodelkan proses bisnis.
� Conceptual diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.yang ada di dalam aplikasi.
� Sequence diagram untuk memodelkan pengiriman message antar object
� Collaboration diagram untuk memodelkan interaksi antar objects
� State diagram untuk memodelkan perilaku object di dalam sistem
� Activity diagram untuk memodelkan perilaku use case dan object di dalam system
� UML menyediakan 10 macam diagram guna memodelkan aplikasi berorientasi object (cont’d)� Class diagram untuk memodelkan struktur class.� Class diagram untuk memodelkan struktur class.
� Object diagram untuk memodelkan struktur objects
� Component diagram untuk memodelkan komponen object
� Deployment diagram untuk memodelkan distribusi aplikasi.
� Sequence diagram dipakai untuk memodelkan detail dari setiap use case diagram yang telah dibuat sebelumnya.
� Setiap object yang terlibat digambarkan dengan � Setiap object yang terlibat digambarkan dengan garis putus-putus vertikal.
� Message yang dikirim oleh object digambarkan dengan garis horisontal (panah) secara kronologis dari atas ke bawah
� Penamaan lifeline: Instance Name : Class Name
� Collaboration diagram Notation
dipakai untuk memodelkan interaksi antar-
object di dalam sistem. Fokus pada
pemahaman atas keseluruhan operasi yang pemahaman atas keseluruhan operasi yang
dilakukan oleh object.
� Diillustrasikan class-class dan instance-nya.
Dua buah instance dihubungkan dengan link
line. Message digambarkan dengan garis
panah di atas link line.
1:return:message(parameter1, parameter2)Message1()
Hasil operasi Nama method Parameter method
c1:Class1 c2:Class2
instance instance
Link linemessage
� Menggambarkan class dan hubungan antar-class di dalam sistem. Class diagram dibangun berdasarkan use case diagram, atau collaboration diagram yang telah dibuat atau collaboration diagram yang telah dibuat sebelumnya.
� Class diagram digambarkan dengan sebuah kotak dibagi menjadi tiga bagian.� Bagian paling atas adalah nama class
� Bagian tengah adalah variable (properties, field)
� Bagian bawah adalah method (function dari class)
HelloWord
Implementasi script PHP
<?php
class HelloWorld{
public $text=“Hello World”;
Class diagram
Public $text
Public sayHello()
public $text=“Hello World”;
public function sayHello(){
echo “$text”;
}
}
?>
� Hubungan antar class ada yang bersifat
generalization, dependency, aggregation ,
association.
Hubungan antara class yang bersifat umum � Hubungan antara class yang bersifat umum
(superclass/ parent class) dengan yang
bersifat lebih spesifik (subclass) merupakan
hubungan generalization.
� Hubungan antar class tidak dibahas semua.
� Hubungan antar class: generalization,
go ()
KendaraanBermotor
var $engineStart
go ()
startEngine()
stopEngine()
isEngineOn()
jeep
go ()
� Web Appliaction Extension (WAE) adalah
UML extension untuk melakukan pemodelan
web.
WAE mendifinisikan 5 class stereotypes dan � WAE mendifinisikan 5 class stereotypes dan
icon.
CLASS STEREOTYPES ICON
Server Page: memodelkan
File yang mengandung kode PHP. File
Akan dijalankan diwebserver
Client Page: memodelkan keluaran dari
Server page yang dikirimkan ke browser.
Berisi tag HTML, javascript. Hubungan
Baku antara server-client adalah
<<builds>>
Form: digunakan untuk mengirimkan
Masukkan di dalam aplikasi web. HTML
Form terdiri atas satu atau lebih element
Seperti <input>, <select>,<textarea>.
Hubungan baku form dengan serverpage
Adalah <<submit>>
CLASS STEREOTYPES ICON
Frameset: memodelkan user interface ke dalam
Frame, masing-masing frame diberikan dengan
Halaman client yang terpisah.
Paling tidak harus satu <<client page>> atau
<<target>> class stereotype.<<target>> class stereotype.
Target: merupakan target
Dari hyperlink
� Contoh implementasi “class diagram”
<<builds>>
Client page Server page
<<builds>>Hello Hello
sayHello()
� Tidak semua diagram harus
diimplementasikan dalam membangun
aplikasi web.
Secara umum jenis diagram yang dipakai � Secara umum jenis diagram yang dipakai
adalah diagram use case, sequence,
collaboration, class diagram, dan WAE
Use case sequence collaboration Class diagram WAE
1 2 3 4 5
� Dalam merancang sebuah aplikasi perangkat lunak, masing-masing programer memiliki pendekatan sendiri-sendiri.
� Namun, diantara pendekatan yang berbeda-� Namun, diantara pendekatan yang berbeda-beda akan ditemui bagian-bagian tertentu yang memiliki kesamaan solusi (sependapat).
� Solusi tersebut telah terbukti dapat membuat rancangan aplikasi menjadi lebih fleksibel, sederhana, dan mudah dalam implementasi (sehingga lebih cepat).
� Secara umum mekanisme aplikasi web terdiri
dari beberapa bagian, sebagai berikut.
� Bagian yang berfungsi untuk menginterpretasi
permintaan dari pengguna (HTTP request).permintaan dari pengguna (HTTP request).
� Bagian yang memodelkan problem domain atau
business logic.
� Bagian yang mengelola tampilan (warna, layout,
menu, dll) yang akan dikirimkan ke pengguna
� Model-View-Controller (MVC) pattern adalah
pattern dasar yang memisahkan ketiga
bagian tersebut menjadi tiga object yang
terpisah.terpisah.
� Interaksi antara ketiga bagian tersebut
dijelaskan dalam gambar berikut.
� Controller: dapat dianalogikan sebagai
penerima tamu dari pemintaan yang datang
(HTTP request).
Controller berfungsi sebagai.� Controller berfungsi sebagai.
� Mengevaluasi request yang masuk,
� Mengarahkan ke object yang tepat untuk
memroses permintaan tersebut
� View: hasil akhir yang dikirimkan ke
pengguna aplikasi (user).
Format HTML merupakan contoh umum hasil � Format HTML merupakan contoh umum hasil
akhir yang dikirimkan oleh aplikasi web.
� Model: representasi dari proses bisnis di
dalam aplikasi.
� Model bertugas mengolah data mentah
menjadi data yang mengandung arti (yang menjadi data yang mengandung arti (yang
diinginkan oleh user aplikasi).
� Model tidak bergantung pada bagian
controller dan view. Apakah keuntungannya
dari skenario ini?
� Keuntungan yang diperoleh?
� Bagian model dapat dibangun dan dilakukan
pengujian secara terpisah.
� Bagian view dan model membutuhkan keahlian yang � Bagian view dan model membutuhkan keahlian yang
berbeda, di mana jarang ditemui orang yang
menguasai kedua bidang ini sekaligus. Pemisahan
memungkinkan penerjaan dilakukan secara paralel.
� Pemisahan dapat menguntungkan jika dalam
membangun interface aplikasi tidak hanya dapat
diakses oleh PC namun smartphones.
� Codeigniter (CI) adalah open source web
application framework dengan menggunakan
bahasa PHP.
Dikembangkan oleh Rick Ellis (CEO Ellislab)� Dikembangkan oleh Rick Ellis (CEO Ellislab)
� Menggunakan pattern MVC.
� Model (database abstraction layer).
� View (Front-end template files).
� Controllers (business logic dari aplikasi web)
� Compatible PHP4 & 5
� Mengimplementasikan active record pattern,
yakni memudahkan penulisan queries SQL
yang kompleks dan membuat aplikasi
“readable”. (support MySQL, Oracle as “readable”. (support MySQL, Oracle as
backend).
� Memiliki useful class libraries dan banyak
helper function guna membangun aplikasi
web.
� Apa saja yang harus disiapkan?
� Webserver dapat menggunakan xampp, WAMPP,
dan lainnya untuk development.
� CI dapat berjalan pada PHP versi 4.3.2 atau yang � CI dapat berjalan pada PHP versi 4.3.2 atau yang
lebih baru dan database MySQL 4.1+
� IDE (Optional), Netbeans dengan mendownload
plugin PHP, Eclipse PDT, Notepad++
� Web browser
� Pengetahuan tentang PHP dan OOP
� Setelah selesai download, lalu extract:
CodeIgniter_1.7.2.zip sehingga di dapati
folder CodeIgniter_1.7.2/
� Lalu copy isi yang terdapat pada folder
codeigniter 1.7.2 ke folder tujuan (mis:
htdocs/webprog/week12/)
� Open browser, ketik pada url locator:
http://localhost/webprog/week12/
� Maka akan muncul tampil seperti gambar di
bawah ini.bawah ini.
� Application folder merupakan folder tempat
kita akan menempatkan file php dalam
membangun aplikasi web.
� Di dalam folder application, terdapat folder-folder.
� Secara umum terdapat 4 folder utama, yaitu.� Folder config. Folder yang di dalamnya terdapat file
php yang melakukan konfigurasi dasar dari aplikasi php yang melakukan konfigurasi dasar dari aplikasi yang kita bangun.
� Folder controllers. File controller akan ditempatkan dalam folder ini.
� Folder models. File model akan ditempatkan dalam folder ini.
� Folder view. File view akan ditempatkan dalam folder ini.
� Move folder application dari dalam folder
system, guna memisahkan application
dengan folder yang berisi core dari
codeigniter. (mis: di dalam folder webprog/ codeigniter. (mis: di dalam folder webprog/
week12)
� Lalu rename folder application menjadi (mis:
web), seperti yang ditunjukkan pada gambar
di bawah ini.
� Bukalah file index.php pada (mis:
htdocs/webprog/week12/index.php) dengan
menggunakan IDE (mis: netbeans)
� Jika aplikasi yang akan dibangun menggunakan
database, untuk itu perlu disetup autoload guna
me-load library database.
� Buka file autoload.php dalam folder (mis: � Buka file autoload.php dalam folder (mis:
web/config)
� Membuat first time web dengan codeigniter, guna
menampilkan “Hello World, first script!” ke browser.
1. Buatlah controller dengan nama contents.php pada
folder (mis: web/controller).
2. Buatlah model dengan nama contents_model.php pada
folder (mis: web/models).
3. Buatlah folder dengan nama contents di dalam
web/views. Lalu buat file dengan nama
home.contents.view.php (nama file bebas)
� Jika ingin controller Contents dipanggil
sebagai default, buka file routes.php dalam
folder /web/config.
Lakukan modifikasi:� Lakukan modifikasi:
$route['default_controller'] = "welcome";
menjadi
� Membangun aplikasi web dengan konsep
OOP
� Unified Modeling Language (UML).
� Web Application Extension (WAE)
� Pattern dan pengantar MVC
� PHP Framework
� Codeigniter 1.7.2
� Azis, F., 2005, Object Oriented Programming dengan PHP5, Elex Media Komputindo.
� Bell D., 2004, UML basic: The Sequence Diagram, URL: http://www.ibm.com/developerworks/rational/library/3101.html.URL: http://www.ibm.com/developerworks/rational/library/3101.html.
� Conallen J., 2002, Building Web Applications with UML, 2nd Edition, Addison-Wesley, URL: http://flylib.com/books/en/2.141.1.100/1/
� Griffiths A., 2010, Codeigniter 1.7 Professional Development, Packt Publishing.
� Noviyanto A., 2010, Burn Your PHP Code using CodeIgniter, 1st Edition , Skripta.