0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan45 halaman

Dasar Pemrograman OOP dengan Java

Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan45 halaman

Dasar Pemrograman OOP dengan Java

Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pemrograman Berorientasi Object

Dengan Java
Tingkat Dasar

Oleh IBNU AKIL, M Kom.


2

KATA PENGANTAR

Pemgrograman Berorientasi Objek atau OOP merupakan metode yang menjadi standar industri
pengembangan perangkan lunak sekarang ini. Oleh karena itu sangat penting untuk dikuasai dan
dipahami, baik mulai dari sisi pemodelan sampai pada implementasi ke bahasa pemrograman. Bahasa
Java adalah bahasa yang mengadopsi secara sempurna konsep-konsep OOP yang meliputi: class, object,
encapsulation, inheritance, dan polymorphism.

Modul ini merupakan referensi untuk matakuliah Pemodelan dan Pemrograman Berorientasi Objek.
Dimana mahasiswa akan dibimbing untuk memahami konsep OOP dan juga bagaimana pemodelan dan
implementasinya di dalam pemrograman, dalam hal ini menggunakan bahasa Java. Modul ini meliputi
uraian konsep OOP, pemodelan class, source code, dan perancangan user interface.

Diharapkan modul ini dapat membantu mahasiswa di dalam memahami dan mengimplementasikan
konsep dan pemrograman berorientasi objek dalam dunia kerja nantinya.
3

DAFTAR ISI

Lembar Judul
Kata Pengantar ................................................................................................. 2
Daftar Isi .......................................................................................................... 3
Bab I Konsep OOP Dalam Bahasa Java .......................................................... 4
Class ..................................................................................................... 4
Object ................................................................................................... 5
Encapsulation ....................................................................................... 5
Polymorphism ...................................................................................... 5
Inheritance ............................................................................................ 6
Bab II Pemrograman Database Dengan Konsep OOP ..................................... 7
Perancangan Class Diagram ................................................................. 7
Source Code Class ................................................................................ 7
Perancangan User Interface .................................................................. 12
Menambahkan Library ......................................................................... 15
Mendesain Report Dengan I Report .................................................... 16
Bab III Aplikasi Java dengan Framework Hibernate ....................................... 26
4

BAB I

Konsep OOP Dalam Bahasa Java

Tutorial ini akan membahasa implementasi OOP pada bahasa java. Berikut ini contoh penerapan
konsep OOP dalam bahasa pemrograman java.

1. Class

Class adalah struktur dasar dari suatu objek yang berisi atribut dan operasi. Berikut adalah
contoh dari class dalam bahasa Java.

class Ibu {
String nama;
int umur;

void getInfo(){
[Link](”Nama: ” + [Link]);
[Link](”Umur: ” + [Link]);
}
void menyanyi(){
[Link](”do re mi”);
}
}

Diatas adalah class Ibu yang mempunyai property nama dan umur. Dan mempunyai metode
getInfo dan menyanyi. berikut kita akan coba memangil kelas tersebut pada class utama/main.

public class Main{


public static void main(String[] args) {
Ibu mom = new Ibu();
[Link] = “Mami”;
[Link] = 55;

[Link]();
[Link]();
}
}

berikut adalah outputnya:


Nama: Mami
Umur: 55
do re mi

2. Object
5

Object adalah instansiasi dari class, suatu object mereferensi ke suatu kelas. pada kode diatas
“mom” adalah object yang meng-instansiasi class Ibu. Setelah di-instansiasi baru bisa kita gunakan
property dan metode yang ada pada class Ibu dengan menggunakan objectnya.

3. Encapsulation / pembungkusan

Pada class Ibu ada metode getInfo dan menyanyi. Kita tidak tahu apa isi kode dari metode
tersebut, tapi kita bisa menggunakan metode tersebut pada class Main. Ini yang disebut
encapsulation / pembungkusan. Tidak perlu tahu apa isi kodenya, cukup tahu apa fungsi dari
metode tersebut.

4. Polymorphism

Berikut ini adalah contah konsep polymorphism. Kita akan coba modifikasi class Ibu, perhatikan
ada dua metode yang sama yaitu menyanyi tapi memiliki output yang berbeda.

class Ibu {
String nama;
int umur;

void getInfo(){
[Link](”Nama: ” + [Link]);
[Link](”Umur: ” + [Link]);
}
void menyanyi(String Lagu){
[Link](”Saya menyanyi lagu ” + Lagu);
}
void menyanyi(int Lagu){
if (Lagu==1){
[Link](”Saya menyanyi lagu Rock!”);
}else{
[Link](”Saya menyanyi lagu dangdut!”);
}
}
}

kemudian kita panggil kedua metode tersebut pada class Main.

[Link](”Keroncong”);
[Link](2);

maka outputnya seperti berikut:


Saya menyanyi lagu Keroncong
Saya menyanyi lagu dangdut!

5. Inheritance

Pada contoh class Ibu di atas kita bisa praktekan inheritance dengan membuat class turunannya
misalkan class Anak. Class Anak ini mewarisi property dan metode yang ada pada class Ibu,
6

namun bisa juga kita tambahkan metode baru yang membedakannya dengan class Ibu. Misalkan
kita tambahkan metode menjahit pada class Anak.

public class Anak extends Ibu {

void menjahit(){
[Link](”Saya menjahit baju!”);
}
}

Kita menggunakan keyword extends untuk menyatakan class ini adalah class turunan. Kemudian
kita panggil class Anak ini dari class Main.

public class Main{


public static void main(String[] args) {
Anak rini = new Anak();
[Link] = “Rini”;
[Link] = 12;
[Link]();
[Link](”Gambus”);
[Link]();

}
}

Perhatikan di atas object rini yang merupakan instansiasi dari class Anak dapat juga menjalankan
metode getInfo dan menyanyi yang merupakan metode dari class Ibu.
7

BAB II

Pemrograman Database Dengan Konsep OOP

Dalam kasus ini kita akan menggunakan database mysql dengan database bernama latihan dan sebuah
table bernama karyawan dengan struktur sebagai berikut:

Nip : varchar
nm_kar :varchar
tem_lhr :varchar
tgl_lhr : date
jabatan : varchar

Tabel Karyawan

Berikut ini kelas-kelas yang akan digunakan.

1. Perancangan Class Diagram

class j av atutorial

CConnection
CKaryaw an
+ cn: Connection - c: CConnection
- jabatan: String
+ closeConnection() : void - nama: String
+ openConnection() : void - nip: String
- temp_lahir: String
- tgl_lahir: String

+ CKaryawan() : void
+ delete() : boolean
+ getJabatan() : String
+ getNama() : String
+ getNip() : String
+ getRecordByNip() : ResultSet
+ getRecords() : ResultSet
+ getTempatLahir() : String
+ getTglLahir() : String
+ insert() : boolean
+ setJabatan(String) : void
+ setNama(String) : void
+ setNip(String) : void
+ setTempatLahir(String) : void
+ setTglLahir(String) : void
+ update() : boolean

Gambar 2.1 Rancangan Class Diagram


8

2. Source Code Class

Class Cconnection:

package javatutorial;

import [Link].*;
public class CConnection {
public Connection cn;
static final String JDBC_DRIVER = "[Link]";
static final String DATABASE_URL = "jdbc:mysql://localhost/latihan";
public void openConnection(){
try{
[Link](this.JDBC_DRIVER);
}catch(ClassNotFoundException ex){
[Link]();
}
try{
cn = [Link](this.DATABASE_URL,"root","aksi2006");
[Link]("Database Connected!");

}catch(SQLException ex){
[Link]();
}
}
public void closeConnection(){
try{
if(![Link]()){
[Link]();
[Link]("Database closed!");
}
}catch(SQLException ex){
[Link]();
}
}
}
9

Class Ckaryawan:

package javatutorial;

import [Link].*;
public class CKaryawan {
private String nip;
private String nama;
private String temp_lahir;
private String tgl_lahir;
private String jabatan;
private CConnection c=new CConnection();
/*Ini Konstruktor untuk membuka koneksi*/
public CKaryawan(){
[Link]();
}

public void setNip(String value){


[Link] = value;
}
public String getNip(){
return [Link];
}
public void setNama(String value){
[Link] = value;
}
public String getNama(){
return [Link];
}
public void setTempatLahir(String value){
this.temp_lahir = value;
}
public String getTempatLahir(){
return this.temp_lahir;
}
public void setTglLahir(String value){
this.tgl_lahir = value;
}
public String getTglLahir(){
return this.tgl_lahir;
10

}
public void setJabatan(String value){
[Link] = value;
}
public String getJabatan(){
return [Link];
}

public boolean insert(){


boolean r=false;
String sql;
sql="INSERT INTO karyawan VALUES('" +
[Link] + "','" +
[Link] + "','" +
this.temp_lahir + "','" +
this.tgl_lahir + "','" +
[Link] + "')" ;
try{
Statement stmt = [Link]();
[Link](sql);
[Link]();
r=true;
}catch(SQLException e){
[Link]([Link]());
r=false;
}
return r;
}

public boolean update(){


boolean r=false;
String sql;
sql="UPDATE karyawan SET nm_kar='" +
[Link] + "',tem_lhr='" +
this.temp_lahir + "',tgl_lhr='" +
this.tgl_lahir + "',jabatan='" +
[Link] + "' WHERE nip='" + [Link] + "'" ;
try{
Statement stmt = [Link]();
[Link](sql);
11

r=true;
}catch(SQLException e){
[Link]([Link]());
r=false;
}
return r;
}

public boolean delete(){


boolean r=false;
String sql;
sql="DELETE FROM karyawan WHERE nip='" + [Link] + "'";

try{
Statement stmt = [Link]();
[Link](sql);
r=true;
}catch(SQLException e){
[Link]([Link]());
r=false;
}
return r;
}

public ResultSet getRecords(){


ResultSet rs=null;
String sql="SELECT * FROM karyawan";
try{
Statement stmt = [Link](ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = [Link](sql);
}catch(SQLException e){
[Link]([Link]());
}
return rs;
}
public ResultSet getRecordByNip(){
ResultSet rs=null;
String sql="SELECT * FROM karyawan WHERE nip='" + [Link] + "'";
try{
12

Statement stmt = [Link](ResultSet.TYPE_SCROLL_INSENSITIVE,


ResultSet.CONCUR_READ_ONLY);
rs = [Link](sql);
}catch(SQLException e){
[Link]([Link]());
}
return rs;
}
}

3. Perancangan User Interface

Sekarang kita coba implementasikan class CKaryawan pada form seperti berikut:

Gambar 2.2 User Inteface

Di bawah ini adalah kodenya:

• Fungsi (fillTable)

private void fillTable(boolean filter){


Object[] colHeader = {"Nip","Nama","Temp Lahir","Tgl Lahir","Jabatan"};
defTab = new DefaultTableModel(null,colHeader);
ResultSet rs=null;
CKaryawan ck = new CKaryawan();
if(filter){
13

[Link]([Link]());
rs = [Link]();
}else{
rs = [Link]();
}
try {
while ([Link]()) {
String[] rows = {[Link](1), [Link](2), [Link](3),
[Link](4), [Link](5)};
[Link](rows);
}
[Link](defTab);
} catch (SQLException ex) {
[Link]([Link]());
}
ck=null;
}

• Tombol Insert (btnInsert)


private void btnInsertActionPerformed([Link] evt) {
CKaryawan ck = new CKaryawan();
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]() + [Link]() + [Link]());
[Link]([Link]());
if([Link]()){
[Link](rootPane, "Data Tersimpan");
[Link](false);
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
}

• Tombol Update (btnUpdate)

private void btnUpdateActionPerformed([Link] evt) {


CKaryawan ck = new CKaryawan();
14

[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]() + [Link]() + [Link]());
[Link]([Link]());
if([Link]()){
[Link](rootPane, "Data Tersimpan");
[Link](false);
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
}
}

• Text NIP (txtNip)

private void txtNipKeyPressed([Link] evt) {


if([Link]()==10){
CKaryawan ck = new CKaryawan();
[Link]([Link]());
ResultSet rs = [Link]();
try {
[Link]();
[Link]([Link](2));
[Link]([Link](3));
String tgllhr = [Link](4);
[Link]([Link](8,10));
[Link]([Link](5, 7));
[Link]([Link](0, 4));
[Link]([Link](5));
[Link](true);
} catch (SQLException ex) {
[Link](ex);
}
}
}

Tombol Delete (btnDelete)


15

private void btnDeleteActionPerformed([Link] evt) {


int answer = [Link](rootPane, "Yakin di
hapus?","Konfirmasi",JOptionPane.YES_NO_OPTION);
if(answer==JOptionPane.YES_OPTION){
CKaryawan ck = new CKaryawan();
[Link]([Link]());
[Link]();
[Link](rootPane, "Data Terhapus");
}
}

• Form (FormKaryawan)
private void formWindowActivated([Link] evt) {

[Link](false);

• Tombol Close (btnClose)


private void btnCloseActionPerformed([Link] evt) {

[Link]();

4. Menambahkan Library

Sebelum dijalankan pastikan terlebih dahulu anda sudah menambahkan libarary mysql drivernya,
caranya seperti berikut:

• Klik Kanan pada node library

Gambar 2.3 Menambah Library


16

• Kemudian pilih Add Library.


• Kemudian pilih Mysql JDBC Driver.

Gambar 2.4 Form Add Library

• Klik Add Library.

5. Mendesain Report Dengan I Report

Sebelum mendesain report pastikan anda sudah menginstal aplikasi i-report (versi 3.1.2).

• Pilih menu File > Report Wizard


• Pilih Report > Report
17

Gambar 2.5 Report Wizard 1

• Beri nama report “[Link]”


• Kemudian klik Next > pilih New pada bagian Connections

Gambar 2.6 Report Wizard 2

• Pilih Database JDBC Connection kemudian Next


18

Gambar 2.7 Report Wizard 3

• Kemudian isikan seperti berikut; dan di save.

Gambar 2.8 Report Wizard 4


19

• Setelah itu isikan query pada form berikut:

Gambar 2.9 Report Wizard 5

• Klik Next kemudian pilih semua field yang akan ditampilkan.

Gambar 2.10 Report Wizard 6

• Kemudian klik Next terus sampai Finish


20

Gambar 2.11 Template Report

Kemudian simpan di folder

• Sekarang kita akan membuat menu untuk menampilkan formKaryawan dan reportnya,
namun sebelum itu buatlah sebuah class terlebih dahulu dengan nama FilePath seperti
berikut:
package javatutorial;
import [Link].*;
import [Link].*;
public class FilePath {

public String StrPath(String fileName){


Properties systemProp = [Link]();

String currDir = [Link]("[Link]");


String filepath = currDir + [Link] + "dist/rpt";

try {
filepath = filepath + [Link] + fileName;
[Link]("File Path : " + filepath);
[Link]();
} catch (Exception ex) {
[Link]();
}
return filepath;
}
}

• Berikut ini tampilan formMenu:


21

Gambar 2.12 Menu

Kemudian untuk kodenya perhatikan dibawah ini

• Menu Karyawan click (mnKaryawan)


private void mnKaryawanActionPerformed([Link] evt) {
FormKaryawan fk = new FormKaryawan();
[Link](null);
[Link](true);
}

• Menu Report Karyawan click (mnRepkaryawan)


private void mnRepKaryawanActionPerformed([Link] evt) {
FormRepKaryawan frk = new FormRepKaryawan();
[Link](null);
[Link](true);
}

• Menu Log Out (mnLogOut)


private void mnLogOutActionPerformed([Link] evt) {
[Link](0);
22

• Kemudian buatlah sebuah form untuk menampilkan report seperti berikut:

Gambar 2.13 Dialog Print

• Kode tombol Print (btnPrint)


private void btnPrintActionPerformed([Link] evt) {
CConnection c = new CConnection();
[Link]();
FilePath fp=new FilePath();
String fullPath = [Link]("[Link]");
try{
Map<String, Object> param = new HashMap<String, Object>();
JasperReport JRpt = [Link](fullPath);
JasperPrint JPrint = [Link](JRpt, param, [Link]);
[Link](JPrint,false);
}catch (Exception ex){
[Link]();
}
}

Namun sebelumnya jangan lupa tambahkan library JasperReport kedalam project. Library yang
dibutuhkan untuk mengeksekusi JasperReport antara lain:

[Link]

[Link]

[Link]

[Link]

[Link]

[Link]

[Link]

[Link](for excel export)


23

[Link]

Anda dapat mencarinya disini “C:\Program Files\JasperSoft\iReport-nb-3.1.2\ireport\modules\ext”

Gambar 2.14 Output Report

Membuat Parameter Pada Report.

• Klik kanan pada node Parameter pada Report Inspector pilih Add Parameter
24

• Berinama param_nip

• Kemudian klik ikon berikut:


• Kemudian edit querynya seperti berikut:

Gambar 2.15 Query Report

• Kemudian kita edit FormRepKaryawan seperti berikut:


25

Gambar 2.16 Dialog Print dengan Parameter

• Untuk kodenya pada tombol Print kita edit seperti berikut:


private void btnPrintActionPerformed([Link] evt) {
CConnection c = new CConnection();
[Link]();
FilePath fp = new FilePath();
String fullPath = [Link]("[Link]");
[Link](fullPath);
String nip = [Link]().toString();
try{
Map<String, Object> param = new HashMap<String, Object>();
[Link]("param_nip", nip);
JasperReport JRpt = [Link](fullPath);
JasperPrint JPrint = [Link](JRpt, param, [Link]);
[Link](JPrint,false);
}catch (Exception ex){
[Link](null, [Link]());
[Link]();
}
}
26

BAB III
APLIKASI JAVA DENGAN FRAMEWORK HIBERNATE

Hibernate adalah sebuah librari Object-relational mapping (ORM) untuk bahasa pemrograman java, Yang
menyediakan framework untuk memetakan object-oriented domain model menjadi relational database
yang umum. Hibernate memecahkan masalah ketidaksesuaian impedansi object-relational dengan
menggantikan langsung akses persistence-related database dengan penanganan fungsi-fungsi object
tingkat tinggi.

Contoh Project.

1. Buatlah sebuah project baru dengan nama “JavaPersistence”.


2. Kemudian klik kanan pada package javapersistence, pilih New, pilih Entity Classes from
Database

Gambar 3.1 Menu Entity Class

3. Kemudian pilih Database Connection -> New Database Connection


27

Gambar 3.2 Wizard Java Persistance 1

4. Kemudian isikan informasi mengenai koneksi database seperti berikut:

Gambar 3.3 Wizard Java Persistance 2

5. Kemudian pilih table yang akan ditambahkan sebagai contoh disini table karyawan.
28

Gambar 3.4 Wizard Java Persistance 3

6. Klik Add Kemudian klik Next, anda dapat menempatkan class ini dalam package yang berbeda,
tapi disini kita coba dalam satu package yang sama.

Gambar 3.5 Wizard Java Persistance 4

7. Klik Next kemudian klik Create Persistence Unit


29

Gambar 3.6 Wizard Java Persistance 5

8. Klik / pilih create.


9. Kemudian klik Next

Gambar 3.7 Wizard Java Persistance 6

10. Klik Finish.


11. Maka akan terbentuk satu kelas baru bernama “Karyawan” di dalam package javapersistence.

12.
13. Berikut ini kode yang ada pada class Karyawan tersebut:
package javapersistence;
30

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

@Entity
@Table(name = "karyawan")
@NamedQueries({@NamedQuery(name = "[Link]", query = "SELECT k FROM Karyawan k"),
@NamedQuery(name = "[Link]", query = "SELECT k FROM Karyawan k WHERE [Link] =
:nip"), @NamedQuery(name = "[Link]", query = "SELECT k FROM Karyawan k WHERE
[Link] = :nmKar"), @NamedQuery(name = "[Link]", query = "SELECT k FROM
Karyawan k WHERE [Link] = :temLhr"), @NamedQuery(name = "[Link]", query =
"SELECT k FROM Karyawan k WHERE [Link] = :tglLhr"), @NamedQuery(name =
"[Link]", query = "SELECT k FROM Karyawan k WHERE [Link] = :jabatan")})
public class Karyawan implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "nip")
private String nip;
@Column(name = "nm_kar")
private String nmKar;
@Column(name = "tem_lhr")
private String temLhr;
@Column(name = "tgl_lhr")
@Temporal([Link])
private Date tglLhr;
@Column(name = "jabatan")
private String jabatan;

public Karyawan() {
}

public Karyawan(String nip) {


[Link] = nip;
}
31

public String getNip() {


return nip;
}

public void setNip(String nip) {


[Link] = nip;
}

public String getNmKar() {


return nmKar;
}

public void setNmKar(String nmKar) {


[Link] = nmKar;
}

public String getTemLhr() {


return temLhr;
}

public void setTemLhr(String temLhr) {


[Link] = temLhr;
}

public Date getTglLhr() {


return tglLhr;
}

public void setTglLhr(Date tglLhr) {


[Link] = tglLhr;
}

public String getJabatan() {


return jabatan;
}

public void setJabatan(String jabatan) {


[Link] = jabatan;
}

@Override
public int hashCode() {
int hash = 0;
32

hash += (nip != null ? [Link]() : 0);


return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Karyawan)) {
return false;
}
Karyawan other = (Karyawan) object;
if (([Link] == null && [Link] != null) || ([Link] != null &&
![Link]([Link]))) {
return false;
}
return true;
}

@Override
public String toString() {
return "[Link][nip=" + nip + "]";
}

14. Kemudian tambahkan library yang dibutuhkan, caranya klik kanan pada icon Libraries, pilih add
library, Pilih Hibernate JPA, dan Mysql JDBC, Pilih Add Library.
33

Gambar 3.8 Menambahkan Library Hibernate

15. Kemudian selanjutnya kita desain class controller dengan nama “ControllerKaryawan”, seperti
berikut:
34

class j av apersistence

ControllerKaryaw an Karyaw an

+ delete(String) : boolean - jabatan: String


+ getAllKaryawan() : Collection<Karyawan> - nip: String
+ getFilteredKaryawan(String) : Collection<Karyawan> - nmkar: String
+ getKaryawan() : Collection<Karyawan> - temLhr: String
+ insert(Karyawan) : boolean - tglLhr: Date
+ update(Karyawan) : boolean
+ getJabatan() : String
+ getNip() : String
+ getNmKar() : String
EntityManager + getTemLhr() : String
+ getTglLhr() : Date
+ createNamedQuery(qry) : Query + setJabatan(value) : void
+ createQuery(qry) : Query + setNip(value) : void
+ find(Object, Class) : T + setNmKar(value) : void
+ getTransaction() : void + setTemLhr(value) : void
+ merge(obj) : void + setTglLhr(value) : void
+ persist(obj) : void
+ remove(obj) : void

Query

+ getResultList() : Collection

Gambar 3.9 Rancangan Class Diagram


package javapersistence;

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class ControllerKaryawan {

@[Link](unitName="JPUKaryawan")
EntityManagerFactory emf = [Link]("JPUKaryawan");
EntityManager em = [Link]();

public ControllerKaryawan(){

}
public boolean delete(String nip){
boolean r = false;
Karyawan kar = [Link]([Link], nip);
if(kar != null){
[Link]().begin();
[Link](kar);
35

[Link]().commit();
r = true;
}
return r;
}
public Collection<Karyawan> getAllKaryawan(){
Query qry = [Link]("[Link]");
return (Collection<Karyawan>) [Link]();
}
public Collection<Karyawan> getFilteredKaryawan(String sql){
Query qry = [Link](sql);
return (Collection<Karyawan>) [Link]();

public Karyawan getKaryawan(String nip){


Karyawan kar = [Link]([Link], nip);
return kar;
}
public boolean insert(Karyawan obj){
boolean r = false;
try{
[Link]().begin();
[Link](obj);
[Link]().commit();
r = true;
}catch(Exception ex){
[Link]();
}
return r;
}
public boolean update(Karyawan obj){
boolean r = false;
Karyawan kar = [Link]([Link], [Link]());
if(kar !=null){
[Link]().begin();
kar = [Link](obj);
[Link]().commit();
r = true;
}
return r;
}
}
36

16. Kemudian copy frame “FormKaryawan” yang ada pada project JavaTutorial sebelumnya, dan
edit kodenya seperti dibawah ini:

Gambar 3.10 Form Karyawan

uc Use Case

Tampilkan Data
Karyaw an

Actor1

Gambar 3.11 Use Case Tampilkan Data Karyawan


37

sd Sequence Diagram

Actor1 FormKaryawan
formWindowActivated() ck qry :Query em :Karyaw an
:ControllerKaryaw an :EntityManager

fillTable(boolean: filter)

alt filter
[filter=true] karCol= getFilteredKaryawan(String) :
Collection<Karyawan>
getResultList() :Collection
createQuery(qry) :Query

:Collection<Karyawan>
karCol= :
Collection<Karyawan>

alt filter
[filter=false]
karCol= getAllKaryawan() :Collection<Karyawan>
getResultList() :Collection
createNamedQuery(qry) :Query

:Collection<Karyawan>

karCol= :Collection<Karyawan>

loop
[Iterator i = [Link]]
Rows[]= getNip() :String
[[Link]]

Rows[]= getNmKar() :String

Rows[]= getTemLhr() :String

Rows[]= getTglLhr() :Date

Rows[]= getJabatan() :String

Gambar 3.12 Sequence Diagram Tampilkan Data Karyawan

• Fungsi fillTable:
private void fillTable(boolean filter){
Object[] colHeader = {"Nip","Nama","Temp Lahir","Tgl Lahir","Jabatan"};
defTab = new DefaultTableModel(null,colHeader);

Collection karCol = null;


ControllerKaryawan ck = new ControllerKaryawan();
if(filter){
karCol = [Link]("SELECT k FROM Karyawan k");
38

}else{
karCol = [Link]();
}

try {
for(Iterator i= [Link](); [Link]();){
Karyawan kar = (Karyawan) [Link]();
String[] rows = {[Link](), [Link](), [Link](),
[Link]().toString(), [Link]()};
[Link](rows);
}
[Link](defTab);
} catch (Exception ex) {
[Link]([Link]());
}
ck = null;
}

uc Use Case

Actor1 Tambah Data

Gambar 3.13 Use Case Tambah Data


39

sd SD Tambah Data

:Actor1 FormKaryawan
:Karyaw an ck em
:ControllerKaryaw an :EntityManager
insert()

setNip(txtNip)

setNmKar(txtNama)

setTemLhr(txtTempLhr)

setTglLhr(d)

setJabatan(txtJabatan)

alt

[[Link] = true] insert(Karyawan) :boolean


getTransaction()

persist(obj)

getTransaction()

fillTable()

Gambar 3.14 Sequence Diagram Tambah Data

• Button Insert:
private void btnInsertActionPerformed([Link] evt) {
Karyawan k = new Karyawan();
ControllerKaryawan ck = new ControllerKaryawan();
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
Date d = [Link]([Link]() + "-" + [Link]() + "-" +
[Link]());
[Link](d);
[Link]([Link]());
if([Link](k)){
[Link](rootPane, "Data Tersimpan");
[Link](false);
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
40

[Link]("");
[Link]("");
}
}

uc Use Case

Actor1

Update Data

Gambar 3.15 Use Case Update Data


sd SD Tambah Data

:Actor1 FormKaryawan
:Karyaw an ck em
:ControllerKaryaw an :EntityManager
update()

setNip(txtNip)

setNmKar(txtNama)

setTemLhr(txtTempLhr)

setTglLhr(d)

setJabatan(txtJabatan)

alt update(Karyawan) :
boolean
[[Link] = true] kar= find(Object,
Class) :T

alt getTransaction()
[kar != null]

merge(obj)

getTransaction()

fillTable()

Gambar 3.16 Sequence Diagram Update Data


41

• Button Update:
private void btnUpdateActionPerformed([Link] evt) {
Karyawan k = new Karyawan();
ControllerKaryawan ck = new ControllerKaryawan();
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
Date d = [Link]([Link]() + "-" + [Link]() + "-" +
[Link]());
[Link](d);
[Link]([Link]());
if([Link](k)){
[Link](rootPane, "Data Tersimpan");
[Link](false);
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
}

uc Use Case

Cari Data

Actor1

Gambar 3.17 Use Case Cari Data.


42

sd SD Cari Data

:Actor1 FormKaryawan
:Karyaw an ck
:ControllerKaryaw an
txtNipKeyPress()

alt

[[Link] == 10]

k= getKaryawan() :
Collection<Karyawan>

alt

[k != null]
txtNama= getNmKar() :String

txtTempLhr= getTemLhr() :String

tglLhr= getTglLhr() :Date

txtJabatan= getJabatan() :String

fillTable()

Gambar 3.18 Sequence Diagram Cari Data

• TextField txtNip:
private void txtNipKeyPressed([Link] evt) {
if([Link]()==10){
ControllerKaryawan ck = new ControllerKaryawan();
Karyawan k = new Karyawan();
k = [Link]([Link]());
if(k != null) {
[Link]([Link]());
[Link]([Link]());
String tgllhr = [Link]().toString();
[Link](tgllhr);
[Link]([Link](8,10));
[Link]([Link](5, 7));
[Link]([Link](0, 4));
[Link]([Link]());
[Link](true);
}
}
}
43

uc Use Case

Actor1

Hapus Data

Gambar 3.19 Use Case Hapus Data

sd SD Hapus Data

:Actor1 FormKaryawan
ck em
:ControllerKaryaw an :EntityManager
delete()

alt

[answer == yes]

alt
delete(txtNip) :boolean
[delete == true]

kar= find(Object, Class) :T

alt

[kar != null]
getTransaction()

remove(obj)

getTransaction()

Data Terhapus()

Gambar 3.20 Sequence Diagram Hapus Data

• Button Delete:
private void btnDeleteActionPerformed([Link] evt) {
int answer = [Link](rootPane, "Yakin di
hapus?","Konfirmasi",JOptionPane.YES_NO_OPTION);
if(answer==JOptionPane.YES_OPTION){
ControllerKaryawan ck = new ControllerKaryawan();

if([Link]([Link]())){
[Link](rootPane, "Data Terhapus");
44

}
}

• Frame FormKaryawan:
private void formWindowActivated([Link] evt) {
[Link](false);
}

• Button Close:
private void btnCloseActionPerformed([Link] evt) {
[Link]();
}

17. Kemudian jalankan project tersebut, maka akan tampil seperti berikut:

Gambar 3.21 User Interface


45

DAFTAR PUSTAKA

Dennis, A., Wixom, B. H., & Roth, R. M. (2012). System Analysys And Design. John Wiley & Sons.

Ian, D. (2001). Java Cookbook. O'Reilly.

Reese, G. (2003). Java Database Best Practice. O'Reilly.

Anda mungkin juga menyukai