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

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 Rumah Makan / Restaurant (MSIDRumahMakan ... Aplikasi Rumah Makan / Restaurant (MSIDRumahMakan v1.0) merupakan aplikasi/perangkat lunak yang digunakan untuk keperluan administrasi Rumah Makan, Ba...
Tutorial Java Swing Implementasi MVC Dengan Databa... Pada tutorial sebelumnya tentang Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1 sudah dijelaskan 4 tahap dari 7 tahap imp...
Software Akuntansi MSID Accounting Pro Aplikasi atau Software Akuntansi MSID Accounting Pro merupakan aplikasi akuntansi dan keuangan yang digunakan untuk membuat laporan keuangan perusahaa...
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...
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...
Penggunaan DateTimePicker pada Java DateTimePicker merupakan komponen yang dapat digunakan untuk memilih tanggal. salah satu contoh penggunaan datetimepicker pada java adalah form input ...
Aplikasi Manajemen Hotel (MSIDHotel V2.0) Aplikasi MSIDHotel v2.0 merupakan Aplikasi manajemen hotel atau bungalows untuk manajemen tamu hotel mulai dari proses reservasi sampai proses check o...
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...
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 ...

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 *

twenty − seventeen =

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