Penjelasan Implement Pada OOP Java
Assalamu'alaikum wr.wb.
Beberapa waktu yang lalu, saya telah membahas mengenai OOP pada java. Pada artikel tersebut saya membahas tentang entitas, interface, implement dan factory, yang kemudian dipanggil ke view. Namun artikel yang saya buat sebelumnya hanyalah penjelasan DAO saja. Dan untuk implement belum dijelaskan secara rinci. Oleh karena itu pada kesempatan ini saya akan membahas tentang penjelasan implement pada OOP bahasa pemrograman java.
Pada artikel ini saya mencoba untuk memberikan penjelasan mengenai implement yang mana merupakan salah satu dari konsep OOP dengan patern DAO. Beberapa programmer mungkin merasa bingung dengan implement. Karena implement inilah yang merupakan penghubung antara CRUD dan program. Di DAO, semu proses yang berhubungan dengan database diletakkan di implement. Hal ini bertujuan agar program terlihat lebih rapi sehingga para developer mampu mengembangkan program dengan cara membedakan kelompok class dengan masing - masing kegunaannya.
Baca Juga
- MongoDB, Database Tanpa Relasi
- Contoh Program Class Pada Bahasa Pemrograman Python
- Lebih Lanjut Tentang Select Di MySQL
Seperti yang saya jelaskan sebelumnya, Artikel ini adalah lanjutan dari OOP Patern DAO Pada Java. Jadi bagi yang belum membaca, silahkan baca artikel tersebut. Selain itu, saya juga memberikan contoh dengan tabel yang saya tunjukkan di artikel tersebut. Dengan kata lain, untuk program entitas, interface dan factory saya anggap sudah dibuat di artikel sebelumnya.
Oke langsung saja, sebelum memulainya, simak dulu baik - baik artikel yang saya bahas tentang membangun koneksi database. Karena class koneksi tersebut sangat berpengaruh pada implement. Di implement ini method - method dari koneksi dibutuhkan.. Berikut merupakan tutorial implement pada java.
Pada artikel sebelumnya saya sudah membuat contoh implement secara menyeluruh. hanya saja belum diberikan codingannya. Untuk mengingatkan kembali. Saya buat lagi dibawah ini.
import java.util.List; public class ImplementMobil implements InterfaceMobil { @Override public boolean insertMobil(Mobil m) { // TODO Auto-generated method stub return false; } @Override public boolean updateMobil(Mobil m) { // TODO Auto-generated method stub return false; } @Override public boolean deleteMobil(Mobil m) { // TODO Auto-generated method stub return false; } @Override public List<Mobil> selectMobil() { // TODO Auto-generated method stub return null; } }
Kita bisa lihat pada script diatas, Terdapat komentar yang bertuliskan "TODO Auto-generated method stub". Disitulah kita mengettikan perintah - perintah CRUD. Berikutnya saya pisah satu persatu yang dikelompokkan sesuai dengan method yang ada.
Kita perlu mengimport entitas di class implement.
import Mobil;
Script diatas untuk mengimport entitas Mobil. Nama class tersebut adalah Mobil. Letakkan script di biagian paling atas. Kita perlu mengimport class Mobil karena class tersebut adalah class penghubung antara implement dan view yang nantinya data yang dikirimkan ke implement dikirim melalui class entitas.
Berikut ini adalah contoh program CRUD pada Java.
Pertama, kita buat variabel - variabel yang dibutuhkan dibawah nama class
private final Koneksi db; private ResultSet res; private String query;
Penjelasan program :
- kita memanggil class koneksi dengan object db, lalu kita buat final. Artinya class tersebut tidak dapat diturunkan di class lain.
- Resultset adalah fungsi untuk menghubungkan ke database.
- String query berfungsi untuk menentukan query MySQL.
Variabel - variabel diatas dibutuhkan untuk menjangkau database. dengan variabel tersebut, kita dapat menentukan apa yang akan dilakukan oleh program ketika kita mengakses database.
Selanjutnya, kita buat constructor pada implement. Seperti pada artikel tentang konsep OOP java. Contstructor adalah yang diaktifkan pertama kali ketika class dipanggil. Berikut ini merupakan constructor pada class implementMobil
public ImplementMobil(){ db = new Koneksi(); }
Dengan constructor diatas, artinya ketika kita memanggil implement, kita juga memanggil class koneksi secara bersamaan. Hal tersebut bertujuan agar kita tidak selalu mengetikkan koneksi di tiap method. Dengan constructor diatas, kita dapat meringkas program setidaknya satu baris.
Dibawah ini merupakan method dari implement beserta programnya :
1. INSERT
public boolean insertMobil(Mobil m) { query = "INSERT INTO mobil (nama_mobil, jenis_mobil, warna_mobil, merk_mobil) " +"VALUES('"+m.getNama_mobil+"','"+m.getJenis_mobil+"','"+m.getWarna_mobil+"','"+m.getMerk_mobil+"')"; return db.runQuerySQL(query); }
Penjelasan program :
- pada variabel queri diisi dengan perintah untuk menginput data mobil
- runQuerySQL merupakan method dari class koneksi yang berfungsi untuk mengeksekusi query CRUD
2. UPDATE
public boolean updateMobil(Mobil m) { query = "UPDATE mobil SET nama_mobil = '"+m.getNama_mobil()+"' , " +"jenis_mobil = '"+m.getJenis_mobil()+"'" +", warna_mobil = '"+m.getWarna_mobil()+"' " +", merk_mobil = '"+m.getMerk_mobil()+"'" +"WHERE id_mobil = '"+m.getId_mobil()+"'"; return db.runQuerySQL(query); }
Penjelasan program :
- pada variabel queri diisi dengan perintah untuk mengubah data mobil
- runQuerySQL merupakan method dari class koneksi yang berfungsi untuk mengeksekusi query CRUD
3. DELETE
public boolean deleteMobil(Mobil m) { query = "DELETE FROM mobil " +"WHERE id_mobil = '"+m.getId_mobil+"'"; return db.runQuerySQL(query); }
Penjelasan program :
- pada variabel queri diisi dengan perintah untuk menghapus data mobil
- runQuerySQL merupakan method dari class koneksi yang berfungsi untuk mengeksekusi query CRUD
4. SELECT
public List<Mobil> selectMobil() { query = "SELECT * FROM mobil"; List<Mobil> list = new ArrayList<>(); res = db.getRs(query); try { while(res.next()){ Mobil m = new Mobil(); m.setNama_mobil.setId(res.getInt(1)); m.setJenis_mobil(res.getString(2)); m.setWarna_mobil(res.getString(3)); m.setMerk_mobil(res.getString(4)); list.add(mobil); } } catch (Exception e) { System.out.println("Tampil Mobil Error "+e); StoreErrorMessage.storeErrMsg("Tampil Mobil Error "+e); } return list; }
Penjelasan Program :
- Variabel query berisi perintah SELECT untuk menampilkan data mobil
- db.getRs merupakan method dari class koneksi yang berfungsi untuk mengeksekusi perintah SELECT
- while(rs.next()) artinya terjadi perulangan ketika data dari tabel mobil masih terbaca (Dalam hal ini tiap data dalam tabel dibaca per baris)
- didalam perulangan merupakan perintah untuk menambahkan data ke list
5. Tampilan Class Implement Secara Keseluruhan
Setelah kita memahami baik - baik tentang kegunaan method masing - masing di implement, sekarang saya akan menunjukkan tampilan program secara keseluruhan dimana semua program diatas digabung menjadi satu. Berikut ini merupakan tampilannya :import java.util.List; import Mobil; public class ImplementMobil implements InterfaceMobil { private final Koneksi db; private ResultSet res; private String query; public ImplementMobil(){ db = new Koneksi(); } @Override public boolean insertMobil(Mobil m) { query = "INSERT INTO mobil (nama_mobil, jenis_mobil, warna_mobil, merk_mobil) " +"VALUES('"+m.getNama_mobil+"','"+m.getJenis_mobil+"','"+m.getWarna_mobil+"','"+m.getMerk_mobil+"')"; return db.runQuerySQL(query); } @Override public boolean updateMobil(Mobil m) { query = "UPDATE mobil SET nama_mobil = '"+m.getNama_mobil()+"' , " +"jenis_mobil = '"+m.getJenis_mobil()+"'" +", warna_mobil = '"+m.getWarna_mobil()+"' " +", merk_mobil = '"+m.getMerk_mobil()+"'" +"WHERE id_mobil = '"+m.getId_mobil()+"'"; return db.runQuerySQL(query); } @Override public boolean deleteMobil(Mobil m) { query = "DELETE FROM mobil " +"WHERE id_mobil = '"+m.getId_mobil+"'"; return db.runQuerySQL(query); } @Override public List<Mobil> selectMobil() { query = "SELECT * FROM mobil"; List<Mobil> list = new ArrayList<>(); res = db.getRs(query); try { while(res.next()){ Mobil m = new Mobil(); m.setNama_mobil.setId(res.getInt(1)); m.setJenis_mobil(res.getString(2)); m.setWarna_mobil(res.getString(3)); m.setMerk_mobil(res.getString(4)); list.add(mobil); } } catch (Exception e) { System.out.println("Tampil Mobil Error "+e); StoreErrorMessage.storeErrMsg("Tampil Mobil Error "+e); } return list; } }
Class implement diatas berfungsi untuk memberikan perintah dari program ke database. Maka dari itu, implement merupakan konsep terpenting dalam OOP dengan partern DAO. Jadi tidak heran jika pada class implement, terdapat banyak sekali perintah - perintah yang dibutuhkan. Disinilah otak dari program itu sendiri.
Hi, Really great effort. Everyone must read this article. Thanks for sharing.
ReplyDelete