You are on page 1of 12

CATATAN BELAJAR CODEIGNITER

1. Cek di application/config/config.php
$config['base_url'] = 'http://localhost:8081/rental_mobil/';
( seting URL aplikasi )
$config['index_page'] = '';
( menghilangkan index.php )

2. Konfigurasi database di : application/config/database.php


3. Fungsi2 CRUD untuk seluruh aplikasi ada di application/models/M_rental.php
<?php
class M_rental extends CI_Model{

function edit_data($where,$table){
return $this->db->get_where($table,$where);
}

function get_data($table){
return $this->db->get($table);
}

function insert_data($data,$table){
$this->db->insert($table,$data);
}

function update_data($where,$data,$table){
$this->db->where($where);
$this->db->update($table,$data);
}

function delete_data($where,$table){
$this->db->where($where);
$this->db->delete($table);
}
}
?>
4. Untuk menu login ada di application/controllers/Welcome.php
5. Form-form untuk CRUD ada di application/views/admin
6. Sedangkan logic untuk CRUD nya ada di : application/controllers/Admin.php
7. Isi logi Admin.php tsbt adalah sbb :
application/controllers/Admin.php:

READ
Nama function testdrive untuk mengeload data2 di tabel test_drive
function testdrive(){
$data['test_drive'] = $this->db->query("select test_drive.id, test_drive.nama,
mobil.mobil_merk, test_drive.tgl from test_drive,mobil where
test_drive.mobil_id=mobil.mobil_id ")->result();
Logic ini akan menampilkan file
$this->load->view('admin/header'); :
$this->load->view('admin/testdrive',$data); /application/views/admin/test
$this->load->view('admin/footer'); drive.php
}
//Keterangan: menampilkan sub menu awal ketika sub menu Data Test Drive jika di Klik dan
menampilkan halaman testdrive.php sbb :

<div class="page-header">
<h3>Data Test Drive</h3>
</div>

<a href="<?php echo base_url().'admin/testdrive_add'; ?>" class="btn btn-sm btn-


primary"><span class='glyphicon glyphicon-plus'></span> Test Drive Baru</a>
<br/>
<br/>
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="table-datatable">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Mobil</th>
<th>Tgl</th>
<th></th>
</tr>
</thead>
<tbody> Sesuai dengan nama variabel di controller admin.php, line
<?php 386
$no = 1;
foreach($test_drive as $k){
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $k->nama ?></td>
<td><?php echo $k->mobil_merk; ?></td>
<td><?php echo date('d/m/Y',strtotime($k->tgl)); ?></td>

<td>
<a class="btn btn-sm btn-warning" href="<?php
echo base_url().'admin/testdrive_edit/'.$k->id; ?>"><span class="glyphicon glyphicon-
wrench"></span> Edit</a>
<a class="btn btn-sm btn-danger" href="<?php echo
base_url().'admin/tesdrive_hapus/'.$k->id; ?>"><span class="glyphicon glyphicon-
trash"></span> Hapus</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>

CREATE

8. Untuk tambah data dijelaskan sebagai berikut :

9. <a href="<?php echo base_url().'admin/testdrive_add'; ?>" class="btn btn-sm btn-


primary"><span class='glyphicon glyphicon-plus'></span> Test Drive Baru</a>

Jika di klik Tombol tambah akan mengaktifkan function


testdrive_add di controller admin.php

10. Fungsi di admin controller berisi code sbb :


function testdrive_add(){

$w = array('mobil_status'=>'1');
Akan $data['mobil'] = $this->m_rental->edit_data($w,'mobil')->result();
menggenerate list
item yang berisi //$data['test_drive'] = $this->m_rental->get_data('test_drive')->result();
data2 mobil sesuai $this->load->view('admin/header');
dewnghan class di Akan me load file view di
model pada $this->load->view('admin/testdrive_add',$data); admin/testdrive_data dengan isi
M_rental $this->load->view('admin/footer'); data di halaman tersebut berasal
dari variabel $data
}
($data['mobil'] = $this->m_rental-
>edit_data($w,'mobil')->result();

11. Model M_rental :


class M_rental extends CI_Model{

function edit_data($where,$table){
return $this->db->get_where($table,$where);
}
12. Pada controller : $data['mobil'] = $this->m_rental->edit_data($w,'mobil')->result();
Membacanya adalah sql : ($where,$table), untuk isi variabel $where = adalah isi dari array
$w = mobil_status =1 dan untuk isi variable $table adalah tabel yang namanya mobil
13. Sehingga balikan nilai dari return $this->db->get_where($table,$where); adalah hasil dari
query select * from mobil where mobil_status=’1’
14. Isi view/admin/testdrive_add.php adalah sbb :

<div class="page-header">
<h3>Test Drive Baru</h3>
</div>

<form action="<?php echo base_url().'admin/testdrive_add_act' ?>" method="post">


<div class="form-group">
<label>Nama </label>
<input type="text" name="nama" class="form-control"> Actionnya jika di tekan tombol
<?php echo form_error('nama'); ?> submin akan mengaktifkan function
testdrive_add_act pada
</div>
controller/admin.php
<div class="form-group">
<label>Mobil</label>
<select name="mobil_id" class="form-control">
<option value="">-Pilih Mobil-</option>
Dari function <?php foreach($mobil as $m){ ?>
testdrive di
<option value="<?php echo $m->mobil_id; ?>"><?php echo $m->mobil_merk; ?></option>
controller/admi
<?php } ?>
n.php
</select>
<?php echo form_error('mobil'); ?>
</div>
<div class="form-group">
<label>Tanggal Test Drive</label>
<input type="date" name="tgl" class="form-control">
<?php echo form_error('tgl'); ?>
</div>
<div class="form-group">
<input type="submit" value="Simpan" class="btn btn-primary">
</div>
</form>

15. Pada saat tombol disubmit maka akan mengaktifkan function testdrive_add_act() pada
controller/admin.php berikut:

function testdrive_add_act(){
$nama = $this->input->post('nama');
$mobil_id = $this->input->post('mobil_id');
$tgl = $this->input->post('tgl');
$this->form_validation->set_rules('nama','Nama','required');
$this->form_validation->set_rules('mobil_id','Mobil','required');
$this->form_validation->set_rules('tgl','Tanggal','required');

if($this->form_validation->run() != false){
$data = array(
'nama' => $nama,
'mobil_id' => $mobil_id,
'tgl' => $tgl,

);
$this->m_rental->insert_data($data,'test_drive');
redirect(base_url().'admin/testdrive');
}else{
$this->load->view('admin/header');
$this->load->view('admin/testdrive_add');
$this->load->view('admin/footer');
}

}
16. $this->m_rental->insert_data($data,'test_drive');
17. Akan memanggil model M_rental function insert_data sbb :
function insert_data($data,$table){
$this->db->insert($table,$data);
}

18. Isi variabel $data adalah sbb :


$data = array(
'nama' => $nama,
'mobil_id' => $mobil_id,
'tgl' => $tgl,

);

19. Isi variabel $tabel adalah tabel test_drive

UPDATE
20. Untuk mengedit data menggunakan fungsi testdrive_edit pada controller/admin.php
<a class="btn btn-sm btn-warning" href="<?php echo base_url().'admin/testdrive_edit/'.$k-
>id; ?>"><span class="glyphicon glyphicon-wrench"></span> Edit</a>

21. Isi dari testdrive_edit pada controller/admin.php adalah sbb :


function testdrive_edit($id){

$w = array('mobil_status'=>'1');
$data['mobil_checked'] = $this->db->query("select test_drive.id,
test_drive.nama, mobil.mobil_merk, test_drive.tgl from test_drive,mobil where
test_drive.mobil_id=mobil.mobil_id and test_drive.id='$id'")->result();
$data['mobil'] = $this->m_rental->edit_data($w,'mobil')->result();
//$data['test_drive'] = $this->m_rental->get_data('test_drive')->result();

$where = array(
'id' => $id
);
$data['testdrive'] = $this->m_rental->edit_data($where,'test_drive')-
>result();
$this->load->view('admin/header');
$this->load->view('admin/testdrive_edit',$data);
$this->load->view('admin/footer');
}

22. Penjelasannya adalah sbb :

function testdrive_edit($id){
$w = array('mobil_status'=>'1');
$data['mobil_checked'] = $this->db->query("select test_drive.id,
test_drive.nama, mobil.mobil_merk, test_drive.tgl from test_drive,mobil where
test_drive.mobil_id=mobil.mobil_id and test_drive.id='$id'")->result();
$data['mobil'] = $this->m_rental->edit_data($w,'mobil')->result();

23. Coding yg merah akan menampilkan list mobil2 di tabel mobil yang statusnya ‘1’
24. Coding yang biru akan menampilkan data yang terpilih oleh record ybs

25. Pada $this->load->view('admin/testdrive_edit',$data); adalah sbb :

<div class="page-header">
<h3>Edit Test Drive</h3>
</div>

<?php foreach($testdrive as $k){ ?>


<form action="<?php echo base_url().'admin/testdrive_update' ?>" method="post">
<div class="form-group">
<label>Nama Kostumer Test Drive</label>
<input type="text" name="nama" value="<?php echo $k->nama; ?>" class="form-control">
<input type="hidden" name="id" value="<?php echo $k->id; ?>" class="form-control">
<?php echo form_error('nama'); ?>
</div>
<div class="form-group">
<label>Mobil</label>
<select name="mobil_id" class="form-control">

<?php foreach($mobil_checked as $m_checked){ ?>


<option value="<?php echo $m_checked->id; ?>"><?php echo $m_checked-
>mobil_merk; ?></option>
<?php } ?>

<?php foreach($mobil as $m){ ?>


<option value="<?php echo $m->mobil_id; ?>"><?php echo $m->mobil_merk;
?></option>
<?php } ?>
</select>
<?php echo form_error('mobil'); ?>
</div>
<div class="form-group">
<label>Tanggal Test Drive ( Format YYYY-MM-DD )</label>
<input type="text" name="tgl" value="<?php echo $m_checked ->tgl; ?>" class="form-
control">
<?php echo form_error('tgl'); ?>
</div>
<div class="form-group">
<input type="submit" value="Simpan" class="btn btn-primary">
</div>
</form>
<?php } ?>

26. Penjelasannya adalah sbb :

27. <?php foreach($testdrive as $k){ ?> merujuk kepada controller/admin.php pada fungsi : function
testdrive_edit($id)
Salah satu baris pada fungsi tersebut adalah sbb :
…………..
$data['testdrive'] = $this->m_rental->edit_data($where,'test_drive')->result();
……………..

28. Nama Pengguna Test Drive pada Pada $this->load->view('admin/testdrive_edit',$data);


ditampilkan pada coding berikut :

<div class="form-group">
<label>Nama Kostumer Test Drive</label>
<input type="text" name="nama" value="<?php echo $k->nama; ?>" class="form-control">
<input type="hidden" name="id" value="<?php echo $k->id; ?>" class="form-control">
<?php echo form_error('nama'); ?>
</div>

29. Nama mobil yang dipilih Drive pada Pada $this->load->view('admin/testdrive_edit',$data);


ditampilkan pada coding berikut :

<div class="form-group">
<label>Mobil</label>
<select name="mobil_id" class="form-control">

<?php foreach($mobil_checked as $m_checked){ ?>


<option value="<?php echo $m_checked->id; ?>"><?php echo $m_checked->mobil_merk;
?></option>
<?php } ?>

<?php foreach($mobil as $m){ ?>


<option value="<?php echo $m->mobil_id; ?>"><?php echo $m->mobil_merk; ?></option>
<?php } ?>
</select>
<?php echo form_error('mobil'); ?>
</div>
30. Penjelasannya adalah sbb:
<?php foreach($mobil_checked as $m_checked){ ?>
<option value="<?php echo $m_checked->id; ?>"><?php echo $m_checked->mobil_merk;
?></option>
<?php } ?>
<?php foreach($mobil as $m){ ?>
<option value="<?php echo $m->mobil_id; ?>"><?php echo $m->mobil_merk; ?></option>
<?php } ?>
</select>
<?php echo form_error('mobil'); ?>

Coding di atas dijelaskan pada poin 21 sd 24

31. Untuk tanggalan yang di edit sesuai dengan coding sbb :

<div class="form-group">
<label>Tanggal Test Drive ( Format YYYY-MM-DD )</label>

<input type="text" name="tgl" value="<?php echo $m_checked ->tgl; ?>" class="form-


control">
<?php echo form_error('tgl'); ?>
</div>

32. Variabel $m_checked di dapat dari fungsi testdrive_edit pada controller/admin.php di baris
berikut :
$data['mobil_checked'] = $this->db->query("select test_drive.id, test_drive.nama,
mobil.mobil_merk, test_drive.tgl from test_drive,mobil where
test_drive.mobil_id=mobil.mobil_id and test_drive.id='$id'")->result();

Dimana hasil balikan fungsi di atas adalah :

33. Karena pada view/admin/testdrive_edit di baris berikut adalah :


<input type="text" name="tgl" value="<?php echo $m_checked ->tgl; ?>" class="form-
control">
<?php echo form_error('tgl'); ?>

Dimana pada baris 17 sebelumnya telah di defenisikan sbb :


<?php foreach($mobil_checked as $m_checked){ ?>
Sehingga data yang ditampilkan adalah tgl pada query di atas
34. Untuk edit sbb :
form action="<?php echo base_url().'admin/testdrive_update' ?>" method="post">
Pada saat tombol Edit di tekan akan memanggil fungsi testdrive_update' pada
controller/admin.php sbb :

function testdrive_update(){
$id = $this->input->post('id');
$nama = $this->input->post('nama');
$mobil_id = $this->input->post('mobil_id');
$tgl = $this->input->post('tgl');

$this->form_validation->set_rules('nama','nama','required');

if($this->form_validation->run() != false){
$where = array(
'id' => $id
);
$data = array(
'nama' => $nama,
'mobil_id' => $mobil_id,
'tgl' => $tgl,

);
$this->m_rental->update_data($where,$data,'test_drive');
redirect(base_url().'admin/testdrive');
}else{
$where = array(
'id' => $id
);
$data['test_drive'] = $this->m_rental-
>edit_data($where,'test_drive')->result();
$this->load->view('admin/header');
$this->load->view('admin/testdrive_edit',$data);
$this->load->view('admin/footer');
}
}

35. $this->m_rental->update_data($where,$data,'test_drive'); akan menghubungi model


M_rental berikut :
function update_data($where,$data,$table){
$this->db->where($where);
$this->db->update($table,$data);
}
36. Isi variabel $where adalah :
$where = array(
'id' => $id
);

37. Isi variabel $data adalah


$data = array(
'nama' => $nama,
'mobil_id' => $mobil_id,
'tgl' => $tgl,

38. Isi variabel $where adalah tabel dengan nama : 'test_drive'

DELETE
39. Untuk menghapus data bisa di lihat pada views/testdrive.php pada baris sbb :
<a class="btn btn-sm btn-danger" href="<?php echo base_url().'admin/testdrive_hapus/'.$k-
>id; ?>"><span class="glyphicon glyphicon-trash"></span> Hapus</a>
40. Pada saat diklik maka akan memanggil fungsi testdrive_hapus pada controller/admin.sbb

function testdrive_hapus($id){
$where = array(
'id' => $id
);
$this->m_rental->delete_data($where,'test_drive');
redirect(base_url().'admin/testdrive');
}

41. $this->m_rental->delete_data($where,'test_drive'); akan memanggil model pada


M_rental.php sebagai berikut :

function delete_data($where,$table){
$this->db->where($where);
$this->db->delete($table);
}
}

42. Isi variabel $where adalah :

$where = array(
'id' => $id
);

43. Isi variabel $table adalah tabel test_drive


STRUKTUR FILE :
KONSEP MVC :

You might also like