MVC & FRAMEWORK

Februari 17, 2013


I.KONSEP MVC
PENGERTIAN  MVC(Model View Controller)
            MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data(Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakanframework 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.
SEJARAH MVC(Model View Controller)
MVC pertama sekali dipublikasikan oleh peneliti XEROX PARC yang bekerja dalam pembuatan bahasa pemrograman Smalltalk sekitar tahun 1970-1980.
BAGIAN MVC(Model View Controller)
1.      Model, Model 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. Bagian model ini biasanya berisi berbagai query yang dialamatkan pada sebuah database. File-file model diletakkan di dalam folder application/models.( mengandung fungsi-fungsi untuk berkomunikasi dengan database, seperti : mengambil data produk dengan id tertentu, hapus produk, menyimpan komentar pada blog)
2.      View, View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web. Pada bagian view biasanya tidak terdapat fungsi logika sama sekali. Yang ada hanyalah kode-kode HTML dan sebagian kecil kode PHP yang digunakan untuk melakukan parsing data. Penggunaan view tergantung pada controller, view mana yang akan digunakan dan data apa saja yang akan ditampilkan
3.      Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web. Melalui controller inilai request HTTP akan diolah.Nantinya nama kelas dan method beserta parameternya yang terdapat dalam controller akan digunakan dalam pengasosiasian URI sehingga pemahaman tentang controller ini mutlak dibutuhkan. kode yang memeriksa input dari pengunjung dan memilih apa yang harus dilakukan.
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object Oriented Programming).
JENIS MVC(Model View Controller) pada website
1.      Server Side MVC, Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side seperti JavascriptJava appletFlash, dan lain-lain. Server Side MVC 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]
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 MVC, Application 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.

 PEMAHAMAN MVC(Model View Controller)
1.      Untuk memahami konsep MVC suatu framework harus memahami
–Instalasi dan konfigurasi web framework tsb
–Struktur direktori dalam framework
–Penerapan MVC (sintaks)
2.      Kebutuhan tools
–Web server (XAMPP, WAMP, dll)
–Editor Web(Mac. Dreamweaver, dll)
–Framework CodeIgniter 1.7.2.
3.      Pemanggilan View
-View dalam konsep MVC merupakan bagian untuk menangani tampilan.

II. Framework di PHP dan di JAVASCRIPT
PENGERTIAN PHP FRAMEWORK 
Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam
menangani berbagai masalah masalah dalam pemrograman seperti  koneksi ke database, pemanggilan variabel, file,dll sehingga    developer lebih fokus dan lebih cepat membangun aplikasi.Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapansaja, sehingga programmer tidak harus membuat script yang sama untuk tugas yang sama. Secara sederhana bisa dijelaskan bahwa framework adalah kumpulan fungsi (libraries),maka seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulanlibrary) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framework, tentunya cara menggunakan fungsi fungsi itu sudah ditentukan oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu framework adalah fungsi paging, enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi ,gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS(XSSfiltering), template, kompresi, XML dan lain-lain.
KELEBIHAN PHP FRAMEWORK
Ringan dan cepat. Framework hanya melakukan pemanggilan pustaka/kelas yang dibutuhkan sehingga meminimalkan resource yang diperlukan sehingga ketika kita me-load sebuah halaman akan menjadi ringan dan cepat. Menggunakan metode MVC. Seperti yang telah dijelaskan sebelumnya, dengan metode MVC akan mempermudah kita dalam memahami alur pemrograman karena untuk bagian tampilan, logika dan query database telah dipecah sedemikian rupa.
3 JENIS PHP FRAMEWORK
1.      Application framework; Application framework digunakan untuk mengimplementasikan strukrur-struktur yang standar dari sebuah aplikasi; yang digunakan untuk platform yang spesifik. Platform yang spesifik di sini misalnya adalah aplikasi hanya untuk Windows saja, sehingga tidak dapat dijalankan pada platform lainnya.
2.      Web application framework; Web application framework digunakan untuk mengimplementasikan berbagai macam jenis web, mulai dari web dinamis, aplikasi web, dan layanan web. Banyak contoh dari Web Application Framework semisal Spring, Struts, Hibernate, CI (Code Igniter) dan masih banyak lagi.
3.      Multimedia framework; Multimedia Framework digunakan untuk mengimplementasikan media yang terdapat pada komputer agar dapat menembus jaringan komputer ataupun Internet.
MACAM-MACAM PHP FRAMEWORK

- CodeIginter
- CakePHP
- Akelos
- Zend
- Symfony
- Prado
- Yii
- Kohana
- DoopPHP
- dll…
JAVASCRIPT FRAMEWORK
            Tools yang di gunakan pada bahasa pemrograman javascript untuk mempermudah dalam penggunaannya. 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.
KELEBIHAN JAVASCRIPT FRAMEWORK
-          Lebih efisien
-          Hemat
-          Lebih menjaga keamanan
MACAM-MACAM JS FRAMEWORK
-           Jquery
-           MooTools
-           YUI
-           Midori
-         EXT JS, dll

III. Macam-macam dan Perbandingan PHP framework
Php Framework terdiri dari banyak jenis, diantaranya:
1. CodeIgniter (CI):
• Banyak digunakan karena berukuran kecil dan ringan diakses
• Framework dengan konfigurasi minimal
• Dokumentasi lengkap dan jelas
• Bersifat opensource dan didukung komunitas yang besar
• Dapat dikembangkan dengan mudah (plugin, helper dan hook)
• Paket library yang lengkap (database, email, form, tabel, dll)
Mudah digunakan dan tidak memerlukan konfigurasi yang rumit
Mendukung PHP4 dan PHP5
Mungkin merupakan Framework MVC paling populer dan paling banyak digunakan
Fungsi-fungsi pendukung yang cukup lengkap
Tidak mendukung AJAX, dan ORM
Meyediakan dan memisahan file-file dalam MVC pattern


2. CakePHP :
• Didesain mengikuti arsitektur RoR (RubyonRails), sebuah framework terkemuka
• Mendukung teknologi ORM (Object Relational Model)
• Bersifat opensource dan didukung oleh komunitas yang besar
• Digunakan oleh sistem web terkenal (salah satunya adalah portal Yahoo!)
Dukungan terhadap AJAX, ORM
Automagic function seperti validasi input, dll, yang mempercepat coding
Support PHP4 dan PHP5
Lebih mencerminkan MVC yang sesungguhnya dibandingkan CI
Komunitas pengguna yang besar dan forum cukup baik
• Manual yang ada tidak selengkap CI

3. Yii Framework:
• Menggunakan database abstraction layer seperti Data Access Objects (DAO) dan Active Record untuk memudahkan interaksi dengan database
• Terintegrasi dengan JQuery Javascript Framework.
• Memiliki layer cache untuk cache data, halaman, sebagian, dan keseluruhan aplikasi
• Penggunaan theme
• Console, penggunaan perintah pada console untuk melakukan beragam perintah otomatis
• Widget, semacam kontrol yang memiliki fungsi tertentu seperti autocomplete, datapicker, table, dan lain-lain
• Modular dan mudah ditambahkan
Memiliki struktur bahasa yang rapi
Bersifat OOP
4. Zend Framework:
• Mengimplementasikan MVC pattern untuk pengembangan aplikasi web di mana Zend Framework memisahkan bagian yang menjadi controller, model dan view
Untuk membuat suatu framework serta library yang dibangun di atas teknologi
php5
• Mendayagunakan kelebihan pemrograman berorientasi objek yang telah disediakan serta menghasilkan library yang lebih maju dan lengkap untuk mendukung kebutuhan developer php pada saat ini
• Framework open source dan berkualitas tinggi untuk membangun aplikasi web dan web service dengan PHP
5. SYMPFONY Framework:
• Framework web yang ditujukan untuk PHP 5.
• Kompatibel dengan berbagai sistem database. seperti CakePHP dan CodeIgniter, Symfony juga menganut arsitektur MVC (Model View Controller).
• Proses instalasi dan konfigurasi cukup rumit bila dibandingkan dengan framework sebelumnya.
Dukungan terhadap AJAX, ORM.
Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir mendekati
Tidak mendukung PHP4.
Instalasi dan konfigurasinya cukup rumit.
6. AKELOS Framework:
1.Menulis dilihat menggunakan Ajax mudah
2. Berkomunikasi model dan database menggunakan konvensi sederhana
3. Mengelola aplikasi internasionalisasi
4. Pengendalian permintaan dan tanggapan melalui controller
5. Kurang adanya dukungan komunitas. Mungkin karena masih relatif baru
     Beberapa forum mengatakan bahwa framewok ini cukup banyak memakan memory

7. PRADO Framework:
1. Berbasis komponen dan event-driven. Konsepnya mirip sekali dengan pemrograman di Delphi dan ASP.Net
2. Gabungan dari file spesifikasi (dalam format XML), template HTML dan PHP class
3. Mendukung pemakaian berbagai database populer
4. Prado hanya mendukung PHP 5 saja tetapi PHP 4 juga

8. KOHANA Framework:
1. Perangkat lunak kerangka (FrameWork)
2. Berupa sekumpulan kode yang memiliki suatu fungsi umum dan memudahkan pengembang perangkat lunak
3. Untuk membangun suatu proyek
4. Membuat suatu standar khusus terhadap struktur. Ini adalah suatu kemudahan bagi pengembang/pengguna akhir yang ingin mengembangkan suatu aplikasi berdasarkan kerangka standar.

NB : Perbandingan nya sudah tercantum di penjelasan diatas ya J


IV. CodeIgniter framework (CI)
SEJARAH
CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir 2.1.0 yang dirilis pada 28 November 2011.
Sebelum membahas lebih jauh tentang salah satu framework PHP ini, mungkin kalian ada yang masih bingung apa itu Framework, apa itu MVC (Model, View, Controller)?
Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang pemrograman, tanpa harus membuat fungsi atau class dari awal.
CodeIgniter tidak terlalu sulit, apalagi bagi anda yang sudah menguasai PHP dan lebih mudah lagi apabila anda memahami PHP yang berbasis OOP(Object Oriented Programming) maupun konsep MVC(Model View Controller). Framework Codeigniter  berbasiskan konsep MVC yang memudahkan programmer dalam mengolah data.
Sebelum memulai membangun aplikasi web, alangkah baiknya mengetahui konfigurasi awal yang harus dilakukan sebelum menggunakan framework Codeigniter ini.
PENGGUNAAN
Pertama kita lihat file config.php di folder %CI_Root%\system\application\config
terdapat kode

    $config['base_url'] = "";
ini adalah konfigurasi untuk mengakses alamat dari aplikasi yang akan kita bangun. Contoh
     $config['base_url'] = "http://localhost/xxis/";
atau
     $config['base_url'] = "http://192.168.0.114/xxis/";

xxis disini adalah nama folder root dari aplikasi CI yang kita bangun. Jadi apabila nama folder rootnya
adalah Contoh, maka kodenya harus
     $config['base_url'] = "http://192.168.0.114/Contoh/";

Selanjutnya kita lihat file database.php yang masih se folder dengan file config.php
terdapat kode
     $db['default']['hostname'] = "localhost"; 
kode ini untuk mendefinisikan host dari database yg akan kita pakai, secara default hostnya adalah localhost      
     $db['default']['username'] = "postgres";
kode ini untuk mendefinisikan username dari pengguna database (secara default untuk MySQL : root, Postgre : postgre dan oracle : system).


     $db['default']['password'] = "xxis";
merupakan password yang kita pakai untuk mengakases database

     $db['default']['database'] = "xxis";
merupakan database mana yang akan kita pilih

     $db['default']['dbdriver'] = "postgre";
merupakan driver untuk mengakases database (untuk MySQL : mysql, postgresql : postgre, sedang oracle : oci8).

     $db['default']['port'] = 5432;
port default CI khusus untuk mengakases database PostgreSQL. Jika selain PostgreSQL, $db['default']['port'] = 5432;bisa di abaikan/dihilangkan.
KELEBIHAN

Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain. Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.

STRUKTUR DIREKTORI
        Folder system -> folder sistem aplikasi yang dibangun
Folder system terdiri dari :
–Folder application tempat menyimpan file aplikasi yang dibangun
–Folder cache menyimpan semua cache yang dibuat cache library
–Folder codeigniter menyimpan file internal codeigniter
–Folder database menyimpan driver database
–Folder fonts menyimpan font yg digunakan pada sistem
–Folder helpers menyimpan helper core dari codeigniter
–Folder language menyimpan file bahasa core codeigniter
–Folder logs menyimpan semua log generated oleh codeigniter
–Folder plugin menyimpan plugin core codeigniter
–Folder scaffolding menyimpan semua file yg berfungsi sebagai scaffolding
        Folder Application  -> folder vmanual penggunaan CodeIgniter
Folder application terdiri dari :
–Folder config menyimpan konfigurasi aplikasi
–Folder controllers menyimpan semua file controller dari aplikasi
–Folder errors menyimpan semua file template error aplikasi
–Folder helpers menyimpan helper aplikasi (bukan core codeigniter)
–Folder hook menyimpan hook yg digunakan untuk mengubah alur fungsi core codeigniter
–Folder language tempat menyimpan bahasa yg digunakan aplikasi
–Folder libraries menyimpan semua library buatan sendiri (bukan core)
–Folder models menyimpan semua file model dari aplikasi
–Folder views menyimpan semua file view dari aplikasi

INSTALASI ATAU KONFIGURASI
Instalasi maupun konfigurasi framework CodeIgniter terletak pada direktori system/application/config.
Secara umum ada 4 file yang perlu dilakukan perubahan untuk konfigurasi/instalasi, yaitu :
–Config.php
–Autoload.php
–Database.php
–Routes.php

CONTROLLER DASAR

•Controller dasar merupakan controller utama dan sederhana, misalnya menampilkan tulisan “Selamat Belajar CodeIgniter”
•Misalkan terdapat controller latihan(file latihan.phpdi direktori system/application/controllers/, maka akan terdapat kode program sebagai berikut :
<?php
class Latihan extends Controller {
function Latihan()
{
parent::Controller();
}
function index()
{
echo “Selamat Belajar CodeIgniter”;
}
}

V. Kesimpulan
Oke, itu sedikit mengenai “FRAMEWORK” beserta teman – temannya, Apa kira-kira kesimpulan yang kita ambil dari laporan ini mengenai “FRAMEWORK” itu sendiri?
Nih, Baca ini nanti kita akan mengetahui betapa pentingnya framework bagi seorang programer J
“Agus adalah seorang programmer freelance. Ia baru lulus kuliah dan sedang mencari kerja. Setelah cari sana sini melalui website ia kemudian mendapatkan order proyek pembuatan website. Dengan senang ia kerjakan proyek tersebut.

Ia mendesain sistem dan melakukan coding dari awal, sehingga cukup menguras energi.

Akhirnya proyek selesai dan client senang dengan pekerjaannya. Honor yang diterima lumayan besar. Kemudian client tersebut bersedia merekomendasikannya jika ada perusahaan lain yang ingin membuat website. Mission complete.

Dua minggu kemudian, perusahaan lain memesan pembuatan website dengan permintan fitur yang hampir sama dengan pemesan sebelumnya. Lansung saja proyek itu diterima dan dikerjakannya.

Agus kembali melihat kode program pada proyek pertamanya, mengedit bagian yang perlu dan menggunakannya pada proyek yang kedua, sehingga pada proyek kali ini ia berhasil mengerjakannya lebih cepat dari proyek pertama.

Dalam pembuatan proyek website kedua, Agus menyadari bahwa ada baigan-bagian perogram yang biasanya harus selalu ada untuk digunakan, misalnya kode untuk koneksi ke database MySql, membuat pagination untuk tampilan data, atau email. Dengan demikian, Agus membuat koleksi kode program yang bisa sewaktu-waktu ia gunakan jika ia membutuhkanya. Sehingga bisa menghemat tenaga dan waktunya dalam mengerjakan sebuah website.

Apa yang dilakukan Agus adalah cikal bakal sebuah framework, sehingga dalam pengertian yang sangat sederhana, framework dapat diartikan sebagai koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.
Melihat fenomena tersebut, banyak perusahaan yang mensyaratkan programmernya menguasai framework, faktanya bisa dilihat melalui lowongan kerja programmer, baik dimedia cetak maupun dimedia online. Alasannya jelas, dengan framework, gaya programmingnya sudah ditentukan menurut aturan dari framework tersebut, jadi tidak bisa lagi membuat program dengan gayanya sendiri-sendiri. Karena secara umum, programmer disuatu perusahaan sistemnya kontrak, jadi tingkat turn overnya cukup tinggi (gonta-ganti programmer adalah hal yang lumrah disuatu perusahaan).

Nah apabila program tersebut dikembangkan menggunkan framework, maka siapapun programmernya, asalkan dia menguasai framework, maka bisa dipastikan di bisa mengembangkan prgoram tersebut dengan muda, karena gaya programnya sudah diseragamkan oleh aturan framework, 

Mungkin kita sudah hampir mengerti tentang framework J
Secara sederhana bisa dijelaskan bahwa framework adalah kumpulan fungsi (libraries), maka seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framerwork, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu framework adalah fungsi paging, enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS(XSS filtering), template, kompresi, XML dan lain-lain.
            Lebih memudahkan programmer danmembantu kerja developer dalam membangun aplikasi sehingga aplikasi bisa selesai dalam waktu yang singkat.



TERIMA KASIH, WALAU SEDIKIT SEMOGA BERMANFAAT J

You Might Also Like

4 komentar

Facebook

Part Of

Blogger Perempuan indonesian hijab blogger muslimah blogger Female Blogger TPC Surabaya

Pinterest