Sabtu, 10 Desember 2016

Published Desember 10, 2016 by with 3 comments

Cara Mengarahkan Semua Pengunjung Website ke HTTPS/SSL Cloudflare


Untuk developer web yang sudah menggunakan Cloudflare pastinya sudah otomatis websitenya bisa diakses menggunakan HTTPS yang lebih aman (secure) dibanding protokol HTTP. Namun bagaimana caranya agar pengunjung website kita diarahkan ke HTTPS (Redirect all visitors to HTTPS/SSL) sedangkan pengunjung hanya mengetik nama domain kita di address bar. (misal www.macamateri.com)
Berikut ada 2 cara yang dapat dilakukan bagi pengguna Cloudflare agar websitenya yang dikunjungi selalu memakai protokol HTTPS/SSL.

1. Menggunakan Page Rules Cloudflare

Ini adalah cara yang paling mudah dan paling efektif untuk mengarahkan pengunjung ke HTTPS. Karena responnya ditangani oleh Cloudflare maka akan mengurangi beban request pada server kita.
Caranya tinggal masuk ke halaman Page Rules yang ada di Cloudflare, lalu klik Create Page Rules

Masukkan domain (tidak lupa menggunakan http) dan diberi tanda asterisk (*) agar semua halaman juga teralihkan ke https. Lalu pilih Always Use HTTPS pada rulesnya, Save and Deploy.

2. Menggunakan .htaccess

Cara ini tidak sulit namun tidak bisa digunakan jika anda menggunakan blogger, jadi jika anda menggunakan blogger atau tidak bisa membuat file .htaccess, maka cara pertama adalah cara yang paling tepat.
Caranya adalah buat file dengan ekstensi .htaccess (tanpa filename) jadi kalau buat filenya di notepad, pilih Save as type-nya all file, dan masukkan file name-nya .htaccess
isi file tersebut adalah sebagai berikut:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
lalu upload pada directory public_html atau root website anda.

Karena Cloudflare menggunakan Flexible SSL, maka htaccess yang mengalihkan dari port 80 ke port 443 tidak akan bekerja di flexible ssl. Sehingga pada script htaccess diatas bekerja jika protokol yang digunakan http maka dialihkan ke https dengan status kode 301 (redirect).

Kamu bisa terapkan cara kedua menggunakan htaccess di web hosting karena kebanyakan web hosting sebenarnya sudah mendukung SSL dan sudah aktif module mod_rewrite, salah satunya kamu bisa menemukannya di Web Hosting Terbaik.

Referensi : https://support.cloudflare.com/hc/en-us/articles/200170536-How-do-I-redirect-all-visitors-to-HTTPS-SSL-
Read More
      edit

Sabtu, 12 November 2016

Published November 12, 2016 by with 0 comment

Solusi Untuk Tombol Keyboard Laptop Yang Tidak Berfungsi

Mungkin anda sedang mengalami masalah yang cukup mengesalkan, yaitu beberapa tombol di keyboard laptop tidak berfungsi dengan semestinya, sedangkan tombol yang lainnya normal? Jangan buru-buru ganti keyboard laptop jika hanya 1-5 tombol yang tidak berfungsi.
Dengan bantuan software untuk remapping keys, keyboard anda dapat berfungsi kembali dengan normal. Bagaimana caranya?
  1. Cari tahu tombol apa saja yang tidak berfungsi
  2. Tentukan tombol yang jarang digunakan dan terdekat dengan tombol yang mati, ini digunakan untuk mengganti tombol yang mati / tidak berfungsi.
  3. Remapping Keys dengan software SharpKeys
Berikut adalah contoh cara penggunaanya:
  1. Keyboard Laptop saya tidak berfungsi beberapa tombol saja, seperti tombol Delete, F4, Arrow Keys left and right.
  2. Tombol yang jarang digunakan yaitu PgUp, F3, Shift Kanan, dan End
  3. Remapping keys sebagai berikut:

=>
=>
=>
=>
Download terlebih dahulu software untuk remapping keyboardnya yaitu SharpKeys di website resminya:
Download Disini atau di Codeplex

Untuk Sharp Keys versi 3.5 memerlukan net framework 4.0 dan versi sebelumnya 3.0 memerlukan netframework 2.0

Cara remappingnya cukup mudah, hanya perlu pilih tombol yang ingin diganti dengan tombol yang masih berfungsi, seperti gambar dibawah ini:


Setelah sudah dipilih tombol yang ingin di remapping, tekan tombol Write to Registry dan restart laptop/komputer anda.


Sekarang anda dapat menggunakan tombol-tombol yang penting pada keyboard anda. Namun yang perlu diketahui, ini hanya berjalan jika anda berada di sistem operasi Windows, jadi kalau di BIOS sangat disayangkan, tombol keyboard yang telah di remapping tidak berfungsi.

Tested : Laptop dengan sistem operasi Windows 10.

Referensi: http://www.randyrants.com/category/sharpkeys/
Read More
      edit

Minggu, 17 Januari 2016

Published Januari 17, 2016 by with 0 comment

Membuat Operasi Penangan File (File Handling) Java



Macamateri kali ini akan membahas pemrograman java mengenai penangan file atau biasa disebut File Handling.
Dalam class operasi penanganan file ini, terdapat beberapa fungsi yaitu :

  1. Membuat file
  2. Menulis teks kedalam file yang telah dibuat sebelumnya
  3. Membaca isi dari file yang telah dibuat sebelumnya
  4. Mengupdate atau mengubah isi dari file yang telah dibuat sebelumnya
  5. Menghapus file yang telah dibuat sebelumnya
  6. Menghitung jumlah kata dari isi file
  7. Menghitung jumlah huruf / karakter dari isi file
  8. Menyembunyikan file yang telah dibuat sebelumnya
  9. keluar dari program.

Demo Program

Untuk demo program dapat dilihat dalam video berikut :

Source Code 

Untuk nama class, pada source code kali ini menggunakan nama class : operasiPenangananFile , jadi pastikan nama class dan nama file .java sama.
file  : operasiPenangananFile.java

/**
 * @(#)operasiPenangananFile.java
 *
 * @description Program operasi penanganan file buat, tulis, baca, update, hapus, hitung kata, hitung huruf, sembunyikan file.
 * @author Rizal Loa Wanda (Macamateri)
 * @version 1.00 2015/10/18
 */

import java.io.*;
import java.util.*;
public class operasiPenangananFile {
 
 public static void main(String[] args) throws IOException {
        operasiPenangananFile menu = new operasiPenangananFile();
        menu.utama();
    }
    
    //0. Fungsi Menu Utama
    public static void utama() throws IOException {
     Scanner input = new Scanner(System.in);
        operasiPenangananFile menu = new operasiPenangananFile();
        
        System.out.println("Menu Pilihan Penanganan File :");
        System.out.println("==============================");
        System.out.println("1. Buat File         ");
        System.out.println("2. Tulis File        ");
        System.out.println("3. Baca File         ");
        System.out.println("4. Update Isi File   ");
        System.out.println("5. Hapus File        ");
        System.out.println("6. Hitung Kata       ");
        System.out.println("7. Hitung Huruf      ");
        System.out.println("8. Sembunyikan File  ");
        System.out.println("9. Keluar            ");
        System.out.print("Input Pilihan Anda [1-9] = ");
        String n = input.nextLine();
        
        switch (n) {
            case "1": {
                menu.buatFile();
                menu.utama();
                break;
            }
            case "2": {
                menu.tulisFile();
                menu.utama();
                break;
            }
            case "3": {
                menu.bacaFile();
                menu.utama();
                break;
            }
            case "4": {
                menu.updateIsiFile();
                menu.utama();
                break;
            }
            case "5": {
                menu.hapusFile();
                menu.utama();
                break;
            }
            case "6": {
                menu.hitungKata();
                menu.utama();
                break;
            }
            case "7": {
                menu.hitungHuruf();
                menu.utama();
                break;
            }
            case "8": {
                menu.sembunyikanFile();
                menu.utama();
                break;
            }
            case "9": {
                System.out.println("Anda Berhasil Keluar!");
                break;
            }
            default: {
                System.out.println("Pilihan tidak tersedia, silahkan pilih lagi [1 - 9]\n");
                menu.utama();
            }
        }
    }
    
    //1. fungsi membuat file
    public void buatFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File Baru dan Ekstensinya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (!file.exists()) {
            try {
                Formatter formatter = new Formatter(namaFile);
                System.out.println("File " + namaFile + " Berhasil di Buat\n");
                formatter.close();
            }
            catch (Exception err) {
                System.out.println("Anda Gagal Membuat File " + namaFile + "\n");
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File Sudah Terdapat! Silahkan melakukan Baca, Ganti atau Hapus pada File " + namaFile + ".\n");
        }
    }
    
    //2. fungsi Tulis File
    public void tulisFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensinya = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileWriter fileWriter = new FileWriter(namaFile);
                System.out.print("Tuliskan isi ke dalam File = ");
                String isiFile = input.nextLine();
                fileWriter.append((CharSequence)isiFile);
                fileWriter.append((CharSequence)"\n");
                System.out.println();
                System.out.println("File " + namaFile + " Berhasil di Tulis\n");
                fileWriter.close();
            }
            catch (Exception err) {
                System.out.println("Error Menulis File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak di Temukan!\n");
        }
    }
    
    //3. fungsi Baca File
    public void bacaFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensinya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                StringBuffer stringBuffer = new StringBuffer();
                String isiFile = bufferedReader.readLine();
                if (isiFile != null) {
                    System.out.println("Proses Baca Isi File " + namaFile + " =");
                } else if (isiFile == null) {
                    System.out.println("File " + namaFile + " Kosong. Silahkan isi di Pilihan 2.");
                }
                while (isiFile != null) {
                    stringBuffer.append(isiFile);
                    stringBuffer.append("\n");
                    isiFile = bufferedReader.readLine();
                }
                System.out.println(stringBuffer.toString());
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error Dalam Membaca File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //4. fungsi Update Isi File
    public void updateIsiFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di Update = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                StringBuffer stringBuffer = new StringBuffer();
                String isiFile = bufferedReader.readLine();
                while (isiFile != null) {
                    stringBuffer.append(isiFile);
                    stringBuffer.append("\n");
                    isiFile = bufferedReader.readLine();
                }
                System.out.println("Isi File Sebelum Update  = ");
                System.out.println(stringBuffer.toString());
                fr.close();
                FileWriter fw = new FileWriter(namaFile, true);
                System.out.print("Isi File Tambahan (Update) = ");
                String isiTambahan = input.nextLine();
                fw.append((CharSequence)isiTambahan);
                fw.append((CharSequence)"\n");
                System.out.println();
                System.out.println("File " + namaFile + " Berhasil di Update!\n");
                fw.close();
            }
            catch (Exception err) {
                System.out.println("Error Mengupdate Isi File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //5. fungsi Hapus File
    public void hapusFile() throws IOException {
     Scanner input = new Scanner(System.in);
     System.out.print("Input Nama File yang ingin di Hapus = ");
     String namaFile = input.nextLine();
     System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
         try {
          System.out.print("Apakah Anda yakin ingin menghapus File " + namaFile + "? [Y/N] = ");
             String konfirmasi = input.nextLine();
             if (konfirmasi.equalsIgnoreCase("y")) {
              file.delete();
                 System.out.println("File " + namaFile + " Berhasil di Hapus!\n");
             }
             else if (konfirmasi.equalsIgnoreCase("n")) {
              System.out.println("File " + namaFile + " Batal di Hapus!\n");
             }
             else{
              System.out.println("Pilihan Salah. Silahkan coba lagi.\n");
             }
          }
          catch (Exception err) {
             System.out.println("Error menghapus file " + namaFile + "");
           System.out.println("Error : " + err.getMessage() + "\n");
             err.printStackTrace();
          }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //6. fungsi hitung kata
    public void hitungKata() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di hitung katanya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                String isiFile;
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                int baris = 0;
                int kata = 0;
                while ((isiFile = bufferedReader.readLine()) != null) {
                    String[] arrstring;
                    ++baris;
                    for (String isiFile2 : arrstring = isiFile.split(" ")) {
                        ++kata;
                    }
                }
                System.out.println("Jumlah Kata Pada Isi File " + namaFile + " Adalah  = " + kata + " Kata");
                System.out.println("Jumlah Baris Pada Isi File " + namaFile + " Adalah = " + baris + " Baris\n");
                
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error menghitung kata file " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //7. fungsi Hitung Huruf

    public void hitungHuruf() throws IOException {
     int JUMLAH_KARAKTER = 256;
     int[] total_per_karakter = new int[JUMLAH_KARAKTER];
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di hitung hurufnya = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                String isiFile;
                String isiFile2 = "";
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
    
                while ((isiFile = bufferedReader.readLine()) != null) {
                    isiFile2 = isiFile2 + isiFile;
                }
                isiFile2 = isiFile2.toLowerCase();
                for (int i=0; i<JUMLAH_KARAKTER; i++) {
              total_per_karakter[i] = 0;
          }
          int isiFile2_len = isiFile2.length();
          for (int i=0; i<isiFile2_len; i++) {
              total_per_karakter[(int )isiFile2.charAt(i)]++;
          }
          
          System.out.println();
          for (int i=0; i<JUMLAH_KARAKTER; i++) {
              if (total_per_karakter[i] > 0) {
                  if (((char)i >= 'a' && (char)i <= 'z')) {
                      System.out.println("Jumlah huruf " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  } else if ((char)i >= '0' && (char)i <= '9') {
                      System.out.println("Jumlah angka " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  } else if ((char) i == ' ') {
                      System.out.println("Jumlah Spasi ada   = " + total_per_karakter[i] + " buah");
                  } else {
                      System.out.println("Jumlah karakter " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  }
              }
          }
                System.out.println();
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error menghitung huruf file " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //8. fungsi menyembunyikan file (This Is MAGIC =D )
    public void sembunyikanFile() throws IOException {
     Scanner input = new Scanner(System.in);
     System.out.print("Input Nama File dan Ekstensinya yang ingin di Sembunyikan = ");
     String namaFile = input.nextLine();
     System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
         try {
          if(file.isHidden()){
           System.out.print("File "+namaFile+" sudah tersembunyi, Unhide? [Y/N] = ");
           String konfirmasi = input.nextLine();
           if(konfirmasi.equalsIgnoreCase("y")){
            if(System.getProperty("os.name").contains("Windows")){
             Process p = Runtime.getRuntime().exec("attrib -h "+namaFile);
             p.waitFor();
             System.out.println("Berhasil menampilkan (unhide) File " +namaFile);
         }
         else{
             System.out.println("Maaf untuk OS lain selain Windows belum support");
         }
           }
           else {
            System.out.println("Batal Menammpilkan (unhide) File " +namaFile);
           }
           
          }
          else {
           if(System.getProperty("os.name").contains("Windows")){
            Process p = Runtime.getRuntime().exec("attrib +h "+namaFile);
            p.waitFor();
            System.out.println("Berhasil Menyembunyikan File " +namaFile);
        }
        else{
         System.out.println("Maaf untuk OS lain selain Windows belum support");
        }
          }
          System.out.println();
          }
          catch (Exception err) {
             System.out.println("Error menyembunyikan file " + namaFile + "");
           System.out.println("Error : " + err.getMessage() + "\n");
             err.printStackTrace();
          }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
}
Read More
      edit