Uncategorized

Nomor urut Otomatis dgn PHP

Pentingnya sebuah no transaksi yang akan menjadi sebuah Primary Key pada setiap kali terjadi transaksi sering kali di abaikan. Mahasiswa  asal bikin no transaksi tanpa merefer pada sesuatu arti apapun. Hmm…bolak-balik Depok – cawang masih juga salahnya sama. Mas dan mbak, kalian boleh bikin program apa aja asal punya referensi, punya manfaat dan tujuan yang jelas. Salah satu sifat sebuah aplikasi maupun software yang sangat penting adalah User Friendly. Ya mudah digunakan, contohnya jika kita memakai penomoran otomatis akan bisa mengurangi kemungkinan human error. Apalagi kalo no otomatis transaksinya terdiri tgl, bln, thn dan nomor urut. Selain memperkecil human error juga bisa digunakan untuk pencarian dan audit transaksi untuk jangka panjang.
Disini saya sedikit memberi contoh pembuatan nomor transaksi otomatis berdasarkan tahun, tgl bulan +nomor urut.

1.Buatlah databases dengan nama nomor_oto pada php my admin

2.Buatlah Table dengan nama table_transaksi

3.  Untuk koneksi ke database : simpan dengan koneksi.php

<?php
// nama host
$dbhost = ‘localhost’;
// nama user
$dbuser = ‘root’;
// password user
$dbpass = ”;
// nama database
$dbname = ‘nomor_oto’;
mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);
?>

4. Untuk Codingnya inputnya : simpan dengan nama input.php

<html>
<head>
<title>Transaksi Pembayaran</title>
</head>
<body>
<h1 align=”center”>Transaksi Pembayaran   </h1>
<hr>
<form method=”post” action=”tampil.php”>
<p>Transaksi ke </td>
<input type=”text” name=”id”>
</p>
<td><p>
<input type=”submit” name=”submit” value=”Submit”>
</p>
</form>
</body>
</html>
5. untuk proses sekaligus Tampil simpan dengan nama tampil.php

<?php
// memanggil koneksi database
include ‘koneksi.php’;
// format tanggal
$today = date(“Ymd”);
?>

<html>
<head>
<title>Transaksi Pembayaran</title>
</head>
<body>
<h1>Tampil Nomor Otomatis</h1>
<?php

// transfer id member dr form input
$id = $_POST[‘id’];

// mencari  transaksi terakhir yang berawalan tanggal hari ini
$query = “SELECT max(notran) AS last FROM table_transaksi WHERE notran LIKE ‘$today%'”;
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);
$lastNoTransaksi = $data[‘last’];

// cek nomor urut transaksi dari id transaksi yang paling akhir
$lastNoUrut = substr($lastNoTransaksi, 8, 4);

// nomor urut ditambah 1
$nextNoUrut = $lastNoUrut + 1;

// membuat format nomor transaksi berikutnya
$nextNoTransaksi = $today.sprintf(‘%04s’, $nextNoUrut);

//  simpan data transaksi dengan nomor transaksi baru
$query = “INSERT INTO table_transaksi (notran, urutan)
VALUES (‘$nextNoTransaksi’, ‘$id’)”;
$hasil = mysql_query($query);
if ($hasil)
{
// jika proses simpan transaksi berhasil, maka akan tampil nomor transaksi dan urutan yang di input
$query2 = “SELECT * FROM table_transaksi WHERE urutan = ‘$id'”;
$hasil2 = mysql_query($query2);
$data2  = mysql_fetch_array($hasil2);
?>
</h1>
<p>Nomor otomatis berhasil</p>
<table>
<tr><td>notrans Transaksi</td><td>:</td><td><?php echo $nextNoTransaksi; ?></td></tr>
<tr><td>transaksi ke</td><td>:</td><td><?php echo $id; ?></td></tr>

</table>

<?php
}
else echo “penomoran otomatis Gagal”;
?>

</body>
</html>

21 Comments

  • Sofyan Alti
    September 23, 2013 - 3:25 pm | Permalink

    makasih … share ilmunya gan

  • rizqipermana
    September 25, 2013 - 8:00 am | Permalink

    Sama-sama gan

  • Anna
    June 2, 2014 - 11:26 am | Permalink

    $query = “SELECT max(notran) AS last FROM table_transaksi WHERE notran LIKE ‘$today%’”;

    <<Pak, terhadap listing diatas, diprogram saya muncul erorr yang bacaannya: "mysql_fetch_array parameter 1 erorr" kurang lebih seperti itu, kira2 solusinya gmn pak?

    • rizqipermana
      June 7, 2014 - 4:57 am | Permalink

      Walikumsalam Wr.Wb. Jika muncul error seperti itu biasa data yang di tampilkan tidak ada..Dalam artian tabel masih kosong..atau bisa jadi Where yang di maksud tidak ditemukan yang sesuai dengan likenya..

  • ian hydayat
    June 4, 2014 - 3:04 pm | Permalink

    assalamualaikum pak rizqi.saya mahasiswa BSI sudah registrasi tahun masuk 2010,sekarang bimbingan TA.boleh minta tolong kerjasama tugas akhir web pro,saya lagi susah banget,buat tabel transaksi dan halaman login.bisa bertemu ke kampus yah.pin bb 30E22F34 atau sms 085284131990.terimakasih

    • rizqipermana
      June 7, 2014 - 4:58 am | Permalink

      Walikumsalam..Sedang bikin web apa mas??ok mas hub ke 085730631991 saja ya..

  • hendra
    December 17, 2014 - 3:49 am | Permalink

    Mas mau tanya, kalau mau bikin no transaksi urut tetapi mengecek dulu apakah pelanggan sudah terdaftar atau belum, jika pelanggan sudah ada no transaksi tetap, jika belum terdaftar no transaksi urut atau menggunakan nomor yang belum digunakan

    mohon pencerahan
    trims

  • rizqipermana
    January 8, 2015 - 10:39 am | Permalink

    Sama seperti no transaksi biasa mas…Cuma sebelumnya di kasih if dulu untuk mengecek user_id nya
    contoh :

  • Yessica
    December 17, 2015 - 11:54 am | Permalink

    terima kasih pak ilmunya, lagi mentok bagian itu

  • May 11, 2016 - 12:33 pm | Permalink

    Gan kalo ngambil datanya yang terakhir tapi dari server gimana??
    Misal komputer A aktif dan data terakhirnya 005, dan saat itu pula komputer B aktif dan ngambil nomor 005 juga.
    Nantikan jadi crash.
    Salam kenal

    • rizqipermana
      May 17, 2016 - 3:07 am | Permalink

      Kalo id terakhir bisa di ambil makek select max (id) atau makek mysql_insert_id. ini jika menggunakan PHP biasa. Klo menggunakan Code igniter bisa makek $this->db->insert_id();
      Tapi klo masalah crash yang di atas bisa di atasi dengan beberapa solusi gan.
      1. No otomastis tidak di tampilkan ke user dulu dan dilakukannya nomor otomatis ketika user tekan tombol save.Baru setelah itu ketika berhasil di save di tunjukin nomor nya. atau
      2. Ketika user buka form input kondisi nomor otomatis sudah di save duluan. Jadi ketika user tekan save koding agan tinggal melakukkan update sesui dengan nomor otomatis tadi

  • Sinta Awalisa
    May 14, 2016 - 2:07 pm | Permalink

    Assalamualaikum Pak Rizqi
    Saya lagi ada project buat web yang pakai database dan berkaitan sama buat nomor otomatisnya pak
    Saya masih bingung isi tabel yg ada didatabase nya. Kan Bapak bilang nama databasenya nomor_oto trus isinya itu saya bingung
    Mohon bantuannya Pak, Terimakasih

  • rizqipermana
    May 17, 2016 - 3:17 am | Permalink

    Walaikumsalam.wr.wb.
    Kalo untuk contoh kasus yang di atas ini saya menggunkan dua kolom saja, yaitu notrans dan urutan saja. Notrans atau nomor urut otomatis ini berisi tahun-bulan-tanggal dan urutannya. jadi begini hasilnya 2016051702.
    Nah kalo mbak mau buat project tinggal di sesuaikn saja kolomnya sesuai dengan kebutuhan. Biasanya kalo buat tabel melihat dari Normalisai

  • Fikri
    July 24, 2016 - 7:42 am | Permalink

    assalamu’alaikum pak rizqi

    saya mau nanya pak, kalau mau buat penomoran otomatis tapi tiap tahun otomatis reset bagaimana pak??

    mohon bantuannya pak, Terima Kasih

    • rizqipermana
      August 18, 2016 - 2:57 am | Permalink

      itu yang saya buat juga reset tiap hari malahan

  • August 20, 2016 - 6:51 am | Permalink

    makasih informasinya

  • Winda Destri
    February 7, 2017 - 4:05 pm | Permalink

    Assalamu’alikum, mau tanya mas kalau errornya begini ” mysql_fetch_array()expects parameter 1 to be resource,” itu bagian apanya ya? 😊

    • rizqipermana
      February 22, 2017 - 11:56 am | Permalink

      Php versi brpa, sebab sekarang fungsi mysql sudah di ganti menjadi mysqli

  • rief
    December 5, 2017 - 1:45 am | Permalink

    mas mohon bantuanny, kalo resetnya tiap tahun, ada tambahan huruf didepannya, ambil tahun belakangnya, 4 digit nomer urut, ngedit nya gmn?
    trimakasih.

    • rizqipermana
      December 5, 2017 - 3:52 am | Permalink

      Begini maksudnya gan N170006?

  • rizqipermana
    December 5, 2017 - 4:37 am | Permalink

    Ganti variabel $today dan tambahin ini gan.
    $today = date(“y”);
    $a=”N”;

    edit query select jadi:
    $query = “SELECT max(notran) AS last FROM tbl_transaksi WHERE notran LIKE ‘$a$today%'”;

    edit lastnomorurut jadi:
    $lastNoUrut = substr($lastNoTransaksi, 3, 4);

    Terkahir edit :
    $nextNoTransaksi = $a.$today.sprintf(‘%04s’, $nextNoUrut);

  • Leave a Reply

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

    error: Content is protected !!
    Powered by: Wordpress