Membuat Aplikasi iReport Sederhana Menggunakan Java Netbeans dan PostgreSQL

Membuat Aplikasi iReport Sederhana Menggunakan Java Netbeans dan PostgreSQL - Tutorial kali ini akan membahas tentang pengembangan penggunaan ireport pada pemrograman java, sebelumnya telah dijelaskan dasar pembuatan laporan menggunakan ireport java. Studi kasus yang akan diambil adalah membuat aplikasi laporan nota pembelian barang. Tutorial terdiri dari 3 tahapan, pertama tahap perancangan database, kedua pembuatan report wizard, terakhir pembuatan source code program.


Kelas Informatika - Membuat Aplikasi iReport Sederhana Menggunakan Java Netbeans dan PostgreSQL



Perancangan Database

Hal pertama yang harus dipertimbangkan dalam perancangan model database adalah proses normalisasi, begitupun tabel nota pada kasus ini. Tujuannya tentu agar tidak terjadi redudansi apabila data sudah kompleks. Selanjutnya mari kita lihat, disini akan dibuat dua tabel terkait nota pembelian. Pertama adalah tabel nota, menggunakan query berikut.
“create table nota (nomor int4 not null primary key, keterangan varchar (30), jumlah int4, harga int4);” 
Kelas Informatika - Membuat Tabel Nota

Selanjutnya buat tabel lain sebagai perincian nota, beri nama detail_nota. Tabel detail_nota terdiri dari 2 kolom, yakni nomor (referensi dari tabel nota) dan kode.
“create table detail_nota (nomor int4 references nota, kode int4);” 
Kelas Informatika - Membuat Tabel Detail Nota

Selanjutnya isi kesemua tabel dengan data. Pertama isi data tabel nota terlebih dahulu. Sebagai contoh, disini telah terisi sebanyak 6 data pada tabel nota.

Kelas Informatika - Input Data Nota

Berikutnya isi data pada tabel detail_nota, pengisian data disesuaikan dengan data pada tabel sebelumnya (tabel nota). 

Kelas Informatika - Input Data Detail Nota

Konfigurasi Report Wizard

Membuat Report Baru

Menuju tahap konfigurasi report wizard, disini kita asumsikan plugin telah terinstall pada netbeans, namun apabila plugin belum terpasang anda bisa baca terlebih dahulu bagian ini. Oke, lanjut ke pembuatan projek baru terlebih dahulu.

Kelas Informatika - Membuat Projek Baru Java Netbeans

Selanjutnya beri nama projek, dalam hal ini projek kita beri nama Nota_Pembelian.

Kelas Informatika - Membuat Projek Java Netbeans Nota Pembelian

Setelah itu pada lembar kerja netbeans sisi samping kiri, sorot pada projek yang kita buat, klik kanan >> pilih new >> klik report wizard.

Kelas Informatika - Report Wizard Java Netbeans

Beri nama report tersebut, sebagai contoh disini telah diberi nama nota. Jangan lupa beri .jrxml sebagai ekstensi ireport java.

Kelas Informatika - Membuat Report Wizard Baru

Selanjutnya akan masuk pada step Query, pilih New >> klik Next.

Kelas Informatika - Step Query Report Wizard

Pada kotak dialog Datasource pilih Database JDBC connection, lalu klik Next.

Kelas Informatika - Datasource Report Wizard

Lanjutkan dengan mengisi form Database JDBC connection. Disini diberi nama nota, untuk JDBC Driver gunakan PostgreSQL, JDBC URL isi dengan database masing-masing. Lalu isi Username dan Password, sesuaikan dengan data SQLshell.

Kelas Informatika - Database JDBC Connection

Setelah semua form telah terisi, cek terlebih dahulu dengan menekan tombol Test, kemudian masukkan password seperti yang telah diisi pada form Database JDBC connection. Apabila berhasil, akan muncul alert Connection test successfull!

Kelas Informatika - Koneksi Database Berhasil

Setelah berhasil, klik Save hingga memunculkan kotak dialog query. Dalam hal ini gunakan query berikut. 
“select nota.nomor, nota.keterangan, nota.jumlah, nota.harga, detail_nota.kode from nota, detail_nota where nota.nomor = detail_nota.nomor;” 
Query tersebut akan memunculkan semua kolom yang terdapat pada tabel nota maupun detail_nota. Klik Next apabila penulisan query telah selesai.

Kelas Informatika - Step Fields Report Wizard

Setelah itu akan muncul permintaan password seperti saat pengecekan form Database JDBC connection. Isi saja password yang sama seperti saat pengecekan.

Kelas Informatika - Input Password Database JDBC Connection

Setelah itu akan muncul beberapa kolom sesuai dengan query, pada kotak dialog tersebut pilih kolom yang akan ditampilkan pada report.

Kelas Informatika - Group By Fields Report Wizard

Selanjutnya akan muncul kotak dialog group by. Lewati saja tahap ini dengan menekan tombol Next.

Kelas Informatika - Group By Report Wizard

Tahap akhir proses ini adalah pemilihan jenis layout, disana terdapat dua pilihan, yaitu columnar dan tabular. Perbedaan antar keduanya telah dijelaskan (Lihat Disini). Disini kita gunakan Tabular Layout.

Kelas Informatika - Layout Report Wizard

Hingga akhirnya muncul notifikasi Congratulation! You have successfully created a new report. Hal tersebut sebagai parameter bahwa report telah berhasil dibuat.

Kelas Informatika - Konfigurasi Report Wizard Berhasil

Berikut tampilan dasar report yang telah dibuat.

Kelas Informatika - Classic Template Report Wizard

Perancangan Layout Laporan Nota

Selanjutnya kita sesuaikan model report dengan melakukan beberapa penambahan komponen, pertama kita tambahkan tanggal transaksi. Menambahkan fitur tanggal dapat dilakukan dengan menggunakan fungsi drag and drop pada ikon current date di sebelah kanan lembar kerja. Hingga muncul kotak dialog seperti gambar berikut.

Kelas Informatika - Konfigurasi Date Report Wizard

Pada kotak dialog ini, pilih format penulisan tanggal sesuai dengan yang diinginkan, setelah itu klik Apply. Kemudian pada tab report inspector, disebelah kiri lembar kerja, eksplore field dan gunakan kembali fungsi drag and drop pada kode field untuk mengisi kode nota sesuai dengan database.

Kelas Informatika - Drag Field Kode Report Wizard

Lanjutkan dengan membuat parameter kode. Fungsinya adalah agar nota yang ditampilkan sesuai dengan input kode nota.

Kelas Informatika - Rename Field Kode Report Wizard

Kemudian tambahkan query berikut pada kotak dialog report query.
“where detail_nota.kode = $P{Kode}”
Kelas Informatika - Report Query Java Netbeans

Selanjutnya untuk memperoleh jumlah total, gunakan fungsi drag and drop pada fields harga. Ketika muncul kotak dialog pemilihan jenis nilai yang diinginkan, pilih The result of an aggregation function dan pilih fungsi sum. Hal ini tentu karena sum merupakan fungsi query untuk menjumlahkan data, tentunya bersifat Integer. Apabila masih bertipe string ubah (parse) terlebih dahulu.

Kelas Informatika - The Result of an Aggregation Function

Kemudian kita masuk pada bagian perancangan layout nota. Mnambahkan garis, gambar, ataupun elemen visual lainnya dapat menggunakan fungsi drag and drop yang terletak disebelah kanan lembar kerja. Berikut hasil perancangan layout nota yang telah dibuat.

Kelas Informatika - Layout Nota dengan Report Wizard

Tahap selanjutnya masuk ke tab preview untuk melihat hasilnya. Nanti akan muncul kotak dialog pengisian kode nota, kita coba masukkan kode nota 34.

Kelas Informatika - Input Kode Nota 34

Setelah klik OK maka hasil yang muncul adalah list transaksi dengan kode nota 34, seperti terlihat pada gambar berikut.

Kelas Informatika - Tampilan Nota Pembayaran iReport

Source Code

Setelah melalui tahap konfigurasi report wizard, tinggal membuat program yang akan digunakan sebagai penerapan report yang telah dibangun. Sebelum melangkah lebih jauh mengenai source code, perlu kiranya untuk mempersiapkan beberapa instrumen penting dalam pengkodean, diantaranya library dan maupun JDBC. Jika anda belum mempunyai keduanya, silahkan download disini

Memasuki tahap pertama, kita buat desain interface menggunakan GUI builder. Klik kanan pada projek yang telah dibuat sebelumnya (projek sebelumnya lihat disini), kemudian pilih Jframe Form. 

Kelas Informatika - Interface Aplikasi dengan GUI Builder

Kemudian masuk pada source code program. Berikut akan ditampilkan source code yang digunakan. Pertama import beberapa elemen yang dibutuhkan untuk menampilkan report.
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.view.JasperViewer;
Lanjut ke tahap berikutnya, insialisasi variabel yang akan yang akan digunakan.
JasperReport JasRep;
JasperPrint JasPri;
Map param = new HashMap();
JasperDesign JasDes;
private String username, password, url;
public Connection conn;
Terlihat pada source code diatas ada dua kelompok inisialisasi variabel. Pertama adalah elemen variabel aksi tombol cetak. Sedangkan yang kedua (2 baris terakhir) merupakan variabel method koneksi database.

Source code selanjutnya digunakan untuk koneksi database. Adapun initComponents ( ) digunakan untuk memanggil interface aplikasi melalui JFrame Form.
public aplikasi(){
 initComponents();
 // koneksi database
 try{
  Class.forName("org.postgresql.Driver").newInstance();
  url = "jdbc:postgresql://localhost/postgres";
  username = "root";
  password = "";
  try{
   conn = DriverManager.getConnection(url, username, password);
   JOptionPane.showMessageDialog(null, "Alhamdulillah.. \nBerhasil Terkoneksi..");
  } catch (SQLException ex){
   System.out.println("salah\n server belum start \n hubungi admin"+ex);
   System.exit(1);
  }
 } catch (Exception ex) {
  System.out.println("salah"+ex);
 }
}
Terakhir adalah source code aksi (event) tombol, yakni tombol cetak dan keluar. Apabila kode nota telah diinputkan dan menekan tombol cetak, maka akan menampilkan JasperViewer sesuai dengan kode nota.
private void BcetakActionPerformed(java.awt.event.ActionEvent evt){
 try{
  File report = new File ("nota.jrxml");
  JasDes = JRXmlLoader.load(report);
  param.put("Kode", Integer.parseInt(Tkode.getText()));
  JasRep = JasperCompileManager.compileReport(JasDes);
  JasPri = JasperFillManager.fillReport(JasRep, param, conn);
  JasperViewer.viewReport(JasPri, false);
 } catch (Exception e){
  JOptionPane.showMessageDialog(null, e);
 }
}

Pengujian (Testing)

Tahap terakhir adalah pengujian. Pengujian perlu dilakukan agar dapat memastikan program yang telah dibangun berjalan dengan baik. Langkah pertama tahap pengujian adalah menjalankan program. Nantinya pesan pertama yang akan muncul adalah notifikasi koneksi database.

Kelas Informatika - Koneksi Database Berhasil

Setelah itu form akan tampil, isi dengan kode note yang terdapat pada database (antara 34 atau 35). Sebagai contoh disini diisi dengan kode nota 34.

Kelas Informatika - Input Kode Nota

Setelah kode transaksi diisi tekan tombol cetak. Hasilnya akan menampilkan JasperViewer dengan list transaksi sesuai dengan kode transaksi.

Kelas Informatika - JasperViewer Nota Pembayaran

Jangan lupa untuk mencoba input dengan kode nota 35, karena database terdiri dari dua kode nota, yaitu 34 dan 35. Setelah kode nota diganti menjadi 35 dan menekan tombol cetak. Hasilnya juga menampilkan list transaksi sesuai dengan kode nota 35.

Kelas Informatika - JasperViewer Nota Pembayaran

Kemudian kita coba dua kemungkinan kesalahan program yang telah dibuat. Pertama apabila menekan tombol cetak tanpa mengisi kode nota.

Kelas Informatika - Error Menampilkan Jasper Report

Pesan diatas muncul karena aksi menampilkan nota secara keseluruhan (default) pada tombol cetak belum ada. Kemungkinan kedua apabila kita input kode nota yang tidak terdapat dalam database.

Kelas Informatika - Error Menampilkan Jasper Report

Setelah memunculkan pesan tersebut, selanjutnya akan menampilkan JasperViewer dengan halaman kosong.

Kelas Informatika - JasperViewer Blank

Hal tersebut dikarenakan tidak adanya list transaksi yang akan ditampilkan, sebab kode nota yang diinputkan tidak ada dalam database. Sekian tutorial kali ini, jangan lupa tinggalkan komentar ya. Selamat mencoba 😊

2 Komentar untuk "Membuat Aplikasi iReport Sederhana Menggunakan Java Netbeans dan PostgreSQL"

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel