Jumat, 20 November 2020

PHP Fpgrowth Implementasi

Algoritma FPgrowth  digunakan agar komputer dapat mempelajari aturan hubungan, mencari pola relasi antar satu atau lebih item dalam suatu dataset (menggunakan konsep pembangunan tree dalam pencarian frequent itemset).

Algoritma ini banyak digunakan pada data transaksi atau biasa disebut market basket, misalnya sebuah swalayan memiliki market basket, dengan adanya Algoritma FPGrowth, pemilik swalayan dapat mengetahui pola pembelian seorang konsumen, jika seorang konsumen membeli item A , B, punya kemungkinan 50% dia akan membeli item C, pola ini sangat signifikan dengan adanya data transaksi selama ini. 

Tampilan Pendahuluan (Rumus/Formula):


Tampilan Masukan data Analisa dan Parameter Support dan Confidence:


Tampilan Pendataan Batasan Invoice yang sudah ada:


Hasil FPGrowth 1 Kombinasi:


Hasil FPGrowth 2 Kombinasi:


Hasil FPGrowth 3 Kombinasi:


echo"<H1>Perhitungan FPGrowth </h1>";


echo"Merupakan salah satu algoritma data mining. 

Algoritma FPGrowth digunakan agar komputer dapat mempelajari aturan hubungan, 

mencari pola relasi antar satu atau lebih item dalam suatu dataset (menggunakan konsep pembangunan tree dalam pencarian

frequent itemset).

<br>

Algoritma ini banyak digunakan pada data transaksi atau biasa disebut market basket, 

misalnya sebuah swalayan memiliki market basket, 

dengan adanya Algoritma FPGrowth, pemilik swalayan dapat mengetahui 

pola pembelian seorang konsumen, 

jika seorang konsumen membeli item A , B, punya kemungkinan 50% dia 

akan membeli item C, pola ini sangat signifikan dengan adanya data transaksi selama ini.

<br><br>

Dalam Aturan FPGrowth, ada 2 poin untuk menghasilkan aturan yang tepat, yaitu Nilai Support dan Confident.

<b>Nilai Support (s)</b> merupakan persentase jumlah kasus untuk kombinasi item tertentu.

<img src='ypathfile/app1.png' width='300' height='180'>

Dimana X∪Y merupakan jumlah transaksi yang berisi X dan Y, sementara N merupakan total jumlah seluruh transaksi. Nilai support menjadi ukuran yang sangat penting dalam aturan asosiasi karena aturan yang sangat lemah nilai support-nya berarti asosiasi tersebut sangat jarang terjadi dalam dataset (seluruh data transaksi).

<br>

<b>Nilai Confident</b>

<img src='ypathfile/app2.png' width='300' height='180'>

Nilai Confident (c) merupakan persentase keakurasian dari Aturan FPGrowth yang dihasilkan.


<hr>";


$sql="select `tanggal` from `$tbinvoice` order by `tanggal` asc limit 0,1";

$d=getField($conn,$sql);

$tanggal1=WKT($d["tanggal"]);

$tanggal2=WKT(date("Y-m-d"));

$SUP=0.2;

$CONF=50;

$catatan="";


if(isset($_GET["id"])){

$id_pengujian=$_GET["id"];

$sql="select * from `$tbpengujian` where `id_pengujian`='$id_pengujian'";

$d=getField($conn,$sql);

$id_pengujian=$d["id_pengujian"];

$nama_pengujian=$d["nama_pengujian"];

$tanggal=WKT($d["tanggal"]);

$jam=$d["jam"];

$SUP=$d["support"];

$CONF=$d["confidence"];

$rekapitulasi=$d["rekapitulasi"];

$hasil=$d["hasil"];

$catatan=$d["catatan"]; 

}

if(isset($_GET["pro"]) && $_GET["pro"]=="reset"){

  $_SESSION["chitung"]="";

unset($_SESSION["chitung"]);

  

  $tanggal=date("Y-m-d");

  $jam=date("H:i:s");

  $sql="select `tanggal` from `$tbinvoice` order by `tanggal` asc limit 0,1";

$d=getField($conn,$sql);

$tanggal1=WKT($d["tanggal"]);

$tanggal2=WKT(date("Y-m-d"));

$SUP=0.2;

$CONF=50;


}


if(isset($_POST["Hitung"]) || isset($_SESSION["chitung"])){

$nama_pengujian=$_POST["nama_pengujian"];

$catatan=$_POST["catatan"];

$_SESSION["nama_pengujian"]=$nama_pengujian;

$_SESSION["catatan"]=$catatan;

$SUP=$_POST["sup"];

$CONF=$_POST["conf"];

$TGL1=$_POST["tanggal1"];

$TGL2=$_POST["tanggal2"];

}



echo"<form action='' method='post'>";

echo"<table width='100%' border='1'>";

echo"<tr bgcolor='#ffff00'><td colspan='3'>Parameter FPGROWTH</tr>";

echo"<tr><td>Nama Pengujian<td>:<td><input type='text' name='nama_pengujian' value='$nama_pengujian'></tr>";

echo"<tr><td>Batas Minimum Support<td>:<td><input type='text' name='sup' value='$SUP'> </tr>";

echo"<tr><td>Batas Minimum Confident<td>:<td><input type='text' name='conf' value='$CONF'> </tr>";


echo"<tr><td>Batas Tanggal<td>:<td>

<input type='text' name='tanggal1' value='$tanggal1' id='tanggal1'> 

s/d

<input type='text' name='tanggal2' value='$tanggal2' id='tanggal2'> 

</tr>";


echo"<tr><td>Catatan<td>:<td><input type='text' name='catatan' value='$catatan'></tr>";


echo"<tr><td colspan='3' align='right'>

<input type='submit' class='btn btn-success'  value='HITUNG / ANALISA FPGROWTH' name='Hitung'>

<a href='?mnu=fpgrowth&pro=reset&id=$id_pengujian'><input type='button' class='btn btn-danger'  value='RESET' name='RESET'></a>


</tr>";

echo"</table>";

echo"</form>";


if(isset($_POST["Hitung"]) || isset($_SESSION["chitung"])){

$nama_pengujian=$_POST["nama_pengujian"];

$catatan=$_POST["catatan"];

$SUP=$_POST["sup"];

$CONF=$_POST["conf"];

$TGL1=$_POST["tanggal1"];

$TGL2=$_POST["tanggal2"];

$tanggal1=BAL($TGL1);

$tanggal2=BAL($TGL2);

$sql="select distinct(id_invoice) from `$tbinvoice` where not id_invoice=''  and `tanggal` between '$tanggal1' and '$tanggal2'  order by `id_invoice` desc ";

$jum0=getJum($conn,$sql);

  


$gabx="<b>Informasi Transaksi/Invoice  $TGL1 s/d $TGL2</b>";

$gabx.="<table width='100%' border='1'>";

$gabx.="<tr bgcolor='#ffff00'><td>No<td>Kode<td>List  Item</tr>";

$total=0;


$m=0;

  $jum0=getJum($conn,$sql);

if($jum0 <1){

echo"Maaf data Transaksi/Invoice $TGL1 s/d $TGL2 belum tersedia...<br>";

}

else{

$arr=getData($conn,$sql);

foreach($arr as $d) {

$clr="#dddddd";if($m%2==0){$clr="$eeeeee";}

$id_invoice=$d["id_invoice"];

$gab="$id_invoice#";

$mlist="";

//$sqlg="select `id_barang` from `$tbinvoice` where `id_invoice`='$id_invoice'";

$sqlg="select `id_produk`  from `$tbinvoice` where `id_invoice`='$id_invoice'";

$arrg=getData($conn,$sqlg);

foreach($arrg as $dg) {

$id_produk=$dg["id_produk"];

$np=getProduk($conn,$id_produk);

$jd0=cekAda($gab,$id_produk);

if($jd0>0){$gab.="#";$mlist.="#";$clr="#fff00f";}

$gab.="$id_produk#";

$mlist.="$np ($id_produk),";

}

$gab=substr($gab,0,strlen($gab)-1);

$arG[$m]=$gab;

//echo $arG[$m]."<br>";

$m++;

$mlist=substr($mlist,0,strlen($mlist)-1);

$gabx.="<tr bgcolor='$clr'><td>$m<td>$id_invoice<td>$mlist</tr>";

}//foreach

}//jum0

$gabx.="</table><br><br>";

echo $gabx;

//======================================================================

if( $jum0>0){

$record="<b>Perhitungan $jum0 Data Transaksi yang Terjadi Antara $TGL1 s/d $TGL2 <br>

Dengan Batas Ambang Support $SUP dan batas Ambang Confident $CONF adalah sebagai berikut</b><br>";

$_SESSION["cket"]="<b>Perhitungan dari $jum0 Data Transaksi yang Terjadi Antara $TGL1 s/d $TGL2</b> dengan Batas Ambang Support $SUP % dan batas Ambang Confident $CONF %";


$sqlg="select distinct(id_produk) from `$tbinvoice`";

$arrg=getData($conn,$sqlg);

$n=0;


echo $record;


$gab="<b>Hasil Pembentukan FP-tree itemset I ( k=1)</b><br>

Transaksi dengan pembangkitan itemset k=1, 

maka itemset yang dapat dibentuk beserta dengan jumlah kemunculan nya dalam seluruh transaksi sebagai berikut :<br>";

$gab.="<table width='60%' border='1'>";

$gab.="<tr bgcolor='#ffff00'><td>No<td>Kode<td>Nama Item<td>Jumlah<td>Support<td>Confident</tr>";

$total=0;

foreach($arrg as $dg) {

$id_produk=$dg["id_produk"];

$nm=getProduk($conn,$id_produk);

$jump=hitJumlah1($arG,$id_produk);

$support=($jump/$jum0)*100;

$support_="($jump/$jum0)x100";

$cc0="$id_produk";

$confident=($jump/$jump)*100; if($confident>100){$confident=100;}

if($support>=$SUP && $confident>=$CONF){//

$cc=$id_produk;

$arP[$n]=$cc;

$arN[$n]=$nm;

$arJ[$n]=$jump;

$arS[$n]=$support;

$total+=$jump;

$ARI[$cc]=$jump;

$confident_="($jump/".$ARI[$arP[$n]].")x100";

$arC[$n]=$confident;

$no=$n+1;

$clr="#dddddd";if($no%2==0){$clr="$eeeeee";}

$gab.="<tr bgcolor='$clr'><td>$no<td>$id_produk<td>$nm<td>$jump

<td><label title='$support_'>$support</label>

<td><label title='$confident_'>$confident</label></tr>";

$n++;

}

}

$gab.="<tr bgcolor='#ff00f0'><td colspan='3'>

Total Transaksi<td colspan='3'  align='left'>$total</tr>";

$gab.="</table><br>";

echo $gab;

$record.=$gab;

//https://prpm.trigunadharma.ac.id/public/fileJurnal/hpqZ6%20Ali%20Ikhwan%20.pdf

$gab="<b>Hasil Pembentukan FP-tree itemset II  (k=2)</b><br>

lanjut pada tahap iterasi kedua dengan nilai k=2, 

berarti kita akan membentuk kombinasi dari 2 buah itemset sebagai berikut :";


$gab.="<table width='80%' border='1'>";

$gab.="<tr bgcolor='#ffff00'><th>No<th>Kode1-Kode2<th>Nama Item1-Nama Item2-<th>Jumlah<th>Support<th>Confident</tr>";

$n=0;

$total=0;

$JTX1=count($arP);

for($i=0;$i<$JTX1-1;$i++){

$id_produk1=$arP[$i];

$nm1=$arN[$i];

for($j=$i+1;$j<$JTX1;$j++){

$id_produk2=$arP[$j];

$nm2=$arN[$j];

$jump=hitJumlah2($arG,$id_produk1,$id_produk2);

$support=($jump/$jum0)*100;

$support_="($jump/$jum0)x100";

$cc0=$id_produk1;

$confident=($jump/$ARI[$cc0])*100;if($confident>100){$confident=100;}

if($support>=$SUP && $confident>=$CONF){//

$cc="$id_produk1-$id_produk2";

$arP2[$n]=$cc;

$arN2[$n]="$nm1-$nm2";

$arJ2[$n]=$jump;

$arS2[$n]=$support;

$total+=$jump;

$confident_="($jump/".$ARI[$cc0].")x100";

$arC2[$n]=$confident;

$ARI2[$cc]=$jump;

$no=$n+1;

$clr="#dddddd";if($no%2==0){$clr="$eeeeee";}

$gab.="<tr bgcolor='$clr'><td>$no<td>$arP2[$n]<td>$arN2[$n]<td>$arJ2[$n]

<td><label title='$support_'>$support</label>

<td><label title='$confident_'>$confident</label></tr>";


$n++;

}

}//j

}//i

$gab.="<tr bgcolor='#ff00f0'><td colspan='3'>Total Transaksi<td colspan='3' align='left'>$total</tr>";

$gab.="</table><br>";

echo $gab;

$record.=$gab;


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

error_reporting(0);

$kes="<b>Aturan FPGrowth :</b><br><ul>";


$gab="<b>Hasil Pembentukan FP-tree itemset III  (k=3)</b><br>

lanjut pada tahap iterasi kedua dengan nilai k=3, 

berarti kita akan membentuk kombinasi dari 3 buah itemset sebagai berikut :";


$gab.="<table width='100%' border='1'>";

$gab.="<tr bgcolor='#ffff00'><th>No<th>Kode1-Kode2-Kode3<th>Nama Item1-Nama Item2-Nama Item3

<th>Jumlah<th>Support<th>Confident</tr>";

$n=0;

$total=0;

$JTX1=count($arP);

for($i=0;$i<$JTX1-2;$i++){

$id_produk1=$arP[$i];

$nm1=$arN[$i];

for($j=$i+1;$j<$JTX1-1;$j++){

$id_produk2=$arP[$j];

$nm2=$arN[$j];

for($k=$j+1;$k<$JTX1;$k++){

$id_produk3=$arP[$k];

$nm3=$arN[$k];

$jump=hitJumlah3($arG,$id_produk1,$id_produk2,$id_produk3);

$support=($jump/$jum0)*100;

$support_="($jump/$jum0)x100";

$cc0="$id_produk1-$id_produk2";

$confident=($jump/$ARI2[$cc0])*100;if($confident>100){$confident=100;}

if($support>=$SUP && $confident>=$CONF){//

$cc="$id_produk1-$id_produk2-$id_produk3";

$kes.="<li>Jika membeli $nm1  ($id_produk1) dan $nm2  ($id_produk2) maka akan membeli $nm3 ($id_produk3) =$confident %</li>";

$arP3[$n]=$cc;

$arN3[$n]="$nm1-$nm2-$nm3";

$arJ3[$n]=$jump;

$total+=$jump;

$arS3[$n]=$support;

$confident_="($jump/".$ARI2[$cc0].")x100";

$arC3[$n]=$confident;

$ARI3[$cc]=$jump;

$no=$n+1;

$clr="#dddddd";if($no%2==0){$clr="$eeeeee";}

$gab.="<tr bgcolor='$clr'><td>$no<td>$arP3[$n]<td>$arN3[$n]<td>$arJ3[$n]

<td><label title='$support_'>$support</label>

<td><label title='$confident_'>$confident</label></tr>";


$n++;

}

}//k

}//j

}//i

$kes.="</ul>";


$gab.="<tr bgcolor='#ff00f0'><td colspan='3'>Total Transaksi<td colspan='3' align='left'>$total</tr>";

$gab.="</table><br><hr>";

echo $gab;

echo $kes;


$record.=$gab;

$record.=$kes;

$_SESSION["crecord"]=$record;

$_SESSION["chasil"]=$kes;


echo"<img src='ypathfile/print2.jpg' title='PRINT'  width='150' height='130' OnClick='PRINT()'> ||";

echo"<a href='?mnu=fpgrowth&pro=save&id=$id_pengujian'><img src='ypathfile/save.jpg' title='SIMPAN' width='120' height='100'></a>";


}// $jum0>0




   


   $time_end = microtime(true);

   $time = $time_end - $time_start;

   $_SESSION["cdurasi"]=$time;

   echo "<hr>Lama Proses $time seconds\n";

   

   

}//isset hitung








if(isset($_GET["pro"]) && $_GET["pro"]=="save"){

  $tanggal=date("Y-m-d");

  $id_pengujian=$_GET["id"];

  $nama_pengujian=$_SESSION["nama_pengujian"];

  $catatan=$_SESSION["catatan"];

  $rekapitulasi=$_SESSION["chasil"];

  $durasi=$_SESSION["cdurasi"];

  $hasil=$_SESSION["cket"];

  

  $_SESSION["chitung"]="";

unset($_SESSION["chitung"]);

  $_SESSION["cdurasi"]="";

unset($_SESSION["cdurasi"]);

  

  $tanggal=date("Y-m-d");

  $jam=date("H:i:s");

  

$sql=" Update  `$tbpengujian` set `nama_pengujian`='$nama_pengujian', `catatan`='$catatan',`rekapitulasi`='$rekapitulasi Durasi: $durasi ms', `hasil`='$hasil' where `id_pengujian`='$id_pengujian'";

$simpan=process($conn,$sql);

if($simpan) {echo "<script>alert('Data $nama_pengujian berhasil disimpan !');document.location.href='?mnu=pengujian';</script>";}

else{echo"<script>alert('Data $nama_pengujian gagal disimpan...');document.location.href='?mnu=pengujian';</script>";}

}


?>




OKS

PHP Array Distinct

 array(5) { [0]=> int(3) [1]=> int(4) [2]=> int(1) [3]=> int(0) [4]=> int(2) }

<?php

$jenisproduk=5;

$numbers = range(0, $jenisproduk-1);

shuffle($numbers);

var_dump($numbers);

?>



PHP Code Generate Invoice

 Sebagai berikut adalah kode PHP untuk autoInput Nota Transaksi...
dengan amsing-masing Nota terdiri dari random N jumlah item Jenis barang, dan tiap2 jenis barang random M Jumlahnya....
dan setiap Transaksi/Nota terurut dari tanggal tertentu dan bulan tertentu (misal 10 bulan yang lalu) dst.....



<?php


$tanggal=WKT(date("Y-m-d"));

$lamabulan=10;//default

?>

 

<script type="text/javascript"> 

function PRINT(tgl){ 

win=window.open('penjualan/print.php?tgl='+tgl,'win','width=1000, height=400, menubar=0, scrollbars=1, resizable=0, location=0, toolbar=0, status=0'); } 

</script>

<script language="JavaScript">

function buka(url) {window.open(url, 'window_baru', 'width=800,height=600,left=320,top=100,resizable=1,scrollbars=1');}

</script>


<div id="accordion">

  <h3>Generate Data Invoice</h3>

  <div>

<!-- Accordion -->


<form action="" method="post" enctype="multipart/form-data">

<table class="table table-hover">

<tr>

<td height="24"><label for="lamabulan">Lama Bulan Yang Lalu</label>

<td>:<td colspan = "2"><input class="form-control" name="lamabulan" value="<?php echo $lamabulan;?>" type="number" id="lamabulan" value="<?php echo $jumlah;?>" size="30" />

</td>

</tr>


<tr>

<td height="24"><label for="keterangan">Catatan</label>

<td>:<td width="331"><textarea class="form-control" name="keterangan" cols="100" type="text" id="keterangan"><?php echo $keterangan;?> </textarea></td>

</tr>


<tr><td><td>

<td colspan="2">

<input name="Generate" type="submit" class="btn btn-success" id="Generate" value="Generate" />

        <a href="?mnu=aoq"><input name="Batal" class="btn btn-danger" type="button" id="Batal" value="Batal" /></a>

</td></tr>

</table>

</form>


</div>

<?php   

$sqlc="select distinct(`tanggal`) from `$tbinvoice` order by `tanggal` asc";

$arrc=getData($conn,$sqlc);

foreach($arrc as $dc) {

$tanggal=$dc["tanggal"];

?>

  <h3>Data Invoice <?php echo WKT($tanggal);?></h3>

  <div>

<br />


Data Invoice  <?php echo WKT($tanggal);?>: 

<img src='ypathicon/print.png' title='PRINT' OnClick="PRINT('<?php echo $tanggal;?>')">

<br>


<table class="table table-bordered table-striped table-hover">

  <tr bgcolor="#CCCCCC">

    <th width="3%">No</th>

    <th width="10%">IDInvoice</th>

<th width="70%">List Produk</th>

<th width="10%">Menu</th>

  </tr>

<?php  


  $sql="select distinct(`id_invoice`) from `$tbinvoice` where tanggal='$tanggal' order by `id_invoice` desc ";

  $jum=getJum($conn,$sql);

if($jum > 0){

$no=1;

$arr=getData($conn,$sql);

foreach($arr as $d) {

$id_invoice=$d["id_invoice"];

$gab="<ol>";

$sqlg="select * from `$tbinvoice` where `id_invoice`='$id_invoice'";

$arrg=getData($conn,$sqlg);

foreach($arrg as $dg) {

$id_produk=$dg["id_produk"];

$np=getProduk($conn,$id_produk);

$jumlah=$dg["jumlah"];

$catatan=$dg["catatan"];

$gab.="<li>$np ($id_produk) : $jumlah item $catatan</li>";

}

$gab.="</ol>";

$color="#dddddd";

if($no %2==0){$color="#eeeeee";}

echo"<tr bgcolor='$color'>

<td>$no</td>

<td>$id_invoice</td>

<td>$gab</td>

<td align='center'>

<a href='?mnu=invoice&pro=hapus&kode=$id_invoice'><img src='ypathicon/h.png' alt='hapus' 

onClick='return confirm(\"Apakah Anda benar-benar akan menghapus $id_invoice pada data invoice ?..\")'></a></td>

</tr>";

$no++;

}//while

}//if

else{echo"<tr><td colspan='7'><blink>Maaf, Data invoice belum tersedia...</blink></td></tr>";}

?>

</table>


</div>

<?php } ?>

</div>

</div>

</body>

<!-- Accordion -->


<?php

if(isset($_POST["Simpan"])){

$jum=strip_tags($_POST["i"]);

$id_invoice=strip_tags($_POST["id_invoice"]);

$tanggal=BAL($_POST["tanggal"]);

$keterangan=strip_tags($_POST["keterangan"]);

$sql="delete from `$tbinvoice` where `id_invoice`='$id_invoice'";

$hapus=process($conn,$sql);



$ada=0;

for($i=0;$i<=$jum;$i++){

$id_produk=strip_tags($_POST["idp$i"]);

$jumlah=strip_tags($_POST["jum$i"]);

$pil=strip_tags($_POST["pil$i"]);

$keterangan=strip_tags($_POST["cat$i"]);

if($pil==1 && isset($_POST["pil$i"]) && $jumlah>0){

$ada++;

$sql="INSERT INTO `tbinvoice` (

`id`, `id_invoice`, `id_produk`, `jumlah`, `keterangan`, `tanggal`) VALUES (

'', '$id_invoice', '$id_produk', '$jumlah', '$keterangan','$tanggal')";

$simpan=process($conn,$sql);


}//isset

}//for

if($ada>0){

$sql=" INSERT INTO `$tbinvoice` (

`id_invoice` ,

`tanggal` ,

`keterangan`

) VALUES (

'$id_invoice', 

'$tanggal', 

'$keterangan'

)";

$simpan=process($conn,$sql);

if($simpan) {echo "<script>alert('Data $id_invoice berhasil disimpan !');document.location.href='?mnu=generate';</script>";}

else{echo"<script>alert('Data $id_invoice gagal disimpan...');document.location.href='?mnu=generate';</script>";}

}

else{

echo"<script>alert('Silakan Lengkapi Data Anda DenganItem yang dipilih berikut Jumlahnya...');document.location.href='?mnu=generate';</script>";

}

}

?>


<?php

if($_GET["pro"]=="hapus"){

$id_invoice=$_GET["kode"];


$sql="delete from `$tbinvoice` where `id_invoice`='$id_invoice'";

$hapus=process($conn,$sql);



if($hapus) {echo "<script>alert('Data invoice $id_invoice berhasil dihapus !');document.location.href='?mnu=invoice';</script>";}

else{echo"<script>alert('Data invoice $id_invoice gagal dihapus...');document.location.href='?mnu=invoice';</script>";}

}



if(isset($_POST["Generate"])){

$keterangan=$_GET["keterangan"];

$lamabulan=$_POST["lamabulan"];//15


$sql="select `id_produk`,`kategori` from `$tbproduk` order by rand()";

$arr=getData($conn,$sql);

$n=0;

foreach($arr as $d) {

$id_produk=$d["id_produk"];

$kategori=$d["kategori"];

$arB[$n]=$id_produk;

$arH[$n]=$kategori;

$n++;

}

$sql0="Truncate `$tbinvoice`";

$simpan0=process($conn,$sql0);

$selthn=floor($lamabulan/12); //1

$selbln=$lamabulan%12;//3

$tahun=date("Y")-$selthn;//13

$bulan=date("m")-$selbln;

if($bulan<=0){$bulan=$bulan+12;$tahun=$tahun-1;}


$TH=$tahun;

$BL=$bulan;

for($b=0;$b<$lamabulan;$b++){//bln thn

if($BL>12){

$BL=1;$TH=$TH+1;

}

for($i=1;$i<24;$i++){//tgl


$ii=$i;

if($ii<10){$ii="0$i";}

$tanggal="$TH-$BL-$ii";

if($tanggal=="0000-00-00"){}

else{

$txharian=rand(1,5);

for($j=0;$j<$txharian;$j++){

$sql="select `id_invoice` from `$tbinvoice` order by `id_invoice` desc";

$q=mysqli_query($conn, $sql);

  $jum=mysqli_num_rows($q);

  $th=date("y");

  $bl=date("m")+0;if($bl<10){$bl="0".$bl;}

  

  $kd="PJL".$th.$bl;//KEG1610001

  if($jum > 0){

   $d=mysqli_fetch_array($q);

   $id_invoiceax=$d["id_invoice"];

   

   $bul=substr($id_invoiceax,5,2);

   $tah=substr($id_invoiceax,3,2);

    if($bul==$bl && $tah==$th){

     $urut=substr($id_invoiceax,7,4)+1;

     if($urut<10){$id_invoiceax="$kd"."000".$urut;}

     else if($urut<100){$id_invoiceax="$kd"."00".$urut;}

else if($urut<1000){$id_invoiceax="$kd"."0".$urut;}

     else{$id_invoiceax="$kd".$urut;}

    }//==

    else{

     $id_invoiceax="$kd"."0001";

     }   

   }//jum>0

  else{$id_invoiceax="$kd"."0001";}

  $id_invoice=$id_invoiceax;

  



$banyakProdukdalam1Nota=rand(1,5);//1 nota ada antara 1 sd 5 barang

if($banyakProdukdalam1Nota>5){$banyakProdukdalam1Nota=5;}

$numbers = range(0, $n-1);

shuffle($numbers);


for($k=0;$k<$banyakProdukdalam1Nota;$k++){

$r=$numbers[$k]+0;//rand(1,$n-1);//

if($r>$n-1){

$r=0;//rand(0,$n-1);

}

$id_produk=$arB[$r];//43201

$jumlah=rand(2,10);

$subtotal=$jumlah*$arH[$r];

$catatan="";


$sql1=" INSERT INTO `$tbinvoice` (

`id_invoice` ,`jumlah` ,`id_produk` ,

`tanggal` ,

`keterangan`

) VALUES (

'$id_invoice', '$jumlah', '$id_produk', 

'$tanggal', 

'Generate $lamabulan Bulan $keterangan '

)";

$simpan1=process($conn,$sql1);

//echo $sql1."<br>";

}//k banyak produk

}//j txharians

}//0000-00-00

}//i

$BL=$BL+1;

}//bulan thn

//sukses generate

echo "<script>alert('Generate Berhasil ');document.location.href='?mnu=generate';</script>";

}//generate

?>



 

Mencari Tanggal Terakhir Suatu Bulan

  $a_date = "$tahun-$bulan-01"; $lastdate= date('t',strtotime($a_date));//Y-m-t <?php require_once"koneksivar.php&...