Saturday, September 19, 2015

Belajar CodeIgniter (bagian: form validation (2))

Dalam menerapkan form validation, kita akan menggunakan form pendaftaran yang telah kita buat pada bagian helper.
Pada bagian controlle, modifikasi function index menjadi:

public function index(){
 $fields=array('nama_mhs','anak_urutan','jumlah_saudara','tempat_lahir','tanggal_lahir','bulan_lahir','tahun_lahir','warga_negara','agama','nama_sma','alamat_sma','prov_sma','jur_sma','nilai_uan','no_telp_mhs','nama_ortu','alamat_ortu','prov_ortu','krj_ayah','krj_ibu','ket_ayah','ket_ibu','alamat_mlg','prov_alamat','no_telp_ortu');
  $data = array();
  foreach ($fields as $field){
      $data[$field] = '';
 }
$this->load->helper('form');
$this->load->view('form_register',$data);
}

Juga kita modifikasi function send menjadi: 

public function send(){
$this->load->helper('form');

        $this->load->library('form_validation');
$this->form_validation->set_rules('nama_mhs', 'Nama Mahasiswa', 'required');
$this->form_validation->set_rules('tempat_lahir', 'Tempat Lahir', 'required');
$this->form_validation->set_rules('tanggal_lahir', 'Tanggl Lahir', 'required');
$this->form_validation->set_rules('bulan_lahir', 'Bulan Lahir', 'required');
$this->form_validation->set_rules('tahun_lahir', 'Tahun Lahir', 'required');
$this->form_validation->set_rules('nama_sma', 'Nama SMA Asal', 'required');
$this->form_validation->set_rules('alamat_sma', 'Alamat SMA Asal', 'required');
$this->form_validation->set_rules('jur_sma', 'Jurusan SMA', 'required');
$this->form_validation->set_rules('nilai_uan', 'Nilai UAN', 'required');
$this->form_validation->set_rules('no_telp_mhs', 'No Telp/HP Mahasiswa', 'required');
$this->form_validation->set_rules('nama_ortu', 'Nama Orang Tua/Wali', 'required');
$this->form_validation->set_rules('alamat_ortu', 'Alamat Orang Tua/Wali', 'required');
if ($this->form_validation->run() == FALSE){
$fields=array('nama_mhs','anak_urutan','jumlah_saudara','tempat_lahir','tanggal_lahir','bulan_lahir','tahun_lahir','warga_negara','agama','nama_sma','alamat_sma','prov_sma','jur_sma','nilai_uan','no_telp_mhs','nama_ortu','alamat_ortu','prov_ortu','krj_ayah','krj_ibu','ket_ayah','ket_ibu','alamat_mlg','prov_alamat','no_telp_ortu');
$data = array();
foreach ($fields as $field){
$data[$field] = $this->input->post($field); }
$this->load->view('form_register',$data);
}
else{
$data = array();
$data['tabel_mhs'] = array(
     array('Nama',$this->input->post('nama_mhs')),
array('Jenis Kelamin',$this->input->post('jenis_kelamin'),'Anak ke',$this->input->post('anak_urutan'),'Jumlah Saudara',$this->input->post('jumlah_saudara')),            array('Tempat/Tanggal Lahir',($this->input->post('tempat_lahir')).'/'.
   ($this->input->post('tanggal_lahir')).' '.($this->input->post('bulan_lahir')).' '.($this->input->post('tahun_lahir'))),
array('Warga Negara',$this->input->post('warga_negara'),'Agama',$this->input->post('agama')),
array('SMA/SMK Asal',$this->input->post('nama_sma')),
array('Alamat SMA/SMK',$this->input->post('alamat_sma')),
array('Provinsi SMA/SMK',$this->input->post('prov_sma')),
array('Jurusan di SMA/SMK',$this->input->post('jur_sma'),'Total Nilai UAN',$this->input->post('nilai_uan')),
array('No. Telp/HP',$this->input->post('no_telp_mhs'))
 );
$data['tabel_ortu'] = array(
array('Nama Orang Tua/Wali',$this->input->post('nama_ortu')), array('Alamat Orang Tua/Wali',$this->input->post('alamat_ortu')), array('Kota Provinsi',$this->input->post('prov_ortu')),
array('Pekerjaan Ayah',$this->input->post('krj_ayah'),'Pekerjaan Ibu',$this->input->post('krj_ibu')),
array('Keterangan Pekerjaan Ayah',$this->input->post('ket_ayah')), array('Keterangan Pekerjaan Ibu',$this->input->post('ket_ibu')), array('Alamat di Malang',$this->input->post('alamat_mlg')), array('Provinsi',$this->input->post('prov_alamat')),
array('No. Telp/HP:',$this->input->post('no_telp_ortu'))
);
$this->load->view('form_view',$data);
}
}


Keterangan:

1. Pada function index, kita memberikan nilai inisiasi pada variabel-variabel di form dengan nilai '' (kosong).
2. Pada function send, kita menerapkan rules-rules. Perlu diperhatikan if ($this->form_validation->run() == FALSE) menunjukkan apabila terjadi kesalahan form, dia akan membuka kembali form_register.php, hanya saja kali ini akan diberikan juga nilai yang sudah diisi oleh user sebelumnya.


Pada bagian view, kita cukup menambahkan echo validation_errors(); serta memastika setiap variabel diberi nilai yang sudah diberikan oleh controller. Contoh implementasi: echo form_input('nama_mhs',$nama_mhs);

Belajar CodeIgniter (bagian: form validation (1))

Setelah sebelumnya kita mempelajari cara membuat form dengan form_helper, sekarang kita akan mempelajari library form_validation.

Seperti halnya menggunakan form_helper, kita juga memerlukan controller dan view.
Pada bagian controller, kita dapat menambahkan syntax 
$this->load->library('form_validation'); untuk memanggil library form_validation.

Selain itu, kita juga dapat mengeset rules variabel-variabel pada form. Contoh penggunaannya adalah: 
$this->form_validation->set_rules('username', 'Username', 'required'); Di mana variabel pertama adalah nama variabel yang akan diberi rule, variabel kedua adalah nama yang akan ditampilkan pada error messages, dan variabel ketiga adalah peraturan-peraturan yang diberikan.

Pada bagian controller kita juga menambahkan $this->form_validation->run(), guna mengecek apakah form sudah diisi dengan benar atau tidak.

Sementara pada bagian view, kita menambahkan echo validation_errors(); untuk menampilkan pesan error apabila terjadi kesalahan pengisian form.

Pada bagian selanjutnya kita akan belajar menerapkan form_validation.

Monday, September 14, 2015

Belajar CodeIgniter (bagian: helpers(2))

Jika pada bagian sebelumnya kita belajar dasar-dasar form helper, maka sekarang kita akan belajar bagaimana mendapatkan variabel dan mem-passingnya ke view.

Selain form_input(), kita juga akan menggunakan form_dropdown() dan form_radio().

Salin kode di bawah dan simpan sebagai controller dengan nama register.php

<?php
  class Register extends CI_Controller{
  public function index(){
  $this->load->helper('form');
  echo '<h2>Data Calon Mahasiswa</h2>';
  echo '<div align="left">';
  echo form_open('register/send');
  echo form_label('Nama: ','nama_mhs');
  echo form_input('nama_mhs','');
  echo '<br></br>';
  echo form_label('Jenis Kelamin: ','jk');
  echo form_radio('jenis_kelamin','laki-laki',TRUE);
  echo form_label('Laki-laki','laki-laki');
  echo form_radio('jenis_kelamin','perempuan',FALSE);
  echo form_label('Perempuan','perempuan');
  echo '<br></br>';
  echo form_label('Anak ke: ','anak_urutan');
  echo form_input('anak_urutan','');
  echo form_label('Jumlah Saudara: ','jumlah_saudara');
  echo form_input('jumlah_saudara','');
  echo '<br></br>';
  echo form_label('Tempat Lahir: ','tempat_lahir');
  echo form_input('tempat_lahir','');
  echo '<br></br>';
  echo form_label('Tanggal Lahir: ','tanggal_lahir');
  $tanggal = array(
'1' => '1','2' => '2','3' => '3',
'4' => '4','5' => '5','6' => '6',
'7' => '7','8' => '8','9' => '9',
'10' => '10','11' => '11','12' => '12',
'13' => '13','14' => '14','15' => '15',
'16' => '16','17' => '17','18' => '18',
'19' => '19','20' => '20','21' => '21',
'22' => '22','23' => '23','24' => '24',
'25' => '25','26' => '26','27' => '27',
'28' => '28','29' => '29','30' => '30',
'31' => '31'
);
   echo form_dropdown('tanggal_lahir', $tanggal, '1');
   $bulan = array(
    'Januari' => 'Januari',
'Februari' => 'Februari',
'Maret' => 'Maret',
'April' => 'April',
'Mei' => 'Mei',
'Juni' => 'Juni',
'Juli' => 'Juli',
'Agustus' => 'Agustus',
'September' => 'September',
'Oktober' => 'Oktober',
'November' => 'November',
'Desember' => 'Desember'
);
   echo form_dropdown('bulan_lahir', $bulan, 'Januari');    $tahun = array(
   '1990' => '1990', 
'1991' => '1991', 
'1992' => '1992', 
'1993' => '1993', 
'1994' => '1994', 
'1995' => '1995', 
'1996' => '1996', 
'1997' => '1997', 
'1998' => '1998', 
'1999' => '1999', 
'2000' => '2000', 
'2001' => '2001'
);
   echo form_dropdown('tahun_lahir', $tahun, '1990');
   echo '<br></br>';
   echo form_label('Warga Negara: ','wn');
   $warga_negara = array(
'Indonesia' => 'Indonesia',
'Asing' => 'Asing');
   echo form_dropdown('warga_negara',$warga_negara,'Indonesia');
   $agama = array(
'Islam' => 'Islam',
'Kristen' => 'Kristen',
'Katolik' => 'Katolik',
'Hindu' => 'Hindu',
'Budha' => 'Budha',
'Kong Hu Cu' => 'Kong Hu Cu');
   echo form_label('Agama: ', 'agama');
   echo form_dropdown('agama',$agama,'Islam');
   echo '<br></br>';
   echo form_label('Nama SMA/SMK: ','nama_sma');
   echo form_input('nama_sma','');
   echo '<br></br>';
   echo form_label('Alamat SMA/SMK: ','alamat_sma');
   echo form_input('alamat_sma','');
   echo '<br></br>';
   $provinsi = array(
'Nangroe Aceh Darussalam' => 'Nangroe Aceh Darussalam',
'Sumatera Utara' => 'Sumatera Utara',
'Riau' => 'Riau',
        'Kepulauan Riau' => 'Kepulauan Riau',
'Kepulauan Bangka Belitung' => 'Kepulauan Bangka Belitung',
'Sumatera Barat' => 'Sumatera Barat',
'Bengkulu' => 'Bengkulu',
'Jambi' => 'Jambi',
'Lampung' => 'Lampung',
'Sumatera Selatan' => 'Sumatera Selatan',
'DKI Jakarta' => 'DKI Jakarta',
'Jawa Barat' => 'Jawa Barat',
'Banten' => 'Banten',
'Jawa Tengah' => 'Jawa Tengah',
'DI Yogyakarta' => 'DI Yogyakarta',
'Jawa Timur' => 'Jawa Timur',
'Bali' => 'Bali',
'Nusa Tenggara Barat' => 'Nusa Tenggara Barat',
'Nusa Tenggara Timur' => 'Nusa Tenggara Timur',
'Kalimantan Barat' => 'Kalimantan Barat',
'Kalimantan Tengah' => 'Kalimantan Tengah',
'Kalimantan Selatan' => 'Kalimantan Selatan',
'Kalimantan Timur' => 'Kalimantan Timur',
'Kalimantan Utara' => 'Kalimantan Utara',
'Sulawesi Utara' => 'Sulawesi Utara',
'Sulawesi Barat' => 'Sulawesi Barat',
'Sulawesi Tengah' => 'Sulawesi Tengah',
'Sulawesi Tenggara' => 'Sulawesi Tenggara',
'Sulawesi Selatan' => 'Sulawesi Selatan',
'Gorontalo' => 'Gorontalo',
'Maluku' => 'Maluku',
'Maluku Utara' => 'Maluku Utara',
'Papua Barat' => 'Papua Barat',
'Papua' => 'Papua',
'Luar Neger' => 'Luar Negeri'
);
   echo form_label('Provinsi SMA/SMK: ', 'prov_sma');
   echo form_dropdown('prov_sma',$provinsi,'Nangroe Aceh                    Darussalam');
   echo '<br></br>';
   echo form_label('Jurusan di SMA/SMK: ', 'jur_sma');
   echo form_input('jur_sma','');
   echo form_label('Total Nilai UAN: ', 'nilai_uan');
   echo form_input('nilai_uan','');
   echo '<br></br>';
   echo form_label('No. Telp/HP: ','no_telp_mhs');
   echo form_input('no_telp_mhs','');
   echo '<br></br>';
   echo '<br></br>';
   echo '<h2>Data Orang Tua</h2>';
   echo form_label('Nama Orang Tua/Wali: ','nama_ortu');
   echo form_input('nama_ortu','');
   echo '<br></br>';
   echo form_label('Alamat Orang Tua/Wali: ','alamat_ortu');
   echo form_input('alamat_ortu','');
   echo '<br></br>';
   echo form_label('Provinsi: ', 'prov_ortu');
   echo form_dropdown('prov_ortu',$provinsi,'Nangroe Aceh                  Darussalam');
   echo '<br></br>';
   $pekerjaan = array(
'Pegawai Negeri Sipil' => 'Pegawai Negeri Sipil',
'Pegawai Swasta' => 'Pegawai Swasta',
'TNI/POLRI' => 'TNI/POLRI',
'Lainnya' => 'Lainnya');
   echo form_label('Pekerjaan Ayah: ','krj_ayah');
   echo form_dropdown('krj_ayah',$pekerjaan,'Pegawai Negeri Sipil');
   echo form_label('Pekerjaan Ibu: ','krj_ibu');
   echo form_dropdown('krj_ibu',$pekerjaan,'Pegawai Negeri Sipil');    echo '<br></br>';
   echo form_label('Keterangan Pekerjaan Ayah: ','ket_ayah');
   echo form_input('ket_ayah','');
   echo '<br></br>';
   echo form_label('Keterangan Pekerjaan Ibu: ','ket_ibu');
   echo form_input('ket_ibu','');
   echo '<br></br>';
   echo form_label('Alamat di Malang: ','alamat_mlg');
   echo form_input('alamat_mlg','');
   echo '<br></br>';
   echo form_label('Provinsi: ', 'prov_alamat');
   echo form_dropdown('prov_alamat',$provinsi,'Jawa Timur');
   echo form_label('No. Telp/HP: ','no_telp_ortu');
   echo form_input('no_telp_ortu','');
   echo '<br></br>';
   echo form_submit('register_mhs', 'Daftar');
   echo form_close();
   echo '</div>';
}
public function send(){
  $data = array();
  $data['tabel_mhs'] = array(
      array('Nama',$this->input->post('nama_mhs')),
      array('Jenis Kelamin',$this->input->post('jenis_kelamin'),
  'Anak ke',$this->input->post('anak_urutan'),'Jumlah                   Saudara',$this->input->post('jumlah_saudara')),
      array('Tempat/Tanggal Lahir',($this->input-                        >post('tempat_lahir')).'/'.
  ($this->input->post('tanggal_lahir')).' '.($this->input- >post('bulan_lahir')).' '.($this->input->post('tahun_lahir'))),
      array('Warga Negara',$this->input->post('warga_negara'),'Agama',$this->input->post('agama')),
      array('SMA/SMK Asal',$this->input->post('nama_sma')),
      array('Alamat SMA/SMK',$this->input->post('alamat_sma')),
      array('Provinsi SMA/SMK',$this->input->post('prov_sma')),
      array('Jurusan di SMA/SMK',$this->input->post('jur_sma'),'Total Nilai UAN',$this->input->post('nilai_uan')),
      array('No. Telp/HP',$this->input->post('no_telp_mhs'))
      );
$data['tabel_ortu'] = array(
      array('Nama Orang Tua/Wali',$this->input->post('nama_ortu')),
      array('Alamat Orang Tua/Wali',$this->input->post('alamat_ortu')),
      array('Kota Provinsi',$this->input->post('prov_ortu')),
      array('Pekerjaan Ayah',$this->input->post('krj_ayah'),'Pekerjaan Ibu',$this->input->post('krj_ibu')),
      array('Keterangan Pekerjaan Ayah',$this->input->post('ket_ayah')),
      array('Keterangan Pekerjaan Ibu',$this->input->post('ket_ibu')),
      array('Alamat di Malang',$this->input->post('alamat_mlg')),
      array('Provinsi',$this->input->post('prov_alamat')),
      array('No. Telp/HP:',$this->input->post('no_telp_ortu'))
      );
    $this->load->view('form_view',$data);
  }
}
?>

Keterangan

A. Pada function index
1. echo form_radio('jenis_kelamin','laki-laki',TRUE);
   echo form_radio('jenis_kelamin','perempuan',FALSE);
   Bagian kode ini adalah untuk membuat radio button. variabel pertama adalah nama variabel radio button itu sendiri. Variabel kedua adalah value radio button. Variabel ketiga adalah state(kondisi) apakah radio button itu dipilih atau tidak. Perlu diingat, bahwa untuk membuat radio button, nama radio button haruslah sama.

2. $tanggal = array('1' => '1',....
   echo form_dropdown('tanggal_lahir', $tanggal, '1');
   Bagian kode ini adalah membuat menu dropdown. Di dalam membuat dropdown di CodeIgniter, kita memerlukan array. Array ini bisa dideklarasikan terlebih dahulu atau bersamaan dengan deklarasi drowpdown. '1' => '1' maksudnya adalah variabel yang di depan adalah value dari array sementara yang kedua adalah value yang akan ditampilkan. Pada deklarasi dropdown, variabel pertama adalah nama variabel dropdown itu sendiri, variabel kedua adalah array yang akan ditampilkan, dan yang ke-tiga adalah default dari dropdown yang ditampilkan.

3. echo form_submit('register_mhs', 'Daftar');
   Bagian kode ini adalah untuk membuat tombol yang jika ditekan akan men-submit form. variabel pertama adalah nama variabel tombol sedangkan variabel kedua adalah nama yang akan ditampilkan.

B. Pada function send
 Function ini adalah function yang ditampilkan saat form di-submit.
 $this->input->post('nama_mhs')
 Bagian kode ini adalah mendapatkan value dari variabel dari 'nama_mhs'.


Jika sudah membuat controller, salin kode di bawah dan simpan dengan nama form_view.php

<!DOCTYPE html>
<html>
 <head>
  <title>Data Calon Mahasiswa</title>
 </head>
 <body>
   <h2>Data Calon Mahasiswa</h2>
   <table border = "1">
   <?php
foreach ($tabel_mhs as $row){
echo '<tr>';
$col_length = count($row);
 for($col = 0; $col<$col_length; $col++){
 echo '<td>'.$row[$col].'</td>';
 }
echo '</tr>';
}
   ?>
   </table>
   <br></br>
   <h2>Data Orang Tua</h2>
   <table border = "1">
   <?php
foreach ($tabel_ortu as $row){
echo '<tr>';
$col_length = count($row);
     for($col = 0; $col<$col_length; $col++){
  echo '<td>'.$row[$col].'</td>';
  }
echo '</tr>';
}
    ?>
    </table>
   </body>
</html>


Itulah contoh implementasi dari form helper. Untuk fungsi-fungsi form helper yang lainnya dapat dilihat pada user_guide.

Sunday, September 13, 2015

Belajar CodeIgniter (bagian: helpers(1))

Setelah kita belajar controller dan view, sekarang kita akan belajar tentang helper. Di dalam CodeIgniter terdapat helper yang berfungsi seperti library pada CI.

Kali ini kita akan belajar tentang form helper. Jika di dalam membuat form dengan metode biasa, kita memerlukan tag-tag untuk form, maka kita dapat memanggil form tersebut dengan mudah.

Pertama-tama buat controller baru dengan nama form.php. Kemudian salin kode di bawah:

        <?php
        class Register extends CI_Controller{

public function index(){

$this->load->helper('form');

                echo form_open('form/send');

                echo form_label('Name: ','name');
echo form_input('name','James Bond;');

                echo form_close();

                }
          }

          ?>


Keterangan:

1. $this->load->helper('form');
   Bagian kode ini adalah yang me-load helper bernama form dari library CodeIgniter. 

2. echo form_open('form/send');
   Bagian kode ini adalah untuk membuka form. variabel pertama (form) adalah nama controller sedangkan variabel kedua (send) adalah nama function dalam controller tersebut.

3. echo form_label('Name: ','name');
   Bagian ini adalah membuat label. Variabel pertama ('Name: ') adalah yang akan ditampilkan dalam laman. Sedang variabel 'name' adalah nama variabel label itu sendiri.

4. echo form_input('name','James Bond;');
   Bagian ini adalah membuat text input field. Berbanding terbalik dengan label, variabel pertama adalah nama variabel field input sedang variabel kedua adalah text dalam field. kita dapat men-set variabel kedua menjadi kosong dengan cara mengganti 'James Bond' menjadi ''.

5. echo form_close();
   Bagian ini adalah untuk menutup form.


Itulah perkenalan helper form. Pada bagian selanjutnya, kita akan belajar cara membuat contoh form pendaftaran mahasiswa baru, beserta bagaimana menampilkan data pada form ke dalam view.

Monday, September 7, 2015

Belajar CodeIgniter (bagian: Views)

Setelah sebelumnya kita mempelajari cara membuat controller pada CodeIgniter, sekarang kita akan belajar cara membuat views.

Kali ini kita akan mencoba membuat laman dengan tampilan yang mirip dengan ini:


Pertama, kita membuat controller terlebih dahulu. Salin kode dibawah ke dalam text editor dan beri nama dengan myview.php

<?php
class Myview extends CI_Controller {

public function index(){
$data = array();
$data['title'] = "Ini adalah title dinamis";
$data['heading'] = "Ini adalah heading dinamis :P";
$this->load->view('coba_view',$data);
}

public function coba_table($judul, $isi){
   $data = array();
   $data['title'] = $judul;
   $data['heading'] = $isi;
   $data['tables'] = array(
array(
          array("SEMESTER 1"),
  array("Kode MK", "Nama Mata Kuliah", "SKS", "Nilai", "Periode Ambil"),
  array('TI09KK11', 'KALKULUS', '4', 'B' , 'Genap 2013'),
  array('TI09KK13', 'PENGANTAR MANAJEMEN', '2', 'B+', 'Genap 2013'),
  array('TI09KK14', 'PENGANTAR TEKNOLOGI INFORMASI', '2', 'B+', 'Genap 2013'),
  array('TI09PK11', 'BAHASA INGGRIS I', '2', 'B', 'Genap 2013'),
  array('TI13KK12', 'ALGORITMA DAN STRUKTUR DATA I', '3', 'B+', 'Genap 2013'),
  array('TI14BB11', 'KECAKAPAN INTERPERSONAL', '2', 'A', 'Ganjil 2014'),
  array('TI14KK13', 'ALJABAR LINIER DAN MATRIKS', '3', 'A', 'Ganjil 2014')
),
array(
  array("SEMESTER 2"),
  array("Kode MK", "Nama Mata Kuliah", "SKS", "Nilai", "Periode Ambil"),
  array("TI09KB21", "BASIS DATA", "3", "C+", "Genap 2013"),
  array("TI09KB22", "PRAKTIKUM BASIS DATA","1","C+","Genap 2013"),
  array("TI09KK22","MATEMATIKA DISKRIT","3","C","Genap 2013"),
  array("TI13KK23","ALGORITMA DAN STRUKTUR DATA II","3","B+","Genap 2013"),
  array("TI14KB23","PEMROGRAMAN DASAR I","3","A","Genap 2014"),
  array("TI14KB24","PRAKTIKUM PEMROGRAMAN DASAR I","1","A","Genap 2014")
),
array(
  array("SEMESTER 3"),
  array("Kode MK", "Nama Mata Kuliah", "SKS", "Nilai", "Periode Ambil"),
  array("TI09KK31","STATISTIKA","3","C","Genap 2013"),
  array("TI09KK32","SISTEM INFORMASI MANAJEMEN","3","B+","Genap 2013"),
  array("TI09KK33","ORGANISASI DAN ARSITEKTUR KOMPUTER","3","B+","Genap 2013"),
  array("TI14KB31","SISTEM OPERASI","3","A","Ganjil 2014"),
  array("TI14KB32","PRAKTIKUM SISTEM OPERASI","1","A","Ganjil 2014"),
  array("TI14KB33","PEMROGRAMAN DASAR II","3","A","Ganjil 2014"),
  array("TI14KB34","PRAKTIKUM PEMROGRAMAN DASAR II","1","A","Ganjil 2014"),
  array("TI14KK32","LOGIKA INFORMATIKA","3","A","Ganjil 2014"),
  array("TI14KK33","BASIS DATA LANJUT","3","A","Ganjil 2014")
)
);
$this->load->view('coba_view',$data);
}


}
?>

Penjelasan:
1.  $data = array();
   $data['title'] = $judul;
   $data['heading'] = $isi;

   Bagian ini adalah deklarasi variable data. Variabel ini nantinya akan di-passing ke dalam views yang akan ditampilkan oleh controller. 'title' dan 'heading' adalah nama variabel yang akan diterima oleh view.

2. $data['table'] = array(.....

  Bagian ini adalah mengisikan variabel yang akan di-passing ke dalam view dengan nama table. Bentuknya array 3 dimensi. Dimensi ke-1 adalah jumlah tabel, sedangkan dimensi lainnya adalah baris dan kolom tabel.

3. $this->load->view('coba_view',$data);

  Ini adalah bagian terpenting dalam controller untuk menampilkan view. Perlu diingat bahwa nama views yang akan dipanggil harus sama. Sementara $data adalah parameter yang akan diberikan controller kepada views.


Setelah selesai membuat controller, sekarang buat file baru dengan menggunakan text editor. Salin kode di bawah kemudian simpan dengan nama file 'coba_view.php'. Tempat penyimpanannya adalah folder CodeIgniter -> applications -> views.


<!DOCTYPE html>

<html>
  <head>
  <title><?php echo $title; ?></title>
  </head>

  <body>
   <h2><?php echo $heading ?></h2>

   <br></br>

   <div align = "center">

<?php

          foreach ($tables as $table){
   echo '<table border = "1">';
   echo '<tr>';
   $length = count($table);
   echo '<th>'.$table[0][0].'</th>';
   echo '</tr>';
    for($row = 1; $row < $length; $row++){
     echo '<tr>';
      for($col = 0; $col < 5; $col++){
if($row == 1)
   echo '<th>'.$table[$row][$col].'</th>';
else
 echo '<td>'.$table[$row][$col].'</td>';
}
     echo '</tr>';
}

   echo '</table>';
   echo '<br></br>';
 }

?>

       </div>



</body>


</html>

Penjelasan:

1. <!DOCTYPE html>

   <html>

  Bagian ini mendeklarasikan untuk memulai sebuah baris kode html. html yang digunakan adalah html 5.

2. <head>
    <title><?php echo $title; ?></title>
   </head>

  Bagian ini adalah deklarasi bagian 'head' dari html. Dapat dilihat, bahwa title (judul halaman html) akan sesuai dengan variable title pada controller.

3. <body>
    <h2><?php echo $heading ?></h2>

    <br></br>

    <div align = "center">

  Bagian ini adalah bagian 'body' dari html. Heading (judul body) sesuai dengan variabel heading dari controller. <br> berfungsi untuk memberikan spasi sementara <div align = "center"> meletakkan posisi kursor di tengah halaman.

4. <?php

foreach ($tables as $table){
    echo '<table border = "1">';
 echo '<tr>';
 $length = count($table);
 echo '<th>'.$table[0][0].'</th>';
 echo '</tr>';
  for($row = 1; $row < $length; $row++){
   echo '<tr>';
    for($col = 0; $col < 5; $col++){
     if($row == 1)
      echo '<th>'.$table[$row][$col].'</th>';
     else
      echo '<td>'.$table[$row][$col].'</td>';
     }
   echo '</tr>';
}

  echo '</table>';
  echo '<br></br>';
  }

    ?>

  a. Kode foreach ($tables as $table) berfungsi untuk memecah multi-dimensi array tables menjadi bagian-bagian yang lebih kecil. Dalam hal ini menjadi array-array yang lainnya.

  b. Kode echo '<table border = "1">'; adalah perintah bagi php untuk menyusun kode html yang akan mendklerasikan tabel dengan border. Sementara echo '<tr>'; adalah deklarasi row (baris) dan  $length = count($table); adalah untuk menghitung besarnya sebuah tabel hasil pemecahan tables.

 c. Kode echo '<th>'.$table[0][0].'</th>'; ini akan memberi judul tabel itu. Kode <th> merupakan kode untuk heading sebuah tabel.

 d. Ingat, meskipun telah terpecah, sebuah tabel merupakan array 2-dimensi. Kode for($row = 1; $row < $length; $row++) akan melakukan oerulangan sebanyak 'length' baris pada tabel. Karena setiap tabel terdiri dari baris-baris maka diberi kode <tr>. Sedangkan  for($col = 0; $col < 5; $col++) akan berfungsi untuk melakukan perulangan per kolom. Kode  if($row == 1) akan mengecek apakah baris yang ditulis adalah baris pertama atau heading dari sebuah tabel. Jika tidak, maka akan dipecah per-data dengan kode  echo '<td>'.$table[$row][$col].'</td>'; di mana <td> adalah data-data dalam tabel.


Lalu, coba dijalankan dengan cara localhost/(folder CodeIgniter)/index.php/myview/coba_table/(parameter title)/(parameter heading)

Maka akan tampil laman seperti berikut:



Sekian dari belajar CodeIgniter bagian views. Untuk lebih detil tentang kode php dan html, dapat dibuka pada w3school.com atau sumber lainnya.

Tuesday, September 1, 2015

Belajar CodeIgniter (bagian: Controller)

CodeIgniter (CI) merupakan Software Development Kit (SDK) untuk membuat sebuah laman web. Untuk mendapatkannya bisa diunduh di sini.

Di sini, kita akan mencoba-coba mengkoding php dengan CI secara lokal. Tools yang diperlukan:
1. XAMPP (bisa diunduh di sini.)
2. CodeIgniter
3. Text editor, bisa notepad atau notepad++(bisa diunduh di sini.)

Selanjutnya CodeIgniter 'diinstall' dengan cara mengekstrak file *.zip ke folder htdocs pada xampp.

Controller

Controller merupakan bagian dari CodeIgniter yang berfungsi untuk mengkontrol laman web. Di sini kita akan mencoba untuk membuat controller yang dapat melakukan operasi penjumlahan, pengurangan, perkalian, maupun pembagian pada bilangan pecahan.

Buka text editor lalu salin kode di bawah:

<?php

class Hello extends CI_Controller{

public function index(){
echo "Halo, ini adalah index function.";
}
public function math($pembilang1, $penyebut1, $operator, $pembilang2, $penyebut2){
  if($operator == 'jumlah' || $operator == 'kurang'){
if($penyebut1 >= $penyebut2){
$temp1 = $penyebut1;
$temp2 = $penyebut1%$penyebut2;
}
else{
$temp1 = $penyebut2;
$temp2 = $penyebut2%$penyebut1; }
if($temp2 == 0){
$penyebut_arbiter = $temp1;
}
else{
$penyebut_arbiter = $penyebut1 * $penyebut2;
}
$pembilang1_temp = $pembilang1 * ($penyebut_arbiter/$penyebut1);
$pembilang2_temp = $pembilang2 * ($penyebut_arbiter/$penyebut2);
if($operator == 'jumlah'){
$pembilang_total = $pembilang1_temp + $pembilang2_temp;
$operasi = '+';
}
else{
$pembilang_total = $pembilang1_temp - $pembilang2_temp;
$operasi = '-';
}
echo "$pembilang1/$penyebut1 $operasi $pembilang2/$penyebut2 = $pembilang_total/$penyebut_arbiter";
}
else if($operator == 'kali' || $operator == 'bagi'){
$pembilang2_echo = $pembilang2;
$penyebut2_echo = $penyebut2;
if($operator == 'kali'){
$operasi = '*';
}
else{
$tmp = $pembilang2;
$pembilang2 = $penyebut2;
$penyebut2 = $tmp;
$operasi = '/';
}
if($pembilang1 >= $penyebut2){
$temp1 = $pembilang1%$penyebut2;
$faktor1 = $pembilang1/$penyebut2;
}
else{
$temp1 = $penyebut2%$pembilang1;
$faktor1 = $penyebut2/$pembilang1;
}
if($penyebut1 >= $pembilang2){
$temp2 = $penyebut1%$pembilang2;
$faktor2 = $penyebut1/$pembilang2;
}
else{
$temp2 = $pembilang2%$penyebut1;
$faktor2 = $pembilang2/$penyebut1;
}
if($temp1 == 0){
$pembilang1_tmp = $pembilang1/$faktor1;
$penyebut2_tmp = $penyebut2/$faktor1;
}
else{
$pembilang1_tmp = $pembilang1;
$penyebut2_tmp = $penyebut2;
}
if($temp2 == 0){
$pembilang2_tmp = $pembilang2/$faktor2;
$penyebut1_tmp = $penyebut1/$faktor2;
}
else{
$pembilang2_tmp = $pembilang2;
$penyebut1_tmp = $penyebut1;
}
$pembilang_hasil = $pembilang1_tmp * $pembilang2_tmp;
$penyebut_hasil = $penyebut1_tmp * $penyebut2_tmp;
echo "$pembilang1/$penyebut1 $operasi $pembilang2_echo/$penyebut2_echo = $pembilang_hasil/$penyebut_hasil";
}
else
echo "Operasi tidak dikenal.";
}

}

?>

Kemudian simpan file kalian sebagai Hello.php pada folder applications->controller di CodeIgniter.

Keterangan:

1, class Hello extends CI_Controller{

public function index(){
echo "Halo, ini adalah index function.";
}
  Bagian code di sini merupakan deklarasi file php. Perlu diingat, nama class haruslah huruf awal huruf kapital dan sesuai dengan nama file php. Sementara fungsi index merupakan fungsi default yang akan dipanggil oleh controller.

2. public function math($pembilang1, $penyebut1, $operator, $pembilang2, $penyebut2){

  Bagian code ini merupakan deklarasi function 'math' yang nanti dapat melakukan operasi aritmatika dasar pada bilangan pecahan. $pembilang1 dan $penyebut1 merupakan pembilang dan penyebut bilangan pertama. $operator merupakan parameter operasi yang akan dilakukan. $pembilang2 dan $penyebut2 merupakan pembilang dan penyebut bilangan kedua.

3. if($operator == 'jumlah' || $operator == 'kurang'){
  
  Bagian code ini akan mengecek apakah operasi yang akan dilakukan merupakan penjumlahan ataukah pengurangan.

4. if($penyebut1 >= $penyebut2){
$temp1 = $penyebut1;
$temp2 = $penyebut1%$penyebut2;
}
  else{
$temp1 = $penyebut2;
$temp2 = $penyebut2%$penyebut1;
}
   
   if($temp2 == 0){
$penyebut_arbiter = $temp1;
}
   else{
$penyebut_arbiter = $penyebut1 * $penyebut2;
}

   Bagian code ini akan menyamakan penyebut. Ingat, bahwa dalam penjumlahan maupun pengurangan perlu disamakan penyebutnya. pada if($penyebut1 >= $penyebut2), maka akan dicek apakah penyebut1 lebih besar atau sama dengan daripada penyebut2. Selanjutnya variabel temp1 akan meyimpan variable yang terbesar. Sementara temp2 akan menyimpan hasil modulus antara penyebut1 dengan penyebut2. Kemudian yang dilakukan else merupakan hal yang sebaliknya. Lalu pada if($temp2 == 0), akan mengecek apakah hasil modulus adalah 0. Jika iya, maka penyebut_arbiter (penyebut yang akan digunakan) adalah angka pada temp1. Jika tidak, maka akan mengkalikan penyebut1 dengan penyebut2.

5.  $pembilang1_temp = $pembilang1 * ($penyebut_arbiter/$penyebut1);
  $pembilang2_temp = $pembilang2 * ($penyebut_arbiter/$penyebut2);

  if($operator == 'jumlah'){
$pembilang_total = $pembilang1_temp + $pembilang2_temp;
$operasi = '+';
}
  else{
        $pembilang_total = $pembilang1_temp - $pembilang2_temp;
$operasi = '-';
}
  echo "$pembilang1/$penyebut1 $operasi $pembilang2/$penyebut2 = $pembilang_total/$penyebut_arbiter";

    Bagian code ini akan melakukan operasi. Sebelumnya, pembilang1_temp akan menyimpan pembilang1 yang baru setelah penyebut disamakan. Begitu pula pembilang2_temp. Selanjutnya if($operator == 'jumlah') akan mengecek apakah operasi yang dilakukan penjumlahan. pembilang_total merupakan hasil penjumlahan pembilang1_temp dan pembilang2_temp. Lalu else adalah melakukan fungsi pengurangan. echo "$pembilang1/$penyebut1 $operasi $pembilang2/$penyebut2 = $pembilang_total/$penyebut_arbiter"; merupakan bagian untuk menampilkan apa yang kita lakukan.

6. else if($operator == 'kali' || $operator == 'bagi'){

  Bagian code ini akan mengecek operasi perkalian atau pembagian.

7. $pembilang2_echo = $pembilang2;
   $penyebut2_echo = $penyebut2;

  Bagian code ini akan menyimpan pembilang2 dan penyebut2 untuk ditampilkan nanti.

8. if($operator == 'kali'){
$operasi = '*';
      }
   else{
$tmp = $pembilang2;
$pembilang2 = $penyebut2;
$penyebut2 = $tmp;
$operasi = '/';
}

   Bagian code ini akan mengecek apakah kita akan melakukan perkalian ataukah pembagian. Jika perkalian, maka tinggal mengubah operasi untuk ditampilkan dengan tanda '*'. Jika pembagian, maka operasi untuk ditampilkan adalah '/'. Juga perlu diingat, bahwa sesungguhnya operasi pembagian pada pecahan adalah operasi perkalian, hanya saja untuk bilangan kedua antara penyebut dengan pembilang ditukar tempatnya.

9. if($pembilang1 >= $penyebut2){
$temp1 = $pembilang1%$penyebut2;
$faktor1 = $pembilang1/$penyebut2;
}
   else{
$temp1 = $penyebut2%$pembilang1;
$faktor1 = $penyebut2/$pembilang1;
}

   if($penyebut1 >= $pembilang2){
$temp2 = $penyebut1%$pembilang2;
$faktor2 = $penyebut1/$pembilang2;
}
   else{
$temp2 = $pembilang2%$penyebut1;
$faktor2 = $pembilang2/$penyebut1;
}

   Pada bagian code ini, kita akan mengecek apakah pembilang dan penyebut pertama dapat dibagi dengan penyebut dan pembilang bilangan kedua. if($pembilang1 >= $penyebut2) akan mengecek apakah pembilang1 lebih besar daripada penyebut2. Selanjutnya temp1 akan menyimpan hasil modulus dan faktor1 akan menyimpan hasil pembagian antara pembilang1 dengan penyebut2. Kemudian if($penyebut1 >= $pembilang2) akan melakukan hal yang serupa dengan penyebut1 dengan pembilang2.

10. if($temp1 == 0){
$pembilang1_tmp = $pembilang1/$faktor1;
$penyebut2_tmp = $penyebut2/$faktor1;
}
    else{
$pembilang1_tmp = $pembilang1;
$penyebut2_tmp = $penyebut2;
}

    if($temp2 == 0){
$pembilang2_tmp = $pembilang2/$faktor2;
$penyebut1_tmp = $penyebut1/$faktor2;
}
    else{
$pembilang2_tmp = $pembilang2;
$penyebut1_tmp = $penyebut1;
}

  Jika bagian code sebelumnya kita mengecek apakah masing-masing pembilang dan penyebut pertama dapat dibagi oleh penyebut dan pembilang bilangan kedua, maka bagian code ini akan melakukan pembagian untuk pembilang dan penyebut, jika baik temp1 maupun temp2 adalah 0. Selanjutnya hasil pembagian akan disimpan dalam variable sementara.

11. $pembilang_hasil = $pembilang1_tmp * $pembilang2_tmp;
    $penyebut_hasil = $penyebut1_tmp * $penyebut2_tmp;

echo "$pembilang1/$penyebut1 $operasi $pembilang2_echo/$penyebut2_echo = $pembilang_hasil/$penyebut_hasil";

  Bagian code ini merupakan inti dari operasi perkalian maupun pembagian. Bilangan-bolangan yang sudah dibagi, maka akan dikalikan. Pembilang1 dengan Pembilang2 serta penyebut1 dengan penyebut2. echo "$pembilang1/$penyebut1 $operasi $pembilang2_echo/$penyebut2_echo = $pembilang_hasil/$penyebut_hasil"; menampilkan hasilnya.


Ujicoba:

Untuk mencoba controller yang telah kita buat, maka kita membutuhkan browser. Sebelumnya pastikan dengan xampp control panel bahwa apache service untuk localhost sudah dinyalakan.

1. Penjumlahan

  ketik localhost/(folder CodeIgniter)/index.php/hello/math/1/2/jumlah/1/4
  maka akan tampil laman web 1/2 + 1/4 = 3/4

2. Pengurangan

  ketik localhost/(folder CodeIgniter)/index.php/hello/math/1/2/kurang/2/5
  maka akan tampil laman web 1/2 - 2/5 = 1/10

3. Perkalian

  ketik localhost/(folder CodeIgniter)/index.php/hello/math/3/4/kali/2/3
  maka akan tampil laman web 3/4 * 2/3 = 3/6

4. Pembagian

 ketik localhost/(folder CodeIgniter)/index.php/hello/math/3/4/bagi/3/8
 maka akan tampil laman web 3/4 / 3/8 = 12/6


Sampai di sini tutorial cara membuat controller pada CodeIgniter. Untuk mencoba-coba, dapat dilihat pada phpmanual maupun user_guide pada CodeIgniter.