Screenshoot Program

17
SCREENSHOOT PROGRAM 1. Tampilan Login 2. Tampilan Menu Utama

description

tutorial program

Transcript of Screenshoot Program

SCREENSHOOT PROGRAM

1. Tampilan Login

2. Tampilan Menu Utama

3. Tampilan Data Pelanggan

4. Tampilan Data Teknisi

5. Tampilan Data Laptop

6. Tampilan Data Transaksi

7. Tampilan Cari Data Teknisi

8. Tampilan Peripheral

9. Tampilan Laporan

10. Tampilan Laporan Image

11. Tampilan Keluar

SCRIPT1. Login

Script Penjelasanimport javax.swing.UIManager;import com.mysql.jdbc.Statement;import java.awt.Graphics2D;import java.awt.Image;import java.awt.RenderingHints;import java.sql.ResultSet;import java.sql.SQLException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.net.URL;import javax.imageio.ImageIO;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.filechooser.FileNameExtensionFilter;import java.sql.Connection;import java.sql.DriverManager;import java.util.HashMap;import java.util.Map;import java.util.logging.Level;import java.util.logging.Logger;import net.sf.jasperreports.engine.JRException;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.util.JRClassLoader;import net.sf.jasperreports.engine.xml.JRXmlLoader;import net.sf.jasperreports.view.JasperViewer;

Untuk memasukan perintah sesuai script yang digunakan.

setLocationRelativeTo(null); Untuk menampilkan taks bar ditengah layar.

try{ Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); stt=con.createStatement(); }catch (Exception ex){ }

Untuk mengkoneksikan ke database.

private void cariUser() { try{ String sql ="select * from login where user_id ='"+jTextField1.getText()+"' and password='"+String.valueOf(jPasswordField1.getPasswo

User yang dapat digunakan untuk login hanya yang sudah diinputkan dalam database saja, jika tidak maka akan keluar pesan kesalahan.

rd())+"'"; ResultSet res=stt.executeQuery(sql); if(res.next()) {jmenu2 r=new jmenu2(); r.setVisible(true); this.dispose(); } else { JOptionPane.showMessageDialog(null,"Login Error !!"); } }catch (Exception e){ JOptionPane.showMessageDialog(null,"Kesalahan dalam input data !!"); } }

2. Jmenu2

Koneksi koneksi = new Koneksi(); JasperReport jasperReport; JasperDesign jasperDesign; JasperPrint jasperPrint;

Map<String, Object> param = new HashMap<String, Object>();

Sebagai public class yang dapat dikenali oleh script dibawahnya dan masih satu lembar kerja.

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { datatransaksi a = new datatransaksi();a.setVisible(true);

Menampilkan kotak dialog baru sesuai perintah yang dituju.

try { File file = new File("src/laporan/datatransaksi.jrxml"); jasperDesign = JRXmlLoader.load(file); param.clear(); jasperReport = JasperCompileManager.compileReport(jasperDesign); jasperPrint = JasperFillManager.fillReport(jasperReport, param, koneksi.getKoneksi()); JasperViewer.viewReport(jasperPrint, false); } catch (Exception e) { e.printStackTrace(); }

Menampilkan hasil cetakan jesper report sesuai nama dan letak data tersebut disimpan.

String ObjButtons[] = {"Yes","No"}; int pilihan = JOptionPane.showOptionDialog(null,"Apakah Anda yakin ingin keluar ?","Message",JOptionPane.DEFAULT_OPTION,JOptionPane.QUESTION_MESSAGE,null,ObjButtons,ObjButtons[1]); if(pilihan == 0){ System.exit(0); }

Perintah jika ingin keluar dari program.Maka akan muncul pertanyaan “Apakan Anda yakin ingin keluar?” jika ditekan yes maka akan menutup tampilan menu dan jika no maka akan teteap berada di tampilan menu

3. Data Teknisi, Data Pelanggan, Data Laptop script yang digunakan sama hanya berbeda dalam penamaan masing-masing database.

String[] data={"ID_TEKNISI","NAMA_TEKNISI","ALAMAT","NO_HP"}; table =new DefaultTableModel(data,0){

@Override public boolean isCellEditable(int row, int column) { return false; }

}; jTable1.setModel(table); tampil(); }

Untuk memberi nama kolom, dan menampilkan perintah tampil.

try { Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); koneksi.createStatement().executeUpdate("insert into datateknisi values('"+jTextField1.getText()+"','"+jTextField2.getText()+"','"+jTextField3.getText()+"','"+jTextField4.getText()+"')"); JOptionPane.showMessageDialog(rootPane, "data teknisi berhasil disimpan"); tampil(); } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, "database eror"); } }

Perintah pada BUTTON SIMPAN,dan data yang diinputkan akan masuk ke database dengan perintah insert into. Jika database tidak sesuai maka akan muncul eror.

try { Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); koneksi.createStatement().executeUpdate("update datateknisi set nama_teknisi= '"+jTextField2.getText()+"',alamat ='"+jTextField3.getText()+"', no_hp= '"+jTextField4.getText()+"' where id_teknisi='"+jTextField1.getText()+"'"); JOptionPane.showMessageDialog(rootPane, "data teknisi berhasil diganti"); tampil(); } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, "database eror"); } }

Perintah pada BUTTON GANTI ,dan pada database data yang diinputkan akan otomatis terganti . Script yang digunakan untuk ganti yaitu “update”. Jika database tidak sesuai maka akan muncul eror.

try { Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); koneksi.createStatement().executeUpdate("delete from datateknisi where

Perintah pada BUTTON HAPUS ,dan pada database data yang diinputkan akan otomatis terhapus. Jika database tidak sesuai maka akan muncul eror.

id_teknisi='"+jTextField1.getText()+"'");

tampil(); } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, "database eror"); }tampil(); Perintah pada BUTTON BATAL,ini

hanya untuk menampilkan data yang telah diinputkan sebelumnya tanpa ada tambahan data.

int i=jTable1.getSelectedRow(); if (i>-2){ jTextField1.setText(table.getValueAt(i,0).toString()); jTextField2.setText(table.getValueAt(i,1).toString()); jTextField3.setText(table.getValueAt(i,2).toString()); jTextField4.setText(table.getValueAt(i,3).toString()); }

Script ini digunakan jika kita mengarahakan kursor ke salah satu baris tabel tersebut maka pada setiap jTextField akan muncul teks yang telah kita inputkan tadi dan hasil di tabel tidak bisa diedit manual di tabel.

try { File file = new File("src/laporan/datateknisi.jrxml"); jasperDesign = JRXmlLoader.load(file); param.clear(); jasperReport = JasperCompileManager.compileReport(jasperDesign); jasperPrint = JasperFillManager.fillReport(jasperReport, param, koneksi.getKoneksi()); JasperViewer.viewReport(jasperPrint, false); } catch (Exception e) { e.printStackTrace(); }

Perintah pada BUTTON CETAK, ini hanya untuk menampilkan data yang telah diinputkan dalam bentuk pdf. Menampilkan hasil cetakan jesper report sesuai nama dan letak data tersebut disimpan.

try{ int row=jTable1.getRowCount(); for (int i =0; i<row;i++){ table.removeRow(0); } Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); ResultSet dat=koneksi.createStatement().executeQuery("select * from datateknisi"); while(dat.next()){ String[] data={dat.getString(1),dat.getString(2),dat.getString(3),dat.getString(4)}; table.addRow(data); jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText(""); } } catch (SQLException ex){ JOptionPane.showMessageDialog(rootPane,

Script ini digunakan untuk method tampil();

disini perintah penambahan baris di tabel setiap kita mengimputkan data “for (int i =0; i<row;i++)”.

Dan dengan perintah select maka kita akan menampilkan data yang sesuai di tabel database kita.

jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText(""); Dan setelah kita menginputkan di masing masing Jteksfield dan menekan salah satu button baik simpan,batal,hapus,ganti maka tulisan yang berada di dalam jtextfield tersebut otomatis hilang.

"database eror"); } }

4. Data Transaksi

public static BufferedImage loadImage(String ref) {BufferedImage bimg = null;try {bimg = ImageIO.read(new File(ref));} catch (Exception e) {e.printStackTrace();}return bimg;} public static BufferedImage resize(BufferedImage img, int newW, int newH) { int w = img.getWidth();int h = img.getHeight();BufferedImage dimg = dimg = new BufferedImage(newW, newH,img.getType());Graphics2D g = dimg.createGraphics();g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);g.dispose();return dimg; }

Sebagai public class tentang pembacaan image dan pengaturan ukuran image dan diubah ke format ukuran yang baru yang dapat dikenali oleh script dibawahnya dan masih satu lembar kerja.

try { Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); ResultSet dat= koneksi.createStatement().executeQuery("select * from datapelanggan where id_pelanggan="+jTextField2.getText()); String ada="tidak"; while (dat.next()){ jTextField3.setText(dat.getString("nama")); ada="ya";}if(ada=="tidak"){JOptionPane.showMessageDialog(null,"data pelanggan tidak ada");}} catch (SQLException ex){System.err.println("SQLException:"+ex.getMessage());}

Script BUTTON CARI IIni untuk proses pencarian data di dalam data pelanggan dengan kita menginputkan id_pelanggan klik cari maka nama_pelanggan akan secara otomaatis muncul. Dan jika nomer id pelanggan tidak terdata maka akan muncul pesan eror.

Untuk script BUTTON CARI II dan III sama scriptnya yang berbeda hanya penamaan database da nisi struktur database yang digunakan.

try{ Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); koneksi.createStatement().executeUpdate("insert into datatransaksi values('"+jTextField1.getText()+"','"+jTextField2.getText()+"','"+jTextField3.getText()

Script BUTTON SIMPANUntuk script nya sama pada tombol penyimpanan di Data Pelanggan dll yang membedakan hanya pada penyimpanan gambar.

+"','"+jTextField4.getText()+"','"+jTextField5.getText()+"','"+jTextField6.getText()+"','"+jTextField7.getText()+"','"+jTextField14.getText()+"','"+jTextField8.getText()+"','"+jTextField9.getText()+"','"+jTextField10.getText()+"','"+jTextField11.getText()+"','"+jTextField12.getText()+"','"+jTextField13.getText()+"')"); JOptionPane.showMessageDialog(rootPane, "data transaksi berhasil disimpan"); tampil(); } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, "database eror"); } // gambar disimpann di folder JFileChooser chooser = new JFileChooser(); chooser.setSelectedFile(new File( lblStatus.getText())); // int returnVal = chooser.showOpenDialog(txtfile.getText()); File file = chooser.getSelectedFile(); //System.out.println("You chose to open this file: " + file.getName()); BufferedImage image; try { image = ImageIO.read(file); ImageIO.write(image, "jpg",new File("src/image" + jTextField14.getText())); } catch (IOException ex) { // String msg = "Data Tersimpan!"; JOptionPane.showMessageDialog(null, msg); } catch(Exception e) {

// gambar disimpan di folder di script ini berisi pemilihan file gambar yang akan kita gunakan,kemudian gambar yang akan dipilih di ubah ukuran imagenya dan secara otomatis gambar akan tersimpan di folder yang kita inginkan yaitu src/image

JFileChooser chooser = new JFileChooser(); chooser.setSelectedFile(new File( lblStatus.getText()));File file = chooser.getSelectedFile();BufferedImage image; try { image = ImageIO.read(file); ImageIO.write(image, "jpg",new File("src/image/" + jTextField1.getText())); } catch (IOException ex) { }

JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG, GIF, and PNG Images", "jpg", "gif", "png"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); lblStatus.setText(file.getAbsolutePath());jTextField14.setText(file.getName());

BufferedImage loadImg = loadImage(file.getAbsolutePath()); ImageIcon imageIcon= new ImageIcon(resize(loadImg,jPanel1.getWidth(), jPanel1.getHeight()));Jphoto.setIcon(imageIcon); }

SCRIPT BUTTON BROWSE

Disini ditentukan hanya gambar berextensi JPG,GIF,PNG yang terdeteksi saat melakukan browse dan selanjutnya saat pemilihan gambar maka secara otomatis di label status akan muncul alamat url gambar yang kita pilih tadi dan Jpanel untuk pembatas agar gambar muncul didalamkotak saja sedangkan di dalam Jpoto maka gambar sudah diset menjadi icon.

UNTUK SCRIPT BATAL. HAPUS, GANTI SAMA DENGAN SCRIPT SEBELUMNYA HANYA BEDA PENAMAAN DATABASENYA SAJA.

int harga_jual = Integer.parseInt(jTextField10.getText()); int jumlah_beli = Integer.parseInt(jTextField12.getText()); int total_pembelian = harga_jual * jumlah_beli; //Integer to String String str_total_pembelian = Integer.toString(total_pembelian); jTextField13.setText(str_total_pembelian);

SCRIPT BUTTON HITUNGBerisi rumus perhitungan perkalian antara harga jual * harga beli dan hasil perkalian akan muncul secara otomatis di dalam Jtektfield13

5. Cari Data Transaksi

int row=jTable1.getRowCount(); for (int i =0; i<row;i++){ table.removeRow(0); } try{ Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/ujian","root",""); ResultSet dat=koneksi.createStatement().executeQuery("select * from datatransaksi where id_transaksi like '%"+jTextField1.getText()+"%' or id_pelanggan like '%"+jTextField1.getText()+"%'"); while(dat.next()){ String[] data={dat.getString(1),dat.getString(2),dat.getString(4),dat.getString(6),dat.getString(14)}; table.addRow(data); } } catch (SQLException ex) { JOptionPane.showMessageDialog(rootPane, "database eror"); }

Script BUTTON CARI Ini untuk proses pencarian data di dalam data transaksi dengan kita menginputkan id_transaksi atau id_pelanggan klik cari maka"ID_TRANSAKSI","ID_PELANGGAN","ID_LAPTOP","ID_TEKNISI","TOTAL_BAYAR" akan secara otomaatis muncul. Dan jika nomer id_transaksi tidak terdata maka akan muncul pesan eror.