Selasa, 10 Juli 2018

Konversi .txt atau .pdf ke Text




<?php
if(isset($_POST["UPLOADFILE"])){
     
      $gambar0=strip_tags($_POST["gambar0"]);
if ($_FILES["gambar"] != "") {
@copy($_FILES["gambar"]["tmp_name"],"$YPATH/".$_FILES["gambar"]["name"]);
$gambar=$_FILES["gambar"]["name"];
}
else {$gambar=$gambar0;}
if(strlen($gambar)<1){$gambar=$gambar0;}


$gambar="ypathfile/$gambar";


require_once __DIR__ . '/vendor/autoload.php';
$cari=strstr($gambar,".txt");
    $p=strlen($cari);
    if($p>0){
$fh = fopen($gambar,'r');
while ($line = fgets($fh)) {
$bacapdf.=$line;
}
fclose($fh);
    }
else{//pdf
$initop = new \Smalot\PdfParser\Parser();
$ekstrakpdf = $initop->parseFile($gambar);
$bacapdf = $ekstrakpdf->gettext();
    }//echo $bacapdf;

//error_reporting(0);

$HASILBACAFILE=$bacapdf;



?>


Membuat Soal Random menggunakan SESSION

Teman2 ...mungkin sering dapat kode random.....
btw ini ada share sedikit ttg membuat soal random.....yang beda disini adalah sy menggunakan session sebagai alat perekam soal random, ybs....
keutungannya :
+SOAL BISA RANDOM
+SOAL MUNCUL SATU DEMI SATU
+MESKIPUN PENGGUNA BERPINDAH TAB BROWSER / REFRESH BERULANG TAPI SOAL TETAP STABIL


Nah itu .............


<?php

session_start();
$_SESSION["selesai"]=0;
if(!isset($_SESSION["ckat"])){
$kat=$_GET["kat"];
$_SESSION["chasil"]=0;
$_SESSION["crekap"]="";
$_SESSION["ckat"]=$kat;
$_SESSION["cawal"]="";
  $sql="select * from `tb_soal` where matapelajaran='$kat'";
$jumsoal=getJum($conn,$sql);
$_SESSION["jumsoal"]=$jumsoal;
$_SESSION['student']=array();

$i=0;
$sqlc="select * from `$tbsoal` where  matapelajaran='$kat' order by rand()";
    $jumc=getJum($conn,$sqlc);
$arr=getData($conn,$sqlc);
foreach($arr as $d) {
$id_soal=$d["id_soal"];
$M[$i]=$id_soal;
//echo "$i=".$id_soal."<br>";
$i++;
}
$_SESSION["student"]=$M;
}
//-----------
for($i = 0 ; $i < count($_SESSION["student"]) ; $i++) {
     //echo $i.'==='.$_SESSION["student"][$i].'<br>';
     }


if(!isset($_SESSION["m"])){
$_SESSION["m"]=0;
}

if(isset($_GET["Pilih"])){
$kat=$_SESSION["ckat"];
$sql="select * from `tb_soal` where matapelajaran='$kat'";
$jumsoal=getJum($conn,$sql);

$x=$_SESSION["m"];
if($x==0){
$_SESSION["cawal"]=WKT(date("Y-m-d"))." ". date("H:i:s");
}
$id_soal=$_SESSION["student"][$x];
$_SESSION["m"]++;
//jawaban=A&id_soal=27&jawab_benar=B&Pilih=Pilih&mnu=soal
$jawaban=$_GET["jawaban"];
$id_soal=$_GET["id_soal"];
$jawab_benar=$_GET["jawab_benar"];
$hasil="Salah";
if($jawab_benar==$jawaban){
$hasil="Benar";$_SESSION["chasil"]=$_SESSION["chasil"]+1;
$_SESSION["crekap"].="Soal ".$_SESSION["m"]." (ID:$id_soal):Benar,";
}
else{
$_SESSION["crekap"].="Soal ".$_SESSION["m"]." (ID:$id_soal):Salah,";
}

if($_SESSION["m"]>=($jumsoal)){
//if($_SESSION["m"]>=99){//artinya dari 1000soal hanya 100 yg ditampilkan
$ahir=WKT(date("Y-m-d"))." ". date("H:i:s");
$waktu="Jumlah Soal: ".$_SESSION["jumsoal"].", Waktu Pengerjaan: ".$_SESSION["cawal"]." s/d ".$ahir." WIB";
$sql="INSERT INTO `tb_hasil` (`id`, `kode_user`, `id_soal`, `rekapitulasi`, `hasil`, `keterangan`)
VALUES ('', '".$_SESSION["cid"]."', '".$_SESSION["ckat"]."', '".$_SESSION["crekap"]."', '".$_SESSION["chasil"]."', '$waktu')";
$simpan=process($conn,$sql);



$_SESSION["selesai"]=1;
}
}

if($_SESSION["selesai"]==1){
unset($_SESSION["selesai"]);
unset($_SESSION["m"]);
unset($_SESSION["student"]);
unset($_SESSION["crekap"]);
unset($_SESSION["chasil"]);
unset($_SESSION["jumsoal"]);
$_SESSION["student"]=array();

unset($_SESSION["student"]);
unset($_SESSION["m"]);
unset($_SESSION["ckat"]);
session_destroy();
echo "<script>alert('terimakasih atas partisipasinya.......See You Later...');
document.location.href='index.php';</script>";
}
else{

$m=$_SESSION["m"];
$id_soal=$_SESSION["student"][$m];
//echo"M=$m==$id_soal<br>";
$no=$m+1;

 $sql="select * from `tb_soal` where id_soal='$id_soal'";
$d=getField($conn,$sql);
$id_soal=$d["id_soal"];
$mata_pelajaran=$d["mata_pelajaran"];
$soal=$d["soal"];
$jawab_a=$d["jawab_a"];
$jawab_b=$d["jawab_b"];
$jawab_c=$d["jawab_c"];
$jawab_d=$d["jawab_d"];
$jawab_benar=$d["jawab_benar"];
$gambar=$d["gambar"];


$kat=$_SESSION["ckat"];
?>

<form name='form1' method='get' action=''>
  <table width='100%' border='0'>
    <tr>
      <td colspan='4'>&nbsp;</td>
    </tr>
    <tr>
      <td width='23%' rowspan='3' align='center' valign='middle'>
  <a href='#' onclick='buka(\"soal/zoom.php?id=$id_soal\")'><img src='graduation.jpg' width='150' height='180' /></a>
  </td>
      <td colspan='3'><h1><?php echo $no.". ".$soal;?> </h1><hr></td>
    </tr>

    <tr>
      <td colspan="3"><font size="+2">
  <input type="radio" id="pil" name="jawaban" value="A">A. <?php echo $jawab_a;?><br>
  <input type="radio" id="pil" name="jawaban" value="B">B. <?php echo $jawab_b;?><br>
  <input type="radio" id="pil" name="jawaban" value="C">C. <?php echo $jawab_c;?><br>
  <input type="radio" id="pil" name="jawaban" value="D">D. <?php echo $jawab_d;?><br>
  <input type="hidden" id="id_soal" name="id_soal" value="<?php echo $id_soal;?>"><br />
  <input type="hidden" id="jawab_benar" name="jawab_benar" value="<?php echo $jawab_benar;?>">
   
   
      </font><br /><br /><br />
<input type="submit" value="Pilih" name="Pilih">
    <input type="hidden" value="soal" name="mnu">
    <input type="hidden" value="<?php echo $kat;?>" name="kat">
  </td>
    </tr>
    <tr>
      <td width="20%">&nbsp;</td>
      <td width="28%">&nbsp;</td>
      <td width="29%" colspan='2'>&nbsp;</td>
    </tr>
  </table>
</form>

<?php
}
?>

login pengguna...
'
tampilan memilih kategori soal yang dibuka/aktif

menikmati soal2 yang aneh....

Walau di refresh...id soal tetap konstan...





Selasa, 03 Juli 2018

Forecasting HMM, Double exponential smoothing,fuzzy mamdani,

Exponential Smoothing adalah suatu prosedur yang secara terus menerus memperbaiki peramalan dengan cara menghitung nilai rata-rata .

Yaitu dengan cara menghaluskan /smoothing nilai sebelumnya dengan cara exponential.
caranya dengan memberi nilai pembobot pada serangkaian pengamatan sebelumnya untuk memprediksi nilai masa depan.


MACAM-MACAM METODE

1.      Single Exponentials Smoothing

 Model mengasumsikan bahwa data berfluktuasi di sekitar nilai mean yang tetap, tanpa trend atau pola pertumbuhan konsisten berdasarkan time series , yaitu melalui penggunaan sebuah konstanta smoothing (penghalus).

Konstanta smoothing mungkin berkisar dari 0 ke 1. Nilai yang dekat dengan 1 memberikan penekanan terbesar pada nilai saat ini sedangkan nilai yang dekat dengan 0 memberi penekanan pada titik data sebelumnya.

Rumus untuk Simple exponential smoothing adalah sebagai berikut:

St = α * Xt + (1 – α) * St-1

dimana:
St = peramalan untuk periode t.
Xt + (1-α) = Nilai aktual time series
Ft-1 = peramalan pada waktu t-1 (waktu sebelumnya)
α = konstanta perataan antara 0 dan 1


2.Double Exponentials Smoothing

Metode ini digunakan ketika berbentuk data trend.
Ada dua metode dalam Double Exponential Smoothing, yaitu :

a)      Metode Linier Satu Parameter dari Brown’s
Metode ini dikembangkan oleh Brown’s untuk mengatasi perbedaan yang muncul antara data aktual dan nilai peramalan apabila ada trend pada poltnya. Dasar pemikiran dari pemulusan eksponensial linier dari Brown’s adalah serupa dengan rata-rata bergerak linier (Linier Moving Average), karena kedua nilai pemulusan tunggal dan ganda ketinggalan  dari data yang sebenarnya bilamana terdapat unsur trend, perbedaan antara nilai pemulusan tunggal dan ganda ditambahkan kepada nilai pemulusan dan disesuaikan untuk trend. Persamaan yang digunakan pada metode ini adalah :




Minggu, 01 Juli 2018

PHP AUTO CODE



<?php
  $sql="select `kode_paket` from `$tbpaket` order by `kode_paket` desc";
   $q=mysqli_query($conn, $sql);
  $jum=mysqli_num_rows($q);
  $kd="PKT";
if($jum > 0){
$d=mysqli_fetch_array($q);
$idmax=$d["kode_paket"];
$urut=substr($idmax,3,2)+1;//01
if($urut<10){$idmax="$kd"."0".$urut;}
else{$idmax="$kd".$urut;}
}
else{$idmax="$kd"."01";}
  $kode_paket=$idmax;
?>



<?php
$sql="select `kode_customer` from `$tbcustomer` order by `kode_customer` 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="CUS".$th.$bl;//KEG1610001
  if($jum > 0){
   $d=mysqli_fetch_array($q);
   $idmax=$d["kode_customer"];
 
   $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";}
  $kode_customer=$idmax;
?>






Sabtu, 30 Juni 2018

Belajar Dasar Proses Stemming






    <?php
$isidokumen="Jokowi Minta Kasus Beras Plastik Jangan Dibesar-besarkan
SOLO, KOMPAS.com — Presiden Joko Widodo (Jokowi) meminta masyarakat sabar dan tidak gegabah dalam menanggapi kasus beras sintetis. Jokowi juga meminta media untuk tidak membesar-besarkan masalah beras sintetis karena masih dalam tahap penelitian para ahli.
mnu=orderdetailKamu enggak usah gede-gedein, wong di satu tempat saja kok. Ini baru dilihat di labnya IPB, di labnya BPOM. Kalau sudah kami simpulkan, baru kita bicara. Jangan semua bicara, semua bicara, tetapi membesarkan masalah saja,mnu=orderdetail kata Jokowi saat mengikuti car free day di Solo, Minggu (24/5/2015).
Jokowi menegaskan akan mencari akar masalah beras sintetis tersebut. (Baca: Wapres JK: Beras Plastik Bukan Masalah Besar)
mnu=orderdetailYang paling penting, akar masalahnya apa? Dicek bener. Apakah hanya di Bekasi atau hanya di satu warung saja? Motivasinya apa?mnu=orderdetail katanya.
Jokowi meragukan peredaran beras plastik tersebut dilatarbelakangi mencari keuntungan karena harga plastik lebih mahal daripada beras. (Baca: Ada yang Janggal di Kasus Beras Plastik, Pengusaha Duga Ada Persaingan Tak Sehat)
mnu=orderdetailSecara logika, enggak masuk kalau motifnya mencari untung karena harga plastik lebih mahal dari beras,mnu=orderdetail katanya.
Direktur Jenderal Pengolahan dan Pemasaran Hasil Pertanian Kementerian Pertanian Yusni Emilia Harahap, seperti dikutip harian Kompas, mengatakan, kasus beras sintetis perlu dituntaskan agar tidak meresahkan masyarakat dan pedagang. (Baca: Bahaya Jangka Pendek dan Jangka Panjang Beras Plastik)
Kasus ini juga menunjukkan bahwa keamanan dan tata niaga pangan perlu diperbaiki. Asal-usul semua beras yang beredar harus bisa ditelusuri melalui pendaftaran merek dan pelaku usaha. Lokasi pengemasan beras pun harus terdaftar sehingga terkontrol.
Ketua Persatuan Penggilingan Padi dan Beras Indonesia Wilayah DKI Jakarta Nellys Soekidi serta Sekjen Asosiasi Pedagang Pasar Seluruh Indonesia Ngadiran mengatakan, kasus beras sintetis menyebabkan pendapatan pedagang beras turun sekitar 30 persen. Banyak konsumen yang memilih membeli beras hanya di toko modern daripada di pasar tradisional.
";
if(isset($_POST["STEM"])){
$isidokumen=$_POST["isidokumen"];
}
?>

 <div class="container">
    <form action="" method="post" enctype="multipart/form-data">
    <p align="center">
    <label for="kata"></label>
    <h3 align="center"> Masukan Kata</h3>
    <div align="center">
        <textarea name="isidokumen" cols="85" rows="15" id="isidokumen"><?php echo $isidokumen;?>
</textarea>
        </p>
<input type="submit" value="Stem" name="STEM" />
   </div>
   </form>
 
 
   <div class="row">
   <div class="col-lg-4 col-lg-offset-1">
   
    <?php
if(isset($_POST['STEM'])){
require_once __DIR__ . '/vendor/autoload.php';

$bacapdf=$_POST["isidokumen"];
$initos = new \Sastrawi\Stemmer\StemmerFactory();
$bikinos = $initos->createStemmer();
$stemming=$bikinos->stem($bacapdf);
$stemming=strtolower($stemming);
echo $stemming;

}//isset

?>
</div>
</div>
</div>


Naive Bayes Klasifikasi Judul


Perintah StopWord:

function getStop($hasil){
$ar=getStopWords();
$p=count($ar);

for($i=0;$i<$p;$i++){
$hasil=str_replace($ar[$i]." ","",$hasil);
}
return $hasil;
}



function getStopWords(){
        return array(
            'yang', 'untuk', 'pada', 'ke', 'para', 'namun', 'menurut', 'antara', 'dia', 'dua',
            'ia', 'seperti', 'jika', 'jika', 'sehingga', 'kembali', 'dan', 'tidak', 'ini', 'karena',
            'kepada', 'oleh', 'saat', 'harus', 'sementara', 'setelah', 'belum', 'kami', 'sekitar',
            'bagi', 'serta', 'di', 'dari', 'telah', 'sebagai', 'masih', 'hal', 'ketika', 'adalah',
            'itu', 'dalam', 'bisa', 'bahwa', 'atau', 'hanya', 'kita', 'dengan', 'akan', 'juga',
            'ada', 'mereka', 'sudah', 'saya', 'terhadap', 'secara', 'agar', 'lain', 'anda',
            'begitu', 'mengapa', 'kenapa', 'yaitu', 'yakni', 'daripada', 'itulah', 'lagi', 'maka',
            'tentang', 'demi', 'dimana', 'kemana', 'pula', 'sambil', 'sebelum', 'sesudah', 'supaya',
            'guna', 'kah', 'pun', 'sampai', 'sedangkan', 'selagi', 'sementara', 'tetapi', 'apakah',
            'kecuali', 'sebab', 'selain', 'seolah', 'seraya', 'seterusnya', 'tanpa', 'agak', 'boleh',
            'dapat', 'dsb', 'dst', 'dll', 'dahulu', 'dulunya', 'anu', 'demikian', 'tapi', 'ingin',
            'juga', 'nggak', 'mari', 'nanti', 'melainkan', 'oh', 'ok', 'seharusnya', 'sebetulnya',
            'setiap', 'setidaknya', 'sesuatu', 'pasti', 'saja', 'toh', 'ya', 'walau', 'tolong',
            'tentu', 'amat', 'apalagi', 'bagaimanapun','bas',
        );
    }

=======================

Perintah Stemming

<form id="form1" name="form1" method="post" action="">
 <strong> Tulis Judul:</strong><br />
  <label for="textarea"></label>
  <textarea name="judul" id="judul" cols="100" rows="5"><?php echo $judul;?></textarea><br />
  <input type="submit" name="Proses" id="Proses" value="Hitung Klasifikasi Menggunakan Stemming -> Naive Bayes" />
</form>
<?php 



if(isset($_POST["Proses"])){
$kalimat=$_POST["judul"];
         $stemming=strtolower($kalimat);

require_once __DIR__ . '/vendor/autoload.php';
 $initos = new \Sastrawi\Stemmer\StemmerFactory();
 $bikinos = $initos->createStemmer();

$stemming=$bikinos->stem($stemming);
$stopword=getStop($stemming);

echo"<h4>";
echo "judul=".$kalimat."<hr>";
echo "stemming=".$stemming."<hr>";
echo "stopword=".$stopword."<hr>";

}
=====================================


 






Download Vendor Lib

Minggu, 03 Juni 2018

PHP COde cek IP and Browser


CEKBROWSER
<?php
function getBrowser()
{
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $bname = 'Unknown';
    $platform = 'Unknown';
    $version= "";

    //First get the platform?
    if (preg_match('/linux/i', $u_agent)) {
        $platform = 'linux';
    }
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
        $platform = 'mac';
    }
    elseif (preg_match('/windows|win32/i', $u_agent)) {
        $platform = 'windows';
    }

    // Next get the name of the useragent yes seperately and for good reason
    if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Internet Explorer';
        $ub = "MSIE";
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $bname = 'Mozilla Firefox';
        $ub = "Firefox";
    }
    elseif(preg_match('/OPR/i',$u_agent))
    {
        $bname = 'Opera';
        $ub = "Opera";
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $bname = 'Google Chrome';
        $ub = "Chrome";
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $bname = 'Apple Safari';
        $ub = "Safari";
    }
    elseif(preg_match('/Netscape/i',$u_agent))
    {
        $bname = 'Netscape';
        $ub = "Netscape";
    }

    // finally get the correct version number
    $known = array('Version', $ub, 'other');
    $pattern = '#(?<browser>' . join('|', $known) .
    ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
        // we have no matching number just continue
    }

    // see how many we have
    $i = count($matches['browser']);
    if ($i != 1) {
        //we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
        }
        else {
            $version= $matches['version'][1];
        }
    }
    else {
        $version= $matches['version'][0];
    }

    // check if we have a number
    if ($version==null || $version=="") {$version="?";}

    return array(
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'platform'  => $platform,
        'pattern'    => $pattern
    );
}

// now try it
$ua=getBrowser();
$yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];
print_r($yourbrowser);
?>





CEKIP


<?php
echo get_client_ip();
echo"<br>";
echo get_IP_address();
echo"<hr>";


function get_IP_address()
{
    foreach (array('HTTP_CLIENT_IP',
                   'HTTP_X_FORWARDED_FOR',
                   'HTTP_X_FORWARDED',
                   'HTTP_X_CLUSTER_CLIENT_IP',
                   'HTTP_FORWARDED_FOR',
                   'HTTP_FORWARDED',
                   'REMOTE_ADDR') as $key){
        if (array_key_exists($key, $_SERVER) === true){
            foreach (explode(',', $_SERVER[$key]) as $IPaddress){
                $IPaddress = trim($IPaddress); // Just to be safe

                if (filter_var($IPaddress,
                               FILTER_VALIDATE_IP,
                               FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)
                    !== false) {

                    return $IPaddress;
                }
            }
        }
    }
}

function get_client_ip()
 {
      $ipaddress = '';
      if (getenv('HTTP_CLIENT_IP'))
          $ipaddress = getenv('HTTP_CLIENT_IP');
      else if(getenv('HTTP_X_FORWARDED_FOR'))
          $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
      else if(getenv('HTTP_X_FORWARDED'))
          $ipaddress = getenv('HTTP_X_FORWARDED');
      else if(getenv('HTTP_FORWARDED_FOR'))
          $ipaddress = getenv('HTTP_FORWARDED_FOR');
      else if(getenv('HTTP_FORWARDED'))
          $ipaddress = getenv('HTTP_FORWARDED');
      else if(getenv('REMOTE_ADDR'))
          $ipaddress = getenv('REMOTE_ADDR');
      else
          $ipaddress = 'UNKNOWN';

      return $ipaddress;
 }

 ?>

Sweet Alert

Download library weetalert.min.js, letakkan dalam satu folder sejajar index !  https://drive.google.com/drive/folders/1uXhLjQv998HlVhtzObOPC...