Aplikasi Database Dengan Netbeans

download Aplikasi Database Dengan Netbeans

of 37

description

Aplikasi Database Dengan Netbeans

Transcript of Aplikasi Database Dengan Netbeans

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 1 of 37

    Pertemuan II

    APLIKASI DATABASE DENGAN NETBEANS 2.1. Membuat Desain Form

    Untuk membuat aplikasi database dengan Netbeans, pertama kita buat project baru dengan nama AplikasiPenilaianMahasiswa (File >> New Project, Categories = Java, Projects = Java Application) seperti pada gambar 2.1 di bawah ini:

    Gambar 2.1. Membuat project AplikasiPenilaianMahasiswa Pada project AplikasiPenilaianMahasiswa yang telah kita buat tambahkan 3 Java

    Package dengan nama model, view, dan controller, dengan cara klik kanan pada Source Package, pilih New, kemudian Java Package seperti pada gambar 2.2 berikut ini:

    Gambar 2.2. Menambahkan Java Package pada project AplikasiPenilaianMahasiswa

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 2 of 37

    Gambar 2.3. Memberi nama Java Package Kemudian tambahkan JFrame Form pada package view dengan cara mengklik kanan

    Package view, pilih New dan JFrame Form seperti gambar 2.4 di bawah ini:

    Gambar 2.4. Menambahkan JFrame Form pada Package view Pada Class Name isikan FormUtama dan pastikan nama package adalah view seperti

    pada gambar 2.5 di bawah ini:

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 3 of 37

    Gambar 2.5. Mengatur nama dan lokasi JFrame Form untuk FormUtama Klik kanan pada desain FormUtama, pilih properties dan ubah nilai Title menjadi

    Aplikasi Penilaian Mahasiswa.

    Gambar 2.6. Mengubah properti title

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 4 of 37

    Pada FormUtama tambahkan Menu Bar, Menu, dan Menu Item (dari Swing Menus pada Palette), kemudian atur sebagai berikut:

    Tabel 2.1. Daftar menu dan menu item

    Komponen Properti Text Variable Name

    jMenu Aplikasi aplikasiMenu

    jMenuItem Deskripsi deskripsiMenuItem

    jSeparator - jSeparator1

    jMenuItem Selesai selesaiMenuItem

    jMenu Master Data masterDataMenu

    jMenuItem Mahasiswa mahasiswaMenuItem

    jMenuItem Mata Kuliah mataKuliahMenuItem

    jMenu Transaksi transaksiMenu

    jMenuItem Nilai nilaiMenu

    jMenu Laporan laporanMenu

    jMenuItem Nilai nilaiLaporanMenuItem

    jSeparator - jSeparator1

    jMenuItem Mahasiswa mahasiswaLaporanMenuItem

    jMenuItem Mata Kuliah mataKuliahLaporanMenuItem

    Pada frame FormUtama tambahkan Desktop Pane (dari Swing Containers pada

    Palette) dan atur agar memenuhi seluruh frame. Klik kanan pada Desktop Pane dan pilih Change Variable Name, ubah menjadi mdiDesktopPane. Desain FormUtama setelah ditambahkan menu, menu item dan desktop pane akan menjadi seperti gambar 2.7 berikut ini:

    Gambar 2.7. Desain FormUtama

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 5 of 37

    Klik tombol Source yang berada di sebelah kiri atas, kemudian tambahkan kode program untuk mengatur ukuran dan posisi frame menjadi seperti berikut ini:

    public FormUtama() {

    initComponents();

    aturFrame(0.9, true);

    }

    private void aturFrame(double skala, boolean tengah){

    Dimension dimensi = Toolkit.getDefaultToolkit().getScreenSize();

    setSize((int)(skala*dimensi.getWidth()),

    (int)(skala*dimensi.getHeight()));

    if (tengah){

    setLocation((int)((dimensi.getWidth()-getWidth())/2),

    (int)((dimensi.getHeight()-getHeight())/2));

    }

    }

    Tambahkan pernyataan import berikut ini:

    import java.awt.Dimension;

    import java.awt.Toolkit;

    dengan cara mengetik di bawah pernyataan package, atau mengklik bola lampu di

    sebelah kiri dan memilih Add import for .... Untuk kembali ke desain frame, klik pada tombol Design yang berada di kiri atas

    source code, atau melalui menu View >> Editors >> Design. Klik kanan pada menu item Selesai, pilih Events >> Action >> actionPerformed seperti pada gambar 2.8 di bawah ini:

    Gambar 2.8. Menambahkan Events actionPerformed pada menu Selesai Kemudian ketik kode program di bawah ini agar ketika diklik pada menu item

    Selesai, program ditutup.

    System.exit(0);

    Berikutnya pada package view tambahkan JInternalFrame dengan cara klik kanan

    pada nama package, pilih New dan Other seperti pada gambar 2.9. Jika diklik New sudah ada pilihan JInternalFrame, maka bisa langsung diklik JInternalFrame.

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 6 of 37

    Gambar 2.9. Menambahkan Other File Type Setelah dipilih Other maka akan tampil kotak dialog seperti pada gambar 2.10, pada

    categories pilih Swing GUI Forms dan pada File Types pilih JInternalFrame Form.

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 7 of 37

    Gambar 2.10. Memilih JInternalFrame Kemudian klik tombol Next, maka akan tampil kotak dialog seperti pada gambar

    2.11, kemudian isi class name dengan FormMahasiswa dan klik tombol finish.

    Gambar 2.11. Menambahkan JInternalFrame FormMahasiswa Klik kanan pada JInternalFrame-nya dan pilih properties. Kemudian ganti properti

    title untuk mengubah judul frame menjadi Master Data Mahasiswadan beri tanda check pada properti closable seperti gambar 2.12.

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 8 of 37

    Gambar 2.12. Properti JinternalFrame FormMahasiswa Setelah menambahkan FormMahasiswa, tambahkan juga JInternalFrame untuk

    FormMatakuliah dan FormNilai. Tambahkan komponen-komponen yang diperlukan untuk membuat tampilan seperti gambar-gambar di bawah ini. Jangan lupa mengubah properti name setiap komponen dengan nama sesuai teksnya, dengan ketentuan kata pertama menggunakan huruf kecil semua dan huruf pertama pada kata berikutnya menggunakan huruf kapital.

    Gambar 2.13. Desain FormMahasiswa

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 9 of 37

    Gambar 2.14. Tampilan Navigator FormMahasiswa

    Gambar 2.15. Desain FormMatakuliah

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 10 of 37

    Gambar 2.16. Tampilan Navigator FormMataKuliah Tambahkan JDialog dengan cara klik kanan pada nama paket, pilih New kemudian

    Other. Setelah dipilih Other maka akan tampil kotak dialog, pada categories pilih Swing GUI Forms dan pada file types pilih JDialog Form, sehingga seperti pada gambar 2.17.

    Gambar 2.17. Memilih JDialog Form

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 11 of 37

    Kemudian klik tombol Next, maka akan tampil kotak dialog seperti pada gambar 2.18, kemudian isi Class Name dengan DaftarMahasiswa dan klik tombol finish.

    Gambar 2.18. Menambahkan JDialog DaftarMahasiswa Ubah properti title menjadi Daftar Mahasiswa seperti gambar 2.19.

    Gambar 2.19. Mengubah properti title Pada desain Jdialog DaftarMahasiswa, tambahkan Table dari Swing Controls,

    kemudian klik kanan dan pilih Change Variable Name, ubah nama table menjadi daftarMahasiswaTable. Klik kanan lagi pada table dan pilih Table Contents ..., kemudian klik pada tab Columns dan ubah menjadi seperti gambar 2.20 di bawah ini:

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 12 of 37

    Gambar 2.20. Pengaturan properti kolom dari tabel daftar mahasiswa Pada tab Rows, ubah properti Count menjadi 0 dan klik tombol Close di bagian

    bawah. Sehingga desain JDialog DaftarMahasiswa menjadi seperti gambar 2.21 berikut ini:

    Gambar 2.21. Desain JDialog DaftarMahasiswa

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 13 of 37

    Jendela navigator dari JDialog DaftarMahasiswa akan tampil seperti gambar 2.22 di bawah ini:

    Gambar 2.22. Jendela Navigator JDialog DaftarMahasiswa Dengan cara yang sama, tambahkan Jdialog DaftarMataKuliah dengan desain

    seperti gambar 2.23 di bawah ini:

    Gambar 2.23. Desain JDialog DaftarMataKuliah

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 14 of 37

    Gambar 2.24. Jendela Navigator JDialog DaftarMataKuliah Properti selectionModel dari semua tabel diatas di pilih Single Selection.

    Gambar 2.25. Mengatur properti selectionModel Double klik Class Main (Main.java atau AplikasiPenilaianMahasiswa.java) yang ada

    pada jendela Project, kemudian ketik kode di bawah ini di dalam static main-nya.

    new FormUtama().setVisible(true);

    Tambahkan pernyataan import view.FormUtama dengan cara klik pada gambar bola

    lampu kemudian pilih Add import for view.FormUtama seperti pada gambar berikut ini:

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 15 of 37

    Gambar 2.26. Add import for view.FormUtama Di bawah pendefinisian class FormUtama ketik kode berikut ini:

    public static FormMahasiswa formMahasiswa = new FormMahasiswa();

    public static FormMataKuliah formMataKuliah = new FormMataKuliah();

    Tambahkan event actionPerformed pada menu item Mahasiswa (pada menu

    Master Data), di dalamnya ketik kode program di bawah ini:

    if (formMahasiswa.isVisible()) {

    try {

    formMahasiswa.setSelected(true);

    } catch (Exception ex) {}

    } else {

    formMahasiswa = new FormMahasiswa();

    mdiDesktopPane.add(formMahasiswa);

    formMahasiswa.setVisible(true);

    }

    Tambahkan event actionPerformed pada menu item Mata Kuliah (pada menu

    Master Data), di dalamnya ketik kode program di bawah ini:

    if (formMataKuliah.isVisible()) {

    try {

    formMataKuliah.setSelected(true);

    } catch (Exception ex) {}

    } else {

    formMataKuliah = new FormMataKuliah ();

    mdiDesktopPane.add(formMataKuliah);

    formMataKuliah.setVisible(true);

    }

    2.2. Membuat Database Penilaian Mahasiswa

    Setelah kita membuat desain aplikasi, selanjutnya kita buat database yang akan kita gunakan untuk menyimpan data. Pada aplikasi ini kita gunakan database MySQL.

    Desain tabel dan relasinya pada database yang akan kita buat adalah sebagai berikut :

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 16 of 37

    Gambar 2.27. Desain tabel dan relasinya pada database penilaian mahasiswa Untuk membuatnya gunakan pernyataan-pernyataan SQL di bawah ini atau

    menggunakan aplikasi yang ada. a. Membuat database dbaplikasipenilaianmahasiswa

    create database dbaplikasipenilaianmahasiswa

    b. Mengaktifkan database dbaplikasipenilaianmahasiswa use dbaplikasipenilaianmahasiswa atau klik database dbaplikasipenilaianmahasiswa kalau menggunakan browser.

    c. Membuat tabel tbmahasiswa create table tbmahasiswa(

    nim varchar(15) not null,

    nama varchar(30),

    semester int,

    kelas varchar(1),

    constraint pktbmahasiswa primary key (nim)

    )

    d. Membuat tabel tbmatakuliah create table tbmatakuliah(

    kodematakuliah varchar(6) not null,

    tbmatakuliah

    kodematakuliah varchar(6) No

    namamatakuliah varchar(30) Yes

    jumlahsks int Yes

    Column Name Condensed Type Nullable

    tbmahasiswa

    nim varchar(15) No

    nama varchar(30) Yes

    semester int Yes

    kelas varchar(1) Yes

    Column Name Condensed Type Nullable

    tbnilai

    nim varchar(15) No

    kodematakuliah varchar(6) No

    tugas int Yes

    uts int Yes

    uas int Yes

    Column Name Condensed Type Nullable

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 17 of 37

    namamatakuliah varchar(30),

    jumlahsks int,

    constraint pktbmatakuliah primary key (kodematakuliah)

    )

    e. Membuat tabel tbnilai create table tbnilai(

    nim varchar(15) not null,

    kodematakuliah varchar(6) not null,

    tugas int,

    uts int,

    uas int,

    constraint pktbnilai primary key (nim,kodematakuliah),

    constraint fkmahasiswa foreign key (nim) references

    tbmahasiswa(nim),

    constraint fkmatakuliah foreign key (kodematakuliah)

    references tbmatakuliah(kodematakuliah)

    )

    2.3. Menambahkan Kode Program Untuk membuat koneksi, kita buat class Koneksi terlebih dulu dengan cara klik

    kanan pada paket model, pilih New dan Java Class seperti pada gambar 2.28 berikut ini :

    Gambar 2.28. Menambahkan Java Class

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 18 of 37

    Gambar 2.29. Memberi nama Class Koneksi Di dalam class Koneksi ketik kode program berikut ini:

    static String driver = "com.mysql.jdbc.Driver";

    static String database =

    "jdbc:mysql://localhost:3306/dbaplikasipenilaianmahasiswa";

    static String user = "root";

    static String password = "";

    Tambahkan kode program di bawah ini di dalam metode internalFrameActivated

    dari FormMahasiswa dengan cara klik kanan pada FormMahasiswa, pilih Events >> InternalFrame >> internalFrameActivated seperti gambar 2.30 di bawah ini:

    Gambar 2.30. Menambahkan event internalFrameActivated pada FormMahasiswa

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 19 of 37

    int i;

    char ch[] = new char[1];

    semesterComboBox.removeAllItems();

    for (i=1; i

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 20 of 37

    Gambar 2.32. Menambahkan Library MySQL JDBC Driver Tambahkan class Mahasiswa pada package model, dengan properti nim, nama,

    semester dan kelas.

    Gambar 2.33. Membuat class Mahasiswa pada package model

    private String nim, nama, kelas;

    private int semester;

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 21 of 37

    Selanjutnya tambahkan metode untuk membaca dan mengubah properti (getter and setter) dengan cara meletakkan kursor (pointer) di dalam class Mahasiswa, kemudian klik kanan atau klik menu Source, pilih Insert Code, dan pilih Getter and Setter, sehingga tampil kotak dialog dan beri tanda cek semua seperti gambar 3.34 di bawah ini:

    Gambar 2.33. Generate Getters and Setters Klik tombol Generate, kemudian tambahkan metode simpan, baca, bacaDaftar, dan

    hapus dengan kode program berikut ini:

    public boolean simpan(){

    boolean adaKesalahan = false;

    Connection cn = null;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak

    ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    int jumlahSimpan=0;

    boolean simpan = false;

    try {

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 22 of 37

    String SQLStatemen = "select * from tbmahasiswa

    where nim='"+nim+"'";

    Statement sta = cn.createStatement();

    ResultSet rset = sta.executeQuery(SQLStatemen);

    rset.next();

    if (rset.getRow()>0){

    sta.close();

    rset.close();

    Object[] arrOpsi = {"Ya","Tidak"};

    int pilih=JOptionPane.showOptionDialog(null,"NIM

    sudah ada\nApakah data

    diupdate?","Konfirmasi",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_ME

    SSAGE, null,arrOpsi,arrOpsi[0]);

    if (pilih==0){

    simpan = true;

    SQLStatemen = "update tbmahasiswa set

    nama='"+nama+

    "', semester='"+semester+

    "', kelas='"+kelas+

    "' where nim='"+nim+"'";

    sta = cn.createStatement();

    jumlahSimpan =

    sta.executeUpdate(SQLStatemen);

    }

    } else {

    sta.close();

    rset.close();

    simpan = true;

    SQLStatemen = "insert into tbmahasiswa(nim,

    nama, semester, kelas) values ('"+

    nim +"','"+ nama +"','"+ semester

    +"','"+ kelas +"')";

    sta = cn.createStatement();

    jumlahSimpan = sta.executeUpdate(SQLStatemen);

    }

    if (simpan) {

    if (jumlahSimpan > 0){

    JOptionPane.showMessageDialog(null,"Data

    mahasiswa sudah tersimpan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    } else {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Gagal

    menyimpan data mahasiswa","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat

    membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    public boolean baca(String nim){

    boolean adaKesalahan = false;

    Connection cn = null;

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 23 of 37

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak

    ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    String SQLStatemen = "select * from tbmahasiswa

    where nim='"+nim+"'";

    Statement sta = cn.createStatement();

    ResultSet rset = sta.executeQuery(SQLStatemen);

    rset.next();

    if (rset.getRow()>0){

    this.nim = rset.getString("nim");

    this.nama = rset.getString("nama");

    this.semester = rset.getInt("semester");

    this.kelas = rset.getString("kelas");

    sta.close();

    rset.close();

    } else {

    sta.close();

    rset.close();

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"NIM

    \""+nim+"\" tidak

    ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat

    membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    public Object[][] bacaDaftar(){

    boolean adaKesalahan = false;

    Connection cn = null;

    Object[][] daftarMahasiswa = new Object[0][0];

    try{

    Class.forName(Koneksi.driver);

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 24 of 37

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak

    ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    String SQLStatemen;

    Statement sta;

    ResultSet rset;

    try {

    SQLStatemen = "select nim,nama from tbmahasiswa";

    sta = cn.createStatement();

    rset = sta.executeQuery(SQLStatemen);

    rset.next();

    rset.last();

    daftarMahasiswa = new Object[rset.getRow()][2];

    if (rset.getRow()>0){

    rset.first();

    int i=0;

    do {

    daftarMahasiswa[i] = new

    Object[]{rset.getString("nim"), rset.getString("nama")};

    i++;

    } while (rset.next());

    }

    sta.close();

    rset.close();

    } catch (Exception ex){

    JOptionPane.showMessageDialog(null,"Tidak dapat

    membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return daftarMahasiswa;

    }

    public boolean hapus(String nim){

    boolean adaKesalahan = false;

    Connection cn = null;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak

    ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 25 of 37

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke database

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    int jumlahHapus;

    try {

    String SQLStatemen = "delete from tbmahasiswa where

    nim='"+nim+"'";

    Statement sta = cn.createStatement();

    jumlahHapus = sta.executeUpdate(SQLStatemen);

    if (jumlahHapus>0){

    sta.close();

    JOptionPane.showMessageDialog(null,"Data

    mahasiswa dengan NIM "+nim+" sudah

    dihapus","Informasi",JOptionPane.INFORMATION_MESSAGE);

    } else {

    sta.close();

    JOptionPane.showMessageDialog(null,"Data

    mahasiswa dengan NIM "+nim+" tidak

    ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    adaKesalahan = true;

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat

    membuka tabel tbmahasiswa\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    Untuk melengkapi program di atas, tambahkan pernyataan import di bawah ini di

    bawah nama package.

    import java.awt.HeadlessException;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import javax.swing.JOptionPane;

    Di atas konstruktor dari class DaftarMahasiswa dalam package view tambahkan

    kode program berikut ini:

    private DefaultTableModel daftarMahasiswaDefaultTableModel;

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 26 of 37

    public static String nimDipilih = "";

    public static Object[][] listMahasiswa; Di dalam konstruktor dari class DaftarMahasiswa (di bawah pernyataan

    initComponents();) tambahkan kode program berikut ini:

    daftarMahasiswaDefaultTableModel = (DefaultTableModel)

    daftarMahasiswaTable.getModel();

    Tambahkan kode program di bawah ini di dalam metode windowActivated dari

    JDialog (class DaftarMahasiswa), dengan cara klik kanan pada Form (Jdialog bukan komponen), pilih Event >> Window >> windowActivated.

    if (listMahasiswa.length>0){

    daftarMahasiswaDefaultTableModel.setRowCount(0);

    for (int i=0; i0){

    nimDipilih = daftarMahasiswaTable.getValueAt(

    daftarMahasiswaTable.getSelectedRow(), 0).toString();

    dispose();

    } else {

    JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");

    } Tambahkan pernyataan import di bawah nama package.

    import javax.swing.JOptionPane;

    import javax.swing.table.DefaultTableModel;

    Di dalam class FormMahasiswa tambahkan beberapa metode berikut ini:

    public void setNim(String nim){

    nimTextField.setText(nim);

    }

    public void setNama(String nama){

    namaTextField.setText(nama);

    }

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 27 of 37

    public void setSemester(int semester){

    semesterComboBox.setSelectedItem(semester);

    }

    public void setKelas(String kelas){

    kelasComboBox.setSelectedItem(kelas);

    }

    Di dalam package Controller tambahkan class MahasiswaController dan tambahkan

    kode program di bawah ini di dalamnya.

    private Mahasiswa mahasiswa = new Mahasiswa();

    private DaftarMahasiswa daftarMahasiswa = new

    DaftarMahasiswa(null,true);

    public void simpan(javax.swing.JTextField nim, javax.swing.JTextField

    nama, javax.swing.JComboBox semester, javax.swing.JComboBox kelas){

    if (!nim.getText().equals("")){

    mahasiswa.setNim(nim.getText());

    mahasiswa.setNama(nama.getText());

    mahasiswa.setSemester(Integer.parseInt(

    semester.getSelectedItem().toString()));

    mahasiswa.setKelas((String) kelas.getSelectedItem());

    if (mahasiswa.simpan()){

    FormUtama.formMahasiswa.setNim("");

    FormUtama.formMahasiswa.setNama("");

    FormUtama.formMahasiswa.setSemester(1);

    FormUtama.formMahasiswa.setKelas("A");

    }

    } else {

    JOptionPane.showMessageDialog(null,"NIM tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void hapus(javax.swing.JTextField nim){

    if (!nim.getText().equals("")){

    if (mahasiswa.hapus(nim.getText())){

    FormUtama.formMahasiswa.setNim("");

    FormUtama.formMahasiswa.setNama("");

    FormUtama.formMahasiswa.setSemester(1);

    FormUtama.formMahasiswa.setKelas("A");

    }

    } else {

    JOptionPane.showMessageDialog(null,"NIM tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void cari(javax.swing.JTextField nim){

    if (!nim.getText().equals("")){

    if (mahasiswa.baca(nim.getText())){

    FormUtama.formMahasiswa.setNama(mahasiswa.getNama());

    FormUtama.formMahasiswa.setSemester(mahasiswa.getSemester());

    FormUtama.formMahasiswa.setKelas(mahasiswa.getKelas());

    } else {

    FormUtama.formMahasiswa.setNama("");

    FormUtama.formMahasiswa.setSemester(1);

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 28 of 37

    FormUtama.formMahasiswa.setKelas("A");

    }

    } else {

    JOptionPane.showMessageDialog(null,"NIM tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void tampilkanDaftar(){

    if (!daftarMahasiswa.isVisible()){

    DaftarMahasiswa.listMahasiswa = mahasiswa.bacaDaftar();

    daftarMahasiswa = new DaftarMahasiswa(null, true);

    daftarMahasiswa.setVisible(true);

    if (!DaftarMahasiswa.nimDipilih.equals("")) {

    if (mahasiswa.baca(DaftarMahasiswa.nimDipilih)){

    FormUtama.formMahasiswa.setNim(mahasiswa.getNim());

    FormUtama.formMahasiswa.setNama(mahasiswa.getNama());

    FormUtama.formMahasiswa.setSemester(mahasiswa.getSemester());

    FormUtama.formMahasiswa.setKelas(mahasiswa.getKelas());

    }

    }

    }

    }

    Jangan lupa untuk menambahkan pernyataan import yang dibutuhkan, yaitu:

    import javax.swing.JOptionPane;

    import model.Mahasiswa;

    import view.DaftarMahasiswa;

    import view.FormUtama;

    Double klik simpanButton pada FormMahasiswa untuk menambahkan kode

    program di bawah ini pada metode actionPerformed.

    new MahasiswaController().simpan(nimTextField, namaTextField,

    semesterComboBox, kelasComboBox);

    Dalam metode actionPerformed dari hapusButton tambahkan kode program

    berikut ini:

    new MahasiswaController().hapus(nimTextField);

    Dalam metode actionPerformed dari daftarButton tambahkan kode program

    berikut ini:

    new MahasiswaController().tampilkanDaftar();

    Dalam metode actionPerformed dari tutupButton tambahkan kode program berikut

    ini:

    dispose();

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 29 of 37

    Tambahkan kode program di bawah ini di dalam metode keyPressed dari nimTextField, dengan cara klik kanan pada nimTextField, kemudian pilih Events >> Key >> keyPressed.

    if (evt.getKeyCode()==KeyEvent.VK_ENTER){

    new MahasiswaController().cari(nimTextField);

    } Lengkapi program dengan menambahkan pernyataan import berikut ini:

    import controller.MahasiswaController;

    import java.awt.event.KeyEvent;

    Buatlah class MataKuliah dalam package model dengan properti sebagai berikut:

    private String kodeMataKuliah, namaMataKuliah;

    private int jumlahSks;

    kemudian tambahkan metode getter dan setter, serta tambahkan metode simpan,

    baca, bacaDaftar, dan hapus dengan kode program berikut ini:

    public boolean simpan(){

    boolean adaKesalahan = false;

    Connection cn = null;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan

    atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke "+Koneksi.database+"

    gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    int jumlahSimpan=0;

    boolean simpan = false;

    try {

    String SQLStatemen = "select * from tbmatakuliah where

    kodematakuliah='"+kodeMataKuliah+"'";

    Statement sta = cn.createStatement();

    ResultSet rset = sta.executeQuery(SQLStatemen);

    rset.next();

    if (rset.getRow()>0){

    sta.close();

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 30 of 37

    rset.close();

    Object[] arrOpsi = {"Ya","Tidak"};

    int pilih=JOptionPane.showOptionDialog(null,"NIM sudah

    ada\nApakah data

    diupdate?","Konfirmasi",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_ME

    SSAGE, null,arrOpsi,arrOpsi[0]);

    if (pilih==0){

    simpan = true;

    SQLStatemen = "update tbmatakuliah set

    namamatakuliah='"+namaMataKuliah+

    "', jumlahsks='"+jumlahSks+

    "' where

    kodematakuliah='"+kodeMataKuliah+"'";

    sta = cn.createStatement();

    jumlahSimpan = sta.executeUpdate(SQLStatemen);

    }

    } else {

    sta.close();

    rset.close();

    simpan = true;

    SQLStatemen = "insert into tbmatakuliah values ('"+

    kodeMataKuliah +"','"+

    namaMataKuliah+"','"+ jumlahSks +"')";

    sta = cn.createStatement();

    jumlahSimpan = sta.executeUpdate(SQLStatemen);

    }

    if (simpan) {

    if (jumlahSimpan > 0){

    JOptionPane.showMessageDialog(null,"Data mata kuliah sudah

    tersimpan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    } else {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Gagal menyimpan data mata

    kuliah","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel

    tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    public boolean baca(String kodeMataKuliah){

    boolean adaKesalahan = false;

    Connection cn = null;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak

    ditemukan atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 31 of 37

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke "+Koneksi.database+"

    gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    String SQLStatemen = "select * from tbmatakuliah where

    kodematakuliah='"+kodeMataKuliah+"'";

    Statement sta = cn.createStatement();

    ResultSet rset = sta.executeQuery(SQLStatemen);

    rset.next();

    if (rset.getRow()>0){

    this.kodeMataKuliah =

    rset.getString("kodematakuliah");

    this.namaMataKuliah =

    rset.getString("namamatakuliah");

    this.jumlahSks = rset.getInt("jumlahsks");

    sta.close();

    rset.close();

    } else {

    sta.close();

    rset.close();

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Kode mata kuliah

    \""+kodeMataKuliah+"\" tidak

    ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel

    tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    public Object[][] bacaDaftar(){

    boolean adaKesalahan = false;

    Connection cn = null;

    Object[][] daftarMataKuliah = new Object[0][0] ;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan

    atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 32 of 37

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    String SQLStatemen;

    Statement sta;

    ResultSet rset;

    try {

    SQLStatemen = "select kodematakuliah,namamatakuliah

    from tbmatakuliah";

    sta = cn.createStatement();

    rset = sta.executeQuery(SQLStatemen);

    rset.next();

    rset.last();

    daftarMataKuliah = new Object[rset.getRow()][2];

    rset.first();

    int i=0;

    do {

    daftarMataKuliah[i] = new

    Object[]{rset.getString("kodematakuliah"),

    rset.getString("namamatakuliah")};

    i++;

    } while (rset.next());

    sta.close();

    rset.close();

    } catch (Exception ex){

    JOptionPane.showMessageDialog(null,"Tidak dapat

    membuka tabel tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return daftarMataKuliah;

    }

    public boolean hapus(String kodeMataKuliah){

    boolean adaKesalahan = false;

    Connection cn = null;

    try{

    Class.forName(Koneksi.driver);

    } catch (Exception ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"JDBC Driver tidak ditemukan

    atau rusak\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    try {

    cn =

    DriverManager.getConnection(Koneksi.database+"?user="+Koneksi.user+"&pass

    word="+Koneksi.password+"");

    } catch (Exception ex) {

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 33 of 37

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Koneksi ke database

    "+Koneksi.database+" gagal\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    if (!adaKesalahan){

    int jumlahHapus;

    try {

    String SQLStatemen = "delete from tbmatakuliah where

    kodematakuliah='"+kodeMataKuliah+"'";

    Statement sta = cn.createStatement();

    jumlahHapus = sta.executeUpdate(SQLStatemen);

    if (jumlahHapus>0){

    sta.close();

    JOptionPane.showMessageDialog(null,"Data mata kuliah sudah

    dihapus","Informasi",JOptionPane.INFORMATION_MESSAGE);

    } else {

    sta.close();

    JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak

    ditemukan","Informasi",JOptionPane.INFORMATION_MESSAGE);

    adaKesalahan = true;

    }

    } catch (SQLException | HeadlessException ex){

    adaKesalahan = true;

    JOptionPane.showMessageDialog(null,"Tidak dapat membuka tabel

    tbmatakuliah\n"+ex,"Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    return !adaKesalahan;

    }

    Lengkapi dengan pernyataan import berikut ini:

    import java.awt.HeadlessException;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import javax.swing.JOptionPane;

    Di atas konstruktor class DaftarMataKuliah tambahkan pernyataan berikut ini:

    private DefaultTableModel daftarMataKuliahDefaultTableModel;

    public static String kodeMataKuliahDipilih = "";

    public static Object[][] listMataKuliah;

    Kemudian di dalam kontruktor class DaftarMataKuliah di bawah pernyataan

    initComponents(); tambahkan pernyataan berikut ini:

    daftarMataKuliahDefaultTableModel = (DefaultTableModel)

    daftarMataKuliahTable.getModel();

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 34 of 37

    Tambahkan kode program di bawah ini di dalam metode windowActivated dari JDialog (class DaftarMataKuliah), dengan cara klik kanan pada Form (Jdialog bukan panel), pilih Event >> Window >> windowActivated.

    if (listMataKuliah.length>0){

    daftarMataKuliahDefaultTableModel.setRowCount(0);

    for (int i=0; i0){

    kodeMataKuliahDipilih = daftarMataKuliahTable.getValueAt(

    daftarMataKuliahTable.getSelectedRow(), 0).toString();

    dispose();

    } else {

    JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");

    }

    Tambahkan pernyataan import di bawah nama package.

    import javax.swing.JOptionPane;

    import javax.swing.table.DefaultTableModel;

    Di dalam class FormMataKuliah tambahkan beberapa metode berikut ini:

    public void setKodeMataKuliah(String kodeMataKuliah){

    kodeMataKuliahTextField.setText(kodeMataKuliah);

    }

    public void setNamaMataKuliah(String namaMataKuliah){

    namaMataKuliahTextField.setText(namaMataKuliah);

    }

    public void setJumlahSks(int jumlahSks){

    jumlahSksComboBox.setSelectedItem(jumlahSks);

    }

    Di dalam package Controller tambahkan class MataKuliahController dan tambahkan

    kode program di bawah ini di dalamnya.

    private MataKuliah mataKuliah = new MataKuliah();

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 35 of 37

    private DaftarMataKuliah daftarMataKuliah = new

    DaftarMataKuliah(null,true);

    public void simpan(javax.swing.JTextField kodeMataKuliah,

    javax.swing.JTextField namaMataKuliah, javax.swing.JComboBox jumlahSks){

    if (!kodeMataKuliah.getText().equals("")){

    mataKuliah.setKodeMataKuliah( kodeMataKuliah.getText());

    mataKuliah.setNamaMataKuliah( namaMataKuliah.getText());

    mataKuliah.setJumlahSks(Integer.parseInt(

    jumlahSks.getSelectedItem().toString()));

    if (mataKuliah.simpan()){

    FormUtama.formMataKuliah.setKodeMataKuliah("");

    FormUtama.formMataKuliah.setNamaMataKuliah("");

    FormUtama.formMataKuliah.setJumlahSks(2);

    }

    } else {

    JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void hapus(javax.swing.JTextField kodeMataKuliah){

    if (!kodeMataKuliah.getText().equals("")){

    if (mataKuliah.hapus(kodeMataKuliah.getText())){

    FormUtama.formMataKuliah.setKodeMataKuliah("");

    FormUtama.formMataKuliah.setNamaMataKuliah("");

    FormUtama.formMataKuliah.setJumlahSks (2);

    }

    } else {

    JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void cari(javax.swing.JTextField kodeMataKuliah){

    if (!kodeMataKuliah.getText().equals("")){

    if (mataKuliah.baca(kodeMataKuliah.getText())){

    FormUtama.formMataKuliah.setNamaMataKuliah(

    mataKuliah.getNamaMataKuliah());

    FormUtama.formMataKuliah.setJumlahSks(

    mataKuliah.getJumlahSks());

    } else {

    FormUtama.formMataKuliah.setNamaMataKuliah("");

    FormUtama.formMataKuliah.setJumlahSks(2);

    }

    } else {

    JOptionPane.showMessageDialog(null,"Kode mata kuliah tidak boleh

    kosong\n","Kesalahan",JOptionPane.ERROR_MESSAGE);

    }

    }

    public void tampilkanDaftar(){

    if (!daftarMataKuliah.isVisible()){

    DaftarMataKuliah.listMataKuliah = mataKuliah.bacaDaftar();

    daftarMataKuliah = new DaftarMataKuliah(null, true);

    daftarMataKuliah.setVisible(true);

    if (!DaftarMataKuliah.kodeMataKuliahDiPilih.equals("")) {

    if (mataKuliah.baca(

    DaftarMataKuliah.kodeMataKuliahDiPilih)){

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 36 of 37

    FormUtama.formMataKuliah.setKodeMataKuliah(

    mataKuliah.getKodeMataKuliah());

    FormUtama.formMataKuliah.setNamaMataKuliah(

    mataKuliah.getNamaMataKuliah());

    FormUtama.formMataKuliah.setJumlahSks(

    mataKuliah.getJumlahSks());

    }

    }

    }

    }

    Jangan lupa untuk menambahkan pernyataan import yang dibutuhkan, yaitu:

    import javax.swing.JOptionPane;

    import model.MataKuliah;

    import view.DaftarMataKuliah;

    import view.FormUtama;

    Double klik simpanButton pada FormMataKuliah untuk menambahkan kode

    program di bawah ini pada metode actionPerformed.

    new MataKuliahController().simpan(kodeMataKuliahTextField,

    namaMataKuliahTextField, jumlahSksComboBox);

    Dalam metode actionPerformed dari hapusButton tambahkan kode program

    berikut ini:

    new MataKuliahController().hapus(kodeMataKuliahTextField);

    Dalam metode actionPerformed dari daftarButton tambahkan kode program

    berikut ini:

    new MataKuliahController().tampilkanDaftar();

    Dalam metode actionPerformed dari tutupButton tambahkan kode program berikut

    ini:

    dispose();

    Tambahkan kode program di bawah ini di dalam metode keyPressed dari

    kodeMataKuliahTextField, dengan cara klik kanan pada kodeMataKuliahTextField, kemudian pilih Events >> Key >> keyPressed.

    if (evt.getKeyCode()==KeyEvent.VK_ENTER){

    new MataKuliahController().cari(kodeMataKuliahTextField);

    }

    Di dalam metode windowActivated dari InternalFrame FormMataKuliah tambahkan

    kode program berikut ini:

    for (int i=2;i

  • Materi Pemrograman II (Pertemuan II) Universitas Pamulang

    [email protected] (2011-2012) page 37 of 37

    Lengkapi program dengan menambahkan pernyataan import berikut ini:

    import controller.MataKuliahController;

    import java.awt.event.KeyEvent;

    Referensi: 1. Supriyanto, (2010), Pemrograman Database Menggunakan Java & MySQL Untuk

    Pemula, Cetakan Pertama, Media Kita 2. Hariyanto, Bambang, (2007), Esensi-esensi Bahasa Pemrograman Java, Edisi 2,

    Informatika Bandung, November 2007. 3. Utomo, EkoPriyo, (2009), Panduan Mudah Mengenal Bahasa Java, Yrama Widya,

    Juni 2009. 4. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007 5. http://www.netbeans.com/ 6. http://www.oracle.com/