Tutorial kali ini kita membuat sistem sederhana untuk membuat NIK (NOMOR INDUK KARYAWAN) atau NIP (NOMOR INDUK PEGAWAI) secara otomatis berdasarkan format yang telah ditentukan. Disini kasus yang kita hadapi adalah untuk membuat NIP otomatis berdasarkan format 2 angka tahun masuk, ditamban nomor urut.

Contoh formatnya untuk karyawan pertama yang di hire di tahun 2019. NIP = 19.0001, mari kita ikuti langkah per langkah cara membuat NIP otomatis di CodeIgniter 3.

Database

Buat database baru dengan nama pegawai, lalu import

-- --------------------------------------------------------
 
--
-- Table structure for table `pegawai`
--
 
CREATE TABLE `pegawai` (
  `no_urut_pegawai` INT(11) NOT NULL,
  `NIP` VARCHAR(50) NOT NULL,
  `nama_pegawai` VARCHAR(100) NOT NULL,
  `tahun_masuk` YEAR(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `pegawai`
--
 
INSERT INTO `pegawai` (`no_urut_pegawai`, `NIP`, `nama_pegawai`, `tahun_masuk`) VALUES
(1, '19.0001', 'Saya Pegawai Pertama', 2019);
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `pegawai`
--
ALTER TABLE `pegawai`
  ADD PRIMARY KEY (`no_urut_pegawai`);
COMMIT;

Model

Buat model baru untuk pegawai di application/models/Pegawai_model.php, masukkan kode dibawah ini

<?php
class Pegawai_model extends CI_Model {
 
    public function __construct()
    {
        $this->load->database();
    }
 
    public function data()
    {
        $query = $this->db->query("SELECT max(no_urut_pegawai) as no_urut from pegawai");
        $hasil = $query->row();
        return $hasil;
    }
}

Controller

Buat controller baru untuk Pegawai di application/controllers/Pegawai.php

<?php
class Pegawai extends CI_Controller {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->model('pegawai_model');
    }
 
    public function index()
    {
        $pegawai = $this->pegawai_model->data();
        if (empty($pegawai) || is_null($pegawai)) {
            $noUrut = 0;
        } else {
            $noUrut = $pegawai->no_urut;
        }
        $data['no_urut_pegawai'] = $noUrut + 1;
        $this->load->view('pegawai', $data);
    }
 
    public function simpan()
    {
        $no_urut_pegawai = $_POST['no_urut_pegawai'];
        $nama_pegawai = $_POST['nama_pegawai'];
        $tahun_masuk = $_POST['tahun_masuk'];
        // ambil 2 dibelakang tahun
        $tahun_format_pegawai = substr($tahun_masuk, 2, 2);
 
        echo "NIP : ";
        echo "$tahun_format_pegawai" . "." . sprintf("%03s", $no_urut_pegawai);
    }
 
}

View

Buat view baru application/views/pegawai.php, copy code dibawah ini

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
 
    <title>Tutorial CodeIgniter - JARANGUDA.COM</title>
  </head>
  <body>
    <div class="container">
      <hr>
 
      <h3>Tambah Data Pegawai</h3>
      <hr>
      <form action="/Pegawai/simpan" method="POST" >
        <!-- $no_urut_pegawai diambil dari database -->
        <!-- masih perlu validasi lebih lanjut -->
        <input type="hidden" class="form-control" id="no_urut_pegawai" name="no_urut_pegawai" value="<?php echo $no_urut_pegawai;?>">
        <div class="form-group">
          <label for="tahun_masuk">Tahun Masuk</label>
    <select class="form-control" name="tahun_masuk">
          <?php
            // tahun perusahaan mulai membuka lowongan kerja
            $mulai_tahun = 2017;
            // tahun sekarang
            $tahun_sekarang = date('Y');
            foreach (range($mulai_tahun, $tahun_sekarang) as $tahun) {
                  // otomatis select tahun sekarang
                  if ($tahun == $tahun_sekarang) {
                    echo "<option value='$tahun' selected>" . $tahun . "</option>";
                  } else {
                    echo "<option value='$tahun'>" . $tahun . "</option>";
                  }
            }
            ?>
            </select>
        </div>
        <div class="form-group">
          <label for="nama_pegawai">Nama Pegawai</label>
          <input type="text" class="form-control" id="nama_pegawai" name="nama_pegawai">
        </div>
        <input class="btn btn-primary" type="submit" value="Simpan">
        <input class="btn btn-primary" type="reset" value="Reset">
      </form>
    </div>
  </body>
</html>

Testing

Buka browser anda di http://localhost/Pegawai/index
kode otomatis pegawai codeigniter
klik Simpan, harusnya muncul
NIP : 19.002 itu adalah kode NIK yang digenerate otomatis oleh sistem untuk pegawai kedua di perusahaan tersebut, begitu seterusnya. Disini kita tidak sampai menyimpan ke database, karena dari contoh diatas tinggi menambah satu model untuk menyimpan hasil tersebut ke database.

Leave a comment

Your email address will not be published. Required fields are marked *