Anda di halaman 1dari 18

Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Pertemuan IV
MEMBUAT LAPORAN

Aplikasi yang telah kita buat tidak lengkap kalau tidak ditambahkan fasilitas untuk
membuat laporan (reports), karena laporan merupakan fasilitas yang kita berikan kepada
user untuk melihat (menampilkan) atau mencetak data yang telah disimpan.
Java telah didukung oleh reporting library yang terkenal, yaitu Jasper Report,
beserta file pendukung reporting lainnnya. Jasper Report merupakan file library, jadi
untuk menggunakannya diperlukan software pendukung yaitu iReport.

4.1 iReport
iReport adalah software yang digunakan untuk membuat dan mendesain template
laporan (report) dengan tampilan GUI, sehingga kita tidak perlu membuat file XML secara
manual untuk template laporan (report). iReport dapat melakukan koneksi secara dinamis
dengan banyak software database, seperti MySQL, SQL Server, Oracle dan lain-lain.
Software iReport dapat di-download di http://sourceforge.net/projects/ireport/.
Versi terbaru dari iReport adalah versi 4.5.0. iReport juga tersedia dalam bentuk plugin
untuk NetBeans. Plugin iReport untuk NetBeans dapat di akses dari
http://plugins.netbeans.org/. Karena pada materi sebelumnya kita menggunakan
NetBeans, maka pada pembahasan ini kita gunakan plugin iReport untuk NetBeans.

4.1.1 Menambahkan Plugin iReport


Setelah kita men-download plugin iReport dengan nama file 1323398078_iReport-
4.5.0-plugin.zip, selanjutnya kita ekstrak sehingga didapat beberapa file, yaitu:
 iReport-4.5.0.nbm
 jasperreports-components-plugin-4.5.0.nbm
 jasperreports-extensions-plugin-4.5.0.nbm
 jasperserver-plugin-4.5.0.nbm

Untuk menambahkan plugin ke NetBeans, pilih menu Tools >> Plugins dan pilih tab
Downloaded seperti gambar 4.1 berikut ini:

Gambar 4.1. Kotak dialog Plugins

aries.saifudin@yahoo.co.id (2011-2012) page 1 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Klik tombol Add Plugins, kemudian pilih semua file plugin yang telah diekstrak,
sehingga tampil seperti gambar di bawah ini:

Gambar 4.2. Menambahkan plugins

Selanjutnya klik tombol Install, maka akan tampil kotak dialog seperti gambar 4.3
berikut ini:

Gambar 4.3. Kotak dialog Install plugins

Lanjutkan dengan mengklik tombol Next atau Continue sampai selesai install.

aries.saifudin@yahoo.co.id (2011-2012) page 2 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

4.1.2 Memulai iReport


Buatlah package reports dengan cara klik kanan pada Source Package, pilih New
Java Package. Kemudian klik kanan pada package reports, pilih New >> Other, pada
Categories pilih Report dan pada File Types pilih Report Wizard, sehingga tampil kotak
dialog seperti gambar 4.4 berikut ini:

Gambar 4.4.Kotak dialog menambah Report Wizard

Selanjutnya klik tombol Next, sehingga tampil kotak dialog untuk memilih layout
laporan seperti gambar berikut ini:

Gambar 4.5. Kotak dialog layout laporan

aries.saifudin@yahoo.co.id (2011-2012) page 3 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Pilih Blank A4 dan klik tombol Next, isikan NilaiReport.jrxml pada File Name
sehingga seperti gambar dibawah ini:

Gambar 4.6. Tampilan nama dan lokasi file report

Klik tombol Next, sehingga tampil kotak dialog setting koneksi seperti gambar 4.7
berikut ini:

Gambar 4.7.Setting koneksi

Klik tombol New untuk membuat koneksi baru ke database, maka akan tampil
pilihan data source :

aries.saifudin@yahoo.co.id (2011-2012) page 4 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Gambar 4.8. Memilih Datasource Type

Pilih Database JDBC connection dan klik tombol Next.

Gambar 4.9. Setting Database JDBC connection

aries.saifudin@yahoo.co.id (2011-2012) page 5 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Pada kotak Input teks Name diisi dengan nama koneksi yang akan kita buat, yaitu
sistempenilaianmahasiswaconnection. Pada JDBC Driver pilih driver database yang kita
gunakan, yaitu MySQL (com.mysql.jdbc.Driver). JDBC URL dapat langsung diketik
jdbc:mysql://localhost/dbsistempenilaianmahasiswa, atau dengan mengisi Server Address
dengan localhost dan Database dengan dbsistempenilaianmahasiswa, kemudian mengklik
tombol Wizard. Isi User name dan Password sesuai dengan user name dan password
MySQL dan beritanda check pada save password.
Klik tombol Test untuk melakukan tes koneksi, jika koneksi berhasil, maka dapat
dilanjutkan ketahap berikutnya dengan mengklik tombol Save.

Gambar 4.10. Query SQL

Klik tombol Design Query, double klik tbnilai, tbmahasiswa dan tbmatakuliah,
buatlah relasi dengan melakukan drag field nim dan kodematakuliah dari tabel tbnilai ke
field nim pada tabel tbmahasiswa dan field kodematakuliah pada tabel tbmatakuliah
sehingga tampil seperti gambar berikut ini:

Gambar 4.11. Desain Query

aries.saifudin@yahoo.co.id (2011-2012) page 6 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Kemudian klik tab syntax dan tambahkan pernyataan berikut ini:

ORDER BY
tbmahasiswa.`semester` ASC,
tbmahasiswa.`kelas` ASC,
tbmahasiswa.`nama` ASC

Sehingga tampil kotak dialog seperti gambar di bawah ini:

Gambar 4.12. SQL Syntax

Selanjutnya klik tab designer, klik tombol Yes jika tampil kotak dialog untuk
menggunakan perubahan seperti gambar 4.13 berikut ini:

Gambar 4.13. Kotak dialog apply changes

Untuk mengakhiri design query, klik tombol Ok sehingga tampil kotak dialog seperti
gambar 4.14 di bawah ini:

aries.saifudin@yahoo.co.id (2011-2012) page 7 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Gambar 4.14. Kotak dialog Query

Klik tombol next, kemudian pilih field yang akan ditampilkan seperti gambar 4.15
berikut ini:

Gambar 4.15.Memilih field-field dalam laporan

aries.saifudin@yahoo.co.id (2011-2012) page 8 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Klik tombol Next. Untuk pengelompokan (Group), atur seperti gambar berikut ini:

Gambar 4.16.Tampilan pengaturan group

Klik tombol Next sehingga tampil kotak dialog Finish.

Gambar 4.17. Tampilan akhir report wizard

aries.saifudin@yahoo.co.id (2011-2012) page 9 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Selanjutnya klik tombol Finish untuk mengakhiri report wizard. Klik jendela Report
Inspector dan klik tanda + disebelah kiri Fields sehingga seperti gambar di bawah ini:

Gambar 4.18. Report Inspector

Klik pada toolbar simbol penyimpanan seperti gambar 4.19 untuk mengedit SQL
statement.

Gambar 4.19. Edit SQL statement

aries.saifudin@yahoo.co.id (2011-2012) page 10 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Ubah SQL statement menjadi:

SELECT
tbnilai.`nim` AS tbnilai_nim,
tbnilai.`kodematakuliah` AS tbnilai_kodematakuliah,
tbnilai.`tugas` AS tbnilai_tugas,
tbnilai.`uts` AS tbnilai_uts,
tbnilai.`uas` AS tbnilai_uas,
(0.2*tbnilai.`tugas`+0.35*tbnilai.`uts`+0.45*tbnilai.`uas`) as
tbnilai_nilaiakhir,
tbmahasiswa.`nama` AS tbmahasiswa_nama,
tbmahasiswa.`semester` AS tbmahasiswa_semester,
tbmahasiswa.`kelas` AS tbmahasiswa_kelas,
tbmatakuliah.`namamatakuliah` AS tbmatakuliah_namamatakuliah,
tbmatakuliah.`jumlahsks` AS tbmatakuliah_jumlahsks
FROM
`tbmahasiswa` tbmahasiswa INNER JOIN `tbnilai` tbnilai ON
tbmahasiswa.`nim` = tbnilai.`nim`
INNER JOIN `tbmatakuliah` tbmatakuliah ON tbnilai.`kodematakuliah`
= tbmatakuliah.`kodematakuliah`
ORDER BY
tbmahasiswa.`semester` ASC,
tbmahasiswa.`kelas` ASC,
tbmahasiswa.`nama` ASC

Tambahkan group band dengan cara klik kanan pada tbmahasiswa_semester Group
Header, kemudian pilih Add Band seperti gambar 4.20. Lanjutkan dengan menambahkan
group band untuk tbmahasiswa_kelas Group Header dan tbnilai_nim Group Header.

Gambar 4.20. Menambahkan group band

Beri tanda check pada properti start on new page dari Group Header
tbmahasiswa_semester dan tbmahasiswa_kelas.

aries.saifudin@yahoo.co.id (2011-2012) page 11 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Gambar 4.21. Properti Group Header tbmahasiswa_kelas

Atur desain template laporan dengan melakukan drag field dari Report Inspector
dan komponen dari palette sehingga terbentuk seperti berikut ini:

Gambar 4.22.Tampilan desain laporan

aries.saifudin@yahoo.co.id (2011-2012) page 12 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Tampilan akhir pada Report Inspector menjadi seperti berikut ini:

Gambar 4.23. Report Inspector

Untuk menampilkan jumlah halaman pada $V{PAGE_NUMBER} yang kedua,


tambahkan pernyataan evaluationTime="Report" di dalam tag textField. Caranya klik
tombol XML di antara tombol Designer dan Preview, di bagian bawah cari tag texField yg
menampilkan $V{PAGE_NUMBER} dan tambahkan pernyataan evaluationTime="Report"
seperti berikut ini:

<textField evaluationTime="Report">
<reportElement x="525" y="0" width="30" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpressio
n>
</textField>

Pernyataan evaluationTime ada dua nilai, secara default nilainya Now.


a. evaluationTime="Now", memberikan nomor halaman
b. evaluationTime="Report", menampilkan jumlah halaman

Klik tombol preview untuk melihat hasil desain.

aries.saifudin@yahoo.co.id (2011-2012) page 13 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

4.2 Desain Form Laporan Nilai


Di dalam package view buatlah jInternalFrame dengan nama class FormLaporanNilai
dengan desain seperti gambar 2.24 berikut ini:

Gambar 4.24. Desain Form Laporan Nilai

4.3 Memasukkan Library Jasper Report


Agar kita dapat menggunakan pernyataan-pernyataan jasper report didalam project
kita, maka tambahkan library jasper report dengan cara klik kanan pada libraries dalam
jendela project, kemudian pilih Add JAR/Folder sehingga tampil jendela dialog seperti
gambar 2.25 berikut ini:

Gambar 4.25. Menambahkan library jasper report

Pilih file commons-beanutils, commons-collections, commons-digester, grovy-all,


dan jasperreports sesuai versi jasperreport yang digunakan.

aries.saifudin@yahoo.co.id (2011-2012) page 14 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Agar laporan yang dibuat dengan jasper report dapat diekspor ke file dengan format
pdf, tambahkan library iText (misalnya iText-2.1.7.jar). Jika ingin dapat di ekspor ke file
excel, tambahkan library poi (misalnya poi-3.6.jar atau poi-3.7-20101029.jar).

4.4 Menambahkan Script


Di dalam class FormUtama di bawah pendefinisian class tambahkan script berikut
ini:

public static FormLaporanNilai formLaporanNilai = new


FormLaporanNilai();

Dan di dalam metode actionPerformed dari nilaiLaporanMenuItem tambahkan


script berikut ini:

if (formLaporanNilai.isVisible()) {
try {
formLaporanNilai.setSelected(true);
} catch (Exception ex) {}
} else {
formLaporanNilai = new FormLaporanNilai();
MDIDesktopPane.add(formLaporanNilai);
formLaporanNilai.setVisible(true);
}

Di dalam class Nilai, buatlah metode cetakLaporan dengan script seperti berikut ini:

public void cetakLaporan(int semester, String kelas){


boolean adaKesalahan = false;
Connection cn = null;

try{
Class.forName(Koneksi.driver);
} catch (Exception ex){
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan
atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}

if (!adaKesalahan){
try {
cn = DriverManager.getConnection(Koneksi.database +"?user="
+Koneksi.user+ "&password="+Koneksi.password+"");
} catch (Exception ex) {
adaKesalahan = true;
JOptionPane.showMessageDialog(null,"Koneksi ke "+
Koneksi.database +" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}

if (!adaKesalahan){
String SQLStatement="";
try {
Statement statement = cn.createStatement();

SQLStatement = "SELECT tbnilai.`nim` AS tbnilai_nim, "


+"tbnilai.`kodematakuliah` AS tbnilai_kodematakuliah,
"
+"tbnilai.`tugas` AS tbnilai_tugas, "

aries.saifudin@yahoo.co.id (2011-2012) page 15 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

+"tbnilai.`uts` AS tbnilai_uts, "


+"tbnilai.`uas` AS tbnilai_uas, "
+"(0.2*tbnilai.`tugas`+ 0.35*tbnilai.`uts`
+0.45*tbnilai.`uas`) as tbnilai_nilaiakhir, "+"tbmahasiswa.`nama` AS
tbmahasiswa_nama,"
+"tbmahasiswa.`nim` AS tbmahasiswa_nim, "
+ "tbmahasiswa.`semester` AS tbmahasiswa_semester, "
+"tbmahasiswa.`kelas` AS tbmahasiswa_kelas, "
+"tbmatakuliah.`kodematakuliah` AS
tbmatakuliah_kodematakuliah, "
+"tbmatakuliah.`namamatakuliah` AS
tbmatakuliah_namamatakuliah, "
+"tbmatakuliah.`jumlahsks` AS tbmatakuliah_jumlahsks "
+"FROM "
+"`tbmahasiswa` tbmahasiswa INNER JOIN `tbnilai`
tbnilai ON tbmahasiswa.`nim` = tbnilai.`nim` "
+"INNER JOIN `tbmatakuliah` tbmatakuliah ON
tbnilai.`kodematakuliah` = tbmatakuliah.`kodematakuliah` ";

if (semester!=0){
SQLStatement = SQLStatement + " where
tbmahasiswa.`semester`="+semester;

if (!kelas.equals("")){
SQLStatement = SQLStatement + " and
tbmahasiswa.`kelas`='"+kelas+"'";
}
} else {
if (!kelas.equals("")){
SQLStatement = SQLStatement + " where
tbmahasiswa.`kelas`='"+kelas+"'";
}
}

SQLStatement = SQLStatement +" ORDER BY "


+"tbmahasiswa.`semester` ASC, "
+"tbmahasiswa.`kelas` ASC, "
+"tbmahasiswa.`nama` ASC";

JasperDesign disain = JRXmlLoader.load(


"src/reports/NilaiReport.jrxml");
JasperReport nilaiLaporan =
JasperCompileManager.compileReport(disain);

ResultSet resultSet =
statement.executeQuery(SQLStatement);
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);

JasperPrint cetak = JasperFillManager.fillReport(


nilaiLaporan,new HashMap(), resultSetDataSource);

JasperViewer.viewReport(cetak,false);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null,"\nGagal mencetak\n"
+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);
}
}
}
}

aries.saifudin@yahoo.co.id (2011-2012) page 16 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Jangan lupa menambahkan pernyataan import berikut ini:

import javax.swing.JOptionPane;
import java.util.HashMap;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;

Di dalam class NilaiController tambahkan metode mencetakLaporan dengan script


seperti berikut ini:

public void cetakLaporan(javax.swing.JComboBox semesterComboBox,


javax.swing.JComboBox kelasComboBox){
int semester;
String kelas;
if (semesterComboBox.getSelectedIndex()==0){
semester=0;
} else {
semester = Integer.parseInt(
semesterComboBox.getSelectedItem().toString());
}

if (kelasComboBox.getSelectedIndex()==0){
kelas="";
} else {
kelas = kelasComboBox.getSelectedItem().toString();
}

nilai.cetakLaporan(semester,kelas);
}

Di dalam metode formInternalFrameActivated pada FormLaporanNilai, tambahkan


pernyataan di bawah ini untuk mengubah menu item dari semesterComboBox dan
kelasComboBox.

int i;
char c[] = new char[1];

semesterComboBox.removeAllItems();
semesterComboBox.addItem("Semua");
for (i=0;i<14;i++){
semesterComboBox.addItem(i+1);
}

kelasComboBox.removeAllItems();
kelasComboBox.addItem("Semua");
for (i=0;i<26;i++){
c[0]=(char)(i+65);
kelasComboBox.addItem(new String(c));
}

Selanjutnya di dalam metode actionPerformed dari cetakButton pada


FormLaporanNilai tambahkan pernyataan berikut ini:

new NilaiController().cetakLaporan(semesterComboBox, kelasComboBox);

aries.saifudin@yahoo.co.id (2011-2012) page 17 of 18


Materi Pemrograman II (Pertemuan IV) Universitas Pamulang

Tambahkan pernyataan import berikut ini:

import controller.NilaiController;

dengan cara mengklik pada bola lampu di sebelah kiri dan pilih add import for
import controller.NilaiController.
Terakhir, di dalam metode actionPerformed dari tutupButton tambahkan
pernyataan:

dispose();

Referensi:
1. Supriyanto, (2010), Pemrograman Database Menggunakan Java & MySQL Untuk
Pemula, Cetakan Pertama, Media Kita
2. Hariyanto, Bambang, (2007), Esensi-esensi Bahasa Pemrograman Java, Edisi 2,
Informatika Bandung, November 2007.
3. Utomo, EkoPriyo, (2009), Panduan Mudah Mengenal Bahasa Java, Yrama Widya,
Juni 2009.
4. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007
5. http://www.netbeans.com/
6. http://www.oracle.com/

aries.saifudin@yahoo.co.id (2011-2012) page 18 of 18

Anda mungkin juga menyukai