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

...
$config['base_url']	= "http://localhost/ci_ku/";
…

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

autoload.php

...
$autoload['libraries'] = array('database');
....
$autoload['helper'] = array('url','form');
....

database.php

...
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "ci_ku";
...

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

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 ;

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

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>

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 class Daily extends Controller{ function __construct (){ parent::Controller(); $this->load->model('MDaily');
}

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

}

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 class Daily extends Controller{ //...kode sebelumnya... function submit(){ if ($this->input->post('submit'))
{
$this->MDaily->save();
}
redirect('daily/index');
}
}

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 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);
}

}

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

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

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


  • 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

    • silahkan di cek pada baris error yang disebutkan. Cek juga nama controller dan nama modelnya

      • 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??

        • Model nya sudah di load?

          pastikan ada script $this->load->model('MDaily');

  • thx, bro…., ane lagi cari pemahaman dasar codeigniter tutorialnya sangat membantu, ntar ane konsultasi biar lebih paham lagi. he he he he he…

    • sama-sama, senang bisa membantu

  • delie

    mas,ko punya saya object not found terus yah????

    • object not found terjadi karena file yang di tunjuk di URL tidak ada, coba periksa lagi link nya atau file nya 🙂

  • kakang

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

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

    •  $config[‘base_url’] = “http://localhost/ci_ku/”;
      harus pake http:// mas delie….
      aku tadi juga gitu….

  • 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

  • isal

    kak bikin databse nya gimana ya? mohon pencerahan nya

    • pake mysql, itu scriptnya udah ada di post 🙂

  • pakai CI versi berapa??
    soalnya saya pakai versi 2.0.1
    agak bingung banayk berbeda

  • adryan

    Mas. File Submitnya thu bikin baru kemudian simpan di Controllers yach???

    • dibuat di controller saja 🙂

  • adryan

    saya suah buat submit.php di Controllers tetapi ketika saya menjalankan.. SUbmit saya not Found Mas

    • submit.php?

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

  • adryan

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

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

    • di folder controllers, di save namanya daily.php

  • Saya mengalami error yang sama ketika mencoba script diatas.
    kelika submit buttonnya diklik kok malah “page not found”

    • page not found berarti link nya salah, bisa dilihat URL nya mengarah kemana?

  • pakdhe

    ijin sedot page ya mas 😀

    • silahkan 🙂

  • 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

    • 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

  • 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

    • 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

  • 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…:)

    • date.timezone = “UTC”
      kemudian restart webservernya (apache/xampp nya)

  • yogi

    mas, mau nanya

    maksud dari apa ya?

    daily nya apa, dan submit nya apa?

    trimakasih atas jawabannya mas

    • saya kurang paham maksud “apa” dari pertanyaan anda

  • 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

    • 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

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

  • wira

    kalau mau buat paging gimana ya mas?
    apa ada tutorialnya??

  • adi

    koq kalo aq submit ga insert data malah lari kehalaman http://localhost/xampp/
    da pa ya mas? makasih bwat share ilmunya

    • datanya sudah masuk database?

      coba di lihat di view nya bagian

      <?php echo form_open('daily/submit'); ?>
      

      itu harusnya submit menuju controller daily, function submit,

  • tengkyu om dudu, saya lagi mencoba memahami sistem CI. Tutorialnya sangat membantu dan langsung sukses…dengan CI 1.7.3

  • septian

    kok
    Fatal error: Call to a member function nama_fungsi() on a non-object

    terus ya?

    • berarti method function nama_fungsi() belum dibuat..

  • Tq tutorial na…..

  • amien

    agan…
    delete nya kok ndk mau jln ya??
    pada url nya ada tanda # nya…
    mohon bantuannya agan

    • memang belum ada, lanjut di artikel brikutnya

  • bos kalo tutor web mobile versi wml nya ada ga bos?

    sent to my inbox [email protected]

  • aniki

    kak,, sy dah ikutin tutorialnya …

    1. pas sy klik submitnya memang ‘object not found ‘
    karena url nya jadi gini : http://localhost/latihan/localhost/latihan/index.php/daily/submit.
    benerkan redirectnya seperti ini.. ‘redirect(‘daily/index’);’ ?

    2. Dan didatabase datanya gak masuk … knp ya?
    mohon bantuannya kk.. trims,,

    • redirectnya bener:)

      kalo daily/submit not found berarti belum buat function submit donk

      function submit(){
      		if ($this->input->post('submit')){
      			$this->MDaily->save();
      		}
      			redirect('daily/index');
      		}
      	}
      
  • Mas knp harus connect internet baru keluar hasilnya? kalo offline gak jalan ta?

    • masak? kalo yang ini kayaknya bisa ko offline, mungkin settingan browser kamu yang “mode offline”, coba pake chrome

  • hallo mas dudu,

    saya mau tanya untuk:

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

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

    terimakasih, sukses selalu.

    • itu adalah controller.. kalo di CI versi terbaru di ganti seperti ini

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

      apa itu konstruktor? pelajari OOP ya 🙂
      konstruktor

  • OOP? ok, saya akan cari… 🙂

    terimakasih buat link nya juga, sukses selalu.

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

      • dwijonarko

        arti extends adalah “mewarisi” dari class base nya dalam hal ini Model (atau CI_Model).

  • mikha

    Mas untuk function submit udh dibuat, tapi data tetep ga bs masuk itu knp ya?

    • dwijonarko

      salah query

  • zul

    Kenapa saya buat tidak menjadi. hanya keluar seperti ini

    Daily Notes

    Daily Notes

    Mana form untuk submit data?

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

      SIlahkan cek kembali script yang telaha Anda buat.

  • 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… 🙂

    • dwijonarko

      fungsi/halamannya belum ada

      • 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

        • dwijonarko

          cek URL nya sudah adakah di controller?

          • sudah ada gan… untuk diketahui saya menggunakan spanel, apakah itu ada pengaruhnya? terima kasih sebelumnya…

          • dwijonarko

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

            Intinya URL itu memanggil function yang ada di controller

  • 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

  • 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 🙂

  • 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 “

    • walaikumsalam

      artinya pada model tidak ditemukan function InsertData(),silakan di cek kembali model yang sudah dibuat