Bagi seorang
programmer website, biasanya sangat familiar terhadap istilah native dan
framework. Apa itu mari kita bahas dibawah :
Perbedaan PHP
Native dan Framework
PHP native merupakan pemrograman web
perpaduan bahasa pemrograman yang didasari dengan bahasa pemrograman PHP yang
mana bisa disisipi oleh text Javascript, css, bootstrap dan lain-lain. Native
sendiri artinya asli, yakni pemrograman php yang murni disusun dan di coding/dibangun
oleh para programmer sendiri tanpa ada istilah tambahan buat settingan/
konfigurasi lainnya. Manfaat dari PHP Native sederhana kalau kita sudah
menguasai maka akan lebih mudah menggunakan PHP Framework.
Kelebihan PHP Native :
·
Pemrograman
yang dibangun atas dasar pemikiran programmer itu sendiri.
·
Bisa dibentuk
dalam format OOP (Object Oriented Programming) maupun Strutural, tergantung
kemampuan programmer tersebut.
·
Kita bisa
menerapkan dalam skala mudah sampai sulit tergantung tingkat kesulitan bahasa
pemrograman yang digunakan.
Kelemahan PHP Native :
·
Dokumentasi
pemrograman yang tidak jelas, karena PHP Native dibangun atas dasar pemahaman
programmer “tersebut” maka belum tentu pemikiran programmer lain selaras dengan
programmer yang merancang program tersebut. Maka dari itu dokumentasi merupakan
hal yang wajib diperlukan, agar dapat melakukan maintenance (perbaikan) ataupun
Upgrade
·
Tidak cocok
untuk proses bisnis ataupun sistem yang luas.
·
Tidak adanya
Coding Style Consitence, apabila sistem kita dikelola oleh programmer lain maka
akan ada perbedaan dalam penulisan source code program.
·
Tidak adanya
Security Concern Framework, tidak adanya security/pengamanan default pada
sistem yang dibangun. Alias kita harus membangun sendiri pengamanannya
Framework PHP sama dengan penjelasan PHP
Native diatas, pada dasarnya Framework PHP dibangun dengan bahasa pemrograman
PHP. Framework sendiri dapat diartikan sebagai kerangka kerja, sebagai kumpulan
script (terutama class dan function) yang dapat membantu developer/programmer
dalam menangani berbagai masalah program seperti koneksi database, variable,
file dan lain-lain.
Manfaat menggunakan Framework :
·
Dapat membantu
developer/programmer dalam membangun apliasi
·
Penerapan
Design Patterns memudahkan dalam rancangan, Pengembangan dan pemeliharaan
sistem.
·
Stability dan
Realiability aplikasi yang kita bangun lebih stabil dan handal.
·
Coding Style
Consitence, memudahkan dalam hal membaca source code karena cara pengkodean
yang sama/konsisten.
·
Security
Concern Framework, mengantisipasi dan memasang perisai terhadap adanya berbagai
masalah.
·
Dokumentasi,
framework dapat mendisiplinkian kita menulis dokumentasi untuk sistem apa yang
kita bangun.
Kekurangan menggunakan Framework :
·
Programmer
mungkin akan menembukan kemungkinan batasan-batasan ketika merancang aplikasi
menggunakan framework, contoh : belum tentu fungi di Framework A ada di
Framework B.
·
Kemungkinan
akan ada penambahan biaya apabila pihak development kurang mendekumentasi dan
kurang disupport.
10 Framework PHP terbaik saat ini
tahun 2020 :
·
Yii
·
Codeigniter
·
Laravel
·
CakePHP
·
Zend
·
Symfony
·
PHP Dev Shell
·
Prado
·
Akelos
·
QPHP
Khusus di
halaman blog saya, saya akan khusus membahas Framework Codeigniter, kenapa?
karena menurut saya Framework Codeigniter sangat cocok untuk dipelajari oleh
para programmer junior (programmer yang baru belajar basic OOP).
Selain itu
Framework Codeigniter sempat mendapat perhatian oleh orang yang menciptakan
bahasa pemrograman PHP yakni “I Like Codeigniter because it is faster, lighter
and the least like a framework” — Rasmus Lerdorf
Apa Itu Codeigniter?
CodeIgniter
adalah sebuah web framework yang dikembangkan oleh Rick Ellis dari Ellis Lab.
CodeIgniter dirancang untuk menjadi sebuah web framework yang ringan dan mudah
untuk digunakan. Bahkan pengakuan dari Rasmus Lerdorf, pencipta bahasa
pemrograman PHP, mengatakan bahwa CodeIgniter merupakan web framework mudah dan
handal. Sebelum mencoba CodeIgniter, perlu diketahui istilah web framework itu
sendiri. Menurut Microsoft Computer Dictionary, web adalah sekumpulan dokumen
yang saling terhubung dalam sistem hypertext yang penggunanya akan menjelajahi
web melalui halaman beranda. Sedangkan framework adalah desain struktur dasar
yang dapatd digundakan kembali (reusebale) yang terdiri dari abstract class dan
concrete class di pemrograman berorientasi objek. Menurut dokumentasi
CodeIgniter, CodeIgniter merupakan toolkit bagi orang yang ingin membangun
aplikasi web menggunakan PHP. Tujuannya adalah membuat pengembangan proyek
menjadi lebidh cepat dibandingkan dengan menulis kode dari awal (scratch).
CodeIgniter menyediakan kumpulan library untuk tugas – tugas yang sering
dilakukan (commonly needed task) dan sangat mudah undtuk mengakses library yang
tersedia di CodeIgniter.
Dengan
menggunakan CodeIgniter, kita cukup fokus pada pengembangan projek dan
meminimalisir jumlah kode yang akan ditulis. Sebagai web framework yang populer
yang menggunakan bahasa pemrograman PHP, CodeIgniter mempunyai berbagai
keunggulan seperti yang disebutkan di dokumentasinya:
- Free, karena berada dibawah lisensi open source mirip Apache/BSD, kita dapat melakukan apapun dengan CodeIgniter. Lisensi lengkapnya dapat dilihat di halaman dokumentasi
- Light Weight, sistem inti CodeIgniter memerlukan library yang sedikit. Berbeda sekali dengan framework lainnya yang membutuhkan banyak sumber daya tambahan. Library tambahan akan digunakan ketika request secara dinamis, membuat sistem yang dibangun menjadi efisien dan cukup cepat
- Fast, menurut dokumentasi, performa yang dimiliki CodeIgniter terbukti cepat setelah dibandingkan dengan web framework lainnya
- Menggunakan kaidah M-V-C, Dengan menggunakan Model-View-Controller, kita dapat memisahkan bagian logic dan presentation dari aplikasi yang kita bangun. Hal ini tentu sangat cocok dan bagus untuk proyek yang memfokuskan desainer fokus pada template file dan programmer fokus pada pembangunan logic dari aplikasi yang dibangun
- Menghasilkan URL yang bersih, URL yang dihasilkan oleh CodeIgniter bersih dan ramah terhadap mesin pencari. CodeIgniter menggunakan pendekatan segment-based dibandingkan dengan query string yang biasa digunakan oleh programmer yang tidak menggunakan web framework. Berikut adalah contoh URL yang dihasilkan CodeIgniter:
- Packs a Punch, CodeIgniter hadir dengan berbagai library yang akan membantu tugas – tugas di pengembangan web yang sudah umum dan sering dilakukan seperti mengakses database, mengirim email, validasi data dari form, mengelola session, manipulasi gambar, bekerja dengan XML-RPC dan masih banyak lagi
- Extensible, kita dapat menambahkan library atau helper yang kita ciptakan sendiri ke dalam CodeIgniter. Selain itu kita dapat juga menambahkan fitur lewat class extension atau system hooks.
- Thoroughly Documented, hampir semua fitur, library, dan helper yang ada di CodeIgniter telah terdokumentasi dengan lengkap dan tersusun dengan baik. Ketika mendapatkan unduhan CodeIgniter, dokumentasinya sudah tersedia dan siap digunakan
- Mempunyai komunitas yang ramah, komunitas CodeIgniter sangat ramah dan siap membantu pengguna CodeIgniter pemula atau yang sudah mahir. Komunitasnya dapat ditemui di : http://codeigniter.com/forums/ Untuk mendukung pengembangan aplikasi yang kokoh, Code Igniter memiliki fitur – fitur seperti berikut:
- a. Model-View-Controller Based System
- b. PHP 4 Compatible
- c. Sangat ringan
- d. Fitur lengkap untuk beberapa engine database
- e. Active Record
- f. Form dan validasi data
- g. Keamanan dan XSS filtering
- h. Session Management
- i. Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, dan Mail) dan lainnya
- j. Image Manipulation Library (cropping, resizing, rotating, dsb.). Mendukung GD, ImageMagick, dan NetPBM
- k. File Uploading Class
- l. FTP Class
- m. Localization
- n. Pagination
- o. Data Encryption
- p. Benchmarking
- q. Full Page Caching
- r. Error Logging
- s. Application Profiling
- t. Scaffolding
- u. Calendaring
Class
- v. User Agent Class
- w. Zip Encoding Class
- x. Template Engine Class
- y. Trackback Class
- z. XML-RPC Library
Cara Kerja CodeIgniter
Untuk
melengkapi pemahaman mengenai CodeIgniter, berikut terdapat sebuah diagram yang
menjelaskan bagaimana CodeIgniter bekerja:
Berikut
adalah penjelasan cara kerja Code Igniter:
- index.php bertindak sebagai controller terdepan, dan menginisialisasi resource yang diperlukan untuk menjalankan Code Igniter
- Router memeriksa HTTP request untuk menentukan apa yang harus dikerjakan
- Jika cache file ada, maka akan ditampilkan langsung, dengan melewati eksekusi normal sistem
- Sebelum memuat controller, HTTP request akan memeriksa apa yang disubmit user dan memfilternya untuk keamanan
- Controller memuat model, core libraries, plugin, helper, dan resource lainnya untuk memproses permintaan tertentu
- View
ditampilkan di browser sesuai proses yang dikerjakan controller. Jika caching
dijalankan, view akan di-cache terlebih dahulu agar dapat ditampilkan di
request selanjutnya
CodeIgniter
menggunakan pendekatan Model-View-Controller, yang bertujuan untuk memisahkan
logika dan presentasi. Konsep ini mempunyai keunggulan dimana desainer dapat
bekerja pada template file, sehingga redundansi kode presentasi dapat
diperkecil. Berikut adalah konsep Model View-Controller yang diterapkan di
CodeIgniter:
- Model
menggambarkan struktur data. Biasanya kelas model akan berisi fungsi yang
digunakan untuk mengambil, menambah, dan memperbaharui informasi yang ada di database.
- View
adalah informasi yang diperlihatkan kepada user. View adalah halaman web yang
terdiri dari HTML, CSS dan Javascript, tapi pada Code Igniter, view dapat juga
sebagai potongan halaman seperti header atau footer. Bahkan dapat juga halaman
RSS atau tipe halaman lainnya.
- Controller
adalah perantara Model, View, dan resource lainya yang dibutuhkan untuk
menangani HTTP request dan menghasilkan halaman web.
Tapi
pada CodeIgniter, developer juga dapat mengabaikan pemakaian Model dan cukup
menggunakan Controller dan View
Daftar Istilah
Codeigniter
Sebelum
menjelajah CodeIgniter lebih dalam, ada beberapa istilah yang akan selalu hadir
selama pelatihan berlangsung. Berikut adalah daftar istilah yang akan hadir
selama pelatihan:
1. Model,
class PHP yang dirancang untuk bekerja dengan informasi dari database
2. Controller,
inti aplikasi yang menentukan penanganan HTTP request
3. View,
halaman web seperti header, footer, sidebar dan lainnya yang ditanamkan di
halaman web yang lainnya. View tidak pernah dipanggil secara langsung. View
harus dipanggil dari controller
4. Library,
class yang berisi fungsi – fungsi untuk penyelesaian kasus tetentu
5. Helper,
pembantu tugas untuk kategori tertentu yang terdiri dari kumpulan function
6. Driver,
library khusus yang mempunyai class induk dan beberapa class turunan yang dapat
digunakan untuk kasus terrtentu
Peralatan yang
Diperlukan
Untuk
membangun aplikasi web yang menggunakan CodeIgniter tentunya kita membutuhkan
bahasa pemrograman PHP4 atau PHP5. Setelah PHP4 atau PHP5 terpenuhi, kita dapat
menggunakan berbagai alat yang sudah dikenal luas. Alat – alat tersebut terbagi
kedalam beberapa kategori yang akan menangani perannya masing – masing. Berikut
adalah alat – alat dasar yang dapat digunakan untuk membangun aplikasi web
menggunakan CodeIgniter:
- Text
Editor, digunakan untuk menulis source code PHP dan lainnya serta untuk
menyunting file konfigurasi. Sebagai contoh, Notepad++, Sublime Text, Geany,
Kate, Komodo Edit, Aksi IDE, Netbeans
- Web
Server, agar aplikasi web yang dibangun dapat diakses oleh pengguna. Sebagai
contoh Apache, Lighttpd, IIS, Nginx
- Database
Management System, menyimpan informasi yang dibutuhkan oleh aplikasi yang
dibangun. Sebagai contoh MySQL, SQLite3, MS-SQL Server, Oracle, PostgreSQL
- Internet
Browser, digunakan untuk menampilkan aplikasi dan berinteraksi dengan
antarmukanya. Sebagai contoh, Internet Explorer, Opera, Google Chrome, Mozilla
Firefox
- Mail
Server, memberikan layanan e-mail kepada user dan mengintegrasikannya dengan
aplikasi web yang akan dibangun. Sebagai contoh, SquirrelMail, ArgoSoft, RoundCube,
GMaild
- PDF
Creator, digunakan untuk menghasilkan file dalam bentuk PDF. Sebagai contoh,
PDFLib, FPDF
- Database
Browser, digunakan untuk melihat database secara grafikal. Sebagai contoh,
PHPMyAdmin, MySQLBrowser, Chive, SQLite3 Manager, PgAdmin, SQL Server Browser,
Oracle Apex
- Sistem
Operasi, landasan untuk mengembangkan aplikasi web sebelum diluncurkan di
server. Sebagai contoh, Windows 7, Windows XP, Ubuntu, Fedora, Slackware,
BlankOn, IGOS Nusantara, FreeBSD
- Dan
berbagai alat lainnya yang dapat digunakan oleh PHP atau memiliki
interoperabilitas terhadap PHP
Dalam
praktiknya, terdapat juga paket – paket yang menyertakan web server, database
management system, beserta database browser dalam satu paket. Seperti XAMPP,
WAMP, atau LAMPP yang cukup sekali install, kita sudah dapat menggunakan web
server, database management system, database browser, dan fungsional server
lainnya. Untuk praktikum kita dari awal hingga akhir, akan digunakan
CodeIgniter versi 2.1.4, paket XAMPP (terdiri dari Apache Web Server, MySQL
Database Management System, dan PHPMyAdmin Database Browser), internet browser
Firefox atau Google Chrome, text editor seperti Notepad++ atau Geany, dan
sistem operasi Windows 7.
Berikut ini pembuatan Aplikasi Kalkulator Berbasis Web dengan Codeigniter :
Tidak ada komentar:
Posting Komentar