Saturday, January 12, 2019

Belajar Java dengan Netbean - 8 (Select data, Edit, dan Delete )

Pada tahan pelajaran ke - 8, kita akan belajar menampilkan data dari database Sqllite, Edit dan delete.

Buat tampilan seperti dibawah ini :



Code : ( tambahkan event masing - masing componen dan class )
    Connection p_connect;
    Statement st; 
    ResultSet rs; 
    DefaultTableModel  model = new DefaultTableModel();
  
     private void btneditActionPerformed(java.awt.event.ActionEvent evt) {                                        
        p_update();
    }                                       

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        p_bersihkanText();
        p_tampil();
    }                                 

    private void txtkodeKeyTyped(java.awt.event.KeyEvent evt) {                                 
        char c = evt.getKeyChar();
        
        if (txtkode.getText().length() >= 10){
            evt.consume();
        }
        if (c == KeyEvent.VK_ENTER){
           txtnama.nextFocus();
       }
    }                                

    private void txtnamaKeyTyped(java.awt.event.KeyEvent evt) {                                 
        char c = evt.getKeyChar();
        
        if (txtnama.getText().length() >= 150){
            evt.consume();
        }
        if (c == KeyEvent.VK_ENTER){
           txtqty.nextFocus();
       }
    }                                

    private void txtqtyKeyTyped(java.awt.event.KeyEvent evt) {                                
        char c = evt.getKeyChar();
        
        if (txtkode.getText().length() >= 10 || !Character.isDigit(evt.getKeyChar())){
            evt.consume();
        }
        
        if (c == KeyEvent.VK_ENTER){
           txtqty.nextFocus();
       }
    }                               

    private void btncancelActionPerformed(java.awt.event.ActionEvent evt) {                                          
        p_bersihkanText();
    }                                         

    private void btngetActionPerformed(java.awt.event.ActionEvent evt) {                                       
        String kode;
        String nama;
        String qty;
        
        kode = tblbarang.getValueAt(tblbarang.getSelectedRow(), 0).toString();
        nama = tblbarang.getValueAt(tblbarang.getSelectedRow(), 1).toString();
        qty = tblbarang.getValueAt(tblbarang.getSelectedRow(), 2).toString();
        
        txtkode.setText(kode);
        txtnama.setText(nama);
        txtqty.setText(qty);
    }                                      

    private void btndeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        p_delete();
    }                                         

    private void p_bersihkanText(){
        txtkode.setText("");
        txtnama.setText("");
        txtqty.setText("");
    }
    
    @SuppressWarnings({"UnusedAssignment", "RedundantStringToString"})
    private void p_update(){
        String pesan = "";
        String sqlinsert = "";
        String kode = "";
        String nama = "";
        int qty = 0;
        
        kode = txtkode.getText().toString();
        nama = txtnama.getText().toString();
        qty = Integer.parseInt(txtqty.getText().toString());
            
        try{

            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:d://tokoku.db";
            p_connect = DriverManager.getConnection(url);
            st = p_connect.createStatement();
            
            sqlinsert = "update barang set nama = '" + nama + "', qty = " + qty + " where kode = '" + kode + "'";
            
            st.execute(sqlinsert);
            st.close();
            p_connect.close();
            
            JOptionPane.showMessageDialog(rootPane, "data tersimpan");
            p_bersihkanText();
            
        }catch(Exception e)  {
            pesan = " gagal koneksi ke database ";
        }
        
        p_tampil();
    }
    
    private void p_delete(){
        int p_jawab = 0;
        
        p_jawab = JOptionPane.showConfirmDialog(rootPane, "Anda yakin ingin menghapus data ini", "Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
        
        if ( p_jawab == 0){
            p_hapus();
        }
    }
    
    @SuppressWarnings("UnusedAssignment")
    private void p_hapus(){
        String sqldelete = "";        
        String kode = "";
        
        kode = tblbarang.getValueAt(tblbarang.getSelectedRow(), 0).toString();
            
        try{

            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:d://tokoku.db";
            p_connect = DriverManager.getConnection(url);
            st = p_connect.createStatement();
            
            sqldelete = "delete from barang where kode = '" + kode + "'";
            
            st.execute(sqldelete);
            st.close();
            p_connect.close();
//            
            JOptionPane.showMessageDialog(rootPane, "data terhapus");
            model.removeRow(tblbarang.getSelectedRow());

            
        }catch(Exception e)  {
        }
    }
    private void p_tampil(){
        String sql = "select * from barang";
        
            
        try{
            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:d://tokoku.db";
            p_connect = DriverManager.getConnection(url);
            st = p_connect.createStatement();

            rs = st.executeQuery(sql);
            ResultSetMetaData metaData = rs.getMetaData();

            
            // names of columns
            Vector columnNames = new Vector();
            int columnCount = metaData.getColumnCount();
            for (int column = 1; column <= columnCount; column++) {
                columnNames.add(metaData.getColumnName(column));
            }

            // data of the table
            Vector> data = new Vector>();
            while (rs.next()) {
                Vector vector = new Vector();
                for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                    vector.add(rs.getObject(columnIndex));
                }
                data.add(vector);
            }

            model = new DefaultTableModel(data, columnNames);
        
            
            tblbarang.setModel(model);
            
//            tblbarang.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            tblbarang.getColumnModel().getColumn(0).setPreferredWidth(100);
            tblbarang.getColumnModel().getColumn(1).setPreferredWidth(250);
            
            rs.close();
            st.close();
            p_connect.close();
            
            
        }catch(Exception e)  {
        }
        
    }

Hasil


untuk edit --> pilih barang nya , lalu klik Edit
  hasil setelah diubah

untuk melakukan penghapusan, pilih barang, lalu klik hapus
maka akan dihapus








Belajar Java dengan Netbean - 7 (Insert data )

Pada tahan pelajaran ke - 7, kita akan belajar menambahkan data ke database Sqllite dengan sintax insert.
pada tahap awal table : barang isinya kosong pada database 

pertama kita cek data dulu, supaya tahu nanti hasil dari program insert yang kita buat.

untuk awal data kosong

buka proyek netbean :
buat tampilan seperti ini :

dengan penamaan pada JTextfield :
kode : txtkode
nama : txtnama
qty    : txtqty
simpan : btnsimpan
cancel : btncancel ( ini berfungsi membersihkan data )

code :
    // tambahkan masing-masing Event pada kompnent

    private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {                                                 p_simpan();
    }                                         


    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        p_bersihkanText();
    }                                 

    private void txtkodeKeyTyped(java.awt.event.KeyEvent evt) {                                 
        char c = evt.getKeyChar();
        
        if (txtkode.getText().length() >= 10){
            evt.consume();
        }
        if (c == KeyEvent.VK_ENTER){
           txtnama.nextFocus();
       }
    }                                

    private void txtnamaKeyTyped(java.awt.event.KeyEvent evt) {                                 
        char c = evt.getKeyChar();
        
        if (txtnama.getText().length() >= 150){
            evt.consume();
        }
        if (c == KeyEvent.VK_ENTER){
           txtqty.nextFocus();
       }
    }                                

    private void txtqtyKeyTyped(java.awt.event.KeyEvent evt) {                                
        char c = evt.getKeyChar();
        
        if (txtkode.getText().length() >= 10 || !Character.isDigit(evt.getKeyChar())){
            evt.consume();
        }
        
        if (c == KeyEvent.VK_ENTER){
           txtqty.nextFocus();
       }
    }                               

    private void btncancelActionPerformed(java.awt.event.ActionEvent evt) {                                          
        p_bersihkanText();
    }                                         

    private void p_bersihkanText(){
        txtkode.setText("");
        txtnama.setText("");
        txtqty.setText("");
    }
    
    @SuppressWarnings({"UnusedAssignment", "RedundantStringToString"})
    private void p_simpan(){
        String pesan = "";
        String sqlinsert = "";
        String kode = "";
        String nama = "";
        int qty = 0;
        
        kode = txtkode.getText().toString();
        nama = txtnama.getText().toString();
        qty = Integer.parseInt(txtqty.getText().toString());
            
        try{

            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite:d://tokoku.db";
            p_connect = DriverManager.getConnection(url);
            st = p_connect.createStatement();
            
            sqlinsert = "insert into barang(kode, nama, qty) values ('" + kode + "', '" + nama + "', " + qty + ")";
            
            st.execute(sqlinsert);
            st.close();
            p_connect.close();
            
            JOptionPane.showMessageDialog(rootPane, "data tersimpan");
            p_bersihkanText();
            
        }catch(Exception e)  {
            pesan = " gagal koneksi ke database ";
        }
        
        lblConnect.setText(pesan);
    }


hasil program :


hasil data yang disimpan :







Belajar Java dengan Netbean - 6 ( Koneksi Database )

Pada tahan pelajaran ke - 6, kita akan belajar yang berkaitan dengan database.
Untuk tahap awal ada koneksi database

Sebelum memulai belajar koneksi database dengan java, ada baiknya mengenal database dulu secara singkat dan simple. pada kesempatan ini, saya menggunakan sqllite untuk pembelajarannya, yang mana nanti bisa disesuaikan dengan masing-masing database. untuk penggunaan pembuatan database, table, insert, delete, edit, dan select dipakai yang standard, sehingga semua database bisa menjalankan

untuk bisa membuat sqlite, gunakan tools SQLiteStudio baik yang portable maupun yang diinstall. silahkan download di internet, tinggal google search dengan key "SQLiteStudio", kalau yang install diinstalkan dulu, kalau yang portable, tinggal jalankan saja.

buka SQLiteStudio :
lalu kita buat database

pada tahap ini kita buat database baru dengan nama "tokoku.db", lalu klik ok
maka sekarang database sudah ada dengan nama tokoku
tahap selanjutnya ada kita buat table dengan nama : barang
    hasil table yang dibuat
 
    untuk tahap pembuatan database dan table cukup singkat, karena kita hanya mau mengakses database serta isi dari table, baik utk insert, update dan delete serta select, yang nanti akan digunakan untuk program java nya

Cara Koneksi database :
    untuk koneksi database mysql di perlukan Connector sesuai dengan database masing-masing
   yang nanti ditambahkan di library pada proyek yang dibuat

1. Koneksi database Mysql
          connecttor : mysql-connector-java-5.1.23-bin.jar

          code :
String url ="jdbc:mysql://localhost/tutorial";
  String user="root";
   String pass="";
     Class.forName("com.mysql.jdbc.Driver");
     con =DriverManager.getConnection(url,user,pass);
     stm = con.createStatement();


2. Koneksi database Sqlite
            connetor : sqlite-jdbc-3.7.2.jar

            code :
            Class.forName("org.sqlite.JDBC");
            String url = "jdbc:sqlite://" + p_ip + "//" + nama_database;
            p_connect = DriverManager.getConnection(url);
            st = p_connect.createStatement();

3. Koneksi database SQL Server
           connetor : sqljdbc4.jar

            code :
              String url = “jdbc: postgresql://localhost:5432/praktikumdbd”;
               Properties prop = new java.util.Properties(); // tidak mengimpor kelas prop.put(“user”,”NamaUser”);
               prop.put(“password”,”datapassword”);
               Connection koneksi = DriverManager.getConnection(url, prop);

4. Koneksi database Oracle
           connetor : ojdbc6.jar

            code :
            private static String driverName = "oracle.jdbc.driver.OracleDriver";  
            private static String jdbc = "jdbc:oracle:thin:";  
            private static String host = "@localhost:";  
            private static String port = "1521:";  
            private static String SID = "xe";   
            private static String database = "zTutorial";   
            private static String url = jdbc + host + port + SID;  
            private static String username = "HD_ZTUTORIAL";   
            private static String password = "admin";  
            Class.forName(driverName);  
            connect = DriverManager.getConnection(url, username, password); 


pada tahap belajar ini, kita hanya akan menggunakan Sqllite, kalau menggunakan database lain tinggal disesuaikan koneksi nya saja.

Pada kesempatan ini kita membuat program untuk konek ke database sqllite,
database : tokoku.db, ditaruh di D:
tambahkan connector sqllite, cara nya :


buat tampilan seperti dibawah ini :
code :


hasil






Friday, January 11, 2019

Belajar Java dengan Netbean - 5 ( Bermain warna )

Untuk Pelajaran ke 5, kita belajar untuk membuat perubahan warna pada JButton dan JLabel
saat pilih JComboBox ( ActionPerformed)  supaya tidak bosen . hehehe

buat tampilan seperti dibawah :




  buat code nya :
  1.  tulisan :
       



  2. background :
      

    


  hasil :
    

  1. Tulisan
       


  2. Background :
      

  

Catat :
Tahap selanjut-nya akan masuk dalam tahap database, karen mudah-mudahan dengan pelajaran pengenalan komponen , bisa menjadi dasar untuk menghubungkan ke database


Belajar Java dengan Netbean - 2 ( JButton dan Message )

Untuk Pelajaran ke 2, kita belajar GUI atau Swing dari java dengan netbean

buka netbean dan file ---> new proyek

maka akan seperti gambar dibawah :
lalu klik finish,

Isikan judul frame "Belajar Java"
lalu tambahkan JButton dengan nama Message,
disini kita akan menampilkan message belajar java dengan netbean saat diklik
tampilan seperti dibawah
klik kanan pada JButton, pilih Event --> Action --> ActionPerformed
maka akan ditampilkan event JButton utk mengisikan sintax, 
isikan sintax :
JOptionPane.showMessageDialog(rootPane, "belajar java dengan netbean");
lalu tekan F6, untuk menjalankan dan melihat hasilnya
Klik Message, maka akan ditampilkan 











Belajar Java dengan Netbean - 1

Pada pelajaran 1, kita belajar pengenalan java dengan netbean secara simple

Tampilan Netbean
\
lalu klik project seperti gambar dibawah:
lalu next
maka akan ditampilkan proyek yang akan dibuat

isikan sintax :
public static void main(String[] args) {
        // TODO code application logic here
        System.out.print("Selamat Datang pada dunia java dengan netbean");
    }

hasilnya seperti dibawah :
Tekan F6, maka akan ditampilkan








Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...