Senin, 29 Juni 2020

Library COde 2020

<?php
 $sql="select `id_pedagang` from `$tbpedagang` order by `id_pedagang` 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="PDG".$th.$bl;//KEG1610001
  if($jum > 0){
   $d=mysqli_fetch_array($q);
   $idmax=$d["id_pedagang"];
 
   $bul=substr($idmax,5,2);
   $tah=substr($idmax,3,2);
    if($bul==$bl && $tah==$th){
     $urut=substr($idmax,7,3)+1;
     if($urut<10){$idmax="$kd"."00".$urut;}
     else if($urut<100){$idmax="$kd"."0".$urut;}
     else{$idmax="$kd".$urut;}
    }//==
    else{
     $idmax="$kd"."001";
     } 
   }//jum>0
  else{$idmax="$kd"."001";}
  $id_pedagang=$idmax;
 
  ?>
 
 
<?php
  $sql="select `id_user` from `$tbuser` order by `id_user` desc";
  $jum= getJum($conn,$sql);
  $kd="USR";
if($jum > 0){
$d=getField($conn,$sql);
    $idmax=$d['id_user'];
$urut=substr($idmax,3,2)+1;//01
if($urut<10){$idmax="$kd"."0".$urut;}
else{$idmax="$kd".$urut;}
}
else{$idmax="$kd"."01";}
$id_user=$idmax;
?>


<tr>
<td><label for="nama_user">Nama User</label>
<td>:
<td colspan="2"><input required placeholder="Nama User" title="Nama User" name="nama_user" class="form-control" type="text" id="nama_user" value="<?php echo $nama_user;?>" size="30" /></td>
</tr>

<tr>
<td height="24"><label for="telepon">Telepon</label>
<td>:<td colspan="2"><input required name="telepon" class="form-control" type="number" id="telepon" value="<?php echo $telepon;?>" size="15" />
</td>
</tr>

<tr>
<td height="24"><label for="email">Email</label>
<td>:
<td><input name="email" type="email" class="form-control" id="email" value="<?php echo $email;?>" size="30" />
</td>
</tr>



<script type="text/javascript">
function PRINT(pk){
win=window.open('customer/print.php?pk='+pk,'win','width=1000, height=400, menubar=0, scrollbars=1, resizable=0, location=0, toolbar=0, username=0'); }
</script>



INI CALLER NYA:
| <img src='ypathicon/print.png' alt='PRINT' OnClick="PRINT('<?php echo $status;?>')"> |




INI CODE PRINTNYA:
<style type="text/css">body {width: 100%;} </style>
<body OnLoad="window.print()" OnFocus="window.close()">
<?php
include "../konmysqli.php";
echo"<link href='../ypathcss/$css' rel='stylesheet' type='text/css' />";
$YPATH="../ypathfile";

$pk="";
$field="id_customer";
$TB="$tbcustomer";
$item="Customer";

$sql="select * from `$TB` order by `$field` asc";
if(isset($_GET["pk"])){
 $pk=$_GET["pk"];
  $sql="select * from `$TB` where `$field` ='$pk' order by `$field` asc";
}
?>


<h3><center>Laporan Data <?php echo $item;?> <?php echo $pk;?></h3>


<table width="98%" border="0">
  <tr>
    <th width="2%">No</td>
    <th width="50%">Nama Customer</td>
    <th width="10%">Status</td>
 <th width="40%">Keterangan</td>
  </tr>
<?php 

  $jum=getJum($conn,$sql);
  $no=0;
  if($jum > 0){
 $arr=getData($conn,$sql);
  foreach($arr as $d) {       
  $no++;
    $id_customer=$d["id_customer"];
    $nama_customer=$d["nama_customer"];
    $alamat=$d["alamat"];
    $telepon=$d["telepon"];
    $email=$d["email"];
    $username=$d["username"]
    ;$password=$d["password"];
    $status=$d["status"];
    $keterangan=$d["keterangan"];
 $color="#cccccc";   
if($no %2==1){$color="#dddddd";}

echo"<tr bgcolor='$color'>
    <td>$no</td>
    <td><b><a href='mailto:$email'>$nama_customer</b> ($id_customer)</a></br>
    Alamat : <i>$alamat $telepon</i></td>
    <td>$status</td>
    <td>$keterangan</td>
    </tr>";
   
   }//while
  }//if
  else{echo"<tr><td colspan='7'><blink>Maaf, Data $item Belum Tersedia...</blink></td></tr>";}
  ?>

</table>





<a href="excel.php?tabel=tb_admin&pk=id_admin">EXCEL</a>

<?php
date_default_timezone_set("Asia/Jakarta");

require_once"koneksivar.php";


$conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName);
if ($conn->connect_error) {
  trigger_error('Database connection failed: '  . $conn->connect_error, E_USER_ERROR);
}

$NT="tb_admin";
$PK="id_admin";
if(isset($_GET["tabel"])){
 $NT=$_GET["tabel"];
 $PK=$_GET["pk"];
}


?>
<!DOCTYPE html>
<html>
<head>
 <title>Export Data Kuisioner - <?php echo $NT;?></title>
</head>
<body>
 <style type="text/css">
 body{
  font-family: sans-serif;
 }
 table{
  margin: 20px auto;
  border-collapse: collapse;
 }
 table th,
 table td{
  border: 1px solid #3c3c3c;
  padding: 3px 8px;

 }
 a{
  background: blue;
  color: #fff;
  padding: 8px 10px;
  text-decoration: none;
  border-radius: 2px;
 }
 </style>

 <?php
 header("Content-type: application/vnd-ms-excel");
 header("Content-Disposition: attachment; filename=$NT.xls");
 ?>

 <center>
  <h1> <?php echo strtoupper("Data Kuisioner Tracert Study ".$NT);?><br/>
  https://www.upnvj.ac.id/id.html</h1>
 </center>
<?php

$sql="select * from `".$NT."`";
$result = mysqli_query($conn,$sql);
$jc=mysqli_num_fields($result);


$gab="<table border='1'><tr><th>No</th>";
for($i=1;$i<$jc;$i++){
 $colObj = mysqli_fetch_field_direct($result,$i);                         
 $col= $colObj->name;
 $ar[$i-1]=$col;
 $gab.="<th>$col</th>";
}
$gab.="</tr>";

$sql="select * from `".$NT."` order by `".$PK."` asc";
  $jum=getJum($conn,$sql);
  if($jum > 0){
  $arr=getData($conn,$sql);
  $no=1;
  foreach($arr as $d) {
   $gab.="<tr><td>$no</td>";
   for($i=1;$i<$jc;$i++){
    $v=$ar[$i-1];
    $data=$d["$v"];
    $gab.="<td>$data</td>";
   }//for
   $gab.="</tr>";
   $no++;
  }//foreach
  }//jum
 else{
  $gab.="<tr colspan='$jc'>data belum tersedia</tr>";
}
$gab.="</table>";

echo $gab;
?>

</body>
</html>




<?php
$tanggal=date("Y-m-d");
$LAT1=-6.306187;
$LON1=106.873144;
$uri = $_SERVER['REQUEST_URI'];
//echo $uri; // Outputs: URI
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
// echo"<hr>";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//echo $url; // Outputs: Full URL
 //echo"<hr>";
$query = $_SERVER['QUERY_STRING'];
//echo $query; // Outputs: Query String
 //echo"<hr>";
$cari="index.php?".$query;
$PATH=str_replace($cari,"",$url);
//echo $PATH;
?>
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
    <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>


<div id="mapid" style="width: 100%; height: 600px;"></div>
<script>
//-6.356602, 106.831307
//http://localhost/webtracking_pedagang/dir/direction/?lat1=5.022020&lon1=96.095108&lat2=5.121929&lon2=96.253036


var mymap = L.map('mapid').setView([<?php echo $LAT1;?>, <?php echo $LON1;?>], 13);
//andree:pk.eyJ1IjoiYW5kcmUzMjE3OTgiLCJhIjoiY2tia3VmcnczMTJzZzJubHRqdWk1aHozbyJ9.br1i2UWx5I-4AZGuUUoqxw
//default:pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYW5kcmUzMjE3OTgiLCJhIjoiY2tia3VmcnczMTJzZzJubHRqdWk1aHozbyJ9.br1i2UWx5I-4AZGuUUoqxw', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1
}).addTo(mymap);

//
L.marker([<?php echo $LAT1;?>, <?php echo $LON1;?>]).addTo(mymap).bindPopup("<b>Hello UHAMKA!</b><br />Saya Ada di UHAMKA.").openPopup();

//var myIcon = L.divIcon({className: 'Emoji sunglasses'});
// you can set .my-div-icon styles in CSS
//L.marker([-6.306187, 106.873144], {icon: myIcon}).addTo(map);


L.circle([<?php echo $LAT1;?>, <?php echo $LON1;?>], 1000, {
color: 'yellow',
fillColor: '#fafa03',
fillOpacity: 0.5
}).addTo(mymap).bindPopup("Ini WIlayah Radius UHAMKA");

<?php 
  $sql="select * from `$tbtracking` where `tanggal`<='$tanggal'  group by `id_pedagang` order by id_tracking desc";
  $arr=getData($conn,$sql);
foreach($arr as $d) {
$id_tracking=$d["id_tracking"];
$jam=$d["jam"];
$latitude=$d["latitude"];
$longitude=$d["longitude"];
$id_pedagang=$d["id_pedagang"];

$LINK=$PATH."dir/direction/?lat1=$LAT1&lon1=$LON1&lat2=$latitude&lon2=$longitude";
//$LINK="?mnu=dir&lat1=$LAT1&lon1=$LON1&lat2=$latitude&lon2=$longitude";

$sql2="select `nama_pedagang`,`telepon` from `$tbpedagang` where `id_pedagang`='$id_pedagang'";
$d2=getField($conn,$sql2);
$nama_pedagang=$d2["nama_pedagang"];
$telepon=$d2["telepon"];
$gab="";
$sql3="select `id_produk`,`nama_produk` from `$tbproduk` where `id_pedagang`='$id_pedagang' and `status`='Tersedia'";
$jum3=getJum($conn,$sql3);
if($jum3 > 0){
$arr3=getData($conn,$sql3);
foreach($arr3 as $d3) {
$id_produk=$d3["id_produk"];
$nama_produk=$d3["nama_produk"];
$gab.="$nama_produk, ";
}//foreach
$gab=substr($gab,0,strlen($gab)-2);
}//jum3
else{
$gab="Tidak Ada Produk di jual...";
}
$info="$nama_pedagang ($telepon)";
$jual="Produk: $gab <a href='$LINK'>direction</a>";


?>

L.marker([<?php echo $latitude;?>, <?php echo $longitude;?>]).addTo(mymap).bindPopup("<b><?php echo $info;?></b><br /><?php echo $jual;?>");//.openPopup();

<?php
}//while
?>

var popup = L.popup();

function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(mymap);
}

mymap.on('click', onMapClick);

</script>



</body>
</html>



<!DOCTYPE html>
<html>
  <body>
    <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
    <div id="player"></div>

    <script>
      // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/AIzaSyAKM239U9OdNjTeEExilchlN7gJQf_-IhU";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      // 3. This function creates an <iframe> (and YouTube player)
      //    after the API code downloads.
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: 'M7lc1UVf-VE',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      // 4. The API will call this function when the video player is ready.
      function onPlayerReady(event) {
        event.target.playVideo();
      }

      // 5. The API calls this function when the player's state changes.
      //    The function indicates that when playing a video (state=1),
      //    the player should play for six seconds and then stop.
      var done = false;
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
          setTimeout(stopVideo, 6000);
          done = true;
        }
      }
      function stopVideo() {
        player.stopVideo();
      }
    </script>
  </body>
</html>

<iframe id="player" type="text/html" width="640" height="390"
  src="http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1&origin=http://example.com"
  frameborder="0"></iframe>

Jumat, 26 Juni 2020

PHP Code Thinkspeak


<?php
$R=rand(1,8);

$kirim="https://api.thingspeak.com/update?api_key=6AQ86NJXWBFB634521&field1=$R";
//get_content($kirim);

echo"<hr>";
$baca="https://api.thingspeak.com/channels/1089670/feeds.json?api_key=5TW0G96C5T5U9F5R21&results=1";
$hasil= get_content($baca);
//var_dump($hasil);

$array = json_decode($hasil, true);
$x=$array["feeds"][0]["field1"];
echo $x;


echo"<hr>";
//var_dump($array);
function get_content($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}


?>


API Requests
https://thingspeak.com/channels/1089670/api_keys

Write a Channel Feed
GET https://api.thingspeak.com/update?api_key=6AQ86NJXWBFB634521&field1=0
Read a Channel Feed
GET https://api.thingspeak.com/channels/1089670/feeds.json?api_key=5TW0G96C5T5U9F5R21&results=2
Read a Channel Field
GET https://api.thingspeak.com/channels/1089670/fields/1.json?api_key=5TW0G96C5T5U9F5R21&results=2
Read Channel Status Updates
GET https://api.thingspeak.com/channels/1089670/status.json?api_key=5TW0G96C5T5U9F5R21


https://jonsuh.com/blog/convert-loop-through-json-php-javascript-arrays-objects/#:~:text=Convert%20JSON%20String%20to%20PHP,the%20objects%20as%20associative%20arrays.

Php Aoto Respon Telegram


<?php


$TOKEN      = "883027477:AAHlmv0wznlon8-6B7iNixX0BmegJTsQ0jk21";
$usernamebot= "@sysinter_bot";

$debug = false;

function request_url($method){
    global $TOKEN;
    return "https://api.telegram.org/bot" . $TOKEN . "/". $method;
}

function get_updates($offset) {
   // error_reporting(0);
$url = request_url("getUpdates")."?offset=".$offset;
        $resp = file_get_contents($url);
        $result = json_decode($resp, true);
        if ($result["ok"]==1)
            return $result["result"];
        return array();
}
function send_reply($chatid, $msgid, $text){
    global $debug;
    $data = array(
        'chat_id' => $chatid,
        'text'  => $text,
        'reply_to_message_id' => $msgid   // <---- biar ada reply nya balasannya, opsional, bisa dihapus baris ini
    );
    // use key 'http' even if you send the request to https://...
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents(request_url('sendMessage'), false, $context);
    if ($debug)
        print_r($result);
}

function create_response($text, $message){
    global $usernamebot;
    // inisiasi variable hasil yang mana merupakan hasil olahan pesan
    $hasil = ''; 
    $fromid = $message["from"]["id"]; // variable penampung id user
    $chatid = $message["chat"]["id"]; // variable penampung id chat
    $pesanid= $message['message_id']; // variable penampung id message
    // variable penampung username nya user
    isset($message["from"]["username"])
        ? $chatuser = $message["from"]["username"]
        : $chatuser = '';
   
    // variable penampung nama user
    isset($message["from"]["last_name"])
        ? $namakedua = $message["from"]["last_name"]
        : $namakedua = ''; 
    $namauser = $message["from"]["first_name"]. ' ' .$namakedua;
    // ini saya pergunakan untuk menghapus kelebihan pesan spasi yang dikirim ke bot.
    $textur = preg_replace('/\s\s+/', ' ', $text);
    // memecah pesan dalam 2 blok array, kita ambil yang array pertama saja
    $command = explode(' ',$textur,2); //
    $perintah=$command[0];
$perintah=strtolower($perintah);

switch ($perintah) {
        case '/id':
        case '/id'.$usernamebot :
            $hasil = "$namauser, ID kamu adalah $fromid";
            break;
       
        // jika ada permintaan waktu
        case '/time':
        case '/time'.$usernamebot :
            $hasil  = "$namauser, waktu lokal bot sekarang adalah :\n";
            $hasil .= "\xE2\x8C\x9A".date("d M Y")."\nPukul ".date("H:i:s");
            break;
           
        case '/start':
             $hasil  = "assalamualaikum saudara/i $namauser
                        berikut list command dari bot ini :
                        => /id   --> untuk menampilkan id anda
                        => /time --> untuk menampilkan waktu lokal anda";
             break;

        case '/tes':
             $hasil  = "tessting asfalksf";
             break;

case '/on1':
             $hasil  = "Perintah Menyalakan Lampu 1 Berhasil...";
echo  "on1";simpanURL("1");
             break;

case '/off1':
            $hasil  = "Perintah Mematikan Lampu 1 Berhasil...";
            echo  "off1"; simpanURL("2");
break;

case '/on2':
             $hasil  = "Perintah Menyalakan Lampu 2 Berhasil...";
echo  "on2";simpanURL("3");
             break;
case '/off2':
            $hasil  = "Perintah Mematikan Lampu 2 Berhasil...";
            echo  "off2"; simpanURL("4");
break;

case '/on3':
             $hasil  = "Perintah Menyalakan Lampu 3 Berhasil...";
echo  "on3";simpanURL("5");
             break;
  case '/off3':
            $hasil  = "Perintah Mematikan Lampu 3 Berhasil...";
            echo  "off3"; simpanURL("6");
break;
case '/open':
             $hasil  = "Perintah membuka Pintu Berhasil...";
echo  "on3";simpanURL("7");
             break;
  case '/close':
            $hasil  = "Perintah Menutup Berhasil...";
            echo  "off3"; simpanURL("8");
break;

        default:
            $hasil = 'Terimakasih, pesan telah kami terima.';
            break;
    }
    return $hasil;
}

//if (strlen($TOKEN)<20) {die("Token mohon diisi dengan benar!\n");}

function process_message($message){
    $updateid = $message["update_id"];
    $message_data = $message["message"];
    if (isset($message_data["text"])) {
    $chatid = $message_data["chat"]["id"];
        $message_id = $message_data["message_id"];
        $text = $message_data["text"];
        $response = create_response($text, $message_data);

        if (!empty($response)){
send_reply($chatid, $message_id, $response);
}
    }
    return $updateid;
}

function process_one(){
    global $debug;
    $update_id  = 0;
    echo "-";

    if (file_exists("last_update_id"))
        $update_id = (int)file_get_contents("last_update_id");

    $updates = get_updates($update_id);
    // jika debug=0 atau debug=false, pesan ini tidak akan dimunculkan
    if ((!empty($updates)) and ($debug) )  {
        echo "\r\n===== isi diterima \r\n";
        print_r($updates);
    }

    foreach ($updates as $message){
        echo '+';
        $update_id = process_message($message);
    }
   
    file_put_contents("last_update_id", $update_id + 1);
}


if(isset($_GET["index"]) && $_GET["index"]>0){
$isi=bacaURL();
echo $isi;
}
else{
process_one();
}

/*
while (true) {
    process_one();
echo $_SESSION["cdata"]."@";
    sleep(1);
}
*/




function simpanURL($R){
$kirim="https://api.thingspeak.com/update?api_key=6AQ86NJXWBFB634521&field1=$R";
prosesURL($kirim);
}

function bacaURL(){
$baca="https://api.thingspeak.com/channels/1089670/feeds.json?api_key=5TW0G96C5T5U9F5R21&results=1";
$hasil= prosesURL($baca);
$array = json_decode($hasil, true);
$x=$array["feeds"][0]["field1"];
return $x;
}

function prosesURL($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}

function bacaTXT(){
$myfile = fopen("data.txt", "r") or die("Unable to open file!");
$isi=fread($myfile,filesize("data.txt"));
fclose($myfile);
//tulisTXT("");
return $isi;
}

function tulisTXT($txt){
$myfile = fopen("data.txt", "w") or die("Unable to open file!");
fwrite($myfile, $txt);
fclose($myfile);
return $txt;
}



if(isset($_GET["baca"])){
$bacadata=$_GET["baca"];
tulisTXT($bacadata);
echo bacaTXT();
}


?>

PHP COde TFIDF + Naive Bayes



Proses DImulai dari
1.Buat datalatih Buku+Normaliasinya
Normalisasi meliputi: gabungan antara judul dan sinipsis/deskripsi

2.Input datauji + Normalisasinya
Normalisasi meliputi: gabungan antara judul dan sinipsis/deskripsi

Proses Normaliasi automatis terbentuk sat dokumen disimpan atau di ubah....
#Join Judul+Deskripsi -> CaseFolding -> Stopword - Stemming ->normalisasi


Selanjutnya dataUji akan di tokenisasi



Lanjut ke perhitungan Naive Bayes:




Dan Ini adalah contoh code implementasinya:



<style>
#table {
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    border-collapse: collapse;
    width: 100%;
background-color:#ddd;

}

#table td, #table th {
    border: 1px solid #696969;
    padding: 8px;
}



#table th {
padding-top: 12px;
    padding-bottom: 12px;
    text-align: left;
    background-color: #A9A9A9;
    color: white;
}
</style>

    <link rel="stylesheet" href="jsacor/jquery-ui.css">
    <link rel="stylesheet" href="resources/demos/style.css">
    <script src="jsacor/jquery-1.12.4.js"></script>
    <script src="jsacor/jquery-ui.js"></script>
    <script>
    $( function() {
    $( "#accordion" ).accordion({
    collapsible: true
    });
    } );
    </script>


<?php

$time_start = microtime(true);
//usleep(100);



$id_datauji=$_GET["id"];
$sql="select * from `$tb_datauji` where `id_datauji`='$id_datauji'";
$d=getField($conn,$sql);
$id_datauji=$d["id_datauji"];
$id_datauji0=$d["id_datauji"];
$judul=$d["judul"];
$ringkasan=$d["ringkasan"];
$jenis=$d["jenis"];
$normalisasi=$d["normalisasi"];
$class=$d["class"];
$dokumen=$d["dokumen"];
$dokumen0=$d["dokumen"];
$tanggal=WKT($d["tanggal"]);
$durasi=$d["durasi"];
$rekapitulasi=$d["rekapitulasi"];
$status=$d["status"];
$keterangan=$d["keterangan"];
//$normalisasi=getNorm($komentar0);

?>


<div id="accordion">
  <h4>Info Data Pengujian</h4>
  <div>
<table width="90%">
        <tr>
          <th width="166" ><label for="id_datauji">Id Pengujian</label>
          <th width="19">:
          <th width="397" colspan="2"><b><?php echo "<b>$id_datauji</b>";?></b>
        </tr>
        <tr>
          <td valign="top"><label for="judul">Judul</label>
          <td valign="top">:
          <td valign="top"><?php echo "<b>$judul</b>";?></td>
        </tr>
  <tr>
          <td  valign="top"><label for="ringkasan">Ringkasan</label>
          <td valign="top">:
          <td valign="top"><?php echo $ringkasan;?></td>
        </tr>
  <tr>
          <td  valign="top"><label for="normalisasi">Normalisasi</label>
          <td valign="top">:
          <td valign="top"><?php echo $normalisasi;?></td>
        </tr>
    <tr>
<td><label for="penilaian">Jenis</label>
<td>:<td colspan="2"><?php echo $jenis;?>
</td></tr>
        <tr>
          <td height="24"><label for="keterangan">Keterangan</label>
        <td>:<td colspan="2"><?php echo $keterangan;?></td></tr>
</table>

</div>

<?php
require_once __DIR__ . '/vendor/autoload.php';

error_reporting(0);
$initos = new \Sastrawi\Stemmer\StemmerFactory();
$bikinos = $initos->createStemmer();
$stemming=$bikinos->stem($normalisasi);
$stemmingnew=strtolower($stemming);

$ak=getStopNumber();
$ar=getStopWords();
$wordStop=$stemmingnew;
for($i=0;$i<count($ar);$i++){
 $wordStop =str_replace($ar[$i]." ","", $wordStop);
}

for($i=0;$i<count($ak);$i++){
 $wordStop =str_replace($ak[$i],"", $wordStop);
}
$juduluji=str_replace("  "," ", $wordStop);
//=====================================================
 $stemming=$juduluji;//NORM
 //=====================================================

  $arAsli=explode(".",$stemming);
 $jumk=count($arAsli);

 $AR=explode(" ",$stemming);
 $AR=array_unique($AR);

$m=0;
for($i=0;$i<count($AR);$i++){
 if(strlen($AR[$i])>1){
  $arUnix[$m]=$AR[$i];
  $m++;
}
 }
 //======================================



 $sql="select * from `$tb_datalatih`  order by `id_datalatih`";// asc limit 0,3";
$arr=getData($conn,$sql);
$i=0;
$arStem[0]=$stemming;
$gabungan=$stemming." ";
foreach($arr as $d) {
$judul0=$d["judul"];
$id_kategori0=$d["id_datalatih"];
$kalimat=$d["normalisasi"];
$kalimat0=$d["normalisasi"];
$kategori0=$d["class"];

$arJ[$i]=$judul0;
$arKode[$i]=$id_kategori0;
$arKat[$i]=$kategori0;

$arAslidoc[$i]=$kalimat0;

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

$stemming2=$bikinos->stem($kalimat0);
$stemmingnew2=strtolower($stemming2);
$wordStop2=$stemmingnew2;
for($y=0;$y<count($ar);$y++){
$wordStop2 =str_replace($ar[$y]." ","", $wordStop2);
}

for($y=0;$y<count($ak);$y++){
$wordStop2 =str_replace($ak[$y],"", $wordStop2);
}
$kalimatfilter=str_replace("  "," ", $wordStop2);

//==================
$gabungan.=$kalimatfilter." ";
$arStem[$i+1]=$kalimatfilter;
$arDoc[$i]=$kalimatfilter;
$arKe[$i]="Data ke-".($i+1);
$TOT[$i]=0;
$i++;
}
$jumk=$i;
 //======================================


$arAsli=explode(" ",$gabungan);
    $arUnix0=array_unique($arAsli);
 
  $ii=0;
  for($i=0;$i<count($arUnix0);$i++){
  if($arUnix0[$i]==""){}
  else{
  $arUnix[$ii]=$arUnix0[$i];
  $ii++;
}
  }
 
 $jumb=count($arUnix);
echo"<br><br><b>Hitung TF/IDF</b>";
$gab="<table width='300%' border='1'>";
$gab.="<tr><td>Kata";
$gab.="<td>Q";
 for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td><label title='$arJ[$i]'>D".$u."</label>";
 }
 $gab.="<td>df";
 $gab.="<td>IDF";
 $gab.="<td>QDF";
 for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td>QD".$u;
 }

  for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td>QDFD".$u;
 }

$gab.="<td>Q<sup>2</sup>";
  for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td>D<sup>2</sup>".$u;
 }



$gab.="</tr>";

 $bar=count($arUnix);
 for($i=0;$i<$bar;$i++){
  $kata=$arUnix[$i];
  $hitung=0;
 $gab.="<tr><td>".$kata."</td>";
 $jumada=0;

   for($j=0;$j<$jumk+1;$j++){
    $ada=getHit($kata,$arStem[$j]);
    $M[$i][$j]=$ada;
    if($ada>0){
$jumada++;
}
$gab.="<td>".$ada;
   }
 // $log=log($jumk+1,10)/$jumada;
  $log=log(($jumk)/$jumada,10);
 $log=abs($log);
 $gab.="<td>$jumada</td>";//idf
 $gab.="<td>log($jumk/$jumada)=$log";

   for($j=0;$j<$jumk+1;$j++){
$N[$i][$j]=$M[$i][$j] * $log;
$N2[$i][$j]=pow($N[$i][$j],2);

$TOT[$j]=$TOT[$j]+$N[$i][$j];
$gab.= "<td>".$N[$i][$j];
   }
 
  for($j=1;$j<$jumk+1;$j++){
    $NN[$i][$j-1]=$N[$i][0] * $N[$i][$j];
    $gab.= "<td>".$NN[$i][$j-1];
   }


  for($j=0;$j<$jumk+1;$j++){
    $gab.= "<td>".$N2[$i][$j];
   }
 
 $gab.="</tr>";
 }//for i


   for($j=0;$j<$jumk;$j++){//kolom
  $TOT1[$j]=0;
  for($k=0;$k<$bar;$k++){//baris
    $TOT1[$j]+=$NN[$k][$j];
}
   }

  for($j=0;$j<$jumk+1;$j++){
$TOT2[$j]=0;
for($k=0;$k<$bar;$k++){//baris
$TOT2[$j]+=$N2[$k][$j];
}
   }
 
//------------------------------------
$gab.="<tr><td>Kata";
$gab.="<td>Q";
 for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td>D".$u;
 }
 $gab.="<td>df";
 $gab.="<td>IDF";
 $gab.="<td>QDF";
 for($i=0;$i<$jumk;$i++){
  $u=$i+1;
  $gab.="<td>QD".$u;
 }

  for($i=0;$i<$jumk;$i++){
  $gab.="<td>".$TOT1[$i];
 }

  for($i=0;$i<$jumk+1;$i++){
  $gab.="<td>".$TOT2[$i];
 }


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


echo $gab;

//++++++++++++++++++++++++++++NORM2
  echo"<br><br><b>Hitung Klasifikasi</b>";
  $i=0;
  $tot=0;
  $sqlq="select distinct(`class`) from `$tb_datalatih` order by `class` asc";
$arrq=getData($conn,$sqlq);
foreach($arrq as $dq) {
$class=$dq["class"];
$nk=$class;
 
  $sql="select `id_datalatih` from `$tb_datalatih` where class='$class'";
  $jum=getJum($conn,$sql);
 
  $arKat[$i]=$class;
  $arIdKat[$i]=$class;
  $arJum[$i]=$jum;

  $tot+=$jum;
  $i++;
  }//foreach
  $p=$i;
 
  echo"<table border='1' width='60%'>";
  echo"<tr bgcolor='#bbbbbb'><td align='center'>No<td align='center'>Class<td>Jumlah</tr>";
  for($i=0;$i<$p;$i++){
  $no=$i+1;
  $kat=$arKat[$i];
  $jum=$arJum[$i];
  $color='#dddddd';
  if($i%2==0){$color='#eeeeee';}
  echo"<tr bgcolor='$color'><td>$no<td>$kat<td align='right'>$jum</tr>";
  }//for
  echo"</table>";
  echo"Total data=".$tot."<br>";
 
 
  $gab="";
  $sql="select `normalisasi` from `$tb_datalatih` order by `class` asc";
$arr=getData($conn,$sql);
foreach($arr as $d) {
$normalisasi=$d["normalisasi"];
if(strlen($normalisasi)>0){
$gab.=$normalisasi." ";
}
}
$ar0=explode(" ",$gab);

$ar=getUnik($ar0);
$N=count($ar);
 
  echo"<strong> Tokenization</strong>";
  $no=0;
  echo"<table border='1' width='60%'>";
  echo"<tr bgcolor='#bbbbbb'><td align='center'>No<td align='center'>Token";
    for($i=0;$i<$p;$i++){
  $kat=$arKat[$i];
  echo"<td>".$kat;
  }
  echo"</tr>";
  for($j=0;$j<count($ar)-1;$j++){
  $no=$j+1;
  $color='#dddddd';
  if($no%2==0){$color='#eeeeee';}
 
  $KAL=$ar[$j];
 
  echo"<tr bgcolor='$color'><td>$no<td>$KAL";
   for($i=0;$i<$p;$i++){
$idk=$arIdKat[$i];
$kalimat=$KAL;

  $r=getHitung($conn,$idk,$kalimat);//rand(0,1);
  echo"<td>".$r;
  }
  echo"</tr>";
  }//for
  echo"</table>";


  $ark=explode(" ",$stemming);
 
 echo"<br><br><b>Naive Bayes Classifier</b><table border='1' width='60%'>";
 echo"<tr bgcolor='#bbbbbb'><td align='center'>No<td align='center'>Class</td>";
  for($j=0;$j<count($ark);$j++){
echo"<td>".$ark[$j];
}
echo"</tr>";

  $pan=$p;
  for($i=0;$i<$pan;$i++){
  $no=$i+1;
  $idk=$arIdKat[$i];
  $kat=$arKat[$i];
  $jum=$arJum[$i];
  $color='#dddddd';
  if($i%2==0){$color='#eeeeee';}
 
  $n=$tot;
  $p=$jum/$tot;
  $m=count($ark);
 
  echo"<tr bgcolor='$color'><td>$no<td>$kat</td>";
$totc=$p;
$stotc="$p x ";

  for($j=0;$j<$m;$j++){
  $kata=$ark[$j];
  $nc=getHitung($conn,$idk,$kata);

  $ajum[$i][$j]=$nc;
  $bob[$i][$j]=($nc+($m * $p))/($n+$m);
  $totc *=$bob[$i][$j];
  $stotc .=$bob[$i][$j]." x ";
 
echo"<td>"."($nc+($m * $p))/($n+$m)<br>=".$bob[$i][$j];
}
$arTotc[$i]=$totc;
$arSTotc[$i]=$stotc;

echo"</tr>";
 
  }//for
  echo"</table><br><br>";
 
 echo"Perhitungan Probabilitas";
 echo"<table border='1' width='100%'>";
 echo"<tr bgcolor='#bbbbbb'><td align='center'>No<td align='center'>Kategori</td><td width='60%'>Formulas<td>Total</tr>";
  for($i=0;$i<$pan;$i++){
  $no=$i+1;
  $kat=$arKat[$i];
  $color='#dddddd';
  if($i%2==0){$color='#eeeeee';}
 
  $no=$i+1;
  echo"<tr bgcolor='$color'>
  <td align='center'  valign='top'>$no
<td  valign='top' align='left'>$kat</td>
<td valign='top'>".$arSTotc[$i]."<td  valign='top'>".$arTotc[$i]."</tr>";
  }
echo"</table><br>";
 
 
  //bubblerost
        for($x = 0; $x < $pan; $x++){
            for($a = 0 ;  $a < $pan - 1 ; $a++){
                if($a < $pan ){
                    if($arTotc[$a] < $arTotc[$a + 1] ){
                            swap($arTotc, $a, $a+1);
swap($arSTotc, $a, $a+1);
  swap($arKat, $a, $a+1);
                    }
                }
            }
        }

 
 $rekapitulasi="Pengurutan Probabilitas";
 $rekapitulasi.="<table border=\"1\" width=\"100%\">";
 $rekapitulasi.="<tr bgcolor=\"#bbbbbb\"><td align=\"center\">No<td align=\"left\">Kategori</td><td width=\"60%\">Formulas<td>Total</tr>";
 $hs="";
  for($i=0;$i<$pan;$i++){
  $no=$i+1;
  $kat=$arKat[$i];
  $color='#dddddd';
  if($i%2==0){$color='#eeeeee';}
  if($i==0){$hs=$kat;}
  $no=$i+1;
  $rekapitulasi.="<tr bgcolor=\"$color\">
  <td align=\"center\"  valign=\"top\">$no
<td  valign=\"top\" align=\"center\">$kat</td>
<td valign=\"top\">".$arSTotc[$i]."<td  valign=\"top\">".$arTotc[$i]."</tr>";
  }
$rekapitulasi.="</table>";

echo $rekapitulasi;
echo"<br><font color='green' size='24'>Kategori: $hs</font>";

   $time_end = microtime(true);
   $durasi = $time_end - $time_start;

$sql="update `$tb_datauji` set
`class`='$hs',
`normalisasi`='$stemming',
`durasi`='$durasi',
`rekapitulasi`='$rekapitulasi',
`status`='Proses',
`keterangan`=''
where `id_datauji`='$id_datauji'";
$ubah=process($conn,$sql);



    function swap2(&$arr, $a, $b) {
        $tmp = $arr[$a];
        $arr[$a] = $arr[$b];
        $arr[$b] = $tmp;
    }



function getUnik($a){
$b=array_unique($a);
$i=0;
for($m=0;$m<=count($a);$m++){
if($b[$m]==""){}
else{
$c[$i]=$b[$m];
$i++;
}
}
return $c;
}
function getHitung($conn,$idk,$kata){
$sql="select `id_datalatih` from `tb_datalatih` where `class`='$idk' and `normalisasi` like '%$kata%'";//kalimat
  $rs=$conn->query($sql);
  $jum= $rs->num_rows;
$rs->free();
return $jum;
}

  ?>

</div>
</div>









Telegram PHP


Jika ingin auto respon terhadap Pesan masuk telegram ...begini codenya:
<?php

$TOKEN      = "1248813236:AAGa6Cizh9QLuEZzq8J2frogeVaY72s79SU"; // ganti dengan token bot anda
$usernamebot= "@tessboot_bot"; // sesuaikan besar kecilnya, bermanfaat nanti jika bot dimasukkan grup.
$debug = false;

function request_url($method){
    global $TOKEN;
    return "https://api.telegram.org/bot" . $TOKEN . "/". $method;
}

function get_updates($offset) {
    $url = request_url("getUpdates")."?offset=".$offset;
        $resp = file_get_contents($url);
        $result = json_decode($resp, true);
        if ($result["ok"]==1)
            return $result["result"];
        return array();
}
function send_reply($chatid, $msgid, $text){
    global $debug;
    $data = array(
        'chat_id' => $chatid,
        'text'  => $text,
        'reply_to_message_id' => $msgid 
    );

    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents(request_url('sendMessage'), false, $context);
    if ($debug)
        print_r($result);
}

function create_response($text, $message){
    global $usernamebot;
    $hasil = ''; 
    $fromid = $message["from"]["id"];
    $chatid = $message["chat"]["id"];
    $pesanid= $message['message_id'];
    isset($message["from"]["username"])
        ? $chatuser = $message["from"]["username"]
        : $chatuser = '';
   
    isset($message["from"]["last_name"])
        ? $namakedua = $message["from"]["last_name"]
        : $namakedua = ''; 
    $namauser = $message["from"]["first_name"]. ' ' .$namakedua;
    $textur = preg_replace('/\s\s+/', ' ', $text);
    $command = explode(' ',$textur,2);


    switch ($command[0]) {
        case '/id':
        case '/id'.$usernamebot :
            $hasil = "$namauser, ID kamu adalah $fromid";
            break;
       
        case '/time':
        case '/time'.$usernamebot :
            $hasil  = "$namauser, waktu lokal bot sekarang adalah :\n";
            $hasil .= "\xE2\x8C\x9A".date("d M Y")."\nPukul ".date("H:i:s");
            break;
           
        case '/start':
             $hasil  = "assalamualaikum saudara/i $namauser
                        berikut list command dari bot ini :
                        => /id   --> untuk menampilkan id anda
                        => /time --> untuk menampilkan waktu lokal anda";
             break;
        case '/tes':
             $hasil  = "tessting asfalksf";
             break;

        // balasan default jika pesan tidak di definisikan
        default:
            $hasil = 'Terimakasih, pesan telah kami terima.';
            break;
    }
    return $hasil;
}

if (strlen($TOKEN)<20)
    die("Token mohon diisi dengan benar!\n");
// fungsi pesan yang sekaligus mengupdate offset
// biar tidak berulang-ulang pesan yang di dapat
function process_message($message){
    $updateid = $message["update_id"];
    $message_data = $message["message"];
    if (isset($message_data["text"])) {
    $chatid = $message_data["chat"]["id"];
        $message_id = $message_data["message_id"];
        $text = $message_data["text"];
        $response = create_response($text, $message_data);
        if (!empty($response))
          send_reply($chatid, $message_id, $response);
    }
    return $updateid;
}


function process_one(){
    global $debug;
    $update_id  = 0;
    echo "-";

    if (file_exists("last_update_id"))
        $update_id = (int)file_get_contents("last_update_id");

    $updates = get_updates($update_id);
    // jika debug=0 atau debug=false, pesan ini tidak akan dimunculkan
    if ((!empty($updates)) and ($debug) )  {
        echo "\r\n===== isi diterima \r\n";
        print_r($updates);
    }

    foreach ($updates as $message)
    {
        echo '+';
        $update_id = process_message($message);
    }
   
    // update file id, biar pesan yang diterima tidak berulang
    file_put_contents("last_update_id", $update_id + 1);
}
// metode poll
// proses berulang-ulang
// sampai di break secara paksa
// tekan CTRL+C jika ingin berhenti
while (true) {
    process_one();
    sleep(1);
}
// metode webhook
// secara normal, hanya bisa digunakan secara bergantian dengan polling
// aktifkan ini jika menggunakan metode webhook
/*
$entityBody = file_get_contents('php://input');
$pesanditerima = json_decode($entityBody, true);
process_message($pesanditerima);
*/

?>

ATau mnggunakan Node.js

Panggil di pathnya : node tes.js (misal namanya tes.js)



tes.js
const TelegramBot = require('node-telegram-bot-api');
const token = '1248813236:AAGYgrpUgIO7GhW6gp-SQ8Y5Wge6EegPiCA';
const bot = new TelegramBot(token, {polling: true});
bot.on('message', (msg) => {
   
    var Hi = "hi";
    if (msg.text.toString().toLowerCase().indexOf(Hi) === 0) {
    bot.sendMessage(msg.chat.id,"Hello dear user");
    }

    var Hi = "/a";
    if (msg.text.toString().toLowerCase().indexOf(Hi) === 0) {
    bot.sendMessage(msg.chat.id,"Hello apa user");
    }
       
    });
   


LIBRARY

CIri MAps GIS GoogleMap






*Pemetaan/GIS harus ada beberapa cirikhas:*
1.Ada marker2 lokasi di Map (marker objek wilayah dan lokasi titik awal/Misal Kampus)
2.Ada info detail Lokasi saat marker tersebut di dekati / Tooltipstext
3.Ada info lebih spesifikasi (Detail) jika marker tersebut di klik
4.Adanya fitur Direction....dari lokasi titik awal pengguna (Misal Kampus) ke Tujuan
5.Adanya fitur Pengarah jalan.....
6.Adanya proses Perhitungan jarak....dari lokasi titik awal pengguna (Misal Kampus) ke objek wisata tsb ...ini pakai rumus Havershine
7.Adanya fitur Ascending...informasi pengurutan jrak dari lokasi terdekat ke terjauh....menggunakan rumus Bubblesort
8.Adanya fitur pencarian berdasarkan batasan jarak...misal input 7LM maka hanya loaksi dengan jarak minimal <= 7KM yang muncul di peta
9.Penggunaan angka-angka koordinat latitude-longitude










Rabu, 17 Juni 2020

CSS BUTTON Bootstrap


Reff: https://getbootstrap.com/docs/4.0/components/buttons/
https://getbootstrap.com/docs/4.0/components/dropdowns/

style='width: 50px;'


window.onload = function() {
  document.getElementById("myText").focus();
};


<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>

<button type="button" class="btn btn-link">Link</button>





<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>

SIZE BUTTON

<button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-secondary btn-lg">Large button</button>

<button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-secondary btn-sm">Small button</button>


<button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>




DISABLED BUTTON
<a href="#" class="btn btn-primary btn-lg disabled" role="button" aria-disabled="true">Primary link</a>
<a href="#" class="btn btn-secondary btn-lg disabled" role="button" aria-disabled="true">Link</a>


LINK BUTTON

<a class="btn btn-primary" href="#" role="button">Link</a>
<button class="btn btn-primary" type="submit">Button</button>
<input class="btn btn-primary" type="button" value="Input">
<input class="btn btn-primary" type="submit" value="Submit">
<input class="btn btn-primary" type="reset" value="Reset">



<form>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputEmail4">Email</label>
      <input type="email" class="form-control" id="inputEmail4" placeholder="Email">
    </div>
    <div class="form-group col-md-6">
      <label for="inputPassword4">Password</label>
      <input type="password" class="form-control" id="inputPassword4" placeholder="Password">
    </div>
  </div>
  <div class="form-group">
    <label for="inputAddress">Address</label>
    <input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
  </div>
  <div class="form-group">
    <label for="inputAddress2">Address 2</label>
    <input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputCity">City</label>
      <input type="text" class="form-control" id="inputCity">
    </div>
    <div class="form-group col-md-4">
      <label for="inputState">State</label>
      <select id="inputState" class="form-control">
        <option selected>Choose...</option>
        <option>...</option>
      </select>
    </div>
    <div class="form-group col-md-2">
      <label for="inputZip">Zip</label>
      <input type="text" class="form-control" id="inputZip">
    </div>
  </div>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input" type="checkbox" id="gridCheck">
      <label class="form-check-label" for="gridCheck">
        Check me out
      </label>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Sign in</button>
</form>

Mencari Tanggal Terakhir Suatu Bulan

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