- Menuliskan business logic dari aplikasi untuk mengakses data source

dokumen-dokumen yang mirip
- Menuliskan business logic dari aplikasi untuk mengakses data source

1. Buat tampilan menggunakan seperti ini dan simpan dalam class MainFrame.java

Menghubungkan Database Access Menggunakan Netbeans Oleh : Yuliana Setiowati

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

pilih New-Java Class Pada window New Class, ketik Person pada Class Name dan db.app pada Package

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

Praktikum JTable. Gambar 1

visit :

1. Buka kembali project yang telah dibuat pada latihan 2 (project akademik)

Membuat Aplikasi Desktop Client Server Sederhana dengan Java RMI

Koneksi Sederhana Database dengan C# (Lihat, Tambah, dan Hapus Data)

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

Manipulasi Database Dengan Netbeans

Pemrograman Database Java

Mudafiq R. Pratama

JAVA non OOP/IMW/PAGI. 1. Buat Database dengan Ms.Access dengan nama database perpustakaan.mdb 2. Buat tabel barang dengan struktur sbb:

Firma Firmansyah Adi B. Resume Web Service

Pengenalan APLIKASI DATABASE

Koneksi Java GUI-Database

KONEKSI KE DATABASE DENGAN JDBC

Java Database Connectivity (JDBC)

Praktikum 6a Melakukan koneksi dengan basis data

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

uri=" prefix="logic"%>

APLIKASI MENGELOLA DATA ACCESS LOG MENGGUNAKAN C# Melihat LOG berdasar Hari, Jam, dan URL Terbanyak diakses

Mudafiq R. Pratama

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN

KONEKSI KE DATABASE DENGAN JDBC 2

DASAR PEMOGRAMAN JAVA

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

Lampiran Utama. a. Struktur Organisasi. Factory Manager. Vice Factory Manager. Non Produksi. Produksi. Dept. Power. Dept Greyee. Dept.

Isi Data Source Name seperti gambar diatas: Kemudian pilih database dengan meng klik tombol select, tampil seperti gambar diatas:

BAHASA PEMROGRAMAN JAVA

BAB II VARIABEL DAN TIPE DATA

2 TIPE DATA DAN VARIABEL

Elemen Dasar Dalam Bahasa Java

jtextfield jcombobox

Tutorial Java Desktop 4 Menampilkan Data dengan Form TextField

Java Database Connectivity (JDBC) (Minggu 5 Praktikum II)

BAB 5 Koneksi Database : SQL dan JDBC

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

GUI, Ev e Ev n e t n Handling, Ex ception Handling in Java

Pengenalan JavaScript

BAB V JTable. JTable () Default menciptakan JTable yang diawali dengan model default data, model kolom default, dan model pilihan default.

Badiyanto, S.Kom., M.Kom. PBO java

SISTEM TERDISTRIBUSI PERTEMUAN IV ASP.NET WEB SERVICE (1)

Membuat Program Aplikasi Akademik dengan Menggunakan NetBeans 6.9

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN

Tutorial Aplikasi Database Matakuliah Berbasis Java Swing Menggunakan Java Database Connectivity (JDBC)

Mengkoneksikan Java Netbeans dengan Database di MySQL via XAMPP

Akses Database Menggunakan JDBC

MODUL PRAKTIKUM KE 9

TUGAS UTS PEMROGRAMAN JAVA

Struktur Kontrol Pemrograman Java : PERCABANGAN

1. Silahkan anda buka project dari modul 4 anda yang sudah anda selesaikan 2. Tambahkan 1 buah view dengan nama FormMain

TUGAS AKHIR PEMOGRAMAN VISUAL APLIKASI PETERNAKAN AYAM BERBASIS JAVA DI PETERNAKAN AYAM MANDIRI

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

PEMAHAMAN DASAR DASAR JAVA

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

KUM 3 IMPLEMENTASI LIST

SUMBER BELAJAR PENUNJANG PLPG

Tugas IV Kelas Virtual Pemr. Visual

Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs

JProgressBar. Badiyanto, S.Kom., M.Kom. Kelas JProgressBar adalah komponen untuk menampilkan lama proses dalam bentuk grafis. Komponent pallete:

PEMROGRAMAN VB.NET. Koneksi Ke Database

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Bab Hasil Pembuatan Aplikasi

MODUL 7 - EXCEPTION HANDLING

BAB II MICROSOFT VISUAL STUDIO

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

(JCOMBOBOX) Pulut Suryati

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

JOBSHEET 8 DATABASE IN VB

JAVA BASIC PROGRAMMING Joobshet

PEMOGRAMAN APLIKASI BERGERAK (Java ME) Company LOGO

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Badiyanto, S.Kom.,M.Kom. Tujuan Intruksional. Mampu menjelaskan dan menggunakan komponen pemilihan JListbox. pemilihan JComboBox

Gambar 1. Single Linked List

LAPORAN MATA KULIAH PERANCANGAN SISTEM BERBASIS JAVA

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

Aplikasi CRUD dengan Visual Basic 2012 [APLIKASI CRUD DENGAN VISUAL BASIC 2012 & MYSQL] September 18, & MySQL. Bahtiar Imran

Pertemuan 2 Struktur Kontrol Percabangan

Percabangan & Perulangan

Gambar 1. Single Linked List

PENYELEKSIAN KONDISI

Transkripsi:

MODUL 4 IMPLEMENTASI DAO Teori Singkat DAO merupakan design pattern berkaitan dengan database access. DAO memisahkan persistence logic dari business atau presentation logic. DAO merupakan representasi fisik dan relasi antara object dari database. DAO design pattern diimplementasi dengan beberapa langkah, yaitu : - Mendefinisikan interface DAO - Menulis implementasi dari interface DAO - Menuliskan business logic dari aplikasi untuk mengakses data source Latihan 4 1. Buka project dengan nama : Modul4 yang disertakan dengan modul ini 2. Dalam project Modul4, aplikasi akademik sekolah sederhana telah dilengkapi dengan database dengan tabel : a. SISWA b. GURU

c. MAPEL d. JADWAL 3. Serta telah terdapat form untuk pengolahan data : a. SISWA

b. GURU c. MAPEL

4. Pada Modul 4 ini akan dibuat form untuk pengolahan data JADWAL Form Jadwal memiliki elemen sbb : - Kode Jadwal - Kelas Satu, Dua, Tiga - Mata Pelajaran Digunakan data dari tabel MAPEL - Hari Senin, Selasa, Rabu, Kamis, Jum at, Sabtu, Minggu - Jam I, II, III, IV - Guru Digunakan data dari tabel GURU TAHAP I (Membuat DAO) 5. Buat Entity Class Jadwal package akademik.jadwal.dao; public class Jadwal { private String kodejadwal; private String kelas; private String kodemapel; private String hari; private String jam; private String nip; public Jadwal() { public Jadwal(String kodejadwal, String kelas, String kodemapel, String hari, String jam, String nip) { this.kodejadwal = kodejadwal; this.kelas = kelas; this.kodemapel = kodemapel; this.hari = hari; this.jam = jam; this.nip = nip; public void setkodejadwal(string kodejadwal) { this.kodejadwal = kodejadwal; public void setkelas(string kelas) { this.kelas = kelas;

public void setkodemapel(string kodemapel) { this.kodemapel = kodemapel; public void sethari(string hari) { this.hari = hari; public void setjam(string jam) { this.jam = jam; public void setnip(string nip) { this.nip = nip; public String getkodejadwal() { return kodejadwal; public String getkelas() { return kelas; public String getkodemapel() { return kodemapel; public String gethari() { return hari; public String getjam() { return jam; public String getnip() { return nip;

6. Buat Interface JadwalDAO package akademik.jadwal.dao; import java.util.list; public interface JadwalDAO { Jadwal getjadwalkodejadwal(string kodejadwal); List getjadwalkelas(string kelas); List getjadwalkodemapel(string kodemapel); List getjadwalnamamapel(string namamapel); List getjadwalnamaguru(string namaguru); List getalljadwal(); void insertjadwal(jadwal jadwal); void updatejadwal(jadwal jadwal); void deletejadwal(jadwal jadwal); 7. Buat Class JadwalDAOImpl package akademik.jadwal.dao; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; import java.util.arraylist; import java.util.list; public class JadwalDAOImpl implements JadwalDAO { private Connection connection; public JadwalDAOImpl() { try { // 1 - tentukan driver yang digunakan Class.forName("org.apache.derby.jdbc.ClientDriver"); // 2 - tentukan url koneksi String url = "jdbc:derby://localhost:1527/akademik";

// 3 - buat object connection connection = DriverManager.getConnection(url, "root", "root"); catch (Exception e) { System.out.println(e.getMessage()); public Connection getconnection() { return connection; public Jadwal getjadwalkodejadwal(string kodejadwal) { Jadwal jadwal = new Jadwal(); Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from jadwal where nim='"+ kodejadwal.trim() +"'"; ResultSet rsjadwal = sttmt.executequery(query); rsjadwal.next(); //bentuk object jadwal dari data di Resultset jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(4)); jadwal.setjam(rsjadwal.getstring(5)); jadwal.setnip(rsjadwal.getstring(6)); catch (Exception e) { System.out.println(e.getMessage()); return jadwal; public List getalljadwal() { List listjadwal = new ArrayList<Jadwal>(); Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select a.kodejadwal, a.kelas, a.kodemapel, " + "a.hari, a.jam, a.nip from jadwal a";

ResultSet rsjadwal = sttmt.executequery(query); //bentuk object list yang terdiri banyak object jadwal //dari data di Resultset while (rsjadwal.next()) { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(4)); jadwal.setjam(rsjadwal.getstring(5)); jadwal.setnip(rsjadwal.getstring(6)); listjadwal.add(jadwal); catch (Exception e) { System.out.println(e.getMessage()); return listjadwal; public void insertjadwal(jadwal jadwal) { Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "INSERT INTO JADWAL (KODEJADWAL, KELAS, KODEMAPEL, HARI, JAM, NIP) "; query += "values ('"+ jadwal.getkodejadwal().trim() +"', "; query += "'"+ jadwal.getkelas().trim() + "', "; query += "'"+ jadwal.getkodemapel().trim() + "', "; query += "'"+ jadwal.gethari() + "', "; query += "'"+ jadwal.getjam().trim() +"', "; query += "'"+ jadwal.getnip().trim() +"')"; System.out.println("Allah : " + query); sttmt.execute(query); catch (Exception e) { System.out.println(e.getMessage()); public void updatejadwal(jadwal jadwal) { Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection();

//siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "update jadwal set kelas='"+ jadwal.getkelas().trim() +"', "; query += "kodemapel='"+ jadwal.getkodemapel().trim() +"', "; query += "hari='"+ jadwal.gethari().trim() +"', "; query += "jam='"+ jadwal.getjam().trim() +"', "; query += "nip='"+ jadwal.getnip().trim() +"' "; query += "where kodejadwal='"+ jadwal.getkodejadwal().trim() +"'"; System.out.println(query); sttmt.execute(query); catch (Exception e) { System.out.println(e.getMessage()); public void deletejadwal(jadwal jadwal) { Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "delete from jadwal "; query += "where kodejadwal='"+ jadwal.getkodejadwal().trim() +"'"; sttmt.execute(query); catch (Exception e) { System.out.println(e.getMessage()); public List getjadwalkelas(string kelas) { List listjadwal = new ArrayList<Jadwal>(); Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from jadwal"; ResultSet rsjadwal = sttmt.executequery(query);

//bentuk object list yang terdiri banyak object jadwal //dari data di Resultset while (rsjadwal.next()) { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(5)); jadwal.setjam(rsjadwal.getstring(6)); jadwal.setnip(rsjadwal.getstring(7)); listjadwal.add(jadwal); catch (Exception e) { System.out.println(e.getMessage()); return listjadwal; public List getjadwalkodemapel(string kodemapel) { List listjadwal = new ArrayList<Jadwal>(); Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from jadwal"; ResultSet rsjadwal = sttmt.executequery(query); //bentuk object list yang terdiri banyak object jadwal //dari data di Resultset while (rsjadwal.next()) { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(5)); jadwal.setjam(rsjadwal.getstring(6)); jadwal.setnip(rsjadwal.getstring(7)); listjadwal.add(jadwal); catch (Exception e) { System.out.println(e.getMessage()); return listjadwal; public List getjadwalnamamapel(string namamapel) { List listjadwal = new ArrayList<Jadwal>(); Connection conn; Statement sttmt;

try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from jadwal"; ResultSet rsjadwal = sttmt.executequery(query); //bentuk object list yang terdiri banyak object jadwal //dari data di Resultset while (rsjadwal.next()) { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(5)); jadwal.setjam(rsjadwal.getstring(6)); jadwal.setnip(rsjadwal.getstring(7)); listjadwal.add(jadwal); catch (Exception e) { System.out.println(e.getMessage()); return listjadwal; public List getjadwalnamaguru(string namaguru) { List listjadwal = new ArrayList<Jadwal>(); Connection conn; Statement sttmt; try { //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from jadwal"; ResultSet rsjadwal = sttmt.executequery(query); //bentuk object list yang terdiri banyak object jadwal //dari data di Resultset while (rsjadwal.next()) { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(rsjadwal.getstring(1)); jadwal.setkelas(rsjadwal.getstring(2)); jadwal.setkodemapel(rsjadwal.getstring(3)); jadwal.sethari(rsjadwal.getstring(5)); jadwal.setjam(rsjadwal.getstring(6)); jadwal.setnip(rsjadwal.getstring(7)); listjadwal.add(jadwal);

catch (Exception e) { System.out.println(e.getMessage()); return listjadwal; TAHAP 2 (Membuat Aplikasi pola MVC) 8. Buat Class JadwalModel package akademik.jadwal; import akademik.jadwal.dao.jadwal; import akademik.jadwal.dao.jadwaldaoimpl; import java.util.arraylist; import java.util.list; public class JadwalModel { private String kodejadwal; private String kelas; private String kodemapel; private String hari; private String jam; private String nip; private ArrayList<Object> listeners = new ArrayList<Object>(10); // deklarasikan object jadwaldao private JadwalDAOImpl jadwaldao; private List lstjadwal; public JadwalModel() { // instansiasi object jadwaldao = new JadwalDAOImpl(); lstjadwal = jadwaldao.getalljadwal(); int jml = lstjadwal.size(); if (jml > 0) { Jadwal jadwal = (Jadwal) lstjadwal.get(0); setkodejadwal(jadwal.getkodejadwal().trim()); setkelas(jadwal.getkelas().trim()); setkodemapel(jadwal.getkodemapel()); sethari(jadwal.gethari().trim()); setjam(jadwal.getjam().trim()); setnip(jadwal.getnip().trim()); public String getkodejadwal() { return kodejadwal; public void setkodejadwal(string kodejadwal) { this.kodejadwal = kodejadwal; firemodelchangeevent("kodejadwal");

public String getkelas() { return kelas; public void setkelas(string kelas) { this.kelas = kelas; firemodelchangeevent("kelas"); public String getkodemapel() { return kodemapel; public void setkodemapel(string kodemapel) { this.kodemapel = kodemapel; firemodelchangeevent("kodemapel"); public String gethari() { return hari; public void sethari(string hari) { this.hari = hari; firemodelchangeevent("hari"); public String getjam() { return jam; public void setjam(string jam) { this.jam = jam; firemodelchangeevent("jam"); public String getnip() { return nip; public void setnip(string nip) { this.nip = nip; firemodelchangeevent("nip"); public JadwalDAOImpl getjadwaldao() { return jadwaldao; public void addmodelchangelistener(object view) { listeners.add(view); public void removemodelchangelistener(object view) { listeners.remove(view);

public void insertjadwal() { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(getkodejadwal()); jadwal.setkelas(getkelas()); jadwal.setkodemapel(getkodemapel()); jadwal.sethari(gethari()); jadwal.setjam(getjam()); jadwal.setnip(getnip()); getjadwaldao().insertjadwal(jadwal); firemodelchangeevent(jadwal); public void updatejadwal() { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(getkodejadwal()); jadwal.setkelas(getkelas()); jadwal.setkodemapel(getkodemapel()); jadwal.sethari(gethari()); jadwal.setjam(getjam()); jadwal.setnip(getnip()); getjadwaldao().updatejadwal(jadwal); firemodelchangeevent(jadwal); public void deletejadwal() { Jadwal jadwal = new Jadwal(); jadwal.setkodejadwal(getkodejadwal()); jadwal.setkelas(getkelas()); jadwal.setkodemapel(getkodemapel()); jadwal.sethari(gethari()); jadwal.setjam(getjam()); jadwal.setnip(getnip()); getjadwaldao().deletejadwal(jadwal); firemodelchangeevent(jadwal); private void firemodelchangeevent(object o) { for (Object v : listeners) { if (v.getclass().getname().equals("akademik.jadwal.jadwalformview") == true){ JadwalFormView s = (JadwalFormView) v; s.processmodelchange(o);

9. Buat Class JadwalModelTable package akademik.jadwal; import akademik.jadwal.dao.jadwal; import akademik.jadwal.dao.jadwaldaoimpl; import java.util.arraylist; import java.util.list; import javax.swing.table.abstracttablemodel; public class JadwalModelTable extends AbstractTableModel { private static final long serialversionuid = 2368207257439644156L; List<Jadwal> list = new ArrayList<Jadwal>(); JadwalDAOImpl jadwaldaoimpl = new JadwalDAOImpl(); public JadwalModelTable() { list = jadwaldaoimpl.getalljadwal(); public int getcolumncount() { return 6; public int getrowcount() { return list.size(); public String getcolumnname(int column) { switch (column) { case 0: return "Kode Jadwal"; case 1: return "Kelas"; case 2: return "Kode Mapel"; case 3: return "Hari"; case 4: return "Jam"; case 5: return "Guru"; default: return null; public Object getvalueat(int rowindex, int columnindex) { switch (columnindex) { case 0: return list.get(rowindex).getkodejadwal(); case 1: return list.get(rowindex).getkelas(); case 2: return list.get(rowindex).getkodemapel();

case 3: return list.get(rowindex).gethari(); case 4: return list.get(rowindex).getjam(); case 5: return list.get(rowindex).getnip(); default: return null; public void setlist(list<jadwal> list) { this.list = list; public Jadwal set(int index, Jadwal element) { try { return list.set(index, element); finally { firetablerowsupdated(index, index); public Jadwal remove(int index) { try { return list.remove(index); finally { firetablerowsdeleted(index, index); public Jadwal get(int index) { return list.get(index); public boolean add(jadwal e) { try { return list.add(e); finally { firetablerowsinserted(getrowcount() - 1, getrowcount() - 1);

10. Buat Class MapelComboBoxModel package akademik.jadwal; import akademik.mapel.dao.mapel; import akademik.mapel.dao.mapeldaoimpl; import java.util.arraylist; import java.util.list; import javax.swing.defaultcomboboxmodel; public class MapelComboModel extends DefaultComboBoxModel { List<Mapel> list = new ArrayList<Mapel>(); MapelDAOImpl mapeldaoimpl = new MapelDAOImpl(); Object objectdipilih; public MapelComboModel() { list = mapeldaoimpl.getallmapel(); public void setselecteditem(object anitem) { objectdipilih = anitem; public Object getselecteditem() { return objectdipilih; public int getsize() { return list.size(); public Object getelementat(int index) { return list.get(index).getkodemapel(); 11. Buat Class GuruComboBoxModel package akademik.jadwal; import akademik.guru.dao.guru; import akademik.guru.dao.gurudaoimpl; import java.util.arraylist; import java.util.list; import javax.swing.defaultcomboboxmodel;

public class GuruComboModel extends DefaultComboBoxModel { List<Guru> list = new ArrayList<Guru>(); GuruDAOImpl mapeldaoimpl = new GuruDAOImpl(); Object objectdipilih = null; public GuruComboModel() { list = mapeldaoimpl.getallguru(); public void setselecteditem(object anitem) { objectdipilih = anitem; public Object getselecteditem() { return objectdipilih; public int getsize() { return list.size(); public Object getelementat(int index) { return list.get(index).getnip(); 12. Buat Class JadwalController package akademik.jadwal; import akademik.jadwal.dao.jadwal; public class JadwalController { private JadwalModel model; private JadwalFormView view1; public JadwalController(JadwalModel model, JadwalFormView view) { this.model = model; this.view1 = view; view1.addusergesturelistener(this); public void processgetkodejadwal() { model.getkodejadwal(); public void processgetkelas() { model.getkelas();

public void processgetkodemapel() { model.getkodemapel(); public void processgethari() { model.gethari(); public void processgetjam() { model.getjam(); public void processgetnip() { model.getnip(); public void processupdatekodejadwal(string kodejadwal) { model.setkodejadwal(kodejadwal); public void processupdatekelas(string kelas) { model.setkelas(kelas); public void processupdatekodemapel(string kodemapel) { model.setkodemapel(kodemapel); public void processupdatehari(string hari) { model.sethari(hari); public void processupdatejam(string jam) { model.setjam(jam); public void processupdatenip(string nip) { model.setnip(nip); public void processupdatejadwal(jadwal jadwal) { processupdatekodejadwal(jadwal.getkodejadwal().trim()); processupdatekelas(jadwal.getkelas().trim()); processupdatekodemapel(jadwal.getkodemapel()); processupdatehari(jadwal.getkelas().trim()); processupdatejam(jadwal.getjam().trim()); processupdatenip(jadwal.getnip().trim()); model.updatejadwal(); public void processinsertjadwal(jadwal jadwal) { processupdatekodejadwal(jadwal.getkodejadwal().trim()); processupdatekelas(jadwal.getkelas().trim()); processupdatekodemapel(jadwal.getkodemapel()); processupdatehari(jadwal.getkelas().trim());

processupdatejam(jadwal.getjam().trim()); processupdatenip(jadwal.getnip().trim()); model.insertjadwal(); public void processdeletejadwal(jadwal jadwal) { processupdatekodejadwal(jadwal.getkodejadwal().trim()); processupdatekelas(jadwal.getkelas().trim()); processupdatekodemapel(jadwal.getkodemapel()); processupdatehari(jadwal.getkelas().trim()); processupdatejam(jadwal.getjam().trim()); processupdatenip(jadwal.getnip().trim()); model.deletejadwal(); 13. Buat Class JadwalFormView txtkodejadwal lstkelas cbmapel cbhari cbjam cbguru

package akademik.jadwal; import akademik.jadwal.dao.jadwal; import java.util.arraylist; import javax.swing.event.listselectionevent; import javax.swing.event.listselectionlistener; public class JadwalFormView extends javax.swing.jinternalframe implements ListSelectionListener { private JadwalModel model; private ArrayList<JadwalController> listeners = new ArrayList<JadwalController>(); //buat object JadwalModelTable untuk menampilkan data dalam tabel private JadwalModelTable modeltabel; private MapelComboModel mapelcombomodel; private GuruComboModel gurucombomodel; private int posisicursor = 0; /** Creates new form JadwalFormView */ public JadwalFormView(JadwalModel model) { super("jadwal", true, true, false, false); this.model = model; initcomponents(); modeltabel = new JadwalModelTable(); tabeljadwal.getselectionmodel().addlistselectionlistener(this); tabeljadwal.setmodel(modeltabel); mapelcombomodel = new MapelComboModel(); cbmapel.setmodel(mapelcombomodel); gurucombomodel = new GuruComboModel(); cbguru.setmodel(gurucombomodel); refresh(); setdefaultcloseoperation(dispose_on_close); model.addmodelchangelistener(this); posisicursor = 0; int baris = tabeljadwal.getrowcount(); if (baris > 0) tabeljadwal.setrowselectioninterval(posisicursor, posisicursor); setstatusaktifform(false,false,false,false,false,false); setstatusaktiftombol(true, true, true, false, false, false); setvisible(true); public void setstatusaktifform(boolean kodejadwal, boolean kelas, boolean kodemapel, boolean hari, boolean jam, boolean nip) { txtkodejadwal.setenabled(kodejadwal); lstkelas.setenabled(kelas); cbmapel.setenabled(kodemapel); cbhari.setenabled(hari);

cbjam.setenabled(jam); cbguru.setenabled(nip); public void setstatusaktiftombol(boolean btnnew, boolean btnupdate, boolean btndelete, boolean btncancel, boolean btninsert, boolean btnsave) { btninsert.setenabled(btninsert); btnupdate.setenabled(btnupdate); btndelete.setenabled(btndelete); btnnew.setenabled(btnnew); btncancel.setenabled(btncancel); btnsave.setenabled(btnsave); public void addusergesturelistener(jadwalcontroller controller) { listeners.add(controller); public void processmodelchange(object event) { refresh(event); private Jadwal getuivalue() { String kodejadwal = txtkodejadwal.gettext().trim(); String kelas = lstkelas.getselectedvalue().tostring().trim(); MapelComboModel model1 = (MapelComboModel) cbmapel.getmodel(); String kodemapel = model1.getselecteditem().tostring(); String hari = cbhari.getselecteditem().tostring().trim(); String jam = cbjam.getselecteditem().tostring().trim(); GuruComboModel model2 = (GuruComboModel) cbguru.getmodel(); String nip = model2.getselecteditem().tostring(); Jadwal jadwal = new Jadwal(kodejadwal, kelas, kodemapel, hari, jam, nip); return jadwal; private void refresh() { refresh("kodejadwal"); refresh("kelas"); refresh("kodemapel"); refresh("hari"); refresh("jam"); refresh("nip");

private void refresh(object o) { if (o.equals("jadwal")) { refresh(); if (o.equals("kodejadwal")) { String kodejadwal = model.getkodejadwal(); txtkodejadwal.settext(kodejadwal); if (o.equals("kelas")) { String kelas = model.getkelas(); lstkelas.setselectedvalue(kelas, true); if (o.equals("kodemapel")) { Object kodemapel = model.getkodemapel(); cbmapel.getmodel().setselecteditem(kodemapel); cbmapel.repaint(); if (o.equals("hari")) { String hari = model.gethari(); cbhari.setselecteditem(hari); if (o.equals("jam")) { String jam = model.getjam(); cbjam.setselecteditem(jam); if (o.equals("nip")) { String nip = model.getnip(); cbguru.getmodel().setselecteditem(nip); cbguru.repaint(); private void kosongkan() { txtkodejadwal.settext(""); lstkelas.setselectedvalue(null, true); cbmapel.setselecteditem(null); cbhari.setselecteditem(null); cbjam.setselecteditem(null); cbguru.setselecteditem(null); private void btnnewactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: posisicursor = tabeljadwal.getselectedrow(); setstatusaktifform(true, true, true, true, true, true); setstatusaktiftombol(false, false, false, true, true, false); tabeljadwal.setenabled(false); kosongkan();

private void btnupdateactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: posisicursor = tabeljadwal.getselectedrow(); setstatusaktifform(false, true, true, true, true, true); setstatusaktiftombol(false,false,false,true,false,true); tabeljadwal.setenabled(false); private void btninsertactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: Jadwal jadwal = getuivalue(); for (JadwalController con : listeners) { con.processinsertjadwal(jadwal); modeltabel.add(jadwal); int baris = modeltabel.getrowcount(); posisicursor = baris -1 ; tabeljadwal.setrowselectioninterval(posisicursor, posisicursor); setstatusaktifform(false,false,false,false,false,false); setstatusaktiftombol(true, true, true, false, false, false); refresh(); tabeljadwal.setenabled(true); private void btndeleteactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: int baris = modeltabel.getrowcount(); int index = 0; if (baris > 0) { Jadwal jadwal = getuivalue(); for (JadwalController con : listeners) { con.processdeletejadwal(jadwal); index = tabeljadwal.getselectedrow(); modeltabel.remove(index); kosongkan(); baris = modeltabel.getrowcount(); if (baris > 0) { if (index > 0) posisicursor = index -1; else posisicursor = 0; tabeljadwal.setrowselectioninterval(posisicursor, posisicursor);

private void btncancelactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: tabeljadwal.setrowselectioninterval(posisicursor, posisicursor); setstatusaktifform(false,false,false,false,false,false); setstatusaktiftombol(true, true, false, false, false, false); refresh(); tabeljadwal.setenabled(true); private void btnsaveactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: Jadwal jadwal = getuivalue(); for (JadwalController con : listeners) { con.processupdatejadwal(jadwal); modeltabel.set(tabeljadwal.getselectedrow(), jadwal); setstatusaktifform(false,false,false,false,false, false); setstatusaktiftombol(true, true, true, false, false, false); tabeljadwal.setenabled(true); private void btnawalactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: int baris = modeltabel.getrowcount(); if (baris > 0) { tabeljadwal.setrowselectioninterval(0, 0); posisicursor = 0; private void btnsebelumactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: int index = tabeljadwal.getselectedrow(); if (index > 0) posisicursor = index -1 ; else posisicursor = 0; tabeljadwal.setrowselectioninterval(posisicursor, posisicursor); private void btnsesudahactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: int index = tabeljadwal.getselectedrow(); int baris = modeltabel.getrowcount() - 1; if (index < baris) posisicursor = index +1 ; else posisicursor = baris; tabeljadwal.setrowselectioninterval(posisicursor, posisicursor);

private void btnakhiractionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: int baris = modeltabel.getrowcount(); if (baris > 0) { tabeljadwal.setrowselectioninterval(baris - 1, baris - 1); posisicursor = baris - 1; public void valuechanged(listselectionevent e) { try { int baris = modeltabel.getrowcount(); if (baris > 0) { Jadwal jadwal = modeltabel.get(tabeljadwal.getselectedrow()); for (JadwalController con : listeners) { con.processupdatekodejadwal(jadwal.getkodejadwal()); con.processupdatekelas(jadwal.getkelas()); con.processupdatekodemapel(jadwal.getkodemapel()); con.processupdatehari(jadwal.gethari()); con.processupdatejam(jadwal.getjam()); con.processupdatenip(jadwal.getnip()); catch (IndexOutOfBoundsException exception) { exception.printstacktrace();