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

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...
Cara Install Plugin Kotlin pada Android Studio Pada tutorial kali ini akan dijelaskan tentang cara install plugin kotlin pada android studio. Kotlin merupakan bahasa pemrograman baru yang dibuat ol...
Installasi dan Konfigurasi ODBC Driver pada Window... ODBC Driver merupakan sebuah standar terbuka yang digunakan sebagai konektivitas antar mesin basis data. Jika kita ingin meng akses database dari baha...
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...
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...
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....
Menampilkan Informasi Kapasitas Hardisk pada Java Untuk menampilkan informasi kapasitas hardisk pada java menggunakan class java.io.File. Pada java 1.6 keatas terdapat method getTotalSpace(), getUsabl...
Java 8: Penggunaan Date Time dan Calender pada Jav... Pada tuturial kali ini, menjelaskan penggunaan Date Time pada Java yang menggunakan API java.until.Date dan java.until.Calender. Sebagai seorang progr...
Manipulasi File pada Java Untuk melakukan manipulasi File pada Java menggunakan class java.io.File mulai dari membuat file, menghapus file, cek permision sebuah file, cek meta ...
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...

Tutorial Terkait :

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 *

18 + 13 =