Kamis, 21 Juli 2022

Kenapa Perlu Menggunakan Model?

Banyak yang menggunakan framework Codeigniter, tapi melupakan peran model. Sehingga mereka menulis code se'enaknya mereka. Ada yang naruh di controller, dan yang paling parah di bagian view.

Mari kita tengok ke dokumentasi resminya, apa sih yang model itu?  

Models are PHP classes that are designed to work with information in your database
Nah, begitulah model menurut dokumentasinya. Kalo kita mau buat query database, seperti untuk membaca, update, hapus atau insert, idealnya sih disimpen di model. 

Saya sering menemukan code, tidak sedikit yang masih menuliskan query di controller atau lebih parahnya ditulis di view. 

Lo, emangnya kenapa? kan yang penting aplikasi selesai dan client atau bos kita happy.

Jadi, jangan di tempatkan di sembarang tempat.

Kalo kita hanya membuat aplikasi untuk diri kita sendiri atau kita kerja hanya sendiri itu mungkin tidak terlalu masalah. Tapi, kalo kita bekerja secara tim, itu yang akan menimbulkan masalah.

Emang kamu mau semuanya ngerjain sendiri? dari frontend yang ngurusin javascript, css, dan tampilan responsive sampai backend, ngurusin logic aplikasi dan database. ah uda pasti gak mau kan.

Menurutmu orang-orang yang bekerja di frontend, yang seharusnya mengurus tampilan harus mengerti source code yang kamu tulis di view? kalo terjadi error, nanti kamu yang marah-marah. gak boleh gitu dong. Itu bukan urursan mereka.

Bukankah kita menggunakan framework agar code yang buat mudah di maintenance? framework itu sudah menyediakan struktur dan arsitektur. Semuanya tinggal pakai. Sehingga ketika bekerja dalam tim, kita semua sudah paham, dimana controller, model untuk mengakses database, file utility dan lain sebagainya. Itu sudah diatur oleh framework. Tapi, kalo misal kita menempatkannya dimana-mana, jadi tentu sulit untuk menemukan source codenya jika terjadi bug dalam aplikasi.

Memang framework Codeingiter itu tidak terlalu strict banget ya. Kita dapat memanggil model, library dimanapun. Di controller, helper bahkan di view bisa dipanggil. Framework ini tidak akan komplen atau menyebabkan aplikasi menjadi error. Tapi, kalo kita bekerja dalam tim, kita tidak bisa begitu. Perlu ada pengaturan atau kesepatakan yang harus dipatuhi oleh semua member agar aplikasi yang kita buat selain berjalan dengan benar, aplikasi juga mudah untuk di maintence.

Tapi, dengan cara seperti itu code jadi berantakan coy. Misal kita memanggil library database di view, wah itu akan merepotkan yang ngoding frontend. Kasian tu, kan mereka belum tentu tau tentang kodingan kita. Mungkin mereka hanya tau tentang html, css dan javascript.
[contoh kode]
Selain itu, code akan menjadi sulit di menten. Dengan kode yang berserakan dimana-mana, jika ada salah satu yang error, maka Anda harus memeriksa semuanya.

Semua model, di extends dari kelas CI_model. Contoh:


query diatas menggunakan fungsi active record, jadi pastikan kamu load dulu class database ya.
Model disimpan di folder application/models.
Untuk dapat menggunakan/memanggil kelas model seperti diatas, kita memanggilnya dengan cara seperti ini:
Jadi, kita jangan nyimpen query dimana aja. Kadang aku lihat ada yang nyimpen di controller, ada juga yag nyimpe di view. Ya, memang tidak masalah ketika kode itu dijalankan. Dengan tujuan untuk mempermudah, dan tidak mengulangi code yang sama dengan kode yang sama, kita gunakan model.

Mengenal View

Masih ingat konsep MVC?

Coba kalian perhatikan dalam folder application. Kalian akan melihat folder dengan nama views. Disinilah kita akan menyimpan file-file html. File-file yang digunakan untuk menampilkan data baik itu teks, tabel, grafik, gambar, video, audio atau kombinasi dari semuanya.

Masih ingat kan dengan konsep MVC? V-nya itu adalah view.

Kalo kamu lupa, coba kamu baca lagi [disini].

Data itu bisa apa aja. Bwntuknya busa dalam bentuk tabel atau hanya teks gambar, suara video dan lain sebagainya.

Misal kita akan menampilkan daftar siswa. Kita akan merepresentasikannya dalak bentuk tabel. Kita buat filenya dalam folder views lalu kita panggil view tersebut di dalam controller.

View merupakan salah satu element dari component mvc.

Bingung gue mau nulis apa ya. oh iya disini aku. Halo teman-teman kali ini saya akan menjelaskan salah satu komponen dari MVC, yaitu view. Kalo teman-teman belum mengenal apa itu MVC, kalian bisa baca disini. Karena penting, kalian harus baca dulu ya sebelum melanjutkan membaca tulisan ini.

Ok kita lansung aja. Jadi view itu adalah model atau data diprensentasikan. Misal bentunya itu bisa berupa tabel, gambar, graphic dan lain sebagainya. Dengan kata lain, view itu berurusan dengan bagaimana data akan ditampilkan. Oleh karena itu, di dalam view itu idealnya diminimalkan atau dihilangkan sama sekali (kalo bisa) code-code yang berkaitan dengan proses bisinis.

View ini akan dipanggil oleh controller. Pemanggilan view ini bergantung pada reqest yang datang dari user. Misal, saya ingin informasi tentang daftar siswa. Saya akan klik link siswa misalnya, maka request itu akan diterima oleh controller. Setelah itu, controller akan memanggil model siswa untuk mendapatkan data siswa. Data sudah siap, akhirnya data itu dikirim ke view untuk ditampilkan ke browser.

View tidak sama seperti controller atau model. Sekedar untuk menyegarkan ingatan, bentuk controller dan model itu berupa class. Sedangkan view berupa html.

Persoalan tentang bagaimana data itu ditampilkan, itu adalah urusan view. Misal kita akan menampilkan data siswa dalam bentuk tabel. Dan untuk headernya kita akan gunakan font dengan ukuran 11pt. Nah, semua urusan itu kita tempatkan di view. 

Lho bukannya itu harusnya diatur melalui css ya? betul

Datatable

Datatabel, pasti kalian pernah denger kan ya?
Ya, library yang biasa digunakan untuk menampilkan data dalam bentuk tabular.

Disini materi yang dibahas yaitu tentang datatable. materi yang dibahas

menggunakan datatable secara default
menggunakan datatable sever side
implementasi pencarian
implementasi sorting
control sorting

Rabu, 06 Juli 2022

Aku kira Codeigniter 3 sudah tiada, ternyata tidak!

"Codeigniter versi 3 aja belum rampung belajarnya, eh uda keluar versi 4" 

Ada beberapa orang mengeluh seperti itu.

Apakah salah satunya kamu? 

Dengan kehadiran versi 4, bukan berarti versi sebelumnya sudah tidak digunakan. Tapi, mungkin betul untuk pengembangannya sudah dihentikan.

Ya, aku kira seperti itu, dia sudah tiada karena digantikan dengan versi terbaru, versi 4.

Aku coba mampir, ternyata di dokumentasi 4 itu masih ada link ke Codeigniter 3. Diklik, eh tenyata masih aktif lho.

Gak percaya, coba aja klik disini.

Codeigniter 3
Sumber: https://codeigniter.com/userguide3/index.html

Tuh kan, masih ada.

Kadang-kadang itu diperlukan ketika sedang mengerjakan aplikasi yang masih menggunakan versi ini. 

Saat ini, sudah ada framework baru dan modern, salah satunya Laravel. Oleh karena itu, memang sudah banyak yang meninggalkan framework ini (Codeigniter).

Eits, tapi jangan salah. 

Meski sudah banyak yang ditinggalkan, tapi masih banyak aplikasi yang masih menggunakan versi Codeigniter versi 3. Tidak banyak juga perusahaan yang mau segera migrasi ke teknologi terbaru. 

Alasanya bisa macam-macam, bisa jadi mungkin karena faktor keuangan, waktu dan juga resiko. Atau mungkin masih merasa belum saatnya. 

Dengan begitu, untuk melakukan perawatan aplikasi masih butuh . 

Sudah pasti itu butuh perawatan. Kalaupun mau di migrasi, misal menggunakan laravel, perlu keahlian untuk membacanya.

Jadi, bagi kamu yang sedang belajar Codeigniter 3 jangan berkecil hati, sasih banyak yang membutuhkan skill kamu. Entah itu untuk perawatan aplikasi atau menambahkan fitur baru.

Senin, 25 Mei 2020

Mari Berkenalan dengan Controller

Controller adalah salah satu component dari MVC. Jika teman-teman belum familiar dengan istilah ini, kalian bisa baca disini.

Controller adalah class yang berisi code untuk menghadle atau merespon request dari user. Misal kalian mengetikan url di browser seperti ini: example.com/product. Codeigiter akan memanggil controller product dan memberikan response balik ke user.

Responsenya apa?

Bergantung dengan kebutuhan. Bisa bentuknya json, xml atau file html.

Respon dalam bentuk json atau xml biasanya digunakan untuk rest api atau ajax. Yang dikirim hanya data. Json atau xml itu hanya bentuk data yang dikirim.

Di dalam controller, selain untuk merespon request dari user, biasanya juga berisi business logic. Misalnya validasi data, pengkondisian dan lain sebagainya.

Nah, sekarang Anda sudah tahu peran controller.

Lalu, bagaimana cara membuat controller?

Membuat File Controller

Controller itu merupakan class yang di extends dari class CI_Controller. Secara default di tempatkan di dalam folder application/controllers.

[ source code ]

Kode di atas merupakan bentuk sederhana class controller. Sebuah class yang di extend dari CI_Controller yang mempunyai function minimal satu, yaitu index.

Di dalam class controller tidak dibatasi berapa jumlah function yang boleh kita buat. Namun, agar kode kita mudah di pelihara, idealnya di kelompokan menjadi beberapa kelas bergantung dengan konteks.

Routing

Fungsi index akan dipanggil secara default.

Secara default, bentuk url codeigiter akan seperti ini:

http://myapp.com/index.php/blog_controller/function

Ketika ada request dengan url seperti itu, Codeigiter akan mencari controller dengan nama blog kemudian di instansiasi.

Salah satu materi penting untuk dibahas controller.
  • File controller disimpan di application/controllers/controller_name
  • Untuk memanggil controller tersebut, yaitu dengan memanggil nama classnya.
  • Secara default, method index yang akan ditampilkan jika tidak ada method lain yang dipanggil
  • melewatkan parameter ke fungsi controller
  • menerima input
  • menampilkan response
  • memanggil view

Ini yang saya lakukan sebelum lanjut menggunakan framework

Tidak jarang saya menemukan pertanyaan seperti ini di forum:

"Hallo mastah, saya mau belajar Codeigniter tapi bingung harus mulai dari mana?"

atau seperti ini:

"Saya mau belajar codeigniter, kira-kira mulai dari mana ya?"

Dulu, sebelum saya menggunakan framework ini, saya sudah punya bekal pengetahuan dasar menggunakan php. Mulai dari apa yang harus di install, mengamati bagaimana cara kerjanya.

Kemudian saya mengenal konsep pemograman berorientasi objek. Program yang tadinya terdiri dari fungsi-fungsi, di kelompokan menjadi objek-objek yang saling berkomunikasi satu sama lain. Saya mengenal yang nama class, inheritance, polymorphism dan lain-lain yang berkaitan dengan itu.

Tidak perlu pengetahuan yang mendalam tentang Object Oriented Programing untuk mulai menggunakan Codeigniter, kita tahu bagaimana membuat class dan bagaimana melakukan inheritance, itu sudah cukup. Kita sudah bisa membuat web app menggunakan Codeigniter.

Menurut saya, bagi kamu yang masih bingung harus mulai dari mana, cobalah dulu yang paling sederhana, yaitu coba jalankan atau install Codeigniter di komputer kamu.

Sebenarnya, jika kamu sudah tahu dan pernah membuat program menggunakan PHP, walaupun sederhana, harusnya tidak begitu sulit untuk memulai. Karena kamu sudah mempunyai bekal yang cukup untuk memulai.

Yuk, bagi kamu yang masih bingung, coba lakukan hal sederhana berikut:

Kamu kunjungi websitenya, download dan pindahkan ke komputer kamu.

Apakah kamu pernah mencobanya? sederhana saja, minimal install dulu.

Hm, agak aneh juga sih pertanyaannya. Padahal, kalo sudah mengerti bagaimana menggunakan PHP, yang tinggal ikuti aja dokumentasinya.

Sebelum saya menggunakan php framework, terlebih dahulu saya mempelajari dasar-dasar pemograman PHP. Mengetahui cara kerjanya, dan apa saja fitur yang ditawarkan.

Kemudian, saya membuat cms sederhana. Yang penting bisa insert, update dan delete. Itu saja. 


Pernah punya pertanyaan seperti itu gak? atau kalian pernah gak ditanya seperti itu?

Kalo kalian pernah seliweran di forum-forum php atau khususnya di forum codeigniter, saya yakin kamu pernah menemukan pertanyaan seperti itu.

Saat awal belajar, sayapun mengalami kebingungan seperti itu. Saya gak tau harus mulai dari mana. Waktu itu, internet belum seperti sekarang ini. Masih jarang yang menggunakan smartphone. Saya harus bulak-balik ke warnet. Kalo warnetnya kosong, lansung bisa pake. Tapi, jika sedang penuh? Mesti nunggu berjam-jam. Menyebalkan!

Ko jadi curhat?, oke langsung aja ya.

Berikut adalah hal-hal yang perlu diketahui sebelum mempelajari Framework Codeigniter:

1. Bahasa Pemograman PHP
   
Framework hanya tools tambahan. Di dalam framework tersebut sudah ada struktur, library, helper, security dan lain sebagainya, yang siap kita gunakan. Dengan begitu, kita hanya fokus dengan apa ingin kita buat dengan memanfaatkan dengan apa yang telah disediakan oleh framework.

Misal, kita ingin aplikasi berinteraksi dengan database, gunakan library active record. Dengan library ini, kita gak perlu report untuk urusan query-query ke database. Library ini akan meng-generate query, sehingga meminimalkan kesalahan dalam mengetikan query.

Atau kita ingin membuat validasi untuk form, ada library form_validation. Anda hanya perlu baca dokumentasi dan ikuti. Kecuali, untuk hal-hal yang lebih detail kita perlu untuk membuatnya sendiri. Contoh: validasi username atau email tidak harus unik.

Tetapi, dasar dari itu semua adalah bahasa pemograman PHP. Kita mesti tahu bagaimana mendefinisikan variable, fungsi, class, pengkodisian, looping dan lain sebagainya. Kenapa? karena seperti yang saya singgung sebelumya, framework hanya sebuah tools tambahan. 

Jadi, bagi kalian yang belum mengenal PHP, jangan dulu loncat ke framework ya. Kalo kalian tetap memaksakan, dijamin kalian pasti bingung.

2. Pemograman Berorientasi Objek

Tulisan ini dibuat mengacu pada Framework Codeigniter versi 3. Di versi ini, tidak seutuhnya menggunakan konsep Object Oriented Programing. Tetapi yang perlu Anda ketahui adalah konsep class dan inherintance. Saya tidak mengatakan bahwa yang lainnya itu tidak perlu, tetapi yang lainnya jarang digunakan.

Kita akan menggunakan class dan inheritance di Controller, Model atau Library.  Berikut adalah contoh class Controller:


Potongan kode diatas, kita mendefinisikan class dengan nama Employee_controller yang di extends atau diturunkan dari class CI_Controller. Dengan begitu, class Employee_controller akan mewarisi atau memiliki fungsionalitas yang diturunkan dari moyangnya, yaitu CI_Controller.

Kang, saya sudah belajar dengan apa yang sudah disebutkan akang tadi, baik pemograman php maupun konsep pemograman berorientasi objek. Tapi, ketika saya buka dokumentasinya, saya harus mulai dari mana?

Baiklah, mari kita lanjut dengan pengenalan Controller dan View.

Sabtu, 10 Agustus 2019

Update Mutiple Data dalam 1 Query Sekaligus

Sebelumnya saya pernah posting tentang cara Insert Multiple Data dalam 1 Query Sekaligus. Kali ini, yang ingin saya bagikan adalah bagaimana caranya update beberapa data sekaligus. Jadi, dengan menggunakan cara ini, kita nggak perlu melakukan looping untuk update data satu persatu, karena Query Builder sudah menyediakan fungsinya.

Nama fungsinya mirip dengan insert_batch. Kalian bisa tebak apa nama fungsinya? Ya betul, nama fungsinya adalah update_batch. Fungsi tersebut memungkinkan kita untuk dapat meng-update beberapa data sekaligus
Ada 3 parameter yang diperlukan fungsi tersbut. Pertama adalah nama table, kedua data yang akan diupdate, dan yang ketiga adalah nama field primary key.

Kang, masih bingung nih, bisa dikasi contoh gak? baiklah, perhatikan contoh berikut:

Parameter pertama sudah jelas ya nama tabel, yaitu kita akan meng-update data di table mana. Parameter kedua adalah data yang akan kita update. Bentuknya hampir sama dengan insert_batch. Anda bisa menggunakan array atau object.  Sedangkan yang ketiga key kriteria yang kita gunakan untuk update. Di potongan kode di atas, kita menggunkana kriteria item_id.

Mirip bukan dengan fungsi insert_batch? yang membedakan adalah parameter ketiga, yaitu ada field key, item_id.

Ok, mari kita ambil contoh. Misal kita akan mengupdate semua stok atau quantity produk jadi 0. Daripada kita update satu persatu, yang hanya akan membuat database kita bengek, mari kita buat dalam satu transaksi sekaligus.

Selamat mencoba ya