Haloo! Selamat Datang di Komunitas Private Training Web Development (61064 Members, 691 Products, 4733 Topic, 12262 Comments)

Butuh karyawan baru? atau seorang Web Developer (Part-time/Freelance/Full-time), cari disini : Members Area Jobs!

Cara Membuat atau Generate nomor surat otomatis dengan PHP

Dibuat
Login Terakhir 2 Bulan lalu,
Telah Dilihat 20750 Kali
Badrut Tamam Khafi Mengatakan : Premium
  1. Saya punya tabel denga field:
  2. id (untuk no id nomor surat dan primary)
  3. no (untuk menyimpan nomor surat dlm bentuk integer)
  4. no_s (untuk menyimpan hasil final format nomor surat dlm bentuk string)
  5. tanggal (untuk menyimpan tanggal surat)
  6.  
  7. Fomat surat yang saya inginkan adalah: 20/PPID/VIII/2016
  8. 20: adalah nomor surat yang akan merest ke 01 lagi jika awal bulan
  9. PPID: string tetap
  10. VIII: adalah bulan sekarang dalam bentuk romawi
  11. 2016: adalah tahun sekarang
  12.  
  13. Format nomor surat tadi akan saya gunakan ketika tombol Simpan diklik jadi nomor itu tidak muncul di form sebelum penyimpanan.

Ada 17 Jawaban

PHPMU.COM Support
commented on 11 Agu 2016 10:32:03
  1. Assalam, berikut saya coba untuk generate otomatis kode surat seperti format yg di inginkan di atas,..
  2. Semoga bermanfaat, salam,.. :)
  3.  
  4. $cek = mysql_fetch_array(mysql_query("SELECT no_surat FROM table ORDER BY id DESC LIMIT 1"));
  5. $ex = explode('/', $cek[no_surat]);
  6.  
  7. if (date('d')=='01'){ $a = '01'; }
  8. else{ $a = $ex[0]+1; }
  9.  
  10. $b = 'PPID';
  11. $c = array('','I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII');
  12. $d = date('Y');
  13. $no_surat = $a.'/'.$b.'/'.$c[date('n')].'/'.$d;
  14. echo $no_surat;
Aaaaaaaaaaaa
commented on 01 Jan 2017 10:08:57
  1. ini nama file nya apa mas ya?
Yugo Samakuhaku
commented on 08 Feb 2017 14:25:45
  1. Gan mau Tanya Gimana Kalau Begini :
  2. Contoh :
  3. Nomor 002/11.01/CP-SPH/1/2017
  4. 002 : kode kategori
  5. 11 : tanggal surat
  6. 01 : nomor urut surat pada tanggal tersebut
  7. SPH : nama kategori
  8. 1 : bulan surat
  9. 2017 : tahun surat
  10.  
  11. yang ditanyakan saat memasukan surat baru di tanggal 1 maka nomor urut 01 jika sudah ada surat pada tanggal 1maka nomor urut langsung 02 dan seterusnya
Awan Awesome
commented on 20 Jul 2017 11:24:41
  1. Assalam, mau tanya. Kalau untuk nomor suratnya pak Badrut Tamam Khafi itukan reset datanya tiap bulan?, kalau misalkan reset tiap hari jadinya gimana ya?
Muhamad Yunus
commented on 01 Feb 2018 15:37:16
  1. Assalam, berikut saya coba untuk generate otomatis kode surat seperti format yg di inginkan di atas,..
  2. Semoga bermanfaat, salam,.. :)
  3.  
  4. $cek = mysql_fetch_array(mysql_query("SELECT no_surat FROM table ORDER BY id DESC LIMIT 1"));
  5. $ex = explode('/', $cek[no_surat]);
  6.  
  7. if (date('d')=='01'){ $a = '01'; }
  8. else{ $a = $ex[0]+1; }
  9.  
  10. $b = 'PPID';
  11. $c = array('','I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII');
  12. $d = date('Y');
  13. $no_surat = $a.'/'.$b.'/'.$c[date('n')].'/'.$d;
  14. echo $no_surat;
  15.  
  16.  
  17. Hallo mas robby, awal bulan januari tgl 2 kemarin saya memakai generate ini untuk aplikasi di kantor, namun ternyata ada kendala saat di tanggal 1 februari, nomor surat tidak tergenerate, selalu di angka 1. ada solusi kah?
PHPMU.COM Support
commented on 01 Feb 2018 21:42:19
  1. Assalam, terima kasih sudah membantu jawab,... :)
  2. untuk masalah no surat yang tidak tergenerate pada tanggal 1 bisa coba ubah kondisi berikut :
  3. if (date('d')=='01'){ $a = '01'; }
  4. else{ $a = $ex[0]+1; }
  5.  
  6. menjadi seperti ini :
  7. if (date('d')=='01'){ $a = '01'; }
  8. else{ $a = sprintf("%02d", $ex[0]+1); }
riotinto arjuna
commented on 03 Feb 2018 11:52:26
  1. mas bagaimana cara buat penomoran surat jika tahunnya ganti beralih ke penomoran baru
  2. 001/PS/I/2017
  3. 001/PS/I/2018
  4. makasih
maryudha R
commented on 05 Feb 2018 09:40:35
  1. mas ,koding php mysqli penomoran surat gmana caranya
maryudha R
commented on 05 Feb 2018 09:41:45
  1. setiap input data nomor surat otomatis ganti
PHPMU.COM Support
commented on 05 Feb 2018 17:00:07
  1. Asalam, untuk PHP Mysqli pun sama saja mbak, cuma bda di pemakaian fungsi mysql ganti ke mysqli saja,..
  2. contohnya seperti dibawah ini :
  3. $cek = mysqli_fetch_array(mysqli_query($koneksi, "SELECT no_surat FROM table ORDER BY id DESC LIMIT 1"));
  4.  
  5. Setiap input no surat otomatis ganti bisa dengan cara di atas juga,
  6. tinggal tambahkan mungkin di akhirnya fungsi datetime, misalnya :
  7. <?php
  8. $no_surat = $a.'/'.$b.'/'.$c[date('n')].'/'.$d.'/'.date('His');
  9. echo $no_surat;
Muhamad Yunus
commented on 07 Feb 2018 12:40:47
  1. Assalam, terima kasih sudah membantu jawab,... :)
  2. untuk masalah no surat yang tidak tergenerate pada tanggal 1 bisa coba ubah kondisi berikut :
  3. if (date('d')=='01'){ $a = '01'; }
  4. else{ $a = $ex[0]+1; }
  5.  
  6. menjadi seperti ini :
  7. if (date('d')=='01'){ $a = '01'; }
  8. else{ $a = sprintf("%02d", $ex[0]+1); }
  9.  
  10. Hallo Mas Robby
  11. saya hanya memakai 1 field bernama no_surat di database, kendalanya saat di tanggal 1, ketika no surat tidak tergenerate,
  12. apa saya harus menggunakan : filed id, no, dan no_s juga?
  13. berikut lampiran tabel saya.
Terdapat 2 File dilampirkan :
1. Untitled16.jpg (136 KB)
2. Untitled17.jpg (56 KB)
maryudha R
commented on 08 Feb 2018 10:05:56
  1. saya kurang paham mas,maaf baru blajar...minta koding lengkapnya...
maryudha R
commented on 08 Feb 2018 10:06:38
  1. mohon bantuan nya
Danang agus priyono
commented on 23 Mar 2018 08:13:07
  1. Assalamualaikum mas roby dan kawan2 kalau nomor surat contohnya 001/SPD/III/2018 tapi SPD bisa ganti2 menjadi ADM, UM berdasarkan combobox yg dipilih. Mohon pencerahannya
Bukhori Muslim
commented on 24 Mar 2018 06:55:30
  1. // Maryudha R
  2. Koding di atas sudah lengkap gan, dan sudah langsung ke hasilnya.
  3.  
  4. // Danang Agus Priyono
  5. berarti untuk nilai pada variable b ($b) di post/get dari combobox saja datanya mas.
  6. jadi seperti ini : $b = $_POST['combobox'];
  7. yang lainnya sama seperti di atas. :)
Rin cantik sari
commented on 14 Jan 2019 11:22:42
  1. Assalam,..
  2. Assalamualaikum.
  3. saya ingin membuat nomor surat otomatis dengan format
  4. Menu >Pilih Jenis Surat Dahulu
  5. Sub menu --> MADU 1
  6. --> MADU 2
  7. --> MADU 3
  8. --> MADU 4
  9.  
  10. kETIKA DI KLIK SALAH SATU JENIS SURAT, AKAN MENAMPILKAN SURAT OTOMATIS DENGAN FORMAT : XX-MADU4/18.124
  11.  
  12. xx- inisial tetap
  13. madu- inisial tetap
  14. 18- Tahun
  15. 124- no urut surat
  16.  
  17. tapi ada jenis 4 surat. Mohon bantuanya ya.
  18.  
  19.  
  20. ini koding disistemnya.
  21.  
  22. </div>
  23. <div class="input-field col s6 right">
  24. <i class="material-icons prefix md-prefix">featured_play_list</i><label>Kode dan Jenis Surat</label><br/>
  25. <select class="browser-default validate" name="kode" id="kode" required>
  26. <option value="1. Madu 1">1. Madu 1</option>
  27. <option value="2. Madu 2">2. Madu 2</option>
  28. <option value="3. Madu 3">3. Madu 3</option>
  29. <option value="4. Madu 4">4. Madu 4</option>
  30.  
  31. <?php
  32. if(isset($_SESSION['kodek'])){
  33. $kodek = $_SESSION['kodek'];
  34. echo '<div id="alert-message" class="callout bottom z-depth-1 red lighten-4 red-text">'.$kodek.'</div>';
  35. unset($_SESSION['kodek']);
  36. }
  37. ?>
  38. </div>
  39. <div class="row">
  40. <div class="input-field col s6 tooltipped" data-position="top"
  41. <label for="no_surat">Nomor Surat</label>
  42. <input id="no_surat" type="text" class="validate" name="no_surat" required>
  43.  
  44. <?php
  45. if(isset($_SESSION['no_suratk'])){
  46. $no_suratk = $_SESSION['no_suratk'];
  47. echo '<div id="alert-message" class="callout bottom z-depth-1 red lighten-4 red-text">'.$no_suratk.'</div>';
  48. unset($_SESSION['no_suratk']);
  49. }
  50. if(isset($_SESSION['errDup'])){
  51. $errDup = $_SESSION['errDup'];
  52. echo '<div id="alert-message" class="callout bottom z-depth-1 red lighten-4 red-text">'.$errDup.'</div>';
  53. unset($_SESSION['errDup']);
  54. }
  55. ?>
  56.  
  57. </div>
Terdapat 1 File dilampirkan :
1. menu_kecil2.JPG (28 KB)
server 06 Nisfaaa
commented on 02 Mar 2021 10:16:25
  1. Assalamualaikum,.. untuk masalah no surat yang tidak tergenerate pada tanggal 1 bisa coba ubah kondisi berikut :
  2. if (date('d')=='01'){ $a = '01'; }
  3. else{ $a = $ex[0]+1; }
  4.  
  5. menjadi seperti ini :
  6. if (date('d')=='01'){ $a = '01'; }
  7. else{ $a = sprintf("%02d", $ex[0]+1); }
  8.  
  9. bukannya script ini hanya untuk menambah digit?
  10.  
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!