Pages

Kamis, 11 Juli 2013

Membuat Form User Aplikasi Minimarket - Java MySQL


     Pada postingan sebelumnya, saya membahas mengenai bagaimana cara membuat menu utama dari aplikasi minimarket. Kali ini kita akan fokus dengan pembuatan form user. Apa kegunaan dari form user ? form user ini berfungsi sebagai login dan untuk mengetahui siapa yang melakukan transaksi dalam aplikasi, apakah user ? atau administrator?. Oleh karena itu form ini dibuat untuk memecahkan hal tersebut. Bagaimana yang harus dilakukan? Simak lah panduan berikut :

1. Buatlah sebuah desain JFrame seperti dibawah ini :
Form user ini terdapat sebuah Tabbed Pane. Tab yang pertama adalah tambah user, tambah user ini bertujuan untuk mendata user atau administrator baru. Sehingga operator baru yang menjalankan aplikasi minimarket akan di eksekusi pada form ini.

Form User(Tambah User)

Form User (Reset Password)

2. Setelah anda membuatnya, langkah selanjutnya adalah deklarasikan sebuah variable untuk koneksi, ResulSet dan Statement.
koneksi koneksi;
ResultSet resultSet;
Statement statement;

3. Panggil koneksi tepat dibawah initComponents( ) :
koneksi = new koneksi();

4. Kemudian menampilkan tabel yang isinya diambil dari database dan ditampilkan pada form user. Yang akan di tampilkan pada form user adalah username, nama, alamat dan nomor telepon, dimana nomor telepon sebagai Primary Key. Scriptnya dapat dilihat sebagai berikut :
private void tampilanadministrator() {
        Object header[] = {"USERNAME", "NAMA", "ALAMAT", "NO TELEPON"};
        DefaultTableModel defaultTableModel = new DefaultTableModel(null, header);
        tabeladmin.setModel(defaultTableModel);

        //menghapus tabel sebelum menampilkan data
        int baris = tabeladmin.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTableModel.removeRow(i);
        }

        String sql = "select username, nama, alamat, no_telepon from user";
        try {
            statement = koneksi.con.createStatement();
            resultSet = statement.executeQuery(sql);

            while (resultSet.next()) {
                String kolom1 = resultSet.getString(1);
                String kolom2 = resultSet.getString(2);
                String kolom3 = resultSet.getString(3);
                String kolom4 = resultSet.getString(4);

                String kolom[] = {kolom1, kolom2, kolom3, kolom4};
                defaultTableModel.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

5. Kemudian letakkan  tampilanadministrator() dibawah initComponents( ) agar dapat langsung berjalan ketika form user di compile.

6. Buat sebuah private void insert () untuk melakukan insert data ke dalam database dan di tampilkan dalam tabel form user. Perlu diketahui dalam membuat insert data ini, harus benar-benar terlindungi agar password user tidak diketahui oleh user lain. Maka dari itu dibuat sebuah enkripsi data menggunakan MD5. MD5 berfungsi untuk melindungi password dengan merubahnya keladam bentuk huruf maupun angka secara random. Skripnya datap dilihat dibawah ini :
private void insert() {
        char[] passw = txtPassword.getPassword();
        String sandi = "";
        for (int i = 0; i < passw.length; i++) {
            sandi = sandi + passw[i];
        }
        int level;
        if (comboLevel.getSelectedItem().equals("Admin")) {
            level = 0;
        } else {
            level = 1;
        }
        try {
            String sql =
                    "insert into user values('" + txtUser.getText() + "'  ,md5('" + sandi + "'  )," + level + "  ,'" + txtNama.getText() + "'  ,'" + txtAlamat.getText() + "','" + txtTelpon.getText() + "')";
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "error pada insert : " + e.getMessage());
        }
    }

7. Buat private void reset () dan private void delete(). Reset digunakan untuk mengatur ulang password ulang apabila mengalami lupa password. Karena jika password lupa maka tidak dapat menjalankan sistem. Sedangkan delete untuk menghapus data user atau administrator ketika data tersebut tak digunakan. Berikut Source Code nya:
Reset :
private void reset() {
        try {
            String sql = "update user set password=md5('" + txtPassword2.getText() +
                    "') where username='" + txtUser2.getText() + "'";
            statement = koneksi.con.createStatement();
            statement.executeUpdate(sql);
            statement.close();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

Delete :
private void Hapusadministrator() {
        String query = "delete from user where no_telepon = '" + txtTelpon.getText() + "'";
        try {
            statement.executeUpdate(query);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

8. Jika selesai, langkah berikutnya, hanya memanggil script void tersebut kedalam action button. Caranya adalah double klik pada button, misalkan button insert atau add. Kemudian kita ketik insert(); agar dapat dijalankan ketika button di klik.

9. Coba jalankan program. dan kemudian lakukan insert, delete maupun reset password.  Jika berhasil maka akan muncul seperti gambar yang saya posting dibawah ini :
a. Saat program dijalankan, tabel user muncul :

Data  tampil pada tabel user

b. Ketika melakukan insert data :

Meingputkan data baru sebagai user

Data ditampilkan pada tabel user

c. Reset Password :

Reset password pada username yang di pilih

d. Delete user atau administrator :

Pilih data pada tabel

data terhapus sesuai nomor telepon sebagai id

6 komentar:

  1. char[]passw=txtPassword.getPassword();
    String sandi = "";
    for (int i = 0; i <passw.length; i++) {
    sandi = sandi +passw[i];

    char[] nya error tolong gan dibantu masih new bie pengen bisa

    BalasHapus
  2. sama dengan pertanyaan di atas gan pas di kodi
    ngan char []passw

    BalasHapus
  3. gan, boleh minta source programnya nggak? terus saya juga mau nanya, kalau mau update password gmana yah? seperti, saya mau update password berdasarkan nama user "ini". kira-kira gmana gan? kalau bisa buatin tutorialnya di blog agan. terimakasih

    BalasHapus
  4. koneksi koneksi;
    ResultSet resultSet;
    Statement statement;
    Koding yang ini di tempatin dimana ya gan?

    BalasHapus
  5. Gan masuk tekan tombol insert atau add nya tidak fungsi, padahal di kodingannya udah di ketik insert();

    BalasHapus
Tulis komentar disini!