Banyak
pertanyaan yang penulis jumpai di forum programmer maupun disosial media
terkait menggunakan PHP native atau menggunakan framework dalam membuat aplikasi
atau website. Biasanya pertanyaan ini sering diajukan oleh programmer pemula, tetapi
bahkan programmer yang telah lama berkecimpung didunia pemrogramman pun masih
banyak yang bingung mengenai hal ini.
Apa
itu Native PHP dan Framework ?
Sebelum
membahas lebih jauh masalah ini, terlebih dahulu penulis akan menjelaskan dulu
maksud dari dua istilah ini yaitu antara PHP native dan framewok.
PHP
sendiri merupakan singkatan dari Hypertext Preprocessor. PHP merupakan bahasa pemrograman script
server-side gratis (free) dan bersifat Open Source yang didesain untuk membangun
website / aplikasi secara dinamis. PHP disebut
bahasa pemrograman server
side karena PHP diproses pada komputer server. Hal ini
berbeda dibandingkan dengan bahasa pemrograman client-side seperti JavaScript
yang diproses pada web browser (client). Menurut Wikipedia pada februari 2014,
sekitar 82% dari web server di dunia menggunakan PHP. PHP juga menjadi dasar
dari aplikasi CMS (Content Management
System) populer seperti Joomla, Drupal, dan WordPress.
PHP Native
(asli), berarti membuat website / aplikasi dengan
PHP yang dimulai dari nol tanpa ada tambahan fungsi-fungsi dan library-library
dari luar selain yang disediakan oleh PHP itu sendiri, seperti kerangka, desain
dan yang lainnya. Dikarenakan semuanya dimulai dari nol, proses pembuatannya
juga memakan waktu yang lama. PHP Native
sangat cocok bagi programmer yang bekerja sendiri membangun sebuah aplikasi.
Karena PHP Native ini akan
menghasilkan ribuan file yang terpisah dan tentunya hanya programmer tersebut
yang bisa memahami alurnya. Umumnya, para programmer pemula akan
menggunakan PHP Native sebagai bahan
untuk belajar mengembangkan keahlian mereka.
Framework adalah sebuah kerangka kerja yang digunakan untuk mempermudah para
developer software dalam membuat dan
mengembangkan aplikasi. Seperti namanya, framework
atau kerangka kerja, berarti programmer tidak perlu membuat kerangka kerja dari
nol. Programmer hanya perlu memahami pola kerangka kerja, kemudian
mengaplikasikannya saat proses pembuatan software
aplikasi. Framework berisi perintah
dan fungsi dasar yang umum digunakan untuk membangun sebuah software aplikasi
sehingga diharapkan aplikasi dapat dibangun dengan lebih cepat serta tersusun
dan terstruktur dengan rapi. Dengan menggunakan framework, pengembang aplikasi tidak perlu lagi membuat script/code yang sama secara
berulang-ulang.
Tapi
perlu diingat, penggunaan framework
tidak serta merta akan membuat proses pembuatan software aplikasi lebih cepat
daripada menggunakan PHP Native,
semua itu tergantung pada programmer masing-masing. Proses pengerjaan menjadi
cepat kalau programmer memahami alur dan terbiasa menggunakannya.
Kalau tidak, percayalah menggunakan framework
hanya menghambat proses pembuatan software
aplikasi.
Beberapa framework PHP terbaik saat artikel ini dibuat, antara lain
:
·
Laravel
·
Codeigniter
·
Symfony
·
Zend
·
CakePHP
·
Yii
·
PHP Dev Shell
·
Phalcon
·
Akelos
·
QPHP
Secara
umum Framework tersusun dengan struktur MVC ( Model View Controller ) yang memungkinkan pengembang dapat
mengelompokan fungsi – fungsi seperti fungsi inputan, proses dan output dari
sebuah aplikasi
Apa itu MVC ?
MVC
adalah singkatan dari model, view dan controller. MVC memisahkan antara kode untuk mengakses database (model), kode untuk tampilan (view)
dan kode untuk mengatur alur logika program (controller). Penggunaan MVC membuat pembuatan sebuah proyek software aplikasi menjadi lebih
terstruktur dan lebih sederhana.
Dengan
MVC, secara otomatis kode menjadi lebih fleksibel dan tersusun rapi. Apakah
dengan native php kode tidak bisa fleksibel dan tersusun rapi ? Ya bisa saja,
tapi programmer harus merapikan sendiri kodenya yang tentunya dengan gaya
koding (code style) masing-masing.
Agar mendapatkan manfaat framework, programmer harus tau alur framework tersebut. Untuk memahami alur framework, programmer harus belajar dulu dan benar – benar memahami konsep OOP.
OOP atau Object Oriented Programming adalah konsep programming yang berorientasi pada objek. OOP
merupakan paradigma pemprograman yang menganggap semua benda adalah objek.
Bahkan variabel-pun dianggap sebagai objek. Teknik pemprograman OOP ini juga
bisa disebut sebagai teknik pemprograman modern
Beberapa keunggunalan dari OOP, antara lain :
1. reusability atau membuat
banyak objek hanya dengan menggunakan satu class dan dapat digunakan kembali
jika dibutuhkan,
2. mainatability atau mudah
dikelola sehingga pengembang bisa fokus pada pemecahan masalah tanpa merusak
fungsi, dan
3. extensibility atau
kemampuan bisa diperluas dimana objek dapat ditambahkan kemampuannya
tanpa merusak objek lainnya.
Konsep
OOP inilah yang menjadi dasar dari pembuatan framework. Jika seseorang tidak
menguasai konsep OOP, maka sampai kapanpun orang tersebut belajar framework ia tidak akan pernah berhasil.
Alasan Menggunakan PHP Native
Ada
beberapa alasan kenapa kita sebaiknya tidak menggunakan framework:
·
Aplikasi yang dibuat cukup sederhana.
Meskipun
bisa, tapi kurang pas jika menggunakan framework hanya untuk membuat program
penjumlahan sederhana, sehingga akan percuma fungsi-fungsi yang telah
disediakan oleh framework dan juga boros
resource di server. Untuk yang
seperti ini sebaiknya pakai PHP native saja karena akan jauh selesai lebih
cepat.
·
Programmer belum memiliki dasar web
programming yang cukup.
Ini
sering terjadi terutama bagi pemula yang ingin cepat-cepat masuk ke framework dengan melewatkan banyak
materi dasar. Framework termasuk
materi PHP tingkat advanced yang
perlu dasar yang kuat. Tidak hanya PHP saja, tapi juga materi dasar web
programming lain seperti HTML, CSS, MySQL dan JavaScript.
·
Ingin mengejar performa.
Sebuah
framework PHP umumnya terdiri dari
ratusan hingga ribuan file PHP yang saling bekerja sama. Bahkan Laravel 7.0
terdiri dari sekitar 13.500 file PHP dengan total ukuran 44MB. Memang tidak
semua file ini terpakai untuk setiap project, tapi performa yang dihasilkan mungkin
bisa lebih tinggi jika dibuat tanpa framework.
Tetapi performa juga merupakan salah satu indikator terpenting dari
keberhasilan sebuah framework. Tim
dibalik pembuat framework tentu
selalu berusaha untuk mendapatkan performa terbaik.
Alasan Menggunakan Framework
Dan
berikut beberapa alasan sebaiknya menggunakan
framework:
·
Tersedia fitur siap pakai (fungsi dan library).
Framework
sudah menyediakan berbagai komponen siap pakai untuk membantu kita dalam
merancang aplikasi. Sebagai contoh, pada framework
Laravel terdapat fitur pembuatan authentifikasi secara mudah, hanya dengan
beberapa kode saja bisa membuat fitur register dan login pengguna (user) beserta tampilannya. Jika
menggunakan PHP native, membuat fitur ini bisa butuh waktu yang cukup lama. Tidak
hanya itu, umumnya framework PHP
menyediakan cara singkat untuk membuat fitur-fitur lain, seperti pembuatan
form, validasi, menampilkan pesan error, mengakses database, pembuatan layout,
dsb.
·
Mengikuti best practice.
Framework
memiliki aturan penulisan baku yang tidak bisa diubah. Dengan demikian kita
akan “dipaksa” mengikuti cara penulisan framework.
Cara penulisan ini sudah dipikirkan oleh ribuan programmer profesional yang
merancang framework tersebut. Sebagai contoh, seperti yang telah penulis
jelaskan di atas bahwa sebagian besar framework
PHP menggunakan konsep M-V-C, yakni
singkatan dari Model, View dan Controller. Konsep
MVC bertujuan untuk memisahkan 3 bagian program: kode untuk mengakses database
(disebut sebagai model), kode untuk
tampilan (view) dan kode untuk
mengatur alur logika program (controller).
Dengan pemisahan ini, aplikasi kita menjadi lebih rapi dan mudah di kelola. Bagi
pemula, pembagian ini tampak merepotkan. Karena untuk sekedar membuat tampilan
1 halaman saja, kita butuh merubah minimal 3 file serta mengatur berbagai
konfigurasi. Namun dalam jangka panjang, MVC sangat memudahkan pengelolaan software aplikasi terutama untuk aplikasi
projek besar.
·
Mudah untuk kolaborasi.
Menggunakan
framework juga memudahkan pembuatan
kode program yang dibuat oleh tim. Penerapan konsep MVC ini yang akan membantu
tim dalam pembuatan aplikasi sesuai dengan tugas masing-masing programmer dalam
tim. Misalnya jika ada masalah dengan tampilan, maka problem utama kemungkinan
besar ada di view (bagian ‘V’ dari MVC), sehingga tim tampilan (view) bisa fokus
memperbaiki sisi tampilan saja tanpa merubah pekerjaan dari anggota tim lain.
·
Mudah membaca kode program.
Konsep
yang sudah baku juga bermanfaat jika ada pergantian anggota tim. Tanpa framework, butuh waktu lama bagi
programmer baru untuk memahami kode program yang sudah ada. Sangat mungkin
konsep berfikir programmer sebelumnya berbeda jauh dengan programmer yang akan
menggantikan. Namun jika aplikasi tersebut dibuat dengan framework, maka setiap programmer harus mengikuti cara yang sudah
diatur oleh framework tersebut.
Misalnya kode program untuk pengaturan tampilan ada di View, pengaturan database ada di Model, dsb. Sehingga lebih mudah bagi programmer baru untuk
melakukan modifikasi.
·
Keamanan Aplikasi.
Keamanan
untuk sebuah software aplikasi
merupakan hal wajib, namun kadang kita tidak tau apa yang harus diamankan dan
bagaimana cara mengamankannya. Sebagai contoh, ada celah kelemahan web yang
dikenal sebagai CSRF atau Cross-Site Request Forgery, yakni teknik mengisi form (seperti form login) dengan kode program yang bukan berasal dari website
kita. Celah ini bisa dimanfaatkan untuk membuat bot atau program yang terus-menerus mencoba mengisi form login. Mayoritas framework PHP
(termasuk Laravel), sudah menyediakan cara untuk mengatasi masalah ini, yaitu
dengan memaksa kita untuk membuat sebuah CSRF
token. Laravel akan menampilkan error jika sebuah form tidak memiliki CSRF token. Cara input token ini juga
sangat sederhana, hanya perlu satu perintah singkat. Fitur keamanan seperti ini
sudah lebih dahulu dipikirkan oleh tim pengembang Laravel, sehingga aplikasi
yang kita buat relatif lebih aman
Kesimpulan
Penggunaan
PHP Native maupun Framework adalah sama-sama baik,
semuanya tergantung dari programmer itu sendiri tentunya dengan
pertimbangan-pertimbangan seperti yang telah dijelaskan di atas. Intinya adalah seberapa nyaman dan paham
terhadap projek software aplikasi
yang akan kita kembangkan, karena tentunya punya pengalaman sendiri dan
kebutuhan masing-masing software aplikasi.
Referensi
- Pilih
PHP Framwork atau PHP Biasa - chandra.web.id
- PHP
native atau Framework – bhintara.com
- Pengertian
dan Fungsi PHP dalam Pemrograman Web - duniailkom.com
- Mengenal
Teknik Pemprograman Beriorentasi OOP – codepolitan.com
- 11
PHP Framework yang Mesti Kamu Tahu – codepolitan.com