Halo para pembaca sekalian. Kita pastinya sudah mengenal mengenai model pada suatu framework. Apabila Anda masih belum paham mengenai model itu sendiri, Anda bisa membaca pada artikel ini MVC pada Pemrograman. Dalam case kali ini, Kita akan membahas bagaimana cara menggunakan model secara global. Artinya, kita akan membuat satu file model, dimana query tersebut bisa berfungsi untuk semua modul controller. Awalnya, Saya ketika membuat suatu aplikasi, dan dihadapkan membuat beberapa modul, maka saya juga membuat file model tersebut per-modul. Bayangkan saja apabila terdapat banyak modul, pastinya akan terdapat banyak file model pula yang dibuat.
Nah, disini Saya jadi punya pemikiran yang sempit. Bagaimana jika dibuat 1 file model saja. Terlebih lagi, query yang digunakan hanyalah query standar CRUD biasa. Jadi, semua modul controller akan terkoneksi ke 1 modul saja. Ok, sekarang kita memulai untuk membuat file model global CRUD tersebut. Sekarang kita buat file model global dengan nama MGlobal.php dan pada artikel ini, kita akan mebahas mengenai membaca file atau Read data terlebih dahulu.
function read($data=''){ //ini untuk nama tablenya $this->db->from($data['table']); //ini untuk select field mana saja yang akan diambil if(!empty($data['select'])){ $this->db->select($data['select']); } //query join table if(!empty($data['join'])){ foreach($data['join'] as $key => $value) { $this->db->join($key,$value); } } //query pengkondisian where if(!empty($data['where'])){ foreach($data['where'] as $key => $value) { if(!empty($value) || $value == '0'){ $this->db->where($key,$value); } } } //query pengkinisian like if(!empty($data['like'])){ foreach($data['like'] as $key => $value) { if(!empty($value)){ $this->db->like($key,$value); } } } //query order if(!empty($data['order'])){ foreach($data['order'] as $key => $value) { $this->db->order_by($key,$value); } } //query grouping value if(!empty($data['group'])){ foreach($data['group'] as $value) { $this->db->group_by($value); } } //query pengkondisian not in if(!empty($data['notIn'])){ foreach($data['notIn'] as $key => $value) { $this->db->where_not_in($key,$value); } } //query dibentuk return $this->db->get(); }
Sedikit penjelasan, code di atas merupakan kumpulan dai querey builder yang akan dibentuk. Anda dapat menambahkan sesuai keinginan Anda seperti where_in dan sebagainya. Lalu bagaimana cara pada file controller? Pada file controller, jadi sangat mudah sekali penerapannya. Kita menggunakan array untuk mengirimkan data ke file model tersebut.
Dalam case ini, kita sudah memiliki database dengan nama table mahasiswa beserta 5 kolom didalamnya, yakni nama, nim, telepon, tahun, kota. Dan juga terdapat data pada rownya. Berikut contoh code pada controller untuk membuat query array yang akan diolah pada model MGlobal :
class Contoh extends CI_Controller { public function __construct(){ //memanggil file model dengan nama MGlobal $this->load->model("MGlobal"); } public function index(){ $arr = [ "table" => "mahasiswa",//nama tabel yang dieksekusi "select" => "nama, nim, telepon, tahun, kota",//kolom yang akan dipanggil "where" => ["tahun" => "> 2000", //kondisi tahun lebih besar 2000 "kota" => "Jakarta"], // kondisi kota = Jakarta "order" => ["nama" => "ASC"] //sorting nama ascending ]; //generate query ke model MGlobal pada function read $query= $this->MGlobal->read($arr)->result(); //hasilnya echo json_encode($query); }
Pada functon index di atas, terdapat array untuk membangun query yang akan diolah pada MGlobal. Query di atas akan berbentuk seperti ini :
select nama, nim, telepon, tahun, kota from mahasiswa where tahun "> 2000" and kota = "Jakarta" order by nama ASC
Apabila Anda ingin menggunakan query lain, semisal join, like, group TU query yang lainnya yang terdapat pada file model, Anda dapat mencobanya juga denngan cara penulisan yang sama seperti code array di atas.
Nah, cukup paham bukan? Demikianlah penjelasan singkat dan sederhana mengenai Membuat Model Global Read Data pada Codeigniter 3 semoga dapat bermanfaat buat Anda. Terima Kasih.
Leave a Reply