Transcript

Week #12

UNIVERSITAS MULTIMEDIA NUSANTARA

Disusun: Guson Kuntarto

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.

Analisis AnalisisAnalisis

Desain

Implementasi

Desain

Implementasi

Desain

Implementasi

� 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

Simbol

UMLKode

Program

Diagram

UMLKode

Program

(object Oriented)

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

� Use case diagram

� 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

� Example (ibm.com)fileline

Instance: system

Class: ReportingSystem

Message dikirim

return

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

� Script PHP ???

� PHP Script dari class diagram “kendaraan bermotor”

� 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 “component diagram”

<<builds>>

Client page Server page

<<builds>>

hello hello

� Contoh implementasi “class diagram”

<<builds>>

Client page Server page

<<builds>>Hello Hello

sayHello()

� Contoh implementasi script “server page”

Result

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

� MVC Pattern

CONTROLLER

MODEL

VIEW

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

� Download paket codeigniter

� 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)

� Ubah $application_folder =“application”;

menjadi

� Buka file config.php dalam folder

web/config/config.php

� Pada file config.php, ubahlah line 14 yaitu

$config[‘base_url’]=http://example.com

menjadi

� 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)

� Ubah $autoload[‘libraries’]=array();

menjadi

� 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)

� Contents.php

� Contents_model.php

� home.contents.view.php

� Jalankan pada browser

� Jika ingin controller Contents dipanggil

sebagai default, buka file routes.php dalam

folder /web/config.

Lakukan modifikasi:� Lakukan modifikasi:

$route['default_controller'] = "welcome";

menjadi

� Buka kembali browser, lalu ketik

http://localhost/webprog/week12/ pada url

locator.

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


Top Related