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.
1
2
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
(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
Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 9 Source Code Register Surat Masuk.
7
Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 10 Source Code Register Surat Keluar.
Logger.getLogger(tesmenu.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Gambar 4. 11 Source Code Tulis Surat NTCR.
8
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.
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
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);
}
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.
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.
a. Panel Disposisi
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