Posted on 21 November 2009 by Arul
Pada beberapa kasus operasi pembagian pada tipe data java.math.BigDecimal bisa terjadi error seperti ini:
Exception in thread “main” java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Berikut contoh kode program nya:
import java.math.BigDecimal;
/**
* Test case for "java.lang.ArithmeticException:
* Non-terminating decimal expansion" error with
* BigDecimal.
*
* @author JM
*
*/
public class TestBigDecimal {
public static void main(String[] args) {
String returnVal = TestBigDecimal.divide("1", "5");
System.out.println("Test #1: returnVal = " + returnVal);
returnVal = TestBigDecimal.divide("1", "2");
System.out.println("Test #2: returnVal = " + returnVal);
// Test(#3) will fail as the quotient (returnVal)
// is a non-terminating decimal value.
returnVal = TestBigDecimal.divide("1", "3");
System.out.println("Test #3: returnVal = " + returnVal);
}
/**
* Pembagian val1 dengan val2 mengembalikan nilai sebagai String.
*
* @param val1
* @param val2
* @return value as String
*/
public static String divide(String val1, String val2) {
BigDecimal v1 = new BigDecimal(val1);
BigDecimal v2 = new BigDecimal(val2);
return v1.divide(v2).toPlainString();
}
}
Pada contoh diatas akan menghasilkan output:
Test #1: returnVal = 0.2
Test #2: returnVal = 0.5
Exception in thread “main” java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(Unknown Source)
at com.jm.client.TestBigDecimal.divide(TestBigDecimal.java:34)
at com.jm.client.TestBigDecimal.main(TestBigDecimal.java:20)
Untuk mengatasi masalah ini perlu dituliskan parameter tambahan pada methode divide, seperti misalnya presisi/ketelitian bilangan dan juga RoundingMode, seperti contoh berikut ini:
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* Test case for "java.lang.ArithmeticException:
* Non-terminating decimal expansion" error with
* BigDecimal.
*
* @author JM
*
*/
public class TestBigDecimal {
public static void main(String[] args) {
String returnVal = TestBigDecimal.divide("1", "5");
System.out.println("Test #1: returnVal = " + returnVal);
returnVal = TestBigDecimal.divide("1", "2");
System.out.println("Test #2: returnVal = " + returnVal);
// Test(#3) will now work as we have provided a scale
// and a rounding mode to the divide() method
returnVal = TestBigDecimal.divide("1", "3");
System.out.println("Test #3: returnVal = " + returnVal);
}
/**
* Pembagian val1 dengan val2 mengembalikan nilai sebagai String.
*
* @param val1
* @param val2
* @return value as String
*/
public static String divide(String val1, String val2) {
BigDecimal v1 = new BigDecimal(val1);
BigDecimal v2 = new BigDecimal(val2);
return v1.divide(v2, 2, RoundingMode.HALF_UP).toPlainString();
}
}
Outputnya kira-kira seperti ini:
Test #1: returnVal = 0.20
Test #2: returnVal = 0.50
Test #3: returnVal = 0.33
DIarsipkan di bawah: Java | Ditandai: BigDecimal, Java | Leave a Comment »
Posted on 2 November 2009 by Arul
In general, it’s more important to have some coding styles than to use a particular set of rules. Code that is consistent is easier to read, understand, debug, and maintain no matter what rules you use.
However, it amazes me how many developers seem to have no rules or rules that are inconsistent and contradictory. In one very large (56,000 line) project, I’ve seen people using arbitrary indentation, no comments, improper variable naming (for example, using an “m” prefix that normally means “module-level” for local variables), and so forth.
So here are the rules that I generally use. Adopt the ones that makes sense to you and replace the others. Note that these are the rules that I use for Visual Basic 6. I use slightly different rules for other languages, including VB .NET.
DIarsipkan di bawah: Visual Basic 6 | Ditandai: VB6 | Leave a Comment »
Posted on 2 Agustus 2009 by Arul
Pada saat kita menggunakan control internet control pada VB6 tidak 100% berjalan mulus. Ketika komputer diinstall browser dengan IE versi >IE6 maka akan menemui pesan error berikut “File Not found ‘C:\Windows\system32\ieframe.dll\1′” Solusi nya adalah dengan mencari registry dengan kata kunci ‘C:\Windows\system32\ieframe.dll\1′, dengan menggunakan tool seperti tuneUp 2009, dan mengganti text ‘C:\Windows\system32\ieframe.dll\1′ menjadi ‘C:\Windows\system32\ieframe.dll’
DIarsipkan di bawah: Visual Basic 6 | Ditandai: VB | 2 Komentar »
Posted on 28 Juli 2009 by Arul
Cara membuat file excel melalui VB 6.0:
Private Sub Command1_Click()
On Error GoTo errH
Dim oExcel As Object
Dim oWB As Object
Dim oWS As Object
Dim oRng As Object
Set oExcel = CreateObject("Excel.Application")
Set oWB = oExcel.Workbooks.Add
Set oWS = oWB.Worksheets("Sheet1")
Set oRng = oWS.Range("A1")
oRng.Value = "Hello World"
'oWS.Cells(1, 1).Value
oWB.SaveAs ("c:\Hello World.xls")
oWB.Close
GoTo Cleanup
errH:
If Err.Number = 9 Then 'jika error pada pembukaan worksheet
MsgBox "Tidak dapat membuka worksheet, mungkin nama worksheet salah", vbCritical, "Error"
Else
MsgBox Err.Description, vbCritical, "Error"
End If
Cleanup:
Set oWS = Nothing
On Error Resume Next
If Not oWB Is Nothing Then oWB.Close
Set oWB = Nothing
oExcel.Quit
Set oExcel = Nothing
On Error GoTo 0
End Sub
DIarsipkan di bawah: Visual Basic 6 | Ditandai: Excel, VB | Leave a Comment »
Posted on 17 Juli 2009 by Arul
Membuat tampilan table menjadi alternate row berikut cara nya:
Misalkan ada file html:
<table>
<tr>
<td>As You Like It</td>
<td>Comedy</td>
<td></td>
</tr>
<tr>
<td>All's Well that Ends Well</td>
<td>Comedy</td>
<td>1601</td>
</tr>
<tr>
<td>Hamlet</td>
<td>Tragedy</td>
<td>1604</td>
</tr>
<tr>
<td>Macbeth</td>
<td>Tragedy</td>
<td>1606</td>
</tr>
<tr>
<td>Romeo and Juliet</td>
<td>Tragedy</td>
<td>1595</td>
</tr>
<tr>
<td>Henry IV, Part I</td>
<td>History</td>
<td>1596</td>
</tr>
<tr>
<td>Henry V</td>
<td>History</td>
<td>1599</td>
</tr>
</table>
file css:
tr {
background-color: #fff;
}
.alt {
background-color: #ccc;
}
file js:
$(document).ready(function() {
$('tr:odd').addClass('alt');
});
tampilan:

DIarsipkan di bawah: jQuery | Ditandai: jQuery, Table | Leave a Comment »
Posted on 6 Juli 2009 by Arul
Melanjutkan pembahasan yang lalu, untuk class-class yang digunakan pada tutorial kali ini sama dengan tutorial sebelumnya, hanya saja disini akan ada sedikit perubahan dan penambahan file yaitu pada implementasi Class dalam hal ini kita tambah satu file lagi yaitu: CalculateSpring.java
package com.arulsoft.springtutorial;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class CalculateSpring {
private Operation ops;
private ResultWriter wtr;
public void setOps(Operation ops) {
this.ops = ops;
}
public void setWriter(ResultWriter writer) {
this.wtr = writer;
}
public static void main(String[] args) {
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
CalculateSpring calc = (CalculateSpring) factory.getBean("opsbean");
calc.execute(args);
}
public void execute(String[] args) {
long op1 = Long.parseLong(args[0]);
long op2 = Long.parseLong(args[1]);
wtr.showResult("The result of " + op1 + ops.getOpsName() + op2 + " is " + ops.operate(op1, op2) + "!");
}
}
Kemudian kita buat file xml configurasi untuk spring framework:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="screen" class="com.arulsoft.springtutorial.ScreenWriter" />
<bean id="multiply" class="com.arulsoft.springtutorial.OpMultiply" />
<bean id="add" class="com.arulsoft.springtutorial.OpAdd" />
<bean id="opsbean" class="com.arulsoft.springtutorial.CalculateSpring">
<property name="ops" ref="multiply" />
<property name="writer" ref="screen"/>
</bean>
</beans>
Nah selesai deh, tinggal di-running, oh iya jangan lupa menambahkan library spring frameworknya. Sementara ini dulu untuk kelanjutannya tunggu postingan berikutnya….
DIarsipkan di bawah: Spring Framework | Ditandai: Framework, Java, Spring | Leave a Comment »
Posted on 5 Juli 2009 by Arul
bagi yang ingin belajar spring framework, ni ada situs yang sangat membantu untuk pemula seperti saya, http://www.javapassion.com/handsonlabs/springhelloworld/, disitu dicontohkan bagaimana membuat program helloworld sederhana yang dimodifikasi sedemikian rupa sehingga dapat disesuaikan dengan kebutuhan. Penjelasan rincinya ada disini.
DIarsipkan di bawah: Spring Framework | Ditandai: Framework, Spring | Leave a Comment »
Posted on 4 Juli 2009 by Arul
Tutorial berikut adalah hasil dari belajar Spring Framework pada buku Beginning Spring Framework 2

Konsep dari spring framework adalah bagaimana membuat aplikasi dalam bentuk komponen yang dapat disusun menjadi aplikasi yang utuh. Proses ini disebut sebagai wiring. Hal ini dapat dianalogikan seperti komponen alat listrik. Baca selebihnya »
DIarsipkan di bawah: Spring Framework | Ditandai: Framework, Java, Spring | 1 Komentar »
Posted on 22 Juni 2009 by Arul