Data Master Agama Dengan Codeigniter

7 Des 2011

4.5
بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Kita lanjutkan project System Administrasi SMP Sakahayang.  Dalam suatu system aplikasi selalu ada data master. Data master hanya sekali saja di-entry-nya namun selalu digunakan pada data utama.  Data utama pada system yang akan kita buat adalah data siswa.  Didalam data siswa selalu ada field Agama.  Agar saat entry siswa baru, penulisan agama tidak salah, maka kita buat data masternya.

Pertama kita bikin dahulu tabelnya di database db_smp-sakahayang.  Buka phpMyAdmin sobat, aktifkan databse db_smp-sakhayang,  kemudian click  menu SQL.



Kemudian copy paste sql berikut ke textbox, kemudian click GO. Maka terciptalah sebuah tabel kosong mst_agama.

CREATE TABLE IF NOT EXISTS `mst_agama` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `agama` varchar(25) NOT NULL,
  `date_entry` datetime DEFAULT NULL,
  `user_entry` varchar(25) DEFAULT NULL,
  `last_update` datetime DEFAULT NULL,
  `user_update` varchar(25) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

SQL diatas adalah command untuk membuat tabel mst_agama  dimana field-fieldnya seperti pada baris-baris berikutnya dimana primary key-nya adalah id  bertype integer sebanyak 3 digit.

Main menu yang telah kita buat sederhana pada pembutan form login, kita modifikasi agar pembutan project selanjutnya lancar.  Buat dahulu file css,  sobat beri nama  main_menu.css dan save dalam  folder css sedangkan folder css sendiri berada dibawah root  project.  Sekalian juga bikin folder images.


main_menu.css:
#catmenucontainer{

height:33px;
width:1000px;
margin:0 auto;
background:url(http://1.bp.blogspot.com/-HWnzqeoLkqM/TZfDIsnBUJI/AAAAAAAAC6Y/HLNb-3kfkec/s1600/2.gif) repeat-x;

display:block;
padding:0px 0 0px 0px;
font-size:12px;
font-family:"Segoe UI",Calibri,"Myriad Pro",Myriad,"Trebuchet MS",Helvetica,Arial,sans-serif;
font-weight:normal;
border-top:1px solid #252424;
}
#catmenu{
margin: 0px;
padding: 0px;
width:1000px;
background:#252525 url(http://4.bp.blogspot.com/_4HKUHirY_2U/S6mTqAdkycI/AAAAAAAAA2E/zxCSk-6MwLI/catmenu.jpg) repeat-x;
height:33px;
}
#catmenu ul {
float: left;
list-style: none;
margin: 0px;
padding: 0px;
}
#catmenu li {
float: left;
list-style: none;
margin: 0px;
padding: 0px;
}
#catmenu li a, #catmenu li a:link, #catmenu li a:visited {
color: #fae7df;
display: block;
margin: 0px;
padding: 9px 10px 10px 10px;
}
#catmenu li a:hover, #catmenu li a:active {
background:url(http://3.bp.blogspot.com/_4HKUHirY_2U/S6mTqmy1HdI/AAAAAAAAA2M/6D7APyygWZA/catmenuhov.jpg) repeat-x;
color: #fff;
margin: 0px;
padding: 9px 10px 10px 10px;
text-decoration: none;
}
#catmenu li li a, #catmenu li li a:link, #catmenu li li a:visited {
background:#ED4A05;
width: 150px;
color: #fae7df;
font-family:Tahoma,century gothic,Georgia, sans-serif;
font-weight: normal;
float: none;
margin: 0px;
padding: 9px 10px 10px 10px;
border-bottom: 1px solid #FF7800;
}
#catmenu li li a:hover, #catmenu li li a:active {
background:url(http://3.bp.blogspot.com/_4HKUHirY_2U/S6mTqmy1HdI/AAAAAAAAA2M/6D7APyygWZA/catmenuhov.jpg) repeat-x;
color: #fff;
padding: 9px 10px 10px 10px;
}
#catmenu li ul {
z-index: 9999;
position: absolute;
left: -999em;
height: auto;
width: 170px;
margin: 0px;
padding: 0px;
}
#catmenu li li {
}
#catmenu li ul a {
width: 140px;
}
#catmenu li ul a:hover, #catmenu li ul a:active {
}
#catmenu li ul ul {
margin: -34px 0 0 170px;
}
#catmenu li:hover ul ul, #catmenu li:hover ul ul ul,
#catmenu li.sfhover ul ul, #catmenu li.sfhover ul ul ul {
left: -999em;
}
#catmenu li:hover ul, #catmenu li li:hover ul,
#catmenu li li li:hover ul, #catmenu li.sfhover ul,
#catmenu li li.sfhover ul, #catmenu li li li.sfhover ul {
left: auto;
}
#catmenu li:hover, #catmenu li.sfhover {
position: static;
}
Edit file autoload.php yang berada di folder  application\config.  Di array $autoload['libraries']tambahkan item tabel dan di array  $autoload['helper']  tambahkan item  html.   Ini untuk  meload library  pembuatn tabel  dan html dalam  script php.


Kemudian edit file _header.php  yang ada di folder application\views.  menjadi sepert dibawah.  Perubahan terjadi pada pemanggilan file main_menu.css  dan blok menu dibuat lebih cantik dengan penambahan sub menu.


_header.php: 
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * @author sakahayang.com
 * @copyright November 2011
 */
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <meta name="author" content="hardian" />

    <title>Administrasi SMP Sakahayang</title>
    
    <link rel="stylesheet" href="<?php echo base_url()?>css/main_menu.css" type="text/css" />
    
</head>
<body>

<h1>System Administrasi SMP Sakahayang</h1>

<div id='catmenu'>
<ul>
<li><a href='<?php echo base_url();?>'>Data Master</a>
<ul class='children'>
<li><a href='<?php echo base_url()?>index.php/master_agama/' title='Data Master Agama'>Agama</a></li>
</ul>
</li>

<li><a href="<?php echo base_url();?>index.php/login/logout" title='Keluar dari System'>Logout</a></li>

</ul>
</div>
</div>
<div class='clear'/>

Saatnya membuat program master agama,  yang terdiri dari Entry, Edit dan Delete record.  Pertama bikin  file model  yang kita beri nama m_master_agama.php  dan save di folder application\models.


Dalam script m_master_agama.php ini ada dua function, yang pertama  function get_tbl_agama()  untuk mengambil seluruh data master agama.  Yang kedua function get_rec_agama($rec)  untuk mengambil  satu record  berdasarkan key search $rec

m_master_agama.php:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * @author sakahayang.com
 * @copyright December 2011
 */

Class M_master_agama extends CI_Model {
    function __construct()
    {
        parent::__construct();
    }
  
    function get_tbl_agama(){
          $data_agama = $this->db->query("SELECT * FROM `mst_agama` ORDER BY `id`");
          return $data_agama;
    }
  
    function get_rec_agama($rec){
          $data_agama = $this->db->query("SELECT * FROM `mst_agama` WHERE `id`='$rec' ");
          return $data_agama;
    }
  
 }
 ?>
Dalam folder applications\views  bikin file v_tbl_agama.php  yang berfungsi menampilkan seluruh isi tabel master agama. dimana dalam file view ini ada link  untuk entry, edit dan delete record.  Tampilannya seperti terlihat dalam gambar berikut.


v_tbl_agama.php:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * @author sakahayang.com
 * @copyright December 2011
 */

echo '<h2>Data Master Agama</h2>';

$tmpl = array ( 'table_open'  => '<table border="0" cellpadding="5" cellspacing="5" class="mytable1">' );
$this->table->set_template($tmpl);

$link_insert = '<a href="' . base_url(). 'index.php/master_agama/form_agama/insert/0" >'. img('images/b_insrow.png') . '</a>';
$link_xls    = img('images/b_excel.jpg');
$link_prn    = img('images/b_print.png');

$this->table->set_heading( $link_insert, $link_xls, $link_prn );
echo $this->table->generate();

$tmpl = array ( 'table_open'  => '<table border="1" cellpadding="2" cellspacing="1" class="mytable2">' );
$this->table->set_template($tmpl);

$this->table->set_heading('NO', 'AGAMA', 'EDIT', 'DELETE');
$no = 0;

foreach($query->result() as $row){
    $no++;
    $link_edit = '<center><a href="' . base_url(). 'index.php/master_agama/form_agama/edit/'. $row->id.'">' . img ( 'images/b_edit.png' ) . '</a></center>' ;
    $link_del  = '<center><a href="' . base_url(). 'index.php/master_agama/form_agama/delete/'. $row->id.'">' . img ( 'images/b_drop.png' ) . '</a></center>' ;
  
    $this->table->add_row($no, $row->agama, $link_edit, $link_del );
};

echo $this->table->generate();

?>
Satu lagi file view v_frm_agama.php  adalah script untuk form  data entry, edit  dan konfirmasi delete. Tampilan form Entry, Edit dan Delete record tampak seperti berikut:


v_frm_agama.php:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * @author sakahayang.com
 * @copyright December 2011
 */

switch ($event) {
    case 'insert' :
                echo '<h2>Entry Data Master Agama</h2>';
                $action = base_url() .  'index.php/master_agama/insert';
                $button_val = 'Save';
                break;
    case 'edit' :
                echo '<h2>Edit Data Master Agama</h2>';
                $action = base_url() .  'index.php/master_agama/update';
                $button_val = 'Update';
                break;
    case 'delete' :
                echo '<h2>Delete Data Master Agama</h2>';
                $action = base_url() .  'index.php/master_agama/delete';
                $button_val = 'Delete';
                break;
}

?>

<form action="<?php echo $action?>" method="post">
Agama : <input  type="text" name="agama" value="<?php echo $agama?>" size="20"/>
<p>
<input type="submit" value="<?php echo $button_val?>" />
<input type="button" value="Cancel" onclick="location.href='<?php echo base_url();?>index.php/master_agama'" />

<?php
    if ($id>0){
        echo '<input type="hidden" name="id" value="'. $id .'"/>';
    }
?>

</form>
Sekarang kita buat file controller  master_agama.php save di folder application\controllers  yang berfungsi untuk mengontrol event  Entry, Edit dan Delete record. 

master_agama.php:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * @author sakahayang.com
 * @copyright December 2011
 */

class Master_Agama extends CI_Controller {
  
    function index()
    { 
        // load model tabel agama
        $this->load->model('m_master_agama','',true);
      
        $data['query'] = $this->m_master_agama->get_tbl_agama();
      
        $this->load->view('_header');
        $this->load->view('v_tbl_agama', $data);
        $this->load->view('_footer');
    }
  
    function form_agama($event, $record){
        if ($event=='insert'){
            $data['id'] = $record;
            $data['agama']  = '';
        } else {
            // load model tabel agama
            $this->load->model('m_master_agama','',true);
      
            $result = $this->m_master_agama->get_rec_agama($record);
            foreach ($result->result() as $row ){
                $data['id']    =  $row->id;
                $data['agama'] =  $row->agama;
            }
        }
        $data['event'] = $event;
        $this->load->view('_header');
        $this->load->view('v_frm_agama', $data);
        $this->load->view('_footer');
    }
  
    function insert(){
        $session = $this->M_session->get_session();
        if (!$session['session_userid']){
            redirect(base_url());
        }
      
        $data = $_POST;
        $data['date_entry'] = date('Y-m-d H:i:s') ;
        $data['user_entry'] = $session['session_userid'];
        $this->db->insert('mst_agama', $data );
        redirect('master_agama');
    }
  
    function update(){
        $session = $this->M_session->get_session();
        if (!$session['session_userid']){
            redirect(base_url());
        }
        $data = $_POST;
        $data['last_update'] = date('Y-m-d H:i:s') ;
        $data['user_update'] = $session['session_userid'];
      
        $this->db->where('id', $_POST['id']);
        $this->db->update('mst_agama', $data );
        redirect('master_agama');
    }
  
    function delete(){
        $session = $this->M_session->get_session();
        if (!$session['session_userid']){
            redirect(base_url());
        }
      
        $id =  $_POST['id'];
        $this->db->delete('mst_agama', array('id' => $id));
        redirect('master_agama');
    }

 }

 ?>

 Sampai disini selesai sudah untuk Data Master Agama.  Demonya bisa dilihat di sini,   

 Userid : admin
Password: adminjuga


WP Sebelumnya WP Selanjutnya


ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِين

Jika sobat menyukai artikel atau tutorial di blog ini, Silahkan ketik email di sini untuk berlangganan GRATIS via EMAIL , dengan begitu sobat akan mendapatkan kiriman artikel atau tutorial setiap ada yang terbit di Sakahayang Dot Com :


Delivered by FeedBurner



Artikel Terkait:



6 comments

Rama888 Desember 2011 15.25

wahhh masih belom ngerti yg beginian sob,, masih perlu banyak belajar,, hehhe,, makasih atas penjelasannya,, :)

Reply
Berbagi Kreativitas9 Desember 2011 00.08

Main Mysql asik untuk penyimpanan database karna kualitas penyimpanannya yang cukup besar beda kalo untuk Acces kapasitas penyimpanan datanya lebih kecil, kalo buat website sendiri Ala PHP, APL PHP dan lain-lain. Untuk tahab Maintenance jauh lebih mudah ala mayapun bisa..hehe ini cocok banget digunakan. SQL server juga lebih ok.. :D
Kedepan ditunggu website ala PHP saya ya? Masih dalam tahap rencana. Nice post pak.. :)

Reply
zhaynuddin9 Desember 2011 03.29

hahaha kayaknya perlu di pahami nihhh

Reply
Kang Asep9 Desember 2011 09.09

@Rama88 & zhaynuddin, hehehe ini untuk web programmer sob,,,

@Berbagi Kreativitas, benar seperti yg sobat katakan. mySQL kualitasnya sangat baik,, dewasa ini sebagian besar website menggunakan database mySQL karena ketangguhan dan open source-nya. Ini yang menyebabkan sangat diminati banyak orang.

Reply
Anonim 1 Januari 2013 08.09

Maaf kang, yg ini ngga ada downloadtanya ya ????
Please buat link downloadtannya dong

Reply
Anonim 1 Januari 2013 08.10

downloadtannya mana kang

Reply
[[- Click Untuk Buka Form Komentar Klasik-Nya -]]

colored comment

[[ DOFOLLOW BLOG!!! Jangan Berkomentar SPAM... ]]
Dimohon jangan menulis LINK, kalau maksud sobat menunjukkan alamat blog anda pilih Name/URL pada option profile:
Bila ada LINK / URL akan saya HAPUS !!!


MAAF, TIDAK MENERIMA COMMENT TUKANG OBAT !!!

left

NuEnggal

NuKomen

Sobat Sakahayang

Sakahayang's Statistic



Check Google Page Rank


..

Ingin meningkatkan traffic pengunjung dan popularity blog anda secara cepat dan tak terbatas? Serahkan pada saya, saya akan melakukannya untuk anda Gratis!! klik DISINI-1 dan DISINI-2