BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan · Tugas, wewenang, tanggung jawab, hak dan kewajiban...

of 100 /100
20 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Pada tinjauan Koperasi Simpan Pinjam Credit Union Keluarga Kudus (KSP.CU) Pontianak ini akan dibahas mengenai sejarah berdirinya Koperasi Simpan Pinjam Credit Union Keluarga Kudus (KSP.CU) Pontianak, struktur organisasi dan fungsi, Visi, Misi dan Slogan Koperasi Simpan Pinjam Credit Union Keluarga Kudus (KSP.CU) Pontianak. 3.1.1. Sejarah Perusahaan Sejak berdiri pada tanggal 5 Oktober 2000 sampai pada bulan Mei tahun 2005, pelayanan Koperasi Kredit Credit Union Keluarga Kudus hanya dilakukan pada hari minggu saja, setelah pulang misa, sedangkan hari lainnya tutup. Pada waktu itu, yang melayani anggota hanya pengurus, yaitu Ibu Lucia Ekawati sebagai bendahara, dibantu oleh beberapa sukarelawan dari anggota, yaitu Martina Elen, Felix Belawing, dan Ibu Donalita Djono Sarjiyati. Mulai bulan Juni tahun 2005 pelayanan dilakukan enam (6) hari dalam seminggu, mulai dari hari minggu sampai hari jumat, sedangkan hari sabtu libur. Pada saat itu pengurus telah mengangkat tiga orang staf untuk melayani anggota. Pada awalnya, pencatatan transaksi di buku anggota masih dilakukan secara manual. Namun sejak 1 Oktober 2005, Koperasi Kredit CU. Keluarga Kudus sudah menggunakan program Simpan Koperasi Kredit (Sikopdit).

Embed Size (px)

Transcript of BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan · Tugas, wewenang, tanggung jawab, hak dan kewajiban...

  • 20

    BAB III

    PEMBAHASAN

    3.1. Tinjauan Perusahaan

    Pada tinjauan Koperasi Simpan Pinjam Credit Union Keluarga Kudus

    (KSP.CU) Pontianak ini akan dibahas mengenai sejarah berdirinya Koperasi

    Simpan Pinjam Credit Union Keluarga Kudus (KSP.CU) Pontianak, struktur

    organisasi dan fungsi, Visi, Misi dan Slogan Koperasi Simpan Pinjam Credit

    Union Keluarga Kudus (KSP.CU) Pontianak.

    3.1.1. Sejarah Perusahaan

    Sejak berdiri pada tanggal 5 Oktober 2000 sampai pada bulan Mei tahun

    2005, pelayanan Koperasi Kredit Credit Union Keluarga Kudus hanya dilakukan

    pada hari minggu saja, setelah pulang misa, sedangkan hari lainnya tutup. Pada

    waktu itu, yang melayani anggota hanya pengurus, yaitu Ibu Lucia Ekawati

    sebagai bendahara, dibantu oleh beberapa sukarelawan dari anggota, yaitu Martina

    Elen, Felix Belawing, dan Ibu Donalita Djono Sarjiyati. Mulai bulan Juni tahun

    2005 pelayanan dilakukan enam (6) hari dalam seminggu, mulai dari hari minggu

    sampai hari jumat, sedangkan hari sabtu libur. Pada saat itu pengurus telah

    mengangkat tiga orang staf untuk melayani anggota.

    Pada awalnya, pencatatan transaksi di buku anggota masih dilakukan

    secara manual. Namun sejak 1 Oktober 2005, Koperasi Kredit CU. Keluarga

    Kudus sudah menggunakan program Simpan Koperasi Kredit (Sikopdit).

  • 21

    Pencatatan transaksi dilakukan dengan computer dan printer seperti yang

    digunakan pada saat ini.

    Pada tanggal 11 Februari 2008,setelah rapat anggota tahunan koperasi

    kredit CU. Keluarga Kudus (RAT CUKKD) Tahun Buku 2007, kantor CU pindah

    ke Gedung Paroki yang baru, bertempat di sebelah gedung Gereja Katolik

    Keluarga Kudus. Hal ini di karenakan Gedung Bina Karya akan dibongkar dan

    didirikan Gereja Katolik Keluarga Kudus yang baru.

    3.1.2. Struktur Organisasi dan Fungsi

    Adapun susunan Struktur Organisasi dan Fungsi CU. Keluarga Kudus

    Pontianak adalah sebagai berikut:

    Kepala Departemen Pendidikan

    Anggota dan Marketing

    Kepala Departemen

    Keuangan dan

    Accounting

    Kepala Departemen

    Kredit dan Penagihan

    Kepala Departemen

    Human Resource

    Development

    Kepala Departemen Administrasi Umum dan

    Procurement

    Kepala Departemen

    Informasi dan

    Teknologi

    Kepala Departemen

    Audit Internal

    Branch Manager

    Branch Manager

    Branch Manager

    Branch Manager

    Branch Manager

    Branch Manager

    Branch Manager

    MANAGER

    Sumber: Data KSP CU.KKD Pontianak (2017)

    Gambar III.1.

    Struktur Organisasi dan Fungsi

    Sedangkan tugas dan kewajiban dari setiap jabatan dalam Struktur

    Organisasi dan Fungsi antara lain adalah sebagai berikut:

    1. Manager

    a. Pengertian

  • 22

    Manager adalah pimpinan tertinggi dari manajemen. Manager

    merupakan anggota Pengurus tanpa hak suara. Manager ditunjuk oleh

    Pengurus dengan Surat Keputusan. Masa jabatan Manager maksimal

    lima tahun.

    b. Tugas, wewenang, tanggung jawab, hak dan kewajiban Manager

    diatur dalam Job Description Manager.

    c. Manager akan menjadi General Manager jika sudah memiliki satu

    Branch Office Tipe A dan sembilan Branch Office Tipe B.

    2. Departemen Pendidikan Anggota dan Marketing

    a. Pengertian

    Departemen Pendidikan Anggota dan Marketing adalah departemen

    yang menangani pendidikan bagi anggota dan pemasaran produk dan

    pelayanan KSP Credit Union Keluarga Kudus.

    b. Departemen Pendidikan Anggota dan Marketing dipimpin oleh

    seorang Kepala Departemen yang ditunjuk oleh Manager dengan

    Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Pendidikan Anggota dan Marketing diatur dalam Job

    Description.

    3. Departemen Keuangan dan Accounting

    a. Pengertian

    Departemen Keuangan dan Accounting adalah departemen yang

    menangani keuangan dan akuntansi KSP Credit Union Keluarga

    Kudus.

  • 23

    b. Departemen Keuangan dan Accounting dipimpin oleh seorang Kepala

    Departemen yang ditunjuk oleh Manager dengan Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Keuangan dan Accounting diatur dalam Job Description.

    4. Departemen Kredit dan Penagihan

    a. Pengertian

    Departemen Kredit dan Penagihan adalah departemen yang

    menangani kredit dan penagihan KSP Credit Union Keluarga Kudus.

    b. Departemen Kredit dan Penagihan dipimpin oleh seorang Kepala

    Departemen yang ditunjuk oleh Managerdengan Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Kredit dan Penagihan diatur dalam Job Description.

    5. Departemen Human Resource Development

    a. Pengertian

    Departemen Human Resource Development adalah departemen yang

    menangani pengembangan sumber daya manusia dan mengatur

    kinerja manajemen KSP Credit Union Keluarga Kudus.

    b. Departemen Human Resource Development dipimpin oleh seorang

    Kepala Departemen yang ditunjuk oleh Manager dengan Surat

    Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Human Resource Development diatur dalam Job

    Description.

  • 24

    6. Departemen Administrasi Umum dan Procurement

    a. Pengertian

    Departemen Administrasi Umum dan Procurement adalah departemen

    yang menangani pengaturan administrasi umum, perencanaan,

    pengadaan, pengendalian, pemeliharaan, dan pengamanan aset tetap

    dan inventaris KSP Credit Union Keluarga Kudus.

    b. Departemen Administrasi Umum dan Procurement dipimpin oleh

    seorang Kepala Departemen yang ditunjuk oleh Manager dengan

    Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Administrasi Umum dan Procurement diatur dalam Job

    Description.

    7. Departemen Informasi dan Teknologi

    a. Pengertian

    Departemen Informasi dan Teknologi adalah departemen yang

    menangani pengembangan teknologi, informasi dan komunikasi KSP

    Credit Union Keluarga Kudus.

    b. Departemen Informasi dan Teknologi dipimpin oleh seorang Kepala

    Departemen yang ditunjuk oleh Manager dengan Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Informasi dan Teknologi diatur dalam Job Description.

    8. Departemen Audit Internal

    a. Pengertian

  • 25

    Departemen Audit Internal adalah departemen yang menangani

    pengawasan dan audit internal KSP Credit Union Keluarga Kudus.

    b. Departemen Audit Internal dipimpin oleh seorang Kepala Departemen

    yang ditunjuk oleh Manager dengan Surat Keputusan.

    c. Tugas, wewenang, tanggung jawab, hak dan kewajiban Kepala

    Departemen Audit Internal diatur dalam Job Description.

    3.1.3. Visi, Misi, dan Slogan Koperasi Simpan Pinjam Credit Union

    Keluarga Kudus (KSP.CU) Pontianak

    Adapun visi dari Koperasi Simpan Pinjam Credit Union Keluarga Kudus

    (KSP.CU) Pontianak yaitu “Menjadi Credit Union yang tangguh dan terpercaya

    dalam pelayanan keuangan di Kalimantan Barat”, dan misinya yaitu

    “Meningkatkan kesejahteraan ekonomi dan sosial anggota dengan menyediakan

    askes pada pelayanan keuangan terbaik dan berkelanjutan”, dengan memiliki

    selogan “Bersama Kami Ada Solusi”.

    3.2. Tinjauan Kasus

    Credit Union saat ini telah banyak berkembang seiring dengan

    perkembangan usaha-usaha kecil dan besar yang semakin pesat. Tetapi masih

    banyak credit union yang belum sepenuhnya terkomputerisasi. Maka credit union

    ini perlu dibantu dengan menggunakan aplikasi yang memudahkan dalam proses

    piutang usaha (peminjaman dan angsuran). Maka dari itu penulis mencoba

    membuat program aplikasi piutang usaha dengan menggunakan aplikasi Netbeans

  • 26

    8.2 untuk mempercepat dan memaksimalkan pelayanan kepada para anggota

    credit union.

    Pada pembuatan program piutang usaha ini terjadi beberapa proses yaitu

    proses keanggotaan/registrasi, proses peminjaman, proses angsuran sampai

    pelunasan, prosedur laporan.

    1. Proses Keanggotaan/Registrasi

    Pada proses keanggotaan/registrasi, anggota mengisi formulir anggota dan

    menyerahkan syarat menjadi anggota, membayar simpanan pokok dan simpanan

    wajib kepada bagian kasir, kemudian bagian kasir memasukan data keanggotaan

    dalam Buku Daftar Anggota, selanjutnya bagian kasir mencetak buku anggota,

    dan menyerahkan buku anggota kepada anggota.

    2. Proses Peminjaman

    Pada proses ini anggota mengajukan permohonan pinjaman dibagian Kasir dan

    mengisi Formulir Pinjaman Anggota (FPA) dan menyerahkan beberapa

    persyaratan seperti Foto Copy Kartu Tanda Penduduk (KTP), Kartu Keluarga

    (KK) pada bagian Kredit setelah itu bagian Kredit mengecek semua berkas-berkas

    persyaratan anggota untuk pengajuan pinjaman. Data-data tersebut kemudian

    Bagian Kredit simpan untuk proses selanjutnya, kemudian Bagian Kredit

    membuat Surat Perjanjian Pinjaman (SPP) kemudian Bagian Kredit menyerahkan

    Surat Perjanjian Pinjaman (SPP) dibagian Kasir dan memberikannya kepada

    anggota, setelah anggota mengisi Surat Perjanjian Pinjaman (SPP) anggota

    menyerahkan kembali Surat Perjanjian Pinjaman (SPP) dibagian Kasir dan bagian

    kasir menyerahkannya dibagian kredit untuk dicek kelengkapan data, setelah

    lengkap data-data tersebut, maka bagian kredit mengeluarkan data-data pencairan

  • 27

    pinjaman dan diserahkan dibagian kasir, setelah itu Bagian Kasir membuat Bukti

    Penarikan Uang (BPU) dan Slip Uang Keluar (SUK) kemudian bagian kasir

    menyerahkan uang pinjaman, Bukti Penarikan Uang (BPU) dan Slip Uang Keluar

    (SUK) pada anggota, sedangkan Copy Bukti Penarikan Uang (BPU) dan Slip

    Uang Keluar (SUK) bagian kasir simpan untuk proses pembuatan laporan.

    3. Proses Angsuran sampai Pelunasan

    Pada proses angsuran, anggota membayar angsuran beserta bunga selama

    beberapa bulan atau sampai pinjaman di Credit Union sudah lunas ke bagian

    kasir, dengan menyerahkan Buku Anggota. setelah itu bagian kasir akan membuat

    Slip Uang Masuk (SUM) sebagai bukti sudah membayar angsuran. Jika angsuran

    sudah lunas, maka bagian kredit akan mengembalikan jaminan sebagai syarat

    pinjaman.

    4. Prosedur Laporan

    Pada proses ini bagian kasir membuat Laporan Pinjaman Bulanan (LPB),

    Laporan Pinjaman Bulanan (LPB) dibuat berdasarkan data-data sebelumnya yang

    anggota serahkan pada saat ingin mengajukan pinjaman. Kemudian bagian Kasir

    menyerahkan Laporan Pinjaman Bulanan (LPB) pada Bagian Kredit lalu

    ditembuskan dibagian Manager untuk proses pengesahan.

    3.2.1. Dokumen Masukan

    Dokumen Masukan adalah segala bentuk yang berupa dokumen yang

    diolah dalam proses yang dapat menghasilkan keluaran atau output yang

    diinginkan. Yang termasuk dokumen masukan dalam Piutang Usaha Anggota

    Pada KSP.CU. Keluarga Kudus Pontianak sebagai berikut :

  • 28

    A) Nama Dokumen : Data Anggota KSP.Credit Union

    Fungsi : Sebagai Dokumen Anggota KSP.Credit

    Union

    Sumber : Anggota

    Tujuan : Anggota

    Media : Kertas

    Jumlah : Rangkap satu

    Frekuensi : Sekali Untuk Setiap Pendaftaran Anggota

    Format : Lampiran A.1

    B) Nama Dokumen : Bukti Penarikan Uang (BPU)

    Fungsi : Sebagai Slip Pencairan Uang

    Sumber : Bagian Kredit/Kasir

    Tujuan : Anggota

    Media : Kertas

    Jumlah : Rangkap satu

    Frekuensi : Sekali Untuk Setiap Kas Keluar

    Format : Lampiran A.2

    C) Nama dokumen : Buku Anggota (BA)

    Fungsi : Sebagai Bukti Buku Tabungan

    Sumber : Anggota

    Tujuan : Bagian Kasir

    Media : Kertas

    Jumlah : Rangkap satu

    Frekuensi : Sekali untuk setiap Anggota Setor

  • 29

    Format : Lampiran A.3

    D) Nama dokumen : SUM

    Fungsi : Sebagai Bukti Angsuran

    Sumber : Anggota

    Tujuan : Bagian Kasir

    Media : Kertas

    Jumlah : Rangkap satu

    Frekuensi : Sekali untuk setiap Anggota Setor

    Angsuran

    Format : Lampiran A.4

    3.2.2. Dokumen Keluaran

    Dokumen Keluaran adalah dokumen yang dihasilkan dari proses Sistem

    input atau disebut juga denga dokumen keluaran. Yang termasuk dokumen

    keluaran dalam Sistem dalam Piutang Usaha Anggota Pada KSP.CU. Keluarga

    Kudus Pontianak sebagai berikut :

    A) Nama Dokumen : Slip Uang Keluar (SUK)

    Fungsi : Bukti Kas Keluar

    Sumber : Bagian Kasir

    Tujuan : Anggota

    Media : Kertas

    Jumlah : Rangkap satu

    Frekuensi : Sekali Untuk Setiap Pengeluaran Kas Keluar

    Format : Lampiran B.1

  • 30

    B) Nama Dokumen : LPB

    Fungsi : Sebagai Sumber Laporan Pinjaman

    Sumber : Bagian Kasir

    Tujuan : Kepala Bagian Manager

    Media : Kertas

    Jumlah : Satu Rangkap Laporan

    Frekuensi : Setiap Bulan Pembuatan Laporan Bulanan

    Format : Lampiran B.2

    3.3. Analisa Kebutuhan Software

    Analisa kebutuhan software adalah penguraian dari suatu kebutuhan

    informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk

    mengidentifikasi dan mengevaluasi permasalahan-permaslahan, kesempatan-

    kesempatan dan hambatan-hambatan yang terjadi dan kebutuhan-kebutuha yang

    diharapkan. Berikut adalah Use Case Diagram dan Activity Diagram dari proses

    keanggotaan/registrasi, proses peminjaman, proses angsuran sampai pelunasan,

    prosedur laporan.

    3.3.1. Analisa Kebutuhan

    Tahapan analisis, meliputi tahapan analisis kebutuhan fungsionalitas

    dari masing-masing pengguna yang berinteraksi langsung terhadap

    sistem informasi pinjaman dan angsuran.

  • 31

    a. Kasir

    A1. kasir bisa melakukan login kedalam sistem pinjaman.

    A2. Kasir bisa mengelola data anggota.

    A3. kasir bisa menginput data angsuran pinjaman.

    b. Staff Kredit

    B1. staff kredit bisa melakukan login kedalam sistem pinjaman.

    B2. staff kredit bisa menginput data pinjaman.

    B3. staff kredit bisa mengelola laporan.

    3.3.2. Tahapan Analisis Kebutuhan Userinterface

    a. Kasir

    1.Form login untuk kasir.

    2. Form untuk mengelola data anggota.

    a. From tambah data anggota.

    b. From ubah data anggota.

    3. From data transaksi angsuran pinjaman.

    a. From tambah data transaksi angsuran pinjaman.

    b. From simpan data transaksi angsuran pinjaman.

    b. Staff Kredit

    1. Form login untuk Staff Kredit.

    2. From untuk menginput data peminjaman.

    a.From tambah data pinjaman.

    b.From ubah data pinjaman.

    3. From Cetak data pinjaman.

  • 32

    4. From untuk menampilkan laporan.

    a. From tambah data laporan.

    b.From ubah data laporan.

    3.3.3. Use Case Diagram

    Setelah kebutuhan fungsional dari masing-masing pengguna sistem

    informasi piutang usaha, selanjutnya, akan digambarkan use case diagram,

    seperti dibawah ini:

    a. Use Case Diagram Kasir

    Sumber : Hasil Penelitian (2017)

    Gambar III.2. Use Case Diagram Kasir

  • 33

    Berikut penjelasan atau desikripsi dari use case diagram kasir.

    Tabel III.1. Deskripsi Use Case Diagram Kasir

    Use Case Name Halaman Kasir

    Requirements A1-A3

    Goal Kasir dapat mengelola data anggota, dan

    data transaksi angsuran pinjaman

    Pre-Conditions Kasir masuk mengakses halaman login

    Post-Conditions Kasir melakukan login dan masuk ke

    sistem angsuran pinjaman

    Failed End Condition Kasir dapat membatalkan login

    Primary Actors Kasir

    Main Flow / Basic Path 1. Kasir dapat mengelola data anggota 2. Kasir dapat mengelola data transaksi

    angsuran pinjaman

    Invariant -

    b. Use Case Diagram Staff Kredit

    Sumber : Hasil Penelitian (2017)

    Gambar III.3. Use Case Diagram Staff Kredit

  • 34

    Berikut penjelasan atau desikripsi dari use case diagram Staff Kredit.

    Tabel III.2.Deskripsi Use Case Diagram Staff Kredit

    Use Case Name Halaman Staff Kredit

    Requirements B1-B4

    Goal Staff Kredit bisa menginput data

    peminjaman dan bisa mengelola laporan

    Pre-Conditions Staff Kredit masuk mengakses halaman

    login

    Post-Conditions Staff Kredit melakukan login dan masuk

    ke sistem pinjaman

    Failed End Condition Staff Kredit dapat membatalkan login

    Primary Actors Staff Kredit

    Main Flow / Basic Path 1. Staff Kredit bisa menginput data peminjaman

    2. Staff Kredit bisa mengelola laporan

    Invariant -

    3.3.4. Desain Aktivitas Sistem

    Setelah kebutuhan fungsional dari masing-masing pengguna sistem

    informasi piutang usaha, selanjutnya, akan digambarkan activity diagram

    dari masing use case yag ada pada use case diagram, seperti dibawah

    ini:

  • 35

    a. Activity Diagram Login

    Sumber : Hasil Penelitian (2017)

    Gambar III.4. Activity Diagram Login

  • 36

    b. Activity Diagram Data Anggota

    Sumber : Hasil Penelitian (2017)

    Gambar III.5. Activity Diagram Anggota

  • 37

    c. Activity Diagram Pinjaman

    Sumber : Hasil Penelitian (2017)

    Gambar III.6. Activity Diagram Pinjaman

  • 38

    d. Activity Diagram Transaksi Pinjaman

    Sumber : Hasil Penelitian (2017)

    Gambar III.7. Activity Diagram Transaksi Pinjaman

  • 39

    e. Activity Diagram Data Angsuran

    Sumber : Hasil Penelitian (2017)

    Gambar III.8. Activity Diagram Angsuran

    3.4. Desain

    3.4.1. Software Architecture

    Pada desain penggambaran sofware architecture, penggambaran

    mengunakan class diagram dan sequence diagram,sebagai berikut:

    1. Class Diagram Piutang Usaha

    Berikut penggambaran class diagram piutang usaha

  • 40

    Sumber : Hasil Penelitian (2017)

    Gambar III.9. Class Diagram Piutang Usaha

    2. Sequence Diagram

    Berikut sequence diagram piutang usaha

    a. Sequence Diagram Login

    Sumber : Hasil Penelitian (2017)

    Gambar III.10. Sequence Diagram Login

  • 41

    b. Sequen Diagram Transaksi Pinjaman

    Sumber : Hasil Penelitian (2017)

    Gambar III.11. Sequence Diagram Transaksi Pinjaman

  • 42

    c. Sequen Diagram Data Transaksi Angsuran

    Sumber : Hasil Penelitian (2017)

    Gambar III.12. Sequence Diagram Transaksi Angsuran

    3.4.2. User Interface

    Sebuah rancangan antarmuka/user interface aplikasi sangat penting dalam

    mengetahui setiap gambaran dari masing-masing fitur dalam suatu halaman

    sehingga memberikan kesan tersendiri bagi pengguna untuk dapat menggunakan

    apliaksi tersebut sesuai kebutuhan. Dimana pada halaman-halaman tersebut semua

    fitur mengarahkan pengguna pada fungi-fungsi sesuai kebutuhan dan prosedur

  • 43

    yang digunakan dalam sebuah apliaksi. Adapun rancangan tampilan tersebut

    adalah sebagai berikut:

    A. Rancangan Antar Muka/User Interface Login

    Halaman Login digunakan oleh user untuk dapat masuk ke dalam sistem.

    Pada tampilan login yang tampil pada saat pertama kali dibuka dan langsung

    menampilkan menu utama, Pada halaman login terdapat beberapa menu yang

    menampilkan halaman login, username, dan password. Dimana semua halaman-

    halaman tersebut mempunyai berbagai fitur sesuai prosedur yang berjalan sesuai

    kebutuhan. Untuk lebih jelasnya dapat dilihat pada gambar, sebagai berikut:

    Sumber : Hasil Penelitian (2017)

    Gambar III.13. User Interface Menu Login

    B. Rancangan Antar Muka/User Interface Menu Utama

    Dalam tampilan menu utama yang tampil pada saat pertama aplikasi

    dibuka dan langsung menampilkan halaman beranda, Pada halaman menu utama

    terdapat beberapa menu yang menampilkan halaman anggota, jenis pinjaman,

    transaksi pinjaman, transaksi angsuran, dan cetak semua laporan. Dimana semua

  • 44

    halaman-halaman tersebut mempunyai berbagai fitur sesuai prosedur yang

    berjalan sesuai kebutuhan. Untuk lebih jelasnya dapat dilihat pada gambar,

    sebagai berikut:

    Sumber : Hasil Penelitian (2017)

    Gambar III.14. User Interface Menu Utama

    Pada tampilan menu utama ada beberapa menu seperti tambah anggota

    yang berguna untuk menampilkan frm anggota dan otomatis akan muncul ketika

    dipanggil, tambah jenis pinjaman berguna untuk menampilkan frm jenis pinjaman

    dan otomatis akan muncul ketika dipanggil, menu transaksi pinjaman berguna

    untuk menampilkan frm transaksi pinjaman dan otomatis akan muncul ketika

    dipanggil, menu transaksi angsuran berguna untuk menampilkan frm transaksi

    angsuran dan otomatis akan muncul ketika dipanggil, dan menu laporan berguna

    untuk menampilkan frm laporan dan otomatis akan muncul ketika dipanggil.

    C. Rancangan Antar Muka/User Interface Transaksi Pinjaman

  • 45

    Dalam tampilan transaksi pinjaman dirancang untuk menginput pinjaman

    yang tampil pada saat pertama aplikasi dibuka dan langsung menampilkan

    halaman beranda, dan akan menamplkan menu transaksi pinjaman, transaksi

    pinjaman berguna untuk untuk mempemudah bagian staff kredit untuk menginput

    data pinjama anggota.

    Sumber : Hasil Penelitian (2017)

    Gambar III.15. User Interface Transaksi Pinjaman

    D. Rancangan Antar Muka/User Interface Transaksi Angsuran

    Dalam tampilan transaksi angsuran dirancang untuk menginput

    angsuran yang tampil pada saat pertama aplikasi dibuka dan langsung

    menampilkan halaman beranda, dan akan menamplkan menu transaksi angsuran,

    frm transaksi pinjaman berguna untuk mempemudah bagian kasir untuk

    menginput data angsuran anggota.

  • 46

    Sumber : Hasil Penelitian (2017)

    Gambar III.19. User Interface Transaksi Angsuran

    3.5. Implementasi

    Pada tahap mencoba kinerja sebuah aplikasi di butuhkan hasil yang

    sesuai harapan untuk melihat kinerja suatu aplikasi. Adapun tahap-tahap tersebut

    menjadi sebuah pengujian akan hasil yang baik untuk kedepannya dalam

    pengembangan dari aplikasi simpan pinjam ini. Dalam Implementasi,

    mengunakan code generation dan spesifikasi software dan hardware sebagai

    berikut:

    3.5.1. Code Generation

    Adapun code generation dari data anggota, data pinjaman, data transaksi

    pinjaman, dan data angsuran seperti berikut:

  • 47

    1. Code Generation Frm Login

    package apppiutangusaha;

    import apppiutangusaha.source.Database;

    import javax.swing.*;

    import java.awt.*;

    import java.sql.*;

    import java.util.Date;

    /**

    *

    * @author acer

    */

    public class FrmTransaksiPinjaman extends javax.swing.JFrame {

    Database dbsetting;

    String driver,database,user,pass,userLogin;

    private Object tabel;

    /**

    * Creates new form FrmTransaksiPinjaman

    */

    public FrmTransaksiPinjaman() {

    initComponents();

  • 48

    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

    Dimension frameSize=this.getSize();

    if(frameSize.height > screenSize.height){

    frameSize.height=screenSize.height;

    }

    if(frameSize.width > screenSize.width) {

    frameSize.width=screenSize.width;

    }

    this.setLocation((screenSize.width - frameSize.width) /

    2,(screenSize.height = screenSize.height) / 10);

    dbsetting = new Database();

    driver = dbsetting.SettingPanel("DBDriver");

    database = dbsetting.SettingPanel("DBDatabase");

    user = dbsetting.SettingPanel("DBUsername");

    pass = dbsetting.SettingPanel("DBPassword");

    table.setModel(tableModel);

    Tabel(table, new int[]{100, 90, 80, 90, 80, 80});

    setDefaultTable();

    TampilComboAnggota();

  • 49

    TampilComboJenisPinjaman();

    TampilComboPinjaman();

    buatnomor();

    }

    private javax.swing.table.DefaultTableModel

    tableModel=getDefaultTabelModel();

    private void Tabel(javax.swing.JTable tb, int lebar[] ) {

    tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    int kolom=tb.getColumnCount();

    for(int i=0;i < kolom;i++) {

    javax.swing.table.TableColumn

    tbc=tb.getColumnModel().getColumn(i);

    tbc.setPreferredWidth(lebar[i]);

    tb.setRowHeight(17);

    }

    }

    private javax.swing.table.DefaultTableModel getDefaultTabelModel() {

    return new javax.swing.table.DefaultTableModel(

    new Object[][] {},

  • 50

    new String []

    {"NoPinjmn","Tanggal","IDAnggota","NominalPinjmn","IdJnsPnjmn","

    LamaPnjmn"}

    ){

    boolean[] canEdit = new boolean[]{

    false, false, false, false ,false, false

    };

    public boolean isCellEditable(int rowIndex, int

    columnIndex){

    return

    canEdit[columnIndex];

    }

    };

    }

    String data[]=new String[15];

    private void setDefaultTable() {

    try {

    Class.forName(driver);

  • 51

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblpinjaman";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    data[0] = res.getString(1);

    data[1] = res.getString(2);

    data[2] = res.getString(3);

    data[3] = res.getString(4);

    data[4] = res.getString(5);

    data[5] = res.getString(6);

    tableModel.addRow(data);

    }

    res.close();

    stt.close();

    kon.close();

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

  • 52

    }

    int row = 0;

    public void Tampil(){

    row = table.getSelectedRow();

    NPinjaman.setText(tableModel.getValueAt(row,

    0).toString());

    TglPinjaman.setText(tableModel.getValueAt(row,

    1).toString());

    IDAnggota.setSelectedItem(tableModel.getValueAt(row,

    2).toString());

    NmnlPinjaman.setText(tableModel.getValueAt(row,

    3).toString());

    IDJensPnjmn.setSelectedItem(tableModel.getValueAt(row,

    4).toString());

    LamaPinjaman.setSelectedItem(tableModel.getValueAt(row,

    5).toString());

  • 53

    Simpan.setEnabled(false);

    Batal.setEnabled(false);

    }

    public void BersihData(){

    buatnomor();

    TglPinjaman.setText("");

    IDAnggota.setSelectedItem("");

    NmnlPinjaman.setText("");

    IDJensPnjmn.setSelectedItem("");

    LamaPinjaman.setSelectedItem("");

    }

    private void MasukActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    masuk();

    }

    private void BatalActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

  • 54

    BersihData();

    }

    private void katasandiKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

    if (evt.getKeyCode() == KeyEvent.VK_ENTER){

    masuk();

    }

    }

    private void masuk(){

    try {

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tbllogin WHERE

    namapengguna = '"+namapengguna.getText()+"' AND katasandi =

    '"+katasandi.getText()+"'";

    ResultSet rss = stt.executeQuery(SQL);

    rss.next();

  • 55

    rss.last();

    if (rss.getRow()==1){

    new FrmMenuUtama().setVisible(true);

    this.dispose();

    }

    else {

    JOptionPane.showMessageDialog(null, "Maaf ! Nama

    Pengguna dan Kata Sandi Salah !");

    BersihData();

    }

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

    }

    2. Code Generation Frm Menu Utama

    package apppiutangusaha;

    import java.awt.Dimension;

    import java.awt.Toolkit;

    import javax.swing.JOptionPane;

  • 56

    /**

    *

    * @author acer

    */

    public class FrmMenuUtama extends javax.swing.JFrame {

    /**

    * Creates new form FrmMenuUtama

    */

    public FrmMenuUtama() {

    initComponents();

    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

    Dimension frameSize=this.getSize();

    if(frameSize.height > screenSize.height){

    frameSize.height=screenSize.height;

    }

    if(frameSize.width > screenSize.width) {

    frameSize.width=screenSize.width;

    }

  • 57

    this.setLocation((screenSize.width - frameSize.width) /

    2,(screenSize.height = screenSize.height) / 4);

    }

    private void AnggotaActionPerformed(java.awt.event.ActionEvent evt)

    {

    // TODO add your handling code here:

    new FrmAnggota().setVisible(true);

    }

    Private void JenisPinjamanActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    new FrmJenisPinjaman().setVisible(true);

    }

    private void

    TransaksiPinjamanActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    new FrmTransaksiPinjaman().setVisible(true);

    }

  • 58

    private void

    TransaksiAngsuranActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    new FrmTransaksiAngsuran().setVisible(true);

    }

    private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt)

    {

    // TODO add your handling code here:

    new FrmAnggota().setVisible(true);

    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    if(JOptionPane.showConfirmDialog(null,"Apakah Anda Yakin

    Ingin Keluar \n Jika Ya Tekan OK","Information",

    JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_M

    ESSAGE)==JOptionPane.OK_OPTION)

    this.dispose();

  • 59

    }

    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    if(JOptionPane.showConfirmDialog(null,"Apakah Anda Yakin

    Ingin Keluar \n Jika Ya Tekan OK","Information",

    JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_M

    ESSAGE)==JOptionPane.OK_OPTION)

    this.dispose();

    }

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    new FrmJenisPinjaman().setVisible(true);

    }

    private void jMenu2ActionPerformed(java.awt.event.ActionEvent evt)

    {

  • 60

    // TODO add your handling code here:

    new FrmTransaksiPinjaman().setVisible(true);

    }

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    new FrmTransaksiAngsuran().setVisible(true);

    }

    3. Code Generation Data Transaksi Pinjaman

    package apppiutangusaha;

    import apppiutangusaha.source.Database;

    import javax.swing.*;

    import java.awt.*;

    import java.sql.*;

    import java.util.Date;

    /**

  • 61

    *

    * @author acer

    */

    public class FrmTransaksiPinjaman extends javax.swing.JFrame {

    Database dbsetting;

    String driver,database,user,pass,userLogin;

    private Object tabel

    /**

    * Creates new form FrmTransaksiPinjaman

    */

    public FrmTransaksiPinjaman() {

    initComponents();

    Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

    Dimension frameSize=this.getSize();

    if(frameSize.height > screenSize.height){

    frameSize.height=screenSize.height;

  • 62

    }

    if(frameSize.width > screenSize.width) {

    frameSize.width=screenSize.width;

    }

    this.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height

    = screenSize.height) / 10);

    dbsetting = new Database();

    driver = dbsetting.SettingPanel("DBDriver");

    database = dbsetting.SettingPanel("DBDatabase");

    user = dbsetting.SettingPanel("DBUsername");

    pass = dbsetting.SettingPanel("DBPassword");

    table.setModel(tableModel);

    Tabel(table, new int[]{100, 100, 100, 90, 80, 90, 90,90});

    setDefaultTable();

    TampilComboAnggota();

    TampilComboJenisPinjaman();

  • 63

    //TampilComboPinjaman();

    TampilComboUser();

    buatnomor();

    }

    private javax.swing.table.DefaultTableModel

    tableModel=getDefaultTabelModel();

    private void Tabel(javax.swing.JTable tb, int lebar[] ) {

    tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    int kolom=tb.getColumnCount();

    for(int i=0;i < kolom;i++) {

    javax.swing.table.TableColumn

    tbc=tb.getColumnModel().getColumn(i);

    tbc.setPreferredWidth(lebar[i]);

    tb.setRowHeight(17);

    }

    }

  • 64

    private javax.swing.table.DefaultTableModel getDefaultTabelModel() {

    return new javax.swing.table.DefaultTableModel(

    new Object[][] {},

    new String []

    {"NoPinjmn","Tanggal","IDAnggota","NominalPinjmn","IDJnsPnjmn","LamaPnj

    mn", "IDUser", "TotalPinjaman"}

    ){

    boolean[] canEdit = new boolean[]{

    false, false, false, false ,false, false, false,

    false

    };

    public boolean isCellEditable(int rowIndex, int columnIndex){

    return canEdit[columnIndex];

    }

    };

    }

  • 65

    String data[]=new String[8];

    private void setDefaultTable() {

    try {

    Class.forName(driver);

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblpinjaman";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    data[0] = res.getString(1);

    data[1] = res.getString(2);

    data[2] = res.getString(3);

    data[3] = res.getString(4);

    data[4] = res.getString(5);

    data[5] = res.getString(6);

    data[6] = res.getString(7);

  • 66

    data[7] = res.getString(8);

    tableModel.addRow(data);

    }

    res.close();

    stt.close();

    kon.close();

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

    int row = 0;

    public void Tampil(){

    row = table.getSelectedRow();

    NPinjaman.setText(tableModel.getValueAt(row, 0).toString());

    TglPinjaman.setText(tableModel.getValueAt(row, 1).toString());

    IDAnggota.setSelectedItem(tableModel.getValueAt(row,

    2).toString());

  • 67

    NmnlPinjaman.setText(tableModel.getValueAt(row, 3).toString());

    IDJensPnjmn.setSelectedItem(tableModel.getValueAt(row,

    4).toString());

    LamaPinjaman.setText(tableModel.getValueAt(row, 5).toString());

    IDUser.setSelectedItem(tableModel.getValueAt(row,

    6).toString());

    TotlPinjmn.setText(tableModel.getValueAt(row, 7).toString());

    Simpan.setEnabled(false);

    Batal.setEnabled(false)

    }

    public void BersihData(){

    buatnomor();

    TglPinjaman.setText("");

    IDAnggota.setSelectedItem("");

    NmnlPinjaman.setText("");

    IDJensPnjmn.setSelectedItem("");

  • 68

    LamaPinjaman.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.

    */

    private void TambahBaruActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    BersihData();

    TanggalOtomatis();

    NPinjaman.requestFocus();

    Simpan.setEnabled(true);

    NmnlPinjaman.getText();

    JnsPinjmn.setEnabled(false);

  • 69

    Bunga.setEnabled(false);

    NmnlBunga.setEnabled(false);

    TotlPinjmn.getText();

    NMAnggota.setEnabled(false);

    Almt.setEnabled(false);

    Pekerjaan.setEnabled(false);

    NOKtp.setEnabled(false);

    NTelp.setEnabled(false);

    NmUser.setEnabled(false);

    }

    private void SimpanActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    String NP=NPinjaman.getText();

    String TP=TglPinjaman.getText();

    String IDA=IDAnggota.getSelectedItem().toString();

    String NT=NTelp.getText();

  • 70

    String IDP=IDJensPnjmn.getSelectedItem().toString();

    String LP=LamaPinjaman.getText().toString();

    String IU=IDUser.getSelectedItem().toString();

    String TotlP=TotlPinjmn.getText();

    if ((NP.isEmpty())|(TP.isEmpty())

    |(IDA.isEmpty()|(NT.isEmpty()|(IDP.isEmpty())|(LP.isEmpty())|(IU.isEmpty())|(T

    otlP.isEmpty()))))

    {

    JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan

    dilengkapi");

    NPinjaman.requestFocus();

    }else {

    try {

    Class.forName(driver);

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

  • 71

    String SQL = "insert into tblpinjaman

    values('"+NPinjaman.getText()+"',"+

    "'"+TglPinjaman.getText()+"',"+

    "'"+IDAnggota.getSelectedItem()+"',"+

    "'"+NmnlPinjaman.getText()+"',"+

    "'"+IDJensPnjmn.getSelectedItem()+"',"+

    "'"+LamaPinjaman.getText()+"',"+

    "'"+IDUser.getSelectedItem()+"',"+

    "'"+TotlPinjmn.getText()+"')";

    stt.executeUpdate(SQL);

    data[0] = NPinjaman.getText();

    data[1] = TglPinjaman.getText();

    data[2] = IDAnggota.getSelectedItem().toString();

    data[3] = NmnlPinjaman.getText();

    data[4] = IDJensPnjmn.getSelectedItem().toString();

    data[5] = LamaPinjaman.getText().toString();

  • 72

    data[6] = IDUser.getSelectedItem().toString();

    data[7] = TotlPinjmn.getText();

    tableModel.insertRow(0, data);

    stt.close();

    kon.close();

    BersihData();

    // JOptionPane.showMessageDialog(this, "Data Telah Berhasil Di

    Tambah");

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

    Simpan.setEnabled(true);

    TanggalOtomatis();

    NmnlBunga.setText("");

    TotlPinjmn.setText("");

    NPinjaman.requestFocus();

  • 73

    }

    }

    private void BatalActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    BersihData();

    TambahBaru.setEnabled(true);

    }

    private void tableMouseClicked(java.awt.event.MouseEvent evt) {

    // TODO add your handling code here:

    if (evt.getClickCount()==1) {

    Tampil();

    }

    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

  • 74

    if(JOptionPane.showConfirmDialog(null,"Apakah Anda Yakin Ingin Keluar

    \n Jika Ya Tekan OK","Information",

    JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAG

    E)==JOptionPane.OK_OPTION)

    this.dispose();

    }

    private void IDAnggotaActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tblanggota where Idanggota='"+

    IDAnggota.getSelectedItem().toString()+"'";

    ResultSet res = stt.executeQuery(SQL);

    res.absolute(1);

  • 75

    NMAnggota.setText(res.getString("namaanggota"));

    Almt.setText(res.getString("alamat"));

    Pekerjaan.setText(res.getString("pekerjaan"));

    NOKtp.setText(res.getString("noktp"));

    NTelp.setText(res.getString("notelp"));

    } catch (SQLException ex) {

    }

    }

    ///mem

    public void TampilComboAnggota(){

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tblanggota";

  • 76

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    IDAnggota.addItem(res.getString("IdAnggota"));

    }

    } catch (SQLException ex) {

    }

    }

    private void IDJensPnjmnItemStateChanged(java.awt.event.ItemEvent evt) {

    // TODO add your handling code here:

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tbljenispinjaman where

    Idjenispinjaman='"+ IDJensPnjmn.getSelectedItem().toString()+"'";

  • 77

    ResultSet res = stt.executeQuery(SQL);

    res.absolute(1);

    JnsPinjmn.setText(res.getString("jenispinjaman"));

    Bunga.setText(res.getString("bunga"));

    NmnlBunga.setText(res.getString("nominalbunga"));

    LamaPinjaman.setText(res.getString("lamapinjaman"));

    } catch (SQLException ex) {

    }

    }

    /// mem

    public void TampilComboJenisPinjaman(){

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

  • 78

    String SQL = "SELECT * FROM tbljenispinjaman";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    IDJensPnjmn.addItem(res.getString("Idjenispinjaman"));

    }

    } catch (SQLException ex) {

    }

    }

    //mem

    // public void TampilComboPinjaman(){

    // try {

    // Connection kon = DriverManager.getConnection(database,user,pass);

    // Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    // String SQL = "SELECT * FROM tblpinjaman";

  • 79

    // ResultSet res = stt.executeQuery(SQL);

    // while(res.next()){

    // LamaPinjaman.addItem(res.getString("lamapinjaman"));

    // }

    // } catch (SQLException ex) {

    //

    // }

    // }

    private void isiKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

    if(evt.getKeyCode()==100){

    tableModel.getDataVector().removeAllElements();

    tableModel.fireTableDataChanged();

    try {

    Class.forName(driver);

    Connection kon = DriverManager.getConnection(database,user,pass);

  • 80

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblpinjaman" ;

    ResultSet rss= stt.executeQuery(SQL);

    while(rss.next()){

    data[0]=rss.getString(1);

    data[1]=rss.getString(2);

    data[2]=rss.getString(3);

    data[3]=rss.getString(4);

    data[4]=rss.getString(5);

    data[5]=rss.getString(6);

    data[6]=rss.getString(7);

    data[7]=rss.getString(8);

    tableModel.addRow(data)

    }

    }

    catch (Exception ex){

  • 81

    System.err.println(ex.getMessage());

    }

    }

    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    tableModel.getDataVector().removeAllElements();

    tableModel.fireTableDataChanged();

    String NPinjaman=isi.getText();

    String TglPinjaman=isi.getText();

    String IDAnggota=isi.getText();

    String NominalPinjaman=isi.getText();

    String IDJenisPinjaman=isi.getText();

    String LamaPinjaman=isi.getText();

    String IDUser=isi.getText();

    String TotlPinjmn=isi.getText();

  • 82

    try {

    Class.forName(driver);

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblpinjaman WHERE nopinjaman like

    '%"+NPinjaman+"%'"

    + "OR tglpinjaman like '%"+TglPinjaman+"%'"

    + "OR Idanggota like '%"+IDAnggota+"%'"

    + "OR nominalpinjaman like '%"+NominalPinjaman+"%'"

    + "OR Idjenispinjaman like '%"+IDJenisPinjaman+"%'"

    + "OR lamapinjaman like '%"+LamaPinjaman+"%'"

    + "OR Iduser like '%"+IDUser+"%'"

    + "OR totalpinjaman '%"+TotlPinjmn+"%'";

    ResultSet rss= stt.executeQuery(SQL);

    while(rss.next()){

    data[0]=rss.getString(1);

  • 83

    data[1]=rss.getString(2);

    data[2]=rss.getString(3);

    data[3]=rss.getString(4);

    data[4]=rss.getString(5);

    data[5]=rss.getString(6);

    data[6]=rss.getString(7);

    data[7]=rss.getString(8);

    tableModel.addRow(data);

    }

    }

    catch (Exception ex){

    System.err.println(ex.getMessage());

    }

    }

    private void NPinjamanKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

  • 84

    if(NPinjaman.getText().length()>6)

    evt.consume();

    //hanya bisa diinput dengan angka saja

    char c =evt.getKeyChar();

    if(!Character.isDigit(c))

    evt.consume();

    }

    private void IDUserItemStateChanged(java.awt.event.ItemEvent evt) {

    // TODO add your handling code here:

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

  • 85

    String SQL = "SELECT * FROM tbluser where Iduser='"+

    IDUser.getSelectedItem().toString()+"'";

    ResultSet res = stt.executeQuery(SQL);

    res.absolute(1);

    NmUser.setText(res.getString("namauser"));

    } catch (SQLException ex) {

    }

    }

    private void HitungActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    int a,b,c ;

    a = Integer.parseInt(NmnlBunga.getText());

    b = Integer.parseInt(NmnlPinjaman.getText());

    c = a + b ;

    TotlPinjmn.setText(String.valueOf(c));

    }

  • 86

    //mem

    public void TampilComboUser(){

    try {

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tbluser";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    IDUser.addItem(res.getString("Iduser"));

    }

    } catch (SQLException ex) {

    }

    }

    public void TanggalOtomatis(){

  • 87

    Date tanggal = new Date();

    TglPinjaman.setText("" + (String.format("%1$tY-%1$tm-%1$td",tanggal)));

    }

    public void buatnomor(){

    try{

    Class.forName(driver);

    Connection kon = DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblpinjaman ORDER by

    nopinjaman desc ";

    ResultSet res = stt.executeQuery(SQL);

    if (res.next())

    {

    int no_t = Integer.parseInt(res.getString("nopinjaman")) ;

    NPinjaman.setText(Integer.toString(no_t+1));

    }

  • 88

    else{

    int no_t = 1 ;

    NPinjaman.setText(Integer.toString(no_t));

    }

    res.close();

    }catch (Exception e){

    }

    }

    /**

    * @param args he command line arguments

    */

    public static void main(String args[]) {

    /* Set the Nimbus look and feel */

    //

  • 89

    /* 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 ("Nimbus".equals(info.getName())) {

    javax.swing.UIManager.setLookAndFeel(info.getClassName());

    break;

    }

    }

    } catch (ClassNotFoundException ex) {

    java.util.logging.Logger.getLogger(FrmTransaksiPinjaman.class.getName()).log(j

    ava.util.logging.Level.SEVERE, null, ex);

    } catch (InstantiationException ex) {

  • 90

    java.util.logging.Logger.getLogger(FrmTransaksiPinjaman.class.getName()).log(j

    ava.util.logging.Level.SEVERE, null, ex);

    } catch (IllegalAccessException ex) {

    java.util.logging.Logger.getLogger(FrmTransaksiPinjaman.class.getName()).log(j

    ava.util.logging.Level.SEVERE, null, ex);

    } catch (javax.swing.UnsupportedLookAndFeelException ex) {

    java.util.logging.Logger.getLogger(FrmTransaksiPinjaman.class.getName()).log(j

    ava.util.logging.Level.SEVERE, null, ex);

    }

    //

    /* Create and display the form */

    java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {

  • 91

    new FrmTransaksiPinjaman().setVisible(true);

    }

    });

    }

    4. Code Generation Data Transaksi Angsuran

    package apppiutangusaha;

    import apppiutangusaha.source.Database;

    import javax.swing.*;

    import java.awt.*;

    import java.sql.*;

    import java.util.Date;

    /**

    *

    * @author acer

    */

    public class FrmTransaksiAngsuran extends javax.swing.JFrame {

    Database dbsetting;

    String driver,database,user,pass,userLogin;

    private Object tabel;

  • 92

    /**

    * Creates new form FrmTransaksiAngsuran

    */

    public FrmTransaksiAngsuran() {

    initComponents();

    Dimension

    screenSize=Toolkit.getDefaultToolkit().getScreenSize();

    Dimension frameSize=this.getSize();

    if(frameSize.height > screenSize.height){

    frameSize.height=screenSize.height;

    }

    if(frameSize.width > screenSize.width) {

    frameSize.width=screenSize.width;

    }

    this.setLocation((screenSize.width - frameSize.width) /

    2,(screenSize.height = screenSize.height) / 8);

    dbsetting = new Database();

    driver = dbsetting.SettingPanel("DBDriver");

  • 93

    database = dbsetting.SettingPanel("DBDatabase");

    user = dbsetting.SettingPanel("DBUsername");

    pass = dbsetting.SettingPanel("DBPassword");

    table.setModel(tableModel);

    Tabel(table, new int[]{75, 75, 75, 75, 80, 100, 100,100,100});

    setDefaultTable();

    TampilComboPinjaman();

    TampilComboUser();

    buatnomor();

    }

    private javax.swing.table.DefaultTableModel

    tableModel=getDefaultTabelModel();

    private void Tabel(javax.swing.JTable tb, int lebar[] ) {

    tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    int kolom=tb.getColumnCount();

    for(int i=0;i < kolom;i++) {

    javax.swing.table.TableColumn

    tbc=tb.getColumnModel().getColumn(i);

    tbc.setPreferredWidth(lebar[i]);

  • 94

    tb.setRowHeight(17);

    }

    }

    private javax.swing.table.DefaultTableModel

    getDefaultTabelModel() {

    return new javax.swing.table.DefaultTableModel(

    new Object[][] {},

    new String [] {"NoAngsuran","Tanggal", "NoPinjaman",

    "NamaAnggota","AngsuranKe", "JumlahAngsuran", "SisaPinjaman",

    "IDUser"}

    ){

    boolean[] canEdit = new boolean[]{

    false, false, false, false, false,

    false

    };

    public boolean isCellEditable(int rowIndex, int

    columnIndex){

    return

    canEdit[columnIndex];

  • 95

    }

    };

    }

    String data[]=new String[9];

    private void setDefaultTable() {

    try {

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblangsuran";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    data[0] = res.getString(1);

    data[1] = res.getString(2);

    data[2] = res.getString(3);

    data[3] = res.getString(4);

    data[4] = res.getString(5);

    data[5] = res.getString(6);

    data[6] = res.getString(7);

  • 96

    data[7] = res.getString(8);

    tableModel.addRow(data);

    }

    res.close();

    stt.close();

    kon.close();

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

    }

    int row = 0;

    public void Tampil(){

    row = table.getSelectedRow();

    NAngsuran.setText(tableModel.getValueAt(row,

    0).toString());

    TglAngsuran.setText(tableModel.getValueAt(row,

    1).toString());

  • 97

    NPinjaman.setSelectedItem(tableModel.getValueAt(row,

    2).toString());

    NAnggota.setText(tableModel.getValueAt(row,

    3).toString());

    Angsuranke.setText(tableModel.getValueAt(row,

    4).toString());

    JAngsuran.setText(tableModel.getValueAt(row,

    5).toString());

    SisaPinjaman.setText(tableModel.getValueAt(row,

    6).toString());

    IDUser.setSelectedItem(tableModel.getValueAt(row,

    7).toString());

    Simpan.setEnabled(false);

    Batal.setEnabled(false);

    }

    public void BersihData(){

    buatnomor();

    NAngsuran.setText("");

  • 98

    TglAngsuran.setText("");

    NPinjaman.setSelectedItem("");

    NAnggota.setText("");

    Angsuranke.setText("");

    JAngsuran.setText("");

    SisaPinjaman.setText("");

    IDUser.setSelectedItem("");

    }

    /**

    * 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.

    */

    private void tableMouseClicked(java.awt.event.MouseEvent evt) {

    // TODO add your handling code here:

    if (evt.getClickCount()==1) {

    Tampil();

  • 99

    }

    }

    private void SimpanActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    String NA=NAngsuran.getText();

    String TA=TglAngsuran.getText();

    String NP=NPinjaman.getSelectedItem().toString();

    String NMA=NAnggota.getText();

    String AK=Angsuranke.getText();

    String JA=JAngsuran.getText();

    String SP=SisaPinjaman.getText();

    String IU=IDUser.getSelectedItem().toString();

    if ((NA.isEmpty()) | ((TA.isEmpty()) | ((NP.isEmpty()) |

    (NMA.isEmpty())

    |(AK.isEmpty())|(JA.isEmpty())|(SP.isEmpty())|(IU.isEmpty()))))

    {

    JOptionPane.showMessageDialog(null,"data tidak boleh

    kosong, silahkan dilengkapi");

  • 100

    NAngsuran.requestFocus();

    }else {

    try {

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "insert into tblangsuran

    values('"+NAngsuran.getText()+"',"+

    "'"+TglAngsuran.getText()+"',"+

    "'"+NPinjaman.getSelectedItem()+"',"+

    "'"+NAnggota.getText()+"',"+

    "'"+Angsuranke.getText()+"',"+

    "'"+JAngsuran.getText()+"',"+

    "'"+SisaPinjaman.getText()+"',"+

    "'"+IDUser.getSelectedItem()+"')";

    stt.executeUpdate(SQL);

    data[0] = NAngsuran.getText();

    data[1] = TglAngsuran.getText();

  • 101

    data[2] = NPinjaman.getSelectedItem().toString();

    data[3] = NAnggota.getText();

    data[4] = Angsuranke.getText();

    data[5] = JAngsuran.getText();

    data[6] = SisaPinjaman.getText();

    data[7] = IDUser.getSelectedItem().toString();

    tableModel.insertRow(0, data);

    stt.close();

    kon.close();

    BersihData();

    // JOptionPane.showMessageDialog(this, "Data Telah

    Berhasil Di Tambah");

    } catch (Exception ex) {

    System.err.println(ex.getMessage());

    }

    Simpan.setEnabled(true);

    TanggalOtomatis();

    JAngsuran.setText("");

    TotlPinjmn.setText("");

    }

  • 102

    }

    private void

    TambahBaruActionPerformed(java.awt.event.ActionEvent evt) {

    // TODO add your handling code here:

    BersihData();

    TanggalOtomatis();

    buatnomor();

    Angsuranke.requestFocus();

    Simpan.setEnabled(true);

    NPinjaman.setEnabled(true);

    NAnggota.setText("");

    TotlPinjmn.setText("");

    SisaPinjaman.setEnabled(true);

    IDUser.setEnabled(true);

    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent

    evt) {

  • 103

    // TODO add your handling code here:

    tableModel.getDataVector().removeAllElements();

    tableModel.fireTableDataChanged();

    String NAngsuran=isi.getText();

    String TglAngsuran=isi.getText();

    String NPinjaman=isi.getText();

    String AngsuranKe=isi.getText();

    String JAngsuran=isi.getText();

    String SisaPinjaman=isi.getText();

    String IDUser=isi.getText();

    try {

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblangsuran WHERE

    noangsuran like '%"+NAngsuran+"%'"

    + "OR tglangsuran like '%"+ TglAngsuran+"%'"

    + "OR nopinjaman like '%"+NPinjaman+"%'"

    + "OR angsuranke like '%"+AngsuranKe+"%'"

  • 104

    + "OR jumlahangsuran like '%"+JAngsuran+"%'"

    + "OR sisapinjaman like '%"+SisaPinjaman+"%'"

    + "OR Iduser like '%"+IDUser+"%'";

    ResultSet rss= stt.executeQuery(SQL);

    while(rss.next()){

    data[0]=rss.getString(1);

    data[1]=rss.getString(2);

    data[2]=rss.getString(3);

    data[3]=rss.getString(4);

    data[4]=rss.getString(5);

    data[5]=rss.getString(6);

    data[6]=rss.getString(7);

    tableModel.addRow(data);

    }

    }

    catch (Exception ex){

    System.err.println(ex.getMessage());

  • 105

    }

    }

    private void isiKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

    if(evt.getKeyCode()==100){

    tableModel.getDataVector().removeAllElements();

    tableModel.fireTableDataChanged();

    try {

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblangsuran" ;

    ResultSet rss= stt.executeQuery(SQL);

    while(rss.next()){

    data[0]=rss.getString(1);

    data[1]=rss.getString(2);

    data[2]=rss.getString(3);

    data[3]=rss.getString(4);

  • 106

    data[4]=rss.getString(5);

    data[5]=rss.getString(6);

    data[6]=rss.getString(7);

    tableModel.addRow(data);

    }

    }

    catch (Exception ex){

    System.err.println(ex.getMessage());

    }

    }

    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

  • 107

    if(JOptionPane.showConfirmDialog(null,"Apakah Anda Yakin

    Ingin Keluar \n Jika Ya Tekan OK","Information",

    JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATIO

    N_MESSAGE)==JOptionPane.OK_OPTION)

    this.dispose();

    }

    private void

    NPinjamanItemStateChanged(java.awt.event.ItemEvent evt) {

    // TODO add your handling code here:

    try {

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tblpinjaman where

    nopinjaman='"+ NPinjaman.getSelectedItem().toString()+"'";

    ResultSet res = stt.executeQuery(SQL);

    res.absolute(1);

  • 108

    TotlPinjmn.setText(res.getString("totalpinjaman"));

    } catch (SQLException ex) {

    }

    }

    ///mem

    public void TampilComboPinjaman(){

    try {

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tblpinjaman";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    NPinjaman.addItem(res.getString("nopinjaman"));

    }

    } catch (SQLException ex) {

  • 109

    }

    }

    private void NAngsuranKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

    if(NAngsuran.getText().length()>6)

    evt.consume();

    //hanya bisa diinput dengan angka saja

    char c =evt.getKeyChar();

    if(!Character.isDigit(c))

    evt.consume();

    }

    private void AngsurankeKeyTyped(java.awt.event.KeyEvent evt) {

    // TODO add your handling code here:

    if(Angsuranke.getText().length()>6)

    evt.consume();

    //hanya bisa diinput dengan angka saja

    char c =evt.getKeyChar();

    if(!Character.isDigit(c))

  • 110

    evt.consume();

    }

    private void IDUserItemStateChanged(java.awt.event.ItemEvent

    evt) {

    // TODO add your handling code here:

    try {

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tbluser where Iduser='"+

    IDUser.getSelectedItem().toString()+"'";

    ResultSet res = stt.executeQuery(SQL);

    res.absolute(1);

    NmUser.setText(res.getString("namauser"));

    } catch (SQLException ex) {

    }

  • 111

    }

    //mem

    public void TampilComboUser(){

    try {

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt =

    kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_UPDATABLE);

    String SQL = "SELECT * FROM tbluser";

    ResultSet res = stt.executeQuery(SQL);

    while(res.next()){

    IDUser.addItem(res.getString("Iduser"));

    }

    } catch (SQLException ex) {

    }

    }

  • 112

    private void BatalActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    BersihData();

    TambahBaru.setEnabled(true);

    }

    private void jButton4ActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    int a,b,c ;

    a = Integer.parseInt(TotlPinjmn.getText());

    b = Integer.parseInt(JAngsuran.getText());

    c = a - b ;

    SisaPinjaman.setText(String.valueOf(c));

    }

    public void TanggalOtomatis(){

  • 113

    Date tanggal = new Date();

    TglAngsuran.setText("" + (String.format("%1$tY-%1$tm-

    %1$td",tanggal)));

    }

    public void buatnomor(){

    try{

    Class.forName(driver);

    Connection kon =

    DriverManager.getConnection(database,user,pass);

    Statement stt = kon.createStatement();

    String SQL = "SELECT * FROM tblangsuran ORDER

    by noangsuran desc ";

    ResultSet res = stt.executeQuery(SQL);

    if (res.next())

    {

    int no_t =

    Integer.parseInt(res.getString("noangsuran")) ;

  • 114

    NAngsuran.setText(Integer.toString(no_t+1));

    }

    else{

    int no_t = 1 ;

    NAngsuran.setText(Integer.toString(no_t));

    }

    res.close();

    }catch (Exception e){

    }

    }

    3.5.2. Spesifikasi Software Dan Hardware

    A. Kebutuhan Software

    Perangkat lunak merupakan program yang dirancang dan dibuat untuk

    pengembangan aplikasi berbasis desktop untuk sistem piutang usaha pada kredit

    union cu keluarga kudus Pontianak.

    Adapun kebutuhan Software yang diperlukan untuk merancang aplikasi

    ini adalah sebagai berikut :

  • 115

    1. Sistem Operasi : Windows 8 Ultimate 32 bit

    2. Webserver : WAMP Server version 2.2

    3. Sistem Operasi : Windows 8 Ultimate

    4. Webserver : PHPMyAdmin

    a. Netbeans : Netbeans Ide 8.2

    b. SQLyog : SQLyog 32 bit

    c. DBMS : MySQL

    d. Xammp : Xammp Versi 3.2.2

    B. Kebutuhan Hardware

    Perangkat keras salah satu alat yang sangat dibutuhkan untuk mengelola

    data aplikasi berbasis desktop untuk sistem piutang usaha pada kredit union cu

    keluarga kudus Pontianak, membuat salah satu aplikasi program sehingga dapat

    menyajikan laporan yang lengkap. Perangkat keras berupa komputer PC atau

    laptop, sebagai media atau sarana untuk pengoperasian aplikasi piutang usaha

    pada kredit uion keluarga kudus Pontianak, antara lain :

    1. CPU (Central Processing Unit)

    a. Processor : 2.20 Ghz

    b. Memory : 4 GB

    c. Harddisk : 320GB

  • 116

    2. Monitor : Resolution 1024x768 Pixel LCD

    3. Keyboard : 86 Keys

    4. Mouse : Optical

    5. Printer : Inkjet Printer

    3.6. Testing

    1. Testing Form Login

    Tabel III.3

    Hasil Pengujian Black Box Testing Form Login

    a. N

    o

    .

    Skenario

    pengujian

    Test case Hasil yang diharapkan Hasil

    penguji

    an

    Kesimpul

    an

    1. Username

    dan

    Password

    tidak diisi

    kemudian

    tekan login

    Username:

    (Kosong)

    Password:

    (kosong)

    Sistem akan menolak

    akses dan menampilkan

    pesan “Periksa kembali

    Username dan

    Password”

    Sesuai

    Harapa

    n

    Valid

    2. Mengisi

    Username

    dan

    Password

    tidak diisi

    kemudian

    tekan login

    Username:Stef

    ani(Benar)

    Password:

    (kosong)

    Sistem akan menolak

    akses dan menampilkan

    pesan “Periksa kembali

    Nama dan sandi anda”

    Sesuai

    Harapa

    n

    Valid

    3. Nama tidak

    diisi dan

    Sandi diisi

    kemudian

    tekan login

    Username:(kos

    ong)

    Password:

    1234

    Sistem akan menolak

    akses

    dan

    menampilkan

    pesan “Periksa kembali

    Nama dan sandi anda”

    Sesuai

    Harapa

    n

    Valid

  • 117

    4. Mengetikka

    n salah satu

    nya salah

    pada Nama

    dan Sandi

    kemudian

    tekan login

    Username:Stef

    ani (Benar)

    Password:

    BBB (Salah)

    Sistem akan menolak

    akses

    dan

    menampilkan

    pesan “Periksa kembali

    Nama dan sandi anda”

    Sesuai

    Harapa

    n

    Valid

    2. Testing Form Transaksi Pinjaman

    Tabel III.4

    Hasil Pengujian Black Box Testing Form Transaksi Pinjaman

    No. Skenario

    pengujian

    Test case Hasil yang

    diharapkan

    Hasil

    pengujian

    Kesimpulan

    1. Mengisi No

    Pinjaman, Tanggal,

    ID Anggota,

    Nominal Pinjaman,

    ID Jenis Pinjaman,

    Lama Pinjaman

    tidak diisi

    kemudian tekan

    simpan tidak diisi

    kemudian tekan

    Simpan

    No

    Pinjaman:(kosong

    )

    Tanggal: (kosong)

    ID

    Anggota:(kosong)

    Nominal

    Pinjaman:(kosong

    )

    ID Jenis

    Pinjaman:(kosong

    )

    Lama

    Pinjaman:(kosong

    )

    Sistem akan

    menolak akses

    dan

    menampilkan

    pesan “data

    tidak boleh

    kosong, silahkan

    dilengkapi”

    Sesuai

    Harapan

    Valid

    2. Mengisi No

    Pinjaman, Tanggal,

    ID Anggota,

    Nominal Pinjaman,

    ID Jenis Pinjaman,

    Lama Pinjaman

    tidak diisi

    kemudian tekan

    simpan

    No Pinjaman: 001

    Tanggal: 2017-

    08-01

    ID Anggota:

    000.453

    Nominal

    Pinjaman:

    5000000

    ID Jenis

    Pinjaman:001

    Lama

    Pinjaman:(kosong

    )

    Sistem akan

    menolak akses

    dan

    menampilkan

    pesan “data

    tidak boleh

    kosong, silahkan

    dilengkapi”

    Sesuai

    Harapan

    Valid

  • 118

    3. Mengisi No

    Pinjaman, Tanggal,

    ID Anggota,

    Nominal Pinjaman,

    ID Jenis Pinjaman,

    Lama Pinjaman

    tidak diisi

    kemudian tekan

    Cari

    No Pinjaman: 001

    Tanggal: 2017-

    08-01

    ID Anggota:

    000.453

    Nominal

    Pinjaman:

    5000000

    ID Jenis

    Pinjaman:001

    Lama

    Pinjaman:(kosong

    )

    Sistem tidak

    menampilkan

    pencarian

    Sesuai

    Harapan

    Valid

    3. Testing Form Transaksi Angsuran

    Tabel III.5

    Hasil Pengujian Black Box Testing Form Transaksi Angsuran

    Skenario pengujian Test case Hasil yang

    diharapkan

    Hasil

    pengu

    jian

    Kesimpu

    lan

    No Angsuran, Tgl Angsuran,

    No Pinjaman, Total Pinjaman,

    AngsuranKe, JumlahAngsuran,

    Sisa Pinjaman tidak diisi

    kemudian tekan Simpan

    No

    Angsuran:(kosong)

    Tgl

    Angsuran:(kosong)

    No

    Pinjaman:(kosong)

    Angsuran

    Ke:(kosong)

    Sistem akan

    menolak akses

    dan

    menampilk