Skip to main content

Implementasi sederhana dari regex di Java

Regular expression merupakan penggunaan pola tertentu dalam bentuk yang mempunyai sifat tertentu sehingga bisa diterapkan secara umum untuk hal yang sifatnya seragam. Misalkan nomor telepon lokal yang terdiri dari kode negara + kode wilayah + kode awal + nomor pembeda, berbeda dengan pola yang digunakan untuk nomor ktp. Dengan mengambil pola dari susunan konstruksi dari nomor telepon, kita bisa menentukan sebuah nomor apakah valid sebagai nomor telepon atau tidak. Itulah gunanya regex. Dalam pemrograman, regex bisa dengan mudah menyederhanakan validasi pola teks tertentu yang sebelumnya memerlukan beberapa buah tes kondisi dan looping cukup digantikan dengan sebaris validasi. Untuk melakukan testing nomor telepon saja minmal diperlukan empat buah if sebelum digantikan oleh regex.
Regex sudah diterapkan di semua bahasa pemrograman modern dengan sintaks ekspresi yang seragam dengan beberapa perbedaan kecil dan aturan tambahan. Secara umum biasanya terdiri dari argumen berupa pola regex, teks yang akan ditest, dan hasil. Kalo kita tuliskan dalam bentuk php untuk menggunakan pola nomor telepon usa adalah:

preg_match_all("(\d-)?(\d{3}-)?\d{3}-\d{4}",
"Call 555-1212 or 1-800-555-1212 right now", $phones);

Beberapa contoh regex yang nantinya bisa di test di aplikasi java yang telah dibuat :
( COntoh pola ini diambil dari buku "Java Regular Expressions: Taming the java.util.regex Engine" -nya "Mehran Habibi" )

Email: [A-Za-z]+_[A-Za-z]+@[A-Za-z]+\.com
Contoh : depan_belakang@yahoo.com

Telepon: (\d-)?(\d{3}-)?\d{3}-\d{4}
Contoh : 1-111-2222

Tanggal: \d{1,2}-\d{1,2}-\d{4}
Contoh : 04-02-1999

Nama Orang : (\p{Upper}(\p{Lower}+\s?)){2,3}
Contoh : John Smith

Alamat Lengkap : ^(\p{Upper}(\p{Lower}+\s?)){2,3}\w+ .*, \w+ \d{5}(-\d{4})?$
Contoh : John Smith 888 Luck Street, NY 64332


Karena teori regex ini sangat rumit dan luas, maka kita buat implementasinya yang bisa sangat sederhana di java. Jadi tinggal pikirkan pola regexnya, sedangkan aplikasi javanya sendiri bisa dengan mudah dibuat. Fungsinya untuk menentukan apakah sebuah teks valid atau tidak berdasarkan pola yang ditentukan dan menampilkan hasilnya. Bentuk aplikasi command-nya berikut ini:

import java.util.regex.*;
import java.io.BufferedReader;
public class regex{
public static void main(String[]a)throws Exception{
BufferedReader br;
System.out.println("\nRegex Evaluator ....om4gus");
System.out.println("Tekan Ctrl+C untuk keluar\n");
while(true){
br=new BufferedReader(new java.io.InputStreamReader(System.in));
System.out.print ("_______________________");
System.out.print ("\nPola : ");
String pola=br.readLine();
System.out.print ("Text test : ");
String txt=br.readLine();
new regex(pola,txt);
//br.read();
}
}
///Ini adalah constructor yang bisa diambil kemudian ditelakkan dengan mudah di-implementasikan program lain
public regex(String pola,String txt){
Pattern p = Pattern.compile(pola);
Matcher m = p.matcher(txt);
String hasil="";
int I=0;
while(m.find(I)){
hasil = hasil + m.group() + "\n";
I=m.start()+1;
}
if(I == 0)
System.out.println("---Pola Tidak Sesuai---");
else
System.out.println("Hasil : \n" + hasil);
}
}

_____________________________________________________________________

Download source

Comments

Post a Comment

Popular posts from this blog

Pembuatan PDF di PHP dengan FPDF dan HTML2FPDF

Untuk membuat pdf dengan menggunakan php, kita bisa menggunakan fpdf yang berbasis class. Sedangkan html2fpdf digunakan untuk mengubah html menjadi pdf. Dengan hanya menggunakan fpdf, kita harus menentukan semua hal yang mengatur tampilannya berbasis code sesuai dengan aturan dan fungsi yang disediakan class tersebut. Dengan menggunakan html2fpdf, kita cuma perlu membuat sebuah file html dan tampilannya langsung diubah menjadi sebuah file pdf, tentu dengan beberapa keterbatasan dan perubahan tampilan. Saat ini, fpdf terbaru pada versi 1.6 sedangkan html2fpdf versi 3. Instalasi: + Ekstrak file fpdf dan html2fpdf. Sebenarnya html2fpdf merupakan inheritance dari class fpdf, tapi class di fpdf yang disdertakan di paket html2fpdf telah dimodifikasi dari aslinya sesuai dengan kebutuhan konversi tersebut. Class original dari fpdf akan kita pakai untuk pembuatan pdf secara manual, bukan dari html. + Ganti nama file fpdf.php misalkan menjadi fpdf16.php. Karena untuk bebrapa versi instalasi php

Java-MySql: Aplikasi Database dengan Data Gambar (Updated)

Untuk update metode simpan gambar lihat di appGambar 2.0 Bagaimana caranya menyimpan data yang membutuhkan penyimpanan data gambar? Misalkan data pegawai yang membutuhkan penyimpanan gambar dari setiap pegawai. Alternatifnya ada dua, dengan kelebihan dan kekurangan masing-masing. Cara yang pertama adalah dengan membuat field dengan tipe data binary, kemudian menyimpan gambar yang dibutuhkan dalam field di database tersebut. Cara ini membutuhkan manajemen program yang lebih rumit, tapi data gambar akan terjamin, karena tersimpan didalam database yang terintegrasi dengan data lainnya. Kekurangan lainnya adalah ukuran database yang akan membesar dan lambat. Bayangkan saja, sebuah field membutuhkan gambar dengan format jpeg, 200kB. Apabila ada 200 juta record, maka ukuran field yang diperuntukan khusus untuk gambar dengan perhitungan kasar adalah 0.2 MB x 200M = 40 x 10^12 = 40 TB. Belum ditambah dengan ukuran data dari field lainnya, kalau misalkan untuk menyimpan data penduduk Indonesia.

Java: Pengiriman Parameter antar Frame

Sebenarnya konsep ini berlaku bukan hanya pada frame, tapi bisa dilakukan antar object dari class yang sifatnya umum, karena Java yang sifatnya sudah full OOP. Tapi, karena lebih sering diterapkan dalam pemrograman GUI desktop, khususnya dengan Netbeans, maka dicontohkan dengan class javax.swing.JFrame. Setiap bentuk code java harus dibentuk dalam bentuk class, biar sebagaimanapun sederhananya. Tidak seperti pemrograman lainnya yang menggunakan konsep OOP sebagai tambahan dan pengembangan dari yang sudah ada sebelumnya. Itulah sebabnya kita mengenal class di C++, Pascal, PHP, tapi masih diperbolehkan untuk tetap menggunakan konsep primitif. Sedangkan pada kasus java dan .NET, OOP merupakan inti utamanya yang harus selalu diikuti dan diterapkan. Awalnya akan sangat membingungkan, tapi sangat mudah untuk langkah pengembangan selanjutnya. Sudah lihat JavaDoc? itu adalah dokumen pemrograman yang paling aneh didunia, pada pandangan pertama. Coba bandingkan dengan MSDN-nya .NET, PHP Manual,