Pada kesempatan kali ini kita membahas materi mengenai pembuatan CRUD (Create, Read, Update dan Delete) pada Database di CodeIgniter 3. jika kalian belum sempat mengikuti seri tutorial mengenai CodeIgniter 3 ini, dapat kalian baca mulai dari awal pada link berikut ini
Baca : Tutorial Codeigniter Dasar
Persiapan Pembuatan Database
Langkah pertama yang harus kalian lakukan adalah mempersiapkan sebuah database yang sudah didesain sebelumnya,
Mengapa?
Karena database akan sangat berkaitan dengan jalannya data program yang akan kita buat. Pada tutorial ini kita menggunakan aplikasi server XAMPP.
Kali ini kita akan membuat Aplikasi Input Data Siswa dengan desain database seperti berikut ini
Dari Diagram database tersebut, nantinya kita akan membuat 3 Tabel Master dan 1 View, yang mana view tabel tersebut digunakan untuk menyimpan relasi dari ketiga tabel tersebut, yuk kita lanjutkan ke pembuatan database
- Buat database dengan nama belajarci atau nama yang lain,
Kalian bisa buat secara manual atau mengcopy code di bawah ini pada menu SQL di Phpmyadmin seperti tampilan di atas:
CREATE DATABASE belajarci;
Statement Query diatas digunakan untuk membuat sebuah database dengan nama belajarci. Selanjutnya kita dapat membuat tabel sesuai desain database yang sudah dibahas diatas,
- Langkah berikutnya membuat tabel dengan nama
tb_kelas
dengan struktur tabel sebagai berikut :
id_kelas,
nama_kelas
Kita dapat mengeksekusi Query berikut untuk menghasilkan tabel berdasarkan struktur diatasCREATE TABLE `tb_kelas` ( `id_kelas` int(3) PRIMARY KEY AUTO_INCREMENT, `nama_kelas` varchar(100) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- Langkah selanjutnya membuat tabel dengan nama tb_jurusan dengan struktur tabel sebagai berikut :
id_jurusan,
nama_jurusan,
singkatan
Kita dapat mengeksekusi Query berikut untuk menghasilkan tabel berdasarkan struktur diatasCREATE TABLE `tb_jurusan` ( `id_jurusan` int(3) PRIMARY KEY AUTO_INCREMENT, `nama_jurusan` varchar(100) NOT NULL, `singkatan` varchar(7) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- Langkah selanjutnya membuat tabel dengan nama tb_siswa dengan struktur tabel sebagai berikut :
id_siswa,
nama,
nisn,
jk,
id_kelas,
id_jurusan
Kita dapat mengeksekusi Query berikut untuk menghasilkan tabel berdasarkan struktur diatasCREATE TABLE `tb_siswa` ( `id_siswa` int(3) PRIMARY KEY AUTO_INCREMENT, `nama` varchar(100) NOT NULL, `nisn` varchar(15) NOT NULL, `jk` enum('L','P') NOT NULL, `id_kelas` int(3), `id_jurusan` int(3) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- Langkah terakhir dalam pembuatan database iini kita membuat view agar tampilannya lebih cantik dan rapi sehingga menghasilkan struktur tabel seperti berikut
Kita dapat mengeksekusi Query berikut untuk menghasilkan tabel berdasarkan struktur diatasCREATE VIEW vSiswa AS SELECT tb_siswa.id_siswa, tb_siswa.nama, tb_siswa.nisn, tb_siswa.jk, tb_kelas.nama_kelas, tb_jurusan.nama_jurusan FROM tb_siswa INNER JOIN tb_kelas ON tb_siswa.id_kelas=tb_kelas.id_kelas INNER JOIN tb_jurusan ON tb_siswa.id_jurusan=tb_jurusan.id_jurusan
- Inputkan Contoh data ke dalam tabel yang sudah kita buat tadi dengan perintah query sebagai berikut
INSERT INTO `tb_kelas` (`id_kelas`, `nama_kelas`) VALUES (1, 'X RPL'), (2, 'XI RPL'), (3, 'XII RPL'); INSERT INTO `tb_jurusan` (`id_jurusan`, `nama_jurusan`, `singkatan`) VALUES (1, 'Teknik Komputer Jaringan', 'TKJ'), (2, 'Rekayasa Perangkat Lunak', 'RPL'); INSERT INTO `tb_siswa` (`id_siswa`, `nama`, `nisn`, `jk`, `id_kelas`, `id_jurusan`) VALUES (1, 'Moh. Shobirin', '1019107', 'L', 3, 2);
Jika langkah-langkah di atas diikuti dengan benar, maka akan menghasilkan tabel seperti berikut ini
Lanjut ke tutorial berikutnya
Koneksi Database dengan CodeIgniter 3
Database sudah kita buat sebelumnya, langkah berikutnya kita akan mengkoneksikan database yang sudah ada dengan CodeIgniter 3. Cara mengkoneksikan CodeIgniter 3 dengan database sangatlah sederhana dengan cara membuka file database.php. File ini berada di dalam direktori application/config/database.php. jika dibuka dengan editor terdapat coding seperti berikut ini
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'belajarci', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
isikan username dengan root jika kita menjalankannya menggunakan server lokal, kemudian isi databasenya dengan nama database yang sudah kita buat tadi yaitu belajarci
Jika sudah diganti, coba jalankan project yang telah kita buat pada browser, jikalau tidak ada pemberitahuan error, itu tandanya langkah-langkah yang sudah dikerjakan sudah benar dan database sudah berhasil terkoneksi dengan CodeIgniter 3. Alhamdulillah
Templating
Pada tutorial ini kita akan menggunakan template AdminLTE. tutorial lengkapnya sudah kita bahas di pertemuan sebelumnya tentang Integrasi AdminLTE dengan Codeigniter (Template Dinamis), silahkan disimak sebelum melanjutkan ke tutorial berikutnya
Membuat Model Database untuk semua tabel di Codeigniter
Agar sistem kita dapat berinteraksi dengan database, seperti misalnya mengambil , membuat, menghapus dan mengedit data dari database kita membutuhkan Model di Codeigniter
Buatlah file Crud.php di dalam folder application/models, kemudian inputkan coding berikut ini ke dalam file tersebut
<?php class Crud extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_by_id($id, $kolom, $tabel) { $this->db->from($tabel); $this->db->where($kolom, $id); $query = $this->db->get(); return $query->result(); } public function tampilData($table) { return $this->db->get($table); } public function inputData($data, $table) { $this->db->insert($table, $data); return $this->db->insert_id(); } public function hapusData($where, $table) { $this->db->where($where); $this->db->delete($table); } public function editData($where, $table) { return $this->db->get_where($table, $where); } public function updateData($where, $data, $table) { $this->db->where($where); $this->db->update($table, $data); return $this->db->affected_rows(); } public function detailData($id = NULL, $table) { $query = $this->db->get_where($table, array($id => $id))->row(); return $query; } public function cari($kolom, $tabel) { $cari = $this->input->GET('cari', TRUE); $this->db->from($tabel); $this->db->like($kolom, $cari, 'both'); $query = $this->db->get(); return $query->result(); } }
Penjelasan Coding
………………………………
Jika semua langkah-langkahnya sudah selesai, kita bisa lanjut membuat Controller dan view untuk ketiga Tabel Master yang sudah kita buat, simak di Tutorial berikutnya
Tutorial Crud di Codeigniter (Studi Kasus Data Siswa) Part 2