Selasa, 30 Juli 2019

Cara Menjalankan Logstash dengan console

-> jalankan logstash :
- nyalakan elasticsearch dengan masuk folder bin elastic (elasticsearch-2.4.0)
- siapkan index/tabel di elastic index : "index_test", type : type_test
- masuk ke folder bin logstash -f nama_file.conf (logstash-5.6.0)
- untuk format data dalam nama_file.conf :
input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/nama_table_test?useSSL=false"
    jdbc_user => "root"
    jdbc_password => "root"
    jdbc_fetch_size => 1000000
    jdbc_page_size => 1000000
    statement => " select * query yang disesuaikan dengan db
"
    type => "type_test"
  }

}

output {
    elasticsearch {
        index => "index_test"
        document_type => "%{type}"
        document_id => "%{id_aktivitas_purchasing}"
     
    }

}

Minggu, 16 Juni 2019

Contoh SQL

// pembuatan tabel dan insert data

CREATE TABLE mahasiswa (
id_mahasiswa int(10),
nama_mahasiswa varchar(255)
);
insert into mahasiswa(id_mahasiswa, nama_mahasiswa)values(1001, 'Budi');
insert into mahasiswa(id_mahasiswa, nama_mahasiswa)values(1002, 'Aris');
insert into mahasiswa(id_mahasiswa, nama_mahasiswa)values(1003, 'Panji');

CREATE TABLE matakuliah (
id_matakuliah int(10),
nama_matakuliah varchar(255)
);
insert into matakuliah(id_matakuliah, nama_matakuliah)values(101, 'Struktur Data');
insert into matakuliah(id_matakuliah, nama_matakuliah)values(102, 'Rangkaian Digital');
insert into matakuliah(id_matakuliah, nama_matakuliah)values(103, 'Aljabar Linear');

CREATE TABLE nilai (
id_nilai int(10),
id_mahasiswa int(10),
id_matakuliah int(10),
nilai int(10)
);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000001, 1001, 101, 85);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000002, 1001, 102, 75);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000003, 1001, 103, 70);

insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000004, 1002, 101, 69);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000005, 1002, 102, 55);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000006, 1002, 103, 90);

insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000007, 1003, 101, 73);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000008, 1003, 102, 81);
insert into nilai(id_nilai, id_mahasiswa, id_matakuliah, nilai)values(1000009, 1003, 103, 61);

// query menentukan lulus

select
m.nama_mahasiswa,
mk.nama_matakuliah,
n.nilai,
if(n.nilai > 70, 'Lulus', 'Tidak Lulus') ket_lulus
from nilai n
join mahasiswa m on m.id_mahasiswa = n.id_mahasiswa
join matakuliah mk on mk.id_matakuliah = n.id_matakuliah
;

Cara deploy web ke cpanel

cara up / deploy ke cpannel :
=> untuk upload data project harus di compress ke zip, terus dari file manajer upload dan pastikan posisi folder nya di public_html
=> pastikan folder source code / project di folder 'public_html'
=> buat database dengan mengakses tab database->database mysql, dan buat database
=> untuk import table dengan cara buka database dari phpmyadmin dan import dari tabel yang kita punya dan sudah di dump ke mysql
=> untuk pointing masuk ke tab domain dan pilih domain, di sana bisa create new domain atau yang sudah ada tinggal edit, pastikan untuk arah nya ke project public (laravel juga ke folder public)

CSS

-> Responsive table (simpen sebelum tag table) :
style="overflow-x:auto;"
atau :
style="overflow-x: scroll;"

-> Supaya tampilan posisi datepicker di depan background :
.datepicker{z-index:1151 !important;}

->style gambar menjadi bulat css :
border-radius: 50%;
-> membuat bintang dan style warna dengan html :
<span style="color:red;">*</span>

-> tutorial pembuatan select2 :
https://ozkadon.blogspot.com/2018/11/tutorial-laravel-55-membuat-combobox-dropdown-dengan-fitur-autocomplete-menggunakan-select2.html

-> Limit kata dengan css : style="white-space: nowrap;overflow:hidden;text-overflow:ellipsis;max-width: 600px;"
-> untuk text atau tombol posisi ditengah-tengah antara div atau class : style="margin: auto;"
-> memunculkan dropodown di depan panel body :
.table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: visible;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
    height: 120px;
}
-> mengatur posisi di kanan right satu baris inline :
class="form-inline ml-auto"
-> membuat posisi style wrapper ditengan :
display: flex;
         justify-content: center;
         align-items: center;

Sabtu, 25 Mei 2019

Fungsi PHP | Laravel

-> Modulus adalah sisa pembagian antara 2 variabel, dalam pemrograman php bisa di implementasi sebagai berikut :
<?php
$a = 15;
$b = 5;
//menjumlahkan variabel a dengan variabel b
echo $a % $b;
?>

-> Menampilkan angka dan membuat kondisi di tiap kelipatan menggunakan php :
<?php
foreach(range(1, 100) as $number) {
  if ($number % 3 != 0 && $number % 5 != 0) {
    echo $number . '<br>';
    continue;
  }
  if ($number % 3 == 0) echo 'Indra';
  if ($number % 5 == 0) echo 'Wulida';
  // if ($number % 10 == 0) echo 'Ramdan';
  echo '<br>';
}

?>

-> Menampilkan angka ganjil genap dan keterangannya menggunakan php :
<?php
    for($no=1;$no<=25;$no++)
        {
            if($no % 2 == 0)
                {
            $hasil = $no % 2;
                echo "$no = Bilangan Genap<br> $hasil <br>";}
                // {echo "$no = Bilangan Genap<br>";}
            else
                {echo "$no = Bilangan Ganjil<br>";}
        }
?>

-> Membuat dan menampilkan bilangan fibocci :
<?php
// siapkan 2 angka awal
$angka_sebelumnya=0;
$angka_sekarang=1;

//tampilkan 2 angka awal
echo "$angka_sebelumnya $angka_sekarang";
echo "<br>";

for ($i=0; $i<10; $i++)
{
  // hitung angka yang akan ditampilkan
  $output = $angka_sekarang + $angka_sebelumnya;
  echo " $output";

  //siapkan angka untuk perhitungan berikutnya
  $angka_sebelumnya = $angka_sekarang;
  $angka_sekarang = $output;
}

// hasil:
// 0 1 1 2 3 5 8 13 21 34 55 89
?>

-> Melakukan perulangan dan penyusunan dari terbesar sampai terkecil dengan menggunakan php :
 <?php
for($i=1;$i<=9;$i++) {
for($k=$i;$k<=9;$k++) {
    echo $k;
    }
    echo "<br>";
    }
 ?>

-> fungsi untuk string php :
<?php
$data = " harga cabe merah sekarang Rp. 75.000";

$hanya_angka = intval($data); //angka diawal muncul, jika tidak 0

$pattern = '/([^0-9]+)/';
$angka_replace = preg_replace($pattern,'',$data);
$replace_string = str_replace(" harga cabe merah sekarang Rp. ","",$data);;

echo $replace_string;

$data = " No telp 02123456 an Bambang Pamungkas RpTag:749570 RpAdm:2500 TotalBayar Rp 750.250 segera dibayar ya !";
$no_tlp = substr($data, 9,8);
$no_tlp = substr($data, 9,8);

$replace_string1  = str_replace(" No telp 02123456 an Bambang Pamungkas RpTag:", "", $data);
$replace_string2  = str_replace(" RpAdm:2500 TotalBayar Rp 750.250 segera dibayar ya !", "", $replace_string1);
$RpTag =$replace_string2;

echo $RpTag;

?>

-> Melihat Perbandingan Antara 2 buah tanggal dengan php :
<?php
// xample perbandingan antara 2 tanggal
$a = new DateTime("2014-05-20 04:21:03");
$b = new DateTime("2014-07-12 13:32:45");
$perbandingan = $a->diff($b);

echo $perbandingan->days." Hari ". $perbandingan->h. " Jam ". $perbandingan->i. " Menit ".$perbandingan->s. " Detik";

?>

-> Menghilangkan banyak spasi / spasi ganda dengan php :
<?php

$teks = "saya ingin     makan      sate";

$menghilangkan_banyak_spasi = $teks;
// hasil : saya ingin     makan      sate
$menghilangkan_banyak_spasi = trim($teks);
// hasil : saya ingin makan sate

echo $menghilangkan_banyak_spasi;
?>

-> Default object array empty
$data = (object) [];

->

Kamis, 09 Mei 2019

Golang

-> https://dasarpemrogramangolang.novalagung.com/2-instalasi-golang.html (A.11)

-> cek golang sudah terinstall ketik di cmd/console jika berhasil muncul (go version go1.8.3 windows/amd64) :
go version

-> Start project :
1. buat project di folder C:\Go\src
2. buat project folder dan file nya, contoh :
file C:\Go\src\lat\hello.go
script :
package main

import "fmt"

func main() {
fmt.Println("Hello, Indra WR .")
}

-> ketik di command line/console :
PS C:\Go\src\lat> go run .\hello.go

-> console untuk masuk ke folder go path :
cd %GOPATH%\src\belajar-golang

-> Pemisah string :
fmt.Println("hello", "world!", "how", "are", "you")
Outputnya: hello world! how are you.

-> Untuk Memanggil param :
var firstName string = "Indra "
fmt.Printf("halo %s %s!\n", firstName)

-> Kode kode tertentu :
%s = ruang untuk nanti nya membuat string.
+ = untuk penggabungan string atau concatenate
\n = untuk memunculkan baris baru di akhir

-> untuk duplikasi type data (:=)
// menggunakan var, tanpa tipe data, menggunakan perantara "="
var firstName = "john"

// tanpa var, tanpa tipe data, menggunakan perantara ":="
lastName := "wick"

-> di golang semua variabel harus dipakai, klo tidak di pakai dia akan error, adapun keyword supaya dianggap command di golang yaitu memakan under score (_):
func main() {
var first, second, third string
first, second, third = "satu", "dua", "tiga"

// untuk variabel yang tidak dipakai
_ = "Indra"

fmt.Printf("halo%s\n%s\n%s !\n", first, second, third)
}

=> tanda ` (backtick) untuk mencetak string sesuai dengan penulisan script :
var message = `Nama saya "John Wick".
Salam kenal.
Mari belajar "Golang".`

fmt.Println(message)

=>

Senin, 06 Mei 2019

oracle

-> buat folder oracle->oracledev di C: (default)
-> pass : orcl
-> Open control panel -> administrative tools -> services -> the restart all the services starting with Oracle

===== Implement To Php =======
-> Install Oracle client (Download sesuai bit di php, tambahkan environment variabel)
-> Buka comment (;) di baris extension=oci8_12c (Untuk Membuka oci8, bisa dilihat di php info)
-> Contoh Script kecil php Untuk cek sudah konek oracle atau belum :
<?php
  if ($c = oci_connect("SYSTEM", "orcl", "//localhost:1521/XE")) {
   echo "Successfully connected to Oracle.";
   oci_close($c);
  } else {
   $err = oci_error();
   echo "Oracle Connect Error " . $err['text'];
  }
 ?>
->

Jumat, 29 Maret 2019

database

=> jika data atau id duplikat terus, cek struktur database takutnya ada increment(id) yang sudah di booking, cara lihat nya di dump struktur nya ja, terus lihat paling bawah biasa nya seperti ini (") ENGINE = InnoDB AUTO_INCREMENT = 2147483647 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;"), terus kita reset autoincrement dengan cara ("ALTER TABLE nama_tabel AUTO_INCREMENT = 23146906/increment id terakhir;").
=> mode groupby untuk mysql(jika masih bawaan/default system) :
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

=> remote server db dengan menggunakan terminal dan host , username , password :
mysql -u nama_user -p -h 192.168.ip.public -P3306

Senin, 11 Maret 2019

jquery javascript

-> menjalankan auto load untuk fungsi input => $('.row-permohonan :input').change();
-> Default select option onclik button :
$(".addMahasiswa").click(function(){
//akan otomatis pilih option yang valuenya 0
$('.mahasiswaSr').val('0').trigger('change');
});
-> pengambilan data value/attribut dari select option 
html :
<option namaSr="{{ $mahasiswa->nama }}" value="{{ $mahasiswa->id }}">{{ $mahasiswa->nama }}</option>
js :
$(".pilihSr").click(function(){
var mahasiswaNama = $('.mahasiswaSr option:selected').attr('namaSr');
});
-> auto add jquery select2
    - buat function terlebih dahulu
function initializeSelect2() {
$(document).ready(function() {
$('.formProgram').select2();
console.log('cela');
});
}
    - kemudian panggil setiap penambahan data/rows/form untuk refresh class dan pemasangan style:
    initializeSelect2();

-> auto count per baris => jquery : var $row = $(this).closest('tr.row-permohonan');
var idRow = +$row.find('.permohonan-disetujui-laki-laki').data('permohonan');
var permohonanDisetujuiLakilaki = +$row.find('.permohonan-disetujui-laki-laki').val();
view : <td><input class="width-input permohonan-disetujui-laki-laki" type="number" name="permohonan-disetujui-laki-laki[]" data-permohonan = "1" value="<?php echo set_value('permohonan_disetujui_laki',($lalin_izinkunjungan) ? $lalin_izinkunjungan[0]['permohonan_disetujui_laki'] : '0'); ?>"></td>

-> sum per class yang sama => var permohonanDisetujuiPerempuanAll = 0;
$('.permohonan-disetujui-perempuan').each(function(){
    permohonanDisetujuiPerempuanAll += parseFloat($(this).val());
});

-> sum param => $('.jumlah-permohonan-all').val(
parseInt(permohonanDisetujuiPerempuanAll) +
parseInt(permohonanDitolakPerempuanAll)
);

-> pemanggilan value berdasarkan class/id => $( "#jadwal_kegiatan" ).val();
-> pemanggilan value berdasarkan class/id part II => var total = 0;
$('input#sidik-laki').each(function() {
    var num = parseInt(this.value, 10);
    if (!isNaN(num)) {
        total += num;
    }
});
-> request data per 5 detik sekali => setInterval(function(){
// masukan fungsi
})
}, 5000);
-> memberi waktu tampil => setTimeout(function() {
your_func();
}, 5000);
-> public static void createSubmitChatPaket(Long id_chat, String pesan, Long paket_id, Boolean checkChat, String file) throws IOException {

-> dropdown berantai -> view : <select name="prov" id="prov" class="form-control prov">
                      <option value="0">- Pilih Provinsi -</option>
                        @foreach($provs as $i=>$prov)
                          <option value="{{ $prov->kota_id }}">{{ $prov->nama }}</option>
                        @endforeach
                    </select>
<div class="col-md-4">
                    <select name="kab" id="kab" class="form-control kab">
                    </select>
                  </div>
-> jquery : $('.prov').on('change',function(e){
    var prov = e.target.value;
    $.get('/ajax-prov-kab?id='+prov, function(data){
      $('.kab').empty();
        $('.kab').append('<option value="0">Pilih Kota/Kab.</option>');
      $.each(data,function(index,subcatObj){
        $('.kab').append('<option value="'+subcatObj.id_kab+'">'+subcatObj.nama+'</option>');
      });
    });
-> get data berdasarkan data yang di select -> var idProv = $(".prov option:selected").text();
-> kondisi if di jquery -> if ($(".prov option:selected").val() != 0 && typeof $(".prov option:selected").val() != 'undefined') {
$("#wilayah-1").val($(".prov option:selected").text());
}else{
$("#wilayah-1").val("Pilih Wilayah");
}
-> memanggil hanya bulan dan hari di jquery -> var datePeriodeVal = parseInt($( ".date-periode-val" ).val());
$('.date-periode').datepicker({
    format: "yyyy-mm-dd",
    autoclose: true,
    startDate: new Date(new Date().getFullYear(), datePeriodeVal, 1),
    endDate: new Date(new Date().getFullYear(), datePeriodeVal + 1, 0),
});
-> auto action class js baris row : $('.row-permohonan :input').change();
-> cara mengambil data url form : var formAction = $('.save').attr("action");
-> replace form action url : $('.save').attr('action', formAction+"/edit");
-> refresh page function : location.reload();
-> redirect page : var url      = window.location.href+'?val='+valueDate;
console.log(url);
window.location.href = url;
-> pemotongan string => var exists = http://localhost/log/lbim/doklanintalkim/form/lalin_paspor48/4?val=2019-12-14;
exists.replace(exists.slice(-15), "?val=2019-12-14"); ----ganti url;
-> animasi sebelum succes get data ajax : beforeSend: function () {
        $('.loading').show();
        },
success: function(getData){
$('.loading').fadeOut("slow");
projustitia = getData;
}
-> blink text di jquery : $('.validation').fadeOut(500);
      $('.validation').fadeIn(500);
-> input form hanya number dan tidak bisa awal dengan angka 0 :     function allowNumbersOnly(e) {
        var code = (e.which) ? e.which : e.keyCode;
        if (code > 31 && (code < 48 || code > 57)) {
            e.preventDefault();
        }
    }

    $('#jumlah').on('input', function(e) {
        $("#jumlah").val($("#jumlah").val().replace(/^0/g,''));
    });
view : <td><input id="jumlah" type="text" name="jumlah" class="form-control input-sm" onkeypress="allowNumbersOnly(event)" value="1"/></td>
-> validasi size dan file type untuk file upload :
$('.attachment').bind('change', function() {
        var countError = 0;
        $('.error-image').fadeOut(500);
        $('.error-image-extention').fadeOut(500);

        var fileSize = document.getElementById("attachment").files[0];
        var sizeInMb = (fileSize.size/1024)/1024;
        var sizeLimit= 5;
        if (sizeInMb > sizeLimit) {
            countError = 1;
            $('.error-image').fadeIn(500);
            $('.error-image-extention').fadeOut();
        }

        var filename = $("#attachment").val();
        var extension = filename.replace(/^.*\./, '');
        if (extension == filename) {
            extension = '';
        } else {
            extension = extension.toLowerCase();
        }
        switch (extension) {
            case 'pdf':
            case 'doc':
            case 'docx':
                break;

            default:
                countError = 1;
                $('.error-image').fadeOut(500);
                $('.error-image-extention').fadeIn(500);
        }

        if (countError){
            $('.attachment').val('');
        }

    });

-> replace semua string menjadi strip :
var result = replaceSpace.replace(/ /g, ";");
-> replace satu string :
var result = replaceSpace.replace('kata yang mau di replace', "di replace menjadi");

-> mengambil value string dari tag span :
var jumlahDiKeranjang = document.getElementsByClassName("totalProdukKeranjang")[0].innerHTML;

-> Saat klik otomatis langsung scroll ke atas :
onclick="$('html, body').animate({scrollTop: $('#web-all-komoditas').offset().top}, 200);"

-> hanya string yang dikirimkan saat onclick :
'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'

-> datatable dengan download excel, pdf, print :
<script src="<?=base_url();?>assets/plugins/export_datatable/jquery-3.3.1.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/jquery.dataTables.min.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/dataTables.buttons.min.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/jszip.min.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/pdfmake.min.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/vfs_fonts.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/buttons.html5.min.js"></script>
<script src="<?=base_url();?>assets/plugins/export_datatable/buttons.print.min.js"></script>
<script type="text/javascript">
<link rel="stylesheet" href="<?=base_url();?>assets/plugins/export_datatable/jquery.dataTables.min.css" />
    <link rel="stylesheet" href="<?=base_url();?>assets/plugins/export_datatable/buttons.dataTables.min.css" />
    $('#data_table').DataTable({
        "searching": true,
        "processing": true,
        "serverSide": false,
        "order": [], //Initial no order.
        "ajax": {
            "url": "<?php echo site_url('tata_usaha/datatable/'.$page)?>",
            "type": "POST",
            complete: function(){
                $('.loading').hide();
            }
        },
        "dom": 'Bfrtip',
        "lengthMenu": [
            [ 10, 50, 100 ], // -1 : Show All
            [ '10 rows', '50 rows', '100 rows' ]
        ],
        // "buttons": ['pageLength','excel','pdf','print'],
        buttons: [
            {
                extend: 'pageLength',
            },
            {
                extend: 'excelHtml5', orientation: 'landscape', pageSize: 'A4'
            },
            {
                extend: 'pdfHtml5', orientation: 'landscape', pageSize: 'A4'
            },
            {
                extend: 'print', orientation: 'landscape', pageSize: 'A4'
            }
        ]
    });
</script>

=> replace image menggunakan jquery (harus memakai id) :
$('#icon-image').attr('src', '/public/files/image/komoditas/'+data.icon);

=> link menggunakan a href ke fungsi js :
<a href="javascript:cekTotalMhs(666);">'.$counting_universitases->count_total_mhs.'</a>

=> onclick js ketika di klik :
$("#cari").click(function(){
            $('.loading').show();
            var prov = $( ".prov" ).val();

        });
=> membuat getaran di perangkat dengan jquery :
https://googlechrome.github.io/samples/vibration/?fbclid=IwAR3QN59WacUcKQhxTIAMCIrEO0xq4wI8yP9X-d7ApupgzF-uGD5GWN2wrjE

=> cara membuat count / jumlah dari name yang sama :
var totalProduk = $('[name=button-delete]').length;

=> menghapus id chart untuk replace dengan chart baru :
<html><div id="graph"></div></html>
<script>$('#graph').empty();</script>

=> mengambil data berdasarkan name form :
$('input[name=phone_number]').val();

=> replace data dengan enkrip saat sebelum post data :
jQuery('.save').submit(function(){
     
var isiKonten  = tinymce.get('isi_konten').getContent();
     
var isiKontenE = htmlEscape(isiKonten);//ini fungsi encode
     
tinymce.get('isi_konten').setContent(isiKontenE);
 
});
=> validasi sebelum submit data :
$(function() {
       $('.btnLogin').click(function(e) {
            $('.notifSalahEmail').hide();
            e.preventDefault();
            var email = $('.email').val();

            $.get('/cek-email-user?email='+email, function(data){
                console.log("ada email : "+data);
                if (data) {
                    $(".login").submit();
                }else{
                    $('.notifSalahEmail').show();
                }
            });

        });
    });
=> fokus class jika ada validasi :
$( ".validate")[0].scrollIntoView();
OR
$('html, body').animate({
                    scrollTop: $(".nama_template").offset().top
                }, 0);

=> deteksi jika tekan tombol enter aksi jquery (press enter key on jquery)
$(document).on('keypress',function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});
=> cek email benar atau salah dengan jquery :
$('.email').blur(function() {
              var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
              console.log("baca 1");
              if (testEmail.test(this.value)){
                $('.cekDataEmailValid').hide();
                countFailedEmail = 0;
              }else{ 
                countFailedEmail = 1;
                $('.cekDataEmailValid').show();
              }
          });
=> memotong 4 karakter string
mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862";

mystring = mystring.substring(0, 4);

alert(mystring.trim());
=> alert konfirmasi sebelum menghapus data :
<a onclick="confirmApprove()" class="badge bg-green"><i class="fa fa-check"></i> Setujui</a>
function confirmApprove($data) {
   var result = confirm("Want to delete?");
    console.log(result)
   if (result) {
       //Logic to delete the item
   }
  }
=> memanggil hanya tahun menggunakan datepicker :
$(document).ready(function(){
      $(".date-picker").datepicker({
        autoclose : true,
        format: 'yyyy',
        viewMode: "years", 
        minViewMode: "years"
      });
  });
=> memanggil hanya tahun menggunakan datetimepicker :
$(".date-picker").datetimepicker( {
      format: 'YYYY'
  });
=> memanggil function dari function
function someFunction() {
    //do stuff
}

$(document).ready(function(){
    //Load City by State
    $('#billing_state_id').live('change', someFunction);   
    $('#click_me').live('click', function() {
       //do something
       someFunction();
    });
  });
-> solusi select2 tidak muncul di modal box :
=> cara reload datatable dengan waktu :
setTimeout(function() {
=> cara memanggil datatable dengan waktu :
1. hapus dulu class datatable, terus tambahkan baris2nya, dan pasang lagi datatable 
      $('#dataTable1').dataTable().fnDestroy();
      var rows ="<tr>"+
                    "<td class='text-center'>456787654678</td>"+
                    "<td class='text-center'>Indra WR</td>"+
                    "<td class='text-center'>Uninus</td>"+
                    "<td class='text-center'>Informatika</td>"+
                    "<td class='text-center'>Anggota</td>"+
                 "</tr>";
      $('.tableAnggota').append(rows);
      $('#dataTable1').dataTable();
    }, 2000);
- kondisi untuk memunculkan memanggil modal box dengan on click :
$('#myModal').modal('show'); 
- otomatis scroll dan fokus ke view validasi :
$("#click").click(function (){
                $('html, body').animate({
                    scrollTop: $('.'+className).offset().top - 50
                }, 2000);
            });
- push data json new record atau hapus record :
https://stackoverflow.com/questions/4538269/adding-removing-items-from-a-javascript-object-with-jquery
var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};
adding data :
data.items.push(
    {id: "7", name: "Douglas Adams", type: "comedy"}
);
removing data :
data.items.splice(1, 3); // Removes three items starting with the 2nd,
                         // ("Witches of Eastwick", "X-Men", "Ordinary People")
- grouping data json di jquery :
const input = dataAnggotaAngkatan; //dataAnggotaAngkatan harus json ([{id: "1", angkatan: '2013'}, {id: "1", angkatan: '2016'}];)
      console.log(
        Object.values(input.reduce((a, { angkatan, data }) => {
          if (!a[angkatan]) a[angkatan] = { angkatan, data: [] };
          a[angkatan].data.push(data);
          return a;
        }, {}))
      );
- Looping data json di javascript atau jquery :
var data = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}
];

$.each(data, function(i, item) {
    alert(data[i].PageName);
});

$.each(data, function(i, item) {
    alert(item.PageName);
});
- cara menghapus data array json dengan looping dan delete :
https://stackoverflow.com/questions/36127429/search-and-remove-object-from-json-array
var data = [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "3", name: "X-Men", type: "action"},
    {id: "4", name: "Ordinary People", type: "drama"},
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
];

function RemoveNode(id) {
    return data.filter(function(emp) {
        if (emp.id == id) {
            return false;
        }
        return true;
    });
}

var newData = RemoveNode("1");

document.write(JSON.stringify(newData, 0, 4));
- disable order by, lenght, search, info datatable :
$('#dataTable1').dataTable({
          "bFilter": false,
          "ordering": false,
          "info":     false,
          "bLengthChange": false
        });
- klik checkbox get value atau menjalankan function :
$("body").on("click", ".idProduks", function () {
    var jumlahCek = $('[name="idProduk"]:checked').length;    
    var idChecked = [];    $('td input:checked').each(function () {
        idChecked.push($(this).val());    })
});
- disable atau hide tombol dengan kondisi :
$("#idtablebutton").removeAttr('disabled');
-ketika pilih option dari select dan otomatis redirect atau link ke halaman lain dengan new tab :
<select class="form-control form-control-sm filePendukung" onchange="(this.options[this.selectedIndex].value?  window.open(this.options[this.selectedIndex].value,'_blank'):'')">
-> load url untuk refresh style css :
var url      = window.location.href;
        console.log(url);
        $('.rowsSyaratCheck').load(url + ' .rowsSyaratCheck');
-> split menggunakan koma (,);
console.log(($('#id_buka_edit_produk').val()).split(','));
-> post data laravel menggunakan jquery:
dihalaman view header harus ada crsf token :
<meta name="csrf-token" content="{{ csrf_token() }}" />
dan di jquery / javascript di replace headernya :
$.ajaxSetup({
      headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
  });
dan fungsi jquery post :
function saveClickOnShow(id) {
    console.log(id);

    $.ajax({
       type:'POST',
       url:'save-click-faq',
       data:{data1 : 'test data 1', data2 : 'test data 2'},
       success:function(data){
          alert(data.success);
       }
    });
  }
-> validasi form required penambahan class attribute di form berdasarkan id :
$("#file").attr("required",true);
-> replace date format :
var date = new Date($('.valTanggalAwal-'+id).val().replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"));var tanggalAwal = date.getFullYear() + '-' + ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '-' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate()));

-> cara hide modal box atau pop up :
$('#modalNotifVefifTolak').modal('toggle');
-> fungsi memunculkan otomatis datetimepicker :
$('#jam').data("DateTimePicker").show();
-> load function jquery atau javascript ketika load page :


window.onload = function() {
    console.log('test');
  };
- cara mengambil data onclick atau onchange dengan value di attribut untuk fungsi select :
<select class="skor-{{ $komponen_penilaian->id }}" name="skor" onchange="countInput({{ $komponen_penilaian->id }}, this.options[this.selectedIndex].getAttribute('skorVal'))">
                                    @foreach($skors as $i=>$skor)
                                      <option skorVal="{{ $skor->skor }}" value="{{ $skor->id }}"> {{ $skor->info_skor }} - {{ $skor->skor }}</option>
                                    @endforeach
                                  </select>
- membuat format rupiah uang dengan titik koma setiap 3 tiga angka
<div class="kotak">
<p>Ketik jumlah nominal pada form di bawah ini.</p>
<span>Nominal Rupiah. :</span>
<input type="text" id="rupiah"/>
</div>
 
 
<script type="text/javascript">
var rupiah = document.getElementById('rupiah');
rupiah.addEventListener('keyup', function(e){
// tambahkan 'Rp.' pada saat form di ketik
// gunakan fungsi formatRupiah() untuk mengubah angka yang di ketik menjadi format angka
rupiah.value = formatRupiah(this.value, 'Rp. ');
});
 
/* Fungsi formatRupiah */
function formatRupiah(angka, prefix){
var number_string = angka.replace(/[^,\d]/g, '').toString(),
split   = number_string.split(','),
sisa     = split[0].length % 3,
rupiah     = split[0].substr(0, sisa),
ribuan     = split[0].substr(sisa).match(/\d{3}/gi);
 
// tambahkan titik jika yang di input sudah menjadi angka ribuan
if(ribuan){
separator = sisa ? '.' : '';
rupiah += separator + ribuan.join('.');
}
 
rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
return prefix == undefined ? rupiah : (rupiah ? 'Rp. ' + rupiah : '');
}
</script>


-> cara replace label :
html :
<label class='custom-file-label col-md-12' id='dokumen-file-label-1"'>
js :
var filenames = "cek";
document.getElementById('dokumen-file-label-1').innerHTML = filenames;
-> cara menampilkan align text center atau rata kiri kana text :

$(function() {

       CKEDITOR.config.extraPlugins = 'justify';

});


-> ambil dan hapus data dari textarea ckeditor :

/* ambil data dari text area */

    var tanggapan = CKEDITOR.instances['ckeditorEmail'].getData();

      

      /* hapus data dari text area */

      var tanggapan = CKEDITOR.instances['ckeditorEmail'].setData("");


-> fokus tampilan ke class saat load page :

<textarea cols="80" id="ckeditorEmail" name="ckeditor1" class="tanggapan" rows="5" autofocus></textarea>


-> Fungsi replace dan reset CKEDITOR :


<textarea cols="80" id="lihat_data" class="lihat_data" name="lihat_data" rows="10" disabled></textarea>


function lihat(proposal_log_book_id) {
for(lihat_data in CKEDITOR.instances)
{
CKEDITOR.instances[lihat_data].destroy(true);
}

$.get('/ajax-get-logbook?proposal_log_book_id='+proposal_log_book_id, function(data){
$('.lihatTanggal').val(data.tanggal);
$('.lihat_data').text(data.kegiatan);
CKEDITOR.replace( 'lihat_data' );
});
}


-> fungsi ketika di klik select option langsung redirect link ke url lain :

<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
  <option value="">Select...</option>
  <option value="https://google.com">Google</option>
  <option value="https://yahoo.com">Yahoo</option>
</select>
-> solusi string ada spesial karakter tanda kutip atau petik, harus menggunakan 
decode (btoa) dan endcode (atob), contoh :
decode :
sendParam(\'' + btoa(item.nama_produk)+ '\')
encode :
$('#namaProduk').val(atob(nama_produk));
-> // parsing object to array untuk kebutuhan cek data yang dikirim json ke controller
var dataIdMahasiswaFromDb = [{id: 1, mahasiswa_id: "163"},{id: 2, mahasiswa_id: "167"},{id: 3, mahasiswa_id: "164"},{id: 4, mahasiswa_id: "168"},{id: 5, mahasiswa_id: "169"},{id: 6, mahasiswa_id: "170"},{id: 7, mahasiswa_id: "172"}]
var dataIdMahasiswaFromDbArr = dataIdMahasiswaFromDb.map(function(v) {
return [v.mahasiswa_id];
});


-> cara pemanggilan modal menggunakan class :

JS :
$('[name="addToBasketBtn"]').click(function(e) {
e.preventDefault();
$('#addToBasketModal').modal('show').find('.modal-body').load($(this).attr('href'));
});
VIEW :
<!-- Modal -->
<div class="modal fade" id="addToBasketModal" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="myModalLabel">&{'tambah.label'} &{'ke.label'} &{'keranjang_belanja.label'}</h4>
</div>
<div class="modal-body">

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