Pemrograman PHP dengan framework vs native, mana yang lebih baik?


Oleh M. Chandra Fighi I, S.Kom, 13 October 2020
Sumber: tegalkab.go.id

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 ModelView 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