Anda di halaman 1dari 32

BAB IV

IMPLEMENTASI SISTEM

4.1 Implementasi
Proses implementasi dari perancangan aplikasi yang dilakukan pada bab
sebelumnya akan dijelaskan pada bab ini. Implementasi bertujuan untuk
menterjemahkan keperluan perangkat lunak ke dalam bentuk sebenarnya yang
dimengerti oleh komputer atau dengan kata lain tahap implemetasi ini
merupakan tahapan lanjutan dari tahap perancangan yang sudah dilakukan.
Dalam tahap implementasi ini akan dijelaskan mengenai perangkat keras
(hardware) dan perangkat lunak (software) yang digunakan dalam membangun
sistem ini, file-file yang digunakan dalam membangun sistem, tampilan user
interface beserta potongan setiap script dalam program untuk menjalankan Aplikasi
Manajemen Pengarsipan Surat Masuk dan Surat Keluar Berbasis Desktop.

4.2 Perangkat Keras (Hardware) yang Digunakan


Perangkat keras yang digunakan untuk mengoperasikan Aplikasi
Manajemen Pengarsipan Surat Masuk dan Surat Keluar ini adalah:
a. Laptop HP 14-AM015TX
b. Processor Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz 2.40 GHz
c. RAM 4,00 GB
d. AMD Radeon Graphics

4.3 Perangkat Lunak (Software) yang digunakan


Perangkat lunak yang digunakan dalam membangun Aplikasi Manajemen
Pengarsipan Surat Masuk dan Surat Keluar ini adalah:
a. Netbeans IDE 8.2
b. SQLyog Ultimate
c. MySql

1
2

4.4 Implementasi Program


4.4.1 Implemantasi Form Loading
Pada form loading ini merupakan form yang pertama kali muncul ketika
program dijalankan. Sesudah halaman ini akan keluar halaman login.

Gambar 4. 1 Halaman Loading


Pada halaman loading ini terdapat jProgressBar yang akan berjalan hingga
100% sebelum nantinya akan menuju ke halaman login.
ActionListener waktu = new ActionListener() {
public void actionPerformed(ActionEvent e){
jProgressBar1.setValue(jProgressBar1.getValue()+1);
if (jProgressBar1.getValue()==jProgressBar1.getMaximum()
){
jalan.stop();
dispose();
login lg = new login();
lg.setVisible(true);
}}
};
Timer jalan = new Timer(40, waktu);
public void loading(){
jalan.start();
}

Gambar 4. 2 Source Code Halaman Loading.


3

4.4.2 Koneksi
Java Class koneksi ini memiliki fungsi untuk menghubungkan sistem
dengan database, dimana database yang digunakan adalah db_arsipsurat.

public koneksi(){
if (con==null)
{
try {
Class.forName("com.mysql.jdbc.Driver");

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_
arsipsurat","root","");
stat=con.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Koneksi Database
Gagal, Terjadi Kesalahan Pada : \n" + e);
}
}
}
Gambar 4. 3 Source Code koneksi

4.4.3 Tampilan Halaman Login


Halaman login akan muncul ketika form loading selesai.

Gambar 4.4. Tampilan Halaman Login


4

Pada halaman login ini terdapat 2 jTextField untuk mengisukan username


dan password pengguna serta terdapat tombol login untuk memproses username
dan password yang nantinya akan divalidasi oleh sistem untuk mendapatkan akses
pada sistem sesuai dengan hak aksesnya. Apabila username dan password gagal
divalidasi oleh sistem, maka akan muncul peringatan seperti pada gambar 4.5.

Gambar 4. 5 Tampilan Login Gagal

Apabila pengguna berhasil login, maka pengguna akan masuk halaman


utama sistem. Pada halaman login jugaterdapat tombol untuk melihat atau
menyembunyikan password. Potongan source code pada halaman login
a. Tombol Login
private void klikloginActionPerformed(java.awt.event.ActionEvent
evt) {
if (txtuser.getText().equals("") ||
txtpass.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Input username
dan password","Pesan",JOptionPane.INFORMATION_MESSAGE);
}else{
try {
ListLogin = pc.carilogin(txtuser.getText(),
Enkripsi.getSHA1(txtpass.getText()));
if(ListLogin.size()>=1){
if
(ListLogin.get(0).gethakakses().equalsIgnoreCase("Admin")){
tesmenu tmu = new tesmenu();
tmu.setVisible(true);
tmu.tampilUser(txtuser.getText());
dispose();
}else{
if
5

(ListLogin.get(0).gethakakses().equalsIgnoreCase("Operator")){
tesmenuoperator tmu1 = new
tesmenuoperator();
tmu1.setVisible(true);
tmu1.tampilUser(txtuser.getText());
dispose();
}
else{
if
(ListLogin.get(0).gethakakses().equalsIgnoreCase("Umum")){
tulissurat tls = new tulissurat();
tls.setVisible(true);
dispose();
}}
}
}else{
JOptionPane.showMessageDialog(null,
"Username atau Password tidak ditemukan \n Harap Ulangi", "Pesan",
JOptionPane.WARNING_MESSAGE);
txtpass.requestFocus();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Terjadi
Kesalahan Pada" + e);
}
}
}
Gambar 4. 6 Source Code Tombol Login

b. Tombol lihat dan sembunyikan password


private void
txtlihatpasswordMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
txtlihatpassword.setVisible(false);
txtlihatpassword.setEnabled(false);
txtsembunyipassword.setVisible(true);
txtsembunyipassword.setEnabled(true);
txtpass.setEchoChar((char)0);
}
private void
txtsembunyipasswordMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
txtlihatpassword.setVisible(true);
txtlihatpassword.setEnabled(true);
txtsembunyipassword.setVisible(false);
txtsembunyipassword.setEnabled(false);
txtpass.setEchoChar('*');
}

Gambar 4. 7 Source Code Tombol lihat dan sembunyikan password


6

4.4.4 Tampilan Halaman Utama Admin

Gambar 4. 8 Halaman Utama Admin.


Halaman utama Admin merupakan halaman yang akan muncul setelah
proses login dengan hak akses admin. Pada halaman utama ini terdapat menu utama
register surat masuk, register surat keluar, tulis surat NTCR, data master dan report
surat. Serta terdapat submenu about, logout dan keluar, serta menu tambahan web,
kalkulator dan google. Berikut ini adalah source code yang ada pada halaman
utama.
a. Source Code Menu Utama Register Surat Masuk
Source code ini akan mengeksekusi perintah yang akan menampilkan
halaman surat masuk.
private void
panelsuratmasukMousePressed(java.awt.event.MouseEvent evt) {
try {
this.setVisible(true);
new suratmasuk().show();
suratmasuk sm = new suratmasuk();
sm.setVisible(true);
sm.tampilUser(txtuser.getText());
} catch (SQLException ex) {

Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 9 Source Code Register Surat Masuk.
7

b. Source Code Menu Utama Register Surat Keluar


Source code ini akan mengeksekusi perintah yang akan menampilkan
halaman surat keluar.
private void
panelsuratkeluarMousePressed(java.awt.event.MouseEvent evt) {
try {
this.setVisible(true);
new suratkeluar().show();
suratkeluar sk = new suratkeluar();
sk.setVisible(true);
sk.tampilUser(txtuser.getText());
} catch (SQLException ex) {

Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 10 Source Code Register Surat Keluar.

c. Source Code Menu Utama Tulis Surat NTCR


Source code ini akan mengeksekusi perintah yang akan menampilkan
halaman tulis surat.
private void
paneltulissuratMousePressed(java.awt.event.MouseEvent evt) {
try {
this.setVisible(true);
new tulissurattesfix().show();
tulissurattesfix ts = new tulissurattesfix();
ts.setVisible(true);
ts.tampilUser(txtuser.getText());
} catch (SQLException ex) {

Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 11 Source Code Tulis Surat NTCR.
8

d. Source Code Menu Utama Data Master


Source code ini akan mengeksekusi perintah yang akan menampilkan
halaman data master.
private void
paneldatamasterMouseClicked(java.awt.event.MouseEvent evt) {
try {
this.setVisible(true);
new datamastertesfixx().show();
datamastertesfixx dm = new datamastertesfixx();
dm.setVisible(true);
dm.tampilUser(txtuser.getText());
} catch (SQLException ex) {
Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 12 Source Code Data Master.
e. Source Code Menu Utama Report Surat
Source code ini akan mengeksekusi perintah yang akan menampilkan
halaman report surat.
private void panelreportMouseClicked(java.awt.event.MouseEvent
evt) {
this.setVisible(true);
new reporttesfix().show();
reporttesfix rp = new reporttesfix();
rp.setVisible(true);
rp.tampilUser(txtuser.getText());
}

Gambar 4. 13 Source Code Report Surat.


f. Source Code Submenu About
Source code ini akan menampilkan panel About.
private void panelaboutMouseClicked(java.awt.event.MouseEvent
evt) {
panabaout.setVisible(true);
panabaout.setEnabled(true);
paneldatamaster.setEnabled(false);
paneldatamaster.setVisible(false);
panelsuratmasuk.setVisible(false);
pankeluar.setVisible(false);
panelsuratmasuk.setEnabled(false);
panelsuratkeluar.setEnabled(false);
panelsuratkeluar.setVisible(false);
panlogout.setVisible(false);
jLabel11.requestFocus();
}
Gambar 4. 14 Source Code About
9

Gambar 4. 15 Panel About .


private void txtbackMouseClicked(java.awt.event.MouseEvent evt) {
panabaout.setVisible(false);
panabaout.setEnabled(false);
}
Gambar 4. 16 Souce Code Tombol Back.
g. Source Code Submenu Logout
Source code ni akan menampilkan panel logout
private void panellogoutMousePressed(java.awt.event.MouseEvent
evt) {
panlogout.setVisible(true);
panlogout.setEnabled(true);
}
Gambar 4. 17 Source Code Panel Logout.
10

Gambar 4. 18 Panel Logout


Pada panel logout terdapat 2 tombol yaitu ya atau tidak.
private void jLabel23MouseClicked(java.awt.event.MouseEvent evt)
{
this.setVisible(false);
login ld = new login();
ld.setVisible(true);
}
private void jLabel24MouseClicked(java.awt.event.MouseEvent
evt) {
panlogout.setVisible(false);
panlogout.setEnabled(false);
}
Gambar 4. 19 Source Code Tombol Ya dan Tidak
h. Source Code Submenu Keluar
Source code ni akan menampilkan panel logout
private void panellogoutMousePressed(java.awt.event.MouseEvent
evt) {
pankeluar.setVisible(true);
pankeluar.setEnabled(true);
}
Gambar 4. 20 Source Code Panel Keluar.
11

Gambar 4. 21 Panel Keluar.


Pada panel Keluar terdapat 2 tombol yaitu ya atau tidak.
private void jLabel25MouseClicked(java.awt.event.MouseEvent evt)
{
System.exit(0);
}
private void jLabel26MouseClicked(java.awt.event.MouseEvent evt)
{
pankeluar.setVisible(false);
pankeluar.setEnabled(false);
}
Gambar 4. 22 Source Code Tombol Ya dan Tidak
i. Source Code Menu Tambahan
berhubungan dengan aplikasi lain, seperti panel web akan membuka website
desa, panel kalkulator akan membuka aplikasi kalkulator dan panel google
akan membuka website google
private void jPanel13MousePressed(java.awt.event.MouseEvent evt)
{
sidoluhur();}
private void jPanel12MousePressed(java.awt.event.MouseEvent evt)
{
try {
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("calc");
p.waitFor();
} catch (Exception e) {
} }
private void jPanel11MousePressed(java.awt.event.MouseEvent evt)
{
internet();}
Gambar 4. 23 Source Code Menu Tambahan.
12

4.4.5 Tampilan Halaman Utama Operator

Gambar 4. 24 Halaman Utama Operator


Tampilan halaman utama ini merupakan halaman yang akan tampil setelah
pengguna masuk dengan menggunakan hak akses operator.

4.4.6 Tampilan Halaman Utama Layanan Umum

Gambar 4. 25 Halaman Utama Layanan Umum


Tampilan halaman utama ini merupakan halaman yang akan tampil setelah
pengguna masuk dengan menggunakan hak akses umum. Pengguna hanya bisa
mengakses pembuatan surat NTCR.
13

4.4.7 Tampilan Halaman Register Surat Masuk

Gambar 4. 26 Tampilan Halaman Surat Masuk


Halaman Register surat masuk berfungsi untuk mengolah data surat yang
masuk ke kelurahan desa Sidoluhur. Pada halaman ini terdapat 11 jTextField yaitu
nmrsurat, tanggalmasuk, pilihinstansi, isiprihalmasuk, lampiranmasuk,
keteranganmasuk, pilihdisposisi, iduser, kdsuratmasuk, kdinstansi dan kddisposisi
untuk menginputkan data, serta 1 jTextField carisuratmasuk untuk mencari data
ditabel terdapat juga beberapa tombol yang berfungsi antara lain menginputkan data
surat, mengedit data surat dan menghapus data surat.
Berikut source code tombol yang ada di halaman surat masuk :
a. Tombol Simpan
private void
simpanmasukActionPerformed(java.awt.event.ActionEvent evt) {
if (tanggalmasuk.getDateEditor().equals(null)||
pilihinstansi.getText().isEmpty()|| nmrsurat.getText().isEmpty()
|| pilihdisposisi.getText().isEmpty()||
isiprihalmasuk.getSelectedItem()
.equals("") || lampiranmasuk.getText().isEmpty() ||
keteranganmasuk.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Data Harus
Lengkap", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} else {
SimpleDateFormat fm = new SimpleDateFormat("dd-MM-
yyyy");
String
tanggal=String.valueOf(fm.format(tanggalmasuk.getDate()));
dsk.setnosuratmasuk(nmrsurat.getText());
dsk.setKdsurat(kdsuratmasuk.getText());
dsk.setKdpengguna(iduser.getText());
dsk.setKdinstansi(kdinstansi.getText());
dsk.setKddisposisi(kddisposisi.getText());
14

dsk.setTglmasuk(tanggal);
dsk.setTerimadari(pilihinstansi.getText());
dsk.setIsiprihal(isiprihalmasuk.getSelectedItem().toString());
dsk.setLampiran(lampiranmasuk.getText());
dsk.setKeterangan(keteranganmasuk.getText());
dsk.settujuandisposisi(pilihdisposisi.getText());
if (tambahmasuk.getText().equalsIgnoreCase("Batal"))
{
if (smk.tambatsurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data
telah disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
buattable();
showtabel();
try {
tampilx();
} catch (SQLException ex) {

Logger.getLogger(suratmasuk.class.getName()).log(Level.SEVERE,
null, ex);
}
} else {
JOptionPane.showMessageDialog(null, "Data
gagal disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
if (editmasuk.getText().equalsIgnoreCase("Batal")) {
if (smk.editsurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data
Telah Dirubah", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
buattable();
showtabel();
}else{
JOptionPane.showMessageDialog(null, "Data
Gagal DIrubah", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
bersih();
siapIsi(false);
tambahmasuk.setText("Tambah");
editmasuk.setText("Edit");
tombolnormal();
}
}
Gambar 4. 27 Source Code Simpan.
15

b. Tombol Tambah
private void
tambahmasukActionPerformed(java.awt.event.ActionEvent evt) {
if (tambahmasuk.getText().equalsIgnoreCase("Tambah")) {
tambahmasuk.setText("Batal");
bersih();
siapIsi(true);
urutansurat();
pilihdisposisi.requestFocus();
tombolkembali();
} else {
tambahmasuk.setText("Tambah");
bersih();
siapIsi(true);
tombolnormal();
}
}
Gambar 4. 28 Source Code Tambah.
c. Tombol Edit
private void
editmasukActionPerformed(java.awt.event.ActionEvent evt) {
if (editmasuk.getText().equalsIgnoreCase("Edit")) {
editmasuk.setText("Batal");
siapIsi(true);
kdsuratmasuk.setEnabled(false);
kdinstansi.setEnabled(false);
kddisposisi.setEnabled(false);
nmrsurat.requestFocus();
tambahmasuk.setEnabled(false);
simpanmasuk.setEnabled(true);
hapusmasuk.setEnabled(false);
editmasuk.setEnabled(true);
} else {
editmasuk.setText("Edit");
bersih();
siapIsi(false);
tombolnormal();
}
}
Gambar 4. 29 Source Code Edit.
16

d. Tombol Hapus
private void
hapusmasukActionPerformed(java.awt.event.ActionEvent evt) {
dsk.setKdsurat(kdsuratmasuk.getText());
int pesan = JOptionPane.showConfirmDialog(null, "Data
akan
dihapus?","Konfirmasi",JOptionPane.YES_NO_CANCEL_OPTION,JOptionP
ane.QUESTION_MESSAGE);
if (smk.deletesurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data telah
dihapus");
bersih();
siapIsi(false);
tombolnormal();
buattable();
showtabel();
try {
tampilx();
} catch (SQLException ex) {
Logger.getLogger(suratmasuk.class.getName()).log(Level.SEVERE,
null, ex);}
}else{
JOptionPane.showMessageDialog(null, "Data gagal
dihapus");
} }
Gambar 4. 30 Source Code Hapus.

4.4.8 Tampilan Halaman Register Surat Keluar

Gambar 4. 31 Tampilan Halaman Surat Keluar.


17

Halaman Register surat keluar berfungsi untuk mengolah data surat yang
dikeluarkan kelurahan desa Sidoluhur. Pada halaman ini terdapat ini terdapat 9
jTextField yaitu nmrsurat, tanggalkeluar, isiprihalkeluar, pilihinstansi
lampiranmasuk, keteranganmasuk, iduser, kdsuratkeluar dan kdinstansi untuk
menginputkan data, serta 1 jTextField carisuratkeluar dan beberapa tombol yang
berfungsi antara lain meinputkan data surat, mengedit data surat dan menghapus
data surat.
Berikut source code tombol yang ada di halaman surat masuk :
a. Tombol Simpan
private void
simpankeluarActionPerformed(java.awt.event.ActionEvent evt) {
if (tanggalkeluar.getDateEditor().equals(null) ||
keterangankeluar.getText().isEmpty() ||
nmrsurat.getText().isEmpty() ||
isiprihalkeluar.getSelectedItem()
.equals("") || iduser.getText().isEmpty() ||
lampirankeluar.getText().isEmpty() ||
keterangankeluar.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Data Harus
Lengkap", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} else {
SimpleDateFormat fm = new SimpleDateFormat("dd-MM-
yyyy");
String
tanggal=String.valueOf(fm.format(tanggalkeluar.getDate()));
dsk.setKdsurat(kdsuratkeluar.getText());
dsk.setKdpengguna(iduser.getText());
dsk.setKdinstansi(kdinstansi.getText());
dsk.setnosuratkeluar(nmrsurat.getText());
dsk.setTglkeluar(tanggal);
dsk.setIsiprihal(isiprihalkeluar.getSelectedItem().toString());
dsk.setKeterangan(keterangankeluar.getText());
dsk.setLampiran(lampirankeluar.getText());
dsk.setTujuan(pilihinstansi.getText());
if
(tambahkeluar.getText().equalsIgnoreCase("Batal")) {
if (smk.tambatsurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data
telah disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
buattable();
showtabel();
} else {
JOptionPane.showMessageDialog(null, "Data
gagal disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
if (editkeluar.getText().equalsIgnoreCase("Batal"))
{
if (smk.editsurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data Telah Dirubah", "Arsip
Surat", JOptionPane.INFORMATION_MESSAGE);
18

buattable();
showtabel();
}else{
JOptionPane.showMessageDialog(null, "Data
Gagal DIrubah", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
bersih();
tombolnormal();
siapIsi(false);
tambahkeluar.setText("Tambah");
editkeluar.setText("Edit");
tombolnormal();
}
}
Gambar 4. 32 Source Code Simpan.
b. Tombol Tambah
private void
tambahkeluarActionPerformed(java.awt.event.ActionEvent evt) {
if (tambahkeluar.getText().equalsIgnoreCase("Tambah")) {
tambahkeluar.setText("Batal");
bersih();
siapIsi(true);
urutansurat();
nmrsurat.requestFocus();
tombolkembali();
} else {
tambahkeluar.setText("Tambah");
bersih();
siapIsi(true);
tombolkembali();
}
}
Gambar 4. 33 Source Code Tambah.
19

c. Tombol Edit
private void
tambahkeluarActionPerformed(java.awt.event.ActionEvent evt) {
if (tambahkeluar.getText().equalsIgnoreCase("Tambah")) {
tambahkeluar.setText("Batal");
bersih();
siapIsi(true);
urutansurat();
nmrsurat.requestFocus();
tombolkembali();
} else {
tambahkeluar.setText("Tambah");
bersih();
siapIsi(true);
tombolkembali();
}
}
Gambar 4. 34 Source Code Edit.
d. Tombol Hapus
private void
hapuskeluarActionPerformed(java.awt.event.ActionEvent evt) {
dsk.setKdsurat(kdsuratkeluar.getText());
int pesan = JOptionPane.showConfirmDialog(null, "Data
akan
dihapus?","Konfirmasi",JOptionPane.YES_NO_CANCEL_OPTION,JOptionP
ane.QUESTION_MESSAGE);
if (smk.deletesurat(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data telah
dihapus");
bersih();
siapIsi(false);
tombolnormal();
buattable();
showtabel();
}else{
JOptionPane.showMessageDialog(null, "Data gagal
dihapus");
}
}
Gambar 4. 35 Source Code Hapus.
20

4.4.9 Tampilan Halaman Buat Surat NTCR


a. Tampilan Utama Buatt Surat NTCR

Gambar 4. 36 Tampilan Halaman Buat Surat


Pada halaman buat surat ini terdapat 2 submenu, yang akan menghubungkan
dengan panel input data yaitu submenu laki-laki dan perempuan. Berikut source
code submenu tersebut
1. Submenu Laki-Laki
private void panlakiMousePressed(java.awt.event.MouseEvent evt) {
jLabel1peremp.setVisible(false);
jLabel2laki.setVisible(true);
nikahlaki.setEnabled(true);
nikahlaki.setVisible(true);
nikahperempuan.setEnabled(false);
nikahperempuan.setVisible(false);
jLabel23.setVisible(true);
jLabel23.setEnabled(true);
panperempuan.setVisible(false);
panperempuan.setEnabled(false);
panlaki.setVisible(false);
panlaki.setEnabled(false);
}
Gambar 4. 37 Source Code Submenu Laki-Laki
21

2. Submenu Perempuan
private void panperempuanMousePressed(java.awt.event.MouseEvent
evt) {
jLabel1peremp.setVisible(true);
jLabel2laki.setVisible(false);
nikahlaki.setEnabled(false);
nikahlaki.setVisible(false);
nikahperempuan.setEnabled(true);
nikahperempuan.setVisible(true);
jLabel23.setVisible(true);
jLabel23.setEnabled(true);
panperempuan.setVisible(false);
panperempuan.setEnabled(false);
panlaki.setVisible(false);
panlaki.setEnabled(false);
}

Gambar 4. 38 Source Code Submenu Perempuan

b. Tampilan NTCR Perempuan

Halaman NTCR Perempuan ini berfungsi untuk membuat surat NTCR


(Nikah, Talak, Cerai, Rujuk) yang dikeluarkan oleh kelurahan desa Sidoluhur
berdasarkan permohonan masyarakat yang akan menikah. Dalam halaman ini
terdapat 8 jTextField yaitu namacalonsuamiprmhn, namacalonisriprmhn,
maskwnprmhn, namapemohon, hariprmhn, tanggalprmhn, jamprmhn, dan
tempatprmhn yang nantinya akan mengisikan data-data pribadi keperluan menikah
dan akan menampilkan output dalam bentuk dokumen surat permohonan nikah.
22

Berikut source code tombol yang ada pada halaman NTCR perempuan :
1. Tombol Simpan
private void
simpanprmhnActionPerformed(java.awt.event.ActionEvent evt) {
if (namacalonsuamiprmhn.getText().isEmpty()||
namcalonistriprmhn.getText().isEmpty()
|| maskwnprmhn.getText().isEmpty()||
namapemohon.getText().isEmpty()
|| hariprmhn.getText().isEmpty()||
tanggalprmhn.getDateEditor().equals(null)
|| jamprmhn.getText().isEmpty() ||
tempatprmhn.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Data Harus
Lengkap", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} else {
SimpleDateFormat fm = new SimpleDateFormat("dd-MM-
yyyy");
String
tanggal=String.valueOf(fm.format(tanggalprmhn.getDate()));
dpm.setclnsuami(namacalonsuamiprmhn.getText());
dpm.setclnistri(namcalonistriprmhn.getText());
dpm.setmaskawin(maskwnprmhn.getText());
dpm.setpemohon(namapemohon.getText());
dpm.sethari(hariprmhn.getText());
dpm.settanggal(tanggal);
dpm.setjam(jamprmhn.getText());
dpm.settempat(tempatprmhn.getText());
if (tambahprmhn.getText().equalsIgnoreCase("Batal"))
{
if (pmk.tambahpemohon(dpm)==1) {
JOptionPane.showMessageDialog(null, "Data
telah disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Data
gagal disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} }
isi.setVisible(false);
bersihpermohonan();
siapIsipermohonan(false);
tambahprmhn.setText("Tambah");
try{
koneksireport objkoneksi = new koneksireport();
Connection con =objkoneksi.bukakoneksi();
String filetoFill="./src/tesfix/report/report3.jasper";
Map param= new HashMap();
JasperFillManager.fillReport(filetoFill, param,
con);
JasperPrint
jp=JasperFillManager.fillReport(filetoFill, param,con);
JasperViewer.viewReport(jp,false);
}catch(Exception ex){
System.out.println(ex.toString());
} } }
Gambar 4. 39 Source Code Tombol Simpan.
23

Pada tombol simpan terjadi proses penyimpanan data ke dalam database dan
memunculkan data kedalam bentuk Report Wizard yang bisa disimpan dalam
bentuk file dokumen.

Gambar 4. 40 Tampilan Surat.


24

2. Tombol Tambah
private void
tambahpgntrActionPerformed(java.awt.event.ActionEvent evt) {
if (tambahpgntr.getText().equalsIgnoreCase("Tambah")) {
tambahpgntr.setText("Batal");
bersihpengantar();
ilang1.setVisible(true);
siapIsipengantar(true);
namapengantinpgntr.requestFocus();
simpanpgntr.setEnabled(true);
} else {
ilang1.setVisible(false);
tambahpgntr.setText("Tambah");
bersihpengantar();
siapIsipengantar(true);
}
}
Gambar 4. 41 Source Code Tombol Tambah.

4.4.10 Tampilan Halaman Data Master Admin

Gambar 4. 42 Halaman Data Master Admin


Halaman data master admin ini hanya bisa diakses oleh pengguna dengan
hak akses admin. Pada halaman ini terdapat submenu data petugas, data pengguna,
data penduduk, data instansi dan data disposisi yang setiap submenu mempunyai
proses menampilkan panel sesuai dengan namanya.
Berikut source code submenu pada halaman data master :
25

a. Submenu Data Petugas


private void
pdatapetugasMousePressed(java.awt.event.MouseEvent evt) {
pdpetugas.setEnabled(true);
pdpetugas.setVisible(true);
}
Gambar 4. 43 Source Code Submenu Data Petugas

b. Submenu Data Pengguna


private void
pdatapenggunaMousePressed(java.awt.event.MouseEvent evt) {
pdpengguna.setEnabled(true);
pdpengguna.setVisible(true);
}
Gambar 4. 44 Source Code Submenu Data Pengguna

c. Submenu Data Penduduk


private void
pdatapendudukMousePressed(java.awt.event.MouseEvent evt) {
pdpenduduk.setEnabled(true);
pdpenduduk.setVisible(true);
}
Gambar 4. 45 Source Code Submenu Data Penduduk

d. Submenu Data Instansi


private void
pdatainstansiMousePressed(java.awt.event.MouseEvent evt) {
pdinstansi.setEnabled(true);
pdinstansi.setVisible(true);
}
Gambar 4. 46 Source Code Submenu Data Instansi

e. Submenu Data Disposisi


private void
pdatadisposisiMousePressed(java.awt.event.MouseEvent evt) {
pddisposisi.setEnabled(true);
pddisposisi.setVisible(true);
}
Gambar 4. 47 Source Code Submenu Data Disposisi
26

4.4.11 Tampilan Halaman Data Master Operator

Gambar 4. 48 Halaman Data Master Operator


Halaman data master operator ini bisa diakses oleh pengguna dengan hak
akses operator. Pada halaman ini hanya terdapat submenu data instansi dan data
disposisi, tidak seperti hak akses admin yang bisa mengakses semua data master.

a. Panel Disposisi

Gambar 4. 49 Panel Data Disposisi


Pada panel ini terdapat 3 jTextField yaitu kddisposisi, tujuandisp dan
namadisp. Terdapat beberapa tombol yang berfungsi antara lain meinputkan data
surat, mengedit data surat dan menghapus data disposisi.
27

Berikut source code tombol pada panel data disposisi :


1. Tombol Simpan
private void
simpandispActionPerformed(java.awt.event.ActionEvent evt) {
if (namadisp.getText().isEmpty()||
tujuandisp.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Data Harus
Lengkap", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
} else {
dsk.setKddisposisi(kddisposisi.getText());
dsk.setTujuandisposisi(tujuandisp.getText());
dsk.setnama(namadisp.getText());
if (tambahdisp.getText().equalsIgnoreCase("Batal"))
{
if (smk.tambahdisposisi(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data
telah disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
buattabledisposisi();
showtabeldisposisi();
try {
tampilxdisposisi();
} catch (SQLException ex) {

Logger.getLogger(disposisitesfix.class.getName()).log(Level.SEVE
RE, null, ex);
}
} else {
JOptionPane.showMessageDialog(null, "Data
gagal disimpan", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
if (editdisp.getText().equalsIgnoreCase("Batal")) {
if (smk.editdisposisi(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data
Telah Dirubah", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
buattabledisposisi();
showtabeldisposisi();
}else{
JOptionPane.showMessageDialog(null, "Data
Gagal DIrubah", "Arsip Surat", JOptionPane.INFORMATION_MESSAGE);
}
}
bersihdisposisi();
siapIsidisposisi(false);
tambahdisp.setText("Tambah");
editdisp.setText("Edit");
tombolnormaldisposisi();
}
}
Gambar 4. 50 Source Code Tombol Simpan
28

2. Tombol Tambah
private void
tambahdispActionPerformed(java.awt.event.ActionEvent evt) {
if (tambahdisp.getText().equalsIgnoreCase("Tambah")) {
tambahdisp.setText("Batal");
bersihdisposisi();
siapIsidisposisi(true);
urutansuratdisposisi();
tujuandisp.requestFocus();
tombolkembalidisposisi();
} else {
tambahdisp.setText("Tambah");
bersihdisposisi();
siapIsidisposisi(true);
tombolnormaldisposisi();
}
}
Gambar 4. 51 Source Code Tombol Tambah

3. Tombol Edit
private void editdispActionPerformed(java.awt.event.ActionEvent
evt) {
if (editdisp.getText().equalsIgnoreCase("Edit")) {
editdisp.setText("Batal");
siapIsidisposisi(true);
kddisposisi.setEnabled(false);
tujuandisp.requestFocus();
} else {
editdisp.setText("Edit");
bersihdisposisi();
siapIsidisposisi(false);
tombolnormaldisposisi();
}
}
Gambar 4. 52 Source Code Tombol Edit

4. Tombol Hapus
private void hapusdispActionPerformed(java.awt.event.ActionEvent
evt) {
dsk.setKddisposisi(kddisposisi.getText());
int pesan = JOptionPane.showConfirmDialog(null, "Data
akan
dihapus?","Konfirmasi",JOptionPane.YES_NO_CANCEL_OPTION,JOptionP
ane.QUESTION_MESSAGE);
if (smk.deletedisposisi(dsk)==1) {
JOptionPane.showMessageDialog(null, "Data telah
dihapus");
bersihdisposisi();
siapIsidisposisi(false);
tombolnormaldisposisi();
29

buattabledisposisi();
showtabeldisposisi();
try {
tampilxdisposisi();
} catch (SQLException ex) {
Logger.getLogger(datamastertesfixx.class.getName()).log(Level.SE
VERE, null, ex);
}
}else{
JOptionPane.showMessageDialog(null, "Data gagal
dihapus");
}
}
Gambar 4. 53 Source Code Tombol Hapus

4.4.12 Tampilan Halaman Report Surat

Gambar 4. 54 Halaman Report Surat


Pada halaman report surat masuk terdapat 2 submenu yaitu report surat
masuk dan report surat keluar yang akan menghubungkan pada setiap panel report
surat masuk dan surat keluar.
Berikut source code submenu report surat :
a. Submenu Report Masuk
private void
preportmasukMousePressed(java.awt.event.MouseEvent evt) {
panreportmasuk.setEnabled(true);
panreportmasuk.setVisible(true);
}

Gambar 4. 55 Source Code Submenu Report Masuk


30

b. Submenu Report Keluar


private void
preportmasukMousePressed(java.awt.event.MouseEvent evt) {
panreportkeluar.setEnabled(true);
panreportkeluar.setVisible(true);
}

Gambar 4. 56 Source Code Submenu Report Keluar

1. Panel Report Surat Masuk

Gambar 4. 57 Panel Surat Masuk


Pada panel surat masuk ini terdapat 2 jDateChooser yaitu tglakhirmasuk dan
tglawalmasuk. Pada tombol lihat report akan terjadi proses pemilihan data
berdasarkan periode tanggal yang dipilih dan akan ditampilkan kedalam tabel. Dan
pada tombol cetak report ini akan menampilkan data yang ada di tabel menjadi file
Wizard Report.
Berikut source code panel surat masuk
a. Tombol Lihat Report
private void
tampilreportmasukActionPerformed(java.awt.event.ActionEvent evt)
{
try {
SimpleDateFormat fm = new SimpleDateFormat("dd-MM-
yyyy");
String tanggal =
fm.format(tglakhirmasuk.getDate()).toString();
String tgl =
fm.format(tglawalmasuk.getDate()).toString();
31

konek.res = konek.stat.executeQuery("SELECT * FROM


surat_masuk WHERE tanggal_diterima BETWEEN '"+tgl+"' and
'"+tanggal+"'");
while(konek.res.next()){
tblm.addRow(new Object[]{
konek.res.getString("kd_surat"),
konek.res.getString("no_suratmasuk"),
konek.res.getString("tanggal_diterima"),
konek.res.getString("terima_dari"),
konek.res.getString("isi_prihal"),
konek.res.getString("lampiran"),
konek.res.getString("keterangan"),
konek.res.getString("tujuan_disposisi")
});
tblreportmasuk.setModel(tblm);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "data tidak
ditemukan" );
}
}

Gambar 4. 58 Source Code Tombol Lihat Report

b. Tombol Cetak Report


private void
cetakreportmasukActionPerformed(java.awt.event.ActionEvent evt)
{
try {
File report = new File
("src/tesfix/report/testreport.jrxml");
JasDes = JRXmlLoader.load(report);
parameter.put("tgldari", tgldari);
parameter.put("tglsampai", tglsampai);
JasRep = JasperCompileManager.compileReport(JasDes);
JasPri = JasperFillManager.fillReport(JasRep,
parameter, konek.con);
JasperViewer.viewReport(JasPri, false);
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
}
}
Gambar 4. 59 Source Code Tombol Cetak Report
32

Gambar 4. 60 Report Surat Masuk

Anda mungkin juga menyukai