Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.92 KB | None | 0 0
  1. package biodata;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9. import javafx.application.Application;
  10. import javafx.collections.FXCollections;
  11. import javafx.collections.ObservableList;
  12. import javafx.event.ActionEvent;
  13. import javafx.geometry.Insets;
  14. import javafx.geometry.Orientation;
  15. import javafx.geometry.Pos;
  16. import javafx.scene.Scene;
  17. import javafx.scene.control.Button;
  18. import javafx.scene.control.Label;
  19. import javafx.scene.control.SplitPane;
  20. import javafx.scene.control.TableColumn;
  21. import javafx.scene.control.TableView;
  22. import static javafx.scene.control.TableView.CONSTRAINED_RESIZE_POLICY;
  23. import javafx.scene.control.TextField;
  24. import javafx.scene.control.cell.PropertyValueFactory;
  25. import javafx.scene.input.KeyEvent;
  26. import javafx.scene.input.MouseEvent;
  27. import javafx.scene.layout.AnchorPane;
  28. import javafx.scene.layout.Background;
  29. import javafx.scene.layout.BackgroundFill;
  30. import javafx.scene.layout.Border;
  31. import javafx.scene.layout.BorderStroke;
  32. import javafx.scene.layout.BorderStrokeStyle;
  33. import javafx.scene.layout.BorderWidths;
  34. import javafx.scene.layout.CornerRadii;
  35. import javafx.scene.layout.GridPane;
  36. import javafx.scene.layout.HBox;
  37. import javafx.scene.layout.VBox;
  38. import javafx.scene.paint.Color;
  39. import javafx.scene.text.Font;
  40. import javafx.scene.text.FontWeight;
  41. import javafx.scene.text.Text;
  42. import javafx.stage.Stage;
  43. import simpledatabasefx.connectdb.DataBaseConnect;
  44. import simpledatabasefx.model.modelDatabase;
  45.  
  46. /**
  47.  *
  48.  * @author imanuel
  49.  */
  50.  
  51.  
  52. public class Biodata extends Application {
  53.     public TableView tblView;
  54.     private Text txtInfo;
  55.     private Label lblTitle,lblData,lblID,lblNAMA_BARANG,lblJUMLAH,lblHARGA,lblCari;
  56.     public TextField txtID,txtNAMA_BARANG,txtJUMLAH,txtHARGA,txtCARI;
  57.     public TableColumn tblColumn1,tblColumn2,tblColumn3,tblColumn4;
  58.     private SplitPane splitPaneH;
  59.     private VBox panevbox,panevbox2;
  60.     private AnchorPane pane;
  61.     private GridPane grid;
  62.     private HBox panehbox,searchbox;
  63.     private Button btnAdd,btnUpdate,btnDelete,btnClear,btnClose,btnRefresh;
  64.     modelDatabase modelDb;
  65.     ObservableList data = FXCollections.observableArrayList();
  66.    
  67.     public void initComponent(){
  68.       //========================================================================
  69.         lblData    = new Label("FORM DATA");
  70.         lblTitle   = new Label();
  71.         lblID     = new Label("ID");
  72.         lblNAMA_BARANG    = new Label("NAMA_BARANG");
  73.         lblJUMLAH = new Label("JUMLAH");
  74.         lblHARGA  = new Label("HARGA");
  75.         lblCari    = new Label("CARI DATA :");
  76.         txtInfo    = new Text("No data");
  77.         tblColumn1 = new TableColumn("ID");
  78.         tblColumn2 = new TableColumn("NAMA_BARANG");
  79.         tblColumn3 = new TableColumn("JUMLAH");
  80.         tblColumn4 = new TableColumn("HARGA");
  81.         txtID     = new TextField();
  82.         txtNAMA_BARANG    = new TextField();
  83.         txtJUMLAH = new TextField();
  84.         txtHARGA  = new TextField();
  85.         txtCARI    = new TextField();
  86.         splitPaneH = new SplitPane();
  87.         pane       = new AnchorPane();
  88.         panevbox   = new VBox();
  89.         panevbox2  = new VBox();
  90.         grid       = new GridPane();
  91.         panehbox   = new HBox(5);
  92.         searchbox  = new HBox(5);
  93.         tblView    = new TableView();
  94.         btnAdd     = new Button("ADD");
  95.         btnUpdate  = new Button("UPDATE");
  96.         btnDelete  = new Button("DELETE");
  97.         btnClear   = new Button("CLEAR");
  98.         btnClose   = new Button("CLOSE");
  99.         btnRefresh = new Button("REFRESH");
  100.       //========================================================================
  101.         tblColumn1.setCellValueFactory(new PropertyValueFactory("id"));
  102.         tblColumn2.setCellValueFactory(new PropertyValueFactory("nama_barang"));
  103.         tblColumn3.setCellValueFactory(new PropertyValueFactory("jumlah"));
  104.         tblColumn4.setCellValueFactory(new PropertyValueFactory("harga"));
  105.        
  106.         txtID.setPromptText("Masukkan ID Anda");
  107.         txtNAMA_BARANG.setPromptText("Masukkan Nama_barang Anda");
  108.         txtJUMLAH.setPromptText("Masukkan Jumlah Anda");
  109.         txtHARGA.setPromptText("Masukkan Harga Anda");
  110.         txtCARI.setPromptText("Masukkan data yang ingin dicari");
  111.        
  112.         lblCari.setPadding(new Insets(10));
  113.         lblCari.setFont(Font.font("Comic Sans MS", FontWeight.MEDIUM, 12));
  114.         lblCari.setAlignment(Pos.CENTER);
  115.         lblCari.setUnderline(true);
  116.        
  117.         lblData.setPadding(new Insets(10));
  118.         lblData.setFont(Font.font("Comic Sans MS", FontWeight.MEDIUM, 22));
  119.         lblData.setUnderline(true);
  120.         lblData.setAlignment(Pos.CENTER);
  121.        
  122.         lblTitle.setText("Database Stock Barang");
  123.         lblTitle.setUnderline(true);
  124.         lblTitle.setPadding(new Insets(10));
  125.         lblTitle.setFont(Font.font("Comic Sans MS", FontWeight.MEDIUM, 22));
  126.         lblTitle.setAlignment(Pos.CENTER);
  127.        
  128.         lblID.setPrefSize(100, 30);
  129.         lblNAMA_BARANG.setPrefSize(100, 30);
  130.         lblJUMLAH.setPrefSize(100, 30);
  131.         lblHARGA.setPrefSize(100, 30);
  132.        
  133.         txtID.setPrefSize(250, 30);
  134.         txtNAMA_BARANG.setPrefSize(250, 30);
  135.         txtJUMLAH.setPrefSize(250, 30);
  136.         txtHARGA.setPrefSize(250, 30);
  137.         txtCARI.setPrefSize(250, 30);
  138.        
  139.         tblView.setColumnResizePolicy(CONSTRAINED_RESIZE_POLICY);
  140.         tblView.setPlaceholder(txtInfo);
  141.         tblView.setPadding(new Insets(10));
  142.         tblView.getColumns().addAll(tblColumn1,tblColumn2,tblColumn3,tblColumn4);
  143.         tblView.setPrefHeight(250);
  144.         tblView.setBackground(new Background(
  145.                 new BackgroundFill(Color.LIGHTBLUE,new CornerRadii(15),Insets.EMPTY)));
  146.        
  147.         panehbox.setAlignment(Pos.CENTER);
  148.         panehbox.setPadding(new Insets(10));
  149.         panehbox.setLayoutX(23);
  150.         panehbox.setLayoutY(194);
  151.         panehbox.getChildren().addAll(btnAdd,btnUpdate,btnDelete,btnClear,btnClose);
  152.         panehbox.setBackground(new Background(new BackgroundFill(
  153.                 Color.DARKGRAY, new CornerRadii(10), Insets.EMPTY)));
  154.        
  155.         searchbox.setAlignment(Pos.CENTER_LEFT);
  156.         searchbox.setPadding(new Insets(5));
  157.         searchbox.getChildren().addAll(lblCari,txtCARI,btnRefresh);
  158.         searchbox.setBackground(new Background(new BackgroundFill(
  159.                 Color.DARKGRAY, new CornerRadii(10), Insets.EMPTY)));
  160.        
  161.         grid.setHgap(10);
  162.         grid.setVgap(10);
  163.         grid.setLayoutX(5);
  164.         grid.setLayoutY(5);
  165.         grid.setAlignment(Pos.CENTER);
  166.         grid.setPadding(new Insets(10));
  167.         grid.addRow(0, lblID,txtID);
  168.         grid.addRow(1, lblNAMA_BARANG,txtNAMA_BARANG);
  169.         grid.addRow(2, lblJUMLAH,txtJUMLAH);
  170.         grid.addRow(3, lblHARGA,txtHARGA);
  171.         grid.setGridLinesVisible(false);
  172.        
  173.         pane.setBorder(new Border(new BorderStroke(
  174.                 Color.WHITESMOKE,BorderStrokeStyle.DASHED,
  175.                 new CornerRadii(15),new BorderWidths(5),Insets.EMPTY)));
  176.         pane.setBackground(new Background(new BackgroundFill(
  177.                 Color.LIGHTGRAY, new CornerRadii(15),Insets.EMPTY)));
  178.         pane.getChildren().addAll(grid,panehbox);
  179.        
  180.         panevbox.getChildren().addAll(lblTitle,tblView,searchbox);
  181.         panevbox.setPadding(new  Insets(5));
  182.         panevbox.setSpacing(5);
  183.         panevbox.minWidthProperty().bind(splitPaneH.widthProperty().multiply(0.70));
  184.         panevbox.maxWidthProperty().bind(splitPaneH.widthProperty().multiply(0.70));
  185.        
  186.         panevbox2.getChildren().addAll(lblData,pane);
  187.         panevbox2.setPadding(new Insets(5));
  188.         panevbox2.setSpacing(5);
  189.        
  190.         splitPaneH.setOrientation(Orientation.HORIZONTAL);
  191.         splitPaneH.getItems().addAll(panevbox,panevbox2);
  192.         splitPaneH.setPadding(new Insets(2));
  193.         splitPaneH.setBackground(new Background(
  194.                    new BackgroundFill(Color.GRAY,CornerRadii.EMPTY,Insets.EMPTY)));
  195.         splitPaneH.setDividerPositions(0.5);
  196.     }
  197.     /**=======================================================================================
  198.      *                       UNTUK MENAMPUNG DATA DARI DATABASE
  199.      * =======================================================================================
  200.      **/
  201.    
  202.     /**
  203.     * @return
  204.     **/
  205.     private ObservableList loadData(){
  206.             ObservableList listData = FXCollections.observableArrayList();
  207.             try {
  208.             Connection c    = DataBaseConnect.tryConnect();
  209.             String sql1     = "select * from barang;";
  210.             ResultSet rs1   = c.createStatement().executeQuery(sql1);
  211.             while(rs1.next()){
  212.                 modelDb         = new modelDatabase(rs1.getString(1),rs1.getString(2),
  213.                                                     rs1.getString(3),rs1.getString(4));
  214.                 listData.add(modelDb);
  215.             }
  216.         } catch (SQLException ex) {
  217.             Logger.getLogger(DataBaseConnect.class.getName()).log(Level.SEVERE, null, ex);
  218.            
  219.         }
  220.             return listData;
  221.            
  222.     }
  223.    
  224.     private ObservableList searchByID(String n){
  225.         ObservableList listData = FXCollections.observableArrayList();
  226.         try {
  227.             Connection c = DataBaseConnect.tryConnect();
  228.             String sql2 = " select distinct * from mhs where id like '%"+n+"%';";
  229.             ResultSet rs2 = c.createStatement().executeQuery(sql2);
  230.             while(rs2.next()){
  231.                 modelDb         = new modelDatabase(rs2.getString(1),rs2.getString(2),
  232.                                                     rs2.getString(3),rs2.getString(4));
  233.                 listData.add(modelDb);
  234.             }
  235.         } catch (SQLException ex) {
  236.             Logger.getLogger(DataBaseConnect.class.getName()).log(Level.SEVERE, null, ex);
  237.         }
  238.         return listData;
  239.     }
  240.     //=======================================================================================
  241.    
  242.     /**======================================================================================
  243.      *                      UNTUK MELAKUKAN INSERT, DELETE DAN UPDATE
  244.      *              DIMANA DATA DIAMBIL DARI FORM KEMUDIAN DIKUMPULKAN DI MODEL
  245.      * ======================================================================================
  246.      **/
  247.     private void insert(modelDatabase m){
  248.         Connection c = DataBaseConnect.tryConnect();
  249.         PreparedStatement ps;
  250.         try {
  251.             String sql = "insert into mhs values (?,?,?,?);";
  252.             ps  = c.prepareStatement(sql);
  253.             ps.setString(1,m.getId());
  254.             ps.setString(2,m.getNama_barang());
  255.             ps.setString(3,m.getJumlah());
  256.             ps.setString(4,m.getHarga());
  257.             ps.execute();
  258.         } catch (SQLException ex) {
  259.             Logger.getLogger(DataBaseConnect.class.getName()).log(Level.SEVERE, null, ex);
  260.             System.out.println("Error");
  261.         }
  262.     }
  263.    
  264.     private void delete(modelDatabase m){
  265.         try {
  266.             Connection c = DataBaseConnect.tryConnect();
  267.             PreparedStatement ps;
  268.             String sql = "delete from mhs where id = ?;";
  269.             ps = c.prepareStatement(sql);
  270.             ps.setString(1, m.getId());
  271.             ps.execute();
  272.         } catch (SQLException ex) {
  273.             Logger.getLogger(DataBaseConnect.class.getName()).log(Level.SEVERE, null, ex);
  274.         }
  275.        
  276.     }
  277.    
  278.     private void update(modelDatabase m){
  279.         try {
  280.             Connection c = DataBaseConnect.tryConnect();
  281.             PreparedStatement ps;
  282.             String sql = "update mhs set nama_barang = ? ,jumlah = ? , harga = ? where id = ? ;";
  283.             ps = c.prepareStatement(sql);
  284.             ps.setString(1, m.getNama_barang());
  285.             ps.setString(2, m.getJumlah());
  286.             ps.setString(3, m.getHarga());
  287.             ps.setString(4, m.getId());
  288.             ps.execute();
  289.         } catch (SQLException ex) {
  290.             Logger.getLogger(DataBaseConnect.class.getName()).log(Level.SEVERE, null, ex);
  291.         }
  292.     }
  293.     //=======================================================================================
  294.    
  295.     /**======================================================================================
  296.      *                                   ACTIONEVENT  
  297.      * ======================================================================================
  298.      **/
  299.     private void selectData(){
  300.         modelDb = (modelDatabase) tblView.getSelectionModel().getSelectedItems().get(0);
  301.         txtID.setText(modelDb.getId());
  302.         txtNAMA_BARANG.setText(modelDb.getNama_barang());
  303.         txtJUMLAH.setText(modelDb.getJumlah());
  304.         txtHARGA.setText(modelDb.getHarga());
  305.         txtID.setDisable(true);
  306.     }
  307.    
  308.     private void deleteData(){
  309.         modelDb = new modelDatabase(txtID.getText(), "", "", "");
  310.         delete(modelDb);
  311.         clearData();
  312.         showData();
  313.     }
  314.    
  315.     private void updateData(){
  316.         modelDb = new modelDatabase(txtID.getText(),txtNAMA_BARANG.getText(),
  317.                                     txtJUMLAH.getText(),txtHARGA.getText());
  318.         update(modelDb);
  319.         clearData();
  320.         showData();
  321.     }
  322.    
  323.     private void searchbyID(){
  324.         data.clear(); // <- menghapus data pada penampung data
  325.         data = searchByID(txtCARI.getText().trim());
  326.         tblView.setItems(data); // <- menaruh data pada tabel agar bisa tampil
  327.         tblView.getSelectionModel().clearSelection(); // <- menghapus seleksi baris pada tabel
  328.     }
  329.    
  330.     private void refresh(){
  331.         showData();
  332.         clearData();
  333.         txtCARI.clear();
  334.     }
  335.    
  336.     private void showData(){
  337.         data.clear();
  338.         data = loadData();
  339.         tblView.setItems(data);
  340.         tblView.getSelectionModel().clearSelection();
  341.     }
  342.    
  343.     private void clearData(){
  344.         txtID.clear();
  345.         txtNAMA_BARANG.clear();
  346.         txtJUMLAH.clear();
  347.         txtHARGA.clear();
  348.         txtID.setDisable(false);
  349.         tblView.getSelectionModel().clearSelection();
  350.     }
  351.    
  352.     private void addData(){
  353.         // mengambil data dari form, kemudian disusun seperti array
  354.         modelDb = new modelDatabase(txtID.getText(),txtNAMA_BARANG.getText(),
  355.                                     txtJUMLAH.getText(),txtHARGA.getText());
  356.         insert(modelDb); //<- data dikirim ke SQL
  357.         showData();
  358.         clearData();
  359.     }
  360.   //====================================================================================    
  361.     @Override
  362.     public void start(Stage primaryStage) {
  363.         initComponent(); // <- VIEW
  364.         showData();     // <- MENAMPILKAN DATA
  365.         tblView.setOnMousePressed((MouseEvent event) -> {
  366.             selectData(); // <- EVENT BARIS KETIKA DIPILIH
  367.         });
  368.         btnAdd.setOnAction((ActionEvent e) -> {
  369.             addData(); // <- INSERT DATA
  370.         });
  371.         btnClear.setOnAction((ActionEvent e) -> {
  372.             clearData(); // <- CLEAR FIELD INPUT DATA
  373.         });
  374.         btnClose.setOnAction((ActionEvent e) -> {
  375.             primaryStage.close(); // <- CLOSE SCENE WINDOW
  376.         });
  377.         btnUpdate.setOnAction((ActionEvent e) -> {
  378.             updateData(); // <- UPDATE DATA
  379.         });
  380.         btnDelete.setOnAction((ActionEvent e) -> {
  381.             deleteData(); // <- DELETE DATA
  382.         });
  383.         btnRefresh.setOnAction((ActionEvent e) -> {
  384.             refresh(); // <- MENGEMBALIKAN TAMPILAN SEPERTI SEMULA
  385.         });
  386.         txtCARI.setOnKeyTyped((KeyEvent ke) -> {
  387.             searchbyID(); // <- SEARCH DATA BY ID
  388.         });
  389.         Scene scene = new Scene(splitPaneH, 1366, 768);
  390.         primaryStage.setTitle("APLIKASI SIMPLE DATABASE FX");
  391.         primaryStage.setScene(scene);
  392.         primaryStage.show();
  393.     }
  394.  
  395.    
  396.     public static void main(String[] args) {
  397.        
  398.         launch(args);
  399.        
  400.     }
  401.    
  402. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement