Monday 28 November 2016

CodeIgniter : Tutorial Edit dan Hapus

Selamat pagi, karena masih banyak pertanyaan seputar codeigniter yaitu tentang pembuatan edit dan hapus record di database. Pada kesempatan kali ini saya akan share bagaimana cara membuatnya.
Silahkan kalian siapkan file codeigniternya dan jangan lupa copykan ke folder htdocs. Pada tutorial ini, untuk tampilannya saya menggunkan framework material design, ini optional terserah kalian bisa juga menggunkan bootstrap atau buat sendiri.

1# Langkah pertama buatlah sebuah database dengan nama yang bebas dan sebuah tabel bernama mahasiswa, strukturnya seperti gambar di bawah ini.
Struktur Tabel Mahasiswa
Struktur Tabel Mahasiswa
2# Silahkan kalian konfigurasi CodeIgniternya, saya anggap kalian sudah bisa konfigurasi.
3# Jika sudah selesai konfigurasi CodeIgniternya, pastikan sudah mau jalan dan sekarang buatlah Controller dengan nama mahasiswa.php, Model dengan nama model_mahasiswa.php dan view dengan nama view_mahasiswa.php

4# Pada tahap ini, silahkan masukkan data dummy ke dalam tabel mahasiswa pada database. Silahkan masukkan 1 sampa 5 data yang akan kita tampilkan kedalam tabel di view.

5# Pada function index di controller mahasiswa.php masukkan sintak seperti ini:
public function index()
{
$data['daftar_mahasiswa'] = $this->model_mahasiswa->tampil_data();
$this->load->view('view_mahasiswa', $data);
}
Variabel data berfungsi menampung nilai yang dikirim dari model, dengan begitu kita harus membuat function tampil_data() pada model.
public function tampil_data(){
$this->db->select('*');
$this->db->from('mahasiswa');
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result();
}
}

Langkah selanjutnya kalian buat table pada view_mahasiswa.php untuk menampilkan data tersebut.
Sintaks saya seperti di bawah ini, perhatikan pada bagian foreachnya, karena jika kalian menggunakan css yang berbeda kalian hanya perlu meniru pada bagian foreach.

<table>
<thead>
<tr>
<th data-field="name">NIM</th>
<th data-field="price">Nama </th>
<th data-field="price">Kelas</th>
<th data-field="price">Semester</th>
<th data-field="price">Edit</th>
<th data-field="price">Hapus</th>
</tr>
</thead>
<tbody>
<?php foreach ($daftar_mahasiswa as $mahasiswa){
$nim = $mahasiswa->nim;
$nama = $mahasiswa->nama;
$kelas = $mahasiswa->kelas;
$semester = $mahasiswa->semester;
echo "<tr>";
echo "<td>$nim</td>";
echo "<td>$nama</td>";
echo "<td>$kelas</td>";
echo "<td>$semester</td>";?>
<td><?php echo anchor('mahasiswa/edit_mahasiswa?id='.$nim, '<i class="small material-icons">edit</i>');?></td>
<td> <?php echo anchor('mahasiswa/hapus_mahasiswa?id='.$nim, '<i class="small material-icons">delete</i>' );?></td>
<?php
echo "</tr>";
}?>
</tbody>
</table>
Sampai disini kalian sudah berhasil menampilkan data ke view, kalau tampilan punya saya jadi seperti ini:
Tutorial membuat edit dan hapus
view_mahasiswa.php

6# Pada langkah ini saya akan tuliskan terlebih dahulu cara membuat hapus datanya, pada sintaks table diatas, kita sudah membuat 2 anchor yang berfungsi memparse nilai ke controller, untuk membuat hapus ini kita memerlukan function hapus_mahasiswa di controller mahasiswa.php dan hapus_mahasiswa di model_mahasiswa.php.
function hapus_mahasiswa di mahasiswa.php
public function hapus_mahasiswa(){
$nim = $this->input->get('id');
$result = $this->model_mahasiswa->hapus_mahasiswa($nim);
if($result == true){
echo '<script type="text/javascript">alert("Hapus Berhasil!!!")</script>';
redirect(site_url(), 'refresh');
}else{
echo '<script type="text/javascript">alert("Hapus Gagal!!!")</script>';
redirect(site_url(), 'refresh');
}
}
function hapus_mahasiswa di model_mahasiswa.php.
public function hapus_mahasiswa($nim){
$data=array(
'nim' => $nim
);
$this->db->delete('mahasiswa', $data);
if($this->db->affected_rows()>0){
return true;
}
else{
return false;
}
}
Sekarang kalian run codenya coba hapusnya berhasil atau tidak.
Hapus Data Tutorial
hapus codeigniter
7# Karena hapusnya sudah berhasil sekarang kita akan membuat editnya, untuk membuat edit ini kalian memerlukan sebuah view yang berisi form. Pada tutorial ini saya ingin di form tersebut langsung berisi data yang akan di edit, maka dari itu buat terlebih dahulu function edit_mahasiswa() di controller mahasiswa.php sintaksnya seperti di bawah ini:

public function edit_mahasiswa(){
$nim = $this->input->get('id');
$result ['data_edit']= $this->model_mahasiswa->get_data_edit($nim);
$this->load->view('view_edit_form', $result);
}
Selanjutnya kita function get_data_edit buat di model_mahasiswa.php ini berfungsi mengambil data berdasarkan nimnya.
public function get_data_edit($nim){
$this->db->select('*');
$this->db->from('mahasiswa');
  $this->db->where('nim', $nim);
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result();
}
}
Sekarang buat view baru untuk formnya dengan nama view_edit_form.php sintaksnya seperti di bawah ini.
<?php foreach($data_edit as $edit){
$nim = $edit->nim;
$nama = $edit->nama;
$kelas = $edit->kelas;
$semester = $edit->semester;
}?>

<div class="container">
<div class="row">
<div class="card teal-text">
<?php echo form_open('mahasiswa/proses_edit_mahasiswa');?>
<div class="card-content">
<div class="row">
<div class="col s6 offset-s3">
<div class="row">
<div class="input-field col s12">
<input id="icon_prefix" type="text" class="validate" value="<?php echo $nim;?>" readonly name="nim">
<label for="icon_prefix">NIM</label>
</div>
<div class="input-field col s12">
<input id="icon_prefix" type="text" class="validate" value="<?php echo $nama;?>" name = "nama">
<label for="icon_prefix">Nama</label>
</div>
<div class="input-field col s12">
<input id="icon_prefix" type="text" class="validate" value="<?php echo $kelas;?>" name="kelas">
<label for="icon_prefix">Kelas</label>
</div>
<div class="input-field col s12">
<input id="icon_prefix" type="text" class="validate" value="<?php echo $semester;?>" name="semester">
<label for="icon_prefix">Semester</label>
</div>
<div class="center">
<button class="btn waves-effect waves-light" type="submit" name="action">Update
</button>
</div>
</div>
</div>
</div>
<?php echo form_close();?>
</div>
</div>
</div>

Jika di run, maka tampilannya akan seperti di bawah ini.
Hapus codeigniter
Hapus Codeigniter
Sekarang, kita akan membuat funtion untuk menangkap nilai yang telah edit, kemudian akan kita update ke database.

8# Buat function proses_edit_mahasiswa() pada controller mahasiswa.php sintaksnya mirip sama proses insert data.
public function proses_edit_mahasiswa(){
$nim = $this->input->post('nim');
$data_edit= array(
'nama' => $this->input->post('nama'),
'kelas' => $this->input->post('kelas'),
'semester' => $this->input->post('semester'));
$result = $this->model_mahasiswa->proses_edit_mahasiswa($nim, $data_edit);
if($result == true){
echo '<script type="text/javascript">alert("Edit Berhasil!!!")</script>';
redirect(site_url(), 'refresh');
}
else{
echo '<script type="text/javascript">alert("Edit Gagal!!!")</script>';
redirect(site_url(), 'refresh');
}
}
Selanjutnya kita buat function di model untuk update data mahasiswa dengan nama function proses_edit_mahasiswa() sintaksnya:

public function proses_edit_mahasiswa($nim, $data){
$this->db->update('mahasiswa', $data, 'nim = '.$nim);
if($this->db->affected_rows()==1){
return true;
}
else{
return false;
}
Sampai disini editnya sudah berhasil, silahkan kalian run programnya.

Sekian tutorialnya semoga bermanfaat, jika ada kesalahan silahkan tinggalkan komentar di bawah karena tutorialnya terlalu panjang mungkin banyak ada kesalahan
Ala Bisa Karena Biasa
Baca juga artikel tentang codeigniter lainnya:

  1. CodeIgniter : Upload Image dan Cara membuatnya
  2. CodeIgniter: Session dan Auntentifikasi Login
  3. Codeigniter: Insert Data ke Database dan Tutorial untuk membuatnya
  4. Belajar CodeIgniter : Cara menghilangkan index.php pada url Framework CodeIgniter