Jumat, 15 Juni 2012

Menghapus index.php di CodeIgniter

Sebelum sholat jum'at, gue mau posting dulu nih biar dapet pahala #amin
Di postingan-postingan gue tentang codeigniter kan url-nya masih panjang-panjang tuh, nah sekarang mau gue pendekin.
Cara mendekinnya kita isi base_url nya (alamat website/home), terus kita hapus index.php setelah itu buat file .htaccess
Langkah pertama
Buka file config.php (CodeIgniter_2.1.0\application\config\config.php)
Isi base_url nya di baris 17 ==> $config['base_url'] = 'http://localhost/CodeIgniter_2.1.0/'; //CodeIgniter_2.1.0 namanya bisa dirubah sesuai yang kalian inginkan, tetapi harus dirubah juga nama foldernya

Langkah kedua
Masih di file yang sama, hapus index.php pada baris 29 lalu simpan

Langkah ketiga
Buka file autoload.php (CodeIgniter_2.1.0\application\config\autoload.php)
Pada baris 67, isi array yang kosong dengan 'url' (ketik juga tanda petik tunggalnya) lalu simpan

Langkah keempat
Buka notepad lalu ketikan coding ini

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [L]


Simpan pada directory root (htdocs\CodeIgniter_2.1.0) dengan nama .htaccess

Keterangan

  • RewriteEngine on = mengaktifkan RewriteEngine
  • RewriteCond %{REQUEST_FILENAME} !-f = apakah file (-f) yang diminta pada url tidak (!) eksis
  • RewriteCond %{REQUEST_FILENAME} !-d = apakah direktori (-d) yang diminta pada url tidak (!) eksis
  • RewriteRule .* index.php/$1 [L] = Bila kedua kondisi di atas (RewriteCond) terpenuhi maka terapkan aturan ini. Kita minta tolong sama apache agar menyisipkan kata index.php sebelum URI terakhir
Selengkapnya...

Senin, 11 Juni 2012

Menggunakan Form Validation Di CodeIgniter

Apa sih form validation itu?
Dari namanya aja udah jelas, Form = Formulir, Validation = validasi, yaitu berguna untuk mem-validasi suatu formulir sebelum dikirimkan ke sisi server.
Jadi sebelum dikirim ke server formulir akan dicek terlebih dahulu, apakah sudah sesuai aturan yang telah ditetapkan atau tidak.
Oke langsung aja prakteknya.
Pertama buat file view-nya dengan nama form.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bog Willy - Form Validation</title>
<style>
.warning {
color: red; font-size: 11px;
}
</style>
</head>
<body>
<h1>Form Validation pada CodeIgniter</h1>
<form action="http://localhost/CodeIgniter_2.1.0/index.php/form_validasi" method="post">
<table border="1" cellpadding="0" cellspacing="0" width="600">
<tr>
<td width="150">Username</td>
<td><input type="text" size="20" name="username" value="<?=set_value('username');?>"></td>
<td width="300"><span class="warning"><?=form_error('username');?></span></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size="20" name="password" value="<?=set_value('password');?>"></td>
<td><span class="warning"><?=form_error('password');?></span></td>
</tr>
<tr>
<td>Confirm Password</td>
<td><input type="password" size="20" name="confpass" value="<?=set_value('confpass');?>"></td>
<td><span class="warning"><?=form_error('confpass');?></span></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" size="20" name="email" value="<?=set_value('email');?>"></td>
<td><span class="warning"><?=form_error('email');?></span></td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><td>&nbsp;</td><tr>
</table>
</form>
<br />
<?php
if ($query != NULL) {
echo $query;
}
?>
</body>
</html>


Lalu buat file controller-nya dengan nama form_validasi.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Form_validasi extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('form_validation');
}

function index()
{
$data['query'] = NULL;
$validation = $this->form_validation;
$validation->set_rules('username','Username','required|min_length[5]|max_length[12]|xss_clean');
$validation->set_rules('password','Password','required|min_length[5]|xss_clean');
$validation->set_rules('confpass','Confirm Password','required|matches[password]|xss_clean');
$validation->set_rules('email','Email','required|valid_email|xss_clean');
if ($validation->run() == TRUE) {
$data['query'] = "Username = ".$validation->set_value('username')."<br>Password = ".$validation->set_value('password')."<br>Email = ".$validation->set_value('email');
header("location: http://localhost/CodeIgniter_2.1.0/index.php/form_validasi");
}
$this->load->view('form', $data);
}

}

/* End of file form_validasi.php */
/* Location: ./application/controllers/form_validasi.php */


Selesai, sekarang tinggal dijalanin di browser http://localhost/CodeIgniter_2.1.0/form_validasi

Keterangan:

  • required = wajib diisi
  • min_length[5] = minimal panjang karakter 5
  • max_length[12] = maximal panjang karakter 12
  • xss_clean = untuk mem-filter xss
  • matches[password] = untuk mencocokan value password dengan conform password
  • valid_email = untuk mem-validasi penulisan format email
Selengkapnya...

Selasa, 05 Juni 2012

Menambah dan menampilkan data pada CodeIgniter

Udah terlalu lama banget gue ga ngeposting lagi, jadi kangen mau sharing ilmu lagi.
Oke kali ini seperti biasa, gue mau berbagi ilmu sederhana atau bisa dibilang sangat sederhana.
Soalnya dari judulnya aja cuma nambahin & nampilin data, jadi udah pada bisalah pastinya :)
Eiitt.. tapi kali ini gue mau buatnya di CodeIgniter :D
Buat yang belum tau CodeIgniter itu apa, silahkan cari tau di mbah dukun google, tapi gue yakin kalian udah pasti tau lah :))
Pertama kita set dulu file database.php supaya database & tabel yang udah kita buat bisa terkoneksi.
Kalau di php biasa kan begini: Buat konek ke mysql = mysql_connect("localhost","root","");
Pilih tabel yang akan dikoneksikan = mysql_select_db("nama_database");
Akan tetapi kalau di CodeIgniter pengaturannya ada di CodeIgniter_2.1.0\application\config\database.php
Lebih jelasnya liat di sini
Setelah itu jangan lupa untuk di-load file database.php nya, soalnya klo ga di-load ga akan jalan aplikasi yang berhubungan dengan database.
Cara nge-load-nya buka file autoload.php yang ada di CodeIgniter_2.1.0\application\config Pada line 55 ketikan 'database' di dalam array, lalu save.
Setelah itu bikin database-nya

CREATE TABLE IF NOT EXISTS `datapegawai` (
`nip` int(4) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`kelamin` varchar(10) NOT NULL,
PRIMARY KEY (`nip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Kalau udah, buat suatu model di dalam direktori CodeIgniter_2.1.0\application\models

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

class M_karyawan extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function get_data_karyawan()
    {
        $query = $this->db->get('datapegawai'); //ini artinya "SELECT * FROM datapegawai"
        return $query->result_array();
    }

}

/* End of file m_karyawan.php */
/* Location: ./application/models/m_karyawan.php */


Simpan dengan nama m_karyawan.php
Abis itu bikin view atau tampilannya di CodeIgniter_2.1.0\application\views

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Belajar</title>
</head>
<body>
<h1>Blog Willy</h1>
<form action="http://localhost/CodeIgniter_2.1.0/index.php/karyawan/insertkaryawan" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td>Nama Karyawan</td>
<td><input type="text" size="20" name="nama"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" size="20" name="email"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<select name="kelamin">
<option value="Laki-laki">Laki-laki</option>
<option value="Perempuan">Perempuan</option>
</select>
</td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><tr>
</table>
</form>
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" width="500">
<th>NIK</th>
<th>Nama Karyawan</th>
<th>Email</th>
<th>Jenis Kelamin</th>
<?php
foreach ($karyawan as $row) {
?>
<tr>
<td><?=$row['nip'];?></td>
<td><?=$row['nama'];?></td>
<td><?=$row['email'];?></td>
<td><?=$row['kelamin'];?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>


Simpan dengan nama list_karyawan.php

Namanya juga MVC (Model, View, Controller) abis dibikin model & view maka harus dibikin juga controller-nya

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

class Karyawan extends CI_Controller {

function __construct()
{
parent::__construct();
$this->load->model('m_karyawan');
}

function index()
{
$this->listkaryawan();
}

function listkaryawan()
{
$data['karyawan'] = $this->m_karyawan->get_data_karyawan(); //panggil fungsi get_data_karyawan() yg ada di model m_karyawan
$this->load->view('list_karyawan', $data);
}

function insertkaryawan()
{
if ($this->input->post('nama') == '') {
echo "<script type=\"text/javascript\">alert('Nama harus diisi.');
 window.location = \"http://localhost/CodeIgniter_2.1.0/index.php/karyawan\"</script>";
}
else if ($this->input->post('email') == '') {
echo "<script type=\"text/javascript\">alert('Email harus diisi.');
 window.location = \"http://localhost/CodeIgniter_2.1.0/index.php/karyawan\"</script>";
}
else {
$data_karyawan = array(
'nama' => $this->input->post('nama'),
'email' => $this->input->post('email'),
'kelamin' => $this->input->post('kelamin')
);
$insert = $this->db->insert('datapegawai', $data_karyawan);

if ($insert) {
header("location: http://localhost/CodeIgniter_2.1.0/index.php/karyawan");
}
}
}

}

/* End of file karyawan.php */
/* Location: ./application/controllers/karyawan.php */


Simpan dengan nama karyawan.php lalu simpan di CodeIgniter_2.1.0\application\controllers

Selesai deh, klo mau jalanin tinggal ketikan alamat ini di browser http://localhost/CodeIgniter_2.1.0/index.php/karyawan

Keterangan:

  • Model klo menurut gue adalah sesuatu yang berhubungan dengan query.
  • View klo menurut gue adalah sebuah hasil proses dari controller yang datanya ditampilan di view.
  • Controller klo menurut gue adalah sebuah class yang didalamnya terdapat banyak fungsi yang dimasing-masing fungsi terdapat proses.
  • Untuk semua file yang dibuat di Controller dan Model, nama filenya harus sama dengan nama class (nama class-nya diawali dengan huruf besar)
Selengkapnya...