Senin, 04 Mei 2020

Apa Itu Codeigniter dan Pembuatan Kalkulator Sederhana dengan Codeigniter


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:
  1. Free, karena berada dibawah lisensi open source mirip Apache/BSD, kita dapat melakukan apapun dengan CodeIgniter. Lisensi lengkapnya dapat dilihat di halaman dokumentasi
  2. 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
  3. Fast, menurut dokumentasi, performa yang dimiliki CodeIgniter terbukti cepat setelah dibandingkan dengan web framework lainnya
  4. 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
  5. 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:
  6. 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
  7. 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.
  8. 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
  9. 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:
  1. index.php bertindak sebagai controller terdepan, dan menginisialisasi resource yang diperlukan untuk menjalankan Code Igniter
  2. Router memeriksa HTTP request untuk menentukan apa yang harus dikerjakan
  3. Jika cache file ada, maka akan ditampilkan langsung, dengan melewati eksekusi normal sistem
  4. Sebelum memuat controller, HTTP request akan memeriksa apa yang disubmit user dan memfilternya untuk keamanan
  5. Controller memuat model, core libraries, plugin, helper, dan resource lainnya untuk memproses permintaan tertentu
  6. View ditampilkan di browser sesuai proses yang dikerjakan controller. Jika caching dijalankan, view akan di-cache terlebih dahulu agar dapat ditampilkan di request selanjutnya


Cara Kerja MVC



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:
  1. Model menggambarkan struktur data. Biasanya kelas model akan berisi fungsi yang digunakan untuk mengambil, menambah, dan memperbaharui informasi yang ada di database.
  2. 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.
  3. 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:
  1. 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
  2. Web Server, agar aplikasi web yang dibangun dapat diakses oleh pengguna. Sebagai contoh Apache, Lighttpd, IIS, Nginx
  3. Database Management System, menyimpan informasi yang dibutuhkan oleh aplikasi yang dibangun. Sebagai contoh MySQL, SQLite3, MS-SQL Server, Oracle, PostgreSQL
  4. Internet Browser, digunakan untuk menampilkan aplikasi dan berinteraksi dengan antarmukanya. Sebagai contoh, Internet Explorer, Opera, Google Chrome, Mozilla Firefox
  5. Mail Server, memberikan layanan e-mail kepada user dan mengintegrasikannya dengan aplikasi web yang akan dibangun. Sebagai contoh, SquirrelMail, ArgoSoft, RoundCube, GMaild
  6. PDF Creator, digunakan untuk menghasilkan file dalam bentuk PDF. Sebagai contoh, PDFLib, FPDF
  7. Database Browser, digunakan untuk melihat database secara grafikal. Sebagai contoh, PHPMyAdmin, MySQLBrowser, Chive, SQLite3 Manager, PgAdmin, SQL Server Browser, Oracle Apex
  8. Sistem Operasi, landasan untuk mengembangkan aplikasi web sebelum diluncurkan di server. Sebagai contoh, Windows 7, Windows XP, Ubuntu, Fedora, Slackware, BlankOn, IGOS Nusantara, FreeBSD
  9. 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