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

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...
Penggunaan DateTimePicker pada Java DateTimePicker merupakan komponen yang dapat digunakan untuk memilih tanggal. salah satu contoh penggunaan datetimepicker pada java adalah form input ...
Cara Install IReport Plugin untuk Netbeans Saat kita membangun sebuah sistem berupa aplikasi desktop menggunakan Java tentu membuat report atau laporan adalah hal yang wajib. Membuat laporan pa...
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...
Software Akuntansi MSID Accounting Pro Aplikasi atau Software Akuntansi MSID Accounting Pro merupakan aplikasi akuntansi dan keuangan yang digunakan untuk membuat laporan keuangan perusahaa...
Download XAMPP Terbaru untuk Windows, Linux, MAC O... XAMPP singkatan dari X Apache MySQL PHP dan Perl merupakan aplikasi Devlopment yang dikembangkan oleh Apache Friends sebuah organisasi yang didirikan ...
Java 8 : Membandingkan Tanggal pada Java Membandingkan tanggal pada java sangatlah mudah dengan catatan telah memahami tutorial sebelumnya tentang penggunaan API Date Time dan Calender. Berik...
Tutorial Java Swing Implementasi MVC Dengan Databa... Pada tutorial java swing kali ini, akan dijelaskan bagaimana implementasi MVC (Model View Controller) pada Java dengan database Microsoft Access 2016....
Uninstall USB Driver yang tidak terpakai menggunak... Setiap kali kita pasang Universal Serial Bus (USB) baik berupa USB Printer Cable, USB Flash Drive maupun USB dalam bentuk lainnya maka secara otomatis...
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...

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 *

three × three =

This site uses Akismet to reduce spam. Learn how your comment data is processed.