codeigniter web framework

Tutorial Crud di Codeigniter (Studi Kasus Data Siswa) Part 1

Posted on

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

semarsoft Desain Database studi kasus

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

  1. Buat database dengan nama belajarci atau nama yang lain, semarsoft belajarci phpMyAdminKalian 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,

  2. 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 diatas
    CREATE TABLE `tb_kelas` (
      `id_kelas` int(3) PRIMARY KEY AUTO_INCREMENT,
      `nama_kelas` varchar(100) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

     

  3. 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 diatas
    CREATE 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;
    

     

  4. 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 diatas
    CREATE 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;

     

  5. Langkah terakhir dalam pembuatan database iini kita membuat view agar tampilannya lebih cantik dan rapi sehingga menghasilkan struktur tabel seperti berikut Tabel View data siswa
    Kita dapat mengeksekusi Query berikut untuk menghasilkan tabel berdasarkan struktur diatas
    CREATE 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

     

  6. 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

semarsoft.com database belajarci

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

 

Leave a Reply