Hashing MD5 pada Java

MD5 kepanjangan dari Message Digest 5, banyak digunakan untuk validasi ukuran file (checksum) yang kita download dari internet. MD5 juga banyak digunakan pada website untuk enkripsi password pengguna pada saat login, sehingga password tersebut akan lebih susah untuk dibaca. Keuntungan menggunakan MD5 Hash adalah berapapun panjang karakter yang ingin kita enkripsi, panjang MD5 Hash-nya selalu sama. Kemudian perbedaan satu karakter pada String yang ingin kita enkripsi akan menghasilkan MD5 yang benar-benar berbeda. Hal itulah yang membuat MD5 banyak digunakan sampai sekarang.

MD5 Hashing pada Java

Jika pada PHP, menggunakan fungsi MD5 sangat mudah, kita tinggal memanggil fungsi md5(), dengan memasukkan parameter inputan berupa String yang mau kita enkripsi. Sedangkan pada Java, kita akan menggunakan kelas MessageDigest dari java.security.MessageDigest untuk bisa mengenkripsi String menggunakan teknik MD5 Hashing. Berikut adalah source code-nya :

File Main.java

package md5.test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Herdi Naufal
 */
public class Main {
    public static String md5Java(String message)
    {
        String digest = null;
        try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                byte[] hash = md.digest(message.getBytes("UTF-8"));
                //merubah byte array ke dalam String Hexadecimal
                StringBuilder sb = new StringBuilder(2*hash.length);
                for(byte b : hash)
                {
                        sb.append(String.format("%02x", b&0xff));
                }
                digest = sb.toString();
            } catch (UnsupportedEncodingException ex)
                {
                        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                } catch (NoSuchAlgorithmException ex)
                        {
                                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        return digest;
    }
    public static void main(String[] args)
    {
        String original = "TWOH's Enginnering";
        String encrypt = md5Java(original);
        System.out.println("Kalimat original : "+original);
        System.out.println("MD5 Hashing : "+encrypt);
    }
}

Intinya adalah kita pertama-tama merubah String ke dalam byte array, setelah itu kita merubah kembali byte array tersebut ke dalam hexadecimal MD5 String. Inilah output dari program di atas :


run:
Kalimat original : TWOH's Enginnering
MD5 Hashing : 86b09a5b5734d1342317bbb50426ec7b
BUILD SUCCESSFUL (total time: 1 second)

Mengakses data Facebook dari Java

Facebook API adalah suatu fitur yang diberikan oleh Facebook kepada Developer aplikasi untuk mengembangkan aplikasinya yang kemudian dapat dipergunakan dalam halaman Facebook. Contohnya seperti game FarmVille, Travian atau Mafia Wars yang biasa kita mainkan. Kali ini kita akan menggunakan membuat program java sederhana untuk membaca data pada Facebook kita.

 

  • Pertama tama buat project pada netbeans atau IDE lain

2018-03-17 11_01_48-Percobaan - NetBeans IDE 8.1

  • Download library restfb di https://github.com/restfb/restfb/releases/download/v2.3.0/restfb-2.3.0.zip
  • Ektstrak file restfb-2.3.0.jar yang ada dalam file .zip tersebut
  • Klik kanan pada folder library di project netbean dan pilih add jar/folder, dan masukkan file restfb-2.3.0.jar tadi

2018-03-17 11_05_47-Percobaan - NetBeans IDE 8.1

  • Buka https://developers.facebook.com/ dan buat aplikasi baru
  • Buka pengaturan dasar aplikasi dan catat id aplikasi beserta passwordnya, kemudian isi URL kebijakan privasi dan ketentuan layanan URL dengan alamat situs sembarang

2018-03-17 11_13_30-aplikasi percobaan - Pengaturan - Facebook untuk Pengembang

  • Aktifkan  aplikasi sehingga iconnya seperti gambar dibawah ini

2018-03-17 11_20_45-aplikasi percobaan - Pengaturan - Facebook untuk Pengembang

  • Buka alat dan pilih Graph API Explorer, copy  kode token yang didapat

2018-03-17 11_28_25-aplikasi percobaan - Pengaturan - Facebook untuk Pengembang

  • Kembali ke Project java tadi, ubah kode tadi menjadi seperti berikut ini

Keterangan :

token : berisi token access dari facebook API

postID= nomer ID dari post yang ingin ditampilkan isinya

 

import com.restfb.DefaultFacebookClient;
import com.restfb.FacebookClient;
import com.restfb.Parameter;
import com.restfb.Version;
import com.restfb.types.Post;
import com.restfb.types.User;

public class Percobaan {

public static void main(String[] args) {
String fields = “id,message”;
String token = “EAACEdEose0cBAFZCseAZCQBTCxbvHASOxnFSRwk6WPaXhqEEBx1yZAtJjtbb6ddyB7inZALn2pZCw70n968uTVcQduLCgulEUhDHr7QgbO9XzZCZC85ZAMaAWQqbMbUUPHMgYcGudLFNBzTAca4W1FZCTxDOnzxEFjd64h68BZB8wt5rgpPfJgmUFE6ToHgw1WR0gZD0”;
FacebookClient facebookClient = new DefaultFacebookClient(token, Version.LATEST);
User user = facebookClient.fetchObject(“me”, User.class);
String postID=”100002101442858_1260832730663430″;
Post post = facebookClient.fetchObject(postID, Post.class, Parameter.with(“fields”, fields));
System.out.println(post.getMessage());

}

}

Tkinter, GUI library untuk Python

Tkinter adalah pustaka standart yang dimiliki oleh Python. Kombinasi Python dan Tkinter ini menghasilkan sebuah tampilan grafik yang menarik sekaligus mudah untuk membuatnya.Tkintermenyediakan berbagai komponen grafis diantaranya tombol, label, kotak teks, yang mana komponen-komponen ini sangatlah sering digunakan dalam aplikasi GUI. Komponen Tkinter ini sering kita sebut widget.

Berikut langkah-langkah sederhana untuk membuat aplikasi GUI berbasis Tkinter di Python:

  1. Memanggil modul Tkinter.
  2. Membuat jendela aplikasi GUI.
  3. Menambahkan komponen pada aplikasi.
  4. Menuliskan kode mainloop.

Memanggil Modul Tkinter

Modul Tkinter berisi berbagai kelas dan komponen yang diperlukan untuk membangun sebuah aplikasi GUI. Untuk menggunakan komponen Tkinter, kita harus memanggilnya terlebih dahulu. Contoh di bawah ini akan menunjukkan bagaimana kita memanggil modul Tkinter.

import Tkinter

Kita juga bisa memanggil semua metode, kelas, dan atribut dari modul Tkinter dengan menggunakan cara seperti di bawah ini.

from Tkinter import *

Membuat Jendela Aplikasi GUI

Setiap aplikasi GUI seharusnya memiliki sebuah jendela utama (root window), yang dapat berisi berbagai komponen yang diperlukan dalam aplikasi yang akan dibuat. Untuk membuat jendela utama dari suatu aplikasi, kita menggunakan pernyataan seperti berikut:

top = Tkinter.Tk()

Jika kita menggunakan pernyataan from-import untuk memanggil modul Tkinter, maka kita cukup menuliskan:

top = Tk()

Menambahkan Komponen Pada Aplikasi

Dengan menggunakan Tkinter, kita dapat menambahkan beberapa komponen pada aplikasi yang kita buat. Komponen ini bisa berdiri sendiri atau dapat diisi komponen lain (disebut Container). Komponen yang berdiri sendiri merupakan komponen yang tidak dapat diisi oleh komponen lain, misalkan tombol, cekbox, dan label. Komponen container merupakan komponen yang bisa berisi/ditempeli oleh komponen lain seperti frame dan window.

Komponen-komponen Tkinter
KOMPONEN DESKRIPSI
Button Komponen Button berfungsi untuk menampilkan sebuah tombol.
Canvas Komponen Canvas digunakan untuk menggambar bentuk seperti garis, lingkaran, poligon, dan kotak.
Checkbutton Komponen Checkbutton berfungsi menampilkan sejumlah pilihan yang ditandai dengan tanda ‘centang’. Pengguna aplikasi dapat memilih lebih dari satu pilihan.
Entry Komponen Entry berfungsi menampilkan kotak teks satu-baris untuk menerima masukan dari pengguna.
Frame Komponen Frame berfungsi sebagai kontainer bagi komponen lain.
Label Komponen Label berfungsi memberikan keterangan untuk komponen lain. Komponen ini juga dapat diisi gambar.
Listbox Komponen Listbox berfungsi menyediakan daftar pilihan untuk pengguna.
Menubutton Komponen Menubutton berfungsi menampilkan menu.
Menu Komponen Menu berfungsi memberikan berbagai perintah kepada pengguna. Perintah-perintah ini juga tercantum dalam Menubutton.
Message Komponen Message berfungsi menampilkan teks yang terdiri dari sejumlah baris untuk menerima beberapa nilai dari pengguna.
Radiobutton Komponen Radiobutton berfungsi menampilkan sejumlah pilihan dalam bentuk tombol radio.
Scale Komponen Scale berfungsi menampilkan skala geser.
Scrollbar Komponen Scrollbar berguna untuk menambahkan fungsi geser (scroll) pada beberapa komponen, seperti komponen Listbox.
Text Komponen Text berfungsi menampilkan teks dalam multi baris.
Toplevel Komponen Toplevel digunakan untuk membuat sebuah kontainer window yang terpisah.

Menambahkan Kode mainLoop

Setelah kita mendesain sebuah aplikasi, tentu saja dengan menambahkan beberapa komponen di dalamnya, kita perlu mengeksekusi program tersebut. Ketika sebuah program kita eksekusi, maka program tersebut akan mengalami perputaran tak berhingga (infinite loop). Kode untuk memasukkan program kita dalam kondisi perputaran ini yaitu

Tkinter.mainloop()

Jika kita menggunakan from-import untuk mengambil semua fungsi pada Tkinter, kita cukup menuliskan

root.mainloop()

dengan root pada kode di atas mengacu pada window utama (toplevel). Berikut ini merupakan sebuah listing program untuk menampilkan sebuah window.

1
2
3
4
5
6
7
8
9
# file: winTk.py
import Tkinter
root = Tkinter.Tk()
# Kode untuk menambahkan komponen
root.mainloop()

Kita juga bisa menuliskan kode di atas seperti ini,

1
2
3
4
5
6
7
8
9
# file: winTk1.py
from Tkinter import *
root = Tk()
# Kode untuk menambahkan komponen
root.mainloop()

Tampilan yang dihasilkan dari program di atas seperti berikut ini,

Instalasi dan membuat Controller sederhana di CodeIgniter

Untuk memahami artikel ini sebaikya membaca terlebih dahulu artikel tentang XAMPP dan bahasa pemrograman PHP

Instalasi CodeIginiter

  • Download file instalasi code igniter di https://codeigniter.com/download
  • Ekstrak file instalasi di di direktori htdocs XAMPP, dalam contoh ini saya menggunakan c:/xampp/htdocs
  • Aktifkan apache pada Xampp Control Panel

2017-11-23 07_51_59-htdocs

  • Buka localhost di web browser, dan akan tampil tampilan berikut

2017-11-23 07_57_26-Welcome to CodeIgniter

  • Instalasi telah berhasil

Selanjutnya kita akan membuat controller, controller adalah bagian  software yang mengatur lalu lintas data. Dalam code iginiter sebuah controller disimpan di folder application/controller. Didalam folder itu sudah ada controller bawaan CodeIgniter yatu Welcome.php. Maka kita harus membuat controller versi kita sendiri, misal kita beri nama Pages.php

2017-11-23 08_01_17-controllers.png

Kemudian didalam controller kita, kita tambahkan perintah untuk menampilkan tulisan di berikut

class Pages extends CI_Controller { //Controller dalam CI harus selalu mengextends CI_Controller

public function index() //Nama fungsi 
{
echo "Hello world"; //Menampilkan tulisan pada layar
}
}

Untuk mengaksesnya kita membuka link http://localhost/ci2/index.php/Pages pada web browser. Tampilannya adalah

2017-11-23 08_19_45-localhost_ci2_index.php_Pages

Jika ingin membuat fungsi lain maka kita menambahkan pada file controller tadi

class Pages extends CI_Controller {

public function index()
{
echo "Hello world";
}
public function coba (){

echo "Fungsi kedua"

}

}

Untuk mengaksesnya cukup kita tulis http://localhost/ci2/index.php/Pages/coba

2017-11-23 08_24_13-404 Page Not Found