Modul
Modul
• Silahkan download library lib untuk kongiruasi laporan dan koneksi database, setelah itu
load library tersebut kedalam project aplikasi seperti cara dibawah ini :
1. Klik kanan pada Libraries project aplikasi seperti contoh
2. Kemudian load semua library pad folder lib,seperti contoh dibawah ini :
• Klik Menu Tools – Plugins – pilih bagian downloaded, Setelah itu klik tombol Add
Plugins.. Kemudian load semua library Ireport yang akan diinstal dinetbeans seperti contoh
dibawah ini :
• Silahkan buat kelas pada package yang sama (Klik Kanan – New – Java Class) Beri nama
dbCrud
• Tambahkan Library dibawah package project , seperti dibawah ini :
1. import java.sql.Connection;
2. import java.sql.DriverManager;
3. import java.sql.Driver;
4. import java.sql.SQLException;
5. import java.sql.Statement;
6. import java.sql.PreparedStatement;
7. import java.sql.ResultSet;
8. import javax.swing.JOptionPane;
9. import javax.swing.JTable;
10. import javax.swing.table.DefaultTableModel;
11. import javax.swing.table.TableColumn;
12. import java.io.File;
13. import net.sf.jasperreports.engine.JasperCompileManager;
14. import net.sf.jasperreports.engine.JasperFillManager;
15. import net.sf.jasperreports.engine.JasperPrint;
16. import net.sf.jasperreports.engine.JasperReport;
17. import net.sf.jasperreports.engine.design.JRDesignQuery;
18. import net.sf.jasperreports.engine.design.JasperDesign;
19. import net.sf.jasperreports.engine.xml.JRXmlLoader;
20. import net.sf.jasperreports.view.JasperViewer;
• Buat Variabel dan Field pada area global kelas dbCrud seperti dibawah ini
• Buat konstruktor kedua yang sifatnya overload, untuk cara pemanggilan kedua.Tambahkan
kode pada class dbCrdu seperti dibawah ini
• Buat method dengan nama duplikasiKey untuk mengetahui primary key yang sama saat
diinputkan, seperti dibawah ini :
• Buat method getFieldTabel, getIsiTabel dan getEditFieldValue untuk pengaturan field dan
isi field saat simpan dan ubah data ,seperti dibawah ini :
• Buat method dengan nama UbahDBAuto yang digunakan untuk mengubah data yang dapat
digunakan untuk semua jenis table
• Buat method dengan nama SimpanDBAuto yang digunakan untuk menyimpan data yang
dapat digunakan untuk semua jenis table
1. public void SimpanDBAuto(String NamaTabel, String[] FieldTablenya, String[]
Isitabelnya){
2.
3. try {
4. String SQL ="INSERT INTO "+NamaTabel+"
"+getFieldTabel(FieldTablenya)+" VALUES "+getIsiTabel(Isitabelnya);
5. Statement save =getKoneksi().createStatement();
6. save.executeUpdate(SQL);
7. save.close();
8.
9. System.out.println("Data Berhasil disimpan");
10. } catch (Exception e) {
11. System.err.println(e.toString());
12. }
13. }
• Buat method dengan nama HapusDBAuto yang digunakan untuk menghapus data yang
dapat digunakan untuk semua jenis table
• Buat method dengan nama JudulJTable yang digunakan untuk menambahkn judul pada
jTable yang digunakan seperti dibawah ini :
• Buat method dengan nama lebarJTabel yang digunakan untuk mengatur lebar posisi kolom
• Buat method function dengan nama isiTabel yang digunakan untuk menangkap data dari
tabel untuk dikonversi ke tipe array object
• Buatlah kode function jumlahRecord yang akan digunakan untuk mengetahui jumlah
record dari proses pencarian yang akan dilakukan dari masing-masing table yang
akan dicari, dibawah ini merupakan potongan kode mencari jumlah record.
1. /*
2. * To change this license header, choose License Headers in Project Properties.
3. * To change this template file, choose Tools | Templates
4. * and open the template in the editor.
5. */
6. package java2a;
7.
8. import java.sql.Connection;
9. import java.sql.DriverManager;
10. import java.sql.Driver;
11. import java.sql.SQLException;
12. import java.sql.Statement;
13. import java.sql.PreparedStatement;
14. import java.sql.ResultSet;
15. import javax.swing.JOptionPane;
16.
17. import javax.swing.JTable;
18. import javax.swing.table.DefaultTableModel;
19. import javax.swing.table.TableColumn;
20.
21. import java.io.File;
22. //Berfungsi mengambil file laporan yang dibuat dari IReport
23.
24. import net.sf.jasperreports.engine.JasperCompileManager;
25. import net.sf.jasperreports.engine.JasperFillManager;
26. import net.sf.jasperreports.engine.JasperPrint;
27. import net.sf.jasperreports.engine.JasperReport;
28. import net.sf.jasperreports.engine.design.JRDesignQuery;
29. import net.sf.jasperreports.engine.design.JasperDesign;
30. import net.sf.jasperreports.engine.xml.JRXmlLoader;
31. import net.sf.jasperreports.view.JasperViewer;
32. /*Semua library bagia jasperreport berfungsi untuk penampilan laporan file
33. .jrxml baik berupa compile, query pada laporan, preview laporan, dll*/
34.
35.
36.
37. /**
38. *
39. * @author 007ra
40. */
41. public class backend_java2A {
42.
43. private String jdbcUrl="jdbc:mysql://localhost:3306/dbfilm";
44. private String username="root";
45. private String password="";
46.
47. public backend_java2A(){}
48. // overload Constructor
49. public backend_java2A(String url,String username,String password){
50.
51. try {
52. Driver mysqldriver = new com.mysql.jdbc.Driver();
53. DriverManager.registerDriver(mysqldriver);
54. Connection koneksi =DriverManager.getConnection(url, username, password);
55. System.out.println("Berhasil dikoneksikan");
56.
57.
58. } catch (Exception e) {
59. }
60.
61. }
62.
63. public Connection getKoneksi() throws SQLException{
64. try {
65. Driver mysqldriver = new com.mysql.jdbc.Driver();
66. DriverManager.registerDriver(mysqldriver);
67. System.out.println("Berhasil dikoneksikan");
68. } catch (Exception e) {
69. System.err.println(e.toString());
70. }
71.
72. return DriverManager.getConnection(this.jdbcUrl,this.username,this.password);
73. }
74.
75. public boolean duplikasiKey(String tabel, String primarykey, String isi){
76. boolean hasil=false;
77. try {
78. Statement sts = getKoneksi().createStatement();
79. ResultSet rs = sts.executeQuery("SELECT * FROM "+tabel+" WHERE
"+primarykey+" = '"+isi+"'");
80. hasil=rs.next(); // posisi perubahan isi FALSE atau TRUE
81. } catch (Exception e) {
82. System.err.println(e.toString());
83. }
84.
85. return hasil;
86. }
87.
88. public String getFieldTabel(String[] Fieldnya){
89. String hasil ="";
90. int deteksi=Fieldnya.length-1;
91. try {
92.
93. for (int i = 0; i < Fieldnya.length; i++) {
94. if (i==deteksi){
95.
96. hasil=hasil+Fieldnya[i];
97. }else{
98. hasil=hasil+Fieldnya[i]+",";
99. }
100. }
101. } catch (Exception e) {
102. System.out.println(e.toString());
103. }
104.
105. return "("+ hasil+")";
106. }
107.
108. public String getIsiTabel(String[] Isinya){
109. String hasil="";
110. int deteksi=Isinya.length-1;
111. try {
112. for (int i = 0; i < Isinya.length; i++) {
113. if (i==deteksi){
114. hasil=hasil+"'"+Isinya[i]+"'";
115. }else{
116. hasil=hasil+"'"+Isinya[i]+"',";
117. }
118. }
119. } catch (Exception e) {
120. System.out.println(e.toString());
121. }
122.
123. return "("+hasil+")";
124. }
125.
126.
127. public String getEditFieldValue(String[] Field, String[] ValueField){
128. String hasil = "";
129. int deteksi =Field.length-1;
130. try {
131. for (int i = 0; i < Field.length; i++) {
132. if (i==deteksi){
133. hasil = hasil +Field[i]+"='"+ValueField[i]+"'";
134. }else{
135. hasil = hasil +Field[i]+"='"+ValueField[i]+"', ";
136. }
137. }
138. } catch (Exception e) {
139. System.out.println(e.toString());
140. }
141.
142. return hasil;
143.
144. }
145.
146. public void UbahDBAuto(String NamaTabel, String NamaPrimary, String
IsiPrimary, String[]Field, String[] ValueField){
147. try {
148. String SQLEdit = "UPDATE "+NamaTabel+" SET
"+getEditFieldValue(Field, ValueField)+" WHERE "+NamaPrimary+"='"+IsiPrimary+"'";
149. Statement perintah = getKoneksi().createStatement();
150. perintah.executeUpdate(SQLEdit);
151. perintah.close();
152. getKoneksi().close();
153. System.out.println("Data Berhasil diubah");
154. } catch (Exception e) {
155. System.out.println(e.toString());
156. }
157. }
158.
159.
160.
161. public void SimpanDBAuto(String NamaTabel, String[] FieldTablenya, String[]
Isitabelnya){
162.
163. try {
164. String SQL ="INSERT INTO "+NamaTabel+"
"+getFieldTabel(FieldTablenya)+" VALUES "+getIsiTabel(Isitabelnya);
165. Statement save =getKoneksi().createStatement();
166. save.executeUpdate(SQL);
167. save.close();
168.
169. System.out.println("Data Berhasil disimpan");
170. } catch (Exception e) {
171. System.err.println(e.toString());
172. }
173. }
174.
175. public void HapusDBAuto(String NamaTabel, String Primarynya, String
IsiPrimary){
176. try {
177. String SQLHapus ="DELETE FROM "+NamaTabel+" WHERE
"+Primarynya+"='"+IsiPrimary+"'";
178. Statement perintah = getKoneksi().createStatement();
179. perintah.executeUpdate(SQLHapus);
180. perintah.close();
181. getKoneksi().close();
182. System.out.println("Data Berhasil dihapus");
183. } catch (Exception e) {
184. System.out.println(e.toString());
185. }
186.
187. }
188.
189.
190. public void JudulJtable(JTable JTabelnya, String[] Judulnya){
191. DefaultTableModel modelnya = new DefaultTableModel();
192. try {
193. JTabelnya.setModel(modelnya);
194. for (int i = 0; i < Judulnya.length; i++) {
195. modelnya.addColumn(Judulnya[i]);
196. }
197. } catch (Exception e) {
198. System.out.println(e.toString());
199. }
200. }
201.
202. public void LebarJtable(JTable JTabelnya, int[] Lebarnya){
203.
204. TableColumn kolom = new TableColumn();
205. try {
206. JTabelnya.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
207. for (int i = 0; i < Lebarnya.length; i++) {
208. kolom = JTabelnya.getColumnModel().getColumn(i);
209. kolom.setPreferredWidth(Lebarnya[i]);
210. }
211.
212. } catch (Exception e) {
213. System.out.println(e.toString());
214. }
215. }
216.
217.
218. public Object[][] isiTabel(String SQL, int jumlah){
219.
220. Object[][] data=null;
221. try {
222.
223. Statement st = getKoneksi().createStatement();
224. ResultSet rs = st.executeQuery(SQL);
225. rs.last();
226. int baris=rs.getRow();
227. rs.beforeFirst();
228. int j=0;
229. data = new Object[baris][jumlah];
230. while (rs.next()) {
231. for (int i = 0; i < jumlah; i++)
232. {
233. data[j][i]=rs.getString(i+1);
234. }
235. j++;
236. }
237. } catch (Exception e) {
238. JOptionPane.showMessageDialog(null,e.toString());
239. }
240. return data;
241. }
242.
243. public void tampilTabel(String Judul[],String SQL, JTable Tabel){
244. try {
245. String title[]=Judul;
246. int jum =title.length;
247. Tabel.setModel(new DefaultTableModel(isiTabel(SQL,jum), title));
248. } catch (Exception e) {
249. JOptionPane.showMessageDialog(null,e.toString());
250. }
251.
252. }
253.
254. public int jumlahRecord(String SQL){
255. int hasil=0;
256. int i=0;
257. try {
258. Statement st=getKoneksi().createStatement();
259. ResultSet rs = st.executeQuery(SQL);
260. while (rs.next())
261. {
262. i++;
263. }
264. hasil=i;
265. } catch (Exception e) {
266. JOptionPane.showMessageDialog(null,e.toString());
267.
268. }
269. return hasil;
270. }
271.
272.
273. public void tampilLaporan(String laporanFile, String SQL){
274. try {
275. File file = new File(laporanFile);
276. JasperDesign jasDes = JRXmlLoader.load(file);
277.
278. JRDesignQuery sqlQuery = new JRDesignQuery();
279. sqlQuery.setText(SQL);
280. jasDes.setQuery(sqlQuery);
281.
282. JasperReport JR = JasperCompileManager.compileReport(jasDes);
283. JasperPrint JP = JasperFillManager.fillReport(JR,null,getKoneksi());
284. JasperViewer.viewReport(JP);
285. } catch (Exception e) {
286. JOptionPane.showMessageDialog(null,e.toString());
287.
288. }
289. }
290.
291.
292.
293. }
294.