Senin, 29 Juni 2015

Cara Decompile File Jar


Pada artikel kali ini saya akan mencoba untuk mengulas bagaimana caranya kita ingin membongkar source code pada file executeable java (.jar). Caranya ternyata tidak begitu sulit, kita cukup menyiapkan sebuah tools decompiler untuk melakukan decompiling file JAR tersebut menjadi source code kembali (.java). Tools decompiler ini tersedia di Java Decompiler. Silahkan download tools tersebut terlebih dahulu.

Ketika sudah mendownload tools tersebut, buka tools tersebut.

Gambar Membuka Java Decompiler Tools
Setelah dibuka maka akan tampil form seperti gambar berikut ini

Gambar Form Utama Java Decompiler Tools

Pilih Menu File > Open File. Kemudian pilih file jar yang ingin didecompile menjadi source code. Pada contoh di artikel ini saya memilih program java sederhana yang telah saya buat dengan nama Decompile.

Gambar Setelah Memilih File Jar
Setelah itu pilih Menu File > Save All Sources. Ketika telah disave, maka akan menjadi seperti yang ditampilkan pada gambar berikut ini.
Gambar Hasil Save Source Untuk Decompile.jar
Kemudian extract file tersebut, dalam contoh artikel ini, file yang diextract adalah Decompile.jar.src.zip. Pada akhirnya nanti kita akan menemukan file Decompile.java. Pada artikel ini terletak pada direktori \Decompile.jar.src\decompile\Decompile.java. Langkah terakhir yaitu membuka file Decompile.java tersebut dengan editor tercinta Anda. Kemudian Anda akan melihat source code tersebut. Berikut adalah source code hasil decompile dari tools Java Decompiler.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*    */ package decompile;
/*    */ 
/*    */ import javax.swing.JOptionPane;
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ 
/*    */ public class Decompile
/*    */ {
/*    */   public static void main(String[] args)
/*    */   {
/* 19 */     JOptionPane.showMessageDialog(null, "Halo");
/*    */   }
/*    */ }


/* Location:              D:\Tio\Decompile\dist\Decompile.jar!\decompile\Decompile.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */

Seperti itulah hasil source code yang telah didecompile. Formatnya memang agak berbeda daripada kita menulis dari awal. Dan sedikit catatan dari saya pribadi, terkadang tools Java Decompiler ini menghasilkan source code tidak 100% benar (ada error jika dicompile lagi) namun kesalahannya tidak begitu fatal melainkan seperti adanya nama kelas atau variable yang sama dan pada scope yang sama yang telah dideklarasikan, ataupun seperti adanya kelas yang perlu didefinisikan namun tidak didefinisikan terlebih dahulu sehingga menyebabkan error.

Sekian dahulu dari saya, semoga dapat bermanfaat. Terimakasih.

Selasa, 16 Juni 2015

Penggunaan Regex Dengan QRegularExpression

Kali ini saya akan mencoba menulis tentang penggunaan Regex dengan menggunakan Class QRegularExpression pada Qt. Sebelum jauh melangkah kepada penggunaan QRegularExpression. Saya akan mencoba menjelaskan sedikit tentang apa itu Regular Expression atau biasa dikenal dengan Regex. Ya yang jelas Regex itu bukan suatu genre lagu.

Regex merupakan suatu fungsi yang digunakan dalam pengaturan pola pada suatu teks. Regex biasanya digunakan dalam melakukan validasi-validasi teks agar data teks yang masuk dapat terkendali dan terhindar dari Garbage In. Pengaturan pola pada Regex menggunakan notasi-notasi yang cukup bervariasi dalam penggunaannya. Kenapa kita perlu Regex? Karena untuk mempersingkat baris pada program kita dalam melakukan validasi, dengan menggunakan notasi-notasi dari Regex, kita bisa menghemat banyak baris dalam melakukan validasi pada program kita.

Dalam tulisan ini saya tidak membahas detil tentang notasi-notasi Regex, saya langsung saja menjelaskan bagaimana cara menggunakan Class QRegularExpression pada Qt. Berikut saya akan mulai menjelaskannya dengan diawali dari code program di bawah ini.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <QCoreApplication>
#include <QRegularExpression>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QRegularExpression regExp("[^\w]+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$");
    QString email = "freakandstein@gmail.com";
    if(regExp.match(email).hasMatch()){
        qDebug() << "Match";
    }else{
        qDebug() << "Not Match";
    }
    return a.exec();
}

Code program di atas melakukan contoh validasi format email dengan menggunakan Class QRegularExpression. Pada baris ke 7 terdapat pattern atau pola Regular Expresssion dengan menggunakan notasi-notasi yang akan melakukan validasi teks apakah itu email atau bukan. Untuk pattern Regex email tidak selamanya harus seperti pada baris ke 7 di atas, itu semua tergantung logic dan pengetahuan tentang notasi dari si pembuat pattern, bisa lebih singkat atau bisa lebih panjang.

Pada baris ke 8 kita mencoba email dengan nama "freakandstein@gmail.com" apakah valid atau tidak sebagai email. Lalu pada baris ke 9, email akan dicocokan dengan pola yang telah dibuat dengan menggunakan fungsi match() dan hasMatch(). Hasil dari baris ke 9 akan mengembalikan nilai True jika memang email tersebut terdapat kecocokan dengan pola atau akan mengembalikan nilai False jika memang email tersebut tidak ada kecocokan dengan pola.

Pada code program di atas saat dijalankan, maka akan menghasilkan "Match". Berikut adalah gambar dari contoh programnya.

Output Program Regex
Fungsi yang digunakan pada Class QRegularExpression untuk program di atas adalah fungsi match() dan hasMatch(). Sebenarnya masih ada beberapa lagi fungsi yang ada pada Class QRegularExpression. Tetapi untuk kali ini saya hanya menggunakan 2 fungsi tersebut, untuk selebihnya dapat dicari lagi lebih dalam pada documentation yang telah disediakan.

Untuk sekedar tambahan, saat ini banyak website yang menyediakan sarana untuk belajar Regex secara langsung. Kita bisa langsung mencoba membuat pola dengan notasi-notasi dan kita bisa langsung mengujinya dengan teks inputannya. Contohnya adalah https://regex101.com/, menurut saya website tersebut cukup rekomen bagi yang ingin belajar Regex. Di website tersebut selain kita bisa menguji pola yang kita telah buat secara langsung, di sana juga terdapat penjelasan yang cukup komprehensif untuk setiap notasi-notasinya.

Sekian dari saya, semoga tulisan ini bisa bermanfaat bagi kita semua khususnya pribadi saya sendiri. Terimakasih.

Jumat, 12 Juni 2015

Setup QT Developer For Android

Pada artikel kali ini saya akan mencoba berbagi tentang bagaimana caranya melakukan setup konfigurasi pada QT Developer untuk develop Android. Seperti yang kita telah tahu sebelumnya pada artikel saya, QT adalah sebuah tools atau framework yang berbasis C++ dan bisa mendevelop aplikasi desktop dan juga mobile seperti Android, Blackberry dan iOS. Kali ini saya akan mencoba fokus untuk Android terlebih dahulu, karena saya memang hanya memiliki Android saja :D.

Pertama dan yang utama adalah, kita harus mendownload QT untuk Android terlebih dahulu. Berikut adalah linknya jika ingin mendownloadnya terlebih dahulu QT For Android. Setelah download selesai, maka diinstal dan sedikit menunggu sampai dengan selesainya menginstal. Jika instalasi selesai, langsung saja buka QT Creator pada Program. Pilih Qt Creator (Community) seperti yang ada pada gambar di bawah ini

Qt Creator (Community) Pada Menu Program Windows

Jika kita sudah pernah menginstal QT namun bukan untuk yang develop Android, maka jangan sampai tertukar shortcut programnya. Tetapi sedikit tips dari saya, lebih baik dari awal kita instal saja QT untuk develop Android, karena bagaimanapun dengan QT Android kita bisa mendevelop aplikasi Android dan juga bisa mendevelop desktop. Namun jika kita menggunakan QT untuk desktop, maka kita tidak akan bisa mendevelop untuk aplikasi Android.

Saat Qt Creator (Community) telah dibuka. maka akan tampil sama persis seperti QT Creator untuk desktop. Kemudian masuk pada menu Tools -> Options->Android. Pada gambar di bawah, ini adalah tampilan dari menu Android.

Configuration Qt for Android
Pada gambar di atas, dibutuhkan JDK, Android SDK, Android NDK dan Ant Executable. Untuk ke empat file tersebut harus kita miliki untuk kemudian kita referensikan pada Qt Creator for Android. Bagi yang belum memiliki, berikut saya melampirkan link JDKSDKNDK dan Apache Ant. Bagi Programmer Mobile yang berbasis Java, tidak asing dengan apa yang dimaksud JDK dan SDK, namun saya akan mencoba menjelaskan sekilas tentang apa itu NDK. NDK adalah suatu Toolset yang mana kita bisa menulis program dengan menggunakan C/C++ Native pada develop aplikasi Android, inilah bagian penting dari Qt for Android Developer, karena dengan menggunakan Qt untuk mendevelop aplikasi Android, kita akan menggunakan bahasa pemrograman C/C++, sehingga membutuhkan yang namanya NDK sebagai penterjemah untuk bisa berkomunikasi dengan Dalvik Virtual Machine. Sedangkan Apache Ant itu sendiri adalah semacam Java Library untuk pendukung saat proses building software.

Setelah ke empatnya telah kita download, untuk JDK biasanya kita install, lalu untuk NDK, SDK dan Apache Ant cukup kita ekstrak saja. Kemudian untuk masing-masing lokasinya kita browse seperti gambar yang ada di atas. Sesuaikan masing-masing lokasinya. Setelah itu Qt for Android siap digunakan, kita bisa langsung mendeploy aplikasi yang telah kita buat ke dalam Gadget Android kita atau maupun bisa juga kita membuat terlebih dahulu virtual Gadget Android nya sebagai tester untuk aplikasi yang kita buat.

Sekian dari artikel yang singkat ini, semoga dapat bermanfaat.





Minggu, 07 Juni 2015

Cara USB Debugging Zenfone 2

Pada artikel kali ini, saya sedikit berbagi bagaimana caranya untuk melakukan debug pada Asus Zenfone 2 melalui USB. Awalnya, saya sempat bingung untuk melakukan debugging ini. Saya sempat berpikir bahwa ini adalah masalah kecil, karena biasanya pada gadget-gadget android terdapat menu Developer Options di dalam menu Settings, namun pada Zenfone 2 ini, saya tidak menemukan menu tersebut, saya sempat menghabiskan waktu cukup banyak untuk mencari dimana menu untuk mengubah mode menjadi USB Debugging. Namun saya tidak menemukannya juga, kemudian saya mencoba mencari forum luar lewat si kacamata Google, alhasil saya menemukan caranya, ternyata caranya agak sedikit unik, tidak menggunakan aplikasi tambahan pula. Unik dan simpel. Dua kata yang mewakili. Penasaran bagaimana caranya? Ok langsung saja saya mulai.

1. Buka menu Settings

Menu Settings

2. Pilih About, kemudian pilih Software Information


Menu About => Software Information

3. Pada Build number, tap beberapa kali


Build number

4. Tap beberapa kali hingga muncul seperti ini


Unlock Developer Option

5. Setelah itu kembali ke menu Settings dan lihat ada menu Developer Options


Menu Developer Options

6. Pilih Developer Options, kemudian akhirnya kita menemukan USB Debugging mode.


USB Debugging
Jika kita belum melakukan tahap seperti di atas, menu Developer Options tidak akan muncul. Demikian cara untuk menampilkan Developer Options pada Asus Zenfone 2. Terimakasih dan selamat mendeploy.