CRUD Mahasiswa

 

CRUD Mahasiswa - SIMITS CodeIgniter
(Sistem Informasi Mahasiswa ITS)

Disini saya akan menjelaskan bagaimana membuat sistem informasi mahasiswa dengan menggunakan framework CodeIgniter. CodeIgniter adalah sebuah framework php yang bersifat open source dan menggunakan metode MVC (Model, View, Controller). CodeIgniter bersifat free alias tidak berbayar jika ingin menggunakannya. Framework CodeIgniter dibuat dengan tujuan  untuk memudahkan developer atau programmer dalam membangun sebuah aplikasi berbasis web tanpa harus membuat nya dari awal.

Langkah-langkahnya sebagai berikut.

  1. Persiapan Development

    Dalam pembuatan SIMITS ini yang perlu disiapkan diawal yaitu :

    • PHP
    • MySQL
    • Webserver
    • CodeIgniter v3 dimana posisi sudah didalam XAMP (hasil extract instalasi CodeIgniter v3 ke dalam folder xampp/htdocs dengan nama folder simits)

  2. Membuat Database

    Sekarang buka phpMyAdmin dan buat database dengan nama simits. Selanjutnya buat tabel dengan nama tabel_mahasiswa. Untuk membuat tabel, pilih SQL dan jalankan perintah berikut.

    Ketika query dijalankan maka akan terbuat tabel_mahasiswa dengan struktur sebagai berikut.


  3. Konfigurasi Database dan Base URL

    Untuk selanjutnya yaitu melakukan konfigurasi base_url dari aplikasi web yang dibangun. Langkah-langkahnya sebagai berikut.

    • Buka text editor, pilih file config.php pada direktori simits/application/config lalu edit bagian base_url dan diarahkan ke alamat website nantinya (http://localhost/simits) lalu save file
     
    $config['base_url'] = 'http://localhost/simits';
     
    • Lalu atur konfigurasi database dengan buka file database.php pada direktori simits/application/config dan edit file seperti gambar dibawah lalu save file
     
    $active_group = 'default';
    $query_builder = TRUE;

    $db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'simits',
        '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
    );
     
    • Selanjutnya menghubungkan database yang sudah terkonfigurasi dengan mengaktifkan library database di file autoload.php pada direktori simits/application/config dan mengisi array dengan database lalu save file

    $autoload['libraries'] = array('database');

  4. Read Data Mahasiswa

    Untuk tahapan selanjutnya sudah masuk kedalam konsep MVC untuk menampilkan data mahasiswa dimana akan membuat dan edit beberapa file berikut.

    • File Model dengan nama Mahasiswa_model.php pada direktori simits/application/models
     
    <?php
    defined('BASEPATH') or exit('No direct script access allowed');
    class Mahasiswa_model extends CI_Model
    {
        function get()
        {
            //SELECT * FROM tabel_mahasiswa
            return $this->db->get('tabel_mahasiswa');
        }
     
    • File Views dengan nama mahasiswa/index.php pada direktori simits/application/views  dengan membuat direktori baru bernama mahasiswa
     
    <?php defined('BASEPATH') or exit('No direct script access allowed'); ?>

    <!DOCTYPE html>
    <html>

    <head>
        <title>SIMITS</title>
    </head>

    <body>

        <H3>Data Mahasiswa</H3>
        <table border=1 width=100% cellpadding=2 cellspacing=0>
            <tr bgcolor=silver align=center>
                <td>NRP</td>
                <td>Nama</td>
                <td>Alamat</td>
                <td>Telp</td>
                <td>Angkatan</td>
                <td>Departemen</td>
                <td>Fakultas</td>
                <td colspan=2>AKSI</td>
            </tr>
            <?php
            if ($jumlah_data > 0) {

                foreach ($mahasiswa as $row) { ?>
                    <tr align=center>
                        <td><?php echo $row['nrp']; ?></td>
                        <td><?php echo $row['nama']; ?></td>
                        <td><?php echo $row['alamat']; ?></td>
                        <td><?php echo $row['telp']; ?></td>
                        <td><?php echo $row['angkatan']; ?></td>
                        <td><?php echo $row['departemen']; ?></td>
                        <td><?php echo $row['fakultas']; ?></td>
                        <td><a href="<?php echo base_url(); ?>index.php/mahasiswa/edit/<?php echo $row['nrp']; ?>">Edit</a></td>
                        <td><a href="<?php echo base_url(); ?>index.php/mahasiswa/hapus/<?php echo $row['nrp']; ?>" onclick="return confirm('Apakah anda yakin ingin menghapus data ini?');">Delete</a></td>
                    </tr>
                <?php
                }
            } else { ?>
                <tr align='center'>
                    <td colspan=8>Data Mahasiswa kosong</td>
                </tr>
            <?php } ?>

        </table>
        <p>Jumlah data : <?php echo $jumlah_data?> [<a href="<?php echo base_url(); ?>index.php/mahasiswa/create">Tambah Data</a></p>
    </body>

    </html>
     
    • File Controller dengan nama Mahasiswa.php pada direktori simits/application/controllers
     
    <?php
    defined('BASEPATH') or exit('No direct script access allowed');
    class Mahasiswa extends CI_Controller
    {
        function __construct()
        {
            parent::__construct();
            //load helper
            $this->load->helper('url');
            $this->load->helper('form');
            //load library  
            $this->load->library('form_validation');
            //load model 
            $this->load->model('mahasiswa_model');
        }

        public function index()
        {
            //ambil data dari database
            $getData = $this->mahasiswa_model->get();

            $data = [
                'mahasiswa' => $getData->result_array(),
                'jumlah_data' => $getData->num_rows()
            ];

            //menampilkan view
            $this->load->view('mahasiswa/index'$data);
        }
     

  5. Create Data Mahasiswa

    Fitur selanjutnya untuk menambahkan data mahasiswa kedalam tabel didalam database. Dimana dalam hal ini ada beberapa tahapan sebagai berikut.

    • Menambahkan method untuk insert data didalam file Mahasiswa_model.php
     
        function insert($data)
        {
            //insert data ke dalam tabel
            $this->db->insert('tabel_mahasiswa'$data);
        }
       
      • Membuat 2 file baru dengan nama add.php dan notifikasi.php dalam direktori simits/application/views/mahasiswa lalu edit file kemudian save file
        • file add.php
       
      <?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
      <!DOCTYPE html>
      <html>

      <head>
          <title>Tambah Data SIMITS</title>
      </head>

      <body>
          <?php echo form_open('mahasiswa/create'); ?>
          <table border=0 width="100%" cellpadding="5" cellspacing="0">
              <tr bgcolor="silver">
                  <td Colspan="3" align="center">
                      <H3>DATA MAHASISWA</H3>
                  </td>
              </tr>
              <tr>
                  <td>NRP</td>
                  <td>:</td>
                  <td><input type="text" name="nrp" value="<?php echo set_value('nrp'); ?>" size="50"><?php echo form_error('nrp'); ?></td>
              </tr>
              <tr>
                  <td>Nama</td>
                  <td>:</td>
                  <td><input type="text" name="nama" value="<?php echo set_value('nama'); ?>" size="50"><?php echo form_error('nama'); ?></td>
              </tr>
              <tr>
                  <td>Alamat</td>
                  <td>:</td>
                  <td><textarea name="alamat" rows="2" value="<?php echo set_value('alamat'); ?>" cols="52"></textarea><?php echo form_error('alamat'); ?></td>
              </tr>
              <tr>
                  <td>Telp</td>
                  <td>:</td>
                  <td><input type="text" name="telp" value="<?php echo set_value('telp'); ?>" size="50"><?php echo form_error('telp'); ?></td>
              </tr>
              <tr>
                  <td>Angkatan</td>
                  <td>:</td>
                  <td><input type="text" name="angkatan" value="<?php echo set_value('angkatan'); ?>" size="50"><?php echo form_error('angkatan'); ?></td>
              </tr>
              <tr>
                  <td>Departemen</td>
                  <td>:</td>
                  <td><input type="text" name="departemen" value="<?php echo set_value('departemen'); ?>" size="50"><?php echo form_error('departemen'); ?></td>
              </tr>
              <tr>
                  <td>Fakultas</td>
                  <td>:</td>
                  <td><input type="text" name="fakultas" value="<?php echo set_value('fakultas'); ?>" size="50"><?php echo form_error('fakultas'); ?></td>
              </tr>
              <tr align="center">
                  <td colspan="3">
                      <input type="submit" value="TAMBAH">
                      <input type="reset" value="BATAL">
                      [<a href="<?php echo base_url(); ?>index.php/mahasiswa">Lihat Data Mahasiswa</a>]
                  </td>
              </tr>
          </table>
          <?php echo form_close(); ?>

      </body>

      </html>
       
        • file notifikasi.php

      <?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
      <!doctype html>
      <html>

      <head>
          <title>DATA MAHASISWA</title>
      </head>

      <body>
          <p><?php echo $msg?></p>
          <p><?php echo anchor('mahasiswa''Kembali'); ?></p>

      </body>

      </html>
       
      • Menambahkan method untuk menampilkan form insert data didalam file controller Mahasiswa.php

          public function create()
          {
              //rule validasi
              $validation_rules = [
                  [
                      'field' => 'nrp',
                      'label' => 'NRP',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'nama',
                      'label' => 'Nama',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'alamat',
                      'label' => 'Alamat',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'telp',
                      'label' => 'Telp',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'angkatan',
                      'label' => 'Angkatan',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'departemen',
                      'label' => 'Departemen',
                      'rules' => 'required'
                  ],
                  [
                      'field' => 'fakultas',
                      'label' => 'Fakultas',
                      'rules' => 'required'
                  ]
              ];

              //set rule validasi
              $this->form_validation->set_rules($validation_rules);

              if ($this->form_validation->run() === FALSE) {
                  $this->load->view('mahasiswa/add');
              } else {

                  //data mahasiswa
                  $mahasiswa = [
                      'nrp' => $this->input->post('nrp'),
                      'nama' => $this->input->post('nama'),
                      'alamat' => $this->input->post('alamat'),
                      'telp' => $this->input->post('telp'),
                      'angkatan' => $this->input->post('angkatan'),
                      'departemen' => $this->input->post('departemen'),
                      'fakultas' => $this->input->post('fakultas')
                  ];

                  $this->mahasiswa_model->insert($mahasiswa);

                  $data['msg']  =  'Data berhasil disimpan';

                  $this->load->view('mahasiswa/notifikasi'$data);
              }
          }
    • Update Data Mahasiswa

      Fitur selanjutnya untuk memperbarui data mahasiswa dimana tahapan ini sebagai berikut.

      •  Menambahkan method didalam model Mahasiswa_model.php dengan method get_by_nrp() untuk mengambil data mahasiswa berdasarkan nrp dan method update() untuk memperbarui data mahasiswa

          function get_by_nrp($nrp)
          {
              //SELECT * FROM tabel_mahasiswa WHERE nrp=$nrp
              $this->db->where('nrp'$nrp);
              $this->db->from('tabel_mahasiswa');
              return $this->db->get();
          }

          function update($data$where)
          {
              $this->db->where($where);
              $this->db->update('tabel_mahasiswa'$data);
          }

      • Membuat file view baru dengan nama edit.php didalam direktori  simits/application/views/mahasiswa

      <?php defined('BASEPATH') or exit('No direct script access allowed'); ?>

      <!DOCTYPE html>
      <html>

      <head>
          <title>Edit Data Mahasiswa</title>
      </head>

      <body>

          <?php echo form_open('mahasiswa/update'); ?>
          <table border=0 width="100%" cellpadding="5" cellspacing="0">
              <tr bgcolor="silver">
                  <td Colspan="3" align="center">
                      <H3>DATA MAHASISWA</H3>
                  </td>
              </tr>
              <tr>
                  <td>NRP</td>
                  <td>:</td>
                  <td><input type="text" name="nrp" value="<?php echo set_value('nrp'); ?>" size="50"><?php echo form_error('nrp'); ?></td>
              </tr>
              <tr>
                  <td>Nama</td>
                  <td>:</td>
                  <td><input type="text" name="nama" value="<?php echo set_value('nama'); ?>" size="50"><?php echo form_error('nama'); ?></td>
              </tr>
              <tr>
                  <td>Alamat</td>
                  <td>:</td>
                  <td><textarea name="alamat" rows="2" value="<?php echo set_value('alamat'); ?>" cols="52"></textarea><?php echo form_error('alamat'); ?></td>
              </tr>
              <tr>
                  <td>Telp</td>
                  <td>:</td>
                  <td><input type="text" name="telp" value="<?php echo set_value('telp'); ?>" size="50"><?php echo form_error('telp'); ?></td>
              </tr>
              <tr>
                  <td>Angkatan</td>
                  <td>:</td>
                  <td><input type="text" name="angkatan" value="<?php echo set_value('angkatan'); ?>" size="50"><?php echo form_error('angkatan'); ?></td>
              </tr>
              <tr>
                  <td>Departemen</td>
                  <td>:</td>
                  <td><input type="text" name="departemen" value="<?php echo set_value('departemen'); ?>" size="50"><?php echo form_error('departemen'); ?></td>
              </tr>
              <tr>
                  <td>Fakultas</td>
                  <td>:</td>
                  <td><input type="text" name="fakultas" value="<?php echo set_value('fakultas'); ?>" size="50"><?php echo form_error('fakultas'); ?></td>
              </tr>
              <tr align="center">
                  <td colspan="3">
                      <button type="submit" value="update" name="update">Update</button>
                      <button type="reset">Reset</button>
                      [<a href="<?php echo base_url(); ?>index.php/mahasiswa">Lihat Data Mahasiswa</a>]
                  </td>
              </tr>
          </table>
          <?php echo form_close(); ?>

      </body>

      </html>

      • Menambahkan method didalam controller Mahasiswa.php

          public function edit($nrp = '')
          {
              //Cek apakah ada parameter $nrp
              if ('' == $nrp) {
                  //jika tidak ada, maka alihkan ke halaman daftar mahasiswa
                  redirect('mahasiswa');
              }
              //ambil data mahasisa berdasarkan nrp
              $data['mahasiswa'] =  $this->mahasiswa_model->get_by_nrp($nrp)->row_array();
              //load form edit
              $this->load->view('mahasiswa/edit'$data);
          }

          public function update()
          {
              //cek apakah tombol update ditekan
              if ($this->input->post('update')) {
                  $nrp = $this->input->post('nrp');

                  //rule validasi
                  $validation_rules = [
                      [
                          'field' => 'nrp',
                          'label' => 'NRP',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'nama',
                          'label' => 'Nama',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'alamat',
                          'label' => 'Alamat',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'telp',
                          'label' => 'Telp',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'angkatan',
                          'label' => 'Angkatan',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'departemen',
                          'label' => 'Departemen',
                          'rules' => 'required'
                      ],
                      [
                          'field' => 'fakultas',
                          'label' => 'Fakultas',
                          'rules' => 'required'
                      ]
                  ];

                  //set rule validasi
                  $this->form_validation->set_rules($validation_rules);

                  if ($this->form_validation->run() === false) {
                      redirect('mahasiswa/edit/' . $nrp);
                  }

                  $where['nrp'] = $nrp;

                  //data mahasiswa
                  $mahasiswa = [
                      'nrp' => $this->input->post('nrp'),
                      'nama' => $this->input->post('nama'),
                      'alamat' => $this->input->post('alamat'),
                      'telp' => $this->input->post('telp'),
                      'angkatan' => $this->input->post('angkatan'),
                      'departemen' => $this->input->post('departemen'),
                      'fakultas' => $this->input->post('fakultas')
                  ];

                  //update data
                  $this->mahasiswa_model->update($mahasiswa$where);

                  $data['msg'] = 'Data berhasil diperbaharui';
                  $this->load->view('mahasiswa/notifikasi'$data);
              } else {
                  echo "<h3 style='color:red;'>Forbidden access</h3>";
              }
          }

    • Delete Data Mahasiswa

      Berikut adalah fitur terakhir yaitu untuk menghapus data mahasiswa. Tahapannya sebagai berikut.

      • Menambahkan method delete() didalam model Mahasiswa_model.php

      function delete($nrp)
          {
              //delete data berdasarkan nrp
              $this->db->where('nrp'$nrp);
              $this->db->delete('tabel_mahasiswa');
          }

      • Menambahkan method hapus didalam controller Mahasiswa.php

      public function hapus($nrp = '')
          {
              //cek apakah parameter nrp ada
              if ('' == $nrp) {
                  //jika tidak, tampilkan error
                  return show_404();
              }
              //hapus data
              $this->mahasiswa_model->delete($nrp);

              $data['msg']  =  'Data berhasil dihapus';
              $this->load->view('mahasiswa/notifikasi'$data);
          }

    • Uji Coba Project

      Dalam tahap ini project yang sudah dirancang akan dijalankan perintah (http://localhost/simits/index.php/mahasiswa) dan jika berhasil maka akan terlihat sebagai berikut.


      Karena belum ada data mahasiswa maka kita akan coba menambahkan data mahasiswa

      Coba klik "TAMBAH" posisi tidak ada data yang dimasukkan untuk menguji form validation program, maka akan muncul pesan error seperti berikut.

      Selanjutnya coba isi data mahasiswa dalam form, jika sudah selesai mengisi klik "TAMBAH" maka akan muncul pemberitahuan data berhasil disimpan dan tabel mahasiswa akan bertambah 

      Untuk memperbarui data mahasiswa, klik "EDIT" pada data yang ingin diperbarui kemudian akan muncul form pembaruan data lalu isikan data yang benar dan klik "UPDATE" maka akan dapat pemberitahuan data berhasil diperbarui

      Lakukan penambahan data hingga jumlah mahasiswa yang diinginkan sudah masuk ke dalam tabel mahasiswa

      Karena data sudah dimasukkan, maka data dummy bisa dihapus dengan klik "DELETE" kemudian akan muncul pemberitahuan data berhasil dihapus dan akan terlihat di tabel mahasiswa data dummy sudah tidak ada



    Comments

    Popular posts from this blog

    TUGAS 2 PBKK - Membuat Program Hello World menggunakan .NET

    TUGAS 3 - Membuat Aplikasi Currency Converter Online Menggunakan API JSON

    ETS PBKK - Individu - POS