Active Record(AR) adalah sebuah pattern atau pendekatan untuk membaca data dari sebuah tabel atau view dengan cara membungkusnya dengan sebuah kelas. Sehingga tidak di butuhkan SQL jika kita menggunakan active record. Keuntungan yang di dapat adalah ke sederhanaan dalam pengkodean program dan fleksibilitasnya ketika terjadi pergaantian skema atau pun jenis database(bebas dari sintaks-sintaks SQL yang bersifat khusus ke database tertentu).
Codeigniter tidak sepenuhnya meniru pattern Active Record, tetapi ia melakukan sedikit modifikasi terhadap pattern tersebut. Denga menggunakan active record maka proses CRUD atau yang lebih di kenal oleh bahasa kita yakni Create (membuat sebuah database) READ( menampilkan data dari database) UPDATE (Proses update atau edit data database) DELETE you know lah wkwkk pasti kalian sudah familiar dengan kata ini yang tidak lain artinya adalah proses penghapusan data menjadi lebih sederhana.
$this->db->get('nama_tabel');
Query di atas jika di jabarkan ke dalam sintaks SQL akan menghasilkan :
('SELECT * FROM nama_tabel dan juga akan sama dengan $this-db->query('SELECT * FROM nama_tabel');
Ketika kita tidak menggunakan fungsi apapun maka fungsi get akan menghasilkan seluruh record yang berada di dalam tabel tersebut, tetapi jika di beri fungsi select(),where(), dan lain-lain tentu hasilnya pun akan berbeda.
Â
Selecting DataÂ
Untuk mengambil data dari database dengan field-field tertentu kita bisa menggunakan perintah select(). Contoh penulisan syntaknya:
Â
$this->db->select('nama_field1,nama_field2,nama_field3');
$this->db->get('nama_tabel');
Query ini setara dengan :
Â
$this->db->query('SELECT nama_field1,nama_field2,nama_field3 FROMÂ nama_tabel');
Selain method select, terdapat juga method-method lainnya seperti from(),where(),where_in(),group_by(),order_by(),like,distinct(), dan lain-lain. Semua method tersebut jika di panggil akan membentuk sebuah query dan query tersebut akan di jalankan ketika method get() di panggil.
Untuk lebih mempermudah active record sudah memiliki fitur chaining method. Apasih chaining method itu ?Jadi chaining method adalah sebuah fitur yang lebih mempermudah kita untuk merangkai semua query tadi sehingga menjadi lebih ringkas.
Contoh query yang kompleks :
$data_all=$this->db->select("sum(budget) as sum_budget, sit_ad_mapping.*")
->where('site_ad_mapping.site_id',$site_id)
->where('ad_status','approved')
->where('request_status','active')
->where('ad_operational_status','active')
->join('ads','ads.id_ad = site_ad_mapping.ad_id')
->join('advertisers','id_advertiser=advertisers_id')
->join('site_counter','site_counter.site_id=site_id')
->join('sites','site_counter.site_id = sites.id_site')
->join('publishers','sites.publishers_id = id_publisher')
->from('site_ad_mapping')
->order_by('ad_priority_level','desc')
->order_by('point','desc')
->group_by('ad_id')->limit(0,10)
->get()->result();
Nah kalian pasti belum paham dengan syntak di atas kan ? mari kita sama-sama untuk memahami script ini tapi saya tidak akan menjelaskan baris perbaris nya saya akan menjelaskan masing-masing fungsi query nya saja agar kalian lebih bisa memahami dengan syntak di atas.
Pertama, (Query sum) - jika kalian sudah terbiasa menggunakan excel kalian pasti sudah tidak asing lagi dengan perintah ini ya kan?? perintah ini di gunakan untuk menjumlahkan isi data yang ada pada range tertentu.
Contoh logika nya agar lebih paham yaitu :
jika kita memiliki tabel nilai siswa dan kita ingin mengetahui berapa total nilai yang dimiliki dari semua siswa tersebut maka di sini kita memakai query sum tersebut.
Kedua, (Query where) - nah jika di artikan ke dalam bahasa indonesia where itu adalah di mana,maka kita tentu saja sudah harus paham dengan query yang satu ini jadi misal kita ingin menampilkan tabel siswa berdasarkan id makaa kita tinggal menulis syntaks nya seperti berikut:
$this->db->where('id);
$this->db->get('siswa');
Ketiga, (Query join) - untuk query ini pasti ada sebagian orang yang belum memahami apa fungsi dari query ini. Jadi fungsi dari query ini jika di artikan ke dalam bahasa indonesia adalah bergabung nah dari sini kalian ada bayangan tidak ?? bukan kekasih bayangan ya wkwkwk maaf author sedikit bucin hehehe.. jadi fungsi ini untuk menggabungkan beberapa tabel jadi intinyaa jika kalian butuh data di tabel lain yang tidak ada ditabel pertama maka kalian bisa menggunakan fungsi ini.
Keempat, (Query order_by) - untuk query ini sudah tidak asing lagi bagi sebagian orang jadi query ini berfungsi untuk mengurutkan data dari database yang akan di tampilkan pada website kalian. Ada 2 fungsi tambahan dalam memakai order_by ini yaitu yang pertama ada fungsi asc dan yang ke dua ada fungsi desc. Untuk fungsi ASC biasa nya kita menggunakan untuk menampilkan data dari nilai terkecil dan terbesar jadi misal dari huruf A sampai dengan huruf Z. Untuk fungsi ke dua (DESC) kalian pasti sudah paham yakni kebalikan dari fungsi (ASC) untuk menampilkan data dari nilai terbesar ke nilai terkecil.
Terakhir,(Query group_by ) - Query ini Di gunakan Untuk Mengelompokkan baris- baris data pada table mySQL, Group By ini di gunakan dengan fungsi Aggregate MySQL , fungsi agregasi itu sendiri adalah fungsi yang di sediakan oleh MySQL untuk menghasilkan sebuah Nilai berdasarkan Sejumlah Data.
Beberapa Agregasi Dalam MySQL adalah :
- AVG = rata – rata
- COUNT = Jumlah data
- MAX = Terbesar/tertinggi
- MIN = Terkecil/terendah
- SUM = Jumlah Nilai
Â
 Â
Â