Monday, February 3, 2014

Membuat Module



Membuat Modul di Visual Basic

Buka projek yang sudah dibuat atau buat projek baru yang diinginkan, pada project explorer klik kanan pilih add, module.
Ditampilkan menu dialog modul yaitu New dan Existing, pilih New untuk membuat baru dan Existing untuk modul yang sudah pernah dibuat, Selanjutnya ditampilkan halaman untuk memulai membuat code pada modul.

Rubah nama modul pada properties modul, misal MdlPenjualan dan mulailah memasukkan code program yang akan ditempatkan pada modul. Perlu diingat bahwa variabel, fungsi atau prosedur yang diletakkan di modul adalah yang bersifat publik atau yang nantinya digunakan saat memrogram diseluruh projek yang dibuat.

Koneksi Visual Basic dengan Database

Untuk dapat menghubungkan Visual BASIC dengan database MySQL, kita akan menggunakan komponen ADO Data Control (ADODC). Komponen ini dapat dihubungkan dengan beberapa komponen yang digunakan untuk mengakses data seperti textbox, datagrid, dsb.

Sebelum dapat menggunakan ADODC maka perlu diaktifkan terlebih dahulu ActiveX Data Objects dan ActiveX Data Object Recordset

Sebagai contoh untuk membuat koneksi VB dengan database MySQL seperti pada contoh di modul, sebelumnya harus sudah terinstall MyODBC-3.51.11-2-win, paketnya dapat di download http://dev.mysql.com/downloads/.

Public Sub nyambung()
' Koneksi dengan MYSQL
dbcon.CursorLocation = adUseClient
connstr = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;" & _
"DATABASE=penjualan;USER=root;PASSWORD=;OPTION=3;"
dbcon.ConnectionString = connstr
dbcon.Open
End Sub

Keterangan :

DRIVER ={MySQL ODBC 3.51 Driver}

Driver ODBC yang digunakan untuk koneksi ke MySQL.

SERVER=localhost

Nama server yang digunakan, jika MySQL yang diinstall di PC biasa standart namanya adalah localhot.

DATABASE=penjualan

Nama database, missal penjualan

USER=root

Nama User yang mempunyai akses ke MySQL, misal root

PASSWORD=

Password yang digunakan untuk akses user MySQL, contoh di atas password user kosong.

Menutup Koneksi Database

Public Sub tutup_koneksi()
dbcon.Close
End Sub

Memanggil Koneksi Database

Untuk memanggil prosedur koneksi database cukup dengan mengetikkan nama prosedurnya sebagai berikut :

nyambung() atau
call nyambung()

Install VB 6 di Windows 8

Bagi yang masih mengembangkan aplikasi dengan VB 6 termasuk saya sendiri, di windows 8 ada beberapa hal yang perlu di perhatikan. Setelah cari sana sini, akhirnya menemukan solusi untuk install VB 6 di windows 8 agar berjalan dengan normal, berikut ini tip dan trik nya :
  1. di master VB, cari file Setup.exe, klik kanan pilih properties, klik tab compatibility, centang "run this program in compatibility for : pilih Windows XP (SP3) ato Windows 7
  2. jika sudah terlanjur di install, cari file VB.EXE di folder c:/program files(x86)/microsoft visual studio/vb98, lakukan sama klik kanan pilih properties, klik tab compatibility, centang "run this program in compatibility for : pilih Windows XP (SP3) ato Windows 7.
  3. selesai
Selamat mencoba semoga sukses.

Membuat Form Master Barang

Sebelum membuat form buatlah database penjualan dan buat tabel berikut :
Tabel barang;
+----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| kd_brg | char(6) | NO | PRI | | |
| nm_brg | char(30) | YES | | NULL | |
| satuan | char(10) | YES | | NULL | |
| harga | double | YES | | NULL | |
| stok | int(5) | YES | | NULL | |
| stok_min | int(4) | YES | | NULL | |
+----------+----------+------+-----+---------+-------+

create table barang(kd_brg char(6) primary key not null,nm_brg char(30),satuan char(10), harga double, stok int(5), stok_min int(4));


Desain form di atas, dengan langkah sebagai berikut :

  1. Dari form kosong, pada properties form, pada caption isikan dengan “Pendataan Barang” sehingga akan tampak pada judul form.
  2. Pilih toolbox label, untuk membuat tulisan Kode Barang, Nama Barang, Satuan dan seterusnya.
  3. Pilih pada properties dan ganti masing-masing label sesuai dengan desain di atas.3. Pilih toolbox inputbox, untuk membuat inputan data mulai dari Kode Barang sampai dengan Stok Minimal. Kosongkan properties Text dari masing-masing inputbox.
  4. Pilih toolbox combobox, pada properties Text isikan “---Pilihan ---“, kemudian isikan satuan (Buah, Box, Lusin, Kg, Meter dll) pada properties List. Gunakan tombol CTRL + ENTER untuk pindah baris, jika selesai tekan ENTER.
  5. Pilih toolbox CommandButton, buat tombol sebanyak 10 dan sesuaikan dengan tampilan di atas. Semua text diisi pada properties Caption dari masing-masing commanbutton.
  6. Pilih toolbox DataGrid, isikan captionnya dengan “Informasi Data Barang”, apabila dataGrid belum ada maka tambahkan componennya dengan mengclick kanan pada area toolbox, pilih menu Components, pilih Microsoft ADO Data Control 6.0(OLEDB) dengan mencentak kotak kecil di sebelah kiri.
  7. Buat bingkai dengan Frame, properties caption diisi dengan “Pencarian Data”, buat label “Berdasarkan” dan “Teks yang dicari”, kemudian buat combobox dan textbox nya.

Tambahkan kode program berikut :
Dim rsbarang As New ADODB.Recordset
Dim strsql As String
Dim cek As Integer
Private Sub cmbsatuan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtharga.SetFocus
End Sub
Private Sub cmdakhir_Click()
rsbarang.MoveLast 'pindah akhir record
End Sub
Private Sub cmdawal_Click()
rsbarang.MoveFirst 'pindah awal record
End Sub
Private Sub cmdbatal_Click()
tombol True
aktif False
End Sub
Private Sub cmdhapus_Click()
strsql = "delete from barang where kd_brg='" & _
txtkd_brg.Text & "'"
hapus = MsgBox("Yakin diHapus", vbYesNo, "Konfirmasi")
If hapus = vbYes Then
dbcon.Execute strsql
End If
rsbarang.Requery
End Sub
Private Sub cmdkeluar_Click()
dbcon.Close
Unload Me
End Sub
Private Sub cmdkoreksi_Click()
cek = 2
aktif True
tombol False
txtkd_brg.Enabled = False
txtnm_brg.SetFocus
End Sub
Private Sub cmdsebelum_Click()
On Error GoTo GoPrevError
If Not rsbarang.BOF Then rsbarang.MovePrevious
If rsbarang.BOF And rsbarang.RecordCount > 0 Then
Beep
'moved off the end so go back
rsbarang.MoveFirst
End If
'show the current record
Exit Sub
GoPrevError:
MsgBox Err.Description
End Sub
Private Sub cmdsesudah_Click()
On Error GoTo GoNextError
If Not rsbarang.EOF Then rsbarang.MoveNext
If rsbarang.EOF And rsbarang.RecordCount > 0 Then
Beep
'moved off the end so go back
rsbarang.MoveLast
End If
'show the current record
Exit Sub
GoNextError:
MsgBox Err.Description
End Sub
Private Sub cmdsimpan_Click()
On Error GoTo errSimpan
If cek = 1 Then
'tambah data
strsql = "insert into barang values('" & txtkd_brg.Text _
& "','" & txtnm_brg.Text & "','" & cmbsatuan.Text & "'," & _
Val(txtharga.Text) & "," & _
Val(txtstok.Text) & "," & Val(txtstok_min.Text) & ")"
Else
'edit data
strsql = "update barang set nm_brg='" & txtnm_brg.Text & _
"',satuan='" & cmbsatuan.Text & _
"',harga=" & Val(txtharga.Text) & _
",stok=" & Val(txtstok.Text) & _
",stok_min=" & Val(txtstok_min.Text) & _
" where kd_brg='" & txtkd_brg.Text & "'"
End If
' MsgBox strsql
dbcon.Execute (strsql) ' eksekusi perintah SQL
rsbarang.Requery
tombol True
aktif False
MsgBox "Sukses disimpan", vbOKOnly, "Konfirmasi Simpan"
Exit Sub
errSimpan:
MsgBox Err.Description, vbCritical, "Error Simpan"
End Sub
Private Sub cmdtambah_Click()
cek = 1
tombol False
aktif True
kosong
txtkd_brg.SetFocus
End Sub
Private Sub DgBarang_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
baca_data
End Sub
Private Sub Form_Activate()
tombol True
aktif False
baca_data
End Sub
Private Sub tombol(x)
cmdtambah.Enabled = x
cmdsimpan.Enabled = Not x
cmdkoreksi.Enabled = x
cmdhapus.Enabled = x
cmdbatal.Enabled = Not x
cmdkeluar.Enabled = x
cmdawal.Enabled = x
cmdakhir.Enabled = x
cmdsebelum.Enabled = x
cmdsesudah.Enabled = x
End Sub
Private Sub aktif(x)
txtkd_brg.Enabled = x
txtnm_brg.Enabled = x
cmbsatuan.Enabled = x
txtharga.Enabled = x
txtstok.Enabled = x
txtstok_min.Enabled = x
End Sub
Private Sub kosong()
txtkd_brg.Text = ""
txtnm_brg.Text = ""
cmbsatuan.Text = ""
txtharga.Text = ""
txtstok.Text = ""
txtstok_min.Text = ""
End Sub
Private Sub Form_Load()
nyambung
strsql = "select * from barang order by kd_brg asc"
rsbarang.Open strsql, dbcon
Set dgbarang.DataSource = rsbarang
rsbarang.Requery
load_cbocari "barang", cbocari
End Sub
Private Sub Form_Unload(Cancel As Integer)
tutup_koneksi
End Sub
Private Sub txtcari_Change()
strsql = "select * from barang where barang." & _
cbocari.Text & " LIKE ('%" & txtcari.Text & "%')"
rsbarang.Close
rsbarang.Open strsql, dbcon, adOpenStatic
rsbarang.Requery
dgbarang.Refresh
'lebar_grid
End Sub
Private Sub txtharga_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtstok.SetFocus
End Sub
Private Sub txtkd_brg_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtnm_brg.SetFocus
End Sub
Private Sub txtnm_brg_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then cmbsatuan.SetFocus
End Sub
Private Sub txtstok_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtstok_min.SetFocus
End Sub
Private Sub baca_data()
On Error Resume Next
If rsbarang.RecordCount > 0 Then 'untuk cek jumlah record
txtkd_brg.Text = rsbarang!kd_brg 'pindahkan data dr tabel ke form
txtnm_brg.Text = rsbarang!nm_brg
cmbsatuan.Text = rsbarang!satuan
txtharga.Text = rsbarang!harga
txtstok.Text = rsbarang!stok
txtstok_min.Text = rsbarang!stok_min
End If
End Sub

Form Master Barang

background image

Setelah  membuat  table  barang,  buat  desain  form  seperti  gambar  di  atas  dengan
menggunakan NetBean. Sesuaikan semua nama obyek dengan kebutuhan anda.

Alur program :
1. frmbarang created
2. panggil konstruktor frmbarang sekaligus open database
3. isian jtextfiled off
4. table barang diisi data dari table barang yang ada di server MySQL
5.  button tambah, koreksi, hapus dan keluar dalam keadaan on sedang simpan dan batal off.
6.  Jika  ditekan  tombol  tambah,  maka  actionperformed  pada  button  tambah
dijalankan
7.  Jika  ditekan  tombol  simpan,  maka  actionperformed  pada  button  simpan dijalankan.
8.  Jika  ditekan  tombol  koreksi,  maka  actionperformed  pada  button  koreksi dijalankan.
9. Jika ditekan tombol hapus, maka actionperformed pada button hapus dijalankan.
10. Jika ditekan tombol keluar, maka actionperformed pada button keluar dijalankan.

Code dan Method-method yang dibuat
 
Tambahkan code di bawah


public class frmBarang extends javax.swing.JFrame {


Connection Con;
ResultSet RsBrg;
Statement stm;


Boolean ada = false;
String sSatuan;
Boolean edit=false;

 private Object[][] dataTable = null;
private String[] header =  {"Kode","Nama Barang","Satuan","Harga","Stok","Stok Min"};

Tambahkan code dibawah knstruktor

public frmBarang() {
        initComponents();
        open_db();
        baca_data();
        aktif(false);
        setTombol(true); 
 


Buat Method-method berikut :

//method untuk memindahkan data dr table ke form

private void setField()
{
    int row=tblBrg.getSelectedRow();
    txtKode.setText((String)tblBrg.getValueAt(row,0));
    txtNama.setText((String)tblBrg.getValueAt(row,1));
    cmbSatuan.setSelectedItem((String)tblBrg.getValueAt(row,2));
    String harga = Double.toString((Double)tblBrg.getValueAt(row,3));
    txtHarga.setText(harga);
    String stok=Integer.toString((Integer)tblBrg.getValueAt(row,4));
    txtStok.setText(stok);
    String stokmin=Integer.toString((Integer)tblBrg.getValueAt(row,5));
    txtStokMin.setText(stokmin);
}

 //method membuka database server, user, pass, database disesuaikan
private void open_db()

{       try{ 

KoneksiMysql kon = new KoneksiMysql
("localhost","root","root","penjualan");
Con = kon.getConnection(); 
   //System.out.println("Berhasil ");
}catch (Exception e) {
System.out.println("Error : "+e);
}


//method baca data dari Mysql dimasukkan ke table pada form
private void baca_data()
{
    try{
            stm = Con.createStatement();
            RsBrg = stm.executeQuery("select * from barang");
                
            ResultSetMetaData meta = RsBrg.getMetaData();
            int col = meta.getColumnCount();
 
 
 
 


  int baris = 0;
            while(RsBrg.next()) {
                baris = RsBrg.getRow();
            }
            
            dataTable = new Object[baris][col];
            int x = 0;
            RsBrg.beforeFirst();
            while(RsBrg.next()) {
                dataTable[x][0] = RsBrg.getString("kd_brg");
                dataTable[x][1] = RsBrg.getString("nm_brg");
                dataTable[x][2] = RsBrg.getString("satuan");
                dataTable[x][3] = RsBrg.getDouble("harga");
                dataTable[x][4] = RsBrg.getInt("stok");
                dataTable[x][5] = RsBrg.getInt("stok_min");
                x++; 


}
            tblBrg.setModel(new DefaultTableModel(dataTable,header));        
    }
    catch(SQLException e)
    {
        JOptionPane.showMessageDialog(null, e);
    }
}



//untuk mengkosongkan isian data
private void kosong()
{
    txtKode.setText("");
    txtNama.setText("");
    txtHarga.setText("");
    txtStok.setText("");
    txtStokMin.setText("");


//mengset aktif tidak isian data 

private void aktif(boolean x)
{
    txtKode.setEditable(x);
    txtNama.setEditable(x);
    //cmbSatuan.setEditable(x);
    cmbSatuan.setEnabled(x);
    txtHarga.setEditable(x);
    txtStok.setEditable(x);
    txtStokMin.setEditable(x);


//mengset tombol on/off 


private void setTombol(boolean t)
{
    cmdTambah.setEnabled(t);
    cmdKoreksi.setEnabled(t);
    cmdHapus.setEnabled(t);
    cmdSimpan.setEnabled(!t);
    cmdBatal.setEnabled(!t);
    cmdKeluar.setEnabled(t);
    
}


Event pada masing-masing obyek yang perlu disesuaikan :

private void cmdKeluarActionPerformed(java.awt.event.ActionEvent evt) {                   
    System.exit(0);
 }


private void cmdSimpanMouseClicked(java.awt.event.MouseEvent evt) {                                      
    String tKode=txtKode.getText();
    String tNama=txtNama.getText();
   
    double hrg=Double.parseDouble(txtHarga.getText());
    int stk=Integer.parseInt(txtStok.getText());
    int stkMin=Integer.parseInt(txtStokMin.getText());
    try{
        if (edit==true)
        {
     stm.executeUpdate("update barang set
nm_brg='"+tNama+"',satuan='"+sSatuan+"',harga="+hrg+",stok="+stk+",stok
_min="+stkMin+" where kd_brg='" + tKode + "'");
        }else
        {
            stm.executeUpdate("INSERT into barang
VALUES('"+tKode+"','"+tNama+"','"+sSatuan+"',"+hrg+","+stk+","+stkMin+"
)");
        }
         tblBrg.setModel(new DefaultTableModel(dataTable,header));
        baca_data();
        aktif(false);
        setTombol(true);
    }catch(SQLException e) {
       JOptionPane.showMessageDialog(null, e);


}
private void cmbSatuanActionPerformed(java.awt.event.ActionEvent evt) {                
    JComboBox cSatuan = (javax.swing.JComboBox)evt.getSource();

   //Membaca Item Yang Terpilih — > String

    sSatuan = (String)cSatuan.getSelectedItem();
}                                         

private void cmdTambahActionPerformed(java.awt.event.ActionEvent evt) {                
    aktif(true);
    setTombol(false);

kosong();                                         
}                    

private void cmdBatalActionPerformed(java.awt.event.ActionEvent evt) {                                        
    aktif(false);
    setTombol(true);                                        
}
private void tblBrgMouseClicked(java.awt.event.MouseEvent evt) {                                   
    setField();
}                                   

private void cmdKoreksiActionPerformed(java.awt.event.ActionEvent evt)
{                                           
    edit=true;                                          
    aktif(true);
    setTombol(false);
    txtKode.setEditable(false);
}

private void cmdHapusActionPerformed(java.awt.event.ActionEvent evt) {                                        
    try{
    String sql="delete from barang where kd_brg='" + txtKode.getText()
+ "'";
    stm.executeUpdate(sql);
    baca_data();
    }
    catch(SQLException e)
    {
        JOptionPane.showMessageDialog(null, e);
    }
}

      

Panduan Aplikasi Penjualan Java + Mysql + NetBean 6.5

Form Login

Langkah 1 : Buat form seperti gambar berikut :

background image

Langkah 2 :
Selanjutnya buat table user dengan field seperti pada gambar diatas :

 Langkah 3 : 
Tambahkan code di bawah ini sesuaikan dengan method dan event dari masing-
masing obyek.


public class frmLogin extends javax.swing.JFrame {
    Connection Con;
    ResultSet RsUser;
    Statement stm;
    /** Creates new form frmLogin */
    public frmLogin() {
        initComponents();
        open_db();
    } 


private void cmdOkActionPerformed(java.awt.event.ActionEvent evt) {                                   
     try{
         char[] input=txtPassword.getPassword();
         String password;
         password = new String(txtPassword.getPassword());


stm = Con.createStatement();
RsUser=stm.executeQuery("select * from user where user_id='"+ 
txtUserId.getText()+"' and password=md5('"+password+"')");
int baris=0;
while(RsUser.next()) {
                baris = RsUser.getRow();

}
                if(baris==1)
        {
        JOptionPane.showMessageDialog(null, "User dan Password Cocok");
             System.exit(0);

}
        else
        {
            JOptionPane.showMessageDialog(null,  "User  atau  Password  tdk
Cocok -> "+txtUserId.getText()+" --> "+password);
        }        
     }
     catch(SQLException e){
         JOptionPane.showMessageDialog(null, e);
     }
}


   private void cmdBatalActionPerformed(java.awt.event.ActionEventevt) { 
System.exit(0);
 }

private void open_db(){
try{ 
KoneksiMysql kon= new   KoneksiMysql ("localhost","root", "root","penjualan");
Con = kon.getConnection(); 
}
catch (Exception e) {
System.out.println("Error : "+e);

  
 





Sunday, February 2, 2014

Panduan Aplikasi Penjualan Java + Mysql + NetBean 6.5

Form Menu Utama

Langkah 1 : Buat form menu seperti gambar berikut :
background image 

 Keterangan:
 - Gunakan Obyek pada Swing Menus
-  Menu Bar gunakan JMenuBar
-  Submenu gunakan JMenuItem
-  Garis pemisah gunakan JSparator
 


 Langkah 2:

-  Rubah semua name sesuaikan dengan obyek masing-masing.
-  Isikan code pada event dari masing-masing menu item


//memangil form barang 

  private void mnBarangActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        new frmBarang().setVisible(true);
    } 


//memanggil form transaksi

private void mnJualActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        new frmTransaksi().setVisible(true);
    } 


Langkah 3: 

Rubah  code  event  untuk  masing-masing  form  pada  obyek  button  keluar  
menjadi :


 dispose();

dan rubah pula pada JForm untuk property defaultCloseOperation = DISPOSE.

Langkah 3: 
Compille ulang semua form, dan menu siap dijalankan, hasilnya sebagai berikut :
 


 background image

Contoh Aplikasi Mysql & Java

Berikut ini saya berikan contoh program Pemrograman Berorientasi Obyek II Database yang digunakan adalah akademik, tabel mahasiswa dan server adalah localhost. Gunakan class KoneksiMysql.

import java.sql.*;
import java.io.*;

class menu {
public static void main(String args[]) throws IOException{
BufferedReader stdin=new
BufferedReader(new InputStreamReader(System.in));

String buff;
int pilih; 

try { 
 KoneksiMysql kon = new KoneksiMysql ("akademik");
 Connection c = kon.getConnection();
 pilih=0;
  while(pilih<5) {
 System.out.println(" Menu : ");
 System.out.println(" 1. Lihat Data ");
 System.out.println(" 2. Tambah Data ");
 System.out.println(" 3. Hapus Data ");
 System.out.println(" 4. Update Data ");
 System.out.println(" 5. Exit ");
 System.out.print(" Pilih nomor : ");
 buff = stdin.readLine();
 pilih=Integer.parseInt(buff);
 ResultSet hasilQuery = null;
    Statement stm = connection.createStatement();

 switch(pilih){
  case 1:
  {
        hasilQuery = stm.executeQuery("SELECT * FROM mahasiswa");  

    while (hasilQuery.next()) {
            String nim_mahasiswa = hasilQuery.getString("nim");
        String nama_mahasiswa =  hasilQuery.getString("nama");
        System.out.println(nim_mahasiswa+" -> " + nama_mahasiswa); }
            
   break;
  }
  case 2:
  {
   String nim_t, nama_t;
   System.out.print("nim     : ");
   nim_t = stdin.readLine();
   System.out.print("nama    : ");
   nama_t = stdin.readLine();
       String sql="INSERT into mahasiswa values('"+nim_t+"','"+nama_t+"')";  
              stm.executeUpdate(sql);  
   break;
  }
  case 3:
  {
   String nim_h;
   System.out.print("nim     : ");
   nim_h = stdin.readLine();
         String sqlh="DELETE from mahasiswa where nim = '"+nim_h+"'";  
             stm.executeUpdate(sqlh);  
   break;
  }
  case 4:
  {
   String nim_u,nama_u;
   System.out.print("nim     : ");
   nim_u = stdin.readLine();
hasilQuery = stm.executeQuery("SELECT * FROM mahasiswa where nim = '" + nim_u + "'");  
   while (hasilQuery.next()) {
    String nm_mahasiswa =  hasilQuery.getString("nama");
    System.out.println("Nama : " + nm_mahasiswa); 
   }

   System.out.print("Nama Baru  : ");
   nama_u = stdin.readLine();

String sqlu="UPDATE mahasiswa set nama='" + nama_u + "' where nim = '" + nim_u + "'";  
            stm.executeUpdate(sqlu);  
   break;
   } 
  default:
   {
   System.out.println("Bye");
   break; }
    
  }
  }
 connection.close();
      
 } 
    catch (Exception e) {
  System.out.println("Error : "+e);
  }
  }
}

Setting iReport 5.1.0 di Windows 8

Setelah selesai install iReport 5.1.0 di Windows 8 kemudian dijalankan muncullah masalah seperti ini pesannya
"Cannot find java exe."
"Neither (null)\\jre\\bin\\java.exe nor (null)\\vin\\java.exe exists"

Bagaimana mengatasi hal ini??, setelah cari sana-sina ada link ini http://community.jaspersoft.com/questions/532367/ireport-install-problem-cannot-find-javaexe, alhamdulillah ada petunjuk, langsung deh ke TKP.
Langkah-langkahnya :
  1. Buka control Panel
  2. Buka System
  3. Klik Advanced system settings, klik environment variables

  4. klik tab New untuk membuat variabel baru dengan nama JAVA_HOME, isikan lokasi file Java.exe
  5. klik OK untuk menyimpan variabel, klik OK lagi untuk menutup jendela Environmnet Variable, klik OK lagi untuk menutup System Properties
  6. Jalankan iReport, berhasil deh....
Selamat mencoba, semoga berhasilll....