Menggabungkan & Menggunakan Active Record CI ke dalam satu method

Jika sahabat bersedia silahkan baca juga tutorial terbaru Active Record CodeIgniter, di sana saya melakukan beberapa perubahan dengan menyempurnakan class untuk model AR nya.
Terimakasih :), penulis Catatan Belajar
Ivo Idham Perdameian

Kita mengetahui bahwa dalam framework Codeigniter memiliki library database untuk melakukan perintah dalam mengeksekusi query ke database salah satunya adalah Active Record. Nah saya ingin mengajak Anda menggabungkan dan menggunakan Active Record ke dalam satu method atau fungsi. Active Record adalah suatu pola yang memungkinkan mengambil informasi, memasukkan, dan memperbarui data dari database dengan pengkodean/scripting seminimal mungkin. Dalam beberapa kasus hanya satu atau dua baris kode yang diperlukan untuk melakukan perintah ke database.

Tutorial ini saya anggap mempunyai kerumitan level menengah dan ke atas, istilahnya Intermediate. Kenapa saya bilang begitu? Mungkin bagi Anda pemula dalam pendalaman framework Codeigniter akan sedikit bingung tapi tidak apa-apa namanya juga belajar, dan tentunya Anda sudah paham tentang OOP.

Baiklah ayuuk… kita lihat sedikit perintah Active Record CodeIgniter.

  1. Selecting Data : Adalah proses dalam pemilihan data dari database, atau sama dengan membentuk pernyataan SQL SELECT serta menjalankan querynya.
  2. Inserting Data : Akan menghasilkan string insert berdasarkan data yang diberikan, dan menjalankan querynya. di sini kita dapat menggunakan sebuah array atau obyek ke dalam fungsi.
  3. Updating Data : Akan menghasilkan string update berdasarkan data yang diberikan, dan menjalankan querynya.
  4. Deleting Data : membentuk sebuah string delete, dan menjalankan querynya.
  5. Method Chaining : Metode chaining memungkinkan kita untuk menyederhanakan sintaks dengan menghubungkan beberapa fungsi sekaligus. Contohnya $this->db->select(‘title’)->from(‘mytable’)->where(‘id’, $id)->limit(10, 20);
  6. Active Record Caching : Digunakan untuk melakukan “chace” pada query kita dan bisa digunakan untuk proses berikutnya.

Di sini saya akan membahas untuk Selecting Data saja, kecuali atas permintaan saudara sebagai pemirsa/pembaca dari tulisan ini untuk membahas penggunaan perintah Active Record lainnya. Perlu diingat bahwa apa yang akan saya bahas di sini tentunya belum bisa memenuhi kebutuhan bila Anda mempunyai permasalahan untuk query yang komplek. Biasanya saya menggunakan $this->db->query() bila permasalahan yang saya hadapi cukup komplek.

Mempersiapkan Model Active Record

Dalam tutorial ini saya memberikan nama model saya (Bukan model artis ya :P) adalah Default_model, sehingga nanti file PHP untuk modelnya adalah default_model.php, Nah berikut salinan baris kode untuk model tersebut:

Seperti yang Anda lihat pada file default_model.php di atas terdapat dua buah fungsi yaitu getDataDB, dan getDataDB2. Kedua fungsi tersebut masih saya gunakan hingga sekarang dan fungsi getDataDB2 merupakan pengembangan dari fungsi getDataDB.

Mempersiapkan file Controller Codeigniter

Sekarang siapkan file Controllernya, di sini saya beri nama Idhamcontroller, sehingga file PHP-nya menjadi idhamcontroller.php. Berikut source codenya :

Mempersiapkan file view dan databasenya

File view-nya saya beri nama contoh.php nah berikut source code-nya :

Di bawah ini adalah database yang akan kita gunakan :

Sebelum menjalankan programnya silahkan setting file autoload.php di folder “./application/config/autoload.php”, tujuannya adalah kita ingin meload library database secara otomatis seperti gambar di bawah ini:
Menggunakan Active Record Codeigniter-Setting autoload.php
Jangan lupa juga mensetting file database.php Anda dan sesuaikan dengan pengaturan user di database Anda, sebagai contoh saya sertakan pula gambarnya di bawah ini:
Menggunakan Active Record Codeigniter - Setting DB

Penjelasan penggunaan kode program Active Record Codeigniter

Penjelasan penggunaan di sini adalah cara menggunakan model Active Record Codeigniter yang telah kita buat tadi (file default_model.php) yang terletak pada file idhamcontroller.php yang juga sudah saya berikan source codenya di atas.
Yang pertama saya mau menjelaskan cara penggunaan default_model dengan nama fungsi getDataDB dahulu.

Kode di atas merupakan contoh perintah Select dan where menggunakan fungsi getDataDB sehingga pernyataan SQL-nya menjadi “SELECT * FROM tabel1 WHERE id_tabel1 > 1 AND id_tabel1 < 5". Tanda bintang(*) menunjukan pengambilan semua field, jika hanya field tertentu silahkan tulis nama fieldnya dipisah oleh tanda koma misalnya “id_tabel1,nama” dan seterusnya. Selain itu Anda juga bisa menggunakan perintah join pada fungsi getDataDB ini misalnya sebagai berikut :

Perintah di atas akan menghasilkan SQL “SELECT tabel1.nama, tabel2.tempat_lahir FROM (tabel1) LEFT JOIN tabel2 ON tabel2.id_tabel1 = tabel1.id_tabel1” tanpa mengikuti pernyataan where sehingga tempat untuk statement where-nya cukup kita buat menjadi array().

Selanjutnya adalah pembahasan Active Record Codeigniter di default_model dengan nama fungsi getDataDB2.

Saya lebih suka menggunakan getDataDB2 pada fungsi di default_model yang sudah kita buat tadi, karena memang fungsi ini merupakan pengembangan dari fungsi getDataDB. Dan penggunaannya jauh lebih mudah tinggal Anda buat config-nya saja. Pada perintah di atas akan menghasilkan SQL “SELECT * FROM tabel1 WHERE id_tabel1 = 2”. Nah berikut saya buatkan beberapa contoh lain untuk Anda supaya lebih jelas cara penggunaan Active Record yang sudah dijadikan satu dalam fungsi getDataDB2.

Penggunaan Where :

Penggunaan Field :

Tanpa config, artinya mengambil semua data di tabel1 :

Penggunaan Join :

Penggunaan Like :

Sekarang tinggal Anda kembangkan cara penggunaan Active Record Codeigniter ini sesuai dengan keperluan Anda masing-masing. Jangan lupa berikan juga +1 Google anda di tulisan ini

Kami (Catatan Belajar) juga hadir di Facebook, like kami ya klik tombol berikut:

 
Signature :

No copy paste content please…. If you want do that, please include the original source. Original Post by catatanbelajar.com, written by , .

Keyword : Menggunakan Active Record Codeigniter.

17 thoughts on “Menggabungkan & Menggunakan Active Record CI ke dalam satu method”

  1. mas, gimana cara nya kita mengambil data dari 2 tabel yang berbeda dan untuk menampilaknnya di gabung menjadi satu kata. contoh : tbl 1=ab, tbl2=02
    hasilnya ortampilnya pengen jadi = ab02.
    makasih mas sebelumnya

  2. bisa pake sub query dan concat pada query mysql, saya rasa active recored codeignter tidak memiliki fungsi khusus untuk menggabungkan string, kecuali dibuatkan fungsi khusus dengan dua kali query 😀 , so dengan perintah mysql tentu lebih time saving ex:

    SELECT CONCAT ((SELECT NCuti from cuti where KCuti=1),’ – ‘,(SELECT NEselon from eselon where KEselon=11)) as gabungan

    hasilnya adalah gabungan NCuti – NEselon

  3. permisi gan, saya mau tanya.. saya pake 2 model dalam 1 function controller

    $data[‘post’]=$this->mdata->detail($this->uri->segment(3));
    $data[‘komen’]=$this->mdata->post_komentar();

    knpa yg kluar “Database Error Occurred” ya…?? ada duplikat entrinya…

  4. Mau tanya nie gan?? kalo cara menggabungkan 4 inputan jadi 1 view gimana ya?? di model ane gini

    function tambah_draw(){
    $data = array(
    ‘TxnDrawID’ => $this->input->post(‘TxnDrawID’),
    ‘hasil’=>$this->input(‘TxnDrawNo1′,’TxnDrawNo2′,’TxnDrawNo3′,’TxnDrawNo4’),
    ‘TxnDrawNo’ => $this->input->post(‘hasil’),
    ‘TxnDrawDate’ => $this->input->post(‘TxnDrawDate’),
    ‘TxnDrawStatus’ =>$this->input->post(‘TxnDrawStatus’),
    ‘TxnDrawTitle’ =>$this->input->post(‘TxnDrawTitle’),
    ‘MstSalesPICID’ =>$this->input->post(‘MstSalesPICID’),
    ‘MstCustID’ =>$this->input->post(‘MstCustID_0’),
    ‘MstProductID’=>$this->input->post(‘MstProductID_0’),
    ‘MstEmp’=>$this->input->post(‘MstEmp’)
    );
    return $this->db->insert(‘txndraw’,$data);

    }

    1. Mau digabungin seperti apa? kayak gini juga bisa ‘hasil’=>$this->input->post(‘TxnDrawNo1′).’ ‘.$this->input->post(’TxnDrawNo2′).’ ‘.$this->input->post(’TxnDrawNo3′).’ ‘.$this->input->post(’TxnDrawNo4′),

        1. Oh klo gitu ganti jadi gini aja barisnya:

Tinggalkan Balasan