BLANTERORBITv102

    Cara Membuat Session Di Java Dengan Setter dan Getter

    Sabtu, 19 Maret 2016
    Seperti permintaan salah satu dari rekan Java-Sc melalui pesan Fans Page, maka tutorial ini saya coba selesaikan secepatnya. Sebenarnya cara ini bukan dibilang session, tetapi hanya menyimpan data menggunakan setter dan getter. Dimana data login akan disimpan dan akan ditampilkan kembali ketika membuka frame baru. Perhatikan gambar dari contoh yang telah saya buat dibawah ini.
    Membuat-Session-Di-Java-Dengan-Setter-dan-Getter
    Gambar 1
    Dalam tutorial ini , teman-teman tidak harus mengikuti semirip apa yang saya buat. Tetapi hanya cukup mengerti alur dari program yang sudah saya berikan pada tutorial.

    Pertama : buatlah sebuah database, dalam contoh saya membuat database java-session dengan 2 tabel yaitu user_log dan profile. 
    Berikut adalah tabel profile :
    CREATE TABLE IF NOT EXISTS `profile` (
      `no` int(11) NOT NULL AUTO_INCREMENT,
      `id_log` varchar(30) NOT NULL,
      `nama` varchar(255) NOT NULL,
      `jk` varchar(14) NOT NULL,
      `web` varchar(255) NOT NULL,
      `keterangan` text NOT NULL,
      PRIMARY KEY (`no`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    Berikut adalah tabel user_log :
    CREATE TABLE IF NOT EXISTS `user_log` (
      `no` int(11) NOT NULL AUTO_INCREMENT,<
      `id_login` varchar(30) NOT NULL,
      `password` varchar(255) NOT NULL,
      `level` varchar(15) NOT NULL,
      PRIMARY KEY (`no`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    Isi masing-masing dari tabel lebih dari 2 data , namun pada tiap tabel jumlah data diwajibkan sama agar lebih terlihat perubahannya ketika program di jalankan. Berikut query untuk menambah data pada database di masing-masing tabel.
    Berikut untuk tabel user_log :
    INSERT INTO `user_log` (`no`, `id_login`, `password`, `level`) VALUES
    (1, 'JSC-01', 'admin', 'admin'),
    (2, 'JSC-02', 'biasa', 'pegawai');
    Berikut untuk tabel profile :
    INSERT INTO `profile` (`no`, `id_log`, `nama`, `jk`, `web`, `keterangan`) VALUES
    (1, 'JSC-01', 'Hady Eka Saputra', 'Laki-laki', 'java-sc.blogspot.com', 'Lorem ipusm java-sc.blogspot.com menjelaskan mengirim id login'),
    (2, 'JSC-02', 'Maretha Framudytha', 'Perempuan', 'marethaframudytha.blogspot.com', 'Tutorial masih punya java-sc.blogspot.com');

    Kedua : setelah database siap , maka desain interface login dan interface informasi, sebagai contoh interface kurang lebih seperti gambar dibawah ini. Sebelum interface di buat tentunya anda harus membuat 2 buah JFrame baru terlebih dahulu. Berilah nama JFrame satu dengan "login" dan JFrame kedua dengan "informasi".
    Membuat-Session-Di-Java-Dengan-Setter-dan-Getter-2
    Gambar 2
    Membuat-Session-Di-Java-Dengan-Setter-dan-Getter-3
    Gambar 3
    Sebelumnya pada saat pembuatan project baru kita menemukan sebuah main project , atau satu class java. Ini sangant penting, anda harus merubah atau anda dapat menghapus file java tersebut dari project anda saat ini. Jikalau anda merubahnya , anda dapat merubah menjadi java class koneksi.

    Ketiga : buat sebuah java class koneksi ke dalam database , dalam hal ini saya telah membuat dengan nama koneksi.java. Sebelum melakukan pengkodean, terlebih dahulu anda tambah sebual library untuk koneksi database ke MySql. Tutorial ini dapat anda peroleh pada video tutorial : Membuat Aplikasi CRUD Sederhana . Setelah penambahan library barulah kita ketahap pengkodean untuk koneksi. Silahkan perhatikan dan salain kode program dibawah :
    /**
     * Tutorial Membuat Session Pada Java Programming
     * @author Java Developer
     * java-sc.blogspot.com
     */
    package javasession;
    import com.mysql.jdbc.Connection;
    import java.sql.DriverManager;
    import javax.swing.JOptionPane;
    public class koneksi {
        Connection conn = null;
        public static Connection koneksi(){
            String driver = "com.mysql.jdbc.Driver";
            String host = "jdbc:mysql://localhost/java-session";
            String user = "root";
            String password = "";       
            try {
                Class.forName(driver);
                Connection conn = (Connection) DriverManager.getConnection(host,user,password);
                return conn;
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
            return null;
        }
    }
    
    Keterangan : Pada baris 14 tepat java-session adalah nama database yang ada saat ini, apabila anda menggunakan nama database lain cukup ubah sesui dengan yang yang database yang anda buat.

    Keempat : buatlah java class baru dan berinama session atau lain sesuai dengan apa yang di inginkan. Pada java class ini berisi fungsi setter getter, silahkan perhatikan kode program di bawah.
    /**
     * Tutorial Membuat Session Pada Java Programming
     * @author Java Developer
     * java-sc.blogspot.com
     */
    package javasession;
    public class session {
        private static String id_log;
        private static String level;
        public static String get_Id_Log(){
            return id_log;
        }
        public static void set_Id_Log(String id_log){
            session.id_log = id_log;
        }
        public static String get_Level(){
            return level;
        }
        public static void set_Level(String level){
            session.level = level;
        }
    }
    Dalam kode program diatas menjelaskan data yang akan di simpan adalah id_log (id login / identitas user login) dan level dari user tersebut.

    Kelima : Kembali ke bagian form login , dan buka tab source kemudian impor library berikut tepat dibawah nama package dari program.
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import javax.swing.JOptionPane;
    Lebih lanjut buat konsturktor tiap masing-masing library tepat dibawah
    public class login extends javax.swing.JFrame {
    menjadi
    public class login extends javax.swing.JFrame {
        Connection conn = null;
        ResultSet rs = null;
        PreparedStatement pst = null;
    Tahap terakhir adalah memanggil method koneksi dari class koneksi , tepat setelah initComponent() , sehingga :
       public login() {
            initComponents();
            conn = koneksi.koneksi();
        }
    Langkah selanjutnya yaitu memberikan action prefome ketika tombol login di klik. Kembali pada bagian interface / desain , klik kanan pada button login pilih Events > Action > actionPerform. Pada bagian ini hapus terlebih dahulu komentar yang ada, dan ganti dengan kode program dibawah.
    String id_login = null , level = null;
            String query = "SELECT * FROM user_log WHERE id_login=? AND password=? ";
            try {
                pst = conn.prepareStatement(query);
                pst.setString(1, txtLogin.getText());
                pst.setString(2, txtPassword.getText());
                rs = pst.executeQuery();
                while (rs.next()){
                    id_login = rs.getString("id_login");
                    level = rs.getString("level");
                }
                rs.last();
                if (rs.getRow() == 1){
                    session.set_Id_Log(id_login);
                    session.set_Level(level);
                    JOptionPane.showMessageDialog(null, "Berhasil login dengan id "+txtLogin.getText());
                    Informasi inf = new Informasi();
                    inf.setVisible(true);
                    this.dispose();
                }
                else {
                    JOptionPane.showMessageDialog(null, "Username dan Password tidak cocok ");
                    txtLogin.setText("");
                    txtPassword.setText("");
                }
            }
            catch (Exception e ){
                JOptionPane.showMessageDialog(null, "Gagal pada database : "+e);
                System.out.println(e);
                txtLogin.setText("");
                txtPassword.setText("");
            }
    Bagian login telah selesai , lalu terakhir adalah pada bagian frame untuk menampilkan informasi login.

    Keenam : buka JFrame informasi , pada frame ini data akan ditampilkan sesuai id yang telah masuk. Buka tab source atau bagian pengkodean , lalu lakukan hal yang sama seperti form login tadi dengan menambah library dan membuat kontruktor di masing-masing library. Sehingga menjadi seperti berikut ini kurang lebihnya :
    package javasession;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import javax.swing.JOptionPane;
    public class Informasi extends javax.swing.JFrame {
        Connection conn = null;
        ResultSet rs = null;
        PreparedStatement pst = null;
       
        String id_log = session.get_Id_Log();
        String level = session.get_Level();
        /**
         * Creates new form Informasi
         */
        public Informasi() {
    Langkah terakhir adalah memanggil atau menselect data pada database berdasarakan id_log. Pada bagian public informasi () ketikan kode program dibawah ini :
        public Informasi() {
            initComponents();
            conn = koneksi.koneksi();
            String query = "SELECT * FROM profile WHERE id_log=?";
            try {
                pst = conn.prepareStatement(query);
                pst.setString(1, id_log);
                rs = pst.executeQuery();
                while (rs.next()){
                    infoId.setText(id_log);
                    infoLevel.setText(level);
                    infoNama.setText(rs.getString("nama"));
                    infoJK.setText(rs.getString("jk"));
                    infoWeb.setText(rs.getString("web"));
                    infoKet.setText(rs.getString("keterangan"));
                }
            }
            catch (Exception e){
                JOptionPane.showMessageDialog(null, e);
            }
        }
    Selebihnya adalah tombol close dan login , berikut adalah kode program untuk close dan login. Tombol close untuk komponent :
    System.exit(0);
    dan tombol logout adalah
    login back = new login();
            back.setVisible(true);
            this.dispose();


    Silahkan anda runing program yang anda buat, apabila masih mengalami error kode program silahkan berdiskusi melalui kolom komentar blog. Sebelumnya saya mohon maaf karena saya tidak begitu menjelaskan kode program secara detail atau perbaris. Sebagai rasa maaf saya anda dapat mendownload kode program ini dari link berikut :  Download

    Terimakasih sudah berkesempatan untuk menimba ilmu dari blog JSC, semoga ilmu yang di share dapat bermanfaat. Jika ada pertanyaan mengenai ilmu yang terkait ataupun tidak, mari kita berdiskusi di dalam kolom komentar ini.

    Keep Learning and Keep Sharing