codeigniter thumbail

Pada tutorial kali ini akan melanjutkan tutorial sebelumnya yaitu membuat Create, Read, Update dan Delete menggunakan framework codeigniter, pada postingan sebelumnya sudah dibahas proses Create dan Read Data dari database dan pada part 2 ini akan dibahas bagaiamana membuat sebuah fungsi untuk mengedit data dan menghapus data yang ada di database menggunakan framework codeigniter.

sebelum kamu melanjutkan membaca tutorial ini, jika kamu belum membaca tutorial membuat CRUD codeigniter part 1 silahkan Baca Tutorial Tutorial Codeigniter Create Read Update Delete ( CRUD ) | Part 1
 
oke sekarang apa saja yang perlu dipersiapkan ?

Langkah 1 : Persiapan index.php

Buka dan edit file index.php yang ada di dalam folder views, file index.php ini perlu kita edit dan tambahkan coding yang berfungsi untuk memberikan aksi didalam aksi tersebut ada dua tombol yaitu tombol edit dan tombol delete.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<div class='container'>
	<h1>Daftar Pengguna</h1>
	<hr>
		<a href='Crud/addForm'><button class='btn btn-primary'>Tambah</button></a>
	<hr>
	<?php echo $this->session->userdata('notifikasi');?>
	<table class='table table-bordered'>
		<tr>
			<th>No</th>
			<th>Nama</th>
			<th>Alamat</th>
			<th>Pekerjaan</th>
			<th>Aksi</th>
		</tr>
		
		<?php
			$i = $numrows->num_rows();
			if($i > 0){
			
			$no=1;
			foreach($data as $r){
		?>
		<tr>
			<td><?php echo $no++;?></td>
			<td><?php echo $r->nama;?></td>
			<td><?php echo $r->pekerjaan;?></td>
			<td><?php echo $r->alamat;?></td>
			<td>
				<a href='Crud/editForm/<?php echo $r->id;?>'><button class='btn btn-success'>Edit</button></a>
				<a href='Crud/delete/<?php echo $r->id;?>' onclick="return confirm('anda Yakin?')"><button class='btn btn-danger'>Hapus</button></a>
			</td>
		</tr>
		<?php
			}
			}else{
		?>
		<tr>
			<td colspan='5'><center>Tidak Ada Data</center></td>
		</tr>
		<?php
			}
		?>
	</table>
</div>
ok

tambahan coding mulai dari baris ke 28 sampai dengan baris ke 31, coding tersebut masing - masing menggunakan ID yang didapatkan dari ID data yang ada di database.

Penjelasan dari coding index.php

28
29
30
31
<td>
    <a href='Crud/editForm/<?php echo $r->id;?>'><button class='btn btn-success'>Edit</button></a>
    <a href='Crud/delete/<?php echo $r->id;?>' onclick="return confirm('anda Yakin?')"><button class='btn btn-danger'>Hapus</button></a>
</td>

pada baris ke 29 dan ke 30 ada coding berikut <a href='Crud/editForm/<?php echo $r->id;?> coding ini berfungsi untuk mengarahkan ke editForm dengan memberikan ID berdasarkan ID data di database yang di representasikan dalam coding <?php echo $r->id;?> 

pada coding delete ada fungsi konfirmasi yaitu pada coding onclick="return confirm('anda Yakin?')"
coding tersebut berfungsi sebagai konfirmasi apakah data akan dihapus? hasil dari coding tersebut seperti pada gambar 1 berikut.

halaman awal codeigniter
Gambar 1. Halaman Awal Aplikasi

Langkah 2 : file controller Crud.php

buka dan edit file controller  Crud.php yang berada pada di dalam folder controllers, kemudian tambahkan coding untuk meload data yang akan di edit dan membuat proses edit menggunakan nama fungsi editForm untuk membuka form dan prosesedit untuk melakukan action dari perintah edit kedalam model yang menghubungkan UI dan Database.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php

	class Crud extends CI_Controller {
		
		public function __construct(){
			parent::__construct();
			$this->load->model('UsersModel');
		}
		
		//halaman awal data
		public function index(){
			$data['data']	= $this->UsersModel->ReadData()->result();
			$data['numrows'] = $this->UsersModel->ReadData();
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('index', $data);
		}
		
		public function addForm(){
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('addForm');
		}
		
		//proses simpan data
		public function simpan(){
			$data	= array(
					'nama' => $this->input->post('nama'),
					'pekerjaan' => $this->input->post('pekerjaan'),
					'alamat' => $this->input->post('alamat'),
						
				);
			if($this->UsersModel->simpan($data) == TRUE){
				$flash = "<div class='alert alert-success'>Berhasil</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}else{
				$flash = "<div class='alert alert-danger'>Not Work</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}
			redirect('Crud');
		}
		
		public function editForm($id){
			$where = array('id'=>$id);
			$data['data']	= $this->UsersModel->editData($where)->result();
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('editForm', $data);
		}
		
		public function prosesedit(){
			$where = array('id' => $this->input->post('id'));
			
			$data = array(
					'nama' => $this->input->post('nama'),
					'pekerjaan' => $this->input->post('pekerjaan'),
					'alamat' => $this->input->post('alamat'),
				);
			
			if($this->UsersModel->prosesedit($data, $where) == TRUE){
				$flash = "<div class='alert alert-success'>Berhasil</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}else{
				$flash = "<div class='alert alert-danger'>Not Work</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}
			redirect('Crud');
		}
}

tambahkan coding mulai dari baris 41 sampai dengan baris ke 65 atau silahkan di replace saja dengan coding tersebut pada file controller dengan nama Crud.php.

penjelasan

                public function editForm($id){
			$where = array('id'=>$id);
			$data['data']	= $this->UsersModel->editData($where)->result();
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('editForm', $data);
		}
 
editForm($id) dari mana kita mendapatkan $id? string id kita dapatkan dari uri segmen ke 3 dari URL yang ada di browser, $id tersebut sudah otomatis dibaca oleh framework codeigniter

string id
Gambar 2. String id

kemudian $where pada coding $where ini digunakan untuk memilih id keberapa yang akan dikirimkan ke model yang berfungsi untuk mengedit data yang ada didalam database berdasarkan id data terebut, where tersebut adalah persamaan dalam syntax query yang menyatakan where coulumn = value.

untuk $data['data'] mengambil dari hasil eksekusi model UsersModel.php dalam object oriented programming atau pemrograman berbasis object kita pasti akan selalu berhadapan dengan data array nah funsi dari $data['data'] tersebut adalah untuk menangkap data berserta dengan attributnya untuk bisa dideklarasikan kedalam variabel.

kemudian $this->load->view keduanya untuk meload tampilan views= dari folder views.

Langkah 3 : membuat editForm.php

Selanjutnya kita akan membuat file editForm.php dan simpan di dalam folder views, file editForm.php ini berfungsi untuk meload data yang akan diedit dan dieksekusi ke dalam database kita.
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<div class='container'>
	<h1>Edit Data</h1>
	<hr>
	<div class='row'>
		<div class='col-md-6'>
		<form method='post' action='<?php echo base_url()?>/index.php/Crud/prosesedit'>
			<input type='hidden' name='id' value='<?php echo $data[0]->id;?>'>
			<div class='form-group'>
				<label>Nama</label>
				<input type='text' class='form-control' name='nama' value='<?php echo $data[0]->nama;?>'>
			</div>
			
			<div class='form-group'>
				<label>Pekerjaan</label>
				<input type='text' class='form-control' name='pekerjaan' value='<?php echo $data[0]->pekerjaan;?>'>
			</div>
			
			<div class='form-group'>
				<label>Alamat</label>
				<input type='text' class='form-control' name='alamat' value='<?php echo $data[0]->alamat;?>'>
			</div>
			
			<div class='form-group'>
				<br>
				<input type='submit' class='btn btn-primary float-right' value='Proses'>
			</div>
		</div>
	</div>
</div>

form tersebut sama persis seperti addForm.php namun dalam codingnya terdapat perbedaan yaitu adanya value, fungsi dari value ini adalah untuk menampilkan data yang diload dari database sesuai dengan id yang dipanggil penjelasan tentang id bisa dilihat pada gambar 2 diatas.

dalam pengambilan data yang diload dalam form editForm.php tidak menggunakan foreach seperti pada read data karena pada edit form kita tinggal memanggil alamat data dan field tabel yang akan diload jadi kita gunakan <?php echo $data[0]->nama;?> , <?php echo $data[0]->pekerjaan;?> etc. 

kemudian kita isikan coding tersebut ke dalam coding value value='<?php echo $data[0]->nama;?>'
sehingga menjadi 

    <input type='text' class='form-control' name='nama' value='<?php echo $data[0]->nama;?>'>

coding tersebut akan menampilkan field data dari database ke dalam form inputan, sebelum mengklik tombol edit pada halaman index kita edit dulu UsersModel.php

Langkah 4 : edit file UsersModel.php

Edit file UsersModel.php yang terdapat dalam folder models, file UsersModel.php kita gunakan sebagai penghubung antara User Interface dengan database kita, kita akan memberikan fungsi editData sebagai form yang menampilkan data yang diminta berdasarkan ID dan fungsi prosesedit sebagai aksi untuk melakukan update data yang ada di database.
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

	class UsersModel extends CI_Model {
		
		public function __construct(){
			parent::__construct();
		}
		
		public function ReadData(){
			return $this->db->get('users');
		}
		
		//proses simpan
		public function simpan($data){
			$this->db->insert('users', $data);
			return($this->db->affected_rows() > 0) ? TRUE : FALSE;
		}
		
		public function editdata($where){
			return $this->db->get_where('users', $where);
		}
		
		public function prosesedit($data, $where){
			$this->db->where($where);
			$this->db->update('users', $data);
			return($this->db->affected_rows() > 0) ? TRUE : FALSE;
		}
		
	}

Penjelasan :

pada baris coding ke 19 sampai dengan baris ke 21 berfungsi untuk menampilkan data berdasarkan id yang dipanggil dari url dan data tersebut diambil dari tabel users, $where membawa value dari id yang dipanggil.

pada baris coding ke 23 sampai dengan baris ke 27 berfungsi untuk memproses update data di dalam database berdasarkan data yang dikirmkan dari form editForm.php

form edit data
Gambar 3. form edit data

pada editForm.php pada baris ke coding ke 6 berfungsi untuk melakukan aksi proses untuk aksi edit data dalam coding tersebut kita arahkan ke url prosesedit.
      
          <form method='post' action='<?php echo base_url()?>/index.php/Crud/prosesedit'>

pada value action terdapat alamat base_url/index.php/Crud/prosesedit, fungsi yang digunakan untuk malukan edit data adalah di fungsi prosesedit seperti pada coding Crud.php dari baris coding ke 48 sampai dengan baris coding ke 65.

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public function prosesedit(){
	$where = array('id' => $this->input->post('id'));
	
	$data = array(
			'nama' => $this->input->post('nama'),
			'pekerjaan' => $this->input->post('pekerjaan'),
			'alamat' => $this->input->post('alamat'),
		);
		
	if($this->UsersModel->prosesedit($data, $where) == TRUE){
		$flash = "<div class='alert alert-success'>Berhasil</div>";
		$this->session->set_flashdata('notifikasi', $flash);
	}else{
		$flash = "<div class='alert alert-danger'>Not Work</div>";
		$this->session->set_flashdata('notifikasi', $flash);
	}
	redirect('Crud');
}

ketika data dipanggil dan diproses input id akan memberikan value dan ditangkap oleh variabel $where dan data yang lain ditangkap oleh variabel $data, kedua variabel baik $data maupun $where keduanya adalah variabel dengan value array. selanjutnya pada bagian flashdata berfungsi untuk menampilkan notifikasi data apakah berhasil atau not work.

flashdata
Gambar 4. Flashdata


Langkah 5 : Membuat function delete

setelah proses edit berhasil selanjutnya kita akan membuat proses delete, dalam proses delete ini kita tidak memerlukan file view karena kita letakkan fungsi delete pada controllers dan models yang mana kedua file tersebut kita load melalui controller Crud.php dengan function delete.

buka kembali file Crud.php lalu tambahkan coding function delete.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php

	class Crud extends CI_Controller {
		
		public function __construct(){
			parent::__construct();
			$this->load->model('UsersModel');
		}
		
		//halaman awal data
		public function index(){
			$data['data']	= $this->UsersModel->ReadData()->result();
			$data['numrows'] = $this->UsersModel->ReadData();
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('index', $data);
		}
		
		public function addForm(){
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('addForm');
		}
		
		//proses simpan data
		public function simpan(){
			$data	= array(
					 'nama' => $this->input->post('nama'),
					 'pekerjaan' => $this->input->post('pekerjaan'),
					 'alamat' => $this->input->post('alamat'),
						
						);
			if($this->UsersModel->simpan($data) == TRUE){
				$flash = "<div class='alert alert-success'>Berhasil</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}else{
				$flash = "<div class='alert alert-danger'>Not Work</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}
			redirect('Crud');
		}
		
		public function editForm($id){
			$where = array('id'=>$id);
			$data['data']	= $this->UsersModel->editData($where)->result();
			$this->load->view('_Assets/bootstrapcss');
			$this->load->view('editForm', $data);
		}
		
		public function prosesedit(){
			$where = array('id' => $this->input->post('id'));
			
			$data = array(
					'nama' => $this->input->post('nama'),
					'pekerjaan' => $this->input->post('pekerjaan'),
					'alamat' => $this->input->post('alamat'),
					);
			
			if($this->UsersModel->prosesedit($data, $where) == TRUE){
				$flash = "<div class='alert alert-success'>Berhasil</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}else{
				$flash = "<div class='alert alert-danger'>Not Work</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}
			redirect('Crud');
		}
		
		public function delete($id){
			$where = array('id'=>$id);
			if($this->UsersModel->delete($where) == TRUE){
				$flash = "<div class='alert alert-success'>Berhasil</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}else{
				$flash = "<div class='alert alert-danger'>not Work</div>";
				$this->session->set_flashdata('notifikasi', $flash);
			}
			redirect('Crud');
		} 
	}

file coding Crud.php tersebut sudah kita tambahkan function delete dari baris ke 67 sampai dengan baris ke 78, seperti pada function prosesedit, pada delete juga kita memanfaatkan $id dan $where yang kita gunakan sebagai kunci untuk menghapus data dari database, dan juga kita gunakan flashdata sebagai notifikasi bahwa data berhasil dihapus atau fungsi not work.

setelah kita modifikasi file Crud.php kita juga modifikasi file UsersModel.php kita tambahkan coding delete juga.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

	class UsersModel extends CI_Model {
		
		public function __construct(){
			parent::__construct();
		}
		
		public function ReadData(){
			return $this->db->get('users');
		}
		
		//proses simpan
		public function simpan($data){
			$this->db->insert('users', $data);
			return($this->db->affected_rows() > 0) ? TRUE : FALSE;
		}
		
		public function editdata($where){
			return $this->db->get_where('users', $where);
		}
		
		public function prosesedit($data, $where){
			$this->db->where($where);
			$this->db->update('users', $data);
			return($this->db->affected_rows() > 0) ? TRUE : FALSE;
		}
		
		public function delete($where){
			$this->db->where($where);
			return($this->db->delete('users')) ? TRUE : FALSE;
		}
	}

coding tambahan untuk proses delete ada pada baris coding ke 29 sampai dengan baris coding ke 32, pada coding tersebut kita memanfaatkan $where yang dikirimkan dari controller Crud.php dan kita set ke db->where kemudian kita hapus dari tabe users melalui $this->db->delete('users'). dalam function delete kita beri TRUE : FALSE sebagai trigger notifikasi flashdata. hasil dari eksekusi proses delete seperti pada gambar 5.

delete confirmation
Gambar5. Konfirmasi Delete

setelah kita pencet tombol OK maka aplikasi akan mengirimkan data ke function prosesdelete, hasilnya seperti pada gambar 6.

delete notification
Gambar 6. Notifikasi Hapus Data

Selamat kamu sudah bisa membuat CRUD dengan framework codeigniter.

apabila kamu belum membaca part 1 silahkan baca Tutorial Codeigniter Create Read Update Delete ( CRUD ) | Part 1

kamu juga bisa melihat video tutorialnya di



Salam Coding.

Post a Comment

Lebih baru Lebih lama