Selasa, 07 Desember 2010

Program Penjualan dengan Java dan MySQL (Bag.2)

Tulisan ini menyambung tulisan sebelumnya dengan judul yang sama. Kali ini adalah pembuatan form login. Ketika program pertama kali dijalankan maka form ini yang pertama kali akan tampil untuk validasi user siapa saja yang berhak mengakses program utama.

  • Buka Netbeans&project yang dulu sudah dibuat, tambahkan package dan beri nama 'gui'. Package ini untuk menampung class yang menampilkan GUI.
  • Tambahkan JDialog pada package GUI dan beri nama class tersebut dengan 'login', maka secara otomatis Netbeans akan me-generate sebuah JDialog. Rubah variabel name masing-masing komponen dan beri nama txtUser, txtPass, cmdOk, cmdCance, dan mess.

  • Buka bagian tab Source View ketik code di bawah ini:

package gui;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.sql.*;
import javax.swing.ImageIcon;
import javax.swing.UIManager;
import database.database;

/**
 * form login
 * @author Thuba
 */
public class login extends javax.swing.JDialog {
    database db=new database();
    private Statement stmt;
    private ResultSet rs;
    private String dataUser,dataPass;
    boolean pro=true;

    /** Creates new form login */
    public login(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        db.koneksiDBMS();
        initComponents();
        this.setLocationRelativeTo(this);
        AddListener();
    }

    //method AddListener pd objek
    private void AddListener(){
        txtUser.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            txtUserkeyPressed(e);
        }
    });

        txtPass.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            txtPasskeyPressed(e);
        }
    });
    }

    /**
     * method jika txtUser dienter
     * @param e
     */
    private void txtUserkeyPressed(KeyEvent e){
        int i=e.getKeyCode();
                if(i==10){
                    txtPass.requestFocus();
            }
     }

    /**
     * method jika txtPass dienter
     * @param e
     */
    private void txtPasskeyPressed(KeyEvent e){
        int i=e.getKeyCode();
                if(i==10){
                    cek();
            }
     }

@SuppressWarnings("static-access")
    //method cek u/validasi user,password dan ststus
    private void cek(){
        String user=txtUser.getText();
        String pass=txtPass.getText();
        String status="user";
        String status1="admin";
        try{
            String sql="select * from user";
            Statement ps=db.con.createStatement();
            rs=ps.executeQuery(sql);
            while(rs.next()){
                String u=rs.getString(1);
                //jika username=user di DB
                if(user.equals(u)){
                    String sql2="select * from user where user='"+u+"'";
                    ps=db.con.createStatement();
                    rs=ps.executeQuery(sql2);
                    while(rs.next()){
                        String pas=rs.getString(2);
                        String stat=rs.getString(3);
                        //jika password=password di DB dimana user=username yg diinput
                        if(pass.equals(pas)){
                            if(stat.equals("user")){
                            this.dispose();
                           JOptionPane.showMessageDialog(null,"Anda login sebagai user biasa");
                        } else if(stat.equals("admin")){
                            this.dispose();
                            JOptionPane.showMessageDialog(null, "Anda login sebagai Admin & berhak       mengakses semua program utama");
                            }
                   } else {
                        mess.setFont(new java.awt.Font("Courier New", 1, 11));
                        mess.setText("User or Password Invalid!");
                        mess.setForeground(new java.awt.Color(255, 51, 102));
                        txtUser.requestFocus();
                   }
                 }
              } else {
                    mess.setFont(new java.awt.Font("Courier New", 1, 11));
                    mess.setText("User or Password Invalid!");
                    mess.setForeground(new java.awt.Color(255, 51, 102));
                    txtUser.requestFocus();
                }
            }
        }catch(SQLException ex){}
    }


  • Klik kanan pada cmdOk-->event-->Action-->actionPerformed, ketikan method cek() yang sudah dibuat

private void cmdOkActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        cek();
    }


  • Klik kanan pada cmdCancel-->event-->Action-->actionPerformed, ketikan method 'System.exit(0)'.

private void cmdCancelActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        System.exit(0);
    }

  • Klik kanan pada project-->Clean and Build, kemudian jalankan program dan login dengan user dan password sesuai yang ada di basis data 



Bersambung.........

    Sabtu, 04 Desember 2010

    Program Penjualan Dengan Java dan MySQL

    Setelah sekian lama gak nulis di blog, kali ini saya ingin menulis tentang Pemrograman Java yang khusus bagi pemula seperti saya sendiri. Tulisan ini akan mencoba mengetengahkan pembuatan program penjualan sederhana dengan Java. Langsung saja, uraian pembuatan program dengan IDE Netbeans dan basis data MySQL. Pastikan Java, Netbeans dan MySQL sudah diinstall dan konfigurasi dengan benar. Agar program Java yang kita buat dapat terkoneksi dengan MySQL, lakukan setting mysql-connector (cari dengan bantuan Prof. Google), setelah berhasil didownload, copy-paste file mysql-connector-xx-xx.jar (xx-xx adalah versi dari mysql-connector yang sudah anda download) ke dalam folder ext yang terdapat di folder Java yang sudah diinstall. Misalnya untuk Windows XP di C:\Program Files\Java\jre6\lib\ext
    Untuk Linux Ubuntu di $ home/jdk1.6.xx/jre/lib/ext (sesuaikan dengan tempat java diinstall di komputer anda.

    Sebelum ke langkah pembuatan program, kita buat dulu database di MySQL dengan nama Toko. Buat tabel user di database Toko dengan field seperti di bawah ini:
      CREATE TABLE `user` ( `user` varchar(20) NOT NULL, `password` varchar(20) NOT NULL,
      `stat` varchar(15) NOT NULL, PRIMARY KEY  (`user`))
    ;

    Kemudian isi tabel tersebut
      INSERT INTO `user` VALUES ('root', 'root', 'admin');
      INSERT INTO `user` VALUES ('thuba', 'p3g3linux', 'user');

    Tabel user di atas sebagai test validasi saat user pertama kali menjalankan program, yaitu login.

    Sekarang adalah langkah pembuatan programnya:
    • Buka Netbeans Anda, buat project baru dengan klik File-->New Project, beri nama project terserah Anda (penulis menamainya Penjualan) dan simpan di lokasi yang Anda kehendaki. Hilangkan centang di Create Main Class
    • Setelah project dibuat, klik kanan pada project -->New-->Java Package-->beri nama pada package 'database'. package ini untuk menampung class yang berhubungan dengan koneksi ke basis data.
    • Klik kanan pada package database-->New-->Java Class kemudian beri nama class dengan db. Maka akan terbentuk file dengan nama db.java. Ketikkan kode di bawah ini di dalam class db.
    package database;


    import java.sql.*;
    public class db {
    private String url = "jdbc:mysql:";
        private String jdbcDriver="com.mysql.jdbc.Driver";
        /**
         * nama database server
         */
        String servername="localhost";
        /**
         * nomor port database server
         */
        String port="3306";
        /**
         * nama database
         */
        String dbname="Toko";
        /**
         * username untuk login ke database (sesuaikan dengan root user di database anda)
         */
        String username = "root";
        /**
         * password untuk login ke database (sesuaikan dg root password di database anda)
         */
        String password = "root";
       /**
         * variabel koneksi
         */
        public Connection con=null;
       
        /**
         * loading jdbc driver
         * @return true jika loading driver berhasil
         *         dan false untuk sebaliknya
         */
        private boolean loadDriver(){
            try {
                Class.forName(jdbcDriver);
                return true;
            } catch (Exception e) {
                System.out.println
                        ("Gagal me-load JDBC/ODBC driver.");
                return false;
            }
        }
    public boolean koneksiDBMS (){
            loadDriver();
            try {
                Connection conn = DriverManager.getConnection
                      (url + "//" +servername +":"+port+ "/" +
                      dbname + "?user=" + username+ "&" +
                      "password=" + password);
                con=conn;
                return true;
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }

    }
    Bersambung.......

    Senin, 22 November 2010

    Gagal upgrade Ubuntu 9.04 ke Ubuntu 9.10 Karmic Koala


    Salam ketemu lagi, kali ini saya ingin menulis pengalaman saya ketika menggunakan Ubuntu 9.04 Jaunty dan melakukan upgrade ke Ubuntu 9.10 Karnic Koala.
    Ceritanya begini:
    Saat saya upgrade ubuntu 9.04 ke ubuntu 9.10 Karmic Koala dengan cara online (dengan koneksi internet), setelah semua file berhasil didownload dan proses instalasi yang lumayan lama, tiba-tiba komputer mengalami mati atau restart sendiri. Setelah booting, kemudian tampil menu Grub dan saya memilih Ubuntu. nah, di sini masalah mulai muncul yaitu saya tidak bisa masuk ke X window, jadi saat proses loading terus menerus dan tidak bisa masuk ke tampilan login dan muncul pesan:

    One or more of the mounts listed in /etc/fstab cannot yet be mounted:
    (ESC for recovery shell)
    /:waiting for /dev/disk/by-uuid/1913bf63-c394-4b2e-8d1d-a9a2bb059af4
    /tmp:waiting for(null)
    swap:waiting for UUID=1e04a1af-dcbb-4a59-9738-b21fcd6326f2

    begitu saya tekan ESC bisa masuk terminal/console. Tapi saat saya jalankan "startx"  tetap tidak bisa masuk X Window. Disini sepertinya GDM mengalami masalah.


    Setelah cari-cari solusi lewat artikel-artikel di internet, akhirnya Ubuntu 9.10 Karmic Koala sembuh dari sakitnya dan membuat saya jatuh hati.

    Berikut langkah-langkah yang bisa Anda jalankan jika anda mengalami hal yang sama:

    Saat booting, jika masuk terminal/console (ESC to recovery shell):

    • ketik "blkid /dev/sdx" ('x' disini partisi tempat linux di install), jangan lupa catat UUID-nya (misal: UUID=xxxxxx...)
    • ketik "sudo mount -o rw,remount /dev/disk/by-uuid/xxxxx" (x disini UUID yg udah dicatet)
    • ketik "sudo update-grub"
    • ketik "sudo dpkg --configure -a"

    Jika berhasil dan tidak mengalami masalah, ikuti permintaan Ubuntu yang ditampilkan. Setelah selesai dan tidak mengalami masalah, lakukan reboot komputer.

    Semoga sedikit membantu buat Anda mengalami masalah seperti saya.


    Salam
    ---------------------------------------------------------