Format Surat Formal

Contoh format nomor surat yang akan kita gunakan 001/JRD/IV/2018
001 : No urut surat
JRD : Kode Divisi/Lembaga/Bagian
IV : Bulan sekarang dalam angka romawi
2018 : Tahun sekarang

Database

Tabel yang kita butuhkan

CREATE TABLE `barang` (
  `id` INT(11) NOT NULL,
  `no_urut_surat` INT(4) NOT NULL,
  `kode_surat` VARCHAR(100) DEFAULT NULL,
  `isi_surat` VARCHAR(100) NOT NULL,
  `user_id` VARCHAR(50) NOT NULL,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `barang`
  ADD PRIMARY KEY (`id`);
ALTER TABLE `barang`
  MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT;
COMMIT;

Buat Route Baru

Untuk mencoba script ini, kita akan membuat sebuah route baru di routes/web.php

<?php
Route::get('otomatis', function () {
    $AWAL = 'JRD';
    // karna array dimulai dari 0 maka kita tambah di awal data kosong
    // bisa juga mulai dari "1"=>"I"
    $bulanRomawi = array("", "I","II","III", "IV", "V","VI","VII","VIII","IX","X", "XI","XII");
    $noUrutAkhir = \App\Barang::max('no_urut_surat');
    $no = 1;
    if($noUrutAkhir) {
        echo "No urut surat di database : " . $noUrutAkhir;
        echo "<br>";
        echo "Pake Format : " . sprintf("%03s", abs($noUrutAkhir + 1)). '/' . $AWAL .'/' . $bulanRomawi[date('n')] .'/' . date('Y');
    }
    else {
        echo "No urut surat di database : 0" ;
        echo "<br>";
        echo "Pake Format : " . sprintf("%03s", $no). '/' . $AWAL .'/' . $bulanRomawi[date('n')] .'/' . date('Y');
    }
});

Hasil Script

Bila di tabel barang belum ada data, script diatas dijalankan yang muncul adalah

No urut surat di database : 0
Pake Format : 001/JRD/IV/2018

Bila di tabel barang sudah ada 20 bila script dijalankan

No urut surat di database : 20
Pake Format : 021/JRD/IV/2018

Join the Conversation

4 Comments

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