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 Ms. Access menggunakan UCanAccess ... Pada tutorial kali ini, akan dijelaskan bagaimana membuat koneksi Ms. Access menggunakan UCanAccess pada java. Pertama --Download UCanAccess Library d...
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...
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...
Software Akuntansi MSID Accounting Pro Aplikasi atau Software Akuntansi MSID Accounting Pro merupakan aplikasi akuntansi dan keuangan yang digunakan untuk membuat laporan keuangan perusahaa...
MSID Sales (Sistem Penjualan Door to Door) MSID Sales atau Mataram Software-Id sales merupakan aplikasi yang digunakan untuk mengelola sistem penjualan door to door atau sistem ngampas. FItur ...
Aplikasi Rumah Makan / Restaurant (MSIDRumahMakan ... Aplikasi Rumah Makan / Restaurant (MSIDRumahMakan v1.0) merupakan aplikasi/perangkat lunak yang digunakan untuk keperluan administrasi Rumah Makan, Ba...
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 ...
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...
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...
Java membuat Validasi Form Input Pada tutorial Java Membuat Validasi Form Input kali ini kita akan mencoba membuat aplikasi sederhana untuk membatasi karakter yang boleh di masukan pa...

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 *

8 + nine =

This site uses Akismet to reduce spam. Learn how your comment data is processed.