Java : Membuat Laporan Menggunakan IReport 5.5.0

Hal yang paling vital dalam membuat sistem informasi adalah pembuatan laporan. Membuat laporan merupakan hal yang paling melelahkan apa lagi terdiri dari banyak tabel. Pada bahasa pemrograman java membuat laporan tidaklah begitu rumit seperti yang dibayangkan. Salah satu aplikasi yang dapat digunakan dalam membuat laporan pada bahasa pemrograman java adalah IReport. Irepot sudah mendukung jasperreport dengan font dan template menarik dan mudah dalam penggunaan. Pada bahasa pemrograman java membuat laporan menggunakan Ireport dapat dilakukan dengan 2 cara yaitu penggunaan plugin Ireport untuk netbeans dan Aplikasi ireport yang terpisah dengan GUI.

Pada artikel sebelumnya sudah dijelaskan bagaimana cara install plugin ireport pada netbeans. Pada kesempatan kali ini akan dijelaskan bagaimana membuat laporan dengan ireport 5.5.0 dan bagaimana implementasinya pada bahasa pemrograman java.

Persiapan Awal

OK.. kita langsung saja. Sebelum mendesain laporan pertama kita harus mempersiapkan beberapa hal diantaranya :

  1. Download Ireport Library (Ingat versi library harus sama dengan versi Plugin / ireportnya) Silahkan download disini
  2. Install Plugin Ireport untuk netbeans silahkan baca cara install ireport pada netbeans disini
  3. Install XAMPP (Database yang kita gunakan adalah MySQL) silahkan download XAMPP terbaru disini
  4. Download MYSQL-CONNECTOR JAVA disini

Langkah-langkah Membuat Laporan Menggunakan IReport

Setelah 4 hal diatas sudah disiapkan, berikut cara membuat laporan menggunakan Ireport 5.5.0

1. Persiapkan / buat database dengan nama “simpegdb” kemudian tabel dengan nama pegawai. Gunakan script SQL berikut untuk membuat tabel dan database.

 

 CREATE DATABASE simpegdb;
 USE simpegdb;
 -- ----------------------------
 -- Table structure for pegawai
 -- ----------------------------
 CREATE TABLE `pegawai` (
 `nik` CHAR(15) NOT NULL,
 `nama` VARCHAR(35) NOT NULL,
 `kd_golongan` CHAR(10) NOT NULL,
 `kd_jabatan` CHAR(10) NOT NULL,
 `alamat` VARCHAR(100) NOT NULL,
 `agama` VARCHAR(15) NOT NULL,
 `jk` VARCHAR(15) NOT NULL,
 PRIMARY KEY (`nik`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
-- ----------------------------
 -- Records
 -- ----------------------------
 INSERT INTO `pegawai` VALUES ('001', 'Gunawan', 'IVA', 'Kepala', 'Mataram', 'Islam', 'Laki-Laki');
 INSERT INTO `pegawai` VALUES ('002', 'Jagungodak', 'IVA', 'Sekretaris', 'Mataram', 'Islam', 'Laki-Laki');
 INSERT INTO `pegawai` VALUES ('003', 'Tutik Nuryanti', 'IIID', 'Anggota', 'Mataram', 'Islam', 'Perempuan');
 INSERT INTO `pegawai` VALUES ('004', 'Fitra Arsy Nur Qoriah', 'IIID', 'Anggota', 'Mataram', 'Islam', 'Perempuan');
 INSERT INTO `pegawai` VALUES ('005', 'Muh. Afif Gunawan', 'IIA', 'Anggota', 'Mataram', 'Islam', 'Laki-Laki');

 

2. Berikutnya buat Project pada Netbeans dengan nama “Contoh IReport” dengan cara File ==> New Project

NP1

Klik Next untuk melanjutkan :

Screenshot_2

Pada Project Name masukan Contoh Ireport, hilangkan centang pada create main class, lalu pilih Finish. Jika berhasil maka pada Netbeans jendela Project akan terlihat seperti berikut:

nbproject

3. Membuat Class DBConnection untuk melakukan koneksi ke database dengan cara:

Klik kanan pada project pilih new ==> Java class. Pada class name beri nama DBConnection kemudian pada Package  beri nilai contoh.

new class

Sesuaikai isi DBConnection.java seperti source code berikut:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package contoh;
 
/**
 *
 * @author jagungodak
 */
 
import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import javax.swing.JOptionPane;
 
public class DBConnection {
 private Connection conn = null;
 static String DB_URL , DB_USER , DB_PASS , dbname,host,port;
 boolean koneksi = false, db = false;
 public DBConnection() {
 host = "localhost";
 port = "3306";
 dbname = "simpegdb";
 DB_USER = "root";
 DB_PASS = "";
 DB_URL = "jdbc:mysql://" + host + ":" + port + "/" + dbname;
 if (conn == null) {
 try {
 Class.forName("com.mysql.jdbc.Driver");
 conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
 koneksi = true;
 } catch (SQLException ex) {
 JOptionPane.showMessageDialog(null, ex.getErrorCode() + ": "+ex.getMessage());
 koneksi = false;
 } catch (ClassNotFoundException cne) {
 JOptionPane.showMessageDialog(null, "COM.MYSQL.JDBC.Driver tidak ditemukan");
 koneksi = false;
 }
 }
 }
 
public Connection getCon() throws SQLException {
 return this.conn;
 }
 
public boolean getKoneksi() {
 return koneksi;
 }
 }

 

4.Tambahkan semua Library yang sudah di download sebelumnya baik library untuk ireport maupun library mysql connector java dengan cara Klik kanan pada Libraries (pada sub nama project) ==>Add Jar/Folders pastikan semua librari masuk sampai terlihat seperti gambar berikut:

lib

5. Buat Frame baru dengan cara klik kanan pada nama project kemudian pilih New ==> JFrame From

newjframe

Isi Clase Name dengan Laporan kemudian package diisi dengan contoh lalu pilih finish

new Frame Form

5. Buatlah Form seperti berikut :

form

Keterangan : ubah nama variable component masing-masing seperti berikut (klik kanan pada komponen lalu pilih change variable name)

  • JTable1 => tabelPegawai
  • JButton1=> btnClose
  • JButton2 => btnPrint

Masuk ke tab Source di bagian initComponents(); tambahkan sorcecode berikut :

kode

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 String header[]={"Nama","NIK","Gol","Jabatan","Alamat","Agama","JK"};
 javax.swing.table.DefaultTableModel tModel=new javax.swing.table.DefaultTableModel(header, 0);
 DBConnection con= new DBConnection();
 String sql="select * from pegawai";
 try{
 java.sql.PreparedStatement st=con.getCon().prepareStatement(sql);
 java.sql.ResultSet rs=st.executeQuery();
 while(rs.next()){
 String data[]={rs.getString(2),rs.getString(1),rs.getString(3),
 rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7)};
 tModel.addRow(data);
 }
 }catch(Exception ex){
 javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());
 }
 tabelPegawai.setModel(tModel);

6. Membuat Laporan dengan cara Klik kanan pada Nama Project pilih New ==> Project Wizard

Pilih Layout (Gunakan Leaf Gray) Klik Next>> pada filename ubah nama report misalnya
report1.jrxml lalu pilih Next>>
rep1
Pulih Database JDBC Driver
rep2
rep3
Jangan lupa centang Save Password lalu finish. Terakhir pada Query (SQL) masukan query berikut:

Select * from pegawai

Lalu pilih Nextt>>.

rep4

Masukan semua Field di bagian sebelah kanan, kemudian Next>> sampai Finish. Jika berhasil akan tampil Report seperti berikut :

rep5

Ubahlah Title dan subtitle sesuai judul Laporan. Klik Preview untuk melihat hasil sehingga terlihat seperti berikut.

rp7

Lokasi laporan ada pada File seperti gambar berikut:

rep6

Memberi Event pada tombol Close dan Print:

Buka file Laporan.java berilah event untuk masing-masing tombol seperti berikut:

event utnuk tombol close (Klik kanan pada Close => Event==> Action ==> Action Performed):

System.exit(1);

Event untuk tombol Print:

 

1
2
3
4
5
6
7
8
9
10
11
12
 DBConnection con=new DBConnection();
 java.io.File namaFile=new java.io.File("./report1.jasper");
 try {
 net.sf.jasperreports.engine.JasperReport jasper;
 jasper=(net.sf.jasperreports.engine.JasperReport)
 net.sf.jasperreports.engine.util.JRLoader.loadObject(namaFile.getPath());
 net.sf.jasperreports.engine.JasperPrint jp;
 jp=net.sf.jasperreports.engine.JasperFillManager.fillReport(jasper, null,con.getCon());
 net.sf.jasperreports.view.JasperViewer.viewReport(jp,false);
 } catch (Exception ex) {
 javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());
 }

Sampai disini silahkan jalankan project dengan menekan F6.

NB: jika terjadi error Groovy pada saat preview Laporan silahkan ubah languagenya dari Groovy menjadi JAVA dengan cara: pada jendela Report Inspector klik kanan pada nood kemudian pilih Properties. Pada Properties bagian bawah ubah Language dari Groovy menjadi JAVA.

Related Post

Steganografi menggunakan Least Significant Bit (LS... Steganografi merupakan tehnik atau salah satu metode menyembunyikan pesan pada suatu media berupa gambar, audio maupun video sehingga pesan tersebut t...
JavaFX Tutorial : Membuat Grafik Line Chart Membuat grafik Line Chart pada javaFX tidaklah sesulit yang dibayangkan. Berikut beberapa contoh Line Chart pada JavaFX. Baca Juga : Bagaimana meng...
Software Akuntansi MSID Accounting Pro Aplikasi atau Software Akuntansi MSID Accounting Pro merupakan aplikasi akuntansi dan keuangan yang digunakan untuk membuat laporan keuangan perusahaa...
Project : Sistem Informasi Quiz Online System berb... Model pengembangan sistem yang digunakan dalam proses pengembangan perangkat lunak quiz online system ini adalah Classic Life Cycle atau sering disebu...
Membuat Koneksi Ms. Access menggunakan UCanAccess ... Pada tutorial kali ini, akan dijelaskan bagaimana membuat koneksi Ms. Access menggunakan UCanAccess pada java. Pertama --Download UCanAccess Library d...
MSID Sales (Sistem Penjualan Door to Door) MSID Sales atau Mataram Software-Id sales merupakan aplikasi yang digunakan untuk mengelola sistem penjualan door to door atau sistem ngampas. FItur ...
Membuat Laporan Menggunakan IReport 5.5.0 dengan D... Pada tutorial sebelumnya tentang: Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1 Tutorial Java Swing Implementasi MVC D...
Aplikasi User Manager Mikrotik Berbasis Android Aplikasi user manager mikrotik berbasis android merupakan aplikasi yang digunakan untuk menambah, merubah dan menghapus data user hotspot pada MikroTi...
Membuat Koneksi MySQL menggunakan JDBC Driver pada... Pada tutorial kali ini, menjelaskan tentang bagaimana membuat koneksi MySQL menggunakan JDBC Driver pada Java. Sebelum melanjutkan ke tahapan berikutn...
Menggunakan Thread pada Java c. Sebuah object dari class java.lang.Thread merupakan representasi dari sebuah thread. Baca juga Membandingkan tanggal pada java Terdapat dua l...

7 tanggapan untuk “Java : Membuat Laporan Menggunakan IReport 5.5.0

  1. kholis Balas

    gan mau tanya saya udah coba ikutin seperti di atas, cuma kok ga bisa ya…

    Outputnya :

    Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:162)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:192)
    at null_1430897033494_973328.$getStaticMetaClass(calculator_null_1430897033494_973328)
    at null_1430897033494_973328.(calculator_null_1430897033494_973328)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:379)
    at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:112)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:340)
    at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:265)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:462)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:382)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:88)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:103)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:61)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:81)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:849)
    at test.test.btnPrintActionPerformed(test.java:121)
    at test.test.access$000(test.java:21)
    at test.test$1.actionPerformed(test.java:78)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.0.1 and you are trying to load version 2.3.0-rc-1
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromProperties(MetaClassRegistryImpl.java:179)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromMetaInf(MetaClassRegistryImpl.java:167)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerClasspathModules(MetaClassRegistryImpl.java:153)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:108)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:70)
    at groovy.lang.GroovySystem.(GroovySystem.java:33)
    … 60 more

    outputnya keluar seperti itu kenapa ya kira2

    Moon pencerahanya

  2. FALCON Balas

    sudah bisa mas, udah fix exceptionnya, codenya ada saya rubah sedikit ditambah user.dir
    DBConnection con=new DBConnection();
    String currentDir = System.getProperty(“user.dir”);
    java.io.File namaFile=new java.io.File(currentDir+”/report1.jasper”);
    try {
    net.sf.jasperreports.engine.JasperReport jasper;
    jasper=(net.sf.jasperreports.engine.JasperReport)
    net.sf.jasperreports.engine.util.JRLoader.loadObject(namaFile.getPath());
    net.sf.jasperreports.engine.JasperPrint jp;
    jp=net.sf.jasperreports.engine.JasperFillManager.fillReport(jasper, null,con.getCon());
    net.sf.jasperreports.view.JasperViewer.viewReport(jp,false);
    } catch (JRException ex) {

    System.out.println(ex);
    } catch (SQLException ex) {
    Logger.getLogger(Laporan.class.getName()).log(Level.SEVERE, null, ex);
    }

    • Dicky Juliansyah Balas

      DBConnection con=new DBConnection();
      java.io.File namaFile=new java.io.File(“./report1.jasper”);
      try {
      net.sf.jasperreports.engine.JasperReport jasper;
      jasper=(net.sf.jasperreports.engine.JasperReport)
      net.sf.jasperreports.engine.util.JRLoader.loadObject(namaFile.getPath());
      net.sf.jasperreports.engine.JasperPrint jp;
      jp=net.sf.jasperreports.engine.JasperFillManager.fillReport(jasper, null,con.getCon());
      net.sf.jasperreports.view.JasperViewer.viewReport(jp,false);
      } catch (Exception ex) {
      javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());
      }

      ane error gan java.io.FileNotFoundException: .report1.jasper

      ada saran gan?

  3. FALCON Balas

    punya saya kok error net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: .srcLatihan1report1.jasper, padahal tempat jasper disimpan sudah saya cek dan ada. Solusinya gimana mas?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

one + 18 =