• Tidak ada hasil yang ditemukan

BAB III PEMBAHASAN. berusia 38 tahun, yang beralamatkan di Jalan Ipik Gandamanah No.20 Desa

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PEMBAHASAN. berusia 38 tahun, yang beralamatkan di Jalan Ipik Gandamanah No.20 Desa"

Copied!
71
0
0

Teks penuh

(1)

29

PEMBAHASAN

3.1. Tinjauan Perusahaan 3.1.1 Sejarah Perusahaan

Toko Sentral Granit merupakan suatu usaha dagang yang didirikan pada tanggal 12 Februari 2016 oleh pemiliknya sendiri yang bernama Bapak Helmi berusia 38 tahun, yang beralamatkan di Jalan Ipik Gandamanah No.20 Desa Ciseureuh Kecamatan Purwakarta Kabupaten Purwakarta 41118. Toko Sentral Granit merupakan suatu bentuk usaha dagang yang operasi kerjanya yaitu menjual barang-barang kepada konsumen (Custumer) untuk dijual kembali. Adapun material bangunan yang dijual, yaitu keramik.

Toko Sentral Granit yang berbentuk usaha dagang ini bertujuan untuk memperoleh keuntungan dengan mendapatkan selisih antara harga yang dijual ke konsumen dengan harga beli dari supplier dengan tidak mengabaikan kualitas barang yang dijual dan pelayanan kepada konsumennya.

(2)

3.1.2 Struktur Organisasi

Sumber : Pemilik Toko Sentral Granit

Gambar III.1

Struktur Organisasi Toko Sentral Granit

Tugas dan Fungsi Organisasi :

Sesuai yang tercantum pada bagan organisasi Toko Sentral Granit diadakan pembagian wewenang dan tanggung jawab dalam kaitan dengan operasional sehari-hari. Adapun uraian tugas dari masing-masing bagian adalah sebagai berikut : 1. Pemilik sebagai pendiri usaha dan pengambil keputusan tertinggi dalam suatu

usaha. Tugas pokok pemilik adalah :

a. Bertanggung jawab atas seluruh kegiatan usaha

b. Membuat kebijakan dan peraturan yang berhubungan denga kinerja pegawai dan memunyai dampak positif dan serta profit oriented kepada pokok yang dipimpin.

c. Mengevaluasi kinerja pegawai.

d. Bertanggung jawab atas semua transaksi pembelian.

e. Membuat laporan stok barang berdasarkan stok barang yang dibuat oleh karyawan.

Pemilik

Helmi

Bagian Gudang

(3)

2. Bagian Gudang

Sebagai pelaksana urusan pengecekan dan penataan barang. Tugas pokok bagian gudang :

a. Bertanggung jawab atas kebersihan gudang. b. Mencatat stok barang.

c. Mengecek dan meyiapkan barang yang akan dikirim. 3. Supir

Sebagai pelaksana pengirim keramik yang dipesan oleh custumer.

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

Sesuai dengan wawancara dan metode pengamatan langsung yang dilakukan oleh penulis mengenai proses pembelian secara tunai dan ruang lingkup dalam penyusunan laporan ini, maka penulis akan menguraikan secara umum prosedur sistem berjalan. Yang berkaitan dengan sistem pembelian secara tunai pada Toko Sentral Granit di Purwakarta adalah proses-proses dibawah ini:

1. Pengecekan stok barang dan Pemesanan barang

Bagian gudang melakukan pengecekan barang kemudian mencatat data barang yang sudah minim kedalam kertas catatan. Kemudian kertas tersebut diserahkan kepada pemilik toko, kemudian pemilik toko mencatatnya kedalam buku stok barang. Pemilik toko kemudian melakukan pemesanan barang kepada supplier, lalu supplier mencatat pesanan ke dalam Purchase Order (PO).

(4)

2. Prosedur penerimaan dan pembayaran

Setelah mencatat PO supplier menyiapkan barang beserta dengan dokumen yaitu surat jalan 3 rangkap dan faktur pembelian 3 rangkap. Kemudian barang, surat jalan 3 rangkap dan faktur pembelian 3 rangkap diserahkan kepada pemilik. Setelah menerima barang dan mengecek barang, pemilik melakukan pembayaran secara tunai kepada supplier dengan menyerahkan surat jalan 2 Rangkap dan faktur pembelian 2 rangkap.

(5)

3.2.2. Activity Diagram

Bagian Gudang Pemilik Supplier

Melakukan Pengecekan barang

Mencatat barang yang kurang dalam

kertas catatan

Menyerahkan kertas

catatan Menerima kertas catatan

Mencatat dalam buku Stok barang

Melakukan pemesanan Menerima pesanan

Mencatat pesanan Dalam PO

Gambar III.2 Activity sistem berjalan

(6)

Pemilik Supplier

Menyiapkan barang dan Membuat SJ 3R, FP 3R

Menyerahkan barang dan Membuat SJ 3R, FP 3R Menerima barang dan

SJ 3R, FP 3R

Mengecek barang dan SJ 3R, FP 3R Menyimpan SJ asli & FP asli Melakukan pembayaran & menyerahkan SJ 2R & FP 2R Menerima pembayaran SJ 2R, FP 2R Gambar III.3 Activity sistem berjalan

3.2.3. Dokumen Masukan

Dokumen masukan pada Toko sentral Granit diantaranya : 1. Dokumen Faktur Pembelian

Nama Dokumen : Faktur Pembelian

Fungsi : Sebagai bukti pembelian

Sumber : Supplier

Tujuan : Pemilik toko

Media : Kertas

Jumlah : 3 Rangkap

Frekuensi : Setiap transaksi pembelian

(7)

2. Dokumen Surat Jalan

Nama Dokumen : Surat Jalan

Fungsi : Sebagai bukti pengantar barang

Sumber : Supplier

Tujuan : Pemilik toko

Media : Kertas

Jumlah : 3 Rangkap

Frekuensi : Setiap transaksi pembelian

Format : Lampiran A1

3.2.4. Dokumen Keluaran

Dokumen keluaran pada Toko Sentral Granit diantaranya : 1. Dokumen Nota

Nama Dokumen : Nota

Fungsi : Sebagai bukti transaksi pembayaran

Sumber : Pemilik toko

Tujuan : Pembeli

Media : Kertas

Jumlah : 3 Rangkap

Frekuensi : Setiap transaksi penjualan

Format : Lampiran A1

2. Dokumen Stok Barang

Nama Dokumen : Stok Barang

(8)

Sumber : Bagian Gudang

Tujuan : Pemilik

Media : Kertas

Jumlah : 1 Rangkap

Frekuensi : Setiap transaksi 1 hari sekali

Format : A4

3.2.5. Permasalahan Pokok

Berdasarkan penelitian atau riset yang saya lakukan pada Toko Sentral Granit di Purwakarta, saya mengamati dalam sistem Pembelian secara tunai yang berjalan serta melakukan identifikasi dokumen yang ada pada Toko Sentral Granit di Purwakarta, saya telah menemukan beberapa permasalahan diantaranya:

1. Sering terjadi keleliruan mengenai jenis barang, motif barang dan nomor seri pada setiap produk.

2. Pencatatan Pembelian Toko Sentral Granit masih menggunakan buku besar, sehingga dalam pencatatan datanya sering terjadi kesalahan dan tidak sinkron antara pencatatan dan bukti-bukti transaksi yang ada.

3. Penyimpanan data masih berupa dokumen atau arsip-arsip yang disimpan dalam lemari sehingga ada dokumen yang hilang dan dalam pencarian data sering membutuhkan waktu yang lama, dan dokumen-dokumen sering terjadi kehilangan yang akan menghambat proses pencatatan laporan.

4. Pencarian data masih membutuhkan waktu yang lama kerena penyimpanan data masih berupa arsip.

(9)

5. Proses pembuatan laporan masih menggunakan buku besar yaitu dengan cara merekap dari data-data Pembelian yang telah dibuat sebelumnya. Sehingga informasi yang dihasilkan dari laporan tersebut kurang akurat.

6. Banyaknya barang yang diterima dalam keadaan rusak, yang terjadi didalm pengiriman barang, serta penyimpanan di dalam gudang.

3.2.6. Pemecahan Masalah

Penulis menentukan masalah yang ada pada Toko Sentral Granit mengenai penjualan secara tunai Purwakarta maka penulis menyimpulkan alternatif atau pemecahan masalah agar permasalahan tersebut dapat diatasi, diantaranya:

1. Membuat Sistem Informasi Akuntansi agar memudahkan karyawan dalam pengolahan data sehingga waktu yang dibutuhkan lebih efisien dan kesalahan dalam pencatatan dapat dikurangi.

2. Dapat menghemat waktu yang diperlukan pada saat pencarian data mengenai informasi yang dibutuhkan.

3. Dapat meminimalisir kesalahan yang dikarenakan kurang teliti dari para pegawai.

4. Membuat sebuah database yang terintegrasi untuk mempermudah user dalam mencari data-data, dan data-data yang tersimpan akan terjamin keamanannya. 5. Membuat Sistem Informasi Akuntansi yang akan mengahasilkan laporan

dengan informasi yang lebih akurat dan sesuai dengan laporan akuntansi yang berlaku.

(10)

3.3. Analisa Kebutuhan Software 3.3.1. Analisa Kebutuhan

Admin

A.1. Admin berhak mengelola menu login A.2. Admin mengelola data barang

A.3. Admin mengelola data supplier A.4. Admin mengelola pembelian A.5. Admin mengelola pembayaran A.6. Admin mengelola jurnal A.7. Admin mengelola laporan

Pemilik

B.1. Pemilik melakukan login B.2. Pemilik mengakses laporan

3.3.2. Use Case Diagram

Login

ID Pengguna

Password <<Include>>

<<Include>>

A.1 Use Case Mengakses Login

Gambar III.4 Use Case menu login

(11)

Tabel III.1

Deskripsi Use case Diagram Admin mengelola login

Login Menu Utama

Data Barang Data Supplier Pembelian Pembayaran Jurnal Laporan <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<extend>>

Use Case Menu Utama

Gambar III.5 Use Case menu utama

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola

data yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman lagin, dengan meninput id pengguna dan password.

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman login

Kondisi Awal Reaksi Sistem

1. Aktor memilih meu login 2. Aktor memilih input id pengguna

3. Aktor memilih input password

Sistem ini akan masuk ke menu login

Sistem ini akan

menampilkan id dari pengguna

Sistem ini akan

menampilkan password

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(12)

Login Menu Data Barang Tambah Cari Batal Simpan Kode Barang Edit <<Include>> <<Include>> <<Include>> <<extend>> <<extend>> <<extend>> <<extend>> <<extend>>

A.2 Use Case Mengelola Data Barang

Menu

Utama <<extend>>

Gambar III.6 Use Case Data Barang

Tabel III.2

Deskripsi Use case Diagram Admin mengelola menu data barang

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu data barang, dengan meninput kode barang, nama barang, qty, satuan dan harga satuan

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman data barang

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu data barang

2. Aktor memilih input kode barang, nama barang, qty, satuan dan harga satuan

3. Aktor bisa memilih menu tambah, simpan, batal, edit, dan cari

Sistem ini akan masuk ke menu data barang

Sistem ini akan

menampilkan kode barang, nama barang, qty, satuan dan harga satuan

Sistem ini akan

menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(13)

Login Menu Data Supplier Tambah Cari Batal Simpan Kode Supplier Edit <<extend>> <<extend>> <<extend>> <<extend>> <<Include>> <<Include>> <<Include>> <<extend>>

A.3 Use Case Mengelola Data Supplier

Menu

Utama <<extend>>

Gambar III.7 Use Case Data Supplier

Tabel III.3

Deskripsi Use case Diagram Admin mengelola menu data supplier

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu data Supplier, dengan meninput kode supplier, nama supplier, alamat, no.telepon, dan email

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman data supplier

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu data supplier

2. Aktor memilih input kode supplier, nama supplier, alamat, no.telepon, dan email

3. Aktor bisa memilih menu tambah, simpan, batal, edit, dan cari

Sistem ini akan masuk ke menu data supplier

Sistem ini akan menampilkan kode supplier, nama supplier, alamat, no.telepon, dan email. Sistem ini akan menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(14)

Login Menu Pembelian Tambah Cari Batal No Pembelian Edit <<Include>> Simpan <<Include>> <<extend>> <<extend>> <<extend>> <<Include>>

A.4 Use Case Mengelola Pembelian

<<extend>>

Menu

Utama <<extend>>

Gambar III.8 Use Case Menu Pembelian

Tabel III.4

Deskripsi Use case Diagram Admin mengelola menu pembelian

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu pembelian, dengan meninput nomor pembelian, tanggal, kode barang, nama barang, qty, satuan, harga saruan, dan jumlah.

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman pembelian

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu pembelian

2. Aktor memilih input nomor pembelian, tanggal, kode barang, nama barang, qty, satuan, harga saruan, dan jumlah.

3. Aktor bisa memilih menu tambah, simpan, batal, edit, dan cari

Sistem ini akan masuk ke menu pembelian

Sistem ini akan menampilkan nomor pembelian, tanggal, kode barang, nama barang, qty, satuan, harga saruan, dan jumlah.

Sistem ini akan menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(15)

Login Menu Pembayaran Cari Batal Simpan No Pembayaran <<Include>> <<extend>> <<extend>> <<extend>>

A.5 Use Case Mengelola Pembayaran

Menu

Utama <<extend>>

Gambar III.9

Use Case Menu Pembayaran Tabel III.5

Deskripsi Use case Diagram Admin mengelola menu pembayaran

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu pembayaran, dengan meninput nomor

pembelian, tanggal

pembayaran, kode supplier, nama supplier, alamat, no.telepon, total tagihan, jumlah yang dibayarkan

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman pembelian

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu pembelian

2. Aktor memilih input nomor pembelian, tanggal pembayaran, kode supplier, nama supplier, alamat, no.telepon, total tagihan, jumlah yang dibayarkan

3. Aktor bisa memilih menu tambah, simpan, batal, edit, dan cari

Sistem ini akan masuk ke menu pembayaran

Sistem ini akan

menampilkannomor

pembelian, tanggal

pembayaran, kode supplier, nama supplier, alamat, no.telepon, total tagihan, jumlah yang dibayarkan. Sistem ini akan menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(16)

Login Jurnal Data Perkiraan Data Jurnal Tambah Batal Simpan Batal Cari Simpan Kode Akun Tambah <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<Include>> <<Include>> <<Include>>

A.6 Use Case Mengelola Jurnal

Menu Utama

<<Include>> <<extend>>

<<Include>>

Gambar III.10 Use Case Jurnal

(17)

Tabel III.6

Deskripsi Use case Diagram Admin mengelola menu jurnal

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu jurnal, dengan meninput data perkiraan, dan data jurnal.

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman jurnal

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu jurnal 2. Aktor memilih data perkiraan

3. Aktor bisa memilih data jurnal 4. Aktor bisa memilih menu tambah, simpan, dan batal.

Sistem ini akan masuk ke menu jurnal

Sistem ini akan

menampilkan data perkiraan kode perkiraan, dan nama perkiraan

Sistem ini akan

menampilkan kode akun, nama akun, debet, kredit, keterangan

Sistem ini akan

menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(18)

Login Laporan Laporan Laporan Jurnal Cetak Batal Cetak Batal <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<Include>> <<Include>>

A.7 Use Case Mengelola Laporan

Menu Utama

<<extend>>

Gambar III.11 Use Case Laporan

Tabel III.7

Deskripsi Use case Diagram Admin mengelola menu laporan

Use Case Narative Halaman Admin

Tujuan Admin dapat mengelola data

yang ada di halaman admin.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu laporan, dengan menampilkan laporan pembelian dan laporan jurnal.

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman laporan

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu laporan 2. Aktor memilih menu laporan pembelian dengan meninput periode 3. Aktor bisa memilih menu laporan jurnal dengan menginput periode

4. Aktor bisa memilih menu tambah, simpan, dan batal.

Sistem ini akan masuk ke menu laporan.

Sistem ini akan menampilkan data laporan pembelian berdasarkan periode.

Sistem ini akan menampilkan data laporan jurnal berdasarkan periode

Sistem ini akan menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(19)

Login

ID Pengguna

Password

<<Include>>

<<Include>>

B.1 Use Case mengakses menu login bagi pemilik

Gambar III.12

Use Case Login bagi pemilik

Tabel III.8

Deskripsi Use case Diagram Pemilik mengelola menu login

Use Case Narative Halaman Pemilik

Tujuan Admin dapat mengelola data

yang ada di halaman pemilik

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman login, dengan meninput id pengguna dan password.

Skenario Pemilik

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman login

Kondisi Awal Reaksi Sistem

1. Aktor memilih meu login 2. Aktor memilih input id pengguna

3. Aktor memilih input password

Sistem ini akan masuk ke menu login

Sistem ini akan menampilkan id dari pengguna

Sistem ini akan menampilkan password

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(20)

Login Menu Utama Data Barang Data Supplier Pembelian Pembayaran Jurnal Laporan <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<extend>> <<extend>>

Use Case Menu Utama

Gambar III.13

Use Case Menu Utama Bagi Pemilik

Login Laporan Laporan Laporan Jurnal Cari Batal Cari Batal <<extend>> <<extend>> <<Include>> <<extend>> <<extend>> <<extend>> <<Include>>

B.2 Use Case mengakses laporan bagi pemilik

Menu Utama

<<extend>>

Gambar III.14

(21)

Tabel III.9

Deskripsi Use case Diagram Pemilik mengelola menu laporan

Use Case Narative Halaman Pemilik

Tujuan Admin dapat mengelola data

yang ada di halaman pemilik.

Deskripsi Sistem ini memungkinkan

aktor untuk mengelola halaman menu laporan, dengan menampilkan laporan pembelian dan laporan jurnal.

Skenario Admin

Aktor Admin

Kondisi Awal Aktor masuk ke dalam

halaman laporan

Kondisi Awal Reaksi Sistem

1. Aktor memilih menu laporan 2. Aktor memilih menu laporan pembelian dengan meninput periode 3. Aktor bisa memilih menu laporan jurnal dengan menginput periode

4. Aktor bisa memilih menu tambah, simpan, dan batal.

Sistem ini akan masuk ke menu laporan.

Sistem ini akan menampilkan data laporan pembelian berdasarkan periode.

Sistem ini akan menampilkan data laporan jurnal berdasarkan periode

Sistem ini akan menampilkan sesuai apa yang diinginkan

Kondisi Akhir Jika perintah sesuai, maka

akan menampilkan apa yang diinginkan

(22)

3.3.3. Activity Diagram

Admin Sistem

Klik menu login Tampil form login Menginput user name

dan password

Akses Level

Batal Menu utama

Tidak Ya

Gambar III.15

(23)

Admin Sistem

Klik Data barang Menampilkan form Data Barang

Melakukan pilihan Menentukan Pilihan

Tambah Cari Menginput data kode barang,nama,qty,satuan,

harga

Mencari data barang berdasarkan kode barang Memproses data barang Menampilkan pesan data barang tidak ditemukan Menampilkan data barang yang dicari Melakukan edit data barang Simpan Proses simpan Proses batal Simpan Proses simpan batal Tampil data barang

Tidak valid valid

Ya Tidak

Ya Tidak

Gambar III.16

(24)

Admin Sistem

Klik Data Supplier Menampilkan form Data Supplier

Melakukan pilihan Menentukan Pilihan

Tambah Cari Menginput data kode supplier,nama,alamat,no

telepon, email

Mencari data barang berdasarkan kode supplier Memproses data supplier Menampilkan pesan data barang tidak ditemukan Menampilkan data barang yang dicari Melakukan edit data barang Simpan Proses simpan Proses batal Simpan Proses simpan batal Tampil data supplier

Tidak valid valid

Ya Tidak

Ya Tidak

Gambar III.17

(25)

Admin Admin

Klik Data Pembelian

Klik Tambah

Menampilkan Form Pembelian

Memproses Data Pembelian Menginput no.pembelian,

tanggal, kode barang, nama barang, qty, satuan

Simpan Ya Tidak Proses simpan Proses batal Proses Cetak Gambar III.18

(26)

Admin Sistem

Klik Menu Pembayaran Menampilkan form pembayaran

Menampilkan data berdasarkan no.pembelian Klik Cari

Tidak valid valid

Menampilkan pesan data barang tidak ditemukan Menampilkan data barang yang dicari Melakukan edit data pembelian yang dicari Simpan Proses simpan Proses batal Ya Tidak

Tampil Data Pembayaran

Gambar III.19

(27)

Admin Admin

Klik Data Jurnal

Menampilkan form jurnal Pilih Jurnal

Memilih cari kode akun

Mecari / memproses cari data jurnal berdasarkan kode akun

Menampilkan pesan kode tidak

ditemukan

Menampilkan pesan ditemukan

Tambah data jurnal

Menginput Memproses data jurnal

Simpan Proses simpan Proses batal Ya Tidak

Tidak valid valid

Tampil Data Jurnal

Gambar III.20

(28)

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

Admin Pembelian Barang Supplier Pembayaran Jurnal Melakukan Melakukan Mempunyai Mempunyai Mempunyai Perkiraan Berisi Id_user Kd_barang Nm_barang qty satuan Harga Satuan Kd_barang qty Nm_barang satuan Harga Satuan No_pembelian Tgl_pembelian no_pembelian Tgl_pembayaran Total Debet Kd_supplier Nama_perkiraan kd_perkiraan no_pembelian Kredit Kd_supplier Nm_supplier alamat No_tlpon email Id_user Password Hak_akses kd_perkiraan total M 1 1 1 M 1 1 1 M 1 M Nama_perkiraan Gambar III.21

Entity Relationship Diagram (ERD)

(29)

Admin

*id_user password hak_akses

Pembelian

kd_supplier tgl_pembelian **kd_barang nm_barang satuan harga_satuan total qty no_pembelian *id_user

Pembayaran

*tgl_pembayaran total **no_pembelain

Supplier

*kd_supplier alamat nm_supplier email no_telepon

Barang

*kd_barang qty satuan harga_satuan satuan nama_barang

Jurnal

*no_pembelian Kredit Debet **kd_perkiraan

Perkiraan

*kd_perkiraan **nm_perkiraan nm_perkiraan Gambar III.22

LRS (Logical Record Strukture) 3.4.3. Spesifikasi File

(30)

a. Spesifikasi File Admin

Nama Database : Admin Nama File : Admin Tipe File : Login Akses File : Random Field Key : id_user

Jumlah : 30 byte

Tabel III.10

Spesifikasi File Data User

No Elemen Data Akronim Type Panjang Keterangan

1 Id user id_user int 10 Primary key

2 Password password varchar 10

3 Hak Akses hak_akses varchar 10

b. Spesifikasi File Admin

Nama Database : Data Barang Nama File : Barang Tipe File : Transaksi Akses File : Random Field Key : kd_barang

Jumlah : 80 byte

Tabel III.11

(31)

No Elemen Data Akronim Type Panjang Keterangan

1 Kode Barang kd_barang varchar 10 Primary key

2 Nama Barang nm_barang varchar 20

3 Quantity qty int 20

4 Satuan satuan varchar 10

5 Harga Satuan hrg_satuan int 20

c. Spesifikasi File Admin

Nama Database : Data Supplier Nama File : Supplier Tipe File : Transaksi Akses File : Random Field Key : kd_supplier

Jumlah : 130 byte

Tabel III.12

Spesifikasi File Data Supplier

No Elemen Data Akronim Type Panjang Keterangan

1 Kode Supplier kd_supplier varchar 10 Primary key

2 Nama Supplier nm_supplier varchar 30

3 Email email varchar 30

4 Alamat alamat varchar 50

5 No Telepon no_telepon int 10

(32)

Nama Database : Data Pembelian Nama File : Pembelian Tipe File : Transaksi Akses File : Random Field Key : no_pembelian

Jumlah : 130 byte

Tabel III.13

Spesifikasi File Data Pembelian

No Elemen Data Akronim Type Panjang Keterangan

1 ID User id_user int 10 Fk

2 Kode Supplier kd_supplier varchar 10

3 Tgl Pembelian tgl_beli int 10

4 No Pembelian no_pembelian int 10

5 Kode Barang kd_barang int 10 Primary key

6 Nama Barang nm_barang varchar 30

7 Quantity qty int 20

8 Satuan Satuan varchar 10

9 Harga Satuan hrg_satuan int 20

e. Spesifikasi File Admin

Nama Database : Data Pembayaran Nama File : Pembayaran Tipe File : Transaksi Akses File : Random

Field Key : kd_pembayaran

Jumlah : 50 byte

(33)

Spesifikasi File Data Pembayaran

No Elemen Data Akronim Type Panjang Keterangan

1 No Pembelian no_pembelian varchar 10 Primary key

2 Tgl Pembayaran tgl_bayar int 10 fk

3 Total total int 30

f. Spesifikasi File Admin

Nama Database : Data Perkiraan Nama File : Perkiraan Tipe File : Jurnal Akses File : Random Field Key : nm_perkiraan

Jumlah : 40 byte

Tabel III.15

Spesifikasi File Data Perkiraan

No Elemen Data Akronim Type Panjang Keterangan

1 Kode Perkiraan kd_perkiraan int 10 Primary key

2 Nama Perkiraan nm_perkiraan varchar 30 fk

(34)

Nama Database : Data Jurnal Nama File : Jurnal Tipe File : Jurnal Akses File : Random Field Key : no_pembelian

Jumlah : 110 byte

Tabel III.16

Spesifikasi File Data Jurnal

No Elemen Data Akronim Type Panjang Keterangan

1 No Pembelian no_pembelian varchar 10 Primary key

2 Kode Perkiraan kd_perkiraan int 10 Fk

3 Nama Perkiraan nm_perkiraan varchar 30

4 Debet Debet int 30

5 Kredit Kredit int 30

(35)

Admin Form Data Pembelian Control Data Pembelian Data Pembelian 1. Tambah

1.1 Get no.pembelian 1.1.1 Get no.pembelian

Data Barang

1.2.Get no pembelian

2. Set tgl pembelian 2.1 set tgl pembelian

3. Get kode barang 3.1 Get Kode Barang 3.2. Get Kode Barang

4. Get Nama Barang 4.1 Get Nama Barang 4.1 Get Nama Barang

5. Set Quantity 5.1 Set Quantity

6. Get Satuan 6.1 Get Satuan 6.2 Get Satuan

7. Get Harga Satuan 7.1 Get Satuan 7.2 Get Satuan

8. Get Total Harga 8.1 Get Total Harga Simpan Cetak Batal Cari Edit 9. Gambar III.23 Sequance Pembelian

(36)

Admin Form Data Pembayaran Control Data Pembayaran Data Pembayaran Data Supplier

1. Cari 1.1 Get no pembelian 1.1.1 Get no pembelian

1.2 Get no pembelian 2 Set tgl pembayaran 2.1 Set tgl pembayaran 3. Get no pembayaran 3.1 Get no pembayaran 3.2 Get no pembelian

4. Get kode Supplier

4.1 Get kode Supplier 4.2 Get no pembelian

5. Get kode Barang

5.1 Get kode Barang 5.2 Get kode Barang

6.Get Nama Barang

6.1Get Nama Barang 6.2Get Nama Barang

7. Get Quantity 7.1 Get Quantity

7.2 Get Quantity

8. Set Satuan 8.1 Set Satuan

9. Get Harga Satuan

9.1 Get Harga Satuan 9.2 Get Harga Satuan

10. Get Total Tagihan 9.1 Get Harga Satuan

9.2Get Harga Satuan

11. Set Jumlah Pembayaran 11.1 Set Jumlah Pembayaran

12. Simpan Batal Edit Hapus Gambar III.24 Sequance Pembayaran

(37)

3.4.5. Deployment Diagram Main <<ActiveXControl>> Java <<device>> database <<DBMS>> MySQL <<Database>> Pembelian <<device>> <<Application>> Program Pembelian Gambar III.25

Deployment Diagram Pembelian

3.4.6. User Interface

Gambar III.26

(38)

Gambar III.27

User Interface Menu Utama

Gambar III.28

(39)

Gambar III.29

User Interface Menu Pembelian

Gambar III.30

(40)

Gambar III.31

User Interface Menu Pembayaran

Gambar III.32

(41)

Gambar III.33

User Interface Menu Perkiraan

Gambar III.34

(42)

3.5. Implementasi 3.5.1. Code Generation Transaksi Pembelian package program; import Database.KoneksiDatabase; import Database.ResultSetTable; import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; public class pembelian extends javax.swing.JFrame { ResultSet rs;

KoneksiDatabase con; public pembelian() {

con = new KoneksiDatabase(new Database.Parameter().HOST_DB, new Database.Parameter().USERNAME_DB, new

Database.Parameter().PASSWORD_DB); initComponents();

setTitle("Form Data pembelian"); con.koneksiDatabase(); loadtabel(); tambah.setEnabled(true); simpan.setEnabled(false); batal.setEnabled(false); edit.setEnabled(false); hapus.setEnabled(false); close.setEnabled(true); hitung.setEnabled(false); nonaktif(); tanggal();

(43)

loaddata(); loaddata1(); }

private void loaddata() {

rs = con.querySelectAll("barang"); try {

while (rs.next()) {

cb_idbarang.addItem(rs.getString("id_barang")); }

} catch (SQLException ex) {

Logger.getLogger(pembelian.class.getName()).log(Level.SEVERE, null, ex);

} }

private void loaddata1() {

rs = con.querySelectAll("supplier"); try {

while (rs.next()) {

cb_sup.addItem(rs.getString("nama_supplier")); }

} catch (SQLException ex) {

Logger.getLogger(pembelian.class.getName()).log(Level.SEVERE, null, ex);

} } /**

* This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor. */

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

jPanel1 = new javax.swing.JPanel(); jLabel = new javax.swing.JLabel(); salah = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); qty1 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jmlh = new javax.swing.JTextField(); nm_brg = new javax.swing.JTextField(); hrg_satuan = new javax.swing.JTextField();

(44)

close = new javax.swing.JButton(); simpan = new javax.swing.JButton(); edit = new javax.swing.JButton(); hapus = new javax.swing.JButton();

satuan = new javax.swing.JComboBox<>(); tcari = new javax.swing.JTextField();

jScrollPane1 = new javax.swing.JScrollPane(); tabel3 = new javax.swing.JTable();

jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); qty = new javax.swing.JTextField(); tanggal = new javax.swing.JLabel(); cari = new javax.swing.JButton(); batal = new javax.swing.JButton(); tambah = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel();

cb_idbarang = new javax.swing.JComboBox<>(); hitung = new javax.swing.JButton();

id = new javax.swing.JTextField();

cb_sup = new javax.swing.JComboBox<>(); jLabel7 = new javax.swing.JLabel();

background = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel.setForeground(new java.awt.Color(255, 255, 255)); jLabel.setText("Jumlah");

jPanel1.add(jLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 280, -1, -1));

salah.setForeground(new java.awt.Color(255, 255, 255)); salah.setText("No Pembelian");

jPanel1.add(salah, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 70, -1, -1));

jLabel3.setForeground(new java.awt.Color(255, 255, 255)); jLabel3.setText("Nama Supplier");

jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 100, -1, -1));

(45)

jLabel4.setText("Nama Barang");

jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 160, -1, -1));

qty1.setForeground(new java.awt.Color(255, 255, 255)); qty1.setText("Qty");

jPanel1.add(qty1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 190, -1, -1));

jLabel6.setForeground(new java.awt.Color(255, 255, 255)); jLabel6.setText("Harga Satuan");

jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 220, -1, -1));

jPanel1.add(jmlh, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 280, 110, -1)); jPanel1.add(nm_brg, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 160, 110, -1)); jPanel1.add(hrg_satuan, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 220, 110, -1)); close.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-close-sign-50.png"))); // NOI18N close.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeActionPerformed(evt);

} });

jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 10, 70, 50)); simpan.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-save-filled-50.png"))); // NOI18N simpan.setText("Simpan"); simpan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { simpanActionPerformed(evt);

} });

jPanel1.add(simpan, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 140, 170, 80)); edit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-edit-file-64.png"))); // NOI18N edit.setText("Edit"); edit.addActionListener(new java.awt.event.ActionListener() {

(46)

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

} });

jPanel1.add(edit, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 230, 170, 70)); hapus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-delete-bin-80.png"))); // NOI18N hapus.setText("Hapus"); hapus.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { hapusActionPerformed(evt);

} });

jPanel1.add(hapus, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 140, 160, 80));

satuan.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "=PILIH=", "Pcs", "Dus", "Pack" }));

jPanel1.add(satuan, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 250, 110, -1));

jPanel1.add(tcari, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 320, 150, 30));

tabel3.setModel(new javax.swing.table.DefaultTableModel( new Object [][] {

{null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null} },

new String [] {

"No Pembelian", "Nama Supplier", "ID Barang", "Nama Barang", "Qty", "Harga Satuan", "Satuan", "Jumlah"

} ));

tabel3.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { tabel3MouseClicked(evt); } }); jScrollPane1.setViewportView(tabel3); jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 370, 800, 130));

(47)

jLabel8.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N jLabel8.setForeground(new java.awt.Color(255, 255, 255));

jLabel8.setText("INPUT DATA PEMBELIAN "); jPanel1.add(jLabel8, new

org.netbeans.lib.awtextra.AbsoluteConstraints(310, 0, -1, 30)); jLabel9.setForeground(new java.awt.Color(255, 255, 255)); jLabel9.setText("Satuan");

jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 250, -1, 10));

jPanel1.add(qty, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 190, 110, -1));

tanggal.setText("Tanggal");

jPanel1.add(tanggal, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 280, -1, -1)); cari.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-search-26.png"))); // NOI18N cari.setText("Cari"); cari.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cariActionPerformed(evt);

} });

jPanel1.add(cari, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 320, 100, 30)); batal.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-cancel-80.png"))); // NOI18N batal.setText("batal"); batal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { batalActionPerformed(evt);

} });

jPanel1.add(batal, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 230, 160, 70)); tambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-plus-80.png"))); // NOI18N tambah.setText("tambah"); tambah.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tambahActionPerformed(evt);

(48)

} });

jPanel1.add(tambah, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 60, 170, 70));

jLabel1.setForeground(new java.awt.Color(255, 255, 255)); jLabel1.setText("TOKO SENTRAL GRANIT");

jPanel1.add(jLabel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(330, 30, -1, -1));

cb_idbarang.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "=PILIH=" }));

cb_idbarang.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cb_idbarangActionPerformed(evt); } }); jPanel1.add(cb_idbarang, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 130, 110, -1)); hitung.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-calculator-80.png"))); // NOI18N hitung.setText("Hitung"); hitung.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { hitungActionPerformed(evt);

} });

jPanel1.add(hitung, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 60, 160, 70));

jPanel1.add(id, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 70, 110, -1));

cb_sup.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "=PILIH=" }));

jPanel1.add(cb_sup, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 100, 110, -1));

jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("ID Barang");

jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 130, -1, -1));

background.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/IMG-20180705-WA0022.jpg"))); // NOI18N

(49)

jPanel1.add(background, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 820, 510)); getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 820, 510)); pack(); }// </editor-fold>

private void closeActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

this.dispose();

}

private void simpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

simpan();

}

private void editActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

aktif(); try {

if (!id.getText().isEmpty() && !nm_brg.getText().isEmpty() && !qty.getText().isEmpty()

&& !hrg_satuan.getText().isEmpty() && !jmlh.getText().isEmpty()) {

String kolom[] = {"no_pembelian", "nm_supplier", "id_barang", "nama_barang", "qty", "hrg_satuan", "satuan", "jumlah"};

String isi[] = {id.getText(), cb_sup.getSelectedItem().toString(), cb_idbarang.getSelectedItem().toString(), nm_brg.getText(), qty.getText(), hrg_satuan.getText(), satuan.getSelectedItem().toString(), jmlh.getText()}; con.queryUpdate("pembelian", kolom, isi, "no_pembelian='" + String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 0)) + "'"); JOptionPane.showMessageDialog(this, "Data berhasil update"); loadtabel(); clear(); nonaktif(); tambah.setEnabled(true); batal.setEnabled(false); edit.setEnabled(false); hapus.setEnabled(false); hitung.setEnabled(false); } else {

JOptionPane.showMessageDialog(this, "Data isian ada yang kosong"); }

(50)

JOptionPane.showMessageDialog(this, "Error edit data"); }

loadtabel();

}

private void hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

try {

String id = String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 0));

if (JOptionPane.showConfirmDialog(this, "Yakin Menghapus Data", "Peringatan", JOptionPane.OK_CANCEL_OPTION) ==

JOptionPane.OK_OPTION) {

con.queryDelete("pembelian", "no=" + id); loadtabel(); clear(); nonaktif(); tambah.setEnabled(true); batal.setEnabled(false); edit.setEnabled(false); hapus.setEnabled(false); } else { return; } } catch (Exception e) {

JOptionPane.showMessageDialog(this, "pilih data terlebih dahulu"); }

}

private void tabel3MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

aktif(); edit.setEnabled(true); hapus.setEnabled(true); batal.setEnabled(true); tambah.setEnabled(false); simpan.setEnabled(false); hitung.setEnabled(true); id.setText(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 0))); cb_sup.setSelectedItem(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow (), 1))); cb_idbarang.setSelectedItem(String.valueOf(tabel3.getValueAt(tabel3.getSelected Row(), 2))); nm_brg.setText(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 3)));

(51)

qty.setText(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 4))); hrg_satuan.setText(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 5))); satuan.setSelectedItem(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow( ), 6))); jmlh.setText(String.valueOf(tabel3.getValueAt(tabel3.getSelectedRow(), 7))); }

private void cariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

if (tcari.getText().isEmpty()) {

JOptionPane.showMessageDialog(this, "Isikan Data Pencarian"); } else {

try {

rs = con.querySelectAll("pembelian", "no_pembelian LIKE'%" + tcari.getText()

+ "%' OR nm_supplier LIKE '%" + tcari.getText() + "%' OR nama_barang LIKE '%" + tcari.getText() + "%' OR id_barang LIKE '%" + tcari.getText() + "%'"); tabel3.setModel(new Database.ResultSetTable(rs));

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "Pencarian Error"); }

}

}

private void batalActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

tambah.setEnabled(true); simpan.setEnabled(false); batal.setEnabled(false); edit.setEnabled(false); hapus.setEnabled(false); hitung.setEnabled(false); nonaktif(); clear(); }

private void tambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

tambah.setEnabled(false); simpan.setEnabled(true); batal.setEnabled(true); edit.setEnabled(false); hapus.setEnabled(false);

(52)

hitung.setEnabled(true); kode();

aktif();

}

private void cb_idbarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

String st = (String) cb_idbarang.getSelectedItem();

ResultSet rst = con.querySelectAll("barang", "id_barang='" + st + "'"); try {

while (rst.next()) {

this.nm_brg.setText(rst.getString("nama_barang")); this.hrg_satuan.setText(rst.getString("harga")); }

} catch (SQLException ex) {

Logger.getLogger(pembelian.class.getName()).log(Level.SEVERE, null, ex);

}

}

private void hitungActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

hitung();

} /**

* @param args the command line arguments */

public static void main(String args[]) { /* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

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

* For details see

http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } }

(53)

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(pembelian.class.getName()).log(java.util.loggi ng.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(pembelian.class.getName()).log(java.util.loggi ng.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(pembelian.class.getName()).log(java.util.loggi ng.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(pembelian.class.getName()).log(java.util.loggi ng.Level.SEVERE, null, ex);

}

//</editor-fold> //</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new pembelian().setVisible(true); }

}); }

// Variables declaration - do not modify private javax.swing.JLabel background;

private javax.swing.JButton batal; private javax.swing.JButton cari;

private javax.swing.JComboBox<String> cb_idbarang; private javax.swing.JComboBox<String> cb_sup; private javax.swing.JButton close;

private javax.swing.JButton edit; private javax.swing.JButton hapus; private javax.swing.JButton hitung;

private javax.swing.JTextField hrg_satuan; private javax.swing.JTextField id;

private javax.swing.JLabel jLabel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9;

(54)

private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jmlh;

private javax.swing.JTextField nm_brg; private javax.swing.JTextField qty; private javax.swing.JLabel qty1; private javax.swing.JLabel salah;

private javax.swing.JComboBox<String> satuan; private javax.swing.JButton simpan;

private javax.swing.JTable tabel3; private javax.swing.JButton tambah; private javax.swing.JLabel tanggal; private javax.swing.JTextField tcari; // End of variables declaration private void loadtabel() {

String namaKolom[] = {"no_pembelian", "nm_supplier", "id_barang", "nama_barang", "qty", "hrg_satuan", "satuan", "jumlah"};

rs = con.querySelect(namaKolom, "pembelian"); tabel3.setModel(new ResultSetTable(rs)); }

private void simpan() { try {

if (!id.getText().isEmpty() && !nm_brg.getText().isEmpty() && !qty.getText().isEmpty()

&& !hrg_satuan.getText().isEmpty() && !jmlh.getText().isEmpty()) {

String kolom[] = {"no_pembelian", "nm_supplier", "id_barang", "nama_barang", "qty", "hrg_satuan", "satuan", "jumlah"};

String isi[] = {id.getText(), cb_sup.getSelectedItem().toString(), cb_idbarang.getSelectedItem().toString(), nm_brg.getText(), qty.getText(), hrg_satuan.getText(), satuan.getSelectedItem().toString(), jmlh.getText()}; System.out.println(con.queryInsert("pembelian", kolom, isi)); JOptionPane.showMessageDialog(this, "Data berhasil disimpan"); int selectedOption = JOptionPane.showConfirmDialog(null, "ingin cetak transaksi?", "Cetak Pembelian", JOptionPane.YES_NO_OPTION); if (selectedOption == JOptionPane.YES_OPTION) { loadtabel(); cetakTR(); batal.setEnabled(false); tambah.setEnabled(true); edit.setEnabled(false); hapus.setEnabled(false); simpan.setEnabled(false); hitung.setEnabled(false); nonaktif(); clear();

(55)

} else { } } else {

JOptionPane.showMessageDialog(this, "Data isian ada yang kosong"); loadtabel();

}

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "Error input data"); System.out.println("salah");

} }

private String kode() { String no = null; try {

con.koneksiDatabase();

String sql = "Select right(no_pembelian,4)+1 from pembelian"; ResultSet rs = con.eksekusiQuery(sql); if (rs.next()) { rs.last(); no = rs.getString(1); while (no.length() < 4) { no = "000" + no; no = "5" + no; id.setText(no); } } else { no = "50001"; id.setText(no); } } catch (Exception e) { } return no; }

private void nonaktif() { id.setEnabled(false); nm_brg.setEnabled(false); qty.setEnabled(false); hrg_satuan.setEnabled(false); satuan.setEnabled(false); jmlh.setEnabled(false); cb_idbarang.setEnabled(false); cb_sup.setEnabled(false); }

(56)

private void aktif() { id.setEnabled(false); nm_brg.setEnabled(false); qty.setEnabled(true); hrg_satuan.setEnabled(false); satuan.setEnabled(true); jmlh.setEnabled(false); cb_idbarang.setEnabled(true); cb_sup.setEnabled(true); }

private void clear() { id.setText(""); nm_brg.setText(""); qty.setText(""); hrg_satuan.setText(""); satuan.setSelectedItem("=PILIH="); cb_sup.setSelectedItem("=PILIH="); cb_idbarang.setSelectedItem("=PILIH="); jmlh.setText(""); }

private void hitung() { try { int a = Integer.parseInt(qty.getText()); int b = Integer.parseInt(hrg_satuan.getText()); int c = a * b; jmlh.setText(Integer.toString(c)); } catch (Exception e) { } } void tanggal() {

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

SimpleDateFormat kal = new SimpleDateFormat("yyyy-MM-dd"); tanggal.setText(kal.format(skrg));

}

private void cetakTR() { try {

String NamaFile = "src/laporan/pembelian_parameter.jasper"; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection koneksi =

DriverManager.getConnection("jdbc:mysql://localhost/pembelian", "root", ""); HashMap hash = new HashMap();

//Mengambil parameter dari ireport hash.put("nomor", id.getText());

(57)

File file = new File(NamaFile);

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file.getPath());

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash, koneksi);

JasperViewer.viewReport(jasperPrint); } catch (Exception ex) {

javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage()); } } } Transaksi Pembayaran package program; import Database.KoneksiDatabase; import Database.ResultSetTable; import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer;

public class pembayaran extends javax.swing.JFrame { ResultSet rs;

KoneksiDatabase con; public pembayaran() {

con = new KoneksiDatabase(new Database.Parameter().HOST_DB, new Database.Parameter().USERNAME_DB, new

Database.Parameter().PASSWORD_DB); initComponents();

setTitle("Form Data Pembayaran"); loadtabel();

(58)

loaddata(); con.koneksiDatabase(); tambah.setEnabled(true); simpan.setEnabled(false); batal.setEnabled(false); close.setEnabled(true); nonaktif(); }

private String kode() { String no = null; try {

con.koneksiDatabase();

String sql = "Select right(no_bayar, 4)+1 from pembayaran"; ResultSet rs = con.eksekusiQuery(sql); if (rs.next()) { rs.last(); no = rs.getString(1); while (no.length() < 4) { no = "000" + no; no = "8" + no; no_byr.setText(no); } } else { no = "80001"; no_byr.setText(no); } } catch (Exception e) { } return no; }

private void loaddata() {

rs = con.querySelectAll("pembelian"); try {

while (rs.next()) {

no_beli.addItem(rs.getString("no_pembelian")); }

} catch (SQLException ex) {

Logger.getLogger(pembayaran.class.getName()).log(Level.SEVERE, null, ex);

} }

public void hitung() { try {

int a = Integer.parseInt(qty.getText()); int b = Integer.parseInt(hrg.getText());

(59)

int c = a * b; total.setText(Integer.toString(c)); } catch (Exception e) { } } /**

* This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor. */

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); nm_brg = new javax.swing.JTextField(); jmlh_byr = new javax.swing.JTextField(); tanggal = new javax.swing.JTextField(); no_byr = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); qty = new javax.swing.JTextField(); hrg = new javax.swing.JTextField(); close = new javax.swing.JButton(); tambah = new javax.swing.JButton(); simpan = new javax.swing.JButton(); batal = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane(); tabel1 = new javax.swing.JTable();

jLabel13 = new javax.swing.JLabel();

no_beli = new javax.swing.JComboBox<>(); satuan = new javax.swing.JTextField(); id_brg = new javax.swing.JTextField(); nm_sup = new javax.swing.JTextField(); jLabel12 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel();

(60)

total = new javax.swing.JTextField(); background = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout());

jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255)); jLabel1.setText("INPUT PEMBAYARAN"); jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 10, -1, 20)); jLabel2.setForeground(new java.awt.Color(255, 255, 255)); jLabel2.setText("Nama Barang");

jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 230, -1, -1));

jLabel3.setForeground(new java.awt.Color(255, 255, 255)); jLabel3.setText("Total");

jPanel1.add(jLabel3, new

org.netbeans.lib.awtextra.AbsoluteConstraints(230, 230, -1, -1));

jLabel4.setFont(new java.awt.Font("Times New Roman", 2, 14)); // NOI18N jLabel4.setForeground(new java.awt.Color(255, 255, 0));

jLabel4.setText("*Note : Format Tanggal (yyyy-MM-dd)");

jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 310, -1, -1));

jLabel5.setForeground(new java.awt.Color(255, 255, 255)); jLabel5.setText("No Pembayaran");

jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 150, -1, -1));

jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("Kode Barang");

jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 190, -1, -1));

jPanel1.add(nm_brg, new

org.netbeans.lib.awtextra.AbsoluteConstraints(130, 230, 80, -1)); jPanel1.add(jmlh_byr, new

org.netbeans.lib.awtextra.AbsoluteConstraints(320, 270, 100, -1));

jPanel1.add(tanggal, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 110, 80, -1));

(61)

jPanel1.add(no_byr, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 150, 80, -1));

jLabel8.setForeground(new java.awt.Color(255, 255, 255)); jLabel8.setText("No Pembelian");

jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, -1, -1)); jLabel9.setForeground(new java.awt.Color(255, 255, 255)); jLabel9.setText("Nama Supplier"); jPanel1.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 70, -1, -1)); jLabel10.setForeground(new java.awt.Color(255, 255, 255)); jLabel10.setText("Satuan"); jPanel1.add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 150, -1, -1)); jLabel11.setForeground(new java.awt.Color(255, 255, 255)); jLabel11.setText("Harga Satuan"); jPanel1.add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 190, -1, -1));

jPanel1.add(qty, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 110, 100, -1));

jPanel1.add(hrg, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 190, 100, -1));

close.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-close-sign-50.png"))); // NOI18N

close.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeActionPerformed(evt);

} });

jPanel1.add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(750, 10, 60, 50)); tambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/icon/icon2/icons8-plus-80.png"))); // NOI18N tambah.setText("Tambah"); tambah.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tambahActionPerformed(evt);

} });

Gambar

Gambar III.2   Activity sistem berjalan
Gambar III.4  Use Case menu login
Gambar III.5  Use Case menu utama
Gambar III.6  Use Case Data Barang
+7

Referensi

Dokumen terkait

Penelitian yang dilakukan oleh (Petit (1972) dalam Ratnawati (2009)), tentang validitas hipotesis pasar modal efisien dengan megestimasi kecepatan dan akurasi harga saham

100 ciri ini dipecahkan kepada sembilan kategori pembangunan Insan soleh dengan pembangunan utama yang menjadi tunjang kepada kesolehan umat ialah dari akhlak umat Islam kepada

ini adalah mengevaluasi koefisien friksi antara permukaan penampang kayu terhadap permukaan batu. Analisis dengan menggunakan metode elemen hingga nonlinier digunakan

Kedua, penggunaan bahan fasilitasi pemberdayaan KKG SD pada mata pelajaran matematika berbasis open- ended dalam kegiatan KKG SD Gugus III Kecamatan Indralaya

Ketidakstabilan kondisi seabed dan lingkungan ini akan mengakibatkan perbedaan kekuatan pada bangunan lepas pantai pada umumnya maupun pada pile / pondasi pada

Di hutan sekunder, pergerakan air cenderung menuju kedalaman 30-40 cm selama 4 hari tidak hujan dan lapisan 30-40 cm tersebut meretensi air lebih tinggi dibandingkan

TKDN: Tidak Pengadaan sarana produksi cabai rawit Lelang Sederhana 599.460.000 70 Peningkatan sarana dan prasarana perikanan budidaya Belanja jasa konsultasi perencanaan

Dibutuhkan pengembangan motor BLDC yang sangat efisien dan spesifik aplikasi membantu meningkatkan motor BLDC dalam industri untuk memperoleh hasil yang optimal,