Amelia Achsandini XIRPL2 03 (framework).docx

23
Amelia Achsandini Puteri XI RPL 2 - 03 F R A M E W O R K

Transcript of Amelia Achsandini XIRPL2 03 (framework).docx

Page 1: Amelia Achsandini XIRPL2 03 (framework).docx

Amelia Achsandini Puteri

XI RPL 2 - 03

F R A M E W O R K

Page 2: Amelia Achsandini XIRPL2 03 (framework).docx

BAB 1

MVCMVC (Model-View-Controller) adalah sebuah metode untuk membuat sebuah

aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.

ModelModel mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain. View View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web. Controller Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Macam-Macam MVC pada website

1. Server Side MVC Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti Javascript, Java applet, Flash, dan lain-lain. Server Side MVC

Page 3: Amelia Achsandini XIRPL2 03 (framework).docx

menyerahkan keseluruhan proses bisnis pada server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini kadang-kadang disebut juga dengan nama Thin Client.

2. Mixed Client Side and Server Side MVC Pada Mixed Client Side and Server Side MVC 1 client tidak menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC, arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1. Pada Mixed Client Side and Server Side MVC 2, client menggunakan model sebagai jembatan untuk melakukan komunikasi pada server, dibandingkan dengan arsitektur MVC yang lain, arsitektur ini memiliki tingkat kompleksitas yang paling tinggi karena lebih banyak komponen yang terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk selanjutnya arsitektur ini disebut dengan Mixed MVC 2.

3. Rich Internet Application MVCApplication MVC Rich Internet Application (RIA) disebut juga dengan nama Fat Client, merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi desktop. RIA pada sisi client, memiliki mesin untuk mengambil data yang berada pada server, sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.

Page 4: Amelia Achsandini XIRPL2 03 (framework).docx

BAB 2FRAMEWORK PHP

Framework dapat diartikan sebagai sebuah tools atau alat yang berfungsi untuk membantu sebuah pekerjaan. Karena PHP adalah script untuk membuat website, maka framework PHP dalam kasus ini bisa diartikan sebagai alat yang berfungsi untuk mempermudah proses pembuatan sebuah website.

Saat ini ada sangat banyak framework PHP yang beredar dan dapat didownload dan digunakan oleh pengguna internet. Jumlah framework munkin akan terus berkembang karena PHP adalah platform yang open source.

Dari sekian banyak framework yang beredar, ada 5 yang popular, yaitu :

1. CakePHP

Framework ini mengusung konsep arsitektur MVC (Model-View-Controller) dan juga ORM (object Relation Mapping). Aplikasi yang dibuild ddngan cakePHP bisa dirunning di PHP4 ataupun PHP5. Dalam koneksi database framdwork ini mensupport MySQL, SQLLITE, PGSql, DB2 dan juga Oracle.

framework ini menyediakan modul tambahan berupa otentifikasi user, security, access control list sehingga memungkinkan membangun aplikasi dengan cepat. Selain itu cake php juga sudah mendukung javascript, AJAX, XML dan Rss dan email yang sudah terintegrasi dalam library nya.

Sayangnya, support dokumentasi untuk framework ini masih kuranglengkap, meskipun begitu komunitas pengguna cakePHP berkembang pesat

Page 5: Amelia Achsandini XIRPL2 03 (framework).docx

2. Code Igniter (CI)

hampir mirip dengan cakePHP, framework ini mengusung konsep arsitektur MVC, namun framework ini belum mendukung ORM, Codeigniter menyediakan banyak sekali modul yang berguna di pengembangan web seperti session management,email, security (anti Xsrf),file management,0image management dan XMLRPC yang menjadi keunggulan dari aplikasi besutan ellislab ini adalah dokumentasi yang banyak dan lengkap serta terorganisis dengan baik sehingga framework ini mudah dipelajari, selain itu bahasa yang digunakan juga lebih “manusiawi” dibanding cakePHP.

3. Kohana

framework ini menggunakan konsep MVC, pada awalnya framework ini merupakan pengembangan dari codeigniter,ada kesamaan antara Ci dengan kohana, namun semua script di Kohana telah ditulis ulang.

4. Symphony

Page 6: Amelia Achsandini XIRPL2 03 (framework).docx

framework ini ditujukan untuk pengguna PHP5, framework ini mensupport berbagai koneksi database. Seperti framework yang disebutkan diatas, simphony juga mengusung konsep arsitektur MVC.Dukungan terhadap teknologi AJAX sudah terintegrasi di framework ini.

Dalam hal dokumentasi, simphony telah memberikannya dengan cukup baik, namun yang mdnjadi kekurangan adalah proses installasi yang lebih rumit dan njelimet dibanding dengan cakePHP dan CodeIGNITER

5. Zend

menurut situs resminya, framework ini dikhususkan untuk pengembangan aplikasi web 2.0 dan untuk mempermudah dalam mengakses API dari situs2 besar seperti google, facebook, yahoo, flickr dsb.Sehingga tak mengherankan kalau framework ini dibekali modul2 web 2.0, syndication,AJAX, web services, search.

Page 7: Amelia Achsandini XIRPL2 03 (framework).docx

Perbedaan CMS dengan framework.CMS menawarkan sebuah management website yang lengkap, end-user friendly. Jika membangun website dengan sebuah Content Management System, maka kita tinggal menjalankan engine dari CMS itu saja. Kita sebagai pengembang tidak perlu lagi memikirkan proses coding, penyusunan logika, dan proses menulis kode program sendiri.Lain soal saat kita memakai framework PHP. Saat kita memutuskan menggunakan framework sebagai pondasi proses pembuatan website, kita masih harus menulis kode, menyusun logika program. Bedanya, kode-kode yang kita tulis harus menyesuaikan dengan lingkungan framework yang kita gunakan. Kita harus menyesuaikan pattern-pattern (pola) yang sudah menjadi acuan dalam suatu framework. Ya, konsekuensi dari menggunakan framework adalah kita harus mempelajari lagi lingkungan pengembangan, aturan-aturan, dan pola pengkodean berdasarkan framework yang kita gunakan. Akan tetapi, hal tersebut dirasa wajar dan akan terbayar lunas setelah kita benar-benar menguasai dan bisa menggunakan framework tersebut.

Framework pada Javascript

Framework Javascript itu sendiri adalah sebuah tool yang di gunakan pada bahasa pemrograman javascript untuk mempermudah dalam penggunaannya.Awal pengembangan Framework Javacript dimulai saat memasuki era Web 2.0, generasi kedua dari layanan berbasis web dimana lebih meniktikberatkan pada kolaborasi online, sharing content antar pengguna dan lebih terarah ke User Content Generated. Nah, berdasarkan kebutuhan akan konsep dan paradigma baru dalam pengembangan aplikasi berbasis web tersebut maka dalam pengembangannya diperlukan suatu sistem alur kerja yang bisa memudahkan dalam menciptakan aplikasi berbasis web yang canggih dan interaktif. Salah satu yang sering digunakan para developer tersebut adalah JavaScript Framework/Libraries dimana didalamnya terdapat JavaScript yang telah ditulis sedemikian rupa dimana sangat membantu dalam pengembangan sebuah Aplikasi Web, terutama dalam pengembangan AJAX (Asynchronous JavaSript And XML). Sebuah teknik pemanggilan cepat tanpa melakukan reload terhadap suatu page.

Dengan JavaScript Libraries tersebut para programmer bisa dengan mudah

mengimplementasikan paradigma WEB 2.0 yang baru seperti User interface

yang dinamik dan sangat interaktif kepada usernya.

Page 8: Amelia Achsandini XIRPL2 03 (framework).docx

Berikut beberapa jenis Framework untuk Javascript :

1. jQuery: The Write Less, Do More, JavaScript Library

2. MooTools – a compact javascript framework

3. Prototype: Easy Ajax and DOM manipulation for dynamic web applications

4. Dojo Toolkit: great experiences for everyone

5. script.aculo.us: easy-to-use, cross-browser user interface JavaScript libraries

6. ExtJS: Cross-Browser Rich Internet Application Framework

7. UIZE: supporting widgets, AJAX, DOM, templates, and more

8. YUI Library: is proven, scalable, fast, and robust

9. Archetype

10. qooxdoo: the new era of web development

Page 9: Amelia Achsandini XIRPL2 03 (framework).docx

BAB 3

MACAM-MACAM DAN PERBANDINGAN ANTARA JENIS FRAMEWORK PHP

Page 10: Amelia Achsandini XIRPL2 03 (framework).docx
Page 11: Amelia Achsandini XIRPL2 03 (framework).docx

BAB 4

Page 12: Amelia Achsandini XIRPL2 03 (framework).docx

FRAMEWORK CI

Code Igniter merupakan salah satu framework PHP yang paling banyak digunakan di Indonesia. Mengapa?

Code Igniter (CI) adalah salah satu framework php yang tangguh dan

popular. Code Igniter tergolong framework dengan ukuran kecil dan cukup mudah di kuasai. CI

juga datang dengan manual yang tergolong lengkap.

Apa Itu CodeIgniter?

CodeIgniter adalah salah satu dari sekian banyak framework PHP yang tersedia secara gratis. Pengembang CodeIgniter adalah seorang musisi rock-n-roll bernama Rick Ellis dari EllisLab (http://www.ellislab.com). Tujuan dari pembuatan framework CodeIgniter ini menurut user manualnya adalah untuk menghasilkan framework yang akan dapat digunakan untuk pengembangan proyek pembuatan website secara lebih cepat dibandingkan dengan pembuatan website dengan cara koding secara manual, dengan menyediakan banyak sekali pustaka (library) yang dibutuhkan dalam pembuatan website, dengan antarmuka yang sederhana dan struktur logika untuk mengakses pustaka yang dibutuhkan.

CodeIgniter memudahkan kita merancang sebuah aplikasi berbasis website. Tools ini dapat meminimalkan penulisan script yang sering kita lakukan secara manual, karena dilengkapi library yang cukup lengkap untuk keperluan pembuatan website. Dengan demikian, kita sebagai pengembang dapat lebih memfokuskan perhatian pada sisi perencanaan. Karena proses pembuatan website secara teknis sudah diminimalkan dalam hal penulisan kodenya. Lalu kenapa harus CodeIgniter.

Beberapa Kelebihan CodeIgniter

Page 13: Amelia Achsandini XIRPL2 03 (framework).docx

Seperti kita ketahui bahwa tersedia banyak sekali framework php yang bisa kita gunakan untuk keperluan pembuatan website. Banyak juga tersedia content managemant system yang mudah digunakan. Apa yang membuat CodeIgniter layak untuk dipilih? Berikut kelebihan-kelebihan CodeIgniter dibanding dengan tools-tools yang lain.

i. Free of Charge – Gratis

Lisensi CodeIgniter adalah lisensi Apache/BSD style open source license, yang berarti kita dapat menggunakannya secara gratis sesuai kebutuhan kita.

ii. Kompatibel dengan PHP 4.0 maupun PHP 5.0

PHP sekarang sudah memasuki release versi ke 5. Sedangka banyak webhosting ataupun developer web yang mengembangkan aplikasinya menggunakan PHP 4.0. Disinilah keunggulan CodeIgniter yang mampu mensupport pengembang yang masih menggunakan PHP versi 4.0. Namun juga tetap powerful walau digunakan bersama PHP 5.0.

iii. Lighweight – Ringan dan cepat.

Secara default, saat CodeIgniter berjalan hanya akan me-load beberapa library saja. Untuk library-library lain bisa di load sesuai kebutuhan. Hal ini berarti penggunaan resource yang sedikit sehingga aplikasi akan terasa ringan dan cepat.

iv. Prinsip Model-View-Controller.

Kita bebas berekspresi dalam style kita. Tapi bagaimanapun, CodeIgniter mendukung pengembangan web dengan metode Model View Controller (MVC). Sebagai penjelasan, MVC memisahkan bagian bussiness logic (logika program) dan tampilan (view) dalam sebuah aplikasi. Hal ini sangat memudahkan tim dalam proses maintenance sebuah aplikasi, karena tugas bisa lebih mudah dibagi-bagi. Ada bagian yang khusus membuat tampilan dan bagian yang membuat core programnya.

v. Dokumentasi yang Lengkap.

Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Dalam hal ini CodeIgniter sangat luar biasa, terdapat dokumentasi yang sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai dari langkah instalasi sampai dokumentasi fungsi-fungsi nya tersedia. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter.

vi. Pustaka yang lengkap.

CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi.

Fitur-Fitur CodeIgniter

Berikut fitur-fitur yang didukung oleh CodeIgniter :

Page 14: Amelia Achsandini XIRPL2 03 (framework).docx

1. Sistem berbasis Model View Controller2. Kompatibel dengan PHP versi 4.3. Ringan dan Cepat.4. Terdapat dukungan untuk berbagai basis data.5. Mendukung Active Record Database.6. Mendukung form dan validasi data masukan.7. Keamanan dan XSS filtering.8. Tersedia pengaturan session.9. Tersedia class untuk mengirim email.10. Tersedia class untuk manipulasi gambar (cropping,resizing, rotate dan lain-lain).11. Tersedia class untuk upload file.12. Tersedia class yang mendukung transfer via FTP.13. Mendukung lokalisasi bahasa.14. Tersedia class untuk melakukan pagination (membuat tampilan perhalaman).15. Mendukung enkripsi data.16. Mendukung benchmarking.17. Mendukung caching.18. Pencatatan error yang terjadi.19. Tersedia class untuk membuat calendar.20. Tersedia class untuk mengetahui user agent, misalnya tipe browser dan sistem operasi yang

digunakan pengunjung.21. Tersedia class untuk pembuatan template website.22. Tersedia class untuk membuat trackback.23. Tersedia pustaka untuk bekerja dengan XMP-RPC.24. Menghasilkan clean URL.25. URI routing yang felksibel.26. Mendukung hooks, ekstensi class dan plugin.27. Memiliki helper yang sangat banyak jumlahnya.

I. Instalasi Code Igniter

Karena berupa folder php, maka instalasi Code Igniter, cukup dengan mengekstrak file

kompresi yang di dapat dari situs www.codeigniter.com dan menempatkannya di dalam folder

directory web server anda. Kemudian edit file config.php yang ada di

application/config/config.php dan set base URL anda, misal : http://localhost/ci. Jika anda

hendak menggunakan database, edit file database.php yang ada di

application/config/database.php. Setting database anda di file tsb. Setelah di lakukan instalasi

dan setting, test lah Code Igniter anda dengan membuka browser anda dan mengetikkan url

yang anda taruh di file config.php di atas, misal : http://localhost/ci. Jika muncul halaman

welcome ala Code Igniter, maka Code Igniter telah siap di gunakan.

II. Struktur file CI

Page 15: Amelia Achsandini XIRPL2 03 (framework).docx

CI adalah sebuah php framework yang berupa kumpulan folder dan file php, java

script,css,txt dan file berbasis web lainnya dengan setting tertentu untuk menggunakannya

dan menyediakan library dan helper yang dapat di manfaatkan di dalam pemrograman php. CI

di jalankan under web dan harus dengan web server. Program CI cukup di letakkan di bawah

folder directory web server anda.

Berikut adalah struktur file CI :

III. Sistem Kerja Dari Framework CodeIgniter

Setelah kita faham mengenai Konsep MVC (Model View Controller), selanjutnya mari kita mengenal atau memahami system kerja dari framework codeigniter. Setiap aplikasi pastiya memiliki beberapa tahapan yang harus dilewati. Begitu pula dengan Framework Codeigniter, alur kerjanya dapat dilihat pada gambar dibawah ini.

Dari gambar diatas dapat dijelaskan sebagai berikut :

Index.php adalah controller awal yang menginiliasisakan kebutuhan untuk menjalankan Codeigniter

Router/Rounting adalah bagian yang menentukan kegiatan yang harus dilakukan ketika ada request/permintaan dari client/browser.

Page 16: Amelia Achsandini XIRPL2 03 (framework).docx

Caching, adalah bagian yang mengecek apakah data sudah pernah diminta atau belum, jika cache dalam keadaan aktif, maka akan langsung dikirimkan kepada client/browser dengan mengabaikan alur kerja normal.

Security, sebelum aplikasi dikirimkan, maka akan terlebih dahulu data tersebut disaring sebagai keamanan.

Controller, merupakan pengendali dari jalannya aplikasi, dan akan segera memproses sesuai request/permintaan yang diminta, yaitu models, libraries, helpers, plugins, da scripts.

View, merupakan bagian untuk menyajikan suatu informasi ke client/browser sesuai dengan permintaan yang diminta.

IV. Cara Install Codeigniter

Beberapa hal yang harus disiapkan dalam praktek tutorial ini antara lain:

1. Program PHP sebagai bahasa pemrograman, karena Codeigniter ditulis menggunakan bahasa pemrograman PHP.

2. Web Server, dalam hal ini saya menggunakan Apache sebagai web servernya.3. Database, dalam hal ini MySQL (optional, karena kita belum memanfaatkan database

dalam praktek ini)4. IDE (Editor), dalam hal ini saya menggunakan Dreamweaver.5. Codeigniter, sebagai Framework yang dapat didownload dihalaman ini, saya menggunakan

versi 2.1.3 pada saat membuat tutorial ini.6. Untuk program PHP-MySQL-Apache, sudah banyak package yang tinggal install, artinya

dengan satu kali install, dikomputer kita sudah terinstall tiga aplikasi tersebut (PHP-MySQL-Apache). Misalnya WampServer, Xampp, dll

Membuat Form dengan CI

Form pada CI dapat di buat dengan menggunakan helper atau dengan syntax html biasa.

Pada kesempatan kali ini, kita akan mencoba membuat form dengan menggunakan helper.

Buatlah sebuah controller. Ketik code berikut :

<?php

class Form extends Controller

{

function index()

{

$this->load->view('form');

}

function jumlah()

{

$angka1=$this->input->post('angka1');

Page 17: Amelia Achsandini XIRPL2 03 (framework).docx

$angka2=$this->input->post('angka2');

$hasil=$angka1+$angka2;

echo "Hasil nya adalah : $hasil";

echo "<br />".anchor("form/index","Kembali");

}

} ?>

Beri nama file “form.php”.

Buat sebuah view dengan nama “form.php” . Ketikkan code sbb :

<html>

<head>

<title>Membuat Form input penjumlahan dengan CI</title>

</head>

<body>

<table>

<? echo form_open('form/jumlah');

$data1=array(

'name' => 'angka1',

'size'=>'15');

echo "<tr><td>Angka 1</td><td> :</td><td>".form_input($data1)."</td></tr>";

$data2=array(

'name' => 'angka2',

'size'=>'15');

echo "<tr><td>Angka 2</td><td> :</td><td> ".form_input($data2)."</td></tr>";

echo "<tr><td>".form_submit('mysubmit','Ok') ;

echo " ".form_reset('mysubmit','Clear')." </td></tr>";

?>

</table>

</body>

</html>

Pada contoh di atas kita load helper di file autoload.php untuk load secara otomatis.

$this->load->helper('form');

- Helper yang kita gunakan, kita input di view. Syntax yang di gunakan adalah :

Page 18: Amelia Achsandini XIRPL2 03 (framework).docx

- form_open ('form/jumlah')

Syntax di atas sama dengan syntax html berikut :

<form method=”post” action=”http://localhost/ciprivate/index.php/form”>

atau, gunakan base_url(), untuk mengantisipasi perubahan pada url.

<form method=”post” action=”<?=base_url();?>index.php/form”>

Nilai base_url() di atas mengambil nilai base_url di file config.php .

- form_input ('username','sofwan')

Minimal, kita memasukkan nama field dan value pada syntax form_input.

Jika menggunakan parameter yang lebih banyak, yaitu :

$data1=array(

'name' => 'angka1',

'size'=>'15');

echo form_input($data1);

- form_submit('my submit','OK');

identik dengan :

<input type=”submit” value=”OK”>

- form_reset

Sama penggunaan nya dengan form_reset.

BAB 5

Page 19: Amelia Achsandini XIRPL2 03 (framework).docx

KESIMPULAN

Tujuan frmework adalah untuk memudahkan programmer untuk melakukan pekerjaan yang umum dan dil.akukan secara berulang ulang. Dengana danya framework, hal hal tersebut menjadi lebih mudah karena framework sudah menyediakan fitur fitur tersebut, sehingga waktu pengerjaan diharapkan bisa menjadi lebih cepat dan memperoleh hasil yang lebih baik. Keuntungan lain dari penggunaan framework adalah programming style dari time developer bisa lebih seragam (konsisten) karena framework sudah menyediakan pattern yang sudah terbukti efektif untuk mendevelop aplikasi.

Kelemahan penggunaan framework adalah perlunya waktu untuk mempelajari cara penggunaan framework itu sendiri. Jika waktu tersebut masih jauh lebih oendek daripada waktu pengerjaan proyeknye, maka menggunakan framework akan memberikan manfaat yang signifikan.

TERIMA KASIH b