- Menuliskan business logic dari aplikasi untuk mengakses data source

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

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

IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN

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

Praktikum 6a Melakukan koneksi dengan basis data

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

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

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

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

visit :

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

Menghubungkan Database Access Menggunakan Netbeans Oleh : Yuliana Setiowati

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

uri=" prefix="logic"%>

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

Mudafiq R. Pratama

Firma Firmansyah Adi B. Resume Web Service

MODUL 1 IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN

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

Pengenalan APLIKASI DATABASE

Manipulasi Database Dengan Netbeans

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

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

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

KONEKSI KE DATABASE DENGAN JDBC

Mudafiq R. Pratama

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

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

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

Java Database Connectivity (JDBC)

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

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

KONEKSI KE DATABASE DENGAN JDBC 2

Pemrograman Database Java

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

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

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

Prosedur dan Fungsi. Ciri prosedur pada java selalu dimulai dengan : private/public void namaprosedur ( tipedataparameter1 namaparameter1,

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

Gambar 1. Single Linked List

TUGAS UTS PEMROGRAMAN JAVA

Akses Database Menggunakan JDBC

MODUL PRAKTIKUM KE 9

Tutorial Java Desktop 4 Menampilkan Data dengan Form TextField

Membuat aplikasi gaji pegawai dengan java netbeans GUI part 1

Koneksi Java GUI-Database

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

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

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

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

BAB II MICROSOFT VISUAL STUDIO

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)

BAB II. Manggunakan JComboBox

Praktikum JTable. Gambar 1

LAMPIRAN LISTING PROGRAM


Pemrograman Dekstop Pulut Suryati

Mengkoneksikan Java Netbeans dengan Database di MySQL via XAMPP

jtextfield jcombobox

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

Praktikum KPLBO Class dan Object I

JOBSHEET 8 DATABASE IN VB

PENGGUNAAN JTABLE. Gambar 1. Aplikasi 1 : TestTable1.java

PERTEMUAN 1,2. Memulai pemrograman Java NetBean Id 6.5 dengan tampilan grafis. 1. File > new project

Koneksi Java ke MySQL Database. Edi Sugiarto, S.Kom, M.Kom

PEMROGRAMAN VB.NET. Koneksi Ke Database

PERTEMUAN 1,2. Memulai pemrograman Java NetBean Id 6.5 dengan tampilan grafis. 1. File > new project

APLIKASI PEMBENTUKAN BADAN DAN BERAT IDEAL MENGGUNAKAN SOFTWARE NETBEANS Hafit Risky bin Hatim Dosen Pembimbing: Suhartini, S.

Aplikasi Grafik Menggunakan Netbeans

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

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

BAB 5 Koneksi Database : SQL dan JDBC

SISTEM INFORMASI DATA SISWA

Tugas IV Kelas Virtual Pemr. Visual

APLIKASI PERHITUNGAN NILAI MAHASISWA. Untuk membuat aplikasi nilai mahasiswa, langkah-langkahnya adalah sebagai berikut :

Pengajar dapat melihat Jadwal Mengajar Pengajar tersebut selama mengajar di

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

MODUL 7 - EXCEPTION HANDLING

(JCOMBOBOX) Pulut Suryati

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

DASAR PEMOGRAMAN JAVA

SAMPLE CRUD JAVA & MYSQL. Melakukan operasi database pada java dan mysql CRUD (Create, Read, Update,

LAPORAN MATA KULIAH PERANCANGAN SISTEM BERBASIS JAVA

Tugas Java. : Evannata Dwiyan. Nim : : Sistem Informasi. Kelas : 21. : Informasi Restoran

Membuat Aplikasi Database dengan Netbeans

Program Data Pelanggan Toko Bandung Fashion

TUGAS PEMROGRAMAN BERBASIS JAVA ADARA HIJAB

Materi 3 Pemrograman Visual

Membuat Aplikasi Desktop Client Server Sederhana dengan Java RMI

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Tahap implementasi merupakan prosedur yang harus. dilakukan untuk menyelesaikan desain sistem yang ada pada

LECTURE NOTE APLIKASI CRUD PERPUSTAKAAN

Tugas Pemrograman berbasis Java. (menggunakan Jcreator) GUI (Graphical User Interface) : Prima Satya Juhandana NIM :

BAB 3 CLASS DAN OBJECT. Tujuan:

Materi 5 Pemrograman Visual

Materi 1 Pemrograman Visual

PEMROGRAMAN VB.NET. Sintaks Pada Class

Transkripsi:

MODUL 3 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 3 1. Buka kembali project yang telah dibuat pada latihan 2 / Modul 2 (project akademik) 2. Pada latihan ini akan di tambahkan fungsi insert, update dan delete data TAHAP 1 3. Pada tahap satu ini akan dilengkapi source code pada Class SiswaDAOImpl dengan menambahkan metode insertsiswa, updatesiswa dan deletesiswa Ubah Clas SiswaDAOImpl menjadi seperti berikut : package akademik.siswa.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 SiswaDAOImpl implements SiswaDAO { private Connection connection; public SiswaDAOImpl() { // 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 Siswa getsiswa(string nim) { Siswa siswa = new Siswa(); Connection conn; Statement sttmt; //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from siswa where nim='"+ nim +"'"; ResultSet rssiswa = sttmt.executequery(query); rssiswa.next(); //bentuk object siswa dari data di Resultset siswa.setnim(rssiswa.getstring(1)); siswa.setnama(rssiswa.getstring(2)); siswa.setjk(rssiswa.getint(3)); siswa.setkelas(rssiswa.getstring(4)); siswa.setjurusan(rssiswa.getstring(5)); catch (Exception e) { System.out.println(e.getMessage()); return siswa; //metode untuk menampilkan semua data siswa public List getallsiswa() { List listsiswa = new ArrayList<Siswa>(); Connection conn; Statement sttmt; //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); //ambil data dan letakkan di Resultset String query = "select * from siswa"; ResultSet rssiswa = sttmt.executequery(query); //bentuk object list yang terdiri banyak object siswa //dari data di Resultset while (rssiswa.next()) { Siswa siswa = new Siswa(); siswa.setnim(rssiswa.getstring(1));

siswa.setnama(rssiswa.getstring(2)); siswa.setjk(rssiswa.getint(3)); siswa.setkelas(rssiswa.getstring(4)); siswa.setjurusan(rssiswa.getstring(5)); listsiswa.add(siswa); catch (Exception e) { System.out.println(e.getMessage()); return listsiswa; //metode untuk menambah data siswa ke dbms public void insertsiswa(siswa siswa) { Connection conn; Statement sttmt; //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "insert into siswa(nim, nama, jk, kelas, jurusan) "; query += "values ('"+ siswa.getnim().trim() +"', "; query += "'"+ siswa.getnama().trim() + "', "; query += ""+ siswa.getjk() + ", "; query += "'"+ siswa.getkelas().trim() +"', "; query += "'"+ siswa.getjurusan().trim() +"')"; sttmt.execute(query); catch (Exception e) { System.out.println(e.getMessage()); //metode untuk mengubah data siswa public void updatesiswa(siswa siswa) { Connection conn; Statement sttmt; //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "update siswa set nama='"+ siswa.getnama().trim() +"', "; query += "jk="+ siswa.getjk() + ", "; query += "kelas='"+ siswa.getkelas().trim() +"', "; query += "jurusan='"+ siswa.getjurusan().trim() +"' "; query += "where nim='"+ siswa.getnim().trim() +"'"; sttmt.execute(query);

catch (Exception e) { System.out.println(e.getMessage()); //metode untuk menghapus data siswa public void deletesiswa(siswa siswa) { Connection conn; Statement sttmt; //siapkan koneksi yang digunakan conn = getconnection(); //siapkan statement untuk mengeksekusi query sttmt = conn.createstatement(); String query = "delete from siswa "; query += "where nim='"+ siswa.getnim().trim() +"'"; System.out.println(query); sttmt.execute(query); catch (Exception e) { System.out.println(e.getMessage()); TAHAP 2 Pada tahap 2 ini akan diimplementasi method insertsiswa, updatesiswa dan deletesiswa dari SiswaDAOImpl untuk membuat fungsi penambahan, perubahan dan penghapusan data siswa. Pada Class SiswaModel 1. Ubah Class SiswaModel menjadi seperti berikut : package akademik.siswa; import akademik.siswa.dao.siswa; import akademik.siswa.dao.siswadaoimpl; import java.util.arraylist; import java.util.list; public class SiswaModel { private String nim; private String nama; private int jeniskelamin; private String kelas; private String jurusan; private ArrayList<Object> listeners = new ArrayList<Object>(10);

// deklarasikan object siswadao private SiswaDAOImpl siswadao; public SiswaModel() { // instansiasi object siswadao = new SiswaDAOImpl(); List lstsiswa = siswadao.getallsiswa(); int jml = lstsiswa.size(); if (jml > 0) { Siswa siswa = (Siswa) lstsiswa.get(0); setnim(siswa.getnim().trim()); setnama(siswa.getnama().trim()); setjeniskelamin(siswa.getjk()); setkelas(siswa.getkelas().trim()); setjurusan(siswa.getjurusan().trim()); public String getnim() { return nim; public String getnama() { return nama; public int getjeniskelamin() { return jeniskelamin; public String getkelas() { return kelas; public String getjurusan() { return jurusan; public void setnim(string nim) { this.nim = nim; public void setnama(string nama) { this.nama = nama; public void setjeniskelamin(int jeniskelamin) { this.jeniskelamin = jeniskelamin; public void setkelas(string kelas) { this.kelas = kelas;

public void setjurusan(string jurusan) { this.jurusan = jurusan; public void addmodelchangelistener(object view) { listeners.add(view); public void removemodelchangelistener(object view) { listeners.remove(view); public void insertsiswa() { Siswa siswa = new Siswa(); siswa.setnim(getnim()); siswa.setnama(getnama()); siswa.setjk(getjeniskelamin()); siswa.setkelas(getkelas()); siswa.setjurusan(getjurusan()); siswadao.insertsiswa(siswa); firemodelchangeevent(siswa); public void updatesiswa() { Siswa siswa = new Siswa(); siswa.setnim(getnim()); siswa.setnama(getnama()); siswa.setjk(getjeniskelamin()); siswa.setkelas(getkelas()); siswa.setjurusan(getjurusan()); siswadao.updatesiswa(siswa); firemodelchangeevent(siswa); public void deletesiswa() { Siswa siswa = new Siswa(); siswa.setnim(getnim()); siswa.setnama(getnama()); siswa.setjk(getjeniskelamin()); siswa.setkelas(getkelas()); siswa.setjurusan(getjurusan()); siswadao.deletesiswa(siswa); firemodelchangeevent(siswa);

private void firemodelchangeevent(object o) { for (Object v : listeners) { if (v.getclass().getname().equals("akademik.siswa.siswaformview") == true) { SiswaFormView s = (SiswaFormView) v; s.processmodelchange(v); if (v.getclass().getname().equals("akademik.siswa.siswadokumenview") == true) { SiswaDokumenView s = (SiswaDokumenView) v; s.processmodelchange(v); 2. Ubah Class SiswaController menjadi seperti berikut : package akademik.siswa; import akademik.siswa.dao.siswa; public class SiswaController { private SiswaModel model; private SiswaFormView view1; private SiswaDokumenView view2; public SiswaController(SiswaModel model, SiswaFormView view) { this.model = model; this.view1 = view; view1.addusergesturelistener(this); public SiswaController(SiswaModel model, SiswaDokumenView view) { this.model = model; this.view2 = view; view2.addusergesturelistener(this); public void processgetnim() { model.getnim(); public void processgetnama() { model.getnama(); public void processgetjeniskelamin() { model.getjeniskelamin();

public void processgetkelas() { model.getkelas(); public void processupdatenim(string nim) { model.setnim(nim); public void processupdatenama(string nama) { model.setnama(nama); public void processupdatejeniskelamin(int jeniskelamin) { model.setjeniskelamin(jeniskelamin); public void processupdatekelas(string kelas) { model.setkelas(kelas); public void processupdatejurusan(string jurusan) { model.setjurusan(jurusan); public void processupdatesiswa(siswa siswa) { processupdatenim(siswa.getnim().trim()); processupdatenama(siswa.getnama().trim()); processupdatejeniskelamin(siswa.getjk()); processupdatekelas(siswa.getkelas().trim()); processupdatejurusan(siswa.getjurusan().trim()); model.updatesiswa(); public void processinsertsiswa(siswa siswa) { processupdatenim(siswa.getnim().trim()); processupdatenama(siswa.getnama().trim()); processupdatejeniskelamin(siswa.getjk()); processupdatekelas(siswa.getkelas().trim()); processupdatejurusan(siswa.getjurusan().trim()); model.insertsiswa(); public void processdeletesiswa(siswa siswa) { processupdatenim(siswa.getnim().trim()); processupdatenama(siswa.getnama().trim()); processupdatejeniskelamin(siswa.getjk()); processupdatekelas(siswa.getkelas().trim()); processupdatejurusan(siswa.getjurusan().trim()); model.deletesiswa();

3. Ubah Class SiswaFormView menjadi seperti berikut : btninsert btnnew btndelete Sehingga menjadi sbb :

4. Ubah Listing Code Class SiswaFormView menjadi seperti berikut : package akademik.siswa; import akademik.siswa.dao.siswa; import java.util.arraylist; import javax.swing.event.listselectionevent; import javax.swing.event.listselectionlistener; public class SiswaFormView extends javax.swing.jframe implements ListSelectionListener { private SiswaModel model; private ArrayList<SiswaController> listeners = new ArrayList<SiswaController>(); //buat object SiswaModelTable menampilkan data dalam bentuk model private SiswaModelTable modeltabel; public SiswaFormView(SiswaModel model) { this.model = model; initcomponents(); modeltabel = new SiswaModelTable(); tabelsiswa.getselectionmodel().addlistselectionlistener(this); tabelsiswa.setmodel(modeltabel); refresh(); setvisible(true); setdefaultcloseoperation(dispose_on_close); model.addmodelchangelistener(this); public void addusergesturelistener(siswacontroller controller) { listeners.add(controller); public void processmodelchange(object event) { refresh(); private void refresh() { String nim = model.getnim(); String nama = model.getnama(); int jeniskelamin = model.getjeniskelamin(); String kelas = model.getkelas(); String jurusan = model.getjurusan(); txtnim.settext(nim); txtnama.settext(nama); if (jeniskelamin == 0) rdolaki.setselected(true); else rdoperempuan.setselected(true);

cbkelas.setselecteditem(kelas); lstjurusan.setselectedvalue(jurusan, true); private Siswa getuivalue() { String nim = txtnim.gettext().trim(); String nama = txtnama.gettext().trim(); int jeniskelamin = (rdolaki.isselected()== true? 0 : 1); String kelas = cbkelas.getselecteditem().tostring().trim(); String jurusan = lstjurusan.getselectedvalue().tostring().trim(); Siswa siswa = new Siswa(nim,nama,jeniskelamin,kelas,jurusan); return siswa; { private void btnupdateactionperformed(java.awt.event.actionevent evt) // TODO add your handling code here: Siswa siswa = getuivalue(); for (SiswaController con : listeners) { con.processupdatesiswa(siswa); { private void btninsertactionperformed(java.awt.event.actionevent evt) // TODO add your handling code here: Siswa siswa = getuivalue(); for (SiswaController con : listeners) { con.processinsertsiswa(siswa); modeltabel.add(siswa); { private void btndeleteactionperformed(java.awt.event.actionevent evt) // TODO add your handling code here: Siswa siswa = getuivalue(); for (SiswaController con : listeners) { con.processdeletesiswa(siswa); int index = tabelsiswa.getselectedrow(); modeltabel.remove(index); public void valuechanged(listselectionevent e) { Siswa siswa = modeltabel.get(tabelsiswa.getselectedrow()); catch (IndexOutOfBoundsException exception) {

// Variables declaration - do not modify private javax.swing.jbutton btndelete; private javax.swing.jbutton btninsert; private javax.swing.jbutton btnnew; private javax.swing.jbutton btnupdate; private javax.swing.buttongroup buttongroup1; private javax.swing.jcombobox cbkelas; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax.swing.jlabel jlabel3; private javax.swing.jlabel jlabel4; private javax.swing.jlabel jlabel5; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jscrollpane jscrollpane2; private javax.swing.jlist lstjurusan; private javax.swing.jradiobutton rdolaki; private javax.swing.jradiobutton rdoperempuan; private javax.swing.jtable tabelsiswa; private javax.swing.jtextfield txtnim; private javax.swing.jtextfield txtnama; // End of variables declaration