Você está na página 1de 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

Pertemuan X MENCETAK LAPORAN


10.1 Desain Laporan Buatlah folder reports di dalam folder Web Pages, kemudian buatlah desain laporan menggunakan iReport seperti gambar 10.1 berikut ini:

Gambar 10.1 Desain laporan Cara pembuatan desain laporan seperti pada materi 4 (membuat laporan pada aplikasi desktop). Dapat file desain laporan dari materi 4 langsung di-copy ke dalam folder reports. 10.2 Menambahkan Kode Program Pada source package tambahkan servlet seperti kotak dialog berikut ini:

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

page 1 of 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

Gambar 10.2 Menambahkan NilaiControllerServlet Di dalam class NilaiControllerServlet, tambahkan kode program berikut ini:
private String errorMessage; public String getErrorMessage() { return errorMessage; } public boolean cetakLaporan(String opsi, String nim, int semester, String kelas, HttpServletResponse response){ boolean adaKesalahan = false; Connection cn = null; try{ Class.forName(Koneksi.driver); } catch (Exception ex){ adaKesalahan = true; errorMessage = "JDBC Driver tidak ditemukan atau rusak\n"+ex; } if (!adaKesalahan){ try { cn = DriverManager.getConnection(Koneksi.database+"?user="+ Koneksi.user+"&password="+Koneksi.password+""); } catch (Exception ex) { adaKesalahan = true; errorMessage = "Koneksi ke "+Koneksi.database+" gagal\n"+ex; } if (!adaKesalahan){ String SQLStatement; try { Statement statement = cn.createStatement();

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

page 2 of 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

SQLStatement = "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.`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 (!opsi.equals("Semua")){ if (opsi.equals("NIM")){ SQLStatement = SQLStatement + " where tbmahasiswa.`nim`="+nim; } else { SQLStatement = SQLStatement + " where tbmahasiswa.`semester`="+semester+ " and tbmahasiswa.`kelas`='"+kelas+"'"; } } SQLStatement = SQLStatement +" ORDER BY " +"tbmahasiswa.`semester` ASC, " +"tbmahasiswa.`kelas` ASC, " +"tbmahasiswa.`nama` ASC"; JasperDesign disain = JRXmlLoader.load(getServletConfig().getServletContext().getRealPath("repo rts/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); byte[] pdfasbytes = JasperExportManager.exportReportToPdf(cetak); OutputStream outStream = response.getOutputStream(); response.setHeader("Content-Disposition","inline, filename=NilaiReport.pdf"); response.setContentType("application/pdf"); response.setContentLength(pdfasbytes.length);

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

page 3 of 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

outStream.write(pdfasbytes,0,pdfasbytes.length); outStream.flush(); outStream.close(); } catch (Exception ex) { errorMessage = "Gagal mencetak\n"+ex; } } } return !adaKesalahan; }

Pada metode processRequest, ubah kode programnya menjadi seperti berikut ini:
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); RequestDispatcher rd; String String String String if if if if opsi = request.getParameter("opsi"); nim = request.getParameter("nim"); semester = request.getParameter("semester"); kelas = request.getParameter("kelas");

(nim==null) nim=""; (opsi==null) opsi="Semua"; (semester==null) semester="1"; (kelas==null) kelas="A";

String keterangan="<br>"; rd = request.getRequestDispatcher("Header.jsp"); rd.include(request, response); out.println("<center>"); out.println("<table width='80%' bgcolor='#eeeeee'>"); out.println("<tr height='400'>"); out.println("<td width=200 align=center valign=top bgcolor='#eeffee'>"); out.println("<a href='index.jsp'>Home</a><br>"); out.println("<b>Master Data</b><br>"); out.println("<a href='FormMahasiswa'>Mahasiswa</a><br>"); out.println("<a href='FormMataKuliah'>Mata Kuliah</a><br>"); out.println("<b>Mencetak</b><br>"); out.println("<a href='MencetakNilai'>Nilai</a>"); out.println("</td>"); out.println("<td height=400 valign=top bgcolor='#FFFFFF'>"); out.println("<center>"); out.println("<h2>Mencetak Nilai</h2>"); out.println("<form action='MencetakNilai' method='post'>"); out.println("<table>"); try{ out.println("<tr>"); if (opsi.equals("NIM")){

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

page 4 of 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

out.println("<td align='right'><input type='radio' checked name='opsi' value='NIM'></td>"); } else { out.println("<td align='right'><input type='radio' name='opsi' value='NIM'></td>"); } out.println("<td align='left'>NIM</td>"); out.println("<td align='left'><input type='text' value='"+nim+"' name='nim' maxlength='15' size='15'></td>"); out.println("</tr>"); out.println("<tr>"); if (opsi.equals("semesterKelas")){ out.println("<td align='right'><input type='radio' checked name='opsi' value='semesterKelas'></td>"); } else { out.println("<td align='right'><input type='radio' name='opsi' value='semesterKelas'></td>"); } out.println("<td align='left'>Semester</td>"); out.println("<td align='left'>"); out.println("<select name='semester'>"); for (int i=1; i<=14; i++) { if (i==Integer.parseInt(semester)){ out.println("<option selected value="+i+">"+i+"</option>"); } else { out.println("<option value="+i+">"+i+"</option>"); } } out.println("</select>"); out.println("</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td><br></td>"); out.println("<td align='left'>Kelas</td>"); out.println("<td align='left'>"); out.println("<select name='kelas'>"); for (int i=0; i<=25; i++) { String namaKelas = new String(new char[]{(char)(i+65)}); if (kelas.equals(namaKelas)){ out.println("<option selected value="+namaKelas+">"+namaKelas+"</option>"); } else { out.println("<option value="+namaKelas+">"+namaKelas+"</option>"); } } out.println("</select>"); out.println("</td>"); out.println("</tr>"); out.println("<tr>"); if (opsi.equals("Semua")){ out.println("<td align='right'><input type='radio' checked name='opsi' value='Semua'></td>"); } else { out.println("<td align='right'><input type='radio' name='opsi' value='Semua'></td>"); }

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

page 5 of 7

Materi Pemrograman II (Pertemuan 10)


out.println("<td align='left'>Semua</td>"); out.println("<td><br></td>"); out.println("</tr>");

Universitas Pamulang

out.println("<tr>"); out.println("<td colspan='3'><b>"+keterangan+"</b></td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td colspan='3' align='center'><input type='submit' name='tombol' value='Cetak' style='width: 100px'></td>"); out.println("</tr>"); out.println("</table>"); out.println("</form>"); out.println("</center>"); out.println("</td>"); out.println("</tr>"); out.println("</table>"); out.println("</center>"); rd = request.getRequestDispatcher("Footer.jsp"); rd.include(request, response); } finally { out.close(); } }

Di dalam metode doPost tambahkan kode program berikut ini:


String String String String String if if if if if tombol = request.getParameter("tombol"); opsi = request.getParameter("opsi"); nim = request.getParameter("nim"); semester = request.getParameter("semester"); kelas = request.getParameter("kelas");

(tombol==null) tombol=""; (nim==null) nim=""; (opsi==null) opsi=""; (semester==null) semester="1"; (kelas==null) kelas="A";

if (tombol.equals("Cetak")){ if (!cetakLaporan(opsi, nim, Integer.parseInt(semester), kelas, response)){ } else { processRequest(request, response); } }else { processRequest(request, response); }

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

page 6 of 7

Materi Pemrograman II (Pertemuan 10)

Universitas Pamulang

Referensi: 1. Jendrock, Eric, Ian Evans, Devika Gollapudi, Kim Haase, William Markito Oliveira, and Chinmayee Srivathsa, The Java EE 6Tutorial, 2012, Oracle 2. Heffelfinger, David R., Java EE 6 Development with NetBeans 7, 2011, Packt Publishing, Birmingham 3. Wijono, Sri Hartati, B. Herry Suharto dan Matius Soesilo Wijono, Pemrograman Java Servlet dan JSP dengan NetBeans, 2006, Andi, Yogyakarta, Oktober 2006. 4. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007 5. http://www.netbeans.com/ 6. http://oracle.com/

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

page 7 of 7

Você também pode gostar