68
24 BAB III ANALISIS SISTEM BERJALAN 3.1. Tinjauan Institusi Dalam tinjauan perusahaan ini berisi sejarah berdirinya toko Saung Bolang, struktur organisasi serta fungsi dari masing-masing bagian yang ada di dalam toko Saung Bolang. 3.1.1. Sejarah Institusi Saung Bolang merupakan tempat dimana para konsumen dapat menyewa peralatan kemah. Saung Bolang terbentuk dari hobi owner. Owner Saung Bolang bernama Dadan Kurniawan, Ia sangat suka naik gunung, karena hobinya ini Ia memberanikan diri untuk membuka usaha sendiri dengan jenis usaha penyewaan perlengkapan outdoor. Saung Bolang pertama kali didirikan pada tanggal 01 Maret 2015 di samping kanan stasiun Karawang depan tiki, hampir 2 tahun “Saung Bolang” pindah lokasi pada bulan Februari 2017 di ruko archadia pasar bersih Karawang. Adapun persyaratan yang harus di serahkan sebagai jaminan saat konsumen hendak melakukan transaksi penyewaan di saung bolang yaitu seperti menyerahkan Kartu Identitas ( KTP atau SIM ) dan foto ukuran 3 x 4 (1 lembar). Tidak ada minimal ataupun maksimal jumlah peralatan yang boleh disewa di Saung Bolang. Untuk pemesanan langsung datang ke Saung Bolang langsung di layani oleh pegawai yang ada di sana. Pemesanan dapat dilakukan dengan cara online via whatsaap namun hanya berlaku untuk orang-orang terdekat saja dan hanya untuk pelanggan di daerah Karawang saja.

BAB III ANALISIS SISTEM BERJALAN 3.1. Tinjauan Institusi 3 ......Kartu Identitas ( KTP atau SIM ) dan foto ukuran 3 x 4 (1 lembar). ... Prosedur Pembuatan Laporan Transaksi Penyewaan

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • 24

    BAB III

    ANALISIS SISTEM BERJALAN

    3.1. Tinjauan Institusi

    Dalam tinjauan perusahaan ini berisi sejarah berdirinya toko Saung Bolang,

    struktur organisasi serta fungsi dari masing-masing bagian yang ada di dalam toko

    Saung Bolang.

    3.1.1. Sejarah Institusi

    Saung Bolang merupakan tempat dimana para konsumen dapat menyewa

    peralatan kemah. Saung Bolang terbentuk dari hobi owner. Owner Saung Bolang

    bernama Dadan Kurniawan, Ia sangat suka naik gunung, karena hobinya ini Ia

    memberanikan diri untuk membuka usaha sendiri dengan jenis usaha penyewaan

    perlengkapan outdoor. Saung Bolang pertama kali didirikan pada tanggal 01 Maret

    2015 di samping kanan stasiun Karawang depan tiki, hampir 2 tahun “Saung Bolang”

    pindah lokasi pada bulan Februari 2017 di ruko archadia pasar bersih Karawang.

    Adapun persyaratan yang harus di serahkan sebagai jaminan saat konsumen

    hendak melakukan transaksi penyewaan di saung bolang yaitu seperti menyerahkan

    Kartu Identitas ( KTP atau SIM ) dan foto ukuran 3 x 4 (1 lembar).

    Tidak ada minimal ataupun maksimal jumlah peralatan yang boleh disewa di

    Saung Bolang. Untuk pemesanan langsung datang ke Saung Bolang langsung di

    layani oleh pegawai yang ada di sana. Pemesanan dapat dilakukan dengan cara

    online via whatsaap namun hanya berlaku untuk orang-orang terdekat saja dan hanya

    untuk pelanggan di daerah Karawang saja.

  • 25

    apabila terjadi kerusakan maupun kehilangan peralatan yang disewa oleh

    pelanggan yaitu jika terjadi kerusakan maka diganti dengan sesuai kerusakan yang

    terdapat pada peralatan tersebut. Dan apabila terjadi kehilangan, maka pelanggan

    harus mengganti peralatan yang hilang tersebut sesuai dengan harga peralatan

    tersebut baik berupa barang yang sama maupun dengan uang tunai.

    3.1.2. Struktur Organisasi dan Fungsi

    Untuk mengolah perusahaan dengan baik dan optimal, terutama terhadap sumber daya

    manusia, perusahaan menerapkan manajemen yang dituangkan dalam bentuk struktur organisasi

    merupakan sarana yang sangat penting untuk menjalankan fungsinya. Adapun struktur organisasi ini

    sendiri dapat dikatakan sebagai suatu kerangka yang mewujudkan suatu pola tetapi dari hubungan

    antara kedudukan dan peranan dalam suatu kerjasama. Adapun struktur organisasi yang terdapat

    pada tempat penyewaan Saung Bolang adalah sebagai berikut:

    A. Struktur Organisasi

    \

    Gambar III. 1.

    Struktur Organisasi

    Sumber : Struktur Organisasi Saung Bolang

    Owner

    Pramuniaga

    Kasir

  • 26

    A. Uraian Tugas Tanggung Jawab

    1. Owner atau Pemilik toko bertugas memonitor grafik pemasukan dan

    pengeluaran kas dan menganalisa laba rugi perusahaan

    2. Pramuniaga bertugas untuk menjaga toko dan melayani pelanggan

    3. Kasir bertugas untuk menginput data transaksi yang berlangsung dan

    membuat laporan keuangan pada periode yang sudah ditentukan

    3.2. Tinjauan Kasus

    3.2.1. Prosedur Sistem Berjalan

    1. Prosedur Penyewaan Barang Sewa

    Customer yang akan menyewa peralatan kemah datang ke lokasi “Saung

    Bolang” untuk melihat-lihat katalog barang dan memilih barang, kemudian setelah

    menentukan barang yang akan disewa, customer meminta list harga sebagai acuan

    dalam menetapkan harga sewa barang, setelah harga ditentukan, kemudian pelanggan

    menyerahkan informasi barang yang akan disewa serta KTP sebagai jaminan kepada

    pramuniaga, lalu dibuatkan form penyewaan barang oleh pramuniaga dan akan

    dilakukan tranksaksi pembayaran oleh pelanggan kepada kasir dan kemudian kasir

    memberikan nota pembayaran, sistem pembayaran di “Saung Bolang” dapat berupa

    pembayaran DP maupun pembayaran secara lunas.

    2. Prosedur Pengembalian Barang Sewa

    Pelanggan yang akan mengembalikan barang yang telah sewa harus membawa

    peralatan yang disewa tersebut sesuai dengan daftar sewaan yang telah ditanda

    tangani oleh pramuniaga Saung Bolang, setelah itu pramuniaga akan mengecek

    apakah barang yang dikembalikan telah sesuai dengan barang yang disewa atau ada

    tidaknya cacat dari barang yang telah disewa tersebut. Apabila saat mengembalikan

  • 27

    barang sewa ada kehilangan salah satu barang sewa atau barang yang cacat, maka

    pelanggan tersebut harus mengganti dengan merk dan harga yang sama dari barang

    yang dihilangkan, dan atau membayar denda atas barang yang ditemukan kecacatan

    tersebut. Namun apalagi saat proses pengembalian pelanggan dapat mengembalikan

    barang yang disewa tanpa ada cacat atau hilang, maka pramuniaga akan

    mengembalikan KTP pelanggan yang sebelumnya telah dijadikan sebagai jaminan.

    3. Prosedur Pembuatan Laporan Transaksi Penyewaan

    Pada periode satu bulan, pramuniaga akan merinci seluruh transaksi yang telah

    diterima selama satu bulan terakhir dan kemudian meghitung total biaya dari

    transaksi tersebut dan kemudian dibuatkan laporan manual berupa laporan cetak

    yang masih di program menggunakan microsoft excel, kemudian laporan tersebut

    diserahkan kepada owner Saung Bolang untuk dicek kembali.

  • 28

    3.2.2. Activity Diagram Sistem Berjalan

    Pelanggan Pramuniaga Kasir Owner

    Memilih barang

    Sesuai katalog

    Menyerahkan informasi

    barang dan harga

    Menerima form dan

    menandatangani form

    menyerakan KTP

    sebagai jaminan

    DPLunas

    Menerima nota

    pembayaran

    Jika sudah pada waktu

    pengembalian, pelanggan

    menyerahkan barang sewa

    Menerima KTP

    End

    Menerima list

    harga dan barang

    Menerima informasi

    barang dan membuat

    form penyewaan

    Memberikan form

    penyewaan untuk

    di tanda tangani

    Menyerahkan list

    harga dan barang

    Menerima pembayaran

    Membuat nota

    pembayaran

    Menyerahkan nota

    pembayaran

    Menerima barang sewa

    Menyerahkan KTP pelanggan

    Membuat laporan

    transaksi penyewaan

    Menerima laporan

    transaksi penyewaan

    Menandatangani laporan

    End

    Gambar III. 2.

    Activity Diagram

  • 29

    3.2.3. Spesifikasi Bentuk Dokumen Masukan

    Bentuk dokumen masukan adalah bentuk dari dokumen-dokumen yang masuk atau

    diterima untuk melakukan proses. Di bawah ini adalah uraian bentuk dokumen masukan yang ada

    dalam sistem penyewaan peralatan kemah di Saung Bolang .

    1. Nama Dokumen : Form penyewaan peralatan kemah

    Fungsi : Untuk penyewaan peralatan kemah

    Sumber : Pelanggan

    Tujuan : Pramuniaga

    Media : Kertas

    Frekuensi : Setiap kali penyewaan peralatan kemah

    Jumlah : 1 lembar

    Bentuk : Lampiran A.1

    2. Nama Dokumen : KTP

    Fungsi : Sebagai jaminan barang yang disewa

    Sumber : Pelanggan

    Tujuan : Pramuniaga

    Media : Kertas

    Frekuensi : Setiap kali penyewaan peralatan kemah

    Jumlah : 1 lembar

    Bentuk : Lampiran A.2

  • 30

    3.2.4. Spesifikasi Bentuk Dokumen Keluaran

    Bentuk dokumen keluaran adalah bentuk dari dokumen-dokumen yang keluar atau

    diberikan untuk melakukan proses. Di bawah ini adalah uraian bentuk dokumen keluaran yang ada

    dalam sistem penyewaan peralatan kemah di Saung Bolang.

    1. Nama Dokumen : Nota pembayaran penyewaan barang

    Fungsi : Untuk persetujuan penyewaan barang

    Sumber : Kasir

    Tujuan : Pelanggan

    Media : Kertas

    Frekuensi : Setiap kali persetujuan penyewaan barang

    Jumlah : 1 lembar

    Bentuk : Lampiran B.1

    2. Nama Dokumen : List barang dan harga

    Fungsi : Untuk pelanggan menentukan barang sewa

    Sumber : Pramuniaga

    Tujuan : Pelanggan

    Media : Kertas

    Frekuensi : Setiap akan menyewa barang

    Jumlah : 1 lembar

    Bentuk : Lampiran B.2

  • 31

    3. Nama Dokumen : Laporan Bulanan

    Fungsi : Sebagai bukti transaksi penyewaan selama sebulan terakhir

    Sumber : Kasir

    Tujuan : Owner

    Media : Kertas

    Frekuensi : Setiap bulan

    Jumlah : 1 lembar

    Bentuk : Lampiran B.3

    3.2.5. PermasalahanPokok

    Sistem penyewaan peralatan kemah yang telah berjalan di Saung Bolang pada umumnya

    telah berjalan dengan baik. Dalam proses pengolahan data penyewaan pada Saung Bolang masih

    menggunakan manual. Adapun kelemahannya adalah sebagai berikut :

    1. Belum adanya sistem yang terkomputerisasi.

    2. Belum adanya system laporan penyewaan yang dibutuhkan oleh owner, sehingga banyaknya

    data yang redudan

    3.2.6. PemecahanMasalah

    Untuk mengatasi masalah tersebut, saran dari penulis agar dibuatnya sistem yang dibutuhkan

    yang telah komputerisasi yaitu:

    1. Perlu adanya sistem yang telah terkomputerisasi

    2. Adanya sistem yang telah terkomputerisasi dapat berguna bagi pegawai dan owner, karena data

    laporan yang di dapat dapat lebih akurat, cepat dan tidak redudan.

  • 32

    3.3 Analisis kebutuhan Software

    3.3.1. Tahapan Analisis

    Kebutuhan system yang dibutuhkan Saung Bolang terdiri dari input, proses,

    output sistem penyewaan. Analisis kebutuhan sistem dilakukan untuk mengetahui

    data apa saja yang dibutuhkan oleh sistem, sehingga dapat diproses dan

    menghasilkan informasi yang dibutuhkan Toko Saung Bolang.

    Pada dasarnya sistem yang dibangun tidaklah jauh berbeda dengan sistem yang

    telah ada. Sistem yang dibangun hanyalah peralihan dari sistem manual ke sistem

    komputerisasi. Sistem komputerisasi diharapkan dapat membantu dan memudahkan

    pekerjaan karyawan Saung Bolang. Berikut ini adalah spesifikasi kebutuhan dari

    sistem penyewaan pada Saung Bolang.

    1. Halaman Admin

    A.1 Admin Login

    A.2 Admin Mengelola Data Pelanggan

    A.3 Admin Mengelola Data Barang

    A.4 Admin Mengelola Transaksi Penyewaan

    A.5 Admin Mengelola Transaksi Pengembalian

    A.6 Admin Mengelola Data Laporan

    2. Halaman Kasir

    C.1 Mengelola Data Transaksi

    C.2 Mengelola Data Laporan

  • 33

    3.3.2. Use Case Diagram

    A. Use Case Menu Login

    Gambar III. 3.

    Use Case Login

  • 34

    Tabel III. 1.

    Deskripsi Use Case Login

    Use Case Narative Login

    Tujuan Melakukan login dan masuk ke dalam sistem

    penyewaan

    Deskripsi Sistem ini memungkinkan aktor untuk mengakses

    sistem penyewaan

    Skenario Utama

    Aktor Admin

    Kondisi Awal Aktor membuka aplikasi penyewaan

    Aksi Aktor Reaksi Sistem

    1.Aktor memilih menu

    login

    2.Aktor memilih menu

    Batal

    Sistem akan menampilkan textbox untuk mengisi

    nama pengguna dan password

    Sistem akan membatalkan proses dan keluar dari

    aplikasi

    Kondisi akhir Jika perintah sesuai maka sistem akan masuk

    kedalam aplikasi penyewaan dan aktor dapat

    melakukan aktvitas didalam sistem

  • 35

    B. Use Case Menu Utama

    Gambar III. 4.

    Use Case Menu Utama

  • 36

    Tabel III. 2.

    Deskripsi Use Case Menu Utama

    Use Case Narative Menu Utama

    Tujuan Kasir dapat melihat data yang ada di dalam halaman menu

    utama

    Deskripsi

    Sistem ini memungkinkan aktor untuk masuk ke halaman

    menu utama yang didalamnya ada menu master, menu

    transaksi, dan menu laporan

    Skenario Utama

    Aktor Admin

    Kondisi Awal Aktor membuka aplikasi halaman menu utama

    Aksi Aktor Reaksi Sistem

    Aktor memilih

    menu master

    Sistem ini akan menampilkan informasi data pengguna,

    data barang, data kategori barang, dan data akun

    Aktor memilih

    menu transaksi

    Sistem ini akan menampilkan informasi data penyewaan,

    data pengembalian, dan data jurnal

    Aktor memilih

    menu laporan

    Sistem ini akan menampilkan informasi menu cetak

    laporan penyewaan dan laporan pengembalian

    Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa

    yang aktor inginkan

  • 37

    C. Use Case Menu Master

    Gambar III. 5.

    Use Case Menu Master

  • 38

    Tabel III. 3.

    Deskripsi Use Case Menu Master

    Use Case Narative Menu Master

    Tujuan Admin dapat melihat data yang ada di dalam halaman

    menu master

    Deskripsi

    Sistem ini memungkinkan aktor untuk masuk ke halaman

    menu master yang didalamnya ada data pengguna, data

    barang, data kategori barang, data pelanggan, dan data

    akun

    Skenario Utama

    Aktor Admin

    Kondisi Awal Aktor membuka aplikasi halaman menu master

    Aksi Aktor Reaksi Sistem

    Aktor memilih

    menu pengguna Sistem ini akan menampilkan informasi data pengguna

    Aktor memilih

    menu barang Sistem ini akan menampilkan informasi data barang

    Aktor memilih

    menu kategori

    barang

    Sistem ini akan menampilkan informasi data kategori

    barang

    Aktor memilih

    menu pelanggan Sistem ini akan menampilkan informasi data pelanggan

    Aktor memilih

    menu akun Sistem ini akan menampilkan informasi data akun

    Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa

    yang aktor inginkan

  • 39

    D. Use Case Menu Transaksi

    Gambar III. 6.

    Use Case Menu Transaksi

  • 40

    Tabel III. 4.

    Deskripsi Use Case Menu Transaksi

    Use Case Narative Menu Transaksi

    Tujuan Admin dapat melihat data yang ada di dalam halaman

    menu transaksi

    Deskripsi

    Sistem ini memungkinkan aktor untuk masuk ke halaman

    menu transaksi yang didalamnya ada data penyewaan, data

    pengembalian, dan data jurnal

    Skenario Utama

    Aktor Admin

    Kondisi Awal Aktor membuka aplikasi halaman menu transaksi

    Aksi Aktor Reaksi Sistem

    Aktor memilih

    menu transaksi

    penyewaan

    Sistem ini akan menampilkan informasi data penyewaan

    Aktor memilih

    menu transaksi

    pengembalian

    Sistem ini akan menampilkan informasi data pengembalian

    Aktor memilih

    menu jurnal Sistem ini akan menampilkan informasi data jurnal

    Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa

    yang aktor inginkan

  • 41

    E. Use Case Menu Laporan

    Gambar III. 7.

    Use Case Menu Laporan

  • 42

    Tabel III. 5.

    Deskripsi Use Case Menu Laporan

    Use Case Narative Menu Laporan

    Tujuan Admin dapat melihat data yang ada di dalam halaman

    menu laporan

    Deskripsi

    Sistem ini memungkinkan aktor untuk masuk ke halaman

    menu laporan yang didalamnya ada cetak data penyewaan

    dan cetak data pengembalian

    Skenario Utama

    Aktor Admin

    Kondisi Awal Aktor membuka aplikasi halaman menu laporan

    Aksi Aktor Reaksi Sistem

    Aktor memilih

    menu cetak data

    penyewaan

    Sistem ini akan menampilkan informasi data pengguna

    Aktor memilih

    menu cetak data

    pengembalian

    Sistem ini akan menampilkan informasi data barang

    Kondisi akhir Jika perintah sesuai maka sistem akan menampilkan apa

    yang aktor inginkan

  • 43

    3.3.3. Rancangan Activity Diagram

    A. Activity Diagram Menu Login

    Admin Sistem

    Melakukan login

    Memasukan username

    & password

    Mengelola Menu

    Master

    Mengelola Menu

    Laporan

    Start

    Mengelola Menu

    Transaksi

    Logout

    End

    Memvalidasi

    Username &

    password

    Masuk ke

    menu utama

    Gagal login

    Valid

    Tidak

    valid

    END

    Gambar III. 8.

    Activity Diagram Login

  • 44

    B. Activity Diagram Menu Utama

    Admin Sistem

    Membuka Menu Utama

    Mengelola Menu

    Master

    Mengelol Menu

    Transaksi

    Start

    Krmbali Ke

    Menu Utama

    Mengelola Menu

    Laporan

    Menampilkan Halaman

    Menu Utama

    END

    Menampilkan Halaman

    Menu Utama

    Gambar III. 9.

    Activity Diagram Menu Utama

  • 45

    C. Activity Digram Menu Master

    Admin Sistem

    Membuka Menu Master

    Mengelola

    Menu User

    Mengelol Menu

    Pelanggan

    Start

    Mengelola

    Menu Barang

    Krmbali Ke

    Menu Utama

    Mengelola

    Menu Akun

    Menampilkan Halaman

    Menu Utama

    END

    Menampilkan Halaman

    Menu Master

    Gambar III. 10.

    Activity Diagram Menu Master

  • 46

    C. Activity Diagram Menu Transaksi

    Admin Sistem

    Membuka Menu Transaksi

    MengelolaTransaksi

    Penyewaan

    Mengelol Transaksi

    Pengembalian

    Start

    Krmbali Ke

    Menu Utama

    Mengelola

    TransaksiJurnal

    Menampilkan Halaman

    Menu Utama

    END

    Menampilkan Halaman

    Menu Transaksi

    Gambar III. 11.

    Activity Diagram Menu Transaksi

  • 47

    D. Activity Diagram Menu Laporan

    Admin Sistem

    Membuka Menu Laporan

    Mencetak Laporan

    Penyewaan

    Start

    Krmbali Ke

    Menu Utama

    Mencetak Laporan

    Pengembalian

    Menampilkan Halaman

    Menu Utama

    END

    Menampilkan Halaman

    Menu Laporan

    Gambar III. 12.

    Activity Diagram Menu Laporan

  • 48

    E. Rancangan Dokumen Sistem Usulan

    A. Dokumen masukan

    1. Nama Dokumen : Form Penyewaan

    Fungsi : Sebagai bukti penyewaan barang

    Sumber : Kasir

    Tujuan : Pelanggan

    Media : Kertas

    Jumlah : 1 lembar

    Frekuensi : Setiap pelanggan yang akan menyewa barang

    Bentuk : Lampiran A.1

    2. Nama Dokumen : KTP

    Fungsi : Sebagai jaminan barang yang disewa

    Sumber : Pelanggan

    Tujuan : Pramuniaga

    Media : Kertas

    Frekuensi : Setiap kali penyewaan peralatan kemah

    Jumlah : 1 lembar

    Bentuk : Lampiran A.2

    B. Dokumen keluaran

    1. Nama Dokumen : Nota Pembayaran

    Fungsi : Sebagai bukti pembayaran

    Sumber : Kasir

    Tujuan : Pelanggan

    Media : Kertas

  • 49

    Jumlah : 1 lembar

    Frekuensi : Setiap kali membayar

    Bentuk : Lampiran B1

    2. Nama Dokumen : Laporan Bulanan

    Fungsi : Sebagai bukti transaksi penyewaan selama sebulan terakhir

    Sumber : Kasir

    Tujuan : Owner

    Media : Kertas

    Frekuensi : Setiap bulan

    Jumlah : 1 lembar

    Bentuk : Lampiran B.3

  • 50

    3.4. Desain

    3.4.1. Entity Relationship Diagram ( ERD )

    Detail_sewa

    akun

    sewa

    Detail_kembali

    kembali

    jurnal

    Detail_jurnal

    Pelanggan

    user

    Kat_barang

    barang

    Mmemiliki

    1

    memiliki1

    M

    melakukan1

    M

    memiliki

    1

    M

    melakukan

    1

    1

    memiliki

    M

    memiliki1 M

    memiliki

    M

    1

    mengelola

    M

    1

    mengelola

    1

    M

    memiliki

    M

    1

    melakukan11

    1

    melakukan melakukan

    1

    11

    1

    Ket

    ukem

    ubay

    Kd_user

    kd_kembali

    tgl_kembali

    kd_sewa

    total

    kd_plg

    kd_kembali jml kd_brgkd_brg

    nm_brgharga

    jumlah

    kd_kat

    kd_katjenis

    kd_plg

    nik nm_plg no_tlp

    kd_sewa

    jml_sewa

    subtotalkd_brg

    kd_plg

    tgl_kembalikd_user

    tanggal

    kd_sewa

    ubay

    ukem

    ket

    total

    tunggakan

    nm_jurnaltglno_jurnalid_transaksi

    no_jurnal

    kredit

    debet

    id_akun

    id_akun

    jns_akun nm_akun

    password

    aksesnm_user

    kd_user

    Gambar III. 13.

    Entity Relationship Diagram

  • 51

    3.4.2. Logical Structure Record ( LRS )

    akun

    id_akun (PK)

    nm_akunjns_akun

    detail_jurnal

    no_jurnal (FK)

    debetkredit

    jurnal

    no_jurnal (PK)

    nm_jurnaltgl

    barang

    kd_brgl (PK)

    nm_brghargajumlah

    kd_kat (FK)

    kat_barang

    kd_kat (PK

    jenis

    sewa

    kd_sewa (PK)

    tanggaltgl_kembaliubayukemtunggakankettotal

    kd_plg (FK)

    kembali

    kd_kembali (PK)

    tgl_kembaliubayukemkettotal

    kd_plg (FK)

    detail_kembali

    kd_kembali (FK)

    jml

    detail_sewa

    kd_sewa (FK)kd_brg (FK)

    jml_sewasubtotal

    user

    kd_user (PK)

    nm_userpasswordakses

    pelanggan

    kd_plg (PK)

    niknm_plgno_telp

    id_transaksiid_akun (FK)

    kd_user (FK)kd_sewa (FK)

    kd_brg (FK)

    .

    kd_user (FK)

    1M

    1

    M

    1

    1 1

    M

    1

    1

    1

    M

    1

    1

    1

    M

    1

    1

    1

    1

    1 M

    1

    M

    1

    M

    M

    1

    Gambar III. 14.

    Logical Record Structure

  • 52

    3.3.3. Spesifikasi File

    1. Spesifikasi File Akun

    Nama Database : penyewaan_ta

    Nama File : akun

    Tipe File : Menu Master

    Akses File : Random

    Panjang Record : 60 Karakter

    Field key : id_akun

    Tabel III. 6.

    Spesifikasi File Pelanggan

    No Elemen data Akronim Tipe Panjang Ket

    1 Identitas akun id_akun Varchar 20 Primary key

    2 Nama akun nm_akun Varchar 20 FK

    3 Jenis akun jns_akun Varchar 20 FK

    2. Spesifikasi File Barang

    Nama Database : penyewaan_ta

    Nama File : barang

    Tipe File : File master

    Akses File : Random

    Panjang Record : 82 Karakter

    Field Key : kd_barang

  • 53

    Tabel III. 7.

    Spesifikasi File Barang

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode barang kd_barang Varchar 20 Primary Key

    2 Nama barang nm_barang Varchar 20 FK

    3 Harga jumlah Harga Int 11 FK

    4 Jumlah jumlah Int 11 FK

    5 Kode kategori kd_kat Varchar 20 FK

    3. Spesifikasi File Jurnal

    Nama Database : penyewaan_ta

    Nama File : Jurnal

    Tipe File : File Transaksi

    Akses File : Random

    Panjang Record : 54 Karakter

    Kunci Field : no_jurnal

    Tabel III. 8.

    Spesifikasi File Jurnal

    No Elemen data Nama Field Tipe Size Ket

    1 Nomor jurnal No_jurnal Varchar 9 Primary Key

    2 Nama jurnal Nm_jurnal Varchar 25 FK

    3 Tanggal Tgl Date FK

    4

    Identitas

    pengguna

    Id_pengguna Varchar 20 FK

  • 54

    4. Spesifikasi File Kategori Barang

    Nama Database : penyewaan_ta

    Nama File : Kat_barang

    Tipe File : File Master

    Akses File : Random

    Panjang Record : 45 Karakter

    Kunci Field : kd_barang

    Tabel III. 9.

    Spesifikasi File Kategori Barang

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode kategori Kd_kat Varchar 20 Primary Key

    2 Jenis Jenis Varchar 25 FK

    5. Spesifikasi File Kembali

    Nama Database : penyewaan_ta

    Nama File : kembali

    Tipe File : FileTransaksi

    Akses File : Random

    Panjang Record : 153 Karakter

    Kunci Field : kd_kembali

  • 55

    Tabel III. 10.

    Spesifikasi File Kembali

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode kembali Kd_kembali Varchar 20 Primary Key

    2 Kode Sewa Kd_sewa Varchar 20 FK

    3 Tanggal Tgl Varchar 20 FK

    4 Kode pelanggan Kd_plg Varchar 20 FK

    5 Kode user Kd_user Varchar 20 FK

    6 Uang bayar Ubay Int 11 FK

    7 Uang kembali Ukem Int 11 FK

    8 Keterangan Ket Varchar 20 FK

    9 Total Total Int 11 FK

    6. Spesifikasi File Pelanggan

    Nama Database : penyewaan_ta

    Nama File : Pelanggan

    Tipe File : File Master

    Akses File : Random

    Panjang Record : 85 Karakter

    Kunci Field : kd_plg

  • 56

    Tabel III. 11.

    Spesifikasi File Pelanggan

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode pelanggan Kd_plg Varchar 20 Primary Key

    2 NIK Nik Int 20 FK

    3 Nama Pelanggan Nm_plg Varchar 25 FK

    4 Nomor Telepon No_telp Int 20 FK

    7. Spesifikasi File Sewa

    Nama Database : penyewaan_ta

    Nama File : sewa

    Tipe File : Menu Transaksi

    Akses File : Random

    Panjang Record : 169 Karakter

    Kunci Field : kd_sewa

    Tabel III. 12.

    Spesifikasi File Sewa

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode sewa Kd_sewa Varchar 20 Primary Key

    2 Tanggal Tgl Varchar 20 FK

    3

    Tanggal

    kembali

    Tgl_kembali Varchar 20 FK

    4

    Kode

    pelanggan

    Kd_plg Varchar 30 FK

  • 57

    5 Kode user Kd_user Varchar 20 FK

    6 Uang bayar Ubay Int 11 FK

    7 Uang kembali Ukem Int 11 FK

    8 Tunggakan Tunggakan Int 11 FK

    9 Keterangan Ket Varchar 15 FK

    10 Total Total Int 11 FK

    8. Spesifikasi File User

    Nama Database : penyewaan_ta

    Nama File : user

    Tipe File : File Master

    Akses File : Random

    Panjang Record : 70 Karakter

    Kunci Field : kd_user

    Tabel III. 13.

    Spesifikasi File User

    No Elemen data Akronim Tipe Panjang Ket

    1 Kode user Kd_user Varchar 20 Primary Key

    2 Nama user Nm_user Varchar 20 FK

    3 Password Password Varchar 20 FK

    4 Akses Akses Varchar 10 FK

  • 58

    3.3.4. Sequence Diagram

    Admin

    1. input id dan password

    Control Login

    2. User dan Password

    Halaman Admin

    3. Menampilkan Halaman Admin

    Data Pelanggan Data Barang Data Penyewaan

    4. Input Data Pelanggan

    5. Input Data Barang

    6. Input Data Penyewaan

    7. Input Laporan Bulanan

    Laporan BulananForm Login

    Gambar III. 15.

    Sequence Diagram

  • 59

    3.3.5. Deployment Diagram

    Gambar III. 16.

    Deployment Diagram

    3.3.6. User Interface

    Berikut adalah interface dari sistem dari program yang telah penulis rancang.

    a. Interface Login

    Gambar III. 17.

    Interface Login

  • 60

    b. Interface Menu Utama

    Gambar III. 18.

    Interface Menu Utama

    c. Interface Entry Master

    Gambar III. 19.

    Interface Menu Master

  • 61

    d. Interface Entry User

    Gambar III. 20.

    Interface Entry User

    e. Interface Entry Barang

    Gambar III. 21.

    Interface Entry Barang

  • 62

    f. Interface Pelanggan

    Gambar III. 22.

    Interface Entry Pelanggan

    e. Interface Akun

    Gambar III. 23.

    Interface Entry Akun

  • 63

    f. Interface Penyewaan

    Gambar III. 24.

    Interface Entry Penyewaan

    g. Interface Pengembalian

    Gambar III. 25.

    Interface Entry Pengembalian

  • 64

    h. Interface Jurnal

    Gambar III. 26.

    Interface Jurnal

    g. Interface Laporan

    Gambar III. 27.

    Interface Entry Laporan

  • 65

    3.5. Implementasi

    3.5.1. Code Generation

    A. Form Transaksi Penyewaan

    public class form_entry_penyewaan extends javax.swing.JDialog {

    public form_entry_penyewaan(java.awt.Frame parent, boolean modal) {

    super(parent, modal);

    initComponents();

    Tanggal_sekarang();

    tampil_tb_penyewaan();

    }

    public void Tanggal_sekarang(){

    java.util.Date sekarang = new java.util.Date();

    java.text.SimpleDateFormat kal = new java.text.SimpleDateFormat ("yyyy-

    MM-dd");

    lbl_tanggal.setText(kal.format(sekarang));

    }

    @SuppressWarnings("unchecked")

    //

    private void initComponents() {

    jLabel1 = new javax.swing.JLabel();

    jPanel1 = new javax.swing.JPanel();

    jLabel2 = new javax.swing.JLabel();

    jLabel3 = new javax.swing.JLabel();

    txt_pelanggan = new javax.swing.JTextField();

    txt_nama = new javax.swing.JTextField();

  • 66

    jLabel4 = new javax.swing.JLabel();

    txt_alamat = new javax.swing.JTextField();

    jPanel3 = new javax.swing.JPanel();

    txt_jumlah_barang = new javax.swing.JTextField();

    txt_kode_barang = new javax.swing.JTextField();

    jLabel5 = new javax.swing.JLabel();

    jLabel6 = new javax.swing.JLabel();

    jLabel7 = new javax.swing.JLabel();

    btn_simpan = new javax.swing.JButton();

    btn_reset = new javax.swing.JButton();

    btn_delete = new javax.swing.JButton();

    txt_kembali = new javax.swing.JTextField();

    jLabel8 = new javax.swing.JLabel();

    jPanel4 = new javax.swing.JPanel();

    jScrollPane1 = new javax.swing.JScrollPane();

    tb_penyewaan = new javax.swing.JTable();

    lbl_tanggal = new javax.swing.JLabel();

    lbl_tanggal1 = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

    jLabel1.setFont(new java.awt.Font("Kristen ITC", 1, 18)); // NOI18N

    jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

    jLabel1.setText("FORM ENTRY PENYEWAAN");

    jPanel1.setBackground(new java.awt.Color(204, 204, 204));

    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null,

    "Data Pelanggan",

  • 67

    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

    javax.swing.border.TitledBorder.DEFAULT_POSITION, new

    java.awt.Font("Kristen ITC", 1, 10))); // NOI18N

    jPanel1.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel2.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel2.setText("No.pelanggan");

    jLabel3.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel3.setText("Nama");

    txt_pelanggan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    txt_pelanggan.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    txt_pelangganActionPerformed(evt);

    }

    });

    txt_nama.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel4.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel4.setText("Alamat");

    txt_alamat.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    javax.swing.GroupLayout jPanel1Layout = new

    javax.swing.GroupLayout(jPanel1);

    jPanel1.setLayout(jPanel1Layout);

    jPanel1Layout.setHorizontalGroup(

    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

    .addGroup(jPanel1Layout.createSequentialGroup()

  • 68

    .addContainerGap()

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING, false)

    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

    .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

    .addComponent(jLabel4))

    .addGap(18, 18, 18)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING)

    .addComponent(txt_nama, javax.swing.GroupLayout.DEFAULT_SIZE,

    238, Short.MAX_VALUE)

    .addComponent(txt_alamat)

    .addComponent(txt_pelanggan))

    .addContainerGap())

    );

    jPanel1Layout.setVerticalGroup(

    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

    .addGroup(jPanel1Layout.createSequentialGroup()

  • 69

    .addContainerGap()

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(jLabel2)

    .addComponent(txt_pelanggan,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(jLabel3)

    .addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

    BASELINE)

    .addComponent(jLabel4)

    .addComponent(txt_alamat, javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

    Short.MAX_VALUE))

    );

  • 70

    jPanel3.setBackground(new java.awt.Color(204, 204, 204));

    jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null,

    "Data Barang", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

    javax.swing.border.TitledBorder.DEFAULT_POSITION, new

    java.awt.Font("Kristen ITC", 1, 10))); // NOI18N

    txt_jumlah_barang.setFont(new java.awt.Font("Kristen ITC", 1, 11)); //

    NOI18N

    txt_kode_barang.setFont(new java.awt.Font("Kristen ITC", 1, 11)); //

    NOI18N

    txt_kode_barang.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    txt_kode_barangActionPerformed(evt);

    }

    });

    jLabel5.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel5.setText("Kode Barang");

    jLabel6.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel6.setText("Jumlah Barang");

    jLabel7.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel7.setText("Tanggal Kembali");

    btn_simpan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    btn_simpan.setText("Simpan");

    btn_simpan.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    btn_simpanActionPerformed(evt);

  • 71

    }

    });

    btn_reset.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    btn_reset.setText("Reset");

    btn_reset.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    btn_resetActionPerformed(evt);

    }

    });

    btn_delete.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    btn_delete.setText("Delete");

    btn_delete.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    btn_deleteActionPerformed(evt);

    }

    });

    txt_kembali.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    jLabel8.setText("YYYY-MM-DD");

    javax.swing.GroupLayout jPanel3Layout = new

    javax.swing.GroupLayout(jPanel3);

    jPanel3.setLayout(jPanel3Layout);

    jPanel3Layout.setHorizontalGroup(

    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

    .addGroup(jPanel3Layout.createSequentialGroup()

  • 72

    .addGap(13, 13, 13)

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.TRAILING)

    .addComponent(jLabel7)

    .addComponent(jLabel6)

    .addComponent(jLabel5))

    .addGap(18, 18, 18)

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING)

    .addComponent(txt_kode_barang)

    .addComponent(txt_jumlah_barang)

    .addGroup(jPanel3Layout.createSequentialGroup()

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING)

    .addComponent(btn_delete,

    javax.swing.GroupLayout.PREFERRED_SIZE, 86,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addGroup(jPanel3Layout.createSequentialGroup()

    .addComponent(btn_simpan,

    javax.swing.GroupLayout.PREFERRED_SIZE, 86,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addGap(18, 18, 18)

    .addComponent(btn_reset, javax.swing.GroupLayout.PREFERRED_SIZE,

    86, javax.swing.GroupLayout.PREFERRED_SIZE)))

    .addGap(0, 0, Short.MAX_VALUE))

  • 73

    .addGroup(jPanel3Layout.createSequentialGroup()

    .addComponent(txt_kembali)

    .addGap(18, 18, 18)

    .addComponent(jLabel8)))

    .addContainerGap())

    );

    jPanel3Layout.setVerticalGroup(

    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

    .addGroup(jPanel3Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(jLabel5)

    .addComponent(txt_kode_barang,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED

    )

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(jLabel6)

  • 74

    .addComponent(txt_jumlah_barang,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(jLabel7)

    .addComponent(txt_kembali,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(jLabel8))

    .addGap(18, 18, 18)

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(btn_simpan)

    .addComponent(btn_reset))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED

    )

    .addComponent(btn_delete)

    .addContainerGap(29, Short.MAX_VALUE))

    );

    jPanel4.setBackground(new java.awt.Color(204, 204, 204));

  • 75

    jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null,

    "Tabel Data Peminjaman",

    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

    javax.swing.border.TitledBorder.DEFAULT_POSITION, new

    java.awt.Font("Kristen ITC", 1, 10))); // NOI18N

    tb_penyewaan.setFont(new java.awt.Font("Kristen ITC", 1, 11)); // NOI18N

    tb_penyewaan.setModel(new javax.swing.table.DefaultTableModel(

    new Object [][] {

    {null, null, null, null},

    {null, null, null, null},

    {null, null, null, null},

    {null, null, null, null}

    },

    new String [] {

    "Title 1", "Title 2", "Title 3", "Title 4"

    }

    ));

    jScrollPane1.setViewportView(tb_penyewaan);

    lbl_tanggal.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

    lbl_tanggal.setForeground(new java.awt.Color(255, 255, 255));

    lbl_tanggal.setText("Tanggal");

    lbl_tanggal1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

    lbl_tanggal1.setForeground(new java.awt.Color(255, 255, 255));

    lbl_tanggal1.setText("Tanggal");

  • 76

    javax.swing.GroupLayout jPanel4Layout = new

    javax.swing.GroupLayout(jPanel4);

    jPanel4.setLayout(jPanel4Layout);

    jPanel4Layout.setHorizontalGroup(

    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

    .addGroup(jPanel4Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING)

    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,

    412, Short.MAX_VALUE)

    .addGroup(jPanel4Layout.createSequentialGroup()

    .addGap(0, 0, Short.MAX_VALUE)

    .addComponent(lbl_tanggal1)

    .addGap(18, 18, 18)

    .addComponent(lbl_tanggal,

    javax.swing.GroupLayout.PREFERRED_SIZE, 87,

    javax.swing.GroupLayout.PREFERRED_SIZE)))

    .addContainerGap())

    );

    jPanel4Layout.setVerticalGroup(

    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI

    NG)

  • 77

    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

    jPanel4Layout.createSequentialGroup()

    .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.BASELINE)

    .addComponent(lbl_tanggal)

    .addComponent(lbl_tanggal1))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

    .addComponent(jScrollPane1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)

    .addContainerGap())

    );

    javax.swing.GroupLayout layout = new

    javax.swing.GroupLayout(getContentPane());

    getContentPane().setLayout(layout);

    layout.setHorizontalGroup(

    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

    .addGroup(layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

    ADING)

    .addGroup(layout.createSequentialGroup()

    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

    .addContainerGap())

  • 78

    .addGroup(layout.createSequentialGroup()

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR

    AILING, false)

    .addComponent(jPanel3,

    javax.swing.GroupLayout.Alignment.LEADING,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))

    );

    layout.setVerticalGroup(

    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

    .addGroup(layout.createSequentialGroup()

    .addContainerGap()

    .addComponent(jLabel1)

    .addGap(18, 18, 18)

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

    ADING)

    .addGroup(layout.createSequentialGroup()

    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

  • 79

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))

    );

    jPanel1.getAccessibleContext().setAccessibleName("Data Pelanggan");

    pack();

    setLocationRelativeTo(null);

    }

    //

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

    // TODO add your handling code here:

    String no_pelanggan="", nama="", alamat="", kode_barang="",

    jumlah_barang="", tanggal_pinjam, tanggal_kembali="";

    no_pelanggan = txt_pelanggan.getText();

    nama = txt_nama.getText();

    alamat = txt_alamat.getText();

    kode_barang = txt_kode_barang.getText();

    jumlah_barang = txt_jumlah_barang.getText();

    tanggal_pinjam = lbl_tanggal.getText();

    tanggal_kembali = txt_kembali.getText();

    Connection con = new koneksi_2().getConnection();

    try {

  • 80

    String sql = "insert into tb_penyewaan values (?,?,?,?,?,?,?)";

    PreparedStatement stat = (PreparedStatement) con.prepareStatement(sql);

    stat.setString(1, no_pelanggan);

    stat.setString(2, nama);

    stat.setString(3, alamat);

    stat.setString(4, kode_barang);

    stat.setString(5, jumlah_barang);

    stat.setString(6, tanggal_pinjam);

    stat.setString(7, tanggal_kembali);

    stat.executeUpdate();

    JOptionPane.showMessageDialog(null, "Menyimpan data

    BERHASIL","Informasi", JOptionPane.INFORMATION_MESSAGE);

    reset();

    tampil_tb_penyewaan();

    }

    catch (Exception e) {

    JOptionPane.showMessageDialog(null, "Menyimpan data

    GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);

    }

    }

    public void cari_pelanggan() {

    String no_pelanggan="";

    no_pelanggan =txt_pelanggan.getText();

    Connection con = new koneksi_2().getConnection();

  • 81

    String sql = "select * from tb_pelanggan where

    no_pelanggan='"+no_pelanggan+"'";

    try {

    Statement stat = con.createStatement();

    ResultSet set = stat.executeQuery(sql);

    while (set.next()) {

    txt_nama.setText(set.getString("nama"));

    txt_alamat.setText(set.getString("alamat"));

    }

    txt_kode_barang.requestFocus();

    set.close();

    }

    catch (Exception e) {

    System.out.printf(e.getMessage());

    JOptionPane.showMessageDialog(null, "Pencarian data

    GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);

    }

    }

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

    cari_pelanggan();

    }

    public void cari_barang() {

    String kode_barang="",jumlah_barang="", jenis="";

    kode_barang =txt_kode_barang.getText();

    jumlah_barang = txt_jumlah_barang.getText();

  • 82

    jenis = txt_kembali.getText();

    Connection con = new koneksi_2().getConnection();

    String sql = "select * from tb_barang where

    kode_barang='"+kode_barang+"'";

    try {

    Statement stat = con.createStatement();

    ResultSet set = stat.executeQuery(sql);

    while (set.next()) {

    txt_jumlah_barang.setText(set.getString("jumlah_barang"));

    txt_kembali.setText(set.getString("jenis"));

    }

    txt_kode_barang.requestFocus();

    set.close();

    }

    catch (Exception e) {

    System.out.printf(e.getMessage());

    }

    }

    private void txt_kode_barangActionPerformed(java.awt.event.ActionEvent

    evt) {

    // TODO add your handling code here:

    cari_barang();

    }

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

  • 83

    // TODO add your handling code here:

    int baris = tb_penyewaan.getSelectedRow();

    String no_pelanggan = tabmode.getValueAt(baris, 0).toString();

    int ok=JOptionPane.showConfirmDialog(null,"Apakah Anda yakin ingin

    menghapus data Pelanggan \n no_pelanggan

    :"+no_pelanggan+"?","Konfirmasi",JOptionPane.YES_NO_OPTION);

    if(ok==0){

    try{

    //panggil method koneksi

    Connection con = new koneksi_2().getConnection();

    String sql="delete from tb_penyewaan where no_pelanggan

    ='"+no_pelanggan+"'";

    Statement st = con.createStatement();

    st.executeUpdate(sql);

    JOptionPane.showMessageDialog(null,"Data Berhasil di hapus");

    tampil_tb_penyewaan();

    reset();

    }

    catch(Exception e){

    JOptionPane.showMessageDialog(null,"Data Gagal di hapus

    }

    }

    }

    public void reset(){

    txt_jumlah_barang.setText(null);

  • 84

    txt_alamat.setText(null);

    txt_kode_barang.setText(null);

    txt_nama.setText(null);

    txt_pelanggan.setText(null);

    txt_kembali.setText(null);

    }

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

    // TODO add your handling code here:

    reset();

    }

    private DefaultTableModel tabmode;

    //tampil data peminjaman

    public void tampil_tb_penyewaan(){

    Object []baris = {"no_pelanggan","Nama","alamat","Kode Barang","Jumlah

    barang","Tanggal pinjam","Tanggal kembali"};

    tabmode = new DefaultTableModel(null, baris);

    tb_penyewaan.setModel(tabmode);

    Connection con = new koneksi_2().getConnection();

    try {

    String sql = "select * from tb_penyewaan order by no_pelanggan asc";

    java.sql.Statement stat = con.createStatement();

    java.sql.ResultSet hasil = stat.executeQuery(sql);

    while (hasil.next()){

    String no_pelanggan = hasil.getString("no_pelanggan");

    String nama = hasil.getString("nama");

  • 85

    String alamat = hasil.getString("alamat");

    String kode_barang = hasil.getString("kode_barang");

    String jumlah_barang = hasil.getString("jumlah_barang");

    String tanggal_pinjam = hasil.getString("tanggal_pinjam");

    String tanggal_kembali = hasil.getString("tanggal_kembali");

    String[] data = {no_pelanggan, nama, alamat, kode_barang,

    jumlah_barang, tanggal_pinjam, tanggal_kembali};

    tabmode.addRow(data);

    }

    }

    catch (Exception e) {

    JOptionPane.showMessageDialog(null, "Menampilkan data

    GAGAL","Informasi", JOptionPane.INFORMATION_MESSAGE);

    }

    }

    /**

    * @param args the command line arguments

    */

    public static void main(String args[]) {

    /* Set the Nimbus look and feel */

    //

    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default

    look and feel.

  • 86

    * 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(form_entry_penyewaan.class.getName()).log

    (java.util.logging.Level.SEVERE, null, ex);

    } catch (InstantiationException ex) {

    java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log

    (java.util.logging.Level.SEVERE, null, ex);

    } catch (IllegalAccessException ex) {

    java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log

    (java.util.logging.Level.SEVERE, null, ex);

    } catch (javax.swing.UnsupportedLookAndFeelException ex) {

    java.util.logging.Logger.getLogger(form_entry_penyewaan.class.getName()).log

    (java.util.logging.Level.SEVERE, null, ex);

    }

  • 87

    //

    //

    //

    //

    //

    //

    //

    //

    /* Create and display the dialog */

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

    public void run() {

    form_entry_penyewaan dialog = new form_entry_penyewaan(new

    javax.swing.JFrame(), true);

    dialog.addWindowListener(new java.awt.event.WindowAdapter() {

    @Override

    public void windowClosing(java.awt.event.WindowEvent e) {

    System.exit(0);

    }

    });

    dialog.setVisible(true);

    }

    });

    }

    // Variables declaration - do not modify

    private javax.swing.JButton btn_delete;

  • 88

    private javax.swing.JButton btn_reset;

    private javax.swing.JButton btn_simpan;

    private javax.swing.JLabel jLabel1;

    private javax.swing.JLabel jLabel2;

    private javax.swing.JLabel jLabel3;

    private javax.swing.JLabel jLabel4;

    private javax.swing.JLabel jLabel5;

    private javax.swing.JLabel jLabel6;

    private javax.swing.JLabel jLabel7;

    private javax.swing.JLabel jLabel8;

    private javax.swing.JPanel jPanel1;

    private javax.swing.JPanel jPanel3;

    private javax.swing.JPanel jPanel4;

    private javax.swing.JScrollPane jScrollPane1;

    private javax.swing.JLabel lbl_tanggal;

    private javax.swing.JLabel lbl_tanggal1;

    private javax.swing.JTable tb_penyewaan;

    private javax.swing.JTextField txt_alamat;

    private javax.swing.JTextField txt_jumlah_barang;

    private javax.swing.JTextField txt_kembali;

    private javax.swing.JTextField txt_kode_barang;

    private javax.swing.JTextField txt_nama;

    private javax.swing.JTextField txt_pelanggan;

    // End of variables declaration

    }

  • 89

    3.5.2. Blackbox Testing

    A. Form Login Admin

    Tabel III. 14.

    Form Login Admin

    No

    Skenario

    Pengujian

    Test Case

    Hasil yang

    Diharapkan

    Hasil

    Pengujian

    Kesimpulan

    1 Nama User dan

    Password tidak

    diisi kemudian

    klik tombol

    login

    Nama user :

    (kosong)

    Password :

    (kosong)

    Sistem akan

    menolak akses

    dan

    menampilkan

    pesan “user

    name atau

    password salah”

    Sesuai

    harapan

    Valid

    2 Mengetikkan

    nama user dan

    password tidak

    diisi atau

    ksosong

    kemudian klik

    tombol login

    Nama user :

    kasir (benar)

    Password :

    (kosong)

    Sistem akan

    menolak akses

    dan

    menampilkan

    pesan “user

    name atau

    password salah”

    Sesuai

    harapan

    Valid

    3 Nama user

    tidak diisi atau

    kosong dan

    password diisi

    Nama user :

    (kosong)

    Password :

    (123)

    Sistem akan

    menolak akses

    dan

    menampilkan

    Sesuai

    harapan

    Valid

  • 90

    kemudian klik

    tombol login

    pesan “user

    name atau

    password salah”

    4 Mengetikkan

    salah satu

    kondisi salah

    pada nama user

    atau password

    kemudian klik

    tombol login

    Nama user :

    kasir (benar)

    Password :

    12345 (salah)

    Sistem akan

    menolak akses

    dan

    menampilkan

    pesan “user

    name atau

    password salah”

    Sesuai

    harapan

    Valid

    5 Mengetikkan

    nama user dan

    password

    dengan data

    yang benar

    kemudian klik

    tombol login

    Nama user :

    Kasir (benar)

    Password :

    123 (benar)

    Sistem akan

    menerima akses

    login dan akan

    menampilkan

    halaman menu

    utama

    Sesuai

    harapan

    Valid

  • 91

    3.5.3. Spesifikasi Hardware dan Software

    Tabel III. 15.

    Spesifikasi Hardware dan Software

    Kebutuhan Keterangan

    Sistem Windows 7 Ultimate

    Processor Intel (R), Celeron (R), CPU 1007U @1,50 GHz

    RAM 2 GB

    Harddisk 500 GB

    Monitor 14” LED

    Keyboard 108 Key

    Printer Epson L360 Series

    Mouse Standar

    Software Kebutuhan menjalankan aplikasi secara lokal :

    Bahasa script programing : Java 7.1

    Web server : Apache 3.2

    DBSM : MySQL