Sabtu, 18 Mei 2019

ini bukan robot...hanya sebatas latihan sj





1.Akan melaporkan adaanya kesalahan input data


2.akan mengetahui secara automatis berapa kali data TPS mengalami revisi perubahan2 data


3.Saat gaambar amplop di kanan sendiri di  klik maka sistem akan masuk ke halaman detail dari data TPS yang bersangkutam


masing masing data detail akan menjelaskan lebih detail asal muasal data tsb.
C1-1 adalah dokumen C1 sebelum adanya revisi (file asalnya)
C2-1 adalah dokumen C2 sebelum adanya revisi (file asalnya)

C1-2 adalah dokumen C1 hasil revisi / link terbaru
C2-2 adalah dokumen C2 hasil revisi / link terbaru


4.Adanya fasilitas web pembanding dari kawalpemilu yang sudah memiliki banyak referensi C1 sehingga kita bisa melakukan uji keabsahan C1



Dari gambar sbb kita bisa melcak sumber C1 mana yang absah atau tidak dari beberapa berkas C1 yang masuk di TPS ybs





5.Adanya link sumber / asli source JSON sehingga siapapun bisa memastikan keabsahand data real yang didapat




6.Dokumen terarsip secara automatis...artinya sistem akan mendata kapan terahir TPS itu di simpan atau kapan saja terupdate / berubah serta dokumen apa saja yang menyertainya....



7.Kemudahan melakukan pelaporan data: konvert ke json, xml, excel,ppt, pdf dll



8.sistem secara automatis akan mendownload C1 setiap ada event perubahan /revisi2 data




Parsing data Online

<?php


function get_dataa($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
  curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
); 

require_once"konmysqli.php";
echo date("Y-m-d h:i:s");


$i=0;
$sql="select idm from `$tbmaster` order by `idm` asc";
$arr=getData($conn,$sql);
foreach($arr as $d) {
$i++;
$ARIDM[$i]=$d["idm"];
}


 $sql="select * from `$tbmaster` order by `idm` asc limit 0,5000";//5000
  $jum=getJum($conn,$sql);
if($jum > 0){
$arr=getData($conn,$sql);
$member0="";
foreach($arr as $d) {
$idm=$d["idm"];
$propinsi=$d["propinsi"];
$kabupaten=$d["kabupaten"];
$kecamatan=$d["kecamatan"];
$kelurahan=$d["kelurahan"];
$tps=$d["tps"];
$member=$d["member"];
$link=$d["link"];
$link2=$d["link2"];
$note=$d["note"];
$pathurl=$d["pathurl"];

if(ADA($link,".json")<1){$link="$link.json";}

echo"$member - TPS $tps<br>
<b>LNK1=$link<br>
LNK2=$link2</b><br>";
$response1 = file_get_contents($link, false, stream_context_create($arrContextOptions));

//$response1 =get_dataa($link);
echo $response1."<br>";


$W=date("Y-m-d h:i:s");//2019-05-15 00:00:00
$arx=getArray($response1);
$ts=$arx[0];
$psu=$arx[1];
$chart1=$arx[2];
$chart2=$arx[3];
$images1=$arx[4];
$images2=$arx[5];
$pemilih_j=$arx[6];
$pengguna_j=$arx[7];
$suara_total=$arx[8];
$suara_tidak_sah=$arx[9];
$suara_sah=$arx[10];


$IMG1="";
$IMG2="";
$URL1="";
$URL2="";

if(strlen($images1)>5){
$x1=substr($pathurl,0,3);
$x2=substr($pathurl,3,3);

$IMG1="imgC1".date("ymdhis").".jpg";
$URL1="https://pemilu2019.kpu.go.id/img/c/$x1/$x2/".$pathurl."/".$images1;

$IMG2="imgC2".date("ymdhis").".jpg";
$URL2="https://pemilu2019.kpu.go.id/img/c/$x1/$x2/".$pathurl."/".$images2;
}


$response1=str_replace($ts,"",$response1);
$sqlX="INSERT INTO `$tbarsip` (`ida`,`idm`, `datetime`, `ts`, `psu`, `chart1`, `chart2`, `images1`, `images2`, `pemilih_j`, `suara_sah`, `pengguna_j`, `suara_total`, `suara_tidak_sah`, `contens`,`link_images1`, `link_images2`, `new_images1`,`new_images2`) VALUES
('', '$idm','$W', '$ts', '$psu', '$chart1', '$chart2', '$images1', '$images2', '$pemilih_j', '$suara_sah', '$pengguna_j', '$suara_total', '$suara_tidak_sah', '$response1', '$URL1', '$URL2', '$IMG1', '$IMG2')";
$simpan=process($conn,$sqlX);

if($simpan){
if(strlen($images1)>5){
$my_save_dir = 'download/';
//+++++++++++++++++++++download ?
   $outimg = file_get_contents($URL1, false, stream_context_create($arrContextOptions));
   //$outimg = get_dataa($URL1);
   $complete_save_loc = $my_save_dir.$IMG1;
   file_put_contents($complete_save_loc,$outimg);

   $outimg = file_get_contents($URL2, false, stream_context_create($arrContextOptions));
   // $outimg = get_dataa($URL2);
   $complete_save_loc = $my_save_dir.$IMG2;
   file_put_contents($complete_save_loc,$outimg);
//+++++++++++++++++++++download ?
}//strlen
}//simpan


if(strlen($link2)>0){
if($member0==$member){}
else{
$member0=$member;
  $response2 = file_get_contents($link2, false, stream_context_create($arrContextOptions));
  //$response2 = get_dataa($link2);
echo "<h2>DATA RESPONSE2</h2>";//$response2."";
//++++++++++++++++++++++++++++++++++++

  $emp = json_decode($response2, true);
  $idkel= $emp['id'];
  $kel=$emp['name'];

$idprop=$emp['parentIds'][1];
$idkab=$emp['parentIds'][2];
$idkec=$emp['parentIds'][3];

$prop=$emp['parentNames'][1];
$kab=$emp['parentNames'][2];
$kec=$emp['parentNames'][3];

$lokasi="$prop-$kab-$kec-$kel";
echo $lokasi."<br>";

$N= count($emp['data']);
for($i=1;$i<$N;$i++){
$readjson2=$emp['data'][$i]["photos"];
//var_dump($readjson2);

$ii=0;


//$emp = json_decode($readjson2, true);
foreach($readjson2 as $key=>$v){
$y=array2string($v);
if(ADA($y,"sah")>0){
$sah= $v["sum"]["sah"]+0;
if($sah>0){
echo $key ;//gambar
echo"<br>";
$ts= $v["ts"];//kode dokumen
$pas1= $v["sum"]["pas1"];
$pas2= $v["sum"]["pas2"];
$tSah= $v["sum"]["tSah"];
$pending=1;
$yy=array2string($v["sum"]);
if(ADA($yy,"pending")>0){
$pending= $v["sum"]["pending"];
}
$ii++;
echo "<b>TPS:$i-$ii</b>. $pas1#$pas2#$sah#$tSah#$pending";
$idmq=$ARIDM[$i];
$contens="$idprop-$idkab-$idkec-$idkel-$i:$pas1#$pas2#$sah#$tSah#$pending#TPS:$i-$ii";
$sqlY="INSERT INTO `$tbdetail` (`id`, `datetime`, `location`, `ts`, `pas1`, `pas2`, `images`, `sah`, `tSah`, `pending`, `contens`, `idm`, `tps`) VALUES
('', '$W', '$lokasi', '$ts', '$pas1', '$pas2', '$key', '$sah', '$tSah', '$pending', '$contens', '$idmq', '$i');";
process($conn,$sqlY);

//$error = json_last_error();
}
echo "<hr>";
}//>0
}
}//for

//++++++++++++++++++++++++++++++++++++
}//else
}//link2==0
echo "<hr>";
}//for IDM
}//jum
else{
echo"Belum Ada Data";
}

?>






<?php

function getArray($readjson){
$emp = json_decode($readjson, true);
$ar[0]=$emp['ts'];
$ar[1]=$emp['psu']."";
$ar[2]=$emp['chart'][21];
$ar[3]=$emp['chart'][22];
$ar[4]=$emp['images'][0];
$ar[5]=$emp['images'][1];
  $ar[6]=$emp['pemilih_j'];
  $ar[7]=$emp['pengguna_j'];
  $ar[8]=$emp['suara_total'];
$ar[9]=$emp['suara_tidak_sah'];
$ar[10]=$emp['suara_sah'];

return $ar;
}

function process($conn,$sql){
$s=false;
$conn->autocommit(FALSE);
try {
  $rs = $conn->query($sql);
  if($rs){
    $conn->commit();
    $last_inserted_id = $conn->insert_id;
  $affected_rows = $conn->affected_rows;
  $s=true;
  }
}
catch (Exception $e) {
echo 'fail: ' . $e->getMessage();
  $conn->rollback();
}
$conn->autocommit(TRUE);
return $s;
}

function getJum($conn,$sql){
  $rs=$conn->query($sql);
  $jum= $rs->num_rows;
//$rs->free();
return $jum;
}


function getField($conn,$sql){
$rs=$conn->query($sql);
$rs->data_seek(0);
$d= $rs->fetch_assoc();
$rs->free();
return $d;
}

function getData($conn,$sql){
$rs=$conn->query($sql);
$rs->data_seek(0);
$arr = $rs->fetch_all(MYSQLI_ASSOC);
//foreach($arr as $row) {
//  echo $row['nama_kelas'] . '*<br>';
//}

$rs->free();
return $arr;
}




function array2string($data){
    $log_a = "";
    foreach ($data as $key => $value) {
        if(is_array($value))    $log_a .= "[".$key."] => (". array2string($value). ") \n";
        else                    $log_a .= "[".$key."] => ".$value."\n";
    }
    return $log_a;
}


//echo ADA("HALO APA KABAR","HALO");
function ADA($str,$cari){
$str=($str);
$sp=strstr($str,$cari);
$p=strlen($sp)+0;
return $p;
}


?>



Kamis, 16 Mei 2019

Parsing Data Online Situng


https://pemilu2019.kpu.go.id/static/json/hhcw/ppwp/12920/13317/13369/13373/900062184.json


<?php
$x='{"ts": "2019-05-16 04:15:04", "psu": null, "chart": {"21": 15, "22": 154}, "images":
["6-13373-25-C1-PPWP-X7.jpg", "6-13373-25-C1-PPWP-X8.jpg"], "pemilih_j": 240, "suara_sah": 169, "pengguna_j": 170, "suara_total": 170, "suara_tidak_sah": 1}';
echo strlen($x);
echo "<hr>";
?>

<?php
$readjson = $x;//file_get_contents('employees.json') ;
$emp = json_decode($readjson, true);
print_r($emp);
echo"<hr>";

  echo $emp['ts']."<br/>";
   echo $emp['psu']."<br/>";
    echo $emp['chart'][21]."<br/>";
echo $emp['chart'][22]."<br/>";

echo $emp['images'][0]."<br/>";
echo $emp['images'][1]."<br/>";

  echo $emp['pemilih_j']."<br/>";
   echo $emp['pengguna_j']."<br/>";
    echo $emp['suara_total']."<br/>";
  echo $emp['suara_tidak_sah']."<br/>";

//Print data



?>




Parsing Json Data Permanen

Misal kita ingin memparsing data kawalpemilu:

https://kawal-c1.appspot.com/api/c/13370?155800212484113370?1558002124841


<?php
$readjson='{"id":13370,"name":"KOTO TINGGI","depth":4,"parentIds":[0,12920,13317,13369],"parentNames":["IDN","SUMATERA BARAT","AGAM","BASO"],"children":[[1,94,102],[2,95,110],[3,101,112],[4,79,75],[5,89,94],[6,108,118],[7,144,147],[8,91,103],[9,77,90],[10,89,109],[11,86,91],[12,89,101],[13,83,89],[14,91,93],[15,110,98],[16,112,102],[17,95,100],[18,73,77],[19,104,97],[20,103,102],[21,146,151],[22,125,140],[23,115,120],[24,111,114],[25,115,115],[26,138,156],[27,135,164],[28,115,109],[29,107,114],[30,109,114]],"data":{"0":{"sum":{"janggal":0,"cakupan":1,"pending":1,"laporKpu":0},"ts":0,"c1":null,"photos":{}},"1":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas2":129,"tSah":4,"sah":153,"pas1":24,"jum":157},"ts":1556019272888,"c1":null,"photos":{"http://lh3.googleusercontent.com/IzHuAjo0EbcKUzxitve66rQhK_32d51fxC3bY_gU1Nvdf2j2tv3ZCjUynVCwKLz1SCwPcrnNx1qsj1lKBSs":{"c1":{"type":1,"plano":1,"halaman":"2"},"sum":{"tSah":4,"sah":153,"pas2":129,"pas1":24},"ts":1556019262983},"http://lh3.googleusercontent.com/bxWFHBOj0NUUD7XipGGIM0FeT616eemC6Vhvv4OefdrNnGk40ntni3NpYzBILP7QSrRJxFz2dLbOvi98S2A":{"c1":{"plano":2,"halaman":"1","type":1},"sum":{"jum":157},"ts":1556019267982},"http://lh3.googleusercontent.com/PhVsAh4UtFFLc5LSzuYFs7u_3q5hMR6-hQrdAcX9xtp4zcVAcdxqtm764qXHwITGdcS11Qovda7-_rbsTq4":{"c1":{"plano":2,"halaman":"2","type":1},"sum":{"tSah":4,"sah":153,"pending":0,"pas2":129,"pas1":24},"ts":1556019272888}}},"2":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":161,"pas2":144,"tSah":2,"sah":159,"pas1":15},"ts":1556116066845,"c1":null,"photos":{"http://lh3.googleusercontent.com/DGZsJjpzeLcXc2ThJraFLyeGS252cD_rmQvzchMv_7np9De9sncLU9b3KCqmmhaOABabvaKhFxnqeytK-go":{"c1":{"plano":2,"halaman":"1","type":1},"sum":{"jum":161},"ts":1556116058011},"http://lh3.googleusercontent.com/t5R-U728Y1kwOJqA4XLkFZIddeJ5GTQLYwcNmSW6aoPMTxyoZdflueBAIJ0hNTb9q9wLnxsuiWrtmzqleqM":{"ts":1556116066845,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":15,"tSah":2,"pending":0,"sah":159,"pas2":144}}}},"3":{"sum":{"janggal":0,"cakupan":1,"pending":0,"tSah":6,"sah":157,"pas1":12,"pas2":145,"jum":163},"ts":1556116094992,"c1":null,"photos":{"http://lh3.googleusercontent.com/1EmlMDYw7OSamo4zuQEuB8PrRrqe6TWY8wemzJP4HPsVMmICQSFEky1ZA37TFcFR5xV0QQJgXhfqSJUf5QI":{"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":6,"sah":157,"pas2":145,"pas1":12},"ts":1556116090726},"http://lh3.googleusercontent.com/K6tTXHOvHMdxh6qOymT-BRj5BhozkMlORkk3mB3AMR_O7yqSEK4zfYPNBYLNrB5kH3UnbP7verjv_MTxslc":{"ts":1556116094992,"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":163,"pending":0}}}},"4":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas2":96,"tSah":5,"sah":119,"pas1":23,"jum":124},"ts":1556116137219,"c1":null,"photos":{"http://lh3.googleusercontent.com/6e9EFvWBMDZslUHLa7kNzolFb_H5Q3BZa7GRkP-NKF3LG17ByPKvKBjdvoYNU9hNsOZsJ2Dqb4D0H_xEcec":{"sum":{"pas2":96,"pas1":23,"tSah":5,"sah":119},"ts":1556116116739,"c1":{"plano":1,"halaman":"2","type":1}},"http://lh3.googleusercontent.com/q2Z8aqeFrr_MxgFkHTtDHXpavgIRb7lV1HjrwKy0wFK4t8H7RzJ4jpt4EoLk0HRBPq3_JGaaXfYURc8P_Zw":{"ts":1556116128774,"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":124}},"http://lh3.googleusercontent.com/iP6QmKLEcjzq5eXt9Zlp_ILxED8INW0ZVHL6j0ZHovQrmCxjHZzSKtuCG6o3SRS8PGBjMAUy6YO0QwJ6Yw":{"c1":{"plano":2,"halaman":"2","type":1},"sum":{"tSah":5,"pending":0,"sah":119,"pas2":96,"pas1":23},"ts":1556116137219}}},"5":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":142,"tSah":3,"sah":139,"pas1":17,"pas2":122},"ts":1556116166849,"c1":null,"photos":{"http://lh3.googleusercontent.com/GQJn8bEW3f4r1WGQEmtufZUmqbVUg-fIrTxqt3ehZjJh6qUhJFSRFZBnS8clpIZAUT07G9NW0PwT9_yhGsI":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":142},"ts":1556116160022},"http://lh3.googleusercontent.com/uphOAHfF_vtHed77bagmyZxUEZiIKsGLtyDwciS9NMg5p6Pqb9zMmB-ta9EuALRgjTTsQAHzFJxTRs_MXpzN":{"ts":1556116166849,"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":3,"sah":139,"pending":0,"pas2":122,"pas1":17}}}},"6":{"sum":{"janggal":0,"cakupan":1,"pending":0,"pas1":26,"pas2":130,"tSah":0,"sah":156,"jum":156},"ts":1556116205926,"c1":null,"photos":{"http://lh3.googleusercontent.com/tCU-aSIc0eYp0M7Jgq4VsFlB-q8zEitV6Wi5iRmPIq63sSqDH7n3uFTtHS0sv2SVwV7p1lDwbDRGrDZ44Q":{"ts":1556116200070,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":0,"sah":156,"pas2":130,"pas1":26}},"http://lh3.googleusercontent.com/xWd4TRZFKSrxfWmzNi__zk4whk6PsOXQyJiifKYfGh27ZiO1K942GANG5aDwiKyF4s56VLfqhAP966I6sO6N":{"ts":1556116205926,"c1":{"halaman":"1","type":1,"plano":2},"sum":{"pending":0,"jum":156}}}},"7":{"sum":{"janggal":0,"cakupan":1,"pending":0,"tSah":3,"sah":205,"pas1":33,"pas2":172,"jum":208},"ts":1556116231044,"c1":null,"photos":{"http://lh3.googleusercontent.com/nwaQJsfLSnCUsRbHXPpkBZP125y8HGQDwd_ngBRAMbBZm6TrbY99dSDw8IDOhrupcYqlJ2D1EG3U-YXwhHk":{"c1":{"plano":2,"halaman":"2","type":1},"sum":{"tSah":3,"sah":205,"pas2":172,"pas1":33},"ts":1556116225167},"http://lh3.googleusercontent.com/efWJaElIOcwpmPHJYN7f8Q-WFFqmrDk74fi8TTpB9aLcpMFz3JolDzX3HVujMcpiiIkoEMR5T6_df9E4kvA":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"pending":0,"jum":208},"ts":1556116231044}}},"8":{"sum":{"pending":0,"janggal":0,"cakupan":1,"tSah":4,"sah":162,"pas1":20,"pas2":142,"jum":166},"ts":1556116261683,"c1":null,"photos":{"http://lh3.googleusercontent.com/Ycu7vlCyPZul3izhEYBEWVqwwnn4V_DPKhonh0bF2f8c207wapuHN1AP-4EGPVGH9Op4IO9xLG3Wo1auQzM":{"sum":{"pas2":142,"pas1":20,"tSah":4,"sah":162},"ts":1556116244465,"c1":{"type":1,"plano":2,"halaman":"2"}},"http://lh3.googleusercontent.com/9LSbBYWEGrmAb4eQJcrY8Vubnwi5MBPDA48AS3SZxHRzzDN4oulREsHlcDBhEEYJSg3RY9F__WpgXkKxf1w":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"pending":0,"jum":166},"ts":1556116261683}}},"9":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas1":18,"pas2":112,"tSah":0,"sah":130,"jum":130},"ts":1556116282228,"c1":null,"photos":{"http://lh3.googleusercontent.com/UoUAAdCx6t64Na1BseYB-tWZp88s4mPUTAvbLJsr8CqiOEBtEQi-2xropqq7Lc_sBRXGa5LJPytGD64gw14":{"ts":1556116278559,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":18,"tSah":0,"sah":130,"pas2":112}},"http://lh3.googleusercontent.com/U0DK3HIkmo0oUG0J8zl4YPFycb7GqmADfO0vVXF-lSnooALyePKkp6ZWoQckJwq_B7mO5DykIb_yQ2TOnw":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"pending":0,"jum":130},"ts":1556116282228}}},"10":{"sum":{"janggal":0,"cakupan":1,"pending":0,"tSah":1,"sah":150,"pas1":21,"pas2":129,"jum":151},"ts":1556116298040,"c1":null,"photos":{"http://lh3.googleusercontent.com/XzQUaYE8x0C9OdP3htsyJqcLuK1jpbv4263axwT7M_8q5vcTHU_WEolVwE6C83aAV0RqNg2_55-hK41kzF8":{"ts":1556116293810,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":1,"sah":150,"pas2":129,"pas1":21}},"http://lh3.googleusercontent.com/uMb5Y7jaOEbnzy6Z2-K0SpPu8vIE1-cNHTA_a2XCSrPrGygUQg_Q68FLJ14_E6ueZmhT4ETxGyGtEtYLkGQ":{"sum":{"jum":151,"pending":0},"ts":1556116298040,"c1":{"halaman":"1","type":1,"plano":2}}}},"11":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas1":16,"pas2":122,"tSah":2,"sah":138,"jum":140},"ts":1556464040491,"c1":null,"photos":{"http://lh3.googleusercontent.com/UKFxjg1LZc5zL6iSsNK_JgCjh0mNsa0BLMgagPhhvR3Y0ZgW3VpTH3o9p2psvMEbCxdCRoF3BBz-JqasR6k":{"ts":1556464036422,"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":2,"sah":138,"pas2":122,"pas1":16}},"http://lh3.googleusercontent.com/1FnLFYteTbC-eI8-fYCIM5d8ZmpEmdh12ZvVLnYZdxPjo2ArcLi7PkOdrZhQ-XGbHfWFX5L7StZ_RUrqxQ":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"pending":0,"jum":140},"ts":1556464040491}}},"12":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas2":134,"tSah":1,"sah":152,"pas1":18,"jum":153},"ts":1556464053753,"c1":null,"photos":{"http://lh3.googleusercontent.com/zMVbaF244lsXkNJJb0izPNSQqxtgM1aFcjV3k96Bx-uSO0qlYaRz4V32mBG8TNoi-Np2ez0kHo4nYyCsZWEu":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":18,"tSah":1,"sah":152,"pas2":134},"ts":1556464048984},"http://lh3.googleusercontent.com/W7TCRcakMV4rY8r7gZUL18R1J8c_La-AkOdHGjVm7UsBNLThWICpa3PnvgfZz99ZyMlgGxbLvDIViJtBouY":{"c1":{"plano":2,"halaman":"1","type":1},"sum":{"pending":0,"jum":153},"ts":1556464053753}}},"13":{"sum":{"janggal":0,"cakupan":1,"pending":0,"tSah":5,"sah":132,"pas1":10,"pas2":122,"jum":137},"ts":1556464066892,"c1":null,"photos":{"http://lh3.googleusercontent.com/U0mNE7xMaG01PmeYaXP8DSyBsm13abY9_d0sIZTZWs9xh5TZQ7pym3grsLY69W42MBr5dBpY_P--DWII0A":{"ts":1556464062008,"c1":{"halaman":"2","type":1,"plano":2},"sum":{"pas1":10,"tSah":5,"sah":132,"pas2":122}},"http://lh3.googleusercontent.com/MRovjvwTIryUnrDg8hOCXZBVL-P3w1JBh5qiTc3IH2ILRXwMEPZ0-Z5PwbGJ27SMdmMGDGNA4DaX4-2FE84":{"ts":1556464066892,"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"pending":0,"jum":137}}}},"14":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":144,"pas2":123,"tSah":0,"sah":144,"pas1":21},"ts":1556464080651,"c1":null,"photos":{"http://lh3.googleusercontent.com/PjsbveLX82oa5iJY2vzPBABbbgGynZ3RC-LHhTqdQTm0MLkRXAEDjWQVN4OkYD-8Vl01cz7n4uMcKXVI7qTN":{"sum":{"jum":144},"ts":1556464076931,"c1":{"halaman":"1","type":1,"plano":2}},"http://lh3.googleusercontent.com/CvqMox0EIsyneqZPLx_cF4m4EpsU5FW4T_FhtpDLyOrTbk7DrQhbE1YD-LW3DCvSIuwnO_PGnu5pnsRWiro":{"ts":1556464080651,"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":0,"sah":144,"pending":0,"pas2":123,"pas1":21}}}},"15":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas1":20,"pas2":129,"tSah":3,"sah":149,"jum":152},"ts":1556464093631,"c1":null,"photos":{"http://lh3.googleusercontent.com/0aTFxrDdX8NM139bTLqJbgiWgFuN_mXjC6n_9Z3GsBFRe2vdrYkoeZDpbPfw5cSNxJJ61n3E4G3-T5umprQ":{"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":3,"sah":149,"pas2":129,"pas1":20},"ts":1556464089298},"http://lh3.googleusercontent.com/0VyEkUQrPgqeAsrPYYiXJ5X-MWOfMXSYsmYiiQZn25LyRftiZh7m36OAje74jxwm9R8k-EhZ_5VyrzzxwzY":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":152,"pending":0},"ts":1556464093631}}},"16":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas2":143,"tSah":4,"sah":165,"pas1":22,"jum":169},"ts":1556464106205,"c1":null,"photos":{"http://lh3.googleusercontent.com/cRClj7Po-0cosZ4nXeoS8WvmiMADvQrbPL8g9LRb_vJxZMZXGFgQdvDh1G0nyW74OTkUYP9rvMrKKrT7Bg":{"ts":1556464101257,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":4,"sah":165,"pas2":143,"pas1":22}},"http://lh3.googleusercontent.com/jJLHy26fz4JgyN8F4HXVSfQGa8zwhNUmk5Bn_JUrplY3D0R7nK6FabYuY75G_HL5dOsdA7nyBe2g4N0zvqZq":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":169,"pending":0},"ts":1556464106205}}},"17":{"sum":{"pending":0,"janggal":0,"cakupan":1,"jum":154,"tSah":0,"sah":154,"pas1":13,"pas2":141},"ts":1556639732998,"c1":null,"photos":{"http://lh3.googleusercontent.com/aj4_Ne20E3ZSuNnzOzjhTrkaG36ZrAM3F_UK3LrnneHimwKcn6lJDAVb6tdS6GzTOtalrWNqYvipdqy10g":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":154},"ts":1556464126192},"http://lh3.googleusercontent.com/Q57CSYqg03unLkGirjfcBZXbIsFXtR8j_qJmhwJQzfRNPO6i4XkFprSV3wvr7rW0fAm3xXCtTfiXa65Q9ivD":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":0,"pending":0,"sah":154,"pas2":141,"pas1":13},"ts":1556639732998}}},"18":{"sum":{"janggal":0,"cakupan":1,"pending":0,"pas2":91,"tSah":3,"sah":113,"pas1":22,"jum":116},"ts":1556464149677,"c1":null,"photos":{"http://lh3.googleusercontent.com/QW7oOIYbfXo69ebq7k69Vovcgnz3qJoopsWqo8jcefHOClO-Ul4tmYMCAaXqNSRf1tnGATiaDAlBswhsQRo":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":22,"tSah":3,"sah":113,"pas2":91},"ts":1556464144624},"http://lh3.googleusercontent.com/Tc3vx5N8-Gl9NGpanB0Pq9CNzQSO4RzjKLo7iblXjri7Jpasj6ENqZFY-awARlsD4CRtGYq6792ip-B37ib2":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":116,"pending":0},"ts":1556464149677}}},"19":{"sum":{"janggal":0,"cakupan":1,"pending":0,"tSah":1,"sah":155,"pas1":16,"pas2":139,"jum":156},"ts":1556464169308,"c1":null,"photos":{"http://lh3.googleusercontent.com/Bdjbx6WNfF8UTRie77pkgh6S3gk_04d31QN-ps24IRNi44RCu5zcpA3aFI6-fqmjiRzDQnG_s28EoNR_n9rz":{"c1":{"plano":2,"halaman":"2","type":1},"sum":{"pas2":139,"pas1":16,"tSah":1,"sah":155},"ts":1556464160687},"http://lh3.googleusercontent.com/aVtth8BCDMRBducNYB4PhiC2FKUXBHQZXRUOJd39Qv5kjCYG0cG9iodlbwy9AFyEaqeoT73hKoQMMM7TOik":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"pending":0,"jum":156},"ts":1556464169308}}},"20":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":167,"tSah":2,"sah":165,"pas1":37,"pas2":128},"ts":1556464192544,"c1":null,"photos":{"http://lh3.googleusercontent.com/l7eNowrH9m-gPQPTvVJ-aC3QeDSiyTTYl0FsVueBSTrwkiyfP2XsnNgPg6jyPMfCS1xZgPkMv4Ep25S2Zw4S":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":167},"ts":1556464177337},"http://lh3.googleusercontent.com/RyHhoFV42Z8auWs5TjP4-PaoNMQoUD9mZEhL7hfaddLWqNgHSV8_CyU8fEGz2_vbQwHziE1M1EO7bvhn3-vc":{"ts":1556464192544,"c1":{"halaman":"2","type":1,"plano":2},"sum":{"tSah":2,"sah":165,"pending":0,"pas2":128,"pas1":37}}}},"21":{"sum":{"pending":0,"janggal":0,"cakupan":1,"pas1":29,"pas2":194,"tSah":2,"sah":223,"jum":225},"ts":1556464208578,"c1":null,"photos":{"http://lh3.googleusercontent.com/gDBC0FxgrlathFRq5l38946wUoyoa9mWcaAbP38lstyvoq-ucWFFHtUZ3kYWXbq-EuAr5U2ujblfV1U7RJ8":{"c1":{"plano":2,"halaman":"2","type":1},"sum":{"tSah":2,"sah":223,"pas2":194,"pas1":29},"ts":1556464204876},"http://lh3.googleusercontent.com/vasqKQF7_0By7QkKmCG7ncquTTDEZlllsN8LrAlC8F0XeYqVq3K3uuDvBVea0oKxhIm43YFKSdmDY4zP8XCZ":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":225,"pending":0},"ts":1556464208578}}},"22":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":216,"pas1":29,"pas2":185,"tSah":2,"sah":214},"ts":1556464233906,"c1":null,"photos":{"http://lh3.googleusercontent.com/SftNGfofOEQf92MVKHRbPCu0a-oX8JMnCebLj-M5pdUNHCMpSIzRLjGw89uo_f05iGMpxPgV-i7khX-ZlnTn":{"ts":1556464217992,"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":216}},"http://lh3.googleusercontent.com/x_yKlDStNbyUKPwhgfVmaCbmoaA1msdZRbiHx8DoZkNGOrL61QLl25Fib8lJ1Ny5D4VE0vXafgBU8n_nmM1Y":{"ts":1556464233906,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":2,"sah":214,"pending":0,"pas2":185,"pas1":29}}}},"23":{"sum":{"pending":0,"janggal":0,"cakupan":1,"jum":190,"pas1":21,"pas2":167,"tSah":2,"sah":188},"ts":1556464245845,"c1":null,"photos":{"http://lh3.googleusercontent.com/PFgTk48hCvnIGR9QkBEXjH8hZoqc5uAgsr5dLqhkjOmuemXY6QlkF5B3w7SyY8y6AH3bTlYYFxoEyLxiQo0":{"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":190},"ts":1556464241200},"http://lh3.googleusercontent.com/sy_23LYnexuRvHo4DE1GaIGtPMU33zhWN6PBBprxLswkxdZjDYFtdrqMXsmF_R4MqbyPrtg8vzGIGc8qoxg":{"ts":1556464245845,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":21,"tSah":2,"sah":188,"pending":0,"pas2":167}}}},"24":{"sum":{"pending":0,"janggal":0,"cakupan":1,"tSah":6,"sah":163,"pas1":31,"pas2":132,"jum":169},"ts":1556464291576,"c1":null,"photos":{"http://lh3.googleusercontent.com/yWjJDjOAL80KJH3Qf371WsyhNcjJBohaAiCc2DyJpuPlZ7BQs16t3WTJpGgT1DGV-Dvm1IHKQqLXa6XM044":{"ts":1556464287792,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":31,"tSah":6,"sah":163,"pas2":132}},"http://lh3.googleusercontent.com/_1RWRWoJ9SKrZ5QEYjyEk0Nr-ASgzsDlMc2XvQcCDUUT5i7yV8yB3EkloaQ5z3URGg8Ewcc6Gq3lASBcrA":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":169,"pending":0},"ts":1556464291576}}},"25":{"sum":{"pending":0,"janggal":0,"cakupan":1,"jum":160,"pas2":136,"tSah":2,"sah":158,"pas1":22},"ts":1556464303871,"c1":null,"photos":{"http://lh3.googleusercontent.com/FknwTFajALZw9Nplx5Zv0YsMBbLKszg-zpkdM7cp9bHacK1ydFgCXTKNWxVEfvhYqNkCh6WkjDEWAxXmc_w9":{"ts":1556464299668,"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":160}},"http://lh3.googleusercontent.com/HLNidOwfGxf-jtbxAMyJwx71tNN2QPWZxIsVcvCdY88C3XFrQ_kkEKErvrszbp69-crNvSseMIKUHAFP52Ci":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":2,"sah":158,"pending":0,"pas2":136,"pas1":22},"ts":1556464303871}}},"26":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":231,"pas1":30,"pas2":195,"tSah":6,"sah":225},"ts":1556639748266,"c1":null,"photos":{"http://lh3.googleusercontent.com/KRj3nAsXbnHn9AskTCdxekqUf_eEQiSwtnKZw0JlGw_ziGVkWFBmRErbDiz3G18DNMPjeKuHJOVx6HLJTw":{"c1":{"plano":2,"halaman":"1","type":1},"sum":{"jum":231},"ts":1556464315891},"http://lh3.googleusercontent.com/8xKOIVNIJKN_9jlhaSJT3TKF81C0bC2QhV0bS6DWTv8iJWmb2bzppqCLE_O5AwSi5T7GOJg4AY8bvRsj5x4":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":6,"pending":0,"sah":225,"pas2":195,"pas1":30},"ts":1556639748266}}},"27":{"sum":{"janggal":0,"cakupan":1,"pending":0,"jum":225,"tSah":4,"sah":221,"pas1":19,"pas2":202},"ts":1556639756939,"c1":null,"photos":{"http://lh3.googleusercontent.com/FMEcdac4rtlsjtxwIptVEyO0yPjC16u73w8YbzFYNQYmO684SlKCe797C3DxPwiFZGEb-NATTYtIHULMqv8P":{"c1":{"plano":2,"halaman":"1","type":1},"sum":{"jum":225},"ts":1556506288758},"http://lh3.googleusercontent.com/WVMjkAI793w_aFWIUhjvjzgQ2YyUc3lf75YnsGCWzV2WBU5YP0AKJZtQicNPdDZQrMAUyqaYuHbzzXYKJEC0":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":4,"pending":0,"sah":221,"pas2":202,"pas1":19},"ts":1556639756939}}},"28":{"sum":{"janggal":1,"cakupan":1,"pending":0,"jum":169,"pas2":141,"tSah":1,"sah":168,"pas1":21},"ts":1556464327007,"c1":null,"photos":{"http://lh3.googleusercontent.com/s_MHO5KCAK9TMqwP3CBfFN2wjvoiE_5jCwxuMnBaOOmHpo97hHI7913OSLiN0qSgfdCXR5W99pEhRH8Z7XhJ":{"sum":{"jum":169},"ts":1556464323017,"c1":{"plano":2,"halaman":"1","type":1}},"http://lh3.googleusercontent.com/JL8EG95XbzPWdqBsfPg7YQgo1h2EJwhujxUScHEH9ZVupWCg-zf8DNNgbRLU11MYxBhJ78f53WzXIkKT1RgW":{"ts":1556464327007,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":1,"sah":168,"pending":0,"pas2":141,"pas1":21}}}},"29":{"sum":{"pending":0,"janggal":0,"cakupan":1,"jum":165,"tSah":3,"sah":162,"pas1":9,"pas2":153},"ts":1556464338245,"c1":null,"photos":{"http://lh3.googleusercontent.com/vjOv0FuqT5nYp5-HZ29AwxxunQQjyjkwsN6XMCVxdu2aeG7ZyC-HiwukLYTZ1S1-8KqYwS2gEsuWp7FL9PI":{"c1":{"type":1,"plano":1,"halaman":"1"},"sum":{"jum":165},"ts":1555564417896},"http://lh3.googleusercontent.com/gp6LpLre-hNiv_FIB0hPVF3AOQlzjZwLVjkFy8TC09U8jVKr6npc5ud2WEyXib6V6qYCO68hP3hobeTz6g":{"ts":1556464334170,"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"tSah":3,"sah":162,"pas2":153,"pas1":9}},"http://lh3.googleusercontent.com/TsAPrx4tkvk7gaO1iyimE0Ib4c2f24-LNyGo13oUGpDTkuSuDwCtZsDbxlht9BW3iwVt7xM4uFv5g-vtxtLV":{"ts":1556464338245,"c1":{"halaman":"1","type":1,"plano":2},"sum":{"jum":165,"pending":0}}}},"30":{"sum":{"pending":0,"janggal":0,"cakupan":1,"jum":170,"pas2":146,"tSah":3,"sah":167,"pas1":21,"laporKpu":0},"ts":1557228061151,"c1":null,"photos":{"http://lh3.googleusercontent.com/K09-FD1lwe9OgmSLdsTPNYEx68n_cDZjQdHEEVECDtGh6pXOcPEDqz9tipQDDwxRwRif0J82GTJ_rb1m_8o":{"c1":{"type":1,"plano":2,"halaman":"1"},"sum":{"jum":170},"ts":1556464344706},"http://lh3.googleusercontent.com/xOBkkoS4SBJtggvZx8JKylVN2khATg0U7IMWIA4Bmv4GYyhGoppAvZrBZvntTi8aaRzs3ToHn3Pg_24JWg":{"c1":{"type":1,"plano":2,"halaman":"2"},"sum":{"pas1":21,"tSah":3,"sah":167,"pas2":146},"ts":1556464351537},"http://lh3.googleusercontent.com/xuvHqwUMLJQRhwCJwZAYkj6Naiveg0nrGKm0ZfFCXt5oegi15JwVBUxfzy0_zETXtf02Bj3yEfwAejzwwJKb":{"sum":{"pending":0,"jum":170},"ts":1557228061151,"c1":{"plano":1,"halaman":"1","type":1}}}}},"kpu":[null,{"jum":157,"pas1":24,"pas2":129,"sah":153,"tSah":4},{"jum":161,"pas1":15,"pas2":144,"sah":159,"tSah":2},{"jum":163,"pas1":12,"pas2":145,"sah":157,"tSah":6},{"jum":124,"pas1":23,"pas2":96,"sah":119,"tSah":5},{"jum":142,"pas1":17,"pas2":122,"sah":139,"tSah":3},{"jum":156,"pas1":26,"pas2":130,"sah":156,"tSah":0},{"jum":208,"pas1":33,"pas2":172,"sah":205,"tSah":3},{"jum":166,"pas1":20,"pas2":142,"sah":162,"tSah":4},{"jum":130,"pas1":18,"pas2":112,"sah":130,"tSah":0},{"jum":151,"pas1":21,"pas2":129,"sah":150,"tSah":1},{"jum":140,"pas1":16,"pas2":122,"sah":138,"tSah":2},{"jum":153,"pas1":18,"pas2":134,"sah":152,"tSah":1},{"jum":137,"pas1":10,"pas2":122,"sah":132,"tSah":5},{"jum":144,"pas1":21,"pas2":123,"sah":144,"tSah":0},{"jum":152,"pas1":20,"pas2":129,"sah":149,"tSah":3},{"jum":169,"pas1":22,"pas2":143,"sah":165,"tSah":4},{"jum":154,"pas1":13,"pas2":141,"sah":154,"tSah":0},{"jum":116,"pas1":22,"pas2":91,"sah":113,"tSah":3},{"jum":156,"pas1":16,"pas2":139,"sah":155,"tSah":1},{"jum":167,"pas1":37,"pas2":128,"sah":165,"tSah":2},{"jum":225,"pas1":29,"pas2":194,"sah":223,"tSah":2},{"jum":216,"pas1":29,"pas2":185,"sah":214,"tSah":2},{"jum":190,"pas1":21,"pas2":167,"sah":188,"tSah":2},{"jum":169,"pas1":31,"pas2":132,"sah":163,"tSah":6},{"jum":160,"pas1":22,"pas2":136,"sah":158,"tSah":2},{"jum":231,"pas1":30,"pas2":195,"sah":225,"tSah":6},{"jum":225,"pas1":19,"pas2":202,"sah":221,"tSah":4},{"jum":169,"pas1":21,"pas2":141,"sah":168,"tSah":1},{"jum":165,"pas1":9,"pas2":153,"sah":162,"tSah":3},{"jum":170,"pas1":21,"pas2":146,"sah":167,"tSah":3}]}';
//echo strlen($x);
echo "<hr>";
?>

<?php
$emp = json_decode($readjson, true);
  $idkel= $emp['id'];
  $kel=$emp['name'];

$idprop=$emp['parentIds'][1];
$idkab=$emp['parentIds'][2];
$idkec=$emp['parentIds'][3];

$prop=$emp['parentNames'][1];
$kab=$emp['parentNames'][2];
$kec=$emp['parentNames'][3];

$lokasi="$prop-$kab-$kec-$kel#$idprop-$idkab-$idkec-$idkel";
echo $lokasi."<br>";

$N= count($emp['data']);
for($i=1;$i<$N;$i++){
$readjson2=$emp['data'][$i]["photos"];
//var_dump($readjson2);

$ii=0;
//$emp = json_decode($readjson2, true);
foreach($readjson2 as $key=>$v){
$y=array2string($v);
if(ADA($y,"sah")>0){
$sah= $v["sum"]["sah"]+0;
if($sah>0){
echo $key ."<br>";
$ts= $v["ts"] ."<br>";//kode dokumen
$pas1= $v["sum"]["pas1"];
$pas2= $v["sum"]["pas2"];
$tSah= $v["sum"]["tSah"];
$pending=1;
$yy=array2string($v["sum"]);
if(ADA($yy,"pending")>0){
$pending= $v["sum"]["pending"];
}
$ii++;
echo "<b>TPS:$i-$ii</b>. $pas1#$pas2#$sah#$tSah#$pending";
//$error = json_last_error();
}
echo "<hr>";
}//>0

}

}//for





function array2string($data){
    $log_a = "";
    foreach ($data as $key => $value) {
        if(is_array($value))    $log_a .= "[".$key."] => (". array2string($value). ") \n";
        else                    $log_a .= "[".$key."] => ".$value."\n";
    }
    return $log_a;
}
function jsonDecode1($json){
    $arr = json_decode($json, true);
    return $arr;
}


//echo ADA("HALO APA KABAR","HALO");
function ADA($str,$cari){
$str=($str);
$sp=strstr($str,$cari);
$p=strlen($sp)+0;
return $p;
}

?>

HASILNYA ADALAH SBB: