Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
27
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Dalam melakukan analisa penulis juga harus mengetahui mengenai perusahaan
FIFGROUP Unit Wadas. Disini saya akan menginformasikan sejarah singkat
FIFGROUP Unit Wadas dan struktur organisasinya.
3.1.1. Sejarah Perusahaan
FIFGROUP Unit Wadas merupakan salah satu unit atau cabang pembantu dari
FIFGROUP Pontianak. FIFGROUP sendiri merupakan suatu perusahaan pembiayaan
kredit sepeda motor baru, seperda motor second, pembiayaan elektronik dan furniture.
Di FIFGROUP Unit Wadas sendiri khusus pembiayaan pengajuan kredit pinjaman
dana tunai. FIFGROUP Unit Wadas ini beralamat di Jl. Buahaseum Rt 04/02 Desa
Karyamukti Kec.Lemahabang Kab.KarawangTujuan didirikannya perusahaan ini
adalah untuk:
1. Membangun citra positif perusahaan (Corporate Image).
2. Menjaga keberlanjutan dan oparasional bisnis perusahaan (Social Protection).
3. Meningkatkan kebanggaan karyawan terhadap perusahaan (Pride Of Employee).
4. Mendukung kegiatan bisnis perusahaan (Support To Bussiness).
Adapun Visi dari FIFGROUP Unit Wadas adalah memastikan FIFGROUP
menjadi perusahaan yang dikagumi serta memberikan nilai tambah bagi masyarakat
dan lingkungan sekitar. Adapun Misi dari FIFGROUP Unit Wadas adalah:
1. Meningkatkan kualitas hidup masyarakat di sekitar lingkungan kantor.
2. Membangun hubungan yang harmonis dengan komunitas sekitar lingkungan
kantor.
28
3. Menciptakan image perusahaan yang positif bagi masyarakat.
4. Menciptakan lingkungan kerja yang nyaman, aman dan sehat bagi karyawan.
3.1.2. Struktur Organisasi dan Fungsi
Berikut adalah struktur organisasi FIFGROUP Unit Wadas:
Sumber: FIFGROUP Unit Wadas (2019)
Gambar III.1.
Struktur Organisasi FIFGROUP Unit Wadas
Fungsi dan tanggung jawab dari setiap komponen organisasi adalah
sebagai berikut:
1. UH (Unit Head)
a. Penanggung jawab seluruh kegiatan personal di perusahaan
b. Menerima laporan harian dan bulanan
c. Membuat perencanaan perencairan konsumen
2. CA (Credit Analyst)
a. Menganalisa data konsumen yang pengajuan
b. Mengeksekusi setiap pengajuan layak atau tidak layaknya diberikan pinjaman
c. Mengkoordinir surveyor yang bekerja di lapangan
29
3. ADH (Admin Head)
a. Penanggung jawab admin
b. Mengurus masalah keuangan kasir
c. Mengawasi perpajakan
d. Mengontrol pelunasan piutang konsumen
4. SPV (Supervisor)
a. Mengatur sales lapangan dan custumer service yang merangkap menjadi sales
counter
b. Membuat promosi marketing
c. Bertanggung jawab pada target setiap sales
5. Surveyor
a. Memverifikasi data di lapangan
b. Melaporkan setiap fakta-fakta konsumen ke CA
6. Kasir
a. Bertanggung jawab atas uang untuk pencairan konsumen
b. Menyerahkan uang pencairan ke konsumen
c. Membuat laporan data-data konsumen yang pencairan setiap harinya
d. Membuat laporan BPKB konsumen yang menjadi jaminan pinjaman setiap
harinya.
e. Menerima angsuran konsumen yang melakukan pembayaran kredit
7. CS (Custumer Service)
a. Melayani setiap kepentingan konsumen yang datang
b. Bertanggung jawab atas target yang diberiikan oleh SPV
c. Melakukan marketing by phone
d. Membuat laporan data-data konsumen yang datang ke kantor
30
8. Sales
a. Mencari konsumen di lapangan
b. Melakukan canvasing (menyebar brosur)
c. Membuat laporan kegiatan apa saja yang dilakukan di lapangan setiap harinya
ke SPV.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Sistem berjalan adalah serangkaian proses keluar masuknya berkas yang terjadi pada
suatu sistem yang sedang berjalan. Maksud dari sistem berjalan ini adalah untuk
mendapatkan gambaran lebih jelas tentang bentuk permasalahan yang ada di suatu
perusahaan. Berikut ini adalah sistem pengajuan kredit pinjaman dana tunai pada
FIFGROUP Unit Wadas, yaitu:
1. Pengajuan Kredit
Untuk proses pengajuan kredit, konsumen harus mengisi FPK (Formulir
Pengajuan Kredit) yang diberikan oleh CS. Setelah di isi oleh konsumen, FPK
tersebut di berikan kembali ke CS sebagai syarat awal pengajuan kredit.
2. Proses Verifilkasi Data
FPK yang sudah di isi konsumen kemudian di serahkan ke CA (Credit Analyst)
untuk diverifikasi, CA mengecek nama konsumen ke sistem apakah nama tersebut
sudah pernah kredit atau belum di FIFGROUP, jika belum pernah maka CA
mengkoordinir surveyor dengan memberikan LPV (Lembar Penugasan Verifikasi)
untuk meninjau ke rumah konsumen dan memvalidasi data di lapangan. Setelah
surveyor ke lapangan dan mengisi Form Check list Verifikasi kemudian diberikan
ke CA. CA mendapatkan informasi dari Form Check list verifikasi mengenai
31
konsumen baru lah CA memutuskan apakah konsumen tersebut layak atau tidak
diberikan pinjaman. Jika sudah pernah kredit dan melihat riwayat pembayaran
konsumen yang baik maka CA tetap memberikan LPV ke surveyor untuk
memvalidasi apakah alamat konsumen masih sama atau berbeda.
3. Proses Pencairan
Apabila layak CA akan membuat APP (Approval) yang kemudian diserahkan ke
ADH (Admin Head). Setelah APP diterima oleh ADH, kemudian ADH membuat
SPC (Surat Perintah Cair) untuk diberikan ke kasir yang kemudian kasir membuat
tanda terima dan menyiapkan dana untuk diserahkan ke konsumen. Pencairan dana
hanya boleh dilakukan oleh kasir pencairan atau ADH sebagai atasan. Kasir
menghubungi konsumen yang telah disetujui pengajuan kredit dana tunainya untuk
datang ke kantor melengkapi berkas yaitu fotokopi KTP (Kartu Tanda Penduduk),
KK (Kartu Keluarga), STNK (Surat Tanda Nomor Kendaraan) dan BPKB (Bukti
Pemilikan Kendaraan Bermotor) sebagai jaminan kredit kemudian
menandatangani perjanjian kontrak dan tanda terima dana tunai yang di buat oleh
kasir pencairan. Kemudaian uang diserahkan ke konsumen.
4. Laporan Pencairan
Setelah konsumen menerima dana tunai dari kasir pencairan. Kemudian kasir
pencairan membuat laporan berdasarkan rangkap tanda terima yang telah di tanda
tangani oleh konsumen kemudian menyerahkan laporan tersebut ke Unit Head.
32
3.2.2. Activity Diagram
1. Activity Diagram Proses Pengajuan Kredit
Gambar III.2.
Activity Diagram Proses Pengajuan Kredit
act Pengajuan Kredit
Konsumen Customer Service
Mulai
Melakukan Pengajuan Memberikan Formulir
Pengajuan
Mengisi Formulir Pengajuan
Menyerahkan Kembali
Formulir Pengajuan
Menerima Formulir
Pengajuan , Sebagai Syarat
Awal
Selesai
33
2. Activity Diagram Proses Verifikasi Data
Gambar III.3.
Activity Diagram Verifikasi Data
3. Activity Diagram Proses Pencairan
Gambar III.4.
Activity Diagram Proses Pencairan
act Verifikasi Data
SurveyorCredit AnalystCustomer Service
Mulai
Memberikan Formulir Kredit
Ke CA
Melakukan Verifikasi Data
Mengkoordinasikan surveyor
untuk melakukan survey
dengan menberikan Lembar
Penugasan /verifikasi
Melakukan Survey
Menyerahkan hasil survey
berupa form checklist
Menerima form checklist dan
memverifikasi hasil survey
Selesai
act Pencairan
KonsumenKasirAdmin HeadCredit Analyst
Mulai
Membuat approval sebagai
persetujuan pengajuan kredit ke
Admin Head
Membuat Surat Perintah
Pencairan untuk diberikan ke
kasir
Menyiapkan Tanda Terima dan
Dana untuk diberikan ke
konsumen
Meminta Konsumen melengkapi
persyaratan pencairan kredit
Melengkapi persyaratan kredit
Memberikan Dana yang telah
disetujui dan Tanda terima
Menerima Dana dan tanda terima
Selesai
34
4. Activity Diagram Proses Laporan
Gambar III.5.
Activity Diagram Proses Pembuatan Laporan
3.2.3. Dokumen Masukan
1. Nama Dokumen : Formulir Pengajuan Kredit
Fungsi : Sebagai Formulir pengajuan kredit
Sumber : Customer Service
Tujuan : Konsumen
Media : Dokumen cetakan komputer
Jumlah : 1 rangkap
Frekuensi : Setiap pengajuan kredit
Lampiran : A-1
2. Nama Dokumen : Form Check List Verifikasi
Fungsi : Untuk laporan hasil verifikasi data di lapangan
Sumber : Surveyor
act Laporan
Unit HeadKasir
Mulai
Membuat Rekap Tanda
Terima
Menyerahkan Laporan Ke Unit
Head
Menerima dan Menerima
Laporan
Selesai
35
Tujuan : Credit Analyst (CA)
Media : Dokumen cetakan komputer
Jumlah : 2 rangkap
Frekuensi : Setiap surveyor melakukan verifikasi konsumen di Lapangan
Lampiran : A-2
3. Nama Dokumen : Approval
Fungsi : Sebagai syarat untuk membuat SPC
Sumber : Credit Analyst (CA)
Tujuan : Admin Head (ADH)
Media : Dokumen cetakan komputer
Jumlah : 1 rangkap
Frekuensi : Setiap konsumen yang layak untuk pencairan dana
Lampiran : A-3
4. Nama Dokumen : Buku Pemilik Kendaraan Bermotor
Fungsi : Jaminan atas kredit pinjamann dana tunai
Sumber : Konsumen
Tujuan : Kasir
Media : Buku
Jumlah : 6 lembar
Frekuensi : Setiap konsumen yang transaksi pencairan dana
Lampiran : A-4
5. Nama Dokumen : Surat Tanda Nomor Kendaraan
Fungsi : Syarat data pengajuan kredit
Sumber : Konsumen
Tujuan : Sales
36
Media : Dokumen cetakan komputer
Jumlah : 2 lembar
Frekuensi : Setiap konsumen yang akan pengajuan kredit
Lampiran : A-5
6. Nama Dokumen : Kartu Tanda Penduduk
Fungsi : Syarat data pengajuan kredit
Sumber : Konsumen
Tujuan : Sales
Media : Dokumen cetakan komputer
Jumlah : 1 lembar
Frekuensi : Setiap konsumen yang akan pengajuan kredit
Lampiran : A-6
7. Nama Dokumen : Kartu Keluarga
Fungsi : Syarat data pengajuan kredit
Sumber : Konsumen
Tujuan : Sales
Media : Dokumen cetakan komputer
Jumlah : 1 lembar
Frekuensi : Setiap konsumen yang akan pengajuan kredit
Lampiran : A-7
3.2.4. Bentuk Dokumen Keluaran
1. Nama Dokumen : SPC
Fungsi : Perintah pencairan untuk kasir
Sumber : Admin Head
37
Tujuan : Kasir
Media : Dokumen cetakan komputer
Jumlah : 1 rangkap
Frekuensi : Setiap konsumen yang sudah disetujui
Lampiran : B-1
2. Nama Dokumen : Tanda Terima
Fungsi : Sebagai bukti penyerahan dana tunai ke konsumen
Sumber : Kasir Pencairan
Tujuan : Konsumen
Media : Dokumen cetakan komputer
Jumlah : 2 rangkap
Frekuensi : Setiap melakukan pencaiaran dana tunai ke Konsumen
Lampiran : B-2
3. Nama Dokumen : Laporan Pencairan
Fungsi : Untuk laporan ke Unit Head (UH)
Sumber : Kasir Pencairan
Tujuan : Unit Head (UH)
Media : Dokumen cetakan komputer
Jumlah : 2 rangkap
Frekuensi : Setiap hari
Lampiran : B-3
4. Nama Dokumen : Lembar Penugasan Verifikasi
Fungsi : Perintah untuk melakukan survey ke lapangan
Sumber : CA (Credit Analyst)
Tujuan : Surveyor
38
Media : Dokumen cetakan komputer
Jumlah : 1 rangkap
Frekuensi : Setiap ada konsumen yang melakukan pengajuan Pinjaman
Lampiran : B-457
5. Nama Dokumen : Perjanjian Kredit
Fungsi : Sebagai kesepakatan kredit antara FIF dan konsumen
Sumber : Kasir
Tujuan : Konsumen
Media : Dokumen cetakan komputer
Jumlah : Satu lembar
Frekuensi : Setiap konsumen yang akan menerima dana
Lampiran : B-5
3.2.5. Permasalahan Pokok
Dari sistem berjalan pada FIFGROUP Unit Wadas dapat ditemukan beberapa
masalah yang mengakibatkan belum maksimalnya sistem berjalan yang diterapkan
oleh FIFGROUP Unit Wadas. Adapun beberapa permasalahan tersebut adalah:
1. Konsumen sering menunggu lama di kantor untuk melakukan proses awal
pengajuan kredit yaitu mengisi FPK (Formulir Pengajuan Kredit).
2. Lamanya CS menyerahan FPK yang sudah di isi konsumen ke CA sehingga hasil
pengajuan menjadi lama dan mengurangi kepuasaan konsumen.
3. Banyak ditemukan data konsumen yang tidak valid karena tidak adanya
pengecekan nama konsumen ke Bank Indonesia Checking.
39
3.2.6. Pemecahan Masalah
Permasalahan yang terjadi di FIFGROUP Unit Wadas lebih mendasar terletak
pada sumber daya manusia serta sistem yang dijalankan perusahaan tersebut, sehingga
manajemen perusahaan harus mengambil keputusan yang efisien dan efektif guna
memperbaiki sistem yang sedang berjalan sekarang agar lebih teratur dan kedepannya
perusahaan dapat lebih maju. Adapun alternatif pemecahan masalah yang dapat
penulis ambil adalah:
1. Sales bisa melakukan pengisian FPK (Formulir Pengajuan Kredit) di sistem.
2. FPK yang sudah di olah Sales dapat langsung diterima dan diproses oleh CA
(Credit Analyst)
3. CA diwajibkan untuk melakukan verifikasi data konsumen ke Bank Indonesia
Checking.
3.3. Analisis Kebutuhan Software
3.3.1. Analisa Kebutuhan
Agar dalam perancangan sistem informasi menjadi tepat guna, maka
dibutuhkan analisa kebutuhan baik dari segi lingkungan sistem sampai kepada
kebutuhan user itu sendiri. Berikut analisa kebutuhan user aplikasi pencairan pada FIF:
A. Unit Head
A.1. Login
A.2. Mengelola User
A.3. Melihat Laporan
B. Customer Service
B.1. Login
B.2. Mengelola Konsumen
40
B.3. Mengelola Pengajuan Kredit
C. Credit Analyst
C.1. Login
C.2. Melihat Data Pencairan
C.3. Melakukan Approval Peminjaman
D. Kasir
D.1. Login
D.2. Melakukan Pencairan Peinjaman
D.3. Membuat Laporan
D.4. Mengelola Perkiraan
D.5. Membuat Jurnal
3.3.2. Use Case Diagram
1. Use Case Diagram Sistem Usulan
Gambar III.6.
Use Case Diagram Usulan
uc Use Case All
Customer Service
Login
Mengelola
Konsumen
Mengelola
Pengajuan Kredit
Melakukan
Approval
Melakukan
Pencairan
Melihat Pencairan
Membuat Laporan
Mengelola User
Unit Head
Credit Analyst
KasirMengelola
Perkiraan
Membuat Jurnal
«extend»
«extend»
«include»
41
2. Use Case Diagram Unit Head
A. Gambar Use Case Diagram
Gambar III.7.
Use Case Diagram Unit Head
B. Deskripsi Use Case
1) Deskripsi Use Case Diagram Menambah User
Tabel III.1.
Deskripsi Use Case Diagram Menambah User
Tujuan Unit Head dapat menambah data user
Deskripsi Sistem ini memungkinkan aktor
menambah user yang berbeda-beda
Aktor Unit Head
Kondisi Awal Unit Head sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menginput data user baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data user ke basis data
4. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Menginput data user baru
uc Use Case Unit Head
Unit Head
Login
Membuat Laporan
Mengelola User
42
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data user ke basis data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Unit Head dapat menyimpan data user
baru
2) Deskripsi Use Case Diagram Mengubah User
Tabel III.2.
Deskripsi Use Case Diagram Mengubah User
Tujuan Unit Head dapat mengubah data user
Deskripsi Sistem ini memungkinkan aktor
mengubah user.
Aktor Unit Head
Kondisi Awal Unit Head sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama user yang
dicari
4. Melakukan perubahan pada
data user
2. Mencari data user yang akan diubah.
3. Menampilkan data user
5. Melakukan validasi terhadap
masukan.
6. Menyimpan data user ke basis data
7. Menampilkan pesan berhasil
disimpan
43
Skenario Alternatif
1. Memasukkan nama user yang
dicari
4. Melakukan perubahan pada
data user
7. Memperbaiki masukan yang
salah
2. Mencari data user yang akan diubah.
3. Menampilkan data user
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
8. Melakukan validasi terhadap
masukan.
9. Menyimpan data user ke basis data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Unit Head dapat menyimpan data user
yang telah diubah
3) Deskripsi Use Case Diagram Mencari User
Tabel III.3.
Deskripsi Use Case Diagram Mencari User
Tujuan Unit Head dapat mencari data user
Deskripsi Sistem ini memungkinkan aktor mencari
user.
Aktor Unit Head
Kondisi Awal Unit Head sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama user yang
dicari
2. Mencari data user di basis data.
3. Menampilkan daftar user yang sesuai.
44
Kondisi Akhir Unit Head dapat mencari data user
4) Deskripsi Use Case Diagram Menghapus User
Tabel III.4.
Deskripsi Use Case Diagram Menghapus User
Tujuan Unit Head dapat menghapus data user
Deskripsi Sistem ini memungkinkan aktor
menghapus user.
Aktor Unit Head
Kondisi Awal Unit Head sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama user yang
dicari
3. Klik hapus
5. Memilih Ya
2. Mencari data user yang akan diubah.
4. Konfirmasi Hapus
6. Menghapus data user dari basis data
7. Menampilkan pesan berhasil dihapus
Kondisi Akhir Unit Head dapat menghapus data user
5) Deskripsi Use Case Diagram Melihat Laporan
Tabel III.5.
Deskripsi Use Case Diagram Membuat Laporan
Tujuan Unit Head dapat melihat laporan
Deskripsi Sistem ini memungkinkan aktor melihat
laporan.
Aktor Unit Head
Kondisi Awal Unit Head sudah login
45
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan periode (tanggal)
laporan
2. Klik lihat
3. Tampilkan laporan
Kondisi Akhir Unit Head dapat melihat laporan
6) Deskripsi Use Case Diagram Menghapus User
Tabel III.6.
Deskripsi Use Case Diagram Login
Tujuan Unit Head dapat masuk ke dalam aplikasi
Deskripsi Sistem ini memungkinkan masuk ke
dalam aplikasi.
Aktor Unit Head
Kondisi Awal Unit Head belum login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Id user dan password
2. Klik masuk
3. Id user dan password sesuai
4. Masuk ke dalam aplikasi
Skenario Alternatif
1. Id user dan password
2. Klik masuk
5. Input ulang id user dan
password
6. Klik masuk
3. Id user dan password tidak sesuai
4. Menampilkan pesan kesalahan
7. Id user dan password sesuai
8. Masuk ke dalam aplikasi
Kondisi Akhir
Unit Head dapat melihat laporan
46
3. Use Case Diagram Customer Service
A. Gambar Use Case Diagram
Gambar III.8.
Use Case Diagram Customer Service
B. Deskripsi Use Case
1) Deskripsi Use Case Diagram Menambah Konsumen
Tabel III.7.
Deskripsi Use Case Diagram Menambah Konsumen
Tujuan Customer Service dapat menambah data
konsumen
Deskripsi Sistem ini memungkinkan aktor
menambah konsumen yang berbeda-beda
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menginput data konsumen baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data konsumen ke basis
data
uc Use Case Customer Service
Customer Service
Login
Mengelola
Konsumen
Mengelola
Pengajuan Kredit
47
4. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Menginput data konsumen baru
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan bahwa
data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data konsumen ke basis
data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Customer Service dapat menyimpan data
konsumen baru
2) Deskripsi Use Case Diagram Mengubah Konsumen
Tabel III.8.
Deskripsi Use Case Diagram Mengubah Konsumen
Tujuan Customer Service dapat mengubah data
konsumen
Deskripsi Sistem ini memungkinkan aktor
mengubah konsumen.
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama konsumen
yang dicari
4. Melakukan perubahan pada
data konsumen
2. Mencari data konsumen yang akan
diubah.
3. Menampilkan data konsumen
48
5. Melakukan validasi terhadap
masukan.
6. Menyimpan data konsumen ke basis
data
7. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Memasukkan nama konsumen
yang dicari
4. Melakukan perubahan pada
data konsumen
7. Memperbaiki masukan yang
salah
2. Mencari data konsumen yang akan
diubah.
3. Menampilkan data konsumen
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
8. Melakukan validasi terhadap
masukan.
9. Menyimpan data konsumen ke basis
data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Customer Service dapat menyimpan data
konsumen yang telah diubah
3) Deskripsi Use Case Diagram Mencari Konsumen
Tabel III.9.
Deskripsi Use Case Diagram Mencari Konsumen
Tujuan Customer Service dapat mencari data
konsumen
Deskripsi Sistem ini memungkinkan aktor mencari
konsumen.
Aktor Customer Service
Kondisi Awal Customer Service sudah login
49
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama konsumen
yang dicari
2. Mencari data konsumen di basis data.
3. Menampilkan daftar konsumen yang
sesuai.
Kondisi Akhir Customer Service dapat mencari data
konsumen
4) Deskripsi Use Case Diagram Menghapus Konsumen
Tabel III.10.
Deskripsi Use Case Diagram Menghapus Konsumen
Tujuan Customer Service dapat menghapus data
konsumen
Deskripsi Sistem ini memungkinkan aktor
menghapus konsumen.
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama konsumen
yang dicari
3. Klik hapus
5. Memilih Ya
2. Mencari data konsumen yang akan
diubah.
4. Konfirmasi Hapus
6. Menghapus data konsumen dari basis
data
7. Menampilkan pesan berhasil dihapus
Kondisi Akhir Customer Service dapat menghapus data
konsumen
50
5) Deskripsi Use Case Diagram Menambah Pengajuan
Tabel III.11.
Deskripsi Use Case Diagram Menambah Pengajuan
Tujuan Customer Service dapat menambah data
pengajuan
Deskripsi Sistem ini memungkinkan aktor
menambah pengajuan yang berbeda-beda
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Klik Tambah
2. Menginput data pengajuan baru
3. Memeriksa apakah valid tidaknya
masukan
4. Menyimpan data pengajuan ke basis
data
5. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Klik Tambah
2. Menginput data pengajuan baru
4. Memperbaiki masukan yang
salah.
3. Memeriksa apakah valid tidaknya
masukan
4. Menampilkan pesan peringatan bahwa
data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data pengajuan ke basis
data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Customer Service dapat menyimpan data
pengajuan baru
51
6) Deskripsi Use Case Diagram Mengubah Pengajuan
Tabel III.12.
Deskripsi Use Case Diagram Mengubah Pengajuan
Tujuan Customer Service dapat mengubah data
pengajuan
Deskripsi Sistem ini memungkinkan aktor
mengubah pengajuan.
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama pengajuan
yang dicari
4. Melakukan perubahan pada
data pengajuan
2. Mencari data pengajuan yang akan
diubah.
3. Menampilkan data pengajuan
5. Melakukan validasi terhadap
masukan.
6. Menyimpan data pengajuan ke basis
data
11. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Memasukkan nama pengajuan
yang dicari
4. Melakukan perubahan pada
data pengajuan
2. Mencari data pengajuan yang akan
diubah.
3. Menampilkan data pengajuan
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
52
7. Memperbaiki masukan yang
salah
8. Melakukan validasi terhadap
masukan.
9. Menyimpan data pengajuan ke basis
data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Customer Service dapat menyimpan data
pengajuan yang telah diubah
7) Deskripsi Use Case Diagram Mencari Pengajuan
Tabel III.13.
Deskripsi Use Case Diagram Mencari Pengajuan
Tujuan Customer Service dapat mencari data
pengajuan
Deskripsi Sistem ini memungkinkan aktor mencari
pengajuan.
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama pengajuan
yang dicari
2. Mencari data pengajuan di basis data.
3. Menampilkan daftar pengajuan yang
sesuai.
Kondisi Akhir Customer Service dapat mencari data
pengajuan
7) Deskripsi Use Case Diagram Menghapus Pengajuan
Tabel III.14.
Deskripsi Use Case Diagram Menghapus Pengajuan
Tujuan Customer Service dapat menghapus data
pengajuan
Deskripsi Sistem ini memungkinkan aktor
menghapus pengajuan.
53
Aktor Customer Service
Kondisi Awal Customer Service sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama pengajuan
yang dicari
3. Klik hapus
5. Memilih Ya
2. Mencari data pengajuan yang akan
diubah.
4. Konfirmasi Hapus
6. Menghapus data pengajuan dari basis
data
7. Menampilkan pesan berhasil dihapus
Kondisi Akhir Customer Service dapat menghapus data
pengajuan
4. Use Case Diagram Credit Analyst
A. Gambar Use Case Diagram
Gambar III.9.
Use Case Diagram Credit Analyst
uc Use Case CA
Credit Analyst
Login
Melihat Pengajuan
Kredit
Melakukan
Apprpval
«extend»
54
B. Deskripsi Use Case
1) Deskripsi Use Case Diagram Menambah Approval
Tabel III.15.
Deskripsi Use Case Diagram Menambah Approval
Tujuan Credit Analyst dapat menambah data
approval
Deskripsi Sistem ini memungkinkan aktor
menambah approval yang berbeda-beda
Aktor Credit Analyst
Kondisi Awal Credit Analyst sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menginput data approval baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data approval ke basis
data
4. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Menginput data approval baru
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan bahwa
data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data approval ke basis
data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Credit Analyst dapat menyimpan data
approval baru
55
2) Deskripsi Use Case Diagram Mengubah Approval
Tabel III.16.
Deskripsi Use Case Diagram Mengubah Approval
Tujuan Credit Analyst dapat mengubah data
approval
Deskripsi Sistem ini memungkinkan aktor
mengubah approval.
Aktor Credit Analyst
Kondisi Awal Credit Analyst sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan no pengajuan
yang dicari
4. Melakukan perubahan pada
data approval
2. Mencari data approval yang akan
diubah.
3. Menampilkan data approval
5. Melakukan validasi terhadap
masukan.
6. Menyimpan data approval ke basis
data
7. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Memasukkan nama konsumen
yang dicari
4. Melakukan perubahan pada
data approval
2. Mencari data approval yang akan
diubah.
3. Menampilkan data approval
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
56
7. Memperbaiki masukan yang
salah
8. Melakukan validasi terhadap
masukan.
9. Menyimpan data approval ke basis
data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Credit Analyst dapat menyimpan data
approval yang telah diubah
3) Deskripsi Use Case Diagram Mencari Approval
Tabel III.17.
Deskripsi Use Case Diagram Mencari Approval
Tujuan Credit Analyst dapat mencari data
approval
Deskripsi Sistem ini memungkinkan aktor mencari
approval.
Aktor Credit Analyst
Kondisi Awal Credit Analyst sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama konsumen
yang dicari
2. Mencari data approval di basis data.
3. Menampilkan daftar approval yang
sesuai.
Kondisi Akhir Credit Analyst dapat mencari data
approval
57
4) Deskripsi Use Case Diagram Melihat Pencairan
Tabel III.18.
Deskripsi Use Case Diagram Melihat Pencairan
Tujuan Credit Analyst dapat melihat data
pengajuan
Deskripsi Sistem ini memungkinkan aktor melihat
data pengajuan.
Aktor Credit Analyst
Kondisi Awal Credit Analyst sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama konsumen
yang dicari
2. Mencari data pencairan
3. Menampilkan detail pencairan
Kondisi Akhir Credit Analyst dapat melihat data
pengajuan
5. Use Case Diagram Kasir
A. Gambar Use Case Diagram
Gambar III.10.
Use Case Diagram Kasir
uc Use Case Kasir
Kasir
Login
Membuat Laporan
Melakukan
Pencairan
Mengelola
Perkiraan
Membuat Jurnal
58
B. Deskripsi Use Case
1) Deskripsi Use Case Diagram Menambah Pencairan
Tabel III.19.
Deskripsi Use Case Diagram Menambah Pencairan
Tujuan Kasir dapat menambah data pencairan
Deskripsi Sistem ini memungkinkan aktor
menambah pencairan yang berbeda-beda
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menginput data pencairan baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data pencairan ke basis
data
4. Menampilkan pesan berhasil disimpan
Skenario Alternatif
1. Menginput data pencairan baru
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan bahwa
data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data pencairan ke basis
data
7. Menampilkan pesan berhasil disimpan
Kondisi Akhir Kasir dapat menyimpan data pencairan
baru
59
2) Deskripsi Use Case Diagram Mengubah Pencairan
Tabel III.20.
Deskripsi Use Case Diagram Mengubah Pencairan
Tujuan Kasir dapat mengubah data pencairan
Deskripsi Sistem ini memungkinkan aktor
mengubah pencairan.
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan no pengajuan yang
dicari
4. Melakukan perubahan pada data
pencairan
2. Mencari data pencairan yang akan
diubah.
3. Menampilkan data pencairan
5. Melakukan validasi terhadap masukan.
6. Menyimpan data pencairan ke basis
data
7. Menampilkan pesan berhasil disimpan
Skenario Alternatif
1. Memasukkan nama pencairan
yang dicari
4. Melakukan perubahan pada
data pencairan
7. Memperbaiki masukan yang
salah
2. Mencari data pencairan yang akan
diubah.
3. Menampilkan data pencairan
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
8. Melakukan validasi terhadap
masukan.
60
9. Menyimpan data pencairan ke basis
data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Kasir dapat menyimpan data pencairan
yang telah diubah
3) Deskripsi Use Case Diagram Mencari Pencairan
Tabel III.21.
Deskripsi Use Case Diagram Mencari Pencairan
Tujuan Kasir dapat mencari data pencairan
Deskripsi Sistem ini memungkinkan aktor mencari
pencairan.
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama pencairan
yang dicari
2. Mencari data pencairan di basis data.
3. Menampilkan daftar pencairan yang
sesuai.
Kondisi Akhir Kasir dapat mencari data pencairan
4) Deskripsi Use Case Diagram Menambah Perkiraan
Tabel III.22.
Deskripsi Use Case Diagram Menambah Perkiraan
Tujuan Kasir dapat menambah data perkiraan
Deskripsi Sistem ini memungkinkan aktor
menambah perkiraan yang berbeda-beda
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
61
1. Menginput data perkiraan baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data perkiraan ke basis
data
4. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Menginput data perkiraan baru
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data perkiraan ke basis
data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Sistem dapat menyimpan data perkiraan
baru
5) Deskripsi Use Case Diagram Mengubah Perkiraan
Tabel III.23.
Deskripsi Use Case Diagram Mengubah Perkiraan
Tujuan Kasir dapat mengubah data perkiraan
Deskripsi Sistem ini memungkinkan aktor
mengubah perkiraan.
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama perkiraan
yang dicari
2. Mencari data perkiraan yang akan
dibuah.
3. Menampilkan data perkiraan
62
4. Melakukan perubahan pada
data perkiraan
5. Melakukan validasi terhadap
masukan.
6. Menyimpan data perkiraan ke basis
data
7. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Memasukkan nama perkiraan
yang dicari
4. Melakukan perubahan pada
data perkiraan
7. Memperbaiki masukan yang
salah
2. Mencari data perkiraan yang akan
dibuah.
3. Menampilkan data perkiraan
5. Melakukan validasi terhadap
masukan.
6. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
8. Melakukan validasi terhadap
masukan.
9. Menyimpan data perkiraan ke basis
data
10. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Sistem dapat menyimpan data perkiraan
yang telah diubah
6) Deskripsi Use Case Diagram Mencari Perkiraan
Tabel III.24.
Deskripsi Use Case Diagram Mencari Perkiraan
Tujuan Kasir dapat mencari data perkiraan
Deskripsi Sistem ini memungkinkan aktor mencari
perkiraan.
Aktor Kasir
63
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama perkiraan
yang dicari
2. Mencari data perkiraan di basis data.
3. Menampilkan daftar perkiraan yang
sesuai.
Kondisi Akhir Sistem dapat mencari data perkiraan
7) Deskripsi Use Case Diagram Menghapus Perkiraan
Tabel III.25.
Deskripsi Use Case Diagram Menghapus Perkiraan
Tujuan Kasir dapat menghapus data perkiraan
Deskripsi Sistem ini memungkinkan aktor
menghapus perkiraan.
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan nama perkiraan
yang dicari
3. Klik hapus
5. Memilih Ya
2. Mencari data perkiraan yang akan
dibuah.
4. Konfirmasi Hapus
6. Menghapus data perkiraan dari basis
data
7. Menampilkan pesan berhasil dihapus
Kondisi Akhir Sistem dapat menghapus data perkiraan
64
8) Deskripsi Use Case Diagram Menambah Jurnal Umum
Tabel III.26.
Deskripsi Use Case Diagram Menambah Jurnal Umum
Tujuan Kasir dapat menambah data jurnal umum
Deskripsi
Sistem ini memungkinkan aktor
menambah jurnal umum yang berbeda-
beda
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menginput data jurnal umum
baru
2. Memeriksa apakah valid tidaknya
masukan
3. Menyimpan data jurnal umum ke
basis data
4. Menampilkan pesan berhasil
disimpan
Skenario Alternatif
1. Menginput data jurnal umum
baru
4. Memperbaiki masukan yang
salah.
2. Memeriksa apakah valid tidaknya
masukan
3. Menampilkan pesan peringatan
bahwa data yang diinput tidak valid
5. Memeriksa apakah valid tidaknya
masukan
6. Menyimpan data jurnal umum ke
basis data
7. Menampilkan pesan berhasil
disimpan
Kondisi Akhir Sistem dapat menyimpan data jurnal
umum baru
65
9) Deskripsi Use Case Diagram Mencari Jurnal Umum
Tabel III.27.
Deskripsi Use Case Diagram Mencari Jurnal Umum
Tujuan Kasir dapat mencari data jurnal umum
Deskripsi Sistem ini memungkinkan aktor mencari
jurnal umum.
Aktor Kasir
Kondisi Awal Kasir sudah login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Memasukkan periode jurnal
umum yang dicari
2. Mencari data jurnal umum di basis
data.
3. Menampilkan daftar jurnal umum
yang sesuai.
Kondisi Akhir Sistem dapat mencari data jurnal umum
66
3.3.3. Activity Diagram
1. Activity Diagram Proses Login
Gambar III.11.
Activity Diagram Login
act Activity Login
SistemUser
Mulai
ID Pengguna dan
Password
Klik Login Validasi Id User dan
Password
Valid?Tampilkan Pesan Error
Tampilkan Menu
Utama
Selesai
Form Login
Y
T
67
2. Activity Diagram Mengelola User
Gambar III.12.
Activity Diagram Mengelola User
act Mengelola User
SistemUnit Head
Mulai
Pilih
Tambah
Input Data User
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data User
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pesan Error
Y
Y
TY
T
T
68
3. Activity Diagram Mengelola Konsumen
Gambar III.13.
Activity Diagram Mengelola Konsumen
act Mengelola Konsumen
SistemCustomer Service
Mulai
Pilih
Tambah
Input Data Konsumen
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Konsumen
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
Y
T
Y
T
Y
T
69
4. Activity Diagram Mengelola Pengajuan Kredit
Gambar III.14.
Activity Diagram Mengelola Pengajuan Kredit
act Mengelola Pengajuan Kredit
SistemCustomer Service
Mulai
Pilih
Tambah
Input Data Konsumen
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Pengajuan
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
Input Data Pengajuan
Kredit
T
T
Y
T
Y
Y
70
5. Activity Diagram Mengelola Approval
Gambar III.15.
Activity Diagram Mengelola Approval
act Mengelola Approval
SistemCredit Analyst
Mulai
Pilih
Tambah
Input Data Pengajuan
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Approval
Ubah
Ubah DataSimpan?
Batal
Selesai
Ada
data?
Tampilkan Pessan Error
Input Data Approval
T
Y
Y
T
T
Y
71
6. Activity Diagram Mengelola Pencairan
Gambar III.16.
Activity Diagram Mengelola Pencaairan
act Mengelola Pencairan
SistemKasir
Mulai
Pilih
Tambah
Input Data Approval
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Pencairan
Ubah
Ubah DataSimpan?
Batal
Selesai
Ada
data?
Tampilkan Pessan Error
Input Pencairan
T
Y
Y
YT
T
72
7. Activity Diagram Mengelola Perkiraan
Gambar III.17.
Activity Diagram Mengelola Perkiraan
act Mengelola Perkiraan
SistemKasir
Mulai
Pilih
Tambah
Input Data Perkiraan
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Pilh Data Perkiraan
Ubah
Ubah DataSimpan?
Batal
Selesai
Hapus Hapus Data
Ada
data?
Tampilkan Pessan Error
T
Y
Y
Y
T
T
73
8. Activity Diagram Membuat Jurnal
Gambar III.18.
Activity Diagram Membuat Jurnal
act Membuat Jurnal
SistemKasir
Mulai
Pilih
Tambah
Input Data Jurnal
Simpan
Cari
Validasi
Valid?
Simpan Data
Tampilkan Data
Tampilkan Data
Simpan?
Batal
Selesai
Ada?
YT
T
Y
T
Y
74
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.19.
ERD (Entity Relationship Diagram)
75
3.4.2. Logical Record Structure (LRS)
Gambar III.20.
LRS (Logical Record Structure)
76
3.4.3. Spesifikasi File
1. Spesifikasi File Tabel User
Nama Database : fif_kredit
Nama File : user
Tipe File : File Master
Akses File : Random
Record Size : 100 Karakter
Field Key : id_user
Tabel III.28.
Spesifikasi File Tabel User
No Elemen Data Akronim Tipe Panjang Keterangan
1 Id User id_user VARCHAR 20 Primary Key
2 Nama User nama_user VARCHAR 35
3 Password password VARCHAR 35
4 Hak Akses hak_akses VARCHAR 10
2. Spesifikasi File Tabel Konsumen
Nama Database : fif_kredit
Nama File : konsumen
Tipe File : File Master
Akses File : Random
Record Size : 279 Karakter
Field Key : id_konsumen
Tabel III.29.
Spesifikasi File Tabel Konsumen
No Elemen Data Akronim Tipe Panjang Keterangan
1 Id Konsumen id_konsumen CHAR 10 Primary Key
2 Nama
Konsumen
nama_konsumen VARCHAR 35
3 No Identitas no_identitas CHAR 20 Unique
77
4 Tempat
Lahir tempat_lahir
VARCHAR 35
5 Tanggal
Lahir tanggal_lahir
DATE
6 Jenis
Kelamin jenis_kelamin
VARCHAR 10
7 Alamat
Konsumen alamat_konsumen
VARCHAR 100
8 No Telp no_telp VARCHAR 14
9 Status
Perkawinan status_perkawinan
VARCHAR 15
10 Pekerjaan pekerjaan VARCHAR 25
11 Pendidikan
Terakhir pendidikan_terakhir
VARCHAR 5
12 Penghasilan
Bulanan penghasilan_bulanan
INT 10
3. Spesifikasi File Tabel Pengajuan Kredit
Nama Database : fif_kredit
Nama File : pengajuan_kredit
Tipe File : File Transaksi
Akses File : Random
Record Size : 68 Karakter
Field Key : no_aplikasi
Tabel III.30.
Spesifikasi File Tabel Pengajuan Kredit
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Aplikasi no_aplikasi CHAR 12 Primary Key
2 Id Konsumen id_konsumen CHAR 10 Foreign Key
3 Tanggal
Pengajuan tanggal_pengajuan
DATE
4 Jumlah
Pengajuan jumlah_pengajuan
INT 10
5 Bunga bunga INT 2
6 Lama
Angsur lama_angsur
INT 3
7 Angsuran
Perbulan angsuran_perbulan
INT 10
8 Status
Approval status_approval
INT 1
78
9 Id User id_user VARCHAR 20 Foreign Key
4. Spesifikasi File Tabel Approval
Nama Database : fif_kredit
Nama File : approval
Tipe File : File Transaksi
Akses File : Random
Record Size : 70 Karakter
Field Key : no_approval
Tabel III.31.
Spesifikasi File Tabel Approval
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Approval no_approval CHAR 12 Primary Key
2 No Aplikasi no_aplikasi CHAR
12 Foreign Key,
Unique
3 Id User id_user VARCHAR 20 Foreign Key
4 Tanggal
Approval tanggal_approval
DATE
5 Jumlah
Approval jumlah_approval
INT 10
6 Bunga bunga INT 2
7 Lama
Angsur lama_angsur
INT 3
8 Angsuran
Perbulan angsuran_perbulan
INT 10
9 Status
Approval status_approval
INT 1
5. Spesifikasi File Tabel Pencairan
Nama Database : fif_kredit
Nama File : approval
Tipe File : File Transaksi
Akses File : Random
Record Size : 214 Karakter
79
Field Key : no_pencairan
Tabel III.32.
Spesifikasi File Tabel Pencairan
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Pencairan no_pencairan CHAR 12 Primary Key
2 No Approval no_approval CHAR
12 Foreign Key,
Unique
3 Id User id_user VARCHAR 20 Foreign Key
4 Tanggal
Pencairan tanggal_pencairan
DATE
5 Persyaratan persyaratan VARCHAR 150
6 Biaya Admin biaya_admin INT 10
7 Jumlah
Diterima jumlah_diterima
INT 10
6. Spesifikasi File Tabel Perkiraan
Nama Database : fif_kredit
Nama File : perkiraan
Tipe File : File Master
Akses File : Random
Record Size : 71 Karakter
Field Key : kode_akun
Tabel III.33.
Spesifikasi File Tabel Perkiraan
No Elemen Data Akronim Tipe Panjang Keterangan
1 Kode Akun kode_akun CHAR 5 Primary Key
2 Nama Akun nama_akun VARCHAR 35
3 Jenis Akun Jenis_akum VARCHAR 25
4 Saldo Normal Saldo_normal VARCHAR 6
7. Spesifikasi File Tabel Jurnal
Nama Database : fif_kredit
Nama File : jurnal
80
Tipe File : File Transaksi
Akses File : Random
Record Size : 127 Karakter
Field Key : no_jurnal
Tabel III.34.
Spesifikasi File Tabel Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Jurnal no_jurnal CHAR 7 Primary Key
2 Tanggal Jurnal tgl_jurnal DATE
3 Keterangan keterangan VARCHAR 100
4 Id User id_user VARCHAR 20 Foreign Key
8. Spesifikasi File Tabel Detail Jurnal
Nama Database : fif_kredit
Nama File : detail_jurnal
Tipe File : File Transaksi
Akses File : Random
Record Size : 15 Karakter
Field Key : -
Tabel III.35.
Spesifikasi File Tabel Detail Jurnal
No Elemen Data Akronim Tipe Panjang Keterangan
1 No Jurnal no_jurnal CHAR 10 Primary Key
2 Kode Akun kode_akun CHAR 5 Foreign Key
3 Debet debet DOUBLE
4 Kredit kredit DOUBLE
81
3.4.4. Sequence Diagram
1. Sequence Diagram Mengelola User
Gambar III.21.
Sequence Diagram Mengelola User
sd Sequence Diagram User
Unit HeadForm User Control User
User
[Input Data User]:
[status="Tambah"]:
tambahUser()
[Validasi]:
btnsimpanActionPerformed()
FormUser()
«create»
aktifNonaktif()
bersihInputan()
btntambahActionPerformed()
«create»
[Set Data]:
[Tampil Error]:
82
2. Sequence Diagram Mengelola Konsumen
Gambar III.22.
Sequence Diagram Mengelola Konsumen
sd Sequence Diagram Konsumen
Customer ServiceForm Konsumen Control Konsumen
Konsumen
buatIdKonsumen()
[Id Konsumen Baru]:
tambahKonsumen()
[Tampil Error]:
[Status= "Tambah"]:
btnsimpanActionPerformed()
«create»
[Input Data Konsumen]:
aktifNonaktif()
[Tampilkan Id Konsumen]:
[Set Data]:
[Validasi]:
bersihInputan()
[Buat Id Konsumen Baru]:
FormKonsumen()
«create»
btntambahActionPerformed()
buatIdKonsumen()
83
3. Sequence Diagram Mengelola Pengajuan
Gambar III.23.
Sequence Diagram Mengelola Pengajuan
sd Sequence Diagram Pengajuan Kredit
Customer ServiceForm Pengajuan Control Pengajuan
Pengajuan
Konsumen
cariKonsumenById()
bersihInputan()
«create»
cariKonsumenById()
[Status="Tambah"]:
[Input Data Pengajuan]:
tambahPengajuan()
buatNoPengajuan()
[Buat No Pengajuan Baru]:
btnsimpanActionPerformed()
buatNoPengajuan()
[Tampil No Pengajuan]:
[Data Konsumen]:
«create»
aktifNonaktif()
[Tampil Data Konsumen]:
FormPengajuan()
«create»
btntambahActionPerformed()
[Tampil Data Konsumen]:
[Tampil Pesan Error]:
tid_konsumenKeyPressed()
[Validasi]:
[Input Id Konsumen]:
[Buka Form Pengajuan]:
[Set Data]:
[No Pengajuan Baru]:
84
4. Sequence Diagram Mengelola Pencairan
Gambar III.24.
Sequence Diagram Mengelola Pencairan
sd Sequence Diagram Pencairan
KasirForm Pencairan Control Pencairan
Pencairan
Approval
[Tampil Data Approval]:
FormPencairan()
«create»
[Tampil Data Approval]:
[Status="Tambah"]:
cariPengajuanByNo()
buatNoPencairan()
[Tampil Pesan Error]:
tno_pengajuanKeyPressed()
[No Pencairan Baru]:
[Data Approval]:
bersihInputan()
[Buka Form Pengajuan]:
btnsimpanActionPerformed()
«create»
[Set Data]:
aktifNonaktif()
[Validasi]:
«create»
cariPengajuanByNo()
buatNoPencairan()
[Input No Pengajuan]:
[Buat No Pencairan Baru]:
tambahPencairan()
[Tampil No Pencairan]:
btntambahActionPerformed()
85
3.4.5. Deployment Diagram
Gambar III.25.
Deployment Diagram
deployment Deployment
Aplikasi
Aplikasi Pencairan
Pinjaman
Jasper Report
Database Server
MySQL Server
Java
Java Runtime Environment
fif_kredit
MySQL JDBC Driver
«use»
«use»
86
3.4.6. User Interface
1. Form Login
Gambar III.26.
Form Login
2. Form Beranda
Gambar III.27.
Form Beranda
87
3. Form Konsumen
Gambar III.28.
Form Konsumen
4. Form User
Gambar III.29.
Form User
88
5. Form Pengajuan Kredit
Gambar III.30.
Form Konsumen
6. Form Approval
Gambar III.31.
Form Approval
89
7. Form Pencairan
Gambar III.32.
Form Pencairan
8. Form Perkiraan
Gambar III.33.
Form Perkiraan
90
9. Form Jurnal Umum
Gambar III.34.
Form Jurnal Umum
10. Form Laporan
Gambar III.35.
Form Laporan
91
11. Form Lihat Pencairan
Gambar III.36.
Form Lihat Pencairan
3.5. Implementasi
3.5.1. Code Generation
1. Model Pengajuan Kredit
package model;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Pengajuan {
private Connection Koneksi;
92
private String no_aplikasi;
private String id_konsumen;
private String id_user;
private Date tanggal_pengajuan;
private int jumlah_pengajuan;
private int bunga;
private int lama_angsur;
private int angsuran_perbulan;
private int status_approval;
private String PesanError;
public Pengajuan() {
try {
Class.forName("com.mysql.jdbc.Driver");
Koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/fif_kredit?", "root", "");
} catch (ClassNotFoundException | SQLException ex) {
this.PesanError = ex.getMessage();
}
}
public Connection getKoneksi() {
return Koneksi;
}
public String getNo_aplikasi() {
return no_aplikasi;
}
public void setNo_aplikasi(String no_aplikasi) {
this.no_aplikasi = no_aplikasi;
}
public String getId_konsumen() {
return id_konsumen;
}
public void setId_konsumen(String id_konsumen) {
this.id_konsumen = id_konsumen;
}
public String getId_user() {
return id_user;
}
93
public void setId_user(String id_user) {
this.id_user = id_user;
}
public Date getTanggal_pengajuan() {
return tanggal_pengajuan;
}
public void setTanggal_pengajuan(Date tanggal_pengajuan) {
this.tanggal_pengajuan = tanggal_pengajuan;
}
public int getJumlah_pengajuan() {
return jumlah_pengajuan;
}
public void setJumlah_pengajuan(int jumlah_pengajuan) {
this.jumlah_pengajuan = jumlah_pengajuan;
}
public int getBunga() {
return bunga;
}
public void setBunga(int bunga) {
this.bunga = bunga;
}
public int getLama_angsur() {
return lama_angsur;
}
public void setLama_angsur(int lama_angsur) {
this.lama_angsur = lama_angsur;
}
public int getAngsuran_perbulan() {
return angsuran_perbulan;
}
public void setAngsuran_perbulan(int angsuran_perbulan) {
this.angsuran_perbulan = angsuran_perbulan;
}
public int getStatus_approval() {
94
return status_approval;
}
public void setStatus_approval(int status_approval) {
this.status_approval = status_approval;
}
public String getPesanError() {
return PesanError;
}
public void setPesanError(String PesanError) {
this.PesanError = PesanError;
}
public String IdAuto() {
try {
//0001/PJ/2020
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String Cmd = "SELECT * FROM pengajuan_kredit WHERE
YEAR(tanggal_pengajuan)=? ORDER BY SUBSTRING(no_aplikasi, 1,4) DESC
LIMIT 1";
this.PesanError = "";
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, sdf.format(new java.util.Date()));
ResultSet rs = ps.executeQuery();
if (rs.next()) {
String Id = rs.getString("no_aplikasi").substring(0, 4);
Id = String.format("%04d", Integer.parseInt(Id) + 1) + "/PJ/" +
sdf.format(new java.util.Date());
return Id;
} else {
return "0001/PJ/" + sdf.format(new java.util.Date());
}
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return "";
}
}
public List<Pengajuan> daftarPengajuan() {
95
try {
this.PesanError = "";
String Cmd = "SELECT * FROM pengajuan_kredit";
List<Pengajuan> lp = new ArrayList();
Statement st = Koneksi.createStatement();
ResultSet rs = st.executeQuery(Cmd);
while (rs.next()) {
Pengajuan pengajuan_kredit = new Pengajuan();
pengajuan_kredit.setNo_aplikasi(rs.getString("no_aplikasi"));
pengajuan_kredit.setId_konsumen(rs.getString("id_konsumen"));
pengajuan_kredit.setId_user(rs.getString("id_user"));
pengajuan_kredit.setTanggal_pengajuan(rs.getDate("tanggal_pengajuan"));
pengajuan_kredit.setJumlah_pengajuan(rs.getInt("jumlah_pengajuan"));
pengajuan_kredit.setBunga(rs.getInt("bunga"));
pengajuan_kredit.setLama_angsur(rs.getInt("lama_angsur"));
pengajuan_kredit.setAngsuran_perbulan(rs.getInt("angsuran_perbulan"));
pengajuan_kredit.setStatus_approval(rs.getInt("status_approval"));
lp.add(pengajuan_kredit);
}
return lp;
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return null;
}
}
public List<Pengajuan> cariPengajuanKonsumen(String Id) {
try {
this.PesanError = "";
String Cmd = "SELECT * FROM pengajuan_kredit WHERE
UPPER(id_konsumen)=?";
List<Pengajuan> lp = new ArrayList();
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, Id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Pengajuan pengajuan_kredit = new Pengajuan();
pengajuan_kredit.setNo_aplikasi(rs.getString("no_aplikasi"));
pengajuan_kredit.setId_konsumen(rs.getString("id_konsumen"));
pengajuan_kredit.setId_user(rs.getString("id_user"));
pengajuan_kredit.setTanggal_pengajuan(rs.getDate("tanggal_pengajuan"));
96
pengajuan_kredit.setJumlah_pengajuan(rs.getInt("jumlah_pengajuan"));
pengajuan_kredit.setBunga(rs.getInt("bunga"));
pengajuan_kredit.setLama_angsur(rs.getInt("lama_angsur"));
pengajuan_kredit.setAngsuran_perbulan(rs.getInt("angsuran_perbulan"));
pengajuan_kredit.setStatus_approval(rs.getInt("status_approval"));
lp.add(pengajuan_kredit);
}
return lp;
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return null;
}
}
public int tambahPengajuan() {
try {
this.PesanError = "";
String Cmd = "INSERT INTO pengajuan_kredit ("
+ "no_aplikasi,id_konsumen, id_user, tanggal_pengajuan,
jumlah_pengajuan, bunga, lama_angsur, angsuran_perbulan, status_approval"
+ ") VALUES ("
+ "?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, this.no_aplikasi);
ps.setString(2, this.id_konsumen);
ps.setString(3, this.id_user);
ps.setDate(4, this.tanggal_pengajuan);
ps.setInt(5, this.jumlah_pengajuan);
ps.setInt(6, this.bunga);
ps.setInt(7, this.lama_angsur);
ps.setInt(8, this.angsuran_perbulan);
ps.setInt(9, this.status_approval);
return ps.executeUpdate();
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return -1;
}
}
public int ubahPengajuan(String Id) {
try {
this.PesanError = "";
97
String Cmd = "UPDATE pengajuan_kredit SET id_user=?, id_konsumen=?,
jumlah_pengajuan=?, tanggal_pengajuan=?, "
+ "bunga=?, lama_angsur=?, angsuran_perbulan=?, status_approval=? "
+ "WHERE no_aplikasi=?";
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, this.id_user);
ps.setString(2, this.id_konsumen);
ps.setInt(3, this.jumlah_pengajuan);
ps.setDate(4, this.tanggal_pengajuan);
ps.setInt(5, this.bunga);
ps.setInt(6, this.lama_angsur);
ps.setInt(7, this.angsuran_perbulan);
ps.setInt(8, this.status_approval);
ps.setString(9, this.no_aplikasi);
return ps.executeUpdate();
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return -1;
}
}
public int hapusPengajuan(String Id) {
try {
this.PesanError = "";
String Cmd = "DELETE FROM pengajuan_kredit WHERE no_aplikasi=?";
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, Id);
return ps.executeUpdate();
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return -1;
}
}
public Pengajuan cariNoAplikasi(String Id) {
this.PesanError = "";
try {
String Cmd = "SELECT * FROM pengajuan_kredit WHERE no_aplikasi=?";
PreparedStatement ps = Koneksi.prepareStatement(Cmd);
ps.setString(1, Id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
98
this.setNo_aplikasi(rs.getString("no_aplikasi"));
this.setId_konsumen(rs.getString("id_konsumen"));
this.setId_user(rs.getString("id_user"));
this.setTanggal_pengajuan(rs.getDate("tanggal_pengajuan"));
this.setJumlah_pengajuan(rs.getInt("jumlah_pengajuan"));
this.setBunga(rs.getInt("bunga"));
this.setLama_angsur(rs.getInt("lama_angsur"));
this.setAngsuran_perbulan(rs.getInt("angsuran_perbulan"));
this.setStatus_approval(rs.getInt("status_approval"));
return this;
} else {
return new Pengajuan();
}
} catch (SQLException ex) {
this.PesanError = ex.getMessage();
return null;
}
}
}
2. Form Pengajuan Kredit
package form;
import fifkredit.FIFKredit;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;
import java.util.ListIterator;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import model.Konsumen;
import model.Pengajuan;
public class FormPengajuanKredit extends javax.swing.JFrame {
String NoAplikasi = "";
String Status = "";
Konsumen konsumen = new Konsumen();
Pengajuan pengajuan = new Pengajuan();
DefaultTableModel model = null;
99
NumberFormat nf = new DecimalFormat("#");
/**
* Creates new form FormKonsumen
*/
public FormPengajuanKredit() {
initComponents();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
int x, y;
x = (int) ((d.getWidth() - getSize().width) / 2);
y = (int) ((d.getHeight() - getSize().height) / 2);
setLocation(x, y);
model = (DefaultTableModel) tblkonsumen.getModel();
tblkonsumen.getTableHeader().setFont(new Font("BellGothic BT", 1, 16));
tblkonsumen.setRowHeight(24);
daftarPengajuan();
aktif();
}
private void aktif() {
bubah.setEnabled("".equals(this.Status) && !"".equals(this.NoAplikasi));
bhapus.setEnabled("".equals(this.Status) && !"".equals(this.NoAplikasi));
bbatal.setEnabled(!"".equals(this.Status));
btambah.setEnabled("".equals(this.Status));
bsimpan.setEnabled(!"".equals(this.Status));
tabs.setEnabledAt(0, "".equalsIgnoreCase(this.Status));
tabs.setEnabledAt(1, (Status.equalsIgnoreCase("Tambah") ||
Status.equalsIgnoreCase("Ubah")));
}
private void bersihForm() {
tNoAplikasi.setText("");
tIdKonsumen.setText("");
tNamaKonsumen.setText("");
tAlamat.setText("");
tJumlahPengajuan.setText("");
tBunga.setText("");
tLamaAngsur.setText("");
tAngsuranPerbulan.setText("");
}
private void tampilData() {
konsumen = konsumen.cariIdKonsumen(pengajuan.getId_konsumen());
100
tNoAplikasi.setText(pengajuan.getNo_aplikasi());
tIdKonsumen.setText(pengajuan.getId_konsumen());
tNamaKonsumen.setText(konsumen.getNama_konsumen());
tAlamat.setText(konsumen.getAlamat_konsumen());
tJumlahPengajuan.setText(nf.format(pengajuan.getJumlah_pengajuan()));
tBunga.setText(nf.format(pengajuan.getBunga()));
tLamaAngsur.setText(nf.format(pengajuan.getLama_angsur()));
tAngsuranPerbulan.setText(nf.format(pengajuan.getAngsuran_perbulan()));
}
private void setData() {
pengajuan.setNo_aplikasi(tNoAplikasi.getText().toUpperCase());
pengajuan.setId_konsumen(tIdKonsumen.getText());
pengajuan.setId_user(FIFKredit.id_user);
pengajuan.setTanggal_pengajuan(new java.sql.Date(new
java.util.Date().getTime()));
pengajuan.setJumlah_pengajuan(Integer.parseInt(tJumlahPengajuan.getText()));
pengajuan.setBunga(Integer.parseInt(tBunga.getText()));
pengajuan.setLama_angsur(Integer.parseInt(tLamaAngsur.getText()));
pengajuan.setAngsuran_perbulan(Integer.parseInt(tAngsuranPerbulan.getText()));
pengajuan.setStatus_approval(0);
}
private void daftarPengajuan() {
List<Pengajuan> lp = pengajuan.daftarPengajuan();
ListIterator<Pengajuan> li = lp.listIterator();
model.setRowCount(0);
tblkonsumen.repaint();
while (li.hasNext()) {
pengajuan = li.next();
konsumen = konsumen.cariIdKonsumen(pengajuan.getId_konsumen());
Object[] data = {
pengajuan.getNo_aplikasi(),
pengajuan.getTanggal_pengajuan(),
konsumen.getId_konsumen(),
konsumen.getNama_konsumen(),
nf.format(pengajuan.getJumlah_pengajuan())
};
model.addRow(data);
}
}
private void daftarPengajuan(String NamaKonsumen) {
List<Konsumen> lp = konsumen.cariNamaKonsumen(NamaKonsumen);
ListIterator<Konsumen> li = lp.listIterator();
101
model.setRowCount(0);
tblkonsumen.repaint();
while (li.hasNext()) {
konsumen = li.next();
List<Pengajuan> lj =
pengajuan.cariPengajuanKonsumen(konsumen.getId_konsumen());
ListIterator<Pengajuan> it = lj.listIterator();
while (it.hasNext()) {
Object[] data = {
pengajuan.getNo_aplikasi(),
pengajuan.getTanggal_pengajuan(),
konsumen.getId_konsumen(),
konsumen.getNama_konsumen(),
nf.format(pengajuan.getJumlah_pengajuan())
};
model.addRow(data);
}
}
}
private void cariKonsumen(String Id) {
konsumen = konsumen.cariIdKonsumen(Id);
if (konsumen.getNama_konsumen() != null) {
tNamaKonsumen.setText(konsumen.getNama_konsumen());
tAlamat.setText(konsumen.getAlamat_konsumen());
tJumlahPengajuan.requestFocus();
} else {
JOptionPane.showMessageDialog(rootPane, "Konsumen tidak ditemukan di
database Anda", "Galat", JOptionPane.ERROR_MESSAGE);
tIdKonsumen.setText("");
tNamaKonsumen.setText("");
tAlamat.setText("");
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-
BEGIN:initComponents
private void initComponents() {
102
btambah = new javax.swing.JButton();
bsimpan = new javax.swing.JButton();
bbatal = new javax.swing.JButton();
btutup = new javax.swing.JButton();
jLabel16 = new javax.swing.JLabel();
jSeparator2 = new javax.swing.JSeparator();
jLabel11 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
tabs = new javax.swing.JTabbedPane();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tblkonsumen = new javax.swing.JTable();
tcari = new javax.swing.JTextField();
bubah = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
bhapus = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
tIdKonsumen = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
tNamaKonsumen = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
tAlamat = new javax.swing.JTextArea();
jLabel9 = new javax.swing.JLabel();
tJumlahPengajuan = new javax.swing.JTextField();
tNoAplikasi = new javax.swing.JTextField();
jLabel18 = new javax.swing.JLabel();
tBunga = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
tLamaAngsur = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
tAngsuranPerbulan = new javax.swing.JTextField();
bCari = new javax.swing.JButton();
jLabel14 = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
formMouseClicked(evt);
}
});
103
btambah.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
btambah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/tambah.png"))); //
NOI18N
btambah.setText("Tambah");
btambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btambahActionPerformed(evt);
}
});
bsimpan.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
bsimpan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/save.png"))); //
NOI18N
bsimpan.setText("Simpan");
bsimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bsimpanActionPerformed(evt);
}
});
bbatal.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
bbatal.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/batal.png"))); //
NOI18N
bbatal.setText("Batal");
bbatal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bbatalActionPerformed(evt);
}
});
btutup.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
btutup.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/keluar.png"))); //
NOI18N
btutup.setText("Tutup");
btutup.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btutupActionPerformed(evt);
}
});
jLabel16.setFont(new java.awt.Font("BellGothic BT", 1, 16)); // NOI18N
jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
104
jLabel16.setText("PT Federal International Finance");
jLabel11.setFont(new java.awt.Font("BellGothic BT", 0, 48)); // NOI18N
jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabel11.setText("Form Konsumen");
tabs.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tblkonsumen.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tblkonsumen.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null}
},
new String [] {
"No Aplikasi", "Tanggal Pengajuan", "Id Konsumen", "Nama Konsumen",
"Jumlah Pengajuan"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tblkonsumen.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblkonsumenMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblkonsumen);
tcari.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tcari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tcariActionPerformed(evt);
}
});
tcari.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
tcariKeyTyped(evt);
}
105
});
bubah.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
bubah.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/ubah.png"))); //
NOI18N
bubah.setText("Ubah");
bubah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bubahActionPerformed(evt);
}
});
jLabel2.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel2.setText("Nama Konsumen");
bhapus.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
bhapus.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/hapus.png"))); //
NOI18N
bhapus.setText("Hapus");
bhapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bhapusActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jScrollPane1)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel2Layout.createSequentialGroup()
.addComponent(bubah,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
106
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bhapus,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 362,
Short.MAX_VALUE)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(tcari, javax.swing.GroupLayout.PREFERRED_SIZE,
236, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(14, 14, 14)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(tcari, javax.swing.GroupLayout.PREFERRED_SIZE,
30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bubah, javax.swing.GroupLayout.PREFERRED_SIZE,
45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bhapus, javax.swing.GroupLayout.PREFERRED_SIZE,
45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 374, Short.MAX_VALUE)
.addContainerGap())
);
tabs.addTab("Data Pengajuan", jPanel2);
tIdKonsumen.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
tIdKonsumen.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tIdKonsumenKeyPressed(evt);
107
}
});
jLabel3.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel3.setText("Nama Konsumen");
tNamaKonsumen.setEditable(false);
tNamaKonsumen.setBackground(new java.awt.Color(255, 255, 255));
tNamaKonsumen.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
jLabel6.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel6.setText("No Aplikasi");
jLabel8.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel8.setText("Jumlah Pengajuan");
tAlamat.setEditable(false);
tAlamat.setColumns(20);
tAlamat.setFont(new java.awt.Font("BellGothic BT", 0, 15)); // NOI18N
tAlamat.setRows(5);
jScrollPane2.setViewportView(tAlamat);
jLabel9.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel9.setText("Alamat Konsumen");
tJumlahPengajuan.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
tJumlahPengajuan.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tJumlahPengajuanKeyPressed(evt);
}
});
tNoAplikasi.setEditable(false);
tNoAplikasi.setBackground(new java.awt.Color(255, 255, 255));
tNoAplikasi.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel18.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel18.setText("Id Konsumen");
tBunga.setEditable(false);
tBunga.setBackground(new java.awt.Color(255, 255, 255));
tBunga.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel10.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
108
jLabel10.setText("Bunga");
jLabel12.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel12.setText("Lama Angsur");
tLamaAngsur.setEditable(false);
tLamaAngsur.setBackground(new java.awt.Color(255, 255, 255));
tLamaAngsur.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel13.setFont(new java.awt.Font("BellGothic BT", 0, 16)); // NOI18N
jLabel13.setText("Angsuran Perbulan");
tAngsuranPerbulan.setEditable(false);
tAngsuranPerbulan.setBackground(new java.awt.Color(255, 255, 255));
tAngsuranPerbulan.setFont(new java.awt.Font("BellGothic BT", 0, 16)); //
NOI18N
bCari.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/form/images/cari.png"))); //
NOI18N
bCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bCariActionPerformed(evt);
}
});
jLabel14.setFont(new java.awt.Font("BellGothic BT", 1, 16)); // NOI18N
jLabel14.setText("<< Enter >>");
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(10, 10, 10)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel3)
109
.addComponent(jLabel9)
.addComponent(jLabel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 131,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 131,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12,
javax.swing.GroupLayout.PREFERRED_SIZE, 131,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 131,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel18)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 318,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(tJumlahPengajuan,
javax.swing.GroupLayout.PREFERRED_SIZE, 213,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel14,
javax.swing.GroupLayout.PREFERRED_SIZE, 131,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(tNamaKonsumen,
javax.swing.GroupLayout.PREFERRED_SIZE, 358,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(tIdKonsumen,
javax.swing.GroupLayout.PREFERRED_SIZE, 199,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bCari))
.addComponent(tBunga,
javax.swing.GroupLayout.PREFERRED_SIZE, 213,
javax.swing.GroupLayout.PREFERRED_SIZE)
110
.addComponent(tLamaAngsur,
javax.swing.GroupLayout.PREFERRED_SIZE, 213,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tAngsuranPerbulan,
javax.swing.GroupLayout.PREFERRED_SIZE, 213,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(18, 18, 18)
.addComponent(tNoAplikasi,
javax.swing.GroupLayout.PREFERRED_SIZE, 235,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
TRAILING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(54, 54, 54)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(tIdKonsumen,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel18,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bCari,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
111
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(tNoAplikasi,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tNamaKonsumen,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel9,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tJumlahPengajuan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel14,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
112
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tBunga,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel12,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tLamaAngsur,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tAngsuranPerbulan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);
tabs.addTab("Input / Ubah Data", jPanel1);
jLabel17.setFont(new java.awt.Font("BellGothic BT", 1, 16)); // NOI18N
jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel17.setText("Cabang Wadas");
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
113
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILI
NG)
.addComponent(tabs)
.addComponent(jSeparator2,
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(btambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bsimpan,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(bbatal,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btutup,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jSeparator1,
javax.swing.GroupLayout.PREFERRED_SIZE, 353,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addComponent(jLabel16,
javax.swing.GroupLayout.PREFERRED_SIZE, 250,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel17,
javax.swing.GroupLayout.PREFERRED_SIZE, 250,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE)))
114
.addGap(18, 18, 18)
.addComponent(jLabel11,
javax.swing.GroupLayout.PREFERRED_SIZE, 334,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(jSeparator1,
javax.swing.GroupLayout.PREFERRED_SIZE, 10,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel16)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel17))
.addComponent(jLabel11,
javax.swing.GroupLayout.PREFERRED_SIZE, 60,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(18, 18, 18)
.addComponent(tabs)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator2,
javax.swing.GroupLayout.PREFERRED_SIZE, 10,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL
INE)
.addComponent(btambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 45,
javax.swing.GroupLayout.PREFERRED_SIZE)
115
.addComponent(bsimpan,
javax.swing.GroupLayout.PREFERRED_SIZE, 45,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bbatal, javax.swing.GroupLayout.PREFERRED_SIZE,
45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btutup, javax.swing.GroupLayout.PREFERRED_SIZE,
45, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void tcariActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_tcariActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_tcariActionPerformed
private void btambahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_btambahActionPerformed
// TODO add your handling code here:
this.Status = "Tambah";
this.NoAplikasi = "";
tNoAplikasi.requestFocus();
bersihForm();
tabs.setSelectedIndex(1);
aktif();
tNoAplikasi.setText(pengajuan.IdAuto());
}//GEN-LAST:event_btambahActionPerformed
private void bubahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_bubahActionPerformed
// TODO add your handling code here:
pengajuan = pengajuan.cariNoAplikasi(this.NoAplikasi);
if (pengajuan.getId_konsumen() != null) {
tampilData();
this.Status = "Ubah";
}
tabs.setSelectedIndex(1);
aktif();
}//GEN-LAST:event_bubahActionPerformed
private void bbatalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_bbatalActionPerformed
116
// TODO add your handling code here:
this.Status = "";
this.NoAplikasi = "";
bersihForm();
daftarPengajuan();
aktif();
tabs.setSelectedIndex(0);
}//GEN-LAST:event_bbatalActionPerformed
private void bhapusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_bhapusActionPerformed
// TODO add your handling code here:
if (JOptionPane.showConfirmDialog(rootPane, "Hapus data ini [" +
this.NoAplikasi + "]?", "Konformasi", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
if (konsumen.hapusKonsumen(this.NoAplikasi) > 0) {
JOptionPane.showMessageDialog(rootPane, "Data berhasil dihapus",
"Info", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Data gagal dihapus\n" +
konsumen.getPesanError(), "Info", JOptionPane.ERROR_MESSAGE);
}
}
this.NoAplikasi = "";
daftarPengajuan();
aktif();
}//GEN-LAST:event_bhapusActionPerformed
private void btutupActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_btutupActionPerformed
// TODO add your handling code here:
dispose();
}//GEN-LAST:event_btutupActionPerformed
private void formMouseClicked(java.awt.event.MouseEvent evt) {//GEN-
FIRST:event_formMouseClicked
// TODO add your handling code here:
}//GEN-LAST:event_formMouseClicked
private void tblkonsumenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-
FIRST:event_tblkonsumenMouseClicked
// TODO add your handling code here:
int row = tblkonsumen.getSelectedRow();
this.NoAplikasi = (String) model.getValueAt(row, 0);
aktif();
}//GEN-LAST:event_tblkonsumenMouseClicked
117
private void bsimpanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_bsimpanActionPerformed
// TODO add your handling code here:
if ("".equals(tNoAplikasi.getText())
|| "".equals(tIdKonsumen.getText())
|| "".equals(tJumlahPengajuan.getText())
|| "".equals(tBunga.getText())
|| "".equals(tLamaAngsur.getText())
|| "".equals(tAngsuranPerbulan.getText())) {
JOptionPane.showMessageDialog(rootPane, "Mohon isi data dulu", "Info",
JOptionPane.ERROR_MESSAGE);
return;
}
if (!FIFKredit.validasiInput(tJumlahPengajuan.getText(), "^[0-9]{5,14}$")) {
JOptionPane.showMessageDialog(rootPane, "Jumlah pengajuan hanya boleh
angka minimal 4 digit", "Galat", JOptionPane.ERROR_MESSAGE);
return;
}
setData();
if ("Tambah".equals(Status)) {
if (pengajuan.tambahPengajuan()> 0) {
JOptionPane.showMessageDialog(rootPane, "Data berhasil disimpan",
"Info", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Data gagal disimpan\n" +
pengajuan.getPesanError(), "Info", JOptionPane.ERROR_MESSAGE);
return;
}
} else if (pengajuan.ubahPengajuan(this.NoAplikasi) > 0) {
JOptionPane.showMessageDialog(rootPane, "Data berhasil diubah", "Info",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(rootPane, "Data gagal diubah\n" +
pengajuan.getPesanError(), "Info", JOptionPane.ERROR_MESSAGE);
return;
}
this.NoAplikasi = "";
this.Status = "";
daftarPengajuan();
bersihForm();
aktif();
tabs.setSelectedIndex(0);
118
}//GEN-LAST:event_bsimpanActionPerformed
private void tcariKeyTyped(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_tcariKeyTyped
if ("".equals(tcari.getText())) {
daftarPengajuan();
} else {
daftarPengajuan(tcari.getText());
}
// TODO add your handling code here:
}//GEN-LAST:event_tcariKeyTyped
private void bCariActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_bCariActionPerformed
// TODO add your handling code here:
tIdKonsumen.setText(new FormCariKonsumen(this, true).CariKonsumen());
cariKonsumen(tIdKonsumen.getText());
}//GEN-LAST:event_bCariActionPerformed
private void tIdKonsumenKeyPressed(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_tIdKonsumenKeyPressed
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
cariKonsumen(tIdKonsumen.getText());
}
}//GEN-LAST:event_tIdKonsumenKeyPressed
private void tJumlahPengajuanKeyPressed(java.awt.event.KeyEvent evt) {//GEN-
FIRST:event_tJumlahPengajuanKeyPressed
// TODO add your handling code here:
double persenBunga = 0.1;
int lama_angsur = 10;
int angsuran = 0;
int total = 0;
int bunga = 0;
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
tLamaAngsur.setText(String.valueOf(lama_angsur));
try {
bunga = (int) (Integer.parseInt(tJumlahPengajuan.getText()) *
persenBunga);
total = Integer.parseInt(tJumlahPengajuan.getText()) + bunga;
angsuran = total / lama_angsur;
tBunga.setText(nf.format(bunga));
tAngsuranPerbulan.setText(nf.format(angsuran));
} catch (Exception ex) {
119
tBunga.setText("0");
tAngsuranPerbulan.setText("0");
}
}
}//GEN-LAST:event_tJumlahPengajuanKeyPressed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException |
IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormPengajuanKredit.class.getName()).log(java.
util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormPengajuanKredit().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton bCari;
private javax.swing.JButton bbatal;
120
private javax.swing.JButton bhapus;
private javax.swing.JButton bsimpan;
private javax.swing.JButton btambah;
private javax.swing.JButton btutup;
private javax.swing.JButton bubah;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JTextArea tAlamat;
private javax.swing.JTextField tAngsuranPerbulan;
private javax.swing.JTextField tBunga;
private javax.swing.JTextField tIdKonsumen;
private javax.swing.JTextField tJumlahPengajuan;
private javax.swing.JTextField tLamaAngsur;
private javax.swing.JTextField tNamaKonsumen;
private javax.swing.JTextField tNoAplikasi;
private javax.swing.JTabbedPane tabs;
private javax.swing.JTable tblkonsumen;
private javax.swing.JTextField tcari;
// End of variables declaration//GEN-END:variables
}
121
3.5.2. Blackbox Testing
1. Form Login
Tabel III.36.
Hasil Pengujian Black Box Testing Form Login
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Id User dan
password
tidak diisi
kemudian
klik tombol
login
Id User:
(Kosong)
Password:
(Kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan " Id
User dan
Password
tidak boleh
kosong!"
Sesuai
Harapan Valid
2
Id User
sedangkan
Password
tidak diisi
kemudian
klik tombol
login
Id User:
melina.1
Password:
(Kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan " Id
User dan
Password
tidak boleh
kosong!"
Sesuai
Harapan Valid
3
Id User tidak
di isi atau
(kosong) dan
Password
diisi
kemudian
klik tombol
login
Id User:
(Kosong)
Password:
12345678
Sistem akan
menolak
akses dan
menampilkan
pesan " Id
User dan
Password
tidak boleh
kosong!"
Sesuai
Harapan Valid
4
Mengetikkan
salah satu
kondisi salah
pada Id User
atau
password
kemudian
klik tombol
Login
Id User:
melina.1
(benar)
Password:
123456 (salah)
Sistem akan
menolak
akses dan
menampilkan
pesan "
Password
keliru!"
Sesuai
Harapan
Valid
122
5
Mengetikkan
salah satu
kondisi salah
pada Id User
atau
password
kemudian
klik tombol
Login
Id User:
aaaa (salah)
Password:
12345678
(benar)
Sistem akan
menolak
akses dan
menampilkan
pesan " Id
User keliru!"
Sesuai
Harapan
Valid
5
Mengetikkan
Id User dan
password
dengan data
yang benar
kemudian
klik tombol
Login
Id User:
melina.1
(benar)
Password:
12345678
(benar)
Sistem akan
menerima
akses Login
dan
menampilkan
Form Menu
Utama
Sesuai
Harapan Valid
2. Form Konsumen
Tabel III.37.
Hasil Pengujian Black Box Testing Form Konsumen
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Tidak ada
satupun field
yang diisi
kemudian
klik simpan
Id Konsumen
(auto)
Nama
Konsumen
(kosong)
No Identitas
(kosong)
Tempat Lahir
(kosong)
Tanggal Lahir
(kosong)
Jenis Kelamin
(kosong)
Alamat
(kosong)
No Telp
(kosong)
Status
Perkawinan
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan "
Mohon isi
data dulu"
Sesuai
Harapan Valid
123
Pekerjaan
(kosong)
Pendidikan
Terakhir
(kosong)
Penghasilan
(kosong)
2
Semua field
diisi, tapi
Nama
konsumen
diisi dengan
data yang
tidak valid
kemudian
klik simpan
Id Konsumen
(auto)
Nama
Konsumen
12345678
No Identitas
123456781234
567812
Tempat Lahir
Karawang
Tanggal Lahir
1999-02-01
Jenis Kelamin
Laki-laki
Alamat
Lemahabang
Wadas
No Telp
123456789
Status
Perkawinan
Belum
Menikah
Pekerjaan
Swasta
Pendidikan
Terakhir
SMA
Penghasilan
5000000
Sistem akan
menolak
akses dan
menampilkan
pesan "Nama
konsumen
hanya boleh
alfabet"
Sesuai
Harapan Valid
3
Semua field
diisi, tapi
Tempat lahir
diisi dengan
data yang
tidak valid
kemudian
klik simpan
Id Konsumen
(auto)
Nama
Konsumen
Airlangga
Satriadi
No Identitas
Sistem akan
menolak
akses dan
menampilkan
pesan
"Tempat
lahir hanya
Sesuai
Harapan Valid
124
123456781234
567812
Tempat Lahir
656656
Tanggal Lahir
1999-02-01
Jenis Kelamin
Laki-laki
Alamat
Lemahabang
Wadas
No Telp
123456789
Status
Perkawinan
Belum
Menikah
Pekerjaan
Swasta
Pendidikan
Terakhir
SMA
Penghasilan
5000000
boleh
alfabet"
4
Semua field
diisi, dengan
data yang
benar
kemudian
klik simpan
Id Konsumen
(auto)
Nama
Konsumen
Airlangga
Satriadi
No Identitas
123456781234
567812
Tempat Lahir
Karawang
Tanggal Lahir
1999-02-01
Jenis Kelamin
Laki-laki
Alamat
Lemahabang
Wadas
No Telp
123456789
Sistem akan
menolak
akses dan
menampilkan
pesan "Data
berhasil
disimpan"
Sesuai
Harapan Valid
125
Status
Perkawinan
Belum
Menikah
Pekerjaan
Swasta
Pendidikan
Terakhir
SMA
Penghasilan
5000000
126
3. Form Pengajuan Kredit
Tabel III.38.
Hasil Pengujian Black Box Testing Form Pengajuan Kredit
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Tidak ada
satupun field
yang diisi
kemudian
klik simpan
No Aplikasi
0001/PJ/2020
Id Konsumen
(kosong)
Nama
Konsumen
(kosong)
Alamat
Konsumen
(kosong)
Jumlah
Pengajuan
(kosong)
Bunga
(kosong)
Lama Angsur
(kosong)
Angsuran
Perbulan
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan "
Mohon isi
data dulu"
Sesuai
Harapan Valid
2
Salah satu
field tidak
diisi
kemudian
klik simpan
No Aplikasi
0001/PJ/2020
Id Konsumen
IDKS000001
Nama
Konsumen
Airlangga
Satriadi
Alamat
Konsumen
Lemahabang
Wadas
Jumlah
Pengajuan
(kosong)
Bunga
(kosong)
Lama Angsur
(kosong)
Sistem akan
menolak
akses dan
menampilkan
pesan "
Mohon isi
data dulu"
Sesuai
Harapan Valid
127
Angsuran
Perbulan
(kosong)
3
Semua data
diisi tetapi
filed jumla
peminjman
tidak diiisi
angka
kemudian
klik simpan
No Aplikasi
0001/PJ/2020
Id Konsumen
IDKS000001
Nama
Konsumen
Airlangga
Satriadi
Alamat
Konsumen
Lemahabang
Wadas
Jumlah
Pengajuan
500000a
Bunga
0
Lama Angsur
10
Angsuran
Perbulan
0
Sistem akan
menolak
akses dan
menampilkan
pesan "
Jumlah
pengajuan
hanya boleh
angka
minimal 4
digit" Sesuai
Harapan Valid
4
Semua data
diisi dengan
data yang
benar
kemudian
klik simpan
No Aplikasi
0001/PJ/2020
Id Konsumen
IDKS000001
Nama
Konsumen
Airlangga
Satriadi
Alamat
Konsumen
Lemahabang
Wadas
Jumlah
Pengajuan
500000
Bunga
500000
Lama Angsur
10
Sistem akan
menolak
akses dan
menampilkan
pesan "Data
berhasil
disimpan"
Sesuai
Harapan Valid
128
Angsuran
Perbulan
550000
3.5.3. Spesifikasi Hardware dan Software
1. Perangkat Keras (Hardware)
Perangkat Keras (Hardware) adalah seluruh komponen yang membentuk suatu
sistem komputer dan peralatan lainnya yang minimum dan memungkinkan komputer
dapat melaksanakan tugasnya. Spesifikasi perangkat keras yang diusulkan adalah
sebagai berikut :
a. Processor : Intel atau AMD 2Ghz atau lebih
b. Memory Size : 2 GB
c. Hardisk : Instalasi Minimal 3GB untuk instalasi
d. Mouse : Standar Mouse
e. Keyboard : 102 Keys
f. Monitor : LED 15 inch
g. Printer : DOT Matriks
2. Perangkat Lunak (Software)
Perangkat Lunak atau Software merupakan suatu rangkaian intruksi yang
disusun secara teratur agar komputer dapat mengolah data untuk mendapatkan
informasi yang dibutuhkan oleh pengguna. Dalam pembuatan program ini dibutuhkan
perangkat lunak sebagai berikut :
a. Sistem Operasi : Windows 8 keatas
b. Program Aplikasi : JDK 8.1
c. Program Database : DBMS MySQL versi 5.0 keatas
d. Program Report : Jasper Report