Iseng – preg_replace to get only string and output break by space

Oke, iseng..

jadi ada teman saya yang bertanya, dia punya code seperti ini , dalam java :

String isiSms = “Halo Sayang 67253daripada1875katanya memperkenalkan3356%%^&***&”;
String token = isiSms.toLowerCase();
StringTokenizer hasilToken = new StringTokenizer(token, “1234567890,!@#$%^\n ></˜&*()’><?_+=-{}|:”);
{
while (hasilToken.hasMoreTokens()) //proses tokenizing
{
System.out.println(hasilToken.nextToken()); }
}

maksud dari kode diatas adalah untuk mengambil string saja dari variabel isiSms , menampilkannya menjadi huruf kecil saja dan memisahnya perkata, outputnya :

halo
sayang
daripada
katanya
memperkenalkan

nah, dari barisan code diatas, saya diminta untung men-translatenya dengan menggunakan bahasa php [sedikit keahlian saya]. singkat saja, langsung lihat hasil jadinya, seperti ini :

function string_tokenizer($str){
$kata = strtolower($str);
$ambilstring = preg_replace(‘/([^a-z]+)/i’,’ ‘,$kata);
$isiSMS = strtok($ambilstring,” “);
while($isiSMS){
echo $isiSMS.”<br/>”;
$isiSMS = strtok(” “);
}
}

//panggil function

$str=”Halo Sayang 67253daripada1875katanya memperkenalkan3356%%^&***&”;
string_tokenizer($str);

penjelasan sedikit fungsi diatas,  jadi inputan berupa kalimat yg disimpan di variabel $str.

$kata = strtolower($str);  -> mengubah string yang ada dalam variabel $str menjadi huruf kecil;

$ambilstring = preg_replace(‘/([^a-z]+)/i’,’ ‘,$kata); -> untuk mereplace karakter selain huruf dengan spasi

sudah pernah memakai regex kan? regular expression.. jika belum, silahkan bermain ke http://www.regular-expressions.info/ 🙂

preg_replace itu fungsi di php => preg_replace(patternnya,mau-di-replace-dengan-apa,subject-yg-mau-direplace);

lebih lengkapnya bisa ke php manual nya 😀

jadi untuk : $ambilstring = preg_replace(‘/([^a-z]+)/i’,’ ‘,$kata);

itu pattern ini isinya pattern regexnya => /([^a-z]+)/i -> berarti karakter selain huruf kecil a-z

lalu -> ‘ ‘ -> ini artinya spasi aja , jadi replacementnya adalah spasi, jadi jika ada karakter selain huruf a-z akan diganti dengan spasi.

$kata itu subjectnya, dalam fungsi tsb $kata=strtolower($str). $str disini parameter inputan untuk function string_tokenizer. contoh yg sama masukin pas panggil funcion tadi kan -> “”Halo Sayang 67253daripada1875katanya memperkenalkan3356%%^&***&”;”  function strtolower itu untuk mengubah $str menjadi huruf kecil 😀

yang terakhir itu ada function strtok, nah ini gunanya buat memecah string yang kita punya berdasarkan karalter pemisahnya.

jadi => strtok(“string_yg_akan_dipecah”, “karakter_pemisah”)

dari skrip saya -> $isiSMS = strtok($ambilstring,” “);  -> memecah string yang tekah kita dapatkan dengan karakter pemisahnya adalah spasi.

lalu tinggal kita cetak dalam while loop. selesai ^_^

#selamat mencoba ^_^  Coding Is Fun 😀

Iseng – Contoh Program Java Sederhana – transfer bank

sekedar iseng sih, bantuin adek kost semester 2 yang lagi belajar object oriented programming. Java nih, udah lama gak megang sih, tapi untuk program sesederhana ini, saya masih lancar lah~~ heuheuheu…  cuma contoh transfer bank sederhana..

public class nasabah{

//deklarasi variabel
private String nama;
private int norek;
private int saldo;
private int jumlah;

public nasabah ( string nama, int norek, int saldo){
this.nama=nama;
this.norek=norek;
this saldo=saldo;
}

//buat method untuk ceksaldo

public void ceksaldo(){
System.out.println(“Nama Anda : “+nama);
System.out.println(“Nomor Rekening Anda : “+norek);
System.out.println(“Saldo Anda Saat Ini : “+saldo);
}

//method setorUang, return valuenya adalah saldo

public int setorUang(int jumlah){
this.jumlah=jumlah;
saldo=saldo-jumlah;
return saldo;
}

//method tarikUang, return valuenya adalah jumlah yg ditarik

public int terimaUang(int jumlah){
this.jumlah=jumlah;
saldo=saldo+jumlah;
return jumlah;
}

public static void main (String args[]){

//buat object dari class nasabah
nasabah nasabah1 = new nasabah (“nasabah 1”,123,500000);
nasabah nasabah2 = new nasabah (“nasabah 2”,123,300000);

nasabah1.ceksaldo();
nasabah2.ceksaldo();

//transfer
int jumlahtransfer=100000;

System.out.println(“====Saldo nasabah setelah transfer sejumlah “+jumlahtransfer+”====”);

nasabah1.tarikUang(nasabah2.terimaUang(jumlahtransfer));

nasabah1.ceksaldo();
nasabah2.ceksaldo();

}

}

Create square thumbnail from any image size with PHP thumbnail class

*sebelumnya mohon maaf ini kalau bahasa saya agak berantakan*

Oke, postingan kali ini adalah berkenaan dengan create thumbnail dengan php thumbnail class.  Dalam suatu web, misal portal berita, atau web seperti http://carapedia.com untuk tampilan list news, kita biasanya nampilin image thumbnail di tampilan list news kita 😀 nah, untuk membuat thumbnail, kita bisa menggunakan Thumbnail.inc.php, itu bisa diambil dari sini aja -> Thumbnail.inc.php *ntah nemu darimana saya, yang jelas web yang saya oprek juga pake class ini*

Itu digunakan untuk membuat thumbnail dari image qt, disitu ada function resize , buat nge-resize image kita sesuai ukuran yang kita inginkan.  Untuk resize image,  dalam function resize ada  parameter maxWidth dan maxHeight.  Didalamnya ada perhitungan rationya, untuk menghasilkan gambar yang proportional. Jadi misalnya gambar 650×325, dengan maxWidth=120, idealnya untuk thumbnailnya adalah 120×60. Ini idealnya berdasarkan rationya.

Nah, maka masalah yang saya temui berdasarkan permintaan yang saya terima dan berdasarkan desain yang saya terima, bahwa image size untuk thumbnail haruslah square dengan ukuran 120×120. Lalu bagaimana? Bila image yang di upload sudah dalam bentuk square tentunya tidak masalah, tinggal pasang maxWidth dan maxHeight-nya 120, namun, ananging, jika image nya bukan pada ukuran square? misal 650×325, maka hasilnya ya tadi, 120×60, bukan square kan?

Lalu bagaimana cara ngakalinnya, emm, saya berputar-putar seharian untuk ini, nanya sama Galuh (temen kuliah saya) dan nanya bang ochi juga (senior programmer saya) dan mereka jawabannya sama. Di crop dulu untuk dapetin square image size, baru di resize.  Ada juga referensi logikanya, disini , bagian :

I want the thumbnail to be representative of the original image. This would be done by resizing the original so that it’s shortest side equalled the desired thumbnail size, while the longest side is worked out by restraining the ratio of the original image. Then, a crop would be taken directly from the center, at the desired thumbnail size, resulting in a pretty good thumbnail™.

Jadi gini nih, logikanya adalah apabila saya punya file image ukuran 650×325, saya akan crop dulu, ada function di thumbnail class untuk CropFromCenter, jadi image d crop dari tengah. Size yang dipilih adalah size minimal dari width dan height, jadi -> cropFromCenter(325); setelah itu baru kita resize sesuai ukuran yang kita inginkan. Hasilnya, kita bisa tepat memiliki image thumbnail dengan ukuran square.

Oke, langsung ke source codenya. Ini nyoba d localhost aja. Pertama, download thumbnail.class.php dulu dari link yang tadi, ini ntar di include. Lalu kita buat function ini :

<?php
include "thumbnail.inc.php";
function createThumbs( $pathToImages, $pathToThumbs, $maxWidth = 120, $maxHeight = 120, $quality=100 )
{
//echo "masuk createThumbs";
//include_once(_DOC_ROOT . "grab/thumbnail.inc.php");
if( is_file($pathToImages) )
{
$thumb = new Thumbnail($pathToImages);
if( $thumb )
{
list($width, $height) = getimagesize($pathToImages); //mendapatkan ukuran image, disimpan di list
$min = min($width, $height); //mendapatkan nilai terkecil dari height/widthnya
cropFromCenter($min); //memotong gambar dari tengah, sesuai ukuran min
$thumb->resize($maxWidth,$maxHeight); ///resize gambar
$thumb->save($pathToThumbs,$quality); //menyimpan gambar
}
else 
return false;
}
else
{
mail("feni@gmail.com","File Not Found $pathToImages", $pathToImages); 
return false;
}
return true;
}
?>

Nah, tinggal pake functionnya itu :

<?
$pathToImages = "img/online.jpg";
$pathToThumbs="thumb/online.jpg";
createThumbs( $pathToImages, $pathToThumbs, $maxWidth = 120, $maxHeight = 120, $quality=100 );

echo "ini image thumbnailnya  

 ";
echo "";
?>

Done, ada img thumnailnya kan? dengan ukuran fix 120×120, square.

Kelemahannya, ya karna image harus d crop kan, jadi ga tampil semuanya, dan kadang hasil cropnya aneh, hahhahaha., tapi paling manusiawi sih ya d crop dari tengah aja :3

Ohiya, sebenernya masih ada solusi kedua sih, yaitu kita main d CSS, ini kata temen kantor saya , programmer dan desainer.  Jadi, image size thumbnailnya dibesarkan, maunya kan 120×120, dibuat lebih dari itu. Trus nanti pas ditampilkan ke web, kita mainkan css, masukkan gambar d box div ukuran 120×120, lalu bila gambar lebih, d overflow:hidden, disembunyikan gitu. Tapi ini juga ada kelemahan, hla gambar yang dulu, yang kurang dari 120×120, yang sekarang kan saya tarik jadi 120×120, tapi kalau pake itu ntar, jadi ada backgorundnya dong? kotak 120×120 diisi gambar 60×80, jadi kaya ada ruang kosong. Dan untuk image yang baru., saya jadi tidak bisa memastikan ukuran eksaknya berapa. Misal saya buat width 150, lalu bila gambar 650×325, ntar gambarnya jadi 150×75, masih kurang kan? heightnya ga masuk. Belum untuk anysize yang lain, bisa aja ada kemungkinan ukurannya lebih kecil. Ini yang jadi masalah, kalo kebesaran sih gapapa :v Maka dari itu saya bingung, jadi gimana? Sampai saat ini sih masih mutusin make yang crop from center dari phpnya, biar pas aja gitu :3 hhe.

Kalau ada wangsit dan nasihat lain, monggo silahkan komen. Terimakasih, senang sekali bila ada yang berkenan memberi pencerahan 🙂