Codeigniter Dasar – Membuat Insert Data

Dalam tiap aplikasi, yang paling dasar adalah CRUD (Create Update Delete ) data. Sekarang saya ingin belajar bagaimana step by step membuat CRUD dengan Codeigniter. Tutorial ini sangat dasar, sehingga cocok bagi para pemula seperti saya :D. Pertama adalah membuat Insert data.

Ceritanya saya mau membuat aplikasi pencatat pengeluaran keuangan harian saya (namanya juga ceritanya, jadi terserah saya ya…). Folder codeigniternya saya kasih nama ci_ku. Terus isi config.php yang diubah cuma bagian base_url aja (sesuaikan dengan folder aplikasi kamu).

config.php

[php]

$config[‘base_url’] = "http://localhost/ci_ku/";

[/php]

File autoload.php dan database.php saya sebagai berikut (diringkas lho, ini cuma yang saya ubah, ga semua):

autoload.php

[php]

$autoload[‘libraries’] = array(‘database’);
….
$autoload[‘helper’] = array(‘url’,’form’);
….
[/php]

database.php

[php]

$db[‘default’][‘hostname’] = "localhost";
$db[‘default’][‘username’] = "root";
$db[‘default’][‘password’] = "";
$db[‘default’][‘database’] = "ci_ku";

[/php]

Pertama, kita buat dahulu table ‘daily’ pada database untuk menyimpan data tersebut. Table daily bisa dibuat menggunakan perintah SQL sebagai berikut :

[php]
CREATE TABLE `ci_ku`.`daily` (
`id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`date` DATE NOT NULL ,
`name` VARCHAR( 64 ) NOT NULL ,
`amount` DOUBLE NOT NULL
) ENGINE = MYISAM ;
[/php]

Lets go, mari membuat kodenya. Saya membuat view dengan nama input.php dan disimpan dalam direktori ‘views/daily/input.php’ isi input.php adalah sebagai berikut

[php]

Daily Notes</pre>
<h2>Daily Notes</h2>
<div id="form_input">
<table><?php echo form_open(‘daily/submit’); ?>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
</div>
<pre>

[/php]

View yg sangat sederhana, sangat dasar 😀 pasti mudah dipahami (setidaknya bagi saya hehehe). Selanjutnya untuk memproses view tersebut, kita buat controller dengan nama daily.php. Isi dari controller daily.php adalah sebagai berikut :

[php]
<?php class Daily extends Controller{ function __construct (){ parent::Controller(); $this->load->model(‘MDaily’);
}

function index(){
$this->load->view(‘daily/input’);
}

}
[/php]

Sangat sederhana, karena baru memanggil fungsi index untuk memproses view yg tadi kita buat (pada baris ke 9). Terus untuk memproses ketika menyimpan data bagaimana? Oh ya hampir lupa ya :D. Pada input.php form yang kita buat, memiliki action ke ‘daily/submit’ itu berarti kita harus membuat fungsi submit pada controller untuk memproses data yang di masukkan. Fungsinya sederhana sebagai berikut :

[php]
<?php class Daily extends Controller{ //…kode sebelumnya… function submit(){ if ($this->input->post(‘submit’))
{
$this->MDaily->save();
}
redirect(‘daily/index’);
}
}
[/php]

Intinya sih memanggil Model Mdaily dan menjalankan fungsi save pada model Mdaily. Setelah itu di redirect/diarahkan ke view (‘daily/index’)

Selanjutnya membuat model Mdaily dan fungsi save untuk menyimpan data tadi. Isinya sebagi berikut:

[php]
<?php class MDaily extends Model{ function __construct () { parent::Model(); } function save() { $date = $this->input->post(‘date’);
$name = $this->input->post(‘name’);
$amount=$this->input->post(‘amount’);
$data = array(
‘date’=>$date,
‘name’=>$name,
‘amount’=>$amount
);
$this->db->insert(‘daily’,$data);
}

}
[/php]

Kayanya udah jelas ya?? Sekarang udah bisa dicoba masukin data trus check deh tabelnya pake mysql atau phpmyadmin, udah masuk belum?

Oh ya, hampir lupa, kalo ngakses aplikasi ini di

[php]http://localhost/ci_ku/index.php/daily [/php]

Terus nampilin datanya gmn donk?? Sabar, biar ga kepanjangan kita teruskan pada cerita berikutnya ya.. Happy Igniting..


72 thoughts on “Codeigniter Dasar – Membuat Insert Data

  1. edicrew

    mas saya dach coba tutorial yg ini,, tapi pada saat di klik submit kq muncul peringtatan sperti ini :

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: Daily::$MDaily

    Filename: controllers/daily.php

    Line Number: 17

    Fatal error: Call to a member function save() on a non-object in C:\xampp\htdocs\edi\system\application\controllers\daily.php on line 17

    Reply
      1. firman

        sma mas sya juga error kya gitu
        A PHP Error was encountered

        Severity: Notice

        Message: Undefined property: Daily::$MDaily

        Filename: controllers/daily.php

        Line Number: 19

        Fatal error: Call to a member function save() on a non-object in C:\xampp\htdocs\belajar_ci\application\controllers\daily.php on line 19

        sya sudah cek berulang kaliii tp masih kya gitu yng slah dmna mas??

        Reply
  2. kakang

    mas,kalo saya knapa ya pas di submit malah gini
    “404 Page Not Found
    The page you requested was not found.”
    kenapa yah??

    Reply
    1. dudu Post author

      Lihat link yang dituju, nama controller nya mungkin berbeda? dari error nya kan udah kelihatan kalo file yang di tuju tidak ada 🙂

      Reply
  3. dean

    Thanks dudu.web.id

    tp buat CI 2.0
    untuk controller daily.php

    class Daily extends CI_Controller{
    function __construct (){
    parent::__construct();
    $this->load->model(‘MDaily’);
    }
    ……

    dan buat model MDaily.php

    class MDaily extends CI_Model{
    function __construct ()
    {
    parent::__construct();
    }
    …….

    Regards
    Happy Coding

    Reply
    1. dudu Post author

      submit.php?

      perhatikan pada view, form action diarahkan ke daily/submit yang artinya di controller daily dibuat function submit

      Reply
  4. adryan

    input->post(‘submit’))
    {
    $this->MDaily->save();
    }
    redirect(‘daily/index’);
    }
    }

    saya save dengan nama apa?? pada folder apa mas??? Mohon Bantuan

    Reply
  5. riki

    untuk teman semua jika menemukan pesan error Severity: Notice
    Message: Undefined property: Daily::$MDaily
    Filename: controllers/daily.php
    Line Number: 19 itu berati model salah ketik periksa di model tambahkan CI_Model misal :

    class Mdailyl extends CI_Model {
    ……
    }
    trims….semangat

    Reply
    1. dudu Post author

      yup.. tetapi karena ini masih pake CI versi 1.7.3 maka pake class MDaily extends Model.. Perhatikan juga penulisan huruf besar dan kecil MDaily berbeda dengan Mdaily

      Reply
  6. nungky

    mas dwi…. aqu dah coba yg
    bagian CRUD yg bagian “Codeigniter Dasar – Membuat Insert Data” tp mlah ada pesan sperti dbwah ni untuk DATE..
    gmn cra perbaikinya ya mas??
    ————————————————————————————————————————-
    A PHP Error was encountered

    Severity: Warning

    Message: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Krasnoyarsk’ for ‘7.0/no DST’ instead

    Filename: views/input.php

    Line Number: 14

    Reply
    1. dudu Post author

      itu karena setingan php.ini pada server Anda 🙂

      silahkan buka php.ini pada server, hapus tanda titik koma di depan kata date_default_timezone_set() atau date.timezone

      Reply
  7. nungky

    d php.ini ada sepeti ini: ;date.timezone = nah yg titik koma nya ja kah yh cmu dhilangkan? dan hnya bgian itunya sja kah? cz nuy dah hilangkan n hsilnya tetap sperti semula pesan d atas…:)

    Reply
  8. wira

    Mas, kok saya coba dengan code igniter 2.2
    ada error ini ya?
    Fatal error: Call to undefined function form_open() in C:\xampp\htdocs\CodeIgniter\SimpelInsert\application\views\daily\input.php on line 11
    kira2 kenapa ya?
    thx & regards

    Wira

    Reply
    1. wira

      oh maaf mas sudah bisa, lupa ngubah di config.php yang helpernya..
      Sebenarnya fungsi dari helper itu apa ya mas?
      Sebenarnya fungsi index itu apakah sama dengan fungsi construct ya mas?
      Thx & Regards

      Wira

      Reply
      1. dudu Post author

        construct adalah konstruktor (pelajari OOP), sedangkan index adalah nama method / fungsi (biasanya diakases paling awal)

        Reply
    1. dudu Post author

      datanya sudah masuk database?

      coba di lihat di view nya bagian

      [php]
      <?php echo form_open(‘daily/submit’); ?>
      [/php]

      itu harusnya submit menuju controller daily, function submit,

      Reply
    1. dudu Post author

      redirectnya bener:)

      kalo daily/submit not found berarti belum buat function submit donk
      [php]
      function submit(){
      if ($this->input->post(‘submit’)){
      $this->MDaily->save();
      }
      redirect(‘daily/index’);
      }
      }
      [/php]

      Reply
  9. firdi

    hallo mas dudu,

    saya mau tanya untuk:

    function __construct (){
    parent::Controller();

    fungsi diatas itu artinya apa ya? secara bahasa mudahnya gitu?

    terimakasih, sukses selalu.

    Reply
    1. Sang Agkuh

      gan kalau script 
      Class Guest_model extends Model{ function __construct(){ parent::Model(); }
      fungsinya buat apa ya gan..
      ane bingung, maklum baru belajar kemarin sore 😀

      Reply
    1. dudu Post author

      Script ini adalah versi codeigniter 1.7x, jika menggunakan codeigniter versi terbaru akan tidka cocok.

      SIlahkan cek kembali script yang telaha Anda buat.

      Reply
  10. achie

    salam kenal gan… ane achie …gan minta help nih… di web ci 173 saya ketika klik “add to chart / add to wishlist” muncul error… “page not found … error 404…” trims a lot buat pencerahanya gan… 🙂

    Reply
      1. koko borland Jr

        tapi di localhost saya berjalan dengan lancar gan… apakah ada kesalahan dimana… gitu… dan apa tindakan saya biar bisa jalan normal seperti di localhost??… matur tengkyu sebelumnya

        Reply
          1. dwijonarko

            kayaknya ga ngaruh deh, cek URLnya, cek functionnya sudah sama atau belum.

            Intinya URL itu memanggil function yang ada di controller

  11. kiki

    mau tnya dong mas

    selalu muncul pesan Parse error: syntax error, unexpected T_CLASS, expecting T_FUNCTION in C:xampphtdocsCIapplicationcontrollersmoti.php on line 12

    itu knpa??
    trims

    Reply
  12. Dinnu Shobirin

    input->post(‘submit’))
    {
    $this->MDaily->save();
    }
    redirect(‘daily/index’);
    }
    }

    klu gk slah jdi gini kan yg bnrnya

    input->post(‘submit’)){
    $this->MDaily->save();
    }
    redirect(‘daily/index’);
    }
    }
    iya enggk 🙂

    Reply
  13. syamsul hidayat

    assalamualaikum saya newbie dalam masalah CRUD, yang saya mau tanyakan maksud dari pesan error ini apa ya, ” Fatal error: Call to undefined method Model::InsertData() in C:xampphtdocscodeapplicationcontrollerswelcome.php on line 15 “

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.