Thursday, June 15, 2023

Membuat Nomor Urut Otomatis Berganti dari 1 lagi ketika Ganti Hari dengan PHP

Nomor otomatis pada sebuah aplikasi berbasis web adalah sistem penomoran yang tanpa kita ketik manual akan dengan sendirinya bertambah satu demi satu. Cara yang dilakukan biasanya adalah ketika kita mengklik sebuah tombol, misalnya akan mengisi suatu text dengan angka atau format angka tertentu contohnya format angka AN-001, dan ketika klik kembali akan menghasilkan AN-002 dan seterusnya.

Sedikit masalah yang pernah dialami adalah bagaimana cara jika kita menginginkan format angka tersebut akan kembali dari awal lagi ketika berganti hari, berganti bulan atau bahkan berganti tahun. Misal saja seperti tabel berikut:

Tabel diatas bisa dijelaskan bahwa, setiap ganti tanggal maka Nomor akan dimulai kembali dari angka 001. Nah, bagaimanakah cara membuatnya???

Berikut akan dijelaskan solusi dari permasalahan tersebut.
Ulang langsung bisa mempraktekkannya berikut langkah yang harus dilakukan.
1. Buat Database dengan nama db_antrian
2. Buat nama tabel dengan nama tb_pendaftaran, dengan struktur sbb:
    

3. Buat nama tabel dengan nama tb_pasien, dengan struktur sbb:

Catatan: silahkan isi data langsung dari tabel di database saja.

4. Buat folder baru di xampp-htdocs-antri
5. Buat file koneksi.php seperti berikut



6. Buat file pendaftaran.php seperti berikut
<?php
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
$koneksi=new mysqli("localhost","root","","db_pematang");
$date=date("d");
$query = mysqli_query($koneksi, "SELECT max(no_antrian) as kodeTerbesar FROM tb_pendaftaran where day(tgldaftar)=$date");
$data = mysqli_fetch_array($query);
$noantrian = $data['kodeTerbesar'];
$urutan = (int) substr($noantrian, 3, 5);
$urutan++;
$huruf = "AN-";
date_default_timezone_set('Asia/Jakarta');
$noantrian = $huruf . sprintf("%03s", $urutan);
?>
<div>
    <h2>
        PENDAFTARAN BEROBAT PASIEN(ANTRIAN)
    </h2>
</div>
    
<div>
<form method="POST">
No. Antrian
<div>
    <div>
    <input type="text" name="no_antrian" value="<?php echo $noantrian; ?>" readonly="" />
    </div>
</div>  

No Rekam Medis Pasien
<div>
    <div>
     <select name="no_pasien" />
      <option value="">---Cari No Pasien ---</option>
             <?php
                $lbl = '<option value=""> - Cari No RM - </option>';
                 $pasien=$koneksi->query("select * from tb_pasien order by no_pasien");
                 
                 while ($d_pasien=$pasien->fetch_assoc()) {
                    
                    echo "<option value='$d_pasien[no_pasien]'>$d_pasien[no_pasien]  | $d_pasien[nm_pasien]</option>
                        ";
                    }
               ?>
        </select>
    </div>
</div> 

Tanggal Daftar
<div>
    <div>
        <input type="Date" name="tgldaftar" />
    </div>
</div>

<input type="submit" name="simpanantrian" value="Simpan">
</form>

<?php 
if (isset($_POST['simpanantrian'])){
date_default_timezone_set('Asia/Jakarta');
$date=date("Y-m-d H:i:s");
$no_antrian=$_POST['no_antrian'];
$no_pasien=$_POST['no_pasien'];
$tgldaftar=$_POST['tgldaftar'];

  $sql=$koneksi->query("insert into tb_pendaftaran (no_antrian,no_pasien,tgldaftar) 
        values('$no_antrian','$no_pasien','$tgldaftar')");
    if ($sql){
        ?>
        <script type="text/javascript">
        alert ("Data Berhasil di Simpan");
        window.location.href="?page=pendaftaran";
        </script>
        <?php
}
}
?>

7. Jangan lupa jalankan XAMPP, buka browser dan ketikkan localhost/antri/pendaftaran.php kemudian enter. Jika tidak ada masalah maka akan tampil seperti tampilan berikut:

8. Silahkan coba diinput dan jalankan. jangan lupa atur settingan tanggal di komputer untuk mencobanya.

Selamat Mencoba,
Semoga Bermanfaat.






0 comments:

Post a Comment