Escolar Documentos
Profissional Documentos
Cultura Documentos
Universitas Pamulang
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
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
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
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");
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
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
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(); } }
(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
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