Kamis, 07 Desember 2023

Memulai baris baru teks di dalam sel di Excel

 

Untuk memulai baris baru teks atau menambahkan penspasian antar baris atau paragraf teks dalam sel lembar kerja, tekan Alt+Enter untuk menyisipkan break baris.

  1. Klik ganda sel di tempat Anda ingin menyisipkan hentian baris.

  2. Klik lokasi di dalam sel yang dipilih di mana Anda ingin memutuskan baris.

  3. Tekan Alt+Enter untuk menyisipkan hentian baris.

Perlu bantuan lainnya?

Anda selalu dapat bertanya kepada ahli di Komunitas Teknologi Excel atau mendapatkan dukungan di Komunitas.

Jumat, 27 Oktober 2023

Mencari Solusi Pencarian Data By Kolom pada DataTables ServerSide

 Pada penerapan DataTables ServerSide biasanya menemui beberapa kendala diantaranya : 

  1. Jumlah kolom yang berbentuk array, disini kita harus memahami jumlah kolom yang akan ditampilkan. Kemudian disesuaikan dengan ajax untuk menampilkan dataTables.

  $('#example1').DataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": "./modul/aset-tetap-lain/load-data.php?d="+as+"&a="+ad+"&b="+ak,
            "columnDefs": [    
                { className: "UniqCenter", "targets": [ 15 ] },
                { className: "UniqRupiah", "targets": [ 16 ] },
                {
                "searchable"    : false,
                "orderable"     : false,
                "targets"       : 17,
                "render"        : function(data,type,row){  
                    // if(row["3"].length=='4'){
                    //  row["3"]='4';
                    // }  
                    // var btn="";
                    // return btn;
                    return data;

                            }
                }
            ]
        } );




$columns = array(    //disesuaikan dena SELECT di baris 45
            'NAMA_BARANG_BARU',
            'Nomor_Register',
            'Tahun_Pengadaan',
            'CMBMERK6',
            'TUKURAN7',
            'CMBBAHAN7',
            // 'no_pabrik',
            'TRANGKA6',
            'TMESIN6',//
            'TPOLISI6',
            'TNOMOR6',
            'TJUMLAH7',
            'Harga_Perolehan',
            'CMBASAL6'
           );

  1. Proses pencarian pada semua kolom biasanya tidak berhasil dan akan mengakibatkan error pada tampilan. hal ini dikarenakan kolom yang akan ditampilkan merupakan gabungan (CONCAT) dari dua atau lebih kolom (field). maka disini kita harus menyesuaikan alias pada select tabel nya, harus sesuai dengan nama kolom (field) yang ada di tabel.

$sql = "SELECT a.kode,
CONCAT(a.KODE_BARU,'<br><b>',c.URAIAN ,'</b>') AS NAMA_BARANG_BARU,
FORMAT(a.Nomor_Register, 0) as Nomor_Register,  a.Tahun_Pengadaan as Tahun_Pengadaan,
CONCAT(IF(a.CMBMERK6<>'', a.CMBMERK6,  a.CMBMERK7) ,'<br>', IF(a.CMBTYPE7<>'',
a.CMBTYPE7, a.CMBTYPE6)) as CMBMERK6, TUKURAN7 AS TUKURAN7,  a.CMBBAHAN7 as CMBBAHAN7,

a.TRANGKA6 as TRANGKA6, a.TMESIN6 as TMESIN6, a.TPOLISI6 as TPOLISI6,
CONCAT(a.TNOMOR6, '<br>',a.DTPBPKB6) as TNOMOR6,  a.TJUMLAH7 as TJUMLAH7,
FORMAT(a.Harga_Perolehan, 0) Harga_Perolehan,
IF(substr(a.KODE_BARU,7,2)<='02', a.CMBASAL6, a.CMBASAL7) AS CMBASAL6 from  
tabel_transaksi as a  left join tbbarang as b on a.Kode_Barang=b.KODE_BARANG
left join tabel_barang_baru as c on a.KODE_BARU=c.KODE_BARU ";

 $where  = " a.KODE_KIB='2' AND a.KODE_BARU!=''";


Silahkan bandingkan dengan array Kolom pada point 1. 

Dengan begitu insya allah pencarian akan berjalan dengan baik.




Minggu, 22 Oktober 2023

text align for DataTables 1.10.10

 Membuat tampilan tabel dengan menggunakan dataTables serverside membutuhkan ketelitian dan kecermatan. Karena proses untuk membuat query select dan menampilkan pada modul lebih sulit dari dataTables maupun script native. 

Sebagai contoh salah satu untuk mengatur tampilan kolom rata kanan/kiri/center saja tidak bisa di tempatkan pada html td atau th pada tabel.

Contoh kasus saya membuat tampilan data aset menggunakan dataTables Serverside.


<script>
    $(document).ready(function() {
        var as = $('#a1').val();
        var ad=  $('#a2').val();
        var ak=  $('#a3').val();
       $('#example1').DataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": "load-data.php?d="+as+"&a="+ad+"&b="+ak,
            "columnDefs": [    
                { className: "UniqRupiah", "targets": [ 12 ] //Menyisipkan class untuk text-align pada array 12
                },
                {
                "searchable"    : false,
                "orderable"     : false,
                "targets"       : 14,
                "render"        : function(data,type,row){  
                    var btn="<center> <a href=\"javascript:LoadEditData('"+btoa(row["14"])+"')\"
                    class=\"btn btn-sm btn-info\"><i class=\"fa fa-edit\"></i></a> <br> <br>
                    <a href=\"javascript:LoadDeleteData('"+btoa(row["14"])+"')\" class=\"btn btn-sm btn-danger\">
                    <i class=\"fa fa-trash\"></i> </a> ";
                    return btn;
                            }
                }
            ]
        } );
    } );
    </script>

Dengan menyisipkan kode :

{ className: "UniqRupiah", "targets": [ 12 ] },


kemudian kita menambahkan css sebagai berikut :

<style>
        .UniqRupiah {
            text-align: right;
        }
    </style>

Alhamdulillah tampilan text-align bisa di sesuaikan.




Rabu, 18 Oktober 2023

Mengatur Tombol Simpan Dengan Menggunakan Javascript "serialize"

Untuk kasus ini adalah saya membuat CRUD untuk SIMBADA versi.3. Dengan menggunakan tamplate dan tampilan form yang baru. Ada perubahan struktur program pada semua tampilan (modul). Sehingga proses penyesuaian koding membutuhkan waktu yang lumayan lama.
Mengawali dari merancang menu dan merancang halaman beranda dari SIMBADA. menyesuaikan struktur baru agar terlihat lebih enak di lihat. Modul beranda menampilkan rekap masing-masing KIB. Dengan data yang sangat banyak mengakibatkan load database lumayan lama.

Kemudian proses selanjutnya membuat CRUD dari beberapa menu master. Disini saya menggunakan method simpan dengan menggunakan javascript. Sehingga ada beberapa komponen yang perlu di sesuaikan. Sebagai contoh adalah tombol SIMPAN, yang tadi nya saya menggunakan komponen "button"
 
<button onClick="getSave()" type="submit" class="btn btn-sm btn-success">SIMPAN </button>

dan di sertakan method onClick pada prosesnya ternyata tidak bisa melakukan penyimpanan data. Dan proses aksi nya menjadikan refresh pada semua halaman. Saya pun mencari permasalahan tersebut dengan beberapa referensi. Dan akhirnya saya menemukan solusi untuk masalah tersebut, yaitu dengan menggunakan komponen "input" bukan dengan "button" 

<input onClick="getSave()" name="ubah" value="SIMPAN" class="btn btn-sm btn-success">

Kemudian dengan proses diatas bisa berjalan dengan baik dan proses simpan berhasil.

Saya kemudian menjumpai permasalahan lain, yaitu komponen select2 pada selectbox. Pada form ubah tidak bisa ngeload file select2.min.css dan select2.min.js yang saya letakan pada file index. Saya kemudian menuliskan link css dan js select2.min pada formulir ubah. Namun setelah di buka menjadikan tampilan formulir yang menggunakan select2 menjadi double form. 
Solusi yang yang saya terapkan adalah dengan merubah nama class pada formulir ubah, yaitu yang biasa menggunakan class select2 saya ubah menjadi select3 .
    $(function () {
        //Initialize Select2 Elements
        $(".select3").select2();  
      });

Berarti ada inisialisasi class form select2 sebanyak dua , yaitu :
    $(function () {
        //Initialize Select2 Elements
        $(".select2").select2();  
      });

Demikian sedikit pengalaman saya dalam melakukan proses peremajaan modul SIMBADA.
Terimakasih semoga bermanfaat.

Jumat, 13 Oktober 2023

CURL tidak berfungsi pada web HTTPS

Saya ingin membuat fungsi untuk menampilkan halaman getToken dengan url dari BKN dengan memasukkan beberapa parameter. Saya menggunakan library dari cURL. Saat di jalankan hasilnya error dikarenakan masalah certificate pada web HTTPS. 

Beberapa kali di coba untuk dijalankan, namun tetap saja tidak berhasil. Kemudian saya mencoba browsing untuk mencari solusi dari permasalahan yang saya alami. Dan alhamdulillah solusi ditemukan, yaitu dengan mematikan (disable/false) Verifikasi SSL nya.

Sebagai contoh :


$options = array(
      CURLOPT_RETURNTRANSFER => true, // to return web page
      CURLOPT_FOLLOWLOCATION => TRUE ,
      CURLOPT_URL            => $url,
      CURLOPT_USERAGENT      => $_SERVER['HTTP_USER_AGENT'],
      CURLOPT_TIMEOUT        => 40,
      CURLOPT_COOKIEJAR      => $tmpfname,
      CURLOPT_COOKIEFILE     => $tmpfname,

      ##Disable verify SSL##
      CURLOPT_SSL_VERIFYHOST => 0, // or false
      CURLOPT_SSL_VERIFYPEER => 0, // or false
  );

Jika merujuk pada fungsi yang saya buat, maka akan tampak kode program sebagai berikut :

       <?php
         $username ='??????';
        $password ='??????';
        $curl = curl_init();


        curl_setopt_array($curl, array(
          CURLOPT_URL => 'https://url......',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => 'grant_type=client_credentials',
          ##Disable verify SSL##
          CURLOPT_SSL_VERIFYHOST => 0, // or false
          CURLOPT_SSL_VERIFYPEER => 0, // or false
          CURLOPT_HTTPHEADER => array(
            'Content-Type: application/x-www-form-urlencoded',
            'Authorization: Basic ??????',
            'Cookie: pdns=1091068938.58148.0000'
          ),
        ));
       
        $response = curl_exec($curl);
       
        curl_close($curl);
        // echo $response;
        $jsonp= json_decode($response,1);
        $token  =$jsonp["access_token"];// kode Provider peserta, bukan kdPPK
        echo $token;

        ?>



Alhamdulillah token bisa tampil...

sumber : https://app.sko.dev/post/curl-tidak-berfungsi-pada-web-https

Selasa, 29 Agustus 2023

Cara Setting Firewall dengan FirewallD di CentOS 7

 FirewallD adalah perangkat lunak untuk mengelola firewall di Linux yang mendukung fitur zones (zona jaringan) untuk menentukan tingkat kepercayaan koneksi.

Konsep FirewallD

FirewallD menggunakan zones dan services, dibandingkan dengan iptables yang menggunakan chain dan rules. Berdasarkan pada zones dan services, kita dapat mengontrol koneksi jaringan apa yang diizinkan dan tidak diizinkan masuk atau keluar dari sistem.

FirewallD Zones

Zones adalah kumpulan aturan yang telah ditetapkan, koneksi jaringan apa yang harusnya diizinkan berdasarkan tingkat kepercayaan pada jaringan yang terhubung ke sistem. Kita dapat menetapkan nama interface jaringan dan sumber jaringan ke dalam zones.

Di bawah ini zones yang tersedia pada FirewallD yang disusun berdasarkan tingkat kepercayaan dari tidak terpercaya ke terpercaya.

  1. drop: Semua koneksi jaringan yang masuk didrop tanpa adanya notifikasi atau pesan error. Hanya koneksi jaringan yang keluar dari sistem yang diizinkan.
  2. block: Semua koneksi jaringan yang masuk direject dengan pesan icmp-host-prohibited untuk IPv4 dan icmp6-adm-prohibited untuk IPv6. Hanya koneksi jaringan yang keluar yang diizinkan.
  3. public: Jaringan publik, jaringan yang tidak bisa dipercaya. Kita dapat memilih koneksi jaringan apa yang diizinkan.
  4. external: Jaringan eksternal, jika kita menggunakan Linux sebagai gateway atau router. Dikonfigurasi sebagai NAT masquerading. Hanya trafik yang dipilih yang diizinkan.
  5. internal: Digunakan pada jaringan internal, saat Linux berfungsi sebagai gateway atau router. Sistem lain pada jaringan internal secara umum dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  6. dmz: Demilitarized zone, jika kita ingin memberikan akses terhadap services ke jaringan publik. Hanya koneksi jaringan yang dipilih saja yang diizinkan.
  7. work: Zona yang diperuntukkan jaringan internal kantor. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  8. home: Zona yang diperuntukkan jaringan internal rumah. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  9. trusted: Zona yang paling terbuka, semua sistem pada jaringan dipercaya, dan semua koneksi jaringan diizinkan.

Install FirewallD

Secara default FirewallD sudah terinstall di CentOS 7, tetapi jika belum terinstall jalankan perintah di bawah ini untuk install.

Aktifkan service FirewallD pada saat boot lalu jalankan

Mengecek status firewall

Hasilnya adalah running atau not running.

Konfigurasi Zones

Menampilkan semua zones

Hasilnya

Membuat zone baru

Menghapus zone

Melihat seluruh zone beserta konfigurasinya

Hasilnya

Hanya menampilkan konfigurasi satu zone, misalnya zone public.

Menampilan default zone

Hasil dari CentOS yang saya gunakan adalah trusted.

Mengganti default zone

Menampilkan zones yang aktif

Hasilnya

Zone yang aktif bisa lebih dari satu zone, setiap zone minimal ada satu interface jaringan.

Menambahkan interface pada zone

Mengubah interface pada zone

Menampilkan zone dari interface

Konfigurasi Services

Menampilkan nama services yang didukung oleh FirewallD

Hasilnya

Menampilkan services pada zone

Hasilnya

Menambahkan service pada zone

Tambahkan opsi –permanent agar service yang sudah ditambahkan tetap ada setelah reboot

Reload konfigurasi firewall setelah melakukan konfigurasi, tapi jika tanpa opsi –permanent konfigurasi itu akan hilang setelah reload.

Menghapus service

Jika nama services yang ingin dimasukkan pada zone tidak tersedia secara default, kita dapat menggunakan nomor port dari service tersebut atau membuat nama service baru.

File deskripsi services berada di direktori /usr/lib/firewalld/services/ dengan ektensi file xml.

Membuka isi file ssh.xml

Isinya

Membuat deskripsi service baru dengan mengcopy file service.xml yang sudah ada

Contoh isinya

Reload dan cek services

Konfigurasi Port

Menampilkan port pada satu zone

Menambahkan port dari protokol TCP atau UDP

Menambahkan range port

Menghapus port

Port Forwarding

Port Forwarding adalah mengalihkan koneksi dari satu port ke port lainnya, misalnya client mengakses port 80 kemudian diteruskan ke port 12345.

Forward port ke server lain

Aktifkan masquerade pada zone, lalu tambahkan rule forward.

Jika ingin menghapus masquerade ubah opsi –add-masquerade menjadi –remove-masquerade

Rich Rules

Rich Rules adalah rule firewall yang lebih luas tidak hanya memasukkan nama services saja tetapi juga IP address.

Menampilkan rich-rules

Izinkan koneksi jaringan dari IP 192.168.0.14

Tolak koneksi jaringan dari IP 192.168.1.10 pada port 22

Izinkan koneksi TCP dari IP 10.1.0.3 untuk mengakses port 80 yang kemudian diteruskan ke port 6532

Izinkan koneksi TCP pada port 80 yang diteruskan ke IP 172.31.4.2 port 8080 (Masquerade harus aktif pada zone)

Izinkan network 192.168.0.0/24 mengakses https

Tambahkan opsi –permanent agar rule tetap ada setelah reload dan reboot sistem. Jika ingin menghapus rich rule, ganti opsi –add-rich-rule menjadi –remove-rich-rule.

IP Set

IP Set adalah sekumpulan IP address yang digunakan sebagai source rule firewall.

Menampilkan IP Set

Membuat IP Set baru dengan nama blacklist

Menambah IP address pada IP Set blacklist

Menghapus IP address dari IP Set

Menampilkan info IP Set

Menampilkan IP address dari IP Set

IP Set yang sudah dibuat kemudian dimasukkan ke rule sebagai source

Menghapus IP Set

IP Set juga dapat berisi 2 atau lebih network yang berbeda



1
2
3
4
firewall-cmd --permanent --new-ipset=netlist --type=hash:ip
firewall-cmd --reload
firewall-cmd --ipset=netlist --add-entry=192.168.1.0/24
firewall-cmd --ipset=netlist --add-entry=192.168.2.0/24  


sumber : https://musaamin.web.id/cara-setting-firewall-dengan-firewalld-di-centos-7/