Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1

Pada tutorial java swing kali ini, akan dijelaskan bagaimana implementasi MVC (Model View Controller) pada Java dengan database Microsoft Access 2016. JDBC driver menggunakan UCanAccess tanpa harus membuat JDBC Connection pada Windows terlebih dahulu.

Tutorial kali ini diuji coba menggunakan:

  • Netbeans 8.2
  • JDK 1.8
  • Microsoft Access 2016
  • Windows 10 64bit
  • UCanAccess 3.0.3.1

Tahapan Implementasi MVC dengan database Ms. Access 2016 :

  1. Membuat Database menggunakan Microsoft Access 2016
  2. Membuat Project Menggunakan Netbeans 8.2 serta membuat View Menggunakan Java Swing
  3. Membuat Koneksi database Ms. Access 2016 menggunakan Library UCanAccess
  4. Membuat  Model untuk Tabel Mahasiswa dan Jurusan
  5. Membuat Controller untuk Tabel Mahasiswa dan Jurusan
  6. Membuat Event atau Action setiap Button
  7. Membuat Laporan

1. Membuat Database Menggunakan Microsoft Access 2016

Buatlah sebuah database dengan nama akademik.accdb yang terdiri dari dua tabel yaitu tabel mahasiswa dan tabel jurusan serta satu query dengan nama view_mahasiswa. Struktur dari tabel tersebut, terlihat seperti gambar berikut:

Cara membuat database menggunakan Microsoft Access 2016 dapat dilihat melalui video tutorial berikut:

[embedyt] https://www.youtube.com/watch?v=GziNaUH2tII[/embedyt]

2. Membuat Project menggunakan Netbeans 8.2 serta Membuat View menggunakan Java Swing

Cara membuat project menggunakan Netbeans 8.2 serta cara membuat View menggunakan Swing dapat dilihat pada Video Tutorial berikut:

[embedyt] https://www.youtube.com/watch?v=edBTwR4_nF4[/embedyt]

3. Membuat Koneksi Database Ms. Access 2017 menggunakan Library UCanAccess

Untuk membuat class koneksi, pastikan Library UCanAccess sudah ditambahkan kedalam project kita. Jika belum, download Library UCanAccess disini, selanjutnya tambahkan ke dalam project dengan cara klik kanan pada Libraies yang ada pada project seperti gambar berikut:

implementasi MVC 

Klik Create untuk membuat Library Baru, muncul seperti gambar berikut:

Beri nama Library kemudian klik OK

Klik Add JAR/Folder, kemudain cari folder Lib yang ada pada Folder UCanAccess 3.0.1 yang sudah didownload pada tahapan sebelumnya.

Klik Add JAR/Folder untuk menambahkan Library. Untuk mengakhiri, klik OK ==> Add Library. Pastikan Library UCanAccess sudah dimasukan ke project sehingga terlihat seperti gambar berikut:

Berikutnya, Copy database akademik.accdb yang sudah dibuat sebelumnya sesuai panduan pada Video Tutorial diatas. Copy kedalam folder  project Netbeans sehingga struktur file project terlihat seperti gambar berikut:

Tahapan selanjutnya adalah membuat Class DBConnection.java yang digunakan sebagai class untuk melakukan koneksi. Letakkan file DBConnection.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 * Nama File DBConnection.java
 * package Koneksi;
 *
 */
package Koneksi;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
 
/**
 *
 * @author jagungodak
 */
public class DBConnection {
 
    private Connection conn = null;
    private static DBConnection dbConn = null;
    static String DB_URL = null;
    boolean koneksi = false, db = false;
    Statement statement;
 
    public DBConnection() {
        //Ubah sesuai nama dan lokasi database
        DB_URL = "jdbc:ucanaccess://akademik.accdb";
        if (conn == null) {
            try {
                conn = DriverManager.getConnection(DB_URL);
                Statement s = conn.createStatement();
                ResultSet rs = s.executeQuery("SELECT * FROM mahasiswa ");
                koneksi = true;
            } catch (SQLException ex) {
                if (ex.getErrorCode() == 1049) {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + " : Database  Tidak ditemukan");
                    koneksi = false;
                } else if (ex.getErrorCode() == 0) {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + " Server Tidak Aktif \n Akses Ke Server Gagal"
                            + "\nSilahkan Atur Ulang Konfigurasi Server");
                    koneksi = false;
                } else if (ex.getErrorCode() == 1044) {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + " Username Salah "
                            + "\nSilahkan Atur Ulang Konfigurasi Server");
                    koneksi = false;
                } else if (ex.getErrorCode() == 1045) {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + " Password Salah "
                            + "\nSilahkan Atur Ulang Konfigurasi Server");
                    koneksi = false;
                } else if (ex.getErrorCode() == 1146) {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + ": Database Belum Terisi (Kosong)\n silahkan Import Database");
                    koneksi = false;
                    db = true;
                } else {
                    JOptionPane.showMessageDialog(null, ex.getErrorCode() + ": " + ex.getMessage());
                    koneksi = false;
                }
 
            }
 
        }
 
    }
 
    public static DBConnection getInstance() {
        DBConnection conn = null;
        if (dbConn == null) {
            dbConn = new DBConnection();
            conn = dbConn;
        } else {
            conn = dbConn;
        }
        return conn;
    }
 
    public Connection getKoneksi() {
        return conn;
    }
}

4. Membuat Model untuk Tabel Mahasiswa dan Jurusan

Di dalam database akademik.accdb terdapat dua buah tabel yaitu tabel mahasiswa dan tabel jurusan serta satu buah query dengan nama view_mahasiswa. Ketiga point tersebut harus dibuatkan model untuk mempermudah kita dalam mengontrol data dalam tabel tersebut.

Buat Class baru dengan nama MahasiswaModel.java, dengan script sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*
 * Nama File MahasiswaModel.java
 * Package Model
 *
 */
package Model;
 
import java.util.Date;
 
/**
 *
 * @author jagungodak
 */
public class MahasiswaModel {
 
    private String nim, nama, alamat, tempat_lahir, jenis_kelamin, agama, kd_jurusan;
    private Date tgl_lahir;
 
    public String getNim() {
        return nim;
    }
 
    public void setNim(String nim) {
        this.nim = nim;
    }
 
    public String getNama() {
        return nama;
    }
 
    public void setNama(String nama) {
        this.nama = nama;
    }
 
    public String getAlamat() {
        return alamat;
    }
 
    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
 
    public String getTempat_lahir() {
        return tempat_lahir;
    }
 
    public void setTempat_lahir(String tempat_lahir) {
        this.tempat_lahir = tempat_lahir;
    }
 
    public String getJenis_kelamin() {
        return jenis_kelamin;
    }
 
    public void setJenis_kelamin(String jenis_kelamin) {
        this.jenis_kelamin = jenis_kelamin;
    }
 
    public String getAgama() {
        return agama;
    }
 
    public void setAgama(String agama) {
        this.agama = agama;
    }
 
    public String getKd_jurusan() {
        return kd_jurusan;
    }
 
    public void setKd_jurusan(String kd_jurusan) {
        this.kd_jurusan = kd_jurusan;
    }
 
    public Date getTgl_lahir() {
        return tgl_lahir;
    }
 
    public void setTgl_lahir(Date tgl_lahir) {
        this.tgl_lahir = tgl_lahir;
    }
 
}

Buat juga Class baru dengan nama JurusanModel.java, dengan script sebagai berikut:

/*
 * Nama File JurusanModel.java
 * Package Model
 *
 */
package Model;
 
/**
 *
 * @author jagungodak
 */
public class JurusanModel {
 
    private String kd_jurusan, nama_jurusan, jenjang;
 
    public String getKd_jurusan() {
        return kd_jurusan;
    }
 
    public void setKd_jurusan(String kd_jurusan) {
        this.kd_jurusan = kd_jurusan;
    }
 
    public String getNama_jurusan() {
        return nama_jurusan;
    }
 
    public void setNama_jurusan(String nama_jurusan) {
        this.nama_jurusan = nama_jurusan;
    }
 
    public String getJenjang() {
        return jenjang;
    }
 
    public void setJenjang(String jenjang) {
        this.jenjang = jenjang;
    }
 
}

Buat juga Class baru dengan nama ViewMahasiswaModel.java, dengan script sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
 * Nama File ViewMahasiswaModel.java
 * package Model;
 */
package Model;
 
import java.util.Date;
 
/**
 *
 * @author jagungodak
 */
public class ViewMahasiswaModel {
 
    private String nim, nama, alamat, tempat_lahir, jenis_kelamin, agama, kd_jurusan;
    private String nama_jurusan, jenjang;
    private Date tgl_lahir;
 
    public String getNim() {
        return nim;
    }
 
    public void setNim(String nim) {
        this.nim = nim;
    }
 
    public String getNama() {
        return nama;
    }
 
    public void setNama(String nama) {
        this.nama = nama;
    }
 
    public String getAlamat() {
        return alamat;
    }
 
    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
 
    public String getTempat_lahir() {
        return tempat_lahir;
    }
 
    public void setTempat_lahir(String tempat_lahir) {
        this.tempat_lahir = tempat_lahir;
    }
 
    public String getJenis_kelamin() {
        return jenis_kelamin;
    }
 
    public void setJenis_kelamin(String jenis_kelamin) {
        this.jenis_kelamin = jenis_kelamin;
    }
 
    public String getAgama() {
        return agama;
    }
 
    public void setAgama(String agama) {
        this.agama = agama;
    }
 
    public String getKd_jurusan() {
        return kd_jurusan;
    }
 
    public void setKd_jurusan(String kd_jurusan) {
        this.kd_jurusan = kd_jurusan;
    }
 
    public String getNama_jurusan() {
        return nama_jurusan;
    }
 
    public void setNama_jurusan(String nama_jurusan) {
        this.nama_jurusan = nama_jurusan;
    }
 
    public String getJenjang() {
        return jenjang;
    }
 
    public void setJenjang(String jenjang) {
        this.jenjang = jenjang;
    }
 
    public Date getTgl_lahir() {
        return tgl_lahir;
    }
 
    public void setTgl_lahir(Date tgl_lahir) {
        this.tgl_lahir = tgl_lahir;
    }
 
}

Berikutnya buat  class untuk Tabel Model View data mahasiswa dengan nama ViewMahasiswaTableModel.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;
 
import java.text.SimpleDateFormat;
import java.util.List;
import javax.swing.table.AbstractTableModel;
 
/**
 *
 * @author jagungodak
 */
public class ViewMahasiswaTableModel extends AbstractTableModel {
 
    List<ViewMahasiswaModel> data;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 
    public ViewMahasiswaTableModel(List<ViewMahasiswaModel> data) {
        this.data = data;
    }
 
    @Override
    public int getRowCount() {
        return data.size();
    }
 
    @Override
    public int getColumnCount() {
        return 9;
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return data.get(rowIndex).getNim();
            case 1:
                return data.get(rowIndex).getNama();
            case 2:
                return data.get(rowIndex).getAlamat();
            case 3:
                return data.get(rowIndex).getTempat_lahir() + ", "
                        + sdf.format(data.get(rowIndex).getTgl_lahir());
            case 4:
                return data.get(rowIndex).getJenis_kelamin();
            case 5:
                return data.get(rowIndex).getAgama();
            case 6:
                return data.get(rowIndex).getKd_jurusan();
            case 7:
                return data.get(rowIndex).getNama_jurusan();
            case 8:
                return data.get(rowIndex).getJenjang();
            default:
                return null;
        }
    }
 
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return "NIM";
            case 1:
                return "NAMA";
            case 2:
                return "ALAMAT";
            case 3:
                return "TTL";
            case 4:
                return "JK";
            case 5:
                return "AGAMA";
            case 6:
                return "KD JURUSAN";
            case 7:
                return "JURUSAN";
            case 8:
                return "JENJANG";
            default:
                return null;
        }
    }
 
}

Buat juga untuk Jurusan dengan nama JurusanTableModel.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;
 
import java.util.List;
import javax.swing.table.AbstractTableModel;
 
/**
 *
 * @author jagungodak
 */
public class JurusanTableModel extends AbstractTableModel {
 
    List<JurusanModel> data;
 
    public JurusanTableModel(List<JurusanModel> data) {
        this.data = data;
    }
 
    @Override
    public int getRowCount() {
        return data.size();
    }
 
    @Override
    public int getColumnCount() {
        return 3;
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return data.get(rowIndex).getKd_jurusan();
            case 1:
                return data.get(rowIndex).getNama_jurusan();
            case 2:
                return data.get(rowIndex).getJenjang();
            default:
                return null;
        }
    }
 
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return "KODE";
            case 1:
                return "NAMA";
            case 2:
                return "JENJANG";
            default:
                return null;
        }
    }
 
}

Tahapan selanjutnya adalah Membuat Controller. Baca selengkapnya di Tutorial Java Swing Implementasi MVC dengan Database Ms. Access 2016 Part 2

Related Post

Membuat Koneksi MySQL menggunakan JDBC Driver pada... Pada tutorial kali ini, menjelaskan tentang bagaimana membuat koneksi MySQL menggunakan JDBC Driver pada Java. Sebelum melanjutkan ke tahapan berikutn...
Aplikasi Rumah Makan / Restaurant (MSIDRumahMakan ... Aplikasi Rumah Makan / Restaurant (MSIDRumahMakan v1.0) merupakan aplikasi/perangkat lunak yang digunakan untuk keperluan administrasi Rumah Makan, Ba...
Tutorial Java Swing Implementasi MVC Dengan Databa... Pada tutorial sebelumnya tentang Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1 sudah dijelaskan 4 tahap dari 7 tahap imp...
Membuat Laporan Menggunakan IReport 5.5.0 dengan D... Pada tutorial sebelumnya tentang: Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1 Tutorial Java Swing Implementasi MVC D...
Cara Install IReport Plugin untuk Netbeans Saat kita membangun sebuah sistem berupa aplikasi desktop menggunakan Java tentu membuat report atau laporan adalah hal yang wajib. Membuat laporan pa...
Java 8: Penggunaan Date Time dan Calender pada Jav... Pada tuturial kali ini, menjelaskan penggunaan Date Time pada Java yang menggunakan API java.until.Date dan java.until.Calender. Sebagai seorang progr...
Java : Membuat Laporan Menggunakan IReport 5.5.0 Hal yang paling vital dalam membuat sistem informasi adalah pembuatan laporan. Membuat laporan merupakan hal yang paling melelahkan apa lagi terdiri d...
Menampilkan Informasi Kapasitas Hardisk pada Java Untuk menampilkan informasi kapasitas hardisk pada java menggunakan class java.io.File. Pada java 1.6 keatas terdapat method getTotalSpace(), getUsabl...
Manipulasi File pada Java Untuk melakukan manipulasi File pada Java menggunakan class java.io.File mulai dari membuat file, menghapus file, cek permision sebuah file, cek meta ...
Menggunakan Thread pada Java c. Sebuah object dari class java.lang.Thread merupakan representasi dari sebuah thread. Baca juga Membandingkan tanggal pada java Terdapat dua l...

2 tanggapan untuk “Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 1

  1. Ping-balik: Membuat Laporan Menggunakan IReport 5.5.0 dengan Databas eMs. Access 2016 - Jagungodak

  2. Ping-balik: Tutorial Java Swing Implementasi MVC Dengan Database Ms. Access 2016 Part 2 - Jagungodak

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

5 − 4 =