• Tidak ada hasil yang ditemukan

BAB III PEMBAHASAN. semua guru dan staf tata usaha MTsN 1 Karawang, kemudian didirikan pada tahun

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB III PEMBAHASAN. semua guru dan staf tata usaha MTsN 1 Karawang, kemudian didirikan pada tahun"

Copied!
59
0
0

Teks penuh

(1)

30 3.1. Tinjauan Perusahaan

3.1.1. Sejarah Perusahaan

Cikal bakal berdirinya Koperasi MTsN 1 Karawang pada mulanya inisiatif dari semua guru dan staf tata usaha MTsN 1 Karawang, kemudian didirikan pada tahun 2006 dengan diketuai oleh Bapak Juhri yang dipilih langsung oleh kepala sekolah.

Koperasi MTsN 1 Karawang berada di lingkungan sekolah Madrasah Tsanawiyah Negeri 1 Karawang yang beralamat di Jalan Lapang Karya Bhakti Desa Mekarmaya Kecamatan Cilamaya Wetan Kabupaten Karawang.

Koperasi MTsN 1 Karawang adalah koperasi sekolah yang didalamnya bisa melakukan transaksi simpan pinjam dan jual beli barang seperti alat tulis kantor, peralatan kebersihan, sembako dan lain sebagainya. Dengan visi koperasi yaitu “Maju Sejahtera Bersama” dan misi “Menumbuh kembangkan kesadaran berkoperasi untuk meningkatkan kesejahteraan bersama” koperasi ini sudah berjalan selama empat belas tahun hingga sekarang.

3.1.2. Struktur Organisasi dan Fungsi

Struktur organisasi menggambarkan sebuah susunan dari beberapa komponen beserta dengan hubungannya. Struktur organisasi pada Koperasi MTsN 1 Karawang sebagai berikut:

(2)

Sumber: Koperasi MTsN 1 Karawang, 2020 Gambar III.1

Struktur Organisasi Koperasi MTsN 1 Karawang

Adapun fungsi-fungsi dari setiap bagian pada struktur organisasi diatas, sebagai berikut:

Tabel III.1 Jabatan dan Fungsi

Jabatan Fungsi

Rapat Anggota Menetapkan anggaran dasar, membuat kebijakan-kebijakan, menyelenggarakan pemilihan dan menetapkan renacan kerja koperasi

Pengawas Koperasi Melakukan pengawasan terhadap pengurusan koperasi dan berjalannya koperasi

Ketua Koperasi Memimpin koperasi, bertanggung jawab penuh pada koperasi dan mengesahkan kebijakan-kebijakan

Sekretaris Bertanggung jawab dalam administrasi koperasi

Bendahara Bertanggung jawab dalam masalah keuangan, mengatur penerimaan dan pengeluaran uang dan membuat pembukuan keuangan

Seksi Wirausaha Penyusun rencana usaha koperasi, menyiapkan dan melaksanakan pemberdayaan bahan usaha koperasi

Anggota Koperasi Pemberi modal, pengguna jasa koperasi dan menjalankan roda organisasi dan usaha koperasi

Sumber: Koperasi MTsN 1 Karawang, 2020

(3)

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan 1. Proses Pemesanan Barang

Pada proses pemesanan barang, bagian wirausaha melakukan pengecekan stok barang secara langsung yang tersedia di koperasi. Kemudian bagian wirausaha membuat list barang apa saja yang sudah habis atau stok barang yang sudah menipis di buku list pembelian. Lalu bagian wirausaha menghubungi supplier untuk melakukan pemesanan barang sesuai dengan list pembelian yang sudah dibuat dan supplier menerima pesanan.

2. Proses Penerimaan Barang dan Pembayaran

Supplier akan mengirim barang yang dipesan beserta. Bagian wirausaha koperasi

menerima barang dan langsung melakukan pengecekan barang yang datang dengan kualifikasi jumlah, jenis dan keadaan barang yang diterima. Setelah melakukan pengecekan barang maka bagian wirausaha melakukan pembayaran secara tunai kepada supplier. Kemudian supplier menerima pembayaran dan menyerahkan faktur pembelian. Bagian wirausaha menerima faktur pembelian dan langsung mencatatnya di buku pembelian. Adapun faktur pembelian diarsipkan untuk dijadikan bukti.

3. Proses Pembuatan Laporan

Pembuatan laporan dilakukan berdasarkan catatan pada buku dan dilakukan dalam waktu satu tahun sekali dengan menggunakan Microsoft Excel dengan melampirkan bukti faktur pembelian. Laporan pembelian diserahkan kepada bendahara koperasi untuk diarsipkan.

(4)

3.2.2. Activity Diagram

1. Activity Diagram Proses Pemesanan Barang

Gambar III.2 Activity Diagram Proses Pemesanan Barang 2. Activity Diagram Proses Penerimaan Barang dan Pembayaran

Gambar III.3

Activity Diagram Proses Penerimaan Barang dan Pembayaran

(5)

3. Activity Diagram Proses Pembuatan Laporan

Gambar III.4 Activity Diagram Proses Pembuatan Laporan

3.2.3. Dokumen Masukan

1. Nama dokumen : Buku Pembelian

Fungsi : Sebagai daftar transaksi pembelian yang dilakukan Sumber : Bagian Wirausaha

Tujuan : Arsip

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi pembelian Format : Lampiran A-1

2. Nama dokumen : Faktur Pembelian

Fungsi : Sebagai bukti pembelian secara tunai Sumber : Supplier

Tujuan : Koperasi

(6)

Media : Kertas Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi pembelian Format : Lampiran A-2

3.2.4. Dokumen Keluaran

1. Nama Dokumen : Buku List Pembelian

Fungsi : Sebagai daftar barang yang akan dipesan Sumber : Bagian Wirausaha

Tujuan : Supplier

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap akan melakukan pembelian Format : Lampiran B-1

2. Nama Dokumen : Laporan Pembelian

Fungsi : Sebagai laporan pembelian barang Sumber : Bagian wirausaha

Tujuan : Bendahara Koperasi Media : File Microsoft Excel Jumlah : 1 File

Frekuensi : Setiap tahun Format : Lampiran B-2 3.2.5. Permasalahan Pokok

Berdasarkan hasil analisa yang telah penulis lakukan, maka penulis dapat melihat permasalahan yang timbul dalam sistem pembelian tunai pada Koperasi Madrasah Tsanawiyah Negeri 1 Karawang, yaitu sebagai berikut:

(7)

1. Sistem pembelian masih dilakukan secara manual menyebabkan kesalahan dalam melakukan pencatatan dikarenakan kurangnya ketelitian.

2. Dalam melakukan pengecekan stok barang dilakukan secara langsung pada setiap jenis barang, hal tersebut akan memakan banyak waktu.

3. Dalam pembuatan laporan pembelian hanya dilakukan dalam kurun waktu satu tahun sekali sehingga membutuhkan waktu lama dalam pembuatannya.

4. Bukti transaksi yang dikumpulkan dalam kurun waktu satu tahun memungkinkan bukti transaksi tersebut menjadi rusak dan hilang yang bisa memperlambat proses pembuatan laporan.

3.2.6. Pemecahan Masalah

Untuk mengatasi permasalahan yang telah penulis paparkan di atas, maka penulis memberikan beberapa pemecahan masalah sebagai berikut:

1. Perlu adanya perubahan dalam sistem pencatatan dengan dibuatkannya sistem informasi akuntansi pembelian tunai agar lebih efektif dan efisien.

2. Dibuatnya sistem pembelian tunai yang akan memudahkan untuk melakukan pengecekan stok barang.

3. Dibuatnya sistem pembelian tunai yang sudah terkomputerisasi yang dapat menghasilkan laporan yang dapat dicetak kapanpun.

4. Penyimpanan data dengan menggunakan database management system yang dapat diakses dengan mudah dan data akan lebih aman.

3.3. Analisis Kebutuhan Software 3.3.1. Analisis Kebutuhan

1. Analisi Kebutuhan Bagian Admin a. Bagian Admin melakukan login

b. Bagian Admin dapat mengelola data akun

(8)

c. Bagian Admin dapat mengelola data barang d. Bagian Admin dapat mengelola data supplier e. Bagian Admin dapat mengelola data pembelian f. Bagian Admin dapat mengelola jurnal

g. Bagian Admin dapat membuat dan mencetak laporan h. Bagian Admin melakukan log out

2. Analisi Kebutuhan Kepala Koperasi a. Kepala Koperasi melakukan login

b. Kepala Koperasi dapat mengelola data user

c. Kepala Koperasi dapat melihat dan mencetak laporan d. Kepala Koperasi melakukan logout

3.3.2. Use Case Diagram

1. Use case diagram Admin dan Kepala Koperasi

Gambar III.5 Use case diagram Admin dan Kepala Koperasi

(9)

Tabel III.2

Deskripsi Use Case Mengelola Data Barang Use Case Mengelola Data Barang

Tujuan Mengijinkan admin untuk mengelola data barang

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu data barang maka sistem akan menampilkan data barang

2. Admin dapat mengklik tambah, maka akan muncul kode barang dengan otomatis, kemudian input data barang dan simpan

3. Admin dapat memilih satu data barang yang akan dirubah kecuali kode barang, kemudian klik ubah dan merubah data barang lalu simpan

4. Admin dapat memilih satu data barang yang akan dihapus, kemudian klik hapus lalu akan muncul pesan konfirmasi data yang akan dihapus

5. Admin dapat klik cetak untuk cetak stok barang Skenario

Alternatif

Jika kode barang yang dicari tidak ditemukan maka sistem akan menampilkan tabel kosong

Kondisi Akhir Sistem akan menampilan data barang yang sudah ditambahkan

Tabel III.3

Deskripsi Use Case Mengelola Data Pembelian Use Case Mengelola Data Pembelian

Tujuan Mengijinkan admin untuk mengelola data pembelian

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu data pembelian maka sistem akan menampilkan data pembelian

2. Admin dapat mengklik tambah maka akan muncul nomor pembelian dan tanggal dengan otomatis, kemudian memilih supplier dan input data barang yang akan dibeli dan menentukan jumlah, maka akan keluar subtotal dan total pembelian kemudian simpan

Skenario Alternatif

1. Jika kode barang yang dipilih sudah ada maka sistem akan menampilkan pesan “Data sudah ada”

2. Jika kolom jumlah diisi dengan huruf maka sistem akan menampilkan pesan “Input hanya boleh berupa angka”

3. Jika kode pembelian yang dicari tidak ditemukan maka sistem akan menampilkan tabel kosong

Kondisi Akhir Sistem akan menyimpan data pembelian dan menampilkan data pembelian

(10)

Tabel III.4

Deskripsi Use Case Melihat Laporan Use Case Membuat Laporan

Tujuan Mengijinkan admin atau kepala koperasi untuk melihat dan mencetak laporan

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu laporan maka sistem akan menampilkan form laporan

2. Admin menginput periode tanggal laporan dan memilih laporan yang dicari lalu klik lihat, maka sistem akan menampilkan laporan yang dicari

3. Admin dapat mengklik cetak untuk cetak laporan Skenario

Alternatif

Jika periode tanggal laporan yang dicari tidak ditemukan maka akan muncul pesan “the document has no pages”

Kondisi Akhir Sistem akan menampilkan laporan sesuai laporan yang dipilih dan periode tanggal yang dipilih

Tabel III.5

Deskripsi Use Case Mengelola Data Supplier Use Case Mengelola Data Supplier

Tujuan Mengijinkan admin untuk mengelola data supplier

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu data supplier maka sistem akan menampilkan data supplier

2. Admin dapat mengklik tambah, maka akan muncul kode supplier dengan otomatis, kemudian input data supplier dan simpan

3. Admin dapat memilih satu data supplier yang akan dirubah kecuali kode supplier, kemudian klik ubah dan merubah data supplier lalu simpan

4. Admin dapat memilih satu data supplier yang akan dihapus, kemudian klik hapus lalu akan muncul pesan konfirmasi data yang akan dihapus

Skenario Alternatif

Jika kode supplier yang dicari tidak ditemukan maka sistem akan menampilkan tabel kosong

Kondisi Akhir Sistem akan menampilan data supplier yang sudah ditambahkan

(11)

Tabel III.6

Deskripsi Use Case Mengelola Jurnal Use Case Mengelola Data Jurnal

Tujuan Mengijinkan admin untuk mengelola data pembelian

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu jurnal maka sistem akan menampilkan data jurnal

2. Admin dapat mengklik tambah maka akan muncul nomor jurnal dan tanggal dengan otomatis, kemudian memilih nomor pembelian yang akan dibuat jurnal maka akan tampil total pembelian, lalu mengisi keterangan jurnal dan input akun yang akan digunakan dan menentukan debet kredit kemudian simpan

Skenario Alternatif

1. Jika akun yang dipilih sudah ada maka sistem akan menampilkan pesan “Data sudah ada”

2. Jika debet dan kredit diisi dengan huruf maka sistem akan menampilkan pesan “Input hanya boleh berupa angka”

3. Jika kode jurnal yang dicari tidak ditemukan maka sistem akan menampilkan tabel kosong

Kondisi Akhir Sistem akan menyimpan jurnal dan menampilkan data jurnal

Tabel III.7

Deskripsi Use Case Mengelola Data Akun Use Case Mengelola Data Akun

Tujuan Mengijinkan admin untuk mengelola data akun

Aktor Admin

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Admin memilih menu data akun maka sistem akan menampilkan data akun

2. Admin dapat mengklik tambah, kemudian input data akun dan simpan

3. Admin dapat memilih satu data akun yang akan dirubah, kemudian klik ubah dan merubah data akun lalu simpan

4. Admin dapat memilih satu data akun yang akan dihapus, kemudian klik hapus lalu akan muncul pesan konfirmasi data yang akan dihapus

Skenario Alternatif

Jika kode akun yang dicari tidak ditemukan maka sistem akan menampilkan tabel kosong

Kondisi Akhir Sistem akan menampilan data akun yang sudah ditambahkan

(12)

Tabel III.8

Deskripsi Use Case Mengelola Data User Use Case Mengelola Data User

Tujuan Mengijinkan kepala koperasi untuk mengelola data user Aktor Kepala Koperasi

Kondisi Awal Login tervalidasi dan valid

Skenario Utama 1. Kepala Koperasi memilih menu data user maka sistem akan menampilkan data user

2. Kepala Koperasi dapat mengklik tambah, kemudian input data akun dan simpan

3. Kepala Koperasi dapat memilih satu data user yang akan dirubah, kemudian klik ubah dan merubah data user lalu simpan

4. Kepala Koperasi dapat memilih satu data akun yang akan dihapus, kemudian klik hapus lalu akan muncul pesan konfirmasi data yang akan dihapus

Skenario Alternatif

-

Kondisi Akhir Sistem akan menampilan data user

3.3.3. Activity Diagram 1. Activity Diagram Log In

Gambar III.6 Activity Diagram Log In

(13)

2. Activity Diagram Menu Data Barang

Gambar III.7 Activity Diagram Menu Data Barang 3. Activity Diagram Menu Pembelian

Gambar III.8 Activity Diagram Menu Pembelian

(14)

4. Activity Diagram Menu Data Supplier

Gambar III.9

Activity Diagram Menu Data Supplier

(15)

5. Activity Diagram Menu Data Akun

Gambar III.10

Activity Diagram Menu Data Akun

(16)

6. Activity Diagram Menu Data User

Gambar III.11

Activity Diagram Menu Data User

(17)

7. Activity Diagram Menu Jurnal

Gambar III.12 Activity Diagram Menu Jurnal 8. Activity Diagram Menu Laporan

Gambar III.13 Activity Diagram Menu Laporan

(18)

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

Gambar III.14

Entity Relationship Diagram Pembelian Tunai 3.4.2. Logical Record Structure (LRS)

Gambar III.15

Logical Record Structure Pembelian Tunai

(19)

3.4.3. Spesifikasi File

1. Spesifikasi File Data Barang

Nama Database : pembelian_tunai Nama File : barang

Tipe File : File Master Akses File : Random Panjang Record : 64 Karakter Field Key : kode_barang Software : MySQL

Tabel III.9

Spesifikasi File Data Barang

No Elemen Data Akronim Tipe Panjang Keterangan 1 Kode Barang kode_barang Char 5 Primary Key 2 Nama Barang nama_barang Varchar 25

3 Jenis Barang jenis_barang Varchar 20 4 Harga Barang harga_barang Integer 11 5 Jumlah jumlah Integer 3

2. Spesifikasi File Data Supplier Nama Database : pembelian_tunai Nama File : supplier

Tipe File : File Master Akses File : Random Panjang Record : 72 Karakter Field Key : kode_supplier Software : MySQL

(20)

Tabel III.10

Spesifikasi File Data Supplier

No Elemen Data Akronim Tipe Panjang Keterangan 1 Kode Supplier kode_supplier Char 5 Primary Key 2 Nama Supplier nama_supplier Varchar 25

3 Nomer Telpon no_telpon Varchar 12

4 Alamat alamat Varchar 30

3. Spesifikasi File Data User

Nama Database : pembelian_tunai Nama File : user

Tipe File : File Master Akses File : Random Panjang Record : 65 Karakter Field Key : id_user Software : MySQL

Tabel III. 11

Spesifikasi File Data User

No Elemen Data Akronim Tipe Panjang Keterangan

1 ID User id_user Char 5 Primary Key

2 Nama User nama_user Varchar 25 3 Password User password Char 10 4 Hak Akses User hak_akses Varchar 25

4. Spesifikasi File Data Akun

Nama Database : pembelian_tunai Nama File : akun

Tipe File : File Master Akses File : Random Panjang Record : 66 Karakter

(21)

Field Key : kode_akun Software : MySQL

Tabel III.12

Spesifikasi File Data Akun

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Akun kode_akun Char 5 Primary Key

2 Nama Akun nama_akun Varchar 25 3 Jenis Akun jenis_akun Varchar 30 4 Saldo Normal Akun saldo_normal Varchar 6

5. Spesifikasi File Data Pembelian Nama Database : pembelian_tunai Nama File : pembelian Tipe File : File Transaksi Akses File : Random Panjang Record : 32 Karakter Field Key : no_pembelian Software : MySQL

Tabel III.13

Spesifikasi File Data Pembelian

No Elemen Data Akronim Tipe Panjang Keterangan 1 Nomor Pembelian no_pembelian Char 11 Primary Key 2 Tanggal Pembelian tgl_pembelian Date

3 Kode Supplier kode_supplier Char 5 Foreig Key

4 ID User id_user Char 5 Foreign Key

5 Total Pembelian total Integer 11

6. Spesifikasi File Detail Pembelian Nama Database : pembelian_tunai Nama File : detail_pembelian Tipe File : File Transaksi

(22)

Akses File : Random Panjang Record : 43 Karakter Field Key : -

Software : MySQL

Table III.14

Spesifikasi File Detail Pembelian

No Elemen Data Akronim Tipe Panjang Keterangan 1 Nomor Pembelian no_pembelian Char 5 Foreign Key 2 Kode Barang kode_barang Char 5 Foreign Key 3 Harga Barang harga Integer 11

4 Sub Total sub_total Integer 11 5 Jumlah Beli jumlahbeli Integer 11

7. Spesifikasi File Data Jurnal

Nama Database : pembelian_tunai Nama File : jurnal

Tipe File : File Transaksi Akses File : Random Panjang Record : 40 Karakter Field Key : no_jurnal Software : MySQL

Tabel III.15

Spesifikasi File Data Jurnal

No Elemet Data Akronim Tipe Panjang Keterangan 1 Nomor Jurnal no_jurnal Char 5 Primary Key 2 Tanggal Jurnal tgl_jurnal Date

3 Keterangan keterangan Varchar 30

4 ID User id_user Char 5 Foreign Key

(23)

8. Spesifikasi File Detail Jurnal Nama Database : pembelian_tunai Nama File : detail_jurnal Tipe File : File Transaksi Akses File : Random Panjang Record : 32 Karakter Field Key : -

Software : MySQL

Tabel III.16

Spesifikasi File Detail Jurnal

No Elemen Data Akronim Tipe Panjang Keterangan 1 Nomor Jurnal no_jurnal Char 5 Foreign Key 2 Kode Akun kode_akun Char 5 Foreign Key 3 Saldo Debet debet Integer 11

4 Saldo Kredit kredit Integer 11

(24)

3.4.4. Class Diagram

Gambar III.16

Class Diagram Pembelian Tunai

class Package1

User - hak_akses: varchar - id_user: char - nama_user: varchar - password: char + hapus(): void + simpan(): void + tambah(): void + ubah(): void

Barang - harga_barang: int - jenis_barang: varchar - jumlah: int - kode_barang: char - nama_barang: varchar + cari(): void + hapus(): void + simpan(): void + tambah(): void + ubah(): void Supplier

- alamat: varchar - kode_supplier: char - nama_supplier: varchar - no_telpon: varchar + cari(): void + hapus(): void + simpan(): void + tambah(): void + ubah(): void

Akun - jenis_akun: varchar - kode_akun: char - nama_akun: varchar - saldo_normal: varchar + cari(): void + hapus(): void + simpan(): void + tambah(): void + ubah(): void

Pembelian - id_user: char - kode_supplier: char - no_pembelian: char - tgl_pembelian: date - total: int + tambah(): void

Detail Pembelian - harga: int - jumlahbeli: int - kode_barang: char - no_pembelian: char - sub_total: int + batal(): void + simpan(): void

Jurnal - id_user: char - keterangan: varchar - no_jurnal: char - tgl_jurnal: date + tambah(): void

Detail Jurnal - debet: int - kode_akun: char - kredit: int - no_jurnal: char + batal(): void + simpan(): void

(25)

3.4.5. Sequence Diagram

1. Sequence Diagram Data Barang

Gambar III.17

Sequence Diagram Data Barang

sd Sequence Diagram Data Barang

Admin

Form Barang Control Barang Barang

alt Ubah Data Barang

alt Hapus Data Barang

[Klik Tambah]:

btnubahActionPerformed()

Kode Barang()

btnhapusActionPerformed() [Ubah Data Barang Baru]:

verifikasi noAuto()

[Pilih Barang]:

[Klik Hapus]:

[Klik Simpan]:

[Tampil Data Barang]:

[Pilih Barang]:

[Input Data Barang]:

Result cariKodeBarang() btntambahActionPerformed()

simpan data() btnsimpanActionPerformed()

[Klik Ubah]:

[Tampil Kode Barang]:

[Klik Simpan]:

tambah data barang()

hapusBarang() btnsimpanActionPerformed()

cariKodeBarang()

(26)

2. Sequence Diagram Pembelian

Gambar III.18 Sequence Diagram Pembelian Tunai 3.4.6. Component Diagram

Gambar III.19 Component Diagram Pembelian Tunai

sd Sequence Diagram Pembelian

Admin

Form Pembelian Control Pembelian Barang Supplier Pembelian Detail Pembelian

verifikasi noAuto()

[Input Jumlah]:

[Tampil Data Barang]:

tambahDetailPembelian() cariKodeBarang()

[Tampil No Pembelian]:

set daftarPembelian() [Input Kode Barang]:

btnsimpanActionPerformed() [Klik Simpan]:

cmbsupplierItemStateChanged()

cariKodeSupplier() [Pilih Supplier]:

KodeBarang() btntambahActionPerformed()

textKode()

No Pembelian()

tambahPembelian() [Input Data Pembelian]:

getDataBarang() [Klik Tambah]:

cmp Component Diagram

Aplikasi Pem belian Tunai

Barang Pem belian

Supplier

User Jurnal

Akun

(27)

3.4.7. Deployment Diagram

Gambar III.20 Deployment Diagram Pembelian Tunai 3.4.8. User Interface

1. Form Menu Utama

Gambar III.21 Form Menu Utama

deployment Deployment Diagram Pembelian

«device»

database

<<database>>

pembelian_tunai

<<DBMS>>

MySQL Main

<<Aplication>>

Pembelian Tunai

«device»

Java Runtime Environment

(28)

2. Form Log In

Gambar III.22 Form Log In

3. Form Data Barang

Gambar III.23 Form Data Barang

(29)

4. Form Data User

Gambar III.24 Form Data User 5. Form Data Supplier

Gambar III.25 Form Data Supplier

(30)

6. Form Data Akun

Gambar III.26 Form Data Akun 7. Form Cari Barang

Gambar III.27 Form Cari Barang

(31)

8. Form Cari Akun

Gambar III.28 Form Cari Akun 9. Form Pembelian

Gambar III.29 Form Data Pembelian

(32)

Gambar III.30 Form Input Pembelian 10. Form Jurnal

Gambar III.31 Form Data Jurnal

(33)

Gambar III.32 Form Input Jurnal 11. Form Cari Data Pembelian

Gambar III.33 Form Cari Data Pembelian

(34)

12. Form Laporan

Gambar III.34 Form Laporan

3.5. Implementasi 3.5.1. Code Generation

1. Code Generation Form Pembelian package forms;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Toolkit;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.text.DateFormat;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

(35)

import java.util.List;

import java.util.ListIterator;

import javax.swing.DefaultCellEditor;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

import model.DetailPembelian;

import model.Pembelian;

import model.Supplier;

import model.Barang;

import pembeliantunai.Pembeliantunai;

public class FormPembelian extends javax.swing.JFrame { String NoPembelian = "";

String Status = "";

int total = 0;

int row = -1;

DetailPembelian detailpembelian = new DetailPembelian();

Pembelian pembelian = new Pembelian();

Supplier supplier = new Supplier();

Barang barang = new Barang();

DefaultComboBoxModel box = null;

DefaultTableModel model1, model2;

TableColumn cKode, cJumlah;

JTextField textKode = new JTextField();

JTextField textJumlah = new JTextField();

NumberFormat nf = new DecimalFormat("#");

public FormPembelian() { initComponents();

Toolkit tk = Toolkit.getDefaultToolkit();

Dimension d = tk.getScreenSize();

int x, y;

x = (int) ((d.getWidth() - getSize().width) / 2);

y = (int) ((d.getHeight() - getSize().height) / 2);

box = (DefaultComboBoxModel) cmbsupplier.getModel();

setLocation(x, y);

model1 = (DefaultTableModel) tblinputpembelian.getModel();

model2 = (DefaultTableModel) tbldatapembelian.getModel();

textKode.setFont(new Font("Georgia", 0, 15));

textJumlah.setFont(new Font("Georgia", 0, 15));

tblinputpembelian.getTableHeader().setFont(new Font("Georgia", 1, 15));

tblinputpembelian.setRowHeight(30);

(36)

tbldatapembelian.getTableHeader().setFont(new Font("Georgia", 1, 15));

tbldatapembelian.setRowHeight(30);

cKode = (TableColumn) tblinputpembelian.getColumnModel().getColumn(0);

cJumlah = (TableColumn) tblinputpembelian.getColumnModel().getColumn(3);

cKode.setCellEditor(new DefaultCellEditor(textKode));

cJumlah.setCellEditor(new DefaultCellEditor(textJumlah));

textKode.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_ENTER) { row = tblinputpembelian.getSelectedRow();

textKode.setText(textKode.getText().toUpperCase());

if (!"".equals(textKode.getText())) {

getDataBarang(textKode.getText(), row);

for (int i = 0; i < model1.getRowCount() - 1; i++) { String kode = model1.getValueAt(i, 0).toString();

if (kode.equalsIgnoreCase(textKode.getText()) && row != i) { model1.setValueAt(null, row, 0);

model1.setValueAt(null, row, 1);

model1.setValueAt(null, row, 2);

model1.setValueAt(null, row, 3);

model1.setValueAt(null, row, 4);

textKode.setText(null);

JOptionPane.showMessageDialog(rootPane, "Data sudah ada!",

"Info", JOptionPane.ERROR_MESSAGE);

break; }}}}

if (e.getKeyCode() == KeyEvent.VK_F1) {

textKode.setText(new FormCariBarang(null, true).cariBarang());

row = tblinputpembelian.getSelectedRow();

textKode.setText(textKode.getText().toUpperCase());

if (!"".equals(textKode.getText())) {

getDataBarang(textKode.getText(), row);

for (int i = 0; i < model1.getRowCount() - 1; i++) { String kode = model1.getValueAt(i, 0).toString();

if (kode.equalsIgnoreCase(textKode.getText()) && row != i) { model1.setValueAt(null, row, 0);

model1.setValueAt(null, row, 1);

model1.setValueAt(null, row, 2);

model1.setValueAt(null, row, 3);

model1.setValueAt(null, row, 4);

textKode.setText(null);

JOptionPane.showMessageDialog(rootPane, "Data sudah ada!",

"Info", JOptionPane.ERROR_MESSAGE);

(37)

break; }}}}}});

textJumlah.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) {

if (!Character.isDigit(e.getKeyChar()) && e.getKeyChar() !=

KeyEvent.VK_BACK_SPACE && e.getKeyChar() != KeyEvent.VK_DELETE) { textJumlah.setEditable(false);

JOptionPane.showMessageDialog(rootPane, "Input hanya boleh berupa angka!", "Eror", JOptionPane.ERROR_MESSAGE); }

else { textJumlah.setEditable(true);

try {

textJumlah.setText(String.format("%d", Integer.parseInt(textJumlah.getText())));

} catch (Exception ex) {}

if (textJumlah.getText().equals("")) { textJumlah.setText("0");}}

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() ==

KeyEvent.VK_TAB) { try {

row = tblinputpembelian.getSelectedRow();

intsubtotal=Integer.parseInt(textJumlah.getText())*

Integer.parseInt(model1.getValueAt(row, 2).toString());

model1.setValueAt(subtotal, row, 4);

hitungTotal();

if (textJumlah.getText().equals("")) { textJumlah.setText("1");}

} catch (Exception ex) { }} }});

tblinputpembelian.setSelectionBackground(Color.lightGray);

aktif();

DateFormat df = new SimpleDateFormat("dd/MM/yyy");

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

txttanggal.setText(df.format(dt));

daftarSupplier();

tabs.setSelectedIndex(1);

daftarPembelian();

this.NoPembelian = "";

aktif();}

private void aktif() {

btnbatal.setEnabled(!"".equals(Status));

btnsimpan.setEnabled(!"".equals(Status));

btntambah.setEnabled("".equals(Status));

tabs.setEnabledAt(0, !"".equals(Status));

tabs.setEnabledAt(1, "".equals(Status)); }

(38)

private void bersihForm() {

cmbsupplier.setSelectedItem("");

txtnopembelian.setText("");

model1.setRowCount(0);

tblinputpembelian.repaint(); } private void daftarSupplier() {

List<Supplier> listSupplier = supplier.daftarsupplier();

ListIterator li = listSupplier.listIterator();

box.removeAllElements();

cmbsupplier.addItem("");

while (li.hasNext()) {

Supplier spl = (Supplier) li.next();

cmbsupplier.addItem(spl.getkode_supplier()+"-" + spl.getnama_supplier());}}

private void getDataBarang(String kode, int row) { barang = barang.cariKodeBarang(kode);

if (barang.getnama_barang() == null) {

JOptionPane.showMessageDialog(rootPane, "Data barang yang anda cari tidak ada!", "Eror", JOptionPane.ERROR_MESSAGE);

model1.setValueAt(null, row, 0);

model1.setValueAt(null, row, 1);

model1.setValueAt(null, row, 2);

model1.setValueAt(null, row, 3);

model1.setValueAt(null, row, 4);

} else {

model1.setValueAt(kode.toUpperCase(), row, 0);

model1.setValueAt(barang.getnama_barang(), row, 1);

model1.setValueAt(barang.getharga_barang(), row, 2); }}

private void daftarPembelian() {

List<Pembelian> lp = pembelian.daftarPembelian();

ListIterator li = lp.listIterator();

model2.setRowCount(0);

tbldatapembelian.repaint();

String No = "";

Object[] data = null;

while (li.hasNext()) {

pembelian = (Pembelian) li.next();

supplier = supplier.cariKodeSupplier(pembelian.getkode_supplier());

List<DetailPembelian> ld =

detailpembelian.daftarDetailPembelian(pembelian.getno_pembelian());

ListIterator<DetailPembelian> lid = ld.listIterator();

while (lid.hasNext()) {

detailpembelian = lid.next();

barang = barang.cariKodeBarang(detailpembelian.getkode_barang());

(39)

if (!No.equalsIgnoreCase(detailpembelian.getno_pembelian())) { Object[] jdata = {

pembelian.getno_pembelian(), pembelian.gettgl_pembelian(), supplier.getnama_supplier(), detailpembelian.getkode_barang(), barang.getnama_barang(),

barang.getharga_barang(), detailpembelian.getjumlahbeli(), detailpembelian.getsub_total()};

data = jdata;

} else {

Object[] jdata = { "",

"", "",

detailpembelian.getkode_barang(), barang.getnama_barang(),

barang.getharga_barang(), detailpembelian.getjumlahbeli(), detailpembelian.getsub_total() };

data = jdata; } model2.addRow(data);

No = pembelian.getno_pembelian();}}}

private void daftarPembelian(Date tgl1, Date tgl2) {

List<Pembelian>lp=pembelian.cariTanggalPembelian(new java.sql.Date(tgl1.getTime()), new java.sql.Date(tgl2.getTime()));

ListIterator li = lp.listIterator();

model2.setRowCount(0);

tbldatapembelian.repaint();

String No = "";

Object[] data = null;

while (li.hasNext()) {

pembelian = (Pembelian) li.next();

supplier = supplier.cariKodeSupplier(pembelian.getkode_supplier());

List<DetailPembelian> ld =

detailpembelian.daftarDetailPembelian(pembelian.getno_pembelian());

ListIterator<DetailPembelian> lid = ld.listIterator();

while (lid.hasNext()) {

detailpembelian = lid.next();

barang = barang.cariKodeBarang(detailpembelian.getkode_barang());

if (!No.equalsIgnoreCase(pembelian.getno_pembelian())) { Object[] jdata = {

(40)

pembelian.getno_pembelian(), pembelian.gettgl_pembelian(), supplier.getnama_supplier(), detailpembelian.getkode_barang(), barang.getnama_barang(),

detailpembelian.getjumlahbeli(), detailpembelian.getsub_total()};

data = jdata;

} else {

Object[] jdata = { "",

"", "",

detailpembelian.getkode_barang(), barang.getnama_barang(),

detailpembelian.getjumlahbeli(), detailpembelian.getsub_total() };

data = jdata; } model2.addRow(data);

No = pembelian.getno_pembelian(); }} } private void hitungTotal() {

this.total = 0;

for (int i = 0; i < model1.getRowCount(); i++) { try {

this.total += Integer.parseInt(model1.getValueAt(i, 4).toString());

} catch (Exception ex) { }}

private void initComponents() { jPanel2 = new javax.swing.JPanel();

jPanel1 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel();

tabs = new javax.swing.JTabbedPane();

jPanel4 = new javax.swing.JPanel();

jLabel3 = new javax.swing.JLabel();

txtnopembelian = new javax.swing.JTextField();

jLabel1 = new javax.swing.JLabel();

txttanggal = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

cmbsupplier = new javax.swing.JComboBox<>();

jScrollPane1 = new javax.swing.JScrollPane();

tblinputpembelian = new javax.swing.JTable();

jLabel5 = new javax.swing.JLabel();

txttotal = new javax.swing.JTextField();

btnsimpan = new javax.swing.JButton();

(41)

btnbatal = new javax.swing.JButton();

jPanel5 = new javax.swing.JPanel();

jScrollPane2 = new javax.swing.JScrollPane();

tbldatapembelian = new javax.swing.JTable();

jLabel7 = new javax.swing.JLabel();

tgl1 = new com.toedter.calendar.JDateChooser();

tgl2 = new com.toedter.calendar.JDateChooser();

txtcaritransaksi = new javax.swing.JButton();

jLabel8 = new javax.swing.JLabel();

btntambah = new javax.swing.JButton();

btntutup = new javax.swing.JButton();

jPanel3 = new javax.swing.JPanel();

jLabel6 = new javax.swing.JLabel();

javax.swing.GroupLayoutjPanel2Layout=new javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN )

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

jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.Gr oupLayout.Alignment.LEADING)

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

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addGap(0, 100, Short.MAX_VALUE));

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addGap(0, 100, Short.MAX_VALUE));

jLabel2.setText("jLabel2");

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

tabs.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jLabel3.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N jLabel3.setText("No Pembelian");

jLabel1.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N jLabel1.setText("Tanggal Barang Masuk");

jLabel4.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N jLabel4.setText("Kode Supplier");

cmbsupplier.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

(42)

cmbsupplier.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cmbsupplierItemStateChanged(evt); }});

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

new Object [][] {

{null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}}, new String [] {

"Kode Barang", "Nama Barang", "Harga Barang", "Jumlah Beli",

"Subtotal"}));

tblinputpembelian.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {

tblinputpembelianMouseClicked(evt); }});

tblinputpembelian.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) {

tblinputpembelianKeyPressed(evt); }});

jScrollPane1.setViewportView(tblinputpembelian);

jLabel5.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N jLabel5.setText("Total");

btnsimpan.setBackground(new java.awt.Color(204, 204, 255));

btnsimpan.setFont(new java.awt.Font("Georgia", 0, 12)); // NOI18N btnsimpan.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/image/simpan.png"))); // NOI18N btnsimpan.setText("Simpan");

btnsimpan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnsimpanActionPerformed(evt); }});

btnbatal.setBackground(new java.awt.Color(204, 204, 255));

btnbatal.setFont(new java.awt.Font("Georgia", 0, 12)); // NOI18N btnbatal.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/image/batal.png"))); // NOI18N btnbatal.setText("Batal");

btnbatal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnbatalActionPerformed(evt); }});

javax.swing.GroupLayout jPanel4Layout = new

javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup(javax.swing.

(43)

GroupLayout.Alignment.LEADING).addGroup(jPanel4Layout.createSequentialGro up()

.addContainerGap().addGroup(jPanel4Layout.createParallelGroup(javax.swing.Grou pLayout.Alignment.LEADING).addGroup(jPanel4Layout.createSequentialGroup().a ddGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L EADING).addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE, 941,

Short.MAX_VALUE).addGroup(jPanel4Layout.createSequentialGroup().addGap(16

, 16,

16).addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.LEADING).addComponent(jLabel4).addComponent(jLabel3).addComponent(jL

abel1)).addGap(56, 56,

56).addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.LEADING).addComponent(txttanggal,

javax.swing.GroupLayout.PREFERRED_SIZE, 134,

javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtnopembelian,

javax.swing.GroupLayout.PREFERRED_SIZE, 187,

javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(cmbsupplier,

javax.swing.GroupLayout.PREFERRED_SIZE, 152,

javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(0, 0,

Short.MAX_VALUE)))

.addContainerGap()).addGroup(jPanel4Layout.createSequentialGroup().addGap(18, 18, 18).addComponent(btnsimpan) .addGap(36, 36, 36).addComponent(btnbatal,

javax.swing.GroupLayout.PREFERRED_SIZE, 101,

javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.Layo utStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jLabel5) .addGap(18, 18, 18)

.addComponent(txttotal,

javax.swing.GroupLayout.PREFERRED_SIZE, 140,

javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(24, 24, 24)))));

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ).addGroup(jPanel4Layout.createSequentialGroup()

.addGap(34, 34, 34)

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

BASELINE)

.addComponent(jLabel3)

(44)

.addComponent(txtnopembelian, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.Layo utStyle.ComponentPlacement.UNRELATED)

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

BASELINE)

.addComponent(jLabel1).addComponent(txttanggal,

javax.swing.GroupLayout.PREFERRED_SIZE, 32,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

BASELINE)

.addComponent(jLabel4) .addComponent(cmbsupplier,

javax.swing.GroupLayout.PREFERRED_SIZE, 28,

javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(27, 27, 27)

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 133,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

LEADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addGap(18, 18, 18)

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

LEADING)

.addComponent(txttotal, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel5)))

.addGroup(jPanel4Layout.createSequentialGroup()

.addGap(32, 32, 32)

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

BASELINE)

.addComponent(btnsimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnbatal, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

tabs.addTab("Input Barang Masuk", jPanel4);

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

new Object [][] {

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

(45)

{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}, {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}, {null, null, null, null, null, null, null, null}}, new String [] {

"No Pembelian", "Tanggal", "Supplier", "Kode Barang", "Nama Barang",

"Harga Barang", "Jumlah Beli", "Subtotal"}));

tbldatapembelian.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {

tbldatapembelianMouseClicked(evt); }});

jScrollPane2.setViewportView(tbldatapembelian);

jLabel7.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N jLabel7.setText("Cari Tanggal Transaksi");

txtcaritransaksi.setBackground(new java.awt.Color(204, 204, 255));

txtcaritransaksi.setFont(new java.awt.Font("Georgia", 0, 12)); // NOI18N txtcaritransaksi.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/image/cari.png"))); // NOI18N txtcaritransaksi.setText("Cari");

txtcaritransaksi.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

txtcaritransaksiActionPerformed(evt); }});

jLabel8.setFont(new java.awt.Font("Georgia", 0, 18)); // NOI18N

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

jLabel8.setText("Data Transaksi Pembelian");

javax.swing.GroupLayout jPanel5Layout = new

javax.swing.GroupLayout(jPanel5);

jPanel5.setLayout(jPanel5Layout);

jPanel5Layout.setHorizontalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addGroup(jPanel5Layout.createSequentialGroup()

.addContainerGap()

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

LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()

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

(46)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(tgl1, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tgl2, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(txtcaritransaksi,

javax.swing.GroupLayout.PREFERRED_SIZE, 85,

javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jScrollPane2,

javax.swing.GroupLayout.DEFAULT_SIZE, 941, Short.MAX_VALUE) .addComponent(jLabel8,

javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()));

jPanel5Layout.setVerticalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addGroup(jPanel5Layout.createSequentialGroup()

.addGap(23, 23, 23)

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

LEADING, false)

.addComponent(tgl2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel7,

javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(tgl1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(txtcaritransaksi,

javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE)) .addGap(59, 59, 59)

.addComponent(jLabel8) .addGap(18, 18, 18)

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE, 212,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(33, Short.MAX_VALUE)));

tabs.addTab("Data Barang Masuk", jPanel5);

(47)

btntambah.setBackground(new java.awt.Color(204, 204, 255));

btntambah.setFont(new java.awt.Font("Georgia", 0, 12)); // NOI18N btntambah.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/image/tambah.png"))); // NOI18N btntambah.setText("Tambah");

btntambah.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btntambahActionPerformed(evt); }});

btntutup.setBackground(new java.awt.Color(204, 204, 255));

btntutup.setFont(new java.awt.Font("Georgia", 0, 12)); // NOI18N btntutup.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/image/tutup.png"))); // NOI18N btntutup.setText("Tutup");

btntutup.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btntutupActionPerformed(evt); } });

jPanel3.setBackground(new java.awt.Color(102, 153, 255));

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

jLabel6.setFont(new java.awt.Font("Georgia", 1, 20)); // NOI18N

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

jLabel6.setText("Form Pembelian Barang");

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addContainerGap()));

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN) .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 38, Short.MAX_VALUE));

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

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

(48)

.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG)

.addGroup(layout.createSequentialGroup() .addGap(77, 77, 77)

.addComponent(btntambah) .addGap(32, 32, 32)

.addComponent(btntutup,

javax.swing.GroupLayout.PREFERRED_SIZE, 101,

javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(21, 21, 21)

.addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, 966, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(22, Short.MAX_VALUE)) );

layout.setVerticalGroup(

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

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

javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(26, 26, 26)

.addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, 427, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(31, 31, 31)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASEL INE)

.addComponent(btntambah,

javax.swing.GroupLayout.PREFERRED_SIZE, 35,

javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btntutup,

javax.swing.GroupLayout.PREFERRED_SIZE, 35,

javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(29, Short.MAX_VALUE)) );

pack();

}// </editor-fold>

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

(49)

// TODO add your handling code here:

if (evt.getKeyCode() == KeyEvent.VK_DELETE) { if (!"".equals(NoPembelian)) {

row = tblinputpembelian.getSelectedRow();

model1.removeRow(row);

tblinputpembelian.repaint();

if (model1.getRowCount() == 0) { model1.setRowCount(1); }}}

if (evt.getKeyCode() == KeyEvent.VK_TAB) { try {

double subtotal =

Double.parseDouble(model1.getValueAt(model1.getRowCount() - 1, 4).toString());

if (subtotal > 0) {

model1.setRowCount(model1.getRowCount() + 1);

tblinputpembelian.repaint();

}} catch (Exception ex) {} }}

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

try {

row = tblinputpembelian.getSelectedRow();

NoPembelian = (String) model1.getValueAt(row, 0);

} catch (Exception e) { }}

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

Status = "";

txtnopembelian.setText("");

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

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

txttanggal.setText(df.format(dt));

tabs.setSelectedIndex(1);

bersihForm();

aktif();}

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

this.Status = "Tambah";

bersihForm();

txtnopembelian.setText(pembelian.noAuto());

aktif();

tabs.setSelectedIndex(0);

model1.setRowCount(1);

this.NoPembelian = ""; }

(50)

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

if ("".equals(cmbsupplier.getSelectedItem().toString())) {

JOptionPane.showMessageDialog(rootPane, "Supplier belum dipilih",

"Galat", JOptionPane.ERROR_MESSAGE);

return; }

if (model1.getRowCount() == 0) {

JOptionPane.showMessageDialog(rootPane, "Belum ada barang yang dipilih",

"Galat", JOptionPane.ERROR_MESSAGE);

return;

} else { try {

String Kode = model1.getValueAt(0, 1).toString();

if (Kode == null) {

JOptionPane.showMessageDialog(rootPane, "Belum ada barang yang dipilih", "Galat", JOptionPane.ERROR_MESSAGE);

return; }

} catch (Exception e) {

JOptionPane.showMessageDialog(rootPane, "Belum ada barang yang dipilih", "Galat", JOptionPane.ERROR_MESSAGE);

return; }}

pembelian.setno_pembelian(txtnopembelian.getText());

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

java.sql.Date sdate = new java.sql.Date(dt.getTime());

pembelian.settgl_pembelian(sdate);

String[] Sup = cmbsupplier.getSelectedItem().toString().split("-");

pembelian.setkode_supplier(Sup[0]);

pembelian.settotal(Integer.parseInt(txttotal.getText()));

pembelian.setId_user(Pembeliantunai.id_user);

pembelian.tambahPembelian();

for (int i = 0; i < model1.getRowCount(); i++) { try {

String Kode = (String) model1.getValueAt(i, 0);

int Jumlah = Integer.parseInt(model1.getValueAt(i, 3).toString());

int Harga = Integer.parseInt(model1.getValueAt(i, 2).toString());

int Subtotal = Integer.parseInt(model1.getValueAt(i, 2).toString()) * Integer.parseInt(model1.getValueAt(i, 3).toString());

if (Jumlah > 0) {

detailpembelian.setno_pembelian(txtnopembelian.getText());

detailpembelian.setkode_barang(Kode);

detailpembelian.setjumlahbeli(Jumlah);

detailpembelian.setharga(Harga);

detailpembelian.setsub_total(Subtotal);

Gambar

Gambar III.2 Activity Diagram Proses Pemesanan Barang  2.  Activity Diagram Proses Penerimaan Barang dan Pembayaran
Tabel III.4
Tabel III.6
Tabel III.8
+7

Referensi

Dokumen terkait