Java – Get Current URL in Liferay

Di Liferay ada beberapa macam URL yang bisa dimanfaatkan untuk keperluan membuat Custom Portlet atau modifikasi lainnya. Berikut adalah contoh source code untuk mengambil / mendapatkan beberapa jenis URL di Liferay :

[code language=”java”]
HttpServletRequest servletRequest = PortalUtil.getHttpServletRequest(request);
String currentCompleteUrl = PortalUtil.getCurrentCompleteURL(servletRequest);

try {
String renderCurrentURL = PortalUtil.getCurrentURL(request);
String servletRequestCurrentURL = PortalUtil.getCurrentURL(servletRequest);
String canonicalURL = PortalUtil.getCanonicalURL(currentCompleteUrl, themeDisplay, themeDisplay.getLayout());
String homeURL = PortalUtil.getHomeURL(servletRequest);
String currentPageURL = PortalUtil.getPortalURL(themeDisplay)+themeDisplay.getLayout().getFriendlyURL();
String portalUrl = PortalUtil.getPortalURL(request);
String servletRequestPortalUrl = PortalUtil.getPortalURL(servletRequest);
String themedisplayPortalUrl = PortalUtil.getPortalURL(themeDisplay);
String themedisplaylayoutPortalUrl = PortalUtil.getPortalURL(themeDisplay.getLayout(), themeDisplay);
String portalWebDir = PortalUtil.getPortalWebDir();
String portalLibDir = PortalUtil.getPortalLibDir();

System.out.println("currentCompleteUrl: "+currentCompleteUrl);
System.out.println("renderCurrentURL: "+renderCurrentURL);
System.out.println("servletRequestCurrentURL: "+servletRequestCurrentURL);
System.out.println("canonicalURL: "+canonicalURL);
System.out.println("homeURL: "+homeURL);
System.out.println("currentPageURL: "+currentPageURL);
System.out.println("portalUrl: "+portalUrl);
System.out.println("servletRequestPortalUrl: "+servletRequestPortalUrl);
System.out.println("themedisplayPortalUrl: "+themedisplayPortalUrl);
System.out.println("themedisplaylayoutPortalUrl: "+themedisplaylayoutPortalUrl);
System.out.println("portalWebDir: "+portalWebDir);
System.out.println("portalLibDir: "+portalLibDir);
} catch (Exception e) {
e.printStackTrace();
}
[/code]

Source code java tersebut diatas silahkan dimasukkan ke dalam Package di environment development Liferay kalian. Dan jangan lupa mengganti atau menghapus System.out.println(); jika ingin deploy ke Liferay Portal kalian. Script tersebut hanya digunakan jika kalian perlu menampilkan langsung di console sebelum deploy ke server.
Berikut contoh hasil dari source diatas :

[code language=”java”]
/**
currentCompleteUrl: http://localhost:8080/organization?selectedCard=Organization&cardViewState=Listview
renderCurrentURL: /organization?selectedCard=Organization&cardViewState=Listview
servletRequestCurrentURL: /organization?selectedCard=Organization&cardViewState=Listview
canonicalURL: http://localhost:8080/organization?selectedCard=Organization&cardViewState=Listview
homeURL: http://localhost:8080/web/guest
currentPageURL: http://localhost:8080/organization
portalUrl: http://localhost:8080
servletRequestPortalUrl: http://localhost:8080
themedisplayPortalUrl: http://localhost:8080
themedisplaylayoutPortalUrl: http://localhost:8080
portalWebDir: /opt/liferay/tomcat-7.0.42/webapps/ROOT/
portalLibDir: /opt/liferay/tomcat-7.0.42/webapps/ROOT/WEB-INF/lib/
**/
[/code]

Semoga bermanfaat ๐Ÿ™‚

jsoup html parser

JSoup – search html element by value text

JSoup merupakan salah satu java library yang membantu kita untuk melakukan ekstraksi serta memanipulasi file HTML, library ini juga bisa kita pake ketika membuat aplikasi android yang mana membutuhkan untuk ekstraksi hasil scrap HTML dari sebuah URL / Website ataupun dari sebuah file HTML.

Konsep pemakaiannya hampir sama ketika kita bermain-main dengan JQuery (JavaScript). Misalkan kita ingin mendapatkan atribut, value atau elemen lainnya yang ada di halaman HTML yang ditentukan berdasarkan ID elemen, Class elemen atau atribut sejenisnya. Langsung ke contoh awal penggunaan JSoup aja ya biar lebih paham. Continue reading

Eclipse Error Create JVM

Mengatasi Masalah Eclipse Indigo : Failed To Create the Java Virtual Machine

Di pagi buta ini saya coba untuk share sekelumita pengetahuan yang barusan didapet setelah instalasi Eclipse Indigo yang udah terintegrasi dengan BlackBerry Plugin dan JDE BlackBerry. Jadi cerita kali ini aku coba mau bikin aplikasi sederhana di platform BlackBerry.

Setelah proses instalasi aplikasi yang besarnya sekitar 500Mb, aku coba running Eclipse. Eh, ternyata muncul pesan error yaitu “Failed To Create the Java Virtual Machine“. Bingung dah… belum apa-apa udah muncul ginian. Langsung deh minta wangsit ke Google ๐Ÿ˜€ Continue reading

Pattern Regex Untuk Deteksi Komentar dan Method / Function

Selamat sore semuanya, lama sudah tak jumpa disini :mrgreen:
Ya, kali ini aku mau share sekelumit pengetahuan baru yang aku dapat yaitu mengenai bagaimana kita bisa mengambil atauย mendeteksi komentar (comments) dan function / method yang ada di dalam source code. Untuk regex yang digunakan deteksi komentar, bisa diaplikasikan untuk jenis komentar sebagai berikut ini :

/**
 *Komentar lebih dari satu baris
 */

// Komentar perbaris

/** Komentar perbaris lainnya */

/* Komentar */

Sedangkan regex untuk deteksi function / method, ini saya buat hany untuk deteksi source code Java, seperti berikut ini :

public void ContohFungsi(String a){ ... }
private String ContohLain(){ ... }
... dan sejenisnya

Oke berikut ini adalah pattern regex dari kedua kebutuhan tersebut diatas :

// Deteksi Komentar
(/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/)|(//.*)// Deteksi Function / Method
\\w+ +\\w+ *\\([^\\)]*\\) *\\{

Semoga bisa bermanfaat bagi kalian, sampai ketemu lagi ๐Ÿ™‚

Contoh Game/Permainan Puzzle 8 Blok (GUI) Menggunakan Java

Pada postingan sebelumnya sudah aku bahas mengenai game ini yang menggunakan Metode Hill Climbing dan Manhattan Distance untuk menentukan solusi terbaik dari problem solving untuk urutan blok pada game tersebut. Hanya saja pada postingan yang sebelumnya saya bahas yaitu Text Mode bukan berupa GUI, kali ini saya ingin share untuk GUI Versionnya. Tampilan program/gamenya seperti pada gambar dibawah ini :
Game Puzzle 8 Blok Java
Oke sekian saja penjelasannya, semoga bisa ngerti :mrgreen:
Langsung saja, ini contoh game yang sudah jadi dan tinggal runnning (asalkan sudah terinstall Java di komputer/laptop kamu) download contoh game puzzle 8 blok java dengan metode hill climbing disini.
Nah untuk source code dari game tersebut diatas bisa download disini

Semoga bisa bermanfaat ๐Ÿ™‚

Implementasi Metode Simple Hill Climbing Pada Game Sederhana Puzzle 8 Blok

Game Puzzle 8 Blok adalah permainan sederhana yang terdiri dari susunan 9 buah kotak/persegi yang mana 8 kotak diantaranya berisikan angka dari 1 hingga 8, 1 kotak sisanya kosong. Kotak kosong ini digunakan untuk memindahkan 8 kotak atau blok-blok hingga mencapai urutan angka yang diinginkan. Mungkin untuk lebih jelasnya silahkan lihat gambar dibawah ini, gambar berikut ini adalah visualisasi permainan tersebut :

Ya seperti itulah, jadi teringat permainan itu di masa lalu ya?? ๐Ÿ™‚ Saat ini saya akan coba membuatnya dalam sebuah permainan komputer sederhana, kenapa sederhana, karena untuk bagian pertama ini saya ingin share dulu game versi text nya, atau versi DOS (Command Prompt). Untuk versi GUI nya akan menyusul di posting selanjutnya :).

Disini agar proses pencarian solusi optimal, saya menggunakan algoritma Simple Hill Climbing yang didukung dengan metode Manhattan Distance untuk mengetahui jumlah atau jarak paling minimum dari persoalan menuju posisi blok yang diinginkan. Untuk lebih jelasnya mengenai Manhattan Distance atau Simple Hill Climbing bisa dicari lebih lanjut di website lainnya :mrgreen:. Untuk hasil contoh jalannya program ini adalah sebagai berikut : Continue reading

Android Vibrate Source Code

Sample Source Code For Vibrate Android Phone

Vibrate atau vibrasi atau getaran merupakan satu media yang cukup interaktif untuk digunakan mengirim informasi ke pengguna smartphone Android atau mengirimkan notifikasi akan adanya suatu proses atau pembaharuan tertentu. Misalkan kalau ada SMS baru atau ada Pesan (Email, Chat) baru pastinya Smartphone Android kita akan memberikan notifikasi berupa suara dan getaran/vibrasi tertentu sehingga kita tahu bahwa ada hal yang perlu kita lihat.

Nah, disini aku mau berbagi mengenai bagaimana caranya membuat suatu aplikasi Android yang bisa memerintahkan smartphone kita untuk bergetar/vibrate. Pengetahuan ini aku dapat dari http://android.konreu.com/developer-how-to/vibration-examples-for-android-phone-development/ย . Terima kasih bagi beliau ๐Ÿ™‚

Disini aku hanya ingin share ulang dan meringkas dalam bahasa kita Indonesia agar lebih gampang lah… hehe :mrgreen:. Oke yang akan kita buat nantinya adalah :

  1. Memberikan getaran berdasarkan kurun waktu tertentu
  2. Getaran/vibrate dengan irama tertentu
  3. Getaran tidak berhenti selama belum ada tindak lanjut dari pengguna

POIN utama sebelum memulai ini semua, beri hak akses pada Manifest agar mengijinkan untuk memberikan efek Vibrate, dengan sisipkan kode berikut pada bagian tengah Manifest Code :

<uses-permission android:name="android.permission.VIBRATE"/>

Poin 1, kita buat Vibrate dengan kurun waktu tertentu, silahkan sisipkan kode berikut di Activity yang terkait :

int lama_waktu = 1000; // 1 detik
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(lama_waktu);

Poin 2, kita buat Vibrate/Getaran dengan irama/pattern tertentu, misalkan seperti ini “zzz-zzz-zzz z zzzzzzz-zzzzzz” atau semacamnya. Intinya kita hanya memainkan waktu getaran dengan diberi waktu jeda agar menghasilkan irama tertentu. Bisa dimulai dengan code seperti berikut, silahkan dikreasikan sendiri ๐Ÿ˜€

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Contoh vibrate ini seperti tanda "SOS" di Sandi Morse
// Iramanya adalah, "S" = "dot-dot-dot", "O" = "dash-dash-dash"
int dot = 200;
int dash = 500;
int short_gap = 200;	// jeda waktu untuk irama
int medium_gap = 500;	// jeda waktu antar huruf
int long_gap = 1000;	// jeda waktu antar kata
long[] pattern = {
	0,										// Start
	dot, short_gap, dot, short_gap, dot, 	// S
	medium_gap,
	dash, short_gap, dash, short_gap, dash, // O
	medium_gap,
	dot, short_gap, dot, short_gap, dot, 	// S
	long_gap
};

// bergetar hanya sekali, tidak berulang
v.vibrate(pattern, -1);

Efek terakhir, adalah bergetar secara terus menerus sampai ada satu proses untuk Cancel atau semacamnya :

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Vibrate selama 200 milliseconds
// Jeda waktu selama 500 milliseconds
long[] pattern = { 0, 200, 500 };

// "0" menunjukkan akan diulang kembali irama mulai dari awal
v.vibrate(pattern, 0);

Code diatas tersebut digunakan agar bergetar secara terus menerus, untuk mengentikan proses tersebut, gunakan code berikut di bagian proses lain misalkan setelah suatu tombol di klik atau lainnya :

v.cancel();

Oke, sekian share ulang nya… semoga bisa bermanfaat :). Thanks to http://android.konreu.com/

Custom ListView Android With Database

Membuat Custom ListView Android Dengan Data Item Yang Diambil Dari Database SQLite

Selamat sore semuanya :),
Kali ini aku mau berbagi pengetahuan mengenai bagaimana caranya membuat tampilan ListView di Android dengan layout (susunan item bisa lebih dari 1 baris dan style yang lebih menarik) yang sesuai dengan keinginan kita. Dan data yang ditampilkan dalam listview ini nanti, adalah mengambil dari dalam database SQLite.

Contoh hasil jadi dari aplikasi ini nanti adalah seperti gambar berikut :
Custom ListView Android With Database

Intinya, gimana caranya kita membuat sebuah ListView di Android dengan susunan seperti ini :

Judul Item
Sub item detil

Karena kebanyakan ListView yang standard bawaannya, hanya akan menampilkan di bagian atas saja dari contoh tersebut. Untuk dapat melakukan/membuat tampilan seperti itu, kita membutuhkan bantuan BaseAdapter atau jika ingin lebih lagi bisa pakai ArrayAdapter.

Pertama, kamu buat Android Project baru silahkan kasih nama apa. Dalam kasus ini, Main Activity nya aku beri nama DaftarPenagihan. Sebelum itu, kalian perlu mempersiapkan 1 buah database dengan nama penagihanย (karena dalam tutorial ini aku pakai database dengan nama tersebut :D), dan jangan lupa setelah membuat file database ini, taruh file nya di dalam workspace kamu di dalam folder assets, berikut adalah susunan tabelnya :

Database SQLite

Dan berikut adalah list source code masing-masing file,, bisa kamu copy paste atau langsung download projectnya nanti. Continue reading

Fungsi Menampilkan Tanggal Saat Ini – Android

Yap… kali ini aku mau share mengenai Pemrograman Android lagi nih… yang ini cukup mudah, dan aku yakin pasti banyak yang butuh fungsi ini ๐Ÿ˜€ (semoga… :p)
Ya, satu fungsi umum yaitu bagaimana cara menampilkan tanggal dan waktu saat ini atau bahasa kerennya adalah “how to get current date and time” di Pemrograman Android yang nantinya akan di tampilkan pada View tertentu.

Oke, langsung saja, berikut method/fungsi nya :

public String getCurrentDate(){
	final Calendar c = Calendar.getInstance();
    int year, month, day;
    year = c.get(Calendar.YEAR);
    month = c.get(Calendar.MONTH);
    day = c.get(Calendar.DATE);
    return day + "/" + (month+1) + "/" + year;
}

// cara pemanggilannya seperti ini
String tanggal_sekarang = getCurrentDate();

Yap, sekian… semoga bermanfaat :mrgreen:

Cara Melihat Database Yang Tersimpan Di Android (Emulator) – Eclipse

Thread kali ini membahas sedikit mengenai Android App Development. Pernahkah kalian membuat aplikasi berbasis Android yang diharuskan untuk memakai database?
Jika pernah, pasti kalian pernah muncul pertanyaan yang sama seperti saya, yaitu “Bagaimana caranya untuk melihat database yang sudah dibuat melalui Android di Eclipse ???”

Karena database yang terbuat saat develop aplikasi Android rata-rata sudah tertanam secara otomatis saat method DatabaseHandler Android berjalan, nah di File Explorer biasa pasti kita gag akan bisa menemukan dimana letak database yang sudah dibuat tersebut…. Continue reading