Re: [JUG-Indonesia] Re: Tanya Teknik Kompilasi Pada Play Framework

2009-11-26 Terurut Topik Kong Putra
Kalo untuk dynamic compilation, dari java 1.4 juga dah bisa

-:regards:-
Kong Putra

Samuel Franklyn wrote:

 agi_banget wrote:
  Thanks infonya, sangat membantu.
  Tapi menariknya, Play Framework mensyaratkan minimal Java 5 padahal 
 Compiler API ada sejak Java 6
  http://www.playframework.org/documentation/1.0/install 
 http://www.playframework.org/documentation/1.0/install
 

 Kalau pakai Java 5 maka bisa pakai tehnik dynamic compilation
 seperti dalam artikel di JavaWorld. Satu-satunya drawback
 dari tehnik ini adalah akan generate banyak temporary file.

 





Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke 
jug-indonesia-unsubscr...@yahoogroups.com.

Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id

Yahoo! Groups Links

* To visit your group on the web, go to:
http://groups.yahoo.com/group/jug-indonesia/

* Your email settings:
Individual Email | Traditional

* To change settings online go to:
http://groups.yahoo.com/group/jug-indonesia/join
(Yahoo! ID required)

* To change settings via email:
jug-indonesia-dig...@yahoogroups.com 
jug-indonesia-fullfeatu...@yahoogroups.com

* To unsubscribe from this group, send an email to:
jug-indonesia-unsubscr...@yahoogroups.com

* Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/



Re: [JUG-Indonesia] Linux dan Eclipse

2008-09-10 Terurut Topik Kong Putra
Kalo lihat dari errornya, karena embeded browser mozilla, membutuhkan 
lib libxpcom.so, dan file ini ada di package xulrunner. Dah diinstall 
belum pak?
Frans Thamura wrote:
 
 
 ada yang tahu setup embeded browser di eclipse
 
 No more handles (java.lang.UnsatisfiedLinkError:
 /home/frans/mywork/aptana/configuration/org.eclipse.osgi/bundles/61/1/.cp/libswt-mozilla-gtk-3236.so:
 libxpcom.so: cannot open shared object file: No such file or
 directory)
 org.eclipse.swt.SWTError: No more handles
 (java.lang.UnsatisfiedLinkError:
 /home/frans/mywork/aptana/configuration/org.eclipse.osgi/bundles/61/1/.cp/libswt-mozilla-gtk-3236.so:
 libxpcom.so: cannot open shared object file: No such file or
 directory)
 at org.eclipse.swt.SWT.error(SWT.java:3400)
 at org.eclipse.swt.SWT.error(SWT.java:3297)
 at org.eclipse.swt.browser.Browser.init(Browser.java:168)
 at 
 org.eclipse.ui.internal.browser.BrowserViewer.init(BrowserViewer.java:224)
 at 
 org.eclipse.ui.internal.browser.WebBrowserEditor.createPartControl(WebBrowserEditor.java:78)
 at 
 com.aptana.ide.intro.browser.CoreBrowserEditor.createPartControl(CoreBrowserEditor.java:138)
 at 
 org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:596)
 at 
 org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372)
 at 
 org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
 at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:290)
 at 
 org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
 
 -- 
 -- 
 Frans Thamura
 Meruvian Group
 One Stop Java and Enterprise OSS Provider
 Technopreneurship, Training, Internship, Outsourcing and Competency Center
 
 Mobile: +62 855 7888 699
 Blog  Profile: http://frans.thamura.info http://frans.thamura.info
 
 Training JENI, Medallion (Alfresco, Liferay dan Compiere).. buruan...
 URL: 
 http://nagasakti.mervpolis.com/roller/mervnews/entry/jeni_training_compiere_dan_alfresco
  
 http://nagasakti.mervpolis.com/roller/mervnews/entry/jeni_training_compiere_dan_alfresco
 
 


Re: [JUG-Indonesia] Linux dan Eclipse

2008-09-10 Terurut Topik Kong Putra
ganymede?? maksudnya ini apa?
Pake linux yang distronya apa? Harusnya tinggal diinstall pake package 
manager installer dari masing2 distro. Misalkan synaptic, yast, yum, 
dll, tergantung dari distro yang dipake.
Frans Thamura wrote:
 
 
 On Thu, Sep 11, 2008 at 8:04 AM, Kong Putra [EMAIL PROTECTED] 
 mailto:kongput%40softvation.com wrote:
   Kalo lihat dari errornya, karena embeded browser mozilla, membutuhkan
   lib libxpcom.so, dan file ini ada di package xulrunner. Dah diinstall
   belum pak?
   Frans Thamura wrote:
  
 
 installnya gimana yah
 
 kok yang ganymede gak error yah
 
 F



Re: [JUG-Indonesia] Do you apply Design Pattern?

2008-09-08 Terurut Topik Kong Putra
Setuju..., IMHO, makanya dalam melakukan refactor dan penerapan design 
pattern harus digunakan dengan tepat sesuai dengan context problem yang 
hendak diselesaikan.
Jangan pernah memaksakan penggunaan pattern untuk suatu problem yg telah 
keluar jalur dari maksud / tujuan dari pattern itu sendiri. Walaupun 
tujuan awal dari penggunaan pattern itu adalah agar code kita bisa di 
reuse, extend, maintain, dll, tapi kenyataannya penggunaan penerapan 
pattern yang keliru malah bisa membuat coding semakin terlihat seperti 
spaghetti code.
Ada 3 tahap syndrom, dalam belajar  penggunaan pattern (harus dihindari) :
1. Penggunaan pattern secara salah, bisa diakibatkan karena memang belum 
mengerti benar2 maksud pattern itu. Misalnya apa perbedaan dan persamaan 
dari abstract factory dengan factory method, adapter dengan facade, 
observer dan chain of responsibility, dll.
2. Penggunaan pattern yang terlalu berlebihan, sehingga keluar dari 
contextnya.
3. Akibat kedua hal tersebut, sehingga membuat orang tersebut berpikir, 
kok pake pattern bukan tambah bener, tapi tambah ribet..., dan akhirnya 
mengambil kesimpulan sendiri, bahwa pattern itu justru mempersulit dan 
dianggap sampah.. :)


-:regards:-
Kong Putra


Adelwin Handoyo wrote:
 
 
 IMO...
 yang namanya over-use of anything itu tetep gak baik..
 liat baik2..
 pikirin baik2..
 5 hal serupa.. di refactor jadi 1..
 lalu ternyata nanti salah satunya mau di rubah tanpa merubah yang lain..
 ribet dah tuh..
 musti liat keperluan bisnis juga..
 ini nih likely to change in the near future gak..
 kalo gak ya ok..
 kalo very likely.. yaahhh pikir2 dah..
 so the point is.. refactoring is ok..
 tapi u must also count in the factor of change..
 if it's very likely to change while the other is not.. i don't think 
 it's wise to refactor juga..
 
 Regards,
 
 Adelwin Handoyo
 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 
 
 


Re: [JUG-Indonesia] Do you apply Design Pattern?

2008-09-04 Terurut Topik Kong Putra
Salah satu dari principle dalam OOAD adalah DRY (Don't Repeat Your 
Self). Dan dalam design code, memang hal ini harus dihindari. Bayangkan 
bila kita melakukan cut  paste code dibeberapa tempat, dan suatu waktu 
bila ada perubahan dengan coding tersebut (mungkin masalah bugs, 
optimisasi, dll), maka kita akan pusing untuk membenahi coding2 yang 
kita copypaste itu dibanyak tempat. Dan kesalahan yang paling sering 
adalah kita gak update semua code itu semuanya, akibatnya akan 
menimbulkan masalah baru (umumnya bugs). Salah satu design pattern yang 
dapat digunakan untuk solusi tersebut, adalah menerapkan template 
pattern. Untuk detailnya dapat dilihat diinternet yang banyak membahas 
mengenai pattern ini.

-:regards:-
Kong Putra

Dedy Alamsyah wrote:
 
 
 Dear bung Thomas ..
  
 Minta tolong bisa lebih spesifik dengan statemen
 (sampe harus copy-paste codingan itu
 dihitung masalah),
  
 thanks in advance !
  
 
 - Original Message -
 *From:* Thomas Wiradikusuma mailto:[EMAIL PROTECTED]
 *To:* jug-indonesia@yahoogroups.com
 mailto:jug-indonesia@yahoogroups.com
 *Sent:* Thursday, September 04, 2008 11:39 PM
 *Subject:* Re: [JUG-Indonesia] Do you apply Design Pattern?
 
 sekedar menambahkan.
 
 cara paling mudah menerapkan design pattern tanpa repot2 adalah:
 1. baca beberapa design pattern yg populer (kalo ada yg gak ngerti
 lewatin aja, gak usah serius banget bacanya)
 2. coding seperti biasa
 3. ketika menemukan suatu masalah (sampe harus copy-paste codingan itu
 dihitung masalah),
 ulangi poin satu
 
 over the time, lo akan menerapkan design pattern secara otomatis.
 ketika analyst/user cuap2,
 di otak lo akan otomatis beterbangan bermacam2 design pattern.
 
 
 salam hangat,
 Thomas Wiradikusuma
 http://wiradikusuma.blogspot.com/2008/08/kontrak-2-minggu.html
 http://wiradikusuma.blogspot.com/2008/08/kontrak-2-minggu.html
 
 On 02 Sep 08, at 16:26, siagianfaber wrote:
 
   Dear jugers,
  
   Di project2 yg jugers pernah tangani, seberapa sering kah Design
   Pattern di-apply?
 
 


Re: [JUG-Indonesia] Re: JRuby vs Groovy vs Scala

2008-06-19 Terurut Topik Kong Putra
Josh, mau tanya nih, kalo DSL itu adalah language untuk memecahkan 
masalah tertentu. Kok gua check di wikipedia 
http://en.wikipedia.org/wiki/Domain-specific_programming_language, ada 
statement tertulis didalamnya seperti ini.

The opposite is a general-purpose programming language, such as C or 
Java, or a general-purpose modeling language such as the UML.

terus gua check di websitenya scala http://www.scala-lang.org, ada 
statementnya seperti ini:

What is Scala?

Scala is a general purpose programming language designed to express 
common programming patterns in a concise, elegant, and type-safe way. It 
smoothly integrates features of object-oriented and functional 
languages. It is also fully interoperable with Java.

so, jadi scala itu general purpose programming seperti c / java, atau 
DSL. jadi binun nih.




Joshua Jackson wrote:
 
 
 DSL itu adalah bahasa yang diperuntukkan memecahkan suatu masalah
 tertentu.
 - Untuk mendefinisikan sebuah business rules tentunya lebih mudah bila
 menggunakan Drools ketimbang Java.
 - Untuk mendefinisikan sebuah layout tentunya lebih mudah menggunakan
 HTML.
 
 Scala itu juga salah satu contoh DSL, dibuat untuk memecahkan masalah
 dalam matematika, sama kayak Haskell.
 
 ---


Re: [JUG-Indonesia] Re: JRuby vs Groovy vs Scala

2008-06-19 Terurut Topik Kong Putra
Oh geto..., weleh-weleh.., maklum belum cobain seh, cuma baca doang. 
thanks alot.

Joshua Jackson wrote:
 
 
 Itu marketing brow. Jangan mau kemakan marketing hype. Kekekek. Kalau
 lu dah pegang barangnya, then you'll know the purpose of the barang.
 Awalnya Scala itu dibikin ama si Martin Odersky di Lab EPFL. Munculnya
 dari universitas untuk memecahkan masalah dalam matematika. Scala itu
 kayak Haskell, functional programming language. Kalau lu pernah dapet
 Haskell waktu jaman kuliah dulu, nah scala itu tujuannya sama. Kalau
 dibilang Scala itu cuman buat matematika, bisa-bisa gak ada yang mau
 pake, Lift framework juga gak bakalan muncul deh. Bisa-bisa nasibnya
 sama kayak Haskell yang cuman segelintir orang yang tau.
 
 --- 


Re: [JUG-Indonesia] Re: How do you do RIA?

2008-06-18 Terurut Topik Kong Putra
Joshua Jackson wrote:
 
 
 Boss, I've got some questions about Flex:
 1. Bagaimana issue dengan integrate ke Java backend-nya? Susah ndak?
 Pake BlazeDS atau GraniteDS enaknya?
Menurut gua gak masalah mau pake framework yang mana untuk backendnya 
(belum sempat research sih, dari sisi performance dan stability-nya), 
tapi disisi flex sendiri dia bisa komunikasi dengan backend dengan 
beberapa cara.

a. HTTPService, sama dengan buat aplikasi http biasa, bisa request dgn 
get / post.
b. WebService, menggunakan rpc (soap base) dengan deskripsi wsdl document.
c. RemoteObject (AMF, proprietary-nya Adobe).

Untuk penggunaan relatif mudah, karena ketiga hal diatas merupakan 
builtin library dari flex framework.
Contoh penggunaan untuk HTTPService (saya copy/paste dari sample).

* File test.mxml
mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; 
backgroundColor=#FF
mx:HTTPService id=srv destination=catalog useProxy=true/
mx:DataGrid dataProvider={srv.lastResult.catalog.product} 
width=100% height=100%/
mx:Button label=Get Data click=srv.send()/
/mx:Application

* File catalog.jsp
[EMAIL PROTECTED] import=flex.samples.product.ProductService,
flex.samples.product.Product,
java.util.List%
?xml version=1.0 encoding=utf-8?
catalog
%
ProductService srv = new ProductService();
List list = null;
list = srv.getProducts();
Product product;
for (int i=0; ilist.size(); i++)
{
product = (Product) list.get(i);
%  
 product productId=%= product.getProductId()%
 name%= product.getName() %/name
 description%= product.getDescription() %/description
 price%= product.getPrice() %/price
 image%= product.getImage() %/image
 category%= product.getCategory() %/category
 qtyInStock%= product.getQtyInStock() %/qtyInStock
 /product
%
}
%
/catalog


 2. Mengembednya ke aplikasi web kita bagaimana?
Dengen menggunakan flex framework, setelah dicompile nanti output 
terakhir berupa file swf. Dan tinggal diembed di dalam html dengan tag 
object ...param.../object
 3. You punya Flex studionya yah? Gampang gak kalau pake Flex studio?
 
Flex builder bisa didownload,cuma emang gak gratis (trial version 
limited days). Sebenarnya gak perlu pake flex builder untuk menggunakan 
framework flex (sdknya sendiri free). Hanya emang kalo mau bikin visual 
dengan cepat, di flex builder terdapat visual design-nya.
 Many thanks
 



Re: [JUG-Indonesia] Re: How do you do RIA?

2008-06-18 Terurut Topik Kong Putra
Joshua Jackson wrote:
 
 
 Boss, I've got some questions about Flex:
 1. Bagaimana issue dengan integrate ke Java backend-nya? Susah ndak?
 Pake BlazeDS atau GraniteDS enaknya?
Menurut gua gak masalah mau pake framework yang mana untuk backendnya 
(belum sempat research sih, dari sisi performance dan stability-nya), 
tapi disisi flex sendiri dia bisa komunikasi dengan backend dengan 
beberapa cara.

a. HTTPService, sama dengan buat aplikasi http biasa, bisa request dgn 
get / post.
b. WebService, menggunakan rpc (soap base) dengan deskripsi wsdl document.
c. RemoteObject (AMF, proprietary-nya Adobe).

Untuk penggunaan relatif mudah, karena ketiga hal diatas merupakan 
builtin library dari flex framework.
Contoh penggunaan untuk HTTPService (saya copy/paste dari sample).

* File test.mxml
mx:Application xmlns:mx=http://www.adobe.com/2006/mxml; 
backgroundColor=#FF
mx:HTTPService id=srv destination=catalog useProxy=true/
mx:DataGrid dataProvider={srv.lastResult.catalog.product} 
width=100% height=100%/
mx:Button label=Get Data click=srv.send()/
/mx:Application

* File catalog.jsp
[EMAIL PROTECTED] import=flex.samples.product.ProductService,
flex.samples.product.Product,
java.util.List%
?xml version=1.0 encoding=utf-8?
catalog
%
ProductService srv = new ProductService();
List list = null;
list = srv.getProducts();
Product product;
for (int i=0; ilist.size(); i++)
{
product = (Product) list.get(i);
%  
 product productId=%= product.getProductId()%
 name%= product.getName() %/name
 description%= product.getDescription() %/description
 price%= product.getPrice() %/price
 image%= product.getImage() %/image
 category%= product.getCategory() %/category
 qtyInStock%= product.getQtyInStock() %/qtyInStock
 /product
%
}
%
/catalog


 2. Mengembednya ke aplikasi web kita bagaimana?
Dengen menggunakan flex framework, setelah dicompile nanti output 
terakhir berupa file swf. Dan tinggal diembed di dalam html dengan tag 
object ...param.../object
 3. You punya Flex studionya yah? Gampang gak kalau pake Flex studio?
 
Flex builder bisa didownload,cuma emang gak gratis (trial version 
limited days). Sebenarnya gak perlu pake flex builder untuk menggunakan 
framework flex (sdknya sendiri free). Hanya emang kalo mau bikin visual 
dengan cepat, di flex builder terdapat visual design-nya.
 Many thanks
 



Re: [JUG-Indonesia] How do you do RIA?

2008-06-17 Terurut Topik Kong Putra
Kebetulan gua lagi coba2 flex, menurut gua development menggunakan flex 
sangat mudah. Sebenarnya flex lebih dibuat untuk developer, dimana 
macromedia flash lebih untuk designer.
Walaupun untuk designer juga bisa menggunakan flex builder dalam 
membantu programmer untuk mendesign page. Yang menarik dari flex adalah 
concept dan architecturenya.  Sebenarnya flex itu terdiri dari 2 bagian 
: mxml (ini merupakan taglib) dan action script.
Mxml sendiri walaupun merupakan taglib, sebenarnya merepresentasikan 
suatu class dalam action script. Development yang dilakukan menjadi 
lebih flexible, mau dilakukan semua didalam action script (tanpa mxml) 
atau menggunakan kombinasi dengan mxml. Kecendrungan mxml biasanya 
digunakan hanya untuk merepresentasikan layout, sedangkan action script 
untuk menghandle event dan process.
Pernah coba porting apilkasi simple yang pernah didevelop menggunakan 
swing ke dalam flash (menggunakan flex), ternyata 1 minggu banding 1 
hariwakakakakaka. ini dimungkinkan karena emang builtin library dari 
flex dah lengkap banget untuk design layout, gak gak usah pusingin 
dragdrop, animation / transition, formatting data, dll.
So, menurut gua, untuk develop RIA, mungkin flex emang bisa menjadi 
salah satu masukkan.



-:regards:-
Kong Putra



Joshua Jackson wrote:
Yang terakhir adalah Flex dan openlazslo yang berbasiskan Flash. Gw
belum pernah pake Flex sampai production sih. Tapi emang bagus. Cuman
setelah gw coba agak susah ngirimin data-nya ke backend menggunakan
blazeds. Mungkin gw-nya aja yang belum punya waktu cukup untuk
explore. Tapi komponennya ini banyak banget. Dan banyak yang aneh-aneh
juga. Very sweet. Repotnya dia punya markup language sendiri namanya
mxml. Nah di voting ada satu orang yang pake Flex nih. Share dong.
Openlaszlo agak mirip dengan flex, walaupun sekarang udah kalah tenar
dibandingkan Flex yah? Is it still recommended?





Re: [JUG-Indonesia] Kode menarik

2008-06-10 Terurut Topik Kong Putra

Sekedar info.., dari hasil googling... :)

http://www.topcoder.com/tc?module=Staticd1=tutorialsd2=lowestCommonAncestor

Felix Halim wrote:


2008/6/10 Andrian Kurniady [EMAIL PROTECTED] 
mailto:andrian%40kurniady.net:

 Pake RMQ yang O(log N) bisa dapet segini :

 Preprocess Time: 0.372
 100 Queries Time: 0.372
 TOTAL Time: 0.744

Inilah sang jawara :D

He eh, kalo pake bottom-up + plain-array DP bisa lebih kenceng
daripada pake rekursi + tree structure.

 Pake RMQ yang O(1) dapet nya segituan juga.
 [Spoiler] http://andrian.kurniady.net/Minimum.java 
http://andrian.kurniady.net/Minimum.java [/Spoiler]

 Bener gak? :-D

Congats!!! Sodara2, perkenalkan Andrian Kurniady, master DP + calon
juara INC 2008 :D

Sepertinya pertanyaan saya sudah setop sampai disini, karena udah gak
ada yang lebih kenceng dari O( 1 ) query time :P

Yang versi O(log N) nya bisa dibuat tergantung lebar sehingga kalau
j-i+1 nya kecil, versi O( log N ) nya bisa finish hanya dalam beberapa
steps, sehingga tidak jauh beda dengan versi O( 1 ) nya. However
versi O( 1 ) nya guaranteed hanya butuh 1 step untuk lebar apapun.

Soal gini2an cocoknya jadi interview questions nich. Karena di
kuliah biasanya cuman diajarin dasar dari tree data structure dan itu
tergantung kreativitas programmer untuk menggunakannya secara
efficient. Untuk yang RMQ versi O( 1 ) nya biasanya terlalu susah
untuk orang awam, karena butuh pengetahuan tentang Dynamic Programming
yang kuat. Tapi kelihatannya bukan masalah bagi seorang Andrian
Kurniady :P

Menarik kan? Mau soal lagi? :D

Felix Halim

__




Re: [JUG-Indonesia] Javac Source Code

2008-06-05 Terurut Topik Kong Putra


Sekarang Sun JVM sudah opensource kok, bisa dilihat di 
http://openjdk.java.net.


http://download.java.net/openjdk/jdk6/ (untuk jdk 1.6)

http://download.java.net/openjdk/jdk7/ (untuk jdk 1.7)

http://www.sun.com/software/communitysource/j2se/java2/download.xml 
(untuk versi 1.3 - 1.5)


Petunjuk instalasi ada di dalam sourcecode-nya. Selamat mencoba. :)


-:regards:-
Kong Putra

Wilbert wrote:


Hi Juggers..,
Mau tanya nih, ada yang tau ngk source code pure nya Javac (compiler java)
ada di mana? maksudku tempat untuk downloadnya?
Kan waktu kita install jdk, javac itu sudah dalam bentuk binarynya..

Ada yang tau tempatnya? Thanks before... :)

--
Wilbert : IT UKDW 2006
Java Blog : http://wilbertjava.wordpress.com 
http://wilbertjava.wordpress.com

YM : inherit_c

__._




Re: [JUG-Indonesia] Javac Source Code

2008-06-05 Terurut Topik Kong Putra
Belum pernah cobain icetea sih, tapi beberapa opensource jvm yang lain 
pernah g cobain diantarnya gcj, jikes, kaffe, sablevm, jamvm. Kendala 
terbesar bagi g adalah stability dan compatibility dengan sun punya 
library (awt-swing, nio, dll). Terakhir yang g tahu, ada apache harmony 
(http://harmony.apache.org/index.html). Itu juga sangat menarik, tapi 
blm sempat coba. Mungkin teman2 ada yg pernah research ke sana? Mohon 
masukkannya. Thanks.


-:regards:-
Kong Putra

Frans Thamura wrote:


coba compare sama icetea dari redhat

F




Re: [JUG-Indonesia] [Challenge] String to double conversion

2008-06-03 Terurut Topik Kong Putra
Hi budi, dari hasil code yang gw lihat, mungkin ada sedikit yang bisa 
dioptimize.

public class ConversionHelper {
public static double stringToDouble(String s) {
char[] cc = s.toCharArray();
int length = cc.length;
if (length == 0) {
return 0;
}
int i = 0;

double negation = 1;
if (cc[0] == '-') {
negation = -1;
i++;
}

int point = -1;
int value = 0;
for (; i  length; i++) {
if (cc[i] == '.') {
point = i;
} else {
value = value * 10 + cc[i] - '0';
}
}

int divider = 1;
if (point  -1) {
divider = pow10(length - point - 1);
}
return negation * value / divider;
}   

public static double stringToDoubleModified(String s) {
int length = s.length();
if (length == 0) {
return 0;
}
   
int i = 0;

double negation = 1;
if (s.charAt(0) == '-'){
negation = -1;
i++;
}

int point = -1;
int value = 0;
for (; i  length; i++) {
char c = s.charAt(i);
if (c == '.') {
point = i;
} else {
value = value * 10 + c - '0';
}
}

int divider = 1;
if (point  -1) {
divider = pow10(length - point - 1);
}
return negation * value / divider;
}

private static int pow10(int n) {

int result = 1;
for (int i = 0; i  n; i++) {
result *= 10;
}

return result;
}

public static void main(String args[]) {

long t1 = System.currentTimeMillis();
for (int i = 0; i  100; i++) {
//Double.valueOf(-12.3456);
//ConversionHelper.stringToDouble(-12.3456);
ConversionHelper.stringToDoubleModified(-12.3456);
}

long t2 = System.currentTimeMillis();
System.out.println(Elapsed time =  + (t2 - t1) +  ms);

}
}

Memang tidak ada perubahan logic, hanya menghindari penggunaan 
String.toCharArray(), karena method ini cukup boros, didalamnya terdapat 
proses melakukan pembuatan char array baru, dan peng-copy-an char array 
dari String ke char array baru. Hasilnya cukup signifikan, dari test gw 
sktr 30-45 persen lebih cepat dari yang terakhir.

-:regards:-
Kong Putra

T Budi S wrote:

 Dear juggers,

 Mumpung lg hot2nya bahas thread puts vs System.out.println,
 gw ada 1 challenge utk optimize string to double conversion method
 dari class java.lang.Double:

 public static Double valueOf(double d)

 Kenapa gw butuh utk optimize ini? Krn di project yg sedang gw kerjakan
 skr, method valueOf memakan 90% ! process time dr keseluruhan process.
 FYI, data yg dibaca sekitar 10 ribu (nantinya akan jadi ratusan ribu),
 setiap row terdiri dari 8 column, di mana setiap column-nya berisi
 data seperti ini:

 13.4375:17.1875:22.5:22.8125:23.4375:3:5:4:3:3:3:5:5:3:4:4:5:3:2:6:2:5:3:6:4:2:5:6:3:5:3:2:7:6:5:2:3:6:5:5:2:4:6:4:6:5:3:4:5:3:3:3:5:6:5:2:2:6:7:5:1:3:4:7:6:4:2:1:5:4:3:3:4:5:6:3:1:6:3:5:1:4:2:3:3:3.5:3.75:3.75:4:3.75:3:3.25:5.25:5:5:2.75:2.75:5.25:4.25:5.25:1.5:4:3.75:5:4.75:3:5:3.75:3.5:4.25:2.25:3.5:6.25:4.5:5.25:2.75:2.75:4.75:6.25:4.75:2.75:2.5:3.25:4:4.5:2.75:4.25:5.5:3.75:4.25:2.5:4.25:4.5:4.25:5.25:3.75:2.75:3.5

 Waktu yg dibutuhkan utk meload semua data ini adalah 4547 ms.

 Kemudian saya mencoba utk menggantikan Double.valueOf method
 dgn method bikinan saya sendiri,  mendapatkan hasil 3718 ms.

 Code-nya adalah sbb:

 ==
 public class ConversionHelper
 {

 public static double stringToDouble(String s)
 {
 char[] cc = s.toCharArray();
 int length = cc.length;
 if (length == 0)
 return 0;

 int i = 0;

 double negation = 1;
 if (cc[0] == '-')
 {
 negation = -1;
 i++;
 }

 int point = -1;
 int value = 0;
 for (; ilength; i++)
 {
 if (cc[i] == '.')
 point = i;
 else
 value = value * 10 + cc[i] - '0';
 }

 int divider = 1;
 if (point  -1)
 divider = pow10(length - point - 1);

 return negation * value / divider;
 }

 private static int pow10(int n) {

 int result = 1;
 for (int i=0; in; i++)
 {
 result *= 10;
 }

 return result;
 }

 }

 ==

 Ditest dengan looping 1 juta kali:
 ==
 @Test
 public void testPerformance()
 {
 long t1 = System.currentTimeMillis();
 for (int i = 0; i  100; i++)
 {
 // Double.valueOf(-12.3456);
 ConversionHelper.stringToDouble(-12.3456);
 }

 long t2 = System.currentTimeMillis();
 System.out.println(Elapsed time =  + (t2 - t1) +  ms);
 }

 ==

 Hasilnya adalah:
 - Double.valueof(String): Elapsed time = 344 ms
 - ConversionHelper.stringToDouble: Elapsed time = 157 ms

 Sori panjang banget :D Thx kalo udah baca smp di sini