• Tidak ada hasil yang ditemukan

BAB III PEMBAHASAN. servis mobil dan menyediakan segala macam accesories mobil. SKN MOTOR

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PEMBAHASAN. servis mobil dan menyediakan segala macam accesories mobil. SKN MOTOR"

Copied!
65
0
0

Teks penuh

(1)

10 3.1. Tinjauan Perusahaan

3.1.1. Sejarah Perusahaan

SKN MOTOR adalah perusahaan yang bergerak dibidang pelayanan jasa servis mobil dan menyediakan segala macam accesories mobil. SKN MOTOR didirikan pada tahun 2009, yang berlokasi di JL PAHLAWAN NO 180 MERTOKONDO KEBUMEN Adapun ditengah maraknya kebutuhan masyarakat akan pelayanan jasa servis mobil, maka SKN bengkel dan accesories mobil turut hadir untuk memberikan pelayanan yang terbaik dan memuaskan bagi masyarakat. 3.1.2. Struktur Organisasi Perusahaan

Pemilik toko

Kepala Toko

Mekanik Kasir

Sumber : Struktur Organisasi SKN Motor (2020) Gambar III.1.

(2)

Adapun fungsi dari masing-masing bagian adalah sebagai berikut: 1. Pemilik Bengkel

a. Bertanggung jawab secara penuh terhadap kegiatan yang terjadi pada bengkel.

b. Memantau jalannya bengkel.

c. Memberikan kebijakan-kebijakan untuk bengkel. 2. Kepala Toko

a. Menjaga dan meningkatkan mutu pelayanan bengkel.

b. Mengevaluasi sistem dan prosedur bengkel.

c. Pembinaan dan pengembangan personil bengkel.

d. Bertanggung jawab terhadap keluar masuknya uang dan pengelolaan keuangan.

e. Mengawasi dan mengatur keuangan dan akuntansi bengkel. 3. Mekanik

a. Melaksanakan perbaikan kendaraan sesuai perintah atasan.

b. Melakukan pemeliharaan segala macam mesin agar tidak mudah rusak. 4. Kasir

a. Melayani customer yang akan melakukan servis maupun yang akan membeli accesories mobil

b. Menerima semua pembayaran dari customer yang telah melakukan service.

c. Bertanggung jawab terhadap keluar masuknya barang

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

1. Proses Penerimaan Kas Atas Penjualan

Konsumen datang langsung ke bengkel dan memberitahukan barang yang dibutuhkan. Kasir mengambilkan barang sesuai deskripsi konsumen. Kasir membuatkan nota penjualan. Kasir memberikan nota penjualan kepada

(3)

sesuai dengan jumlah pada nota penjualan. Kasir menerima Pembayaran. 2. Proses Penerimaan Kas Atas Jasa Service

Konsumen datang langsung ke bengkel dengan membawa kendaraan. Mekanik mengecek kendaraan. Mekanik meminta barang yang dibutuhkan untuk servis kendaraan konsumen. Kasir mengambilkan barang yang dibutuhkan mekanik. Mekanik melakukan servis pada kendaraan konsumen. Jika sudah selesai Kasir membuat nota penjualan dengan tambahan biaya servis. Kasir memberikan nota penjualan kepada konsumen. Konsumen menerima Nota Penjualan. Konsumen membayar sesuai dengan jumlah pada nota penjualan. Kasir menerima Pembayaran.

3. Proses Pembuatan Laporan

Setiap akhir bulan, kasir mengumpulkan nota penjualan dan menghitung penerimaan kas dari keseluruhan transaksi pada bulan tersebut. Kasir menyerahkan laporan penerimaaan kas atas penjualan barang dan servis kepada pemilik SKN Motor. Pemilik SKN Motor menerima laporan penerimaan kas tersebut dalam periode 1 bulan.

(4)

1. Proses Penerimaan Kas Atas Penjualan Proses Penerimaan Kas Atas Penjualan

Konsumen Kasir Ph as e START Datang Langsung Ke Bengkel Memberitahukan Barang Yang Dibutuhkan Mengambilkan Barang Sesuai Deskripsi Konsumen Membuatkan Nota Penjualan Memberikan Nota Penjualan Menerima Nota Penjualan Membayar Sesuai Nota Penjualan Menerima Pembayaran END Gambar III.2.

(5)

Proses Penerimaan Kas Atas Jasa Servis

Konsumen Mekanik Kasir

P ha se START Datang Langsung Ke Bengkel Dengan Membawa Kendaraan Mengecek Kendaraan Meminta Barang Yang Dibutuhkan Untuk servis Mengambilkan Barang Yang Dibutuhkan Melakukan Servis Servis Selesai Membuatkan Nota Penjualan Dengan Tambahan Biaya Servis END Memberikan Nota Penjualan Menerima Nota Penjualan Membayar Sesuai

Nota Penjualan PembayaranMenerima

Gambar III.3.

(6)

Proses Pembuatan Laporan Kasir Pemilik Ph as e START Mengumpulkan Nota Penjualan Menghitung Penerimaan Kas Dari Keseluruhan Transaksi

Menyerahkan Laporan Penerimaan Kas

Atas Penjualan Dan Jasa Servis

Menerima Laporan Penerimaan Kas

END

Gambar III.4.

(7)

1. Nama Dokumen : Nota Penerimaan Kas Atas Jasa Servis Fungsi : Bukti Peneriaan Kas

Sumber : Konsumen

Tujuan : Kasir

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Terjadi Transaksi Penerimaan Jasa Servis 3.2.4. Dokumen Keluaran

1. Nama Dokumen : Nota Penjualan

Fungsi : Bukti Transaksi Penjualan

Sumber : Kasir

Tujuan : Konsumen

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Terjadi Transaksi Penjualan 2. Nama Dokumen : Laporan Penerimaan Kas

Fungsi : Sebagai Laporan Bulanan Kas Yang Diterima

Sumber : Kasir

Tujuan : Pemilik

Media : Kertas

Jumlah : 1 Lembar

(8)

Permasalahan yang sering muncul pada sistem berjalan yang ada pada SKN Motor adalah sebagai berikut:

1. Proses penerimaan kas atas penjualan maupun servis masih dicatat dan dibukukan dalam buku besar sehingga kurang terjamin keamanan suatu data. 2. Laporan yang disusun masih menggunakan media kertas sehingga perlu

ruang dalam penyimpanan. Dokumen mudah hilang atau rusak serta penyimpanan data yang belum terstruktur dengan baik memakan kapasitas ruang data secara fisik.

3.2.6. Pemecahan Masalah

Berdasarkan permasalahan tersebut, penulis mencoba memberikan beberapa

alternatif pemecahan masalah, diantaranya sebagai berikut:

1. Disarankan untuk menggunakan sistem yang sudah terkomputerisasi agar data dapat terjamin keamananya. Selain itu sistem baru diharpkan dapat meminimalisir kesalahan dalam pencatatan penerimaan kas atas penjualan maupun servis sehingga dapat mempermudah dalam menysuun laporan. 2. Selain bentuk dokumen, disarankan juga menggunakan media penyimpanan

yang lebih terorganisir. Penulis menyarankan menggunakan media database sebagai tempat penyimpanan data agar terhindar dari resiko hilang ataupun rusak.

(9)

Penulis mendokumentasikannya melalui Analisis Kebutuhan, Use Case

Diagram, dan Activity Diagram sesuai dengan tinjauan kasus diatas.

3.3.1. Analisa Kebutuhan A. Kasir

A1. Kasir Login

A2. Kasir Mengakses Menu Utama A2.1. Kasir Mengakses Menu Master

a) Kasir Mengelola Data Pengguna b) Kasir Mengelola Data Barang c) Kasir Mengelola Data Akun A.2.2. Kasir Mengakses Menu Transaksi

a) Kasir Mengelola Penjualan b) Kasir Mengelola Jurnal A.3. Kasir Logout

P. Pemilik P1. Pemilik Login

P2. Pemilik Mengakses Menu Utama P.2.1. Pemilik Mengakses Menu Laporan

a) Pemilik Mengakses Laporan Penerimaan Kas P.3. Pemilik Logout

(10)

A. Use Case Diagram Kasir

Gambar III.5.

Use Case Diagram Kasir

Tabel III.1.

Deskripsi Use Case Diagram Kasir

Use Case Narative Kasir

Tujuan

Kasir dapat melakukan login, mengakses menu utama, mengakses menu master, mengakses menu transaksi dan logout.

Deskripsi

Sistem ini memungkinkan aktor untuk mengelola menu master mulai dari submenu pengguna, pasien, barang dan akun

Skenario Utama

Aktor Kasir

Kondisi awal Aktor melakukan login dan masuk ke dalam system informasi penerimaan kas

Aksi Aktor Reaksi Sistem

1. Aktor memilih menu master

2. Aktor memilih menu transaksi

Sistem akan menampilkan form submenu pengguna Sistem akan menampilkan form submenu barang Sistem akan menampilkan form submenu akun Sistem akan menampilkan form submenu penjualan Sistem akan menampilkan form submenu jurnal Kondisi Akhir Jika perintah sesuai maka akan masuk kedalam

(11)

B. Use Case Diagram Pemilik

Gambar III.6.

Use Case Diagram Pemilik

Tabel III.2.

Deskripsi Use Case Diagram Pemilik

Use Case Narative Pemilik

Tujuan Pemilik dapat melakukan login, mengakses menu utama, mengakses menu laporan dan logout. Deskripsi Sistem ini memungkinkan aktor untuk mengelola

menu laporan dan melihat laporan penerimaan kas Skenario Utama

Aktor Kasir

Kondisi awal Aktor melakukan login dan masuk ke dalam system informasi penerimaan kas

Aksi Aktor Reaksi Sistem

1. Aktor memilih menu laporan

Sistem akan menampilkan form submenu laporan penerimaan kas

Kondisi Akhir Jika perintah sesuai maka akan masuk kedalam aplikasi dan aktor dapat melakukan aktivitas sistem.

(12)

1. Activity Diagram Menu Login Activity Diagram Menu Login

Sistem Kasir START Melakukan Login Masukkan Kode User Masukkan Password

Cek Kode User dan Password Kode Atau Password Salah [VALID?] END [TIDAK VALID] Mengakses Menu Utama Gambar III.7.

(13)

Activity Diagram Menu Utama Sistem Kasir P has e START Mengakses Menu Utama Menampilkan Menu Utama Menu Logout Menu Master Keluar Sistem END Menu Transaksi Gambar III.8.

(14)

3. Activity Diagram Submenu Pengguna

Activity Diagram Menu Master Submenu Pengguna

Sistem Kasir P ha se START

Mengklik Menu Master Submenu Pengguna

Menampilkan Form Pengguna

Tampil Form Input Proses Ubah Data UBAH

HAPUS

END

Tidak Ya

TAMBAH CARI NAMA

PENGGUNA

Input Data Yang Ingin diubah Tampil Info Hapus Proses Hapus data Klik Simpan Proses simpan Data Textbox Kembali Bersih Input Kode Pengguna Nama Pengguna Password Level Klik Batal UBAH KELUAR Data Berhasil Diubah Gambar III.9.

(15)

4. Activity Diagram Submenu Barang

Activity Diagram Menu Master Submenu Barang

Sistem Kasir P ha se START

Mengklik Menu Master Submenu

Barang Menampilkan Form Barang

Tampil Form Input Proses Ubah Data UBAH

HAPUS

END

Tidak Ya

TAMBAH CARI NAMA

PENGGUNA

Input Data Yang Ingin diubah Tampil Info Hapus Proses Hapus data Klik Simpan Proses simpan Data Textbox Kembali Bersih Input Kode Barang Nama Barang Jenis Harga Stok Klik Batal UBAH KELUAR Data Berhasil Diubah Gambar III.10.

(16)

5. Activity Diagram Submenu Akun

Activity Diagram Menu Master Submenu Akun

Sistem Kasir P ha se START

Mengklik Menu Master Submenu

Akun Menampilkan Form Akun

Tampil Form Input Proses Ubah Data UBAH

HAPUS

END

Tidak Ya

TAMBAH CARI NAMA

PENGGUNA

Input Data Yang Ingin diubah Tampil Info Hapus Proses Hapus data Klik Simpan Proses simpan Data Textbox Kembali Bersih Input Kode Akun Nama Akun Saldo Normal Klik Batal UBAH KELUAR Data Berhasil Diubah Gambar III.11.

(17)

6. Activity Diagram Submenu Penjualan

Activity Diagram Menu Transaksi Submenu Penjualan

Sistem Kasir P ha se START

Mengklik Menu Transaksi Penjualan

Menampilkan Form Penjualan

Tampil Form Input

END TAMBAH Klik Simpan Proses simpan Data Textbox Kembali Bersih Input Kode Penjualan Tanggal Nama Pengguna Kode Barang Harga Jumlah Beli Subtotal Uang Bayar Uang Kembali Klik Batal KELUAR Gambar III.12.

(18)

7. Activity Diagram Submenu Jurnal

Activity Diagram Menu Transaksi Submenu Jurnal

Sistem Kasir P ha s e START

Mengklik Menu Transaksi Jurnal Menampilkan Form Jurnal

Tampil Form Input

END TAMBAH Klik Simpan Proses simpan Data Textbox Kembali Bersih Input Kode Jurnal Tanggal Keterangan Kode Pengguna Kode Akun Nama Akun Debet Kredit Klik Batal KELUAR Gambar III.13.

(19)

8. Activity Diagram Laporan Penjualan

Activity Diagram Menu Laporan Penjualan

Sistem Pemilik P ha se START

Mengklik Menu Laporan Penjualan Menampilkan Laporan Penjualan Menutup Menu Laporan Klik Cetak END

Laporan Per Periode Laporan Perbulan

Proses Mencetak Data Klik Simpan Proses simpan Data Menampilkan Laporan Gambar III.14.

(20)

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

Gambar III.15.

(21)

3.4.2. Logical Record Structure (LRS)

Gambar III.16.

(22)

Berikut spesifikasi file yang dibuatkan untuk menguraikan rancangan tabel yang akan digunakan dalam sistem informasi penerimaan kas.

1. Spesifikasi File Pengguna Nama File : pengguna Akronim : db_penerimaan

Fungsi : sebagai penyimpan data pengguna Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 63 Byte

Kunci field : kode_pengguna

Software : MySQL

Tabel III.3.

Spesifikasi File Pengguna

No Elemen Data Nama Field Type Size Keterangan 1 Kode Pengguna kode_pengguna Varchar 8 Primary Key

2 Nama Pengguna nama_pengguna Varchar 15

3 Password password Varchar 30

(23)

Nama File : barang

Akronim : db_penerimaan

Fungsi : sebagai penyimpan data barang Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 90 Byte Kunci field : kode_barang

Software : MySQL

Tabel III.4. Spesifikasi File Barang

No Elemen Data Nama Field Type Size Keterangan

1 Kode Barang kode_barang Varchar 8 Primary Key

2 Nama Barang nama_barang Varchar 30

3 Jenis jenis Varchar 30

4 Harga harga Int 11

(24)

Nama File : akun

Akronim : db_penerimaan

Fungsi : sebagai penyimpan data akun Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 44 Byte Kunci field : kode_akun

Software : MySQL

Tabel III.5. Spesifikasi File Akun

No Elemen Data Nama Field Type Size Keterangan

1 Kode Akun kode_akun Varchar 8 Primary Key

2 Nama Akun nama_akun Varchar 30

3 Saldo Normal saldo_normal Varchar 6

(25)

Nama File : penjualan Akronim : db_penerimaan

Fungsi : sebagai penyimpan data penjualan Tipe File : File Transaksi

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 64 Byte

Kunci field : kode_penjualan

Software : MySQL

Tabel III.6.

Spesifikasi File Penjualan

No Elemen Data Nama Field Type Size Keterangan 1 Kode Penjualan kode_penjualan Varchar 15 Primary Key

2 Tanggal tanggal Varchar 30

3 Total Bayar totalbayar Int 11

(26)

Nama File : penjualan Akronim : db_penerimaan

Fungsi : sebagai penyimpan data penjualan Tipe File : File Transaksi

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 45 Byte

Kunci field : kode_penjualan

Software : MySQL

Tabel III.7.

Spesifikasi File Detail Penjualan

No Elemen Data Nama Field Type Size Keterangan 1 Kode Penjualan kode_penjualan Varchar 15 Primary Key

2 Kode Barang kode_barang Varchar 8 Foreign Key

3 Jumlah Beli jumlahbeli Int 11

(27)

Nama File : jurnal

Akronim : db_penerimaan

Fungsi : sebagai penyimpan data jurnal Tipe File : File Transaksi

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 83 Byte Kunci field : kode_jurnal

Software : MySQL

Tabel III.8. Spesifikasi File Jurnal

No Elemen Data Nama Field Type Size Keterangan

1 Kode Jurnal kode_jurnal Varchar 15 Primary Key

2 Tanggal Tanggal Varchar 30

3 Keterangan Keterangan Varchar 30

(28)

Nama File : detail_jurnal Akronim : db_penerimaan

Fungsi : sebagai penyimpan data jurnal Tipe File : File Transaksi

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang record : 45 Byte Kunci field : kode_jurnal

Software : MySQL

Tabel III.9.

Spesifikasi File Detail Jurnal

No Elemen Data Nama Field Type Size Keterangan

1 Kode Jurnal kode_jurnal Varchar 15 Primary Key

2 Kode Akun kode_akun Varchar 8 Foreign Key

3 Debet debet Int 11

(29)

pengguna kode_pengguna nama_pengguna password level -TAMBAH -SIMPAN -UBAH -HAPUS -BATAL barang kode_barang nama_barang jenis_barang harga stok -TAMBAH -SIMPAN -UBAH -HAPUS -BATAL akun kode_akun nama_akun saldo_normal -TAMBAH -SIMPAN -UBAH -HAPUS -BATAL penjualan kode_penjualan tanggal totalbayar kode_pengguna -TAMBAH -SIMPAN detail_penjualan kode_penjualan kode_barang jumlah_beli subtotal jurnal kode_jurnal kode_pengguna tanggal keterangan -TAMBAH -SIMPAN detail_jurnal kode_jurnal kode_akun debet kredit Gambar III.17. Class Diagram

(30)

Kasir Login Input Kode User

dan Password()

Cek Kode User dan Password() Kode User dan

Password tidak ada atau salah()

Menu Utama

Kode User Dan Password Benar() Control Form Penjualan Tambah() Sistem Simpan Data() Input Kode Penjualan() Tanggal() Nama Pengguna() Kode Barang() Nama Barang() Harga() Jumlah Beli() Sub Total() Uang Bayar() Uang Kembali() Data Tersimpan () Gambar III.18. Sequence Diagram

(31)

MySQL JDBC Driver Netbean IDE (Java) Database (database MySQL)

phpMyAdmin

Java SE 6.0 (JDK 6)

Gambar III.19. Component Diagram

(32)

KomputerClient Client Aplikasi Komputer Server Aplikasi Database db_penerimaan.sql Gambar III.20. Deployment Diagram

(33)

1. Menu Login

Gambar III.21. Menu Login

2. Menu Utama Kasir

Gambar III.22. Menu Utama Kasir

(34)

Gambar III.23. Master Pengguna

(35)

Gambar III.24. Master Barang

(36)

Gambar III.25. Master Akun

(37)

Gambar III.26. Transaksi Penjualan

(38)

Gambar III.27. Rancangan Nota Penjualan

(39)

Gambar III.28. Transaksi Jurnal 9. Menu Utama Pemilik

Gambar III.29. Menu Utama Pemilik

(40)

Gambar III.30. Menu Laporan

11. Laporan Penjualan

Gambar III.31. Laporan Penjualan

(41)

3.5.1. Code Generation

/*

* To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates

* and open the template in the editor. */ package menu; import java.awt.event.KeyEvent; import java.util.Date; import java.sql.*; import java.text.SimpleDateFormat; import java.util.HashMap; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JasperViewer;

public class menuPenjualan extends javax.swing.JFrame { koneksi kon = new koneksi();

private Object[][] datasementara = null;

private String[] labelsementara = {"Kode Barang", "Nama Barang", "Harga", "Jumlah Beli", "Subtotal"};

public menuPenjualan() { initComponents(); kon.setKoneksi(); setTanggal(); awal(); kode_pengguna.setVisible(false); }

public Date date = new Date();

public SimpleDateFormat noformat = new SimpleDateFormat("yyMM"); public String KodeBarang;

public String NamaBarang; public String Harga; public String KodeUser; public String NamaUser;

public String getKodeBarang() { return KodeBarang;

(42)

public String getNamaBarang() { return NamaBarang;

}

public String getHarga() { return Harga;

}

public String getKodeUser() { return KodeUser;

}

public String getNamaUser() { return NamaUser;

}

private void bersih() { kode.setText(""); nama_barang.setText(""); jumlahbeli.setText(""); tsubtotal.setText(""); tbayar.setText(""); tkembali.setText(""); ltotal.setText("0"); }

private void nonaktif() { kode.setEditable(false); tgl.setEditable(false); nama_barang.setEditable(false); kode_barang.setEditable(false); jumlahbeli.setEditable(false); tsubtotal.setEditable(false); harga_jual.setEditable(false); tbayar.setEditable(false); tkembali.setEditable(false); nama_pengguna.setEditable(false); }

private void aktif() {

kode_barang.setEditable(true); jumlahbeli.setEditable(true); tbayar.setEditable(true); }

private void setTanggal() {

(43)

dd");

tgl.setText(kal.format(skrg)); }

private void awal() { nonaktif();

}

public String nomor() { String urutan = null; try {

kon.rs = kon.st.executeQuery("select right(kode_penjualan,3)+1 from penjualan"); if (kon.rs.next()) { kon.rs.last(); urutan = kon.rs.getString(1); while (urutan.length() < 3) { urutan = "0" + urutan; }

urutan = "NO-" + noformat.format(date) + urutan; } else {

urutan = "NO-" + noformat.format(date) + "001"; }

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "Mungkin Database Anda: " + e); }

return urutan; }

private void tampilTabelSementara() { try {

String sql = "Select * from sementara order by kode_barang"; kon.rs = kon.st.executeQuery(sql);

ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount();

int baris = 0;

while (kon.rs.next()) { baris = kon.rs.getRow(); }

datasementara = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datasementara[x][0] = kon.rs.getString("kode_barang"); datasementara[x][1] = kon.rs.getString("nama_barang"); datasementara[x][2] = kon.rs.getString("harga");

(44)

datasementara[x][4] = kon.rs.getString("subtotal"); x++; } tbpenjualan.setModel(new DefaultTableModel(datasementara, labelsementara)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

private void tampilDataobat() { try {

String sql = "select * from barang where kode_barang ='" + kode_barang.getText() + "'"; kon.rs = kon.st.executeQuery(sql); if (kon.rs.next()) { nama_barang.setText(kon.rs.getString("nama_barang")); harga_jual.setText(kon.rs.getString("harga")); jumlahbeli.requestFocus(); } else {

JOptionPane.showMessageDialog(null, "Kode " + kode_barang.getText() + "tidak ditemukan"); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

private void simpanSementara() { try {

String sql = "insert into sementara values ('" + kode_barang.getText() + "','" + nama_barang.getText() + "','" + harga_jual.getText() + "','" + jumlahbeli.getText() + "','" + tsubtotal.getText() + "')"; kon.st.executeUpdate(sql); tampilTabelSementara(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

private void hapusIsiSementara() {

int row = tbpenjualan.getSelectedRow(); int x;

int total = Integer.parseInt(ltotal.getText());

x = Integer.parseInt((String) tbpenjualan.getValueAt(row, 4)); total = total - x;

(45)

String sql = "delete from sementara where kode_barang ='" + (String) tbpenjualan.getValueAt(row, 0) + "'"; kon.st.executeUpdate(sql); tampilTabelSementara(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

private void simpanpenjualan() { try {

String sql = "insert into penjualan values('" + kode.getText() + "','" + tgl.getText() + "','" + ltotal.getText() + "','" +

kode_pengguna.getText() + "')"; kon.st.executeUpdate(sql); } catch (SQLException e) {

System.out.println("Koneksi Gagal " + e.toString()); }

}

private void simpanDetailpenjualan() { try {

String sql = "insert into detailpenjualan select '" + kode.getText() + "',kode_barang,jumlahbeli,subtotal from sementara"; kon.st.executeUpdate(sql);

} catch (SQLException e) {

System.out.println("Koneksi Gagal " + e.toString()); }

}

private void hapusTabelSementara() { try {

String sql = "Delete from sementara"; kon.st.executeUpdate(sql); tampilTabelSementara(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

private void cetakStruk() {

cetakPenjualan mt = new cetakPenjualan(); mt.setLocationRelativeTo(null);

mt.setVisible(true);

mt.Kodeobat = kode.getText(); }

(46)

* 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(); kode = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); tgl = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel();

nama_pengguna = new javax.swing.JTextField(); jPanel2 = new javax.swing.JPanel();

jPanel3 = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel();

kode_barang = new javax.swing.JTextField(); btbrowse = new javax.swing.JButton(); jLabel5 = new javax.swing.JLabel();

nama_barang = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel();

harga_jual = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel();

jumlahbeli = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); tsubtotal = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); tbpenjualan = new javax.swing.JTable(); jPanel4 = new javax.swing.JPanel(); jLabel9 = new javax.swing.JLabel(); ltotal = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); tbayar = new javax.swing.JTextField(); jLabel12 = new javax.swing.JLabel(); tkembali = new javax.swing.JTextField(); bttambah = new javax.swing.JButton(); btsimpan = new javax.swing.JButton(); btbatal = new javax.swing.JButton(); btkeluar = new javax.swing.JButton(); kode_pengguna = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel();

jSeparator1 = new javax.swing.JSeparator();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Penjualan");

(47)

public void windowActivated(java.awt.event.WindowEvent evt) { formWindowActivated(evt); } }); jPanel1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED)); jLabel1.setText("Kode Penjualan"); jLabel2.setText("Tanggal"); jLabel3.setText("Nama Pengguna");

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(kode, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel2) .addGap(18, 18, 18) .addComponent(tgl, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(nama_pengguna, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel1Layout.createSequentialGroup()

(48)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel1) .addComponent(kode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2) .addComponent(tgl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3) .addComponent(nama_pengguna, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel2.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED)); jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.bord er.EtchedBorder.RAISED)); jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel4.setText("Kode Barang"); kode_barang.addContainerListener(new java.awt.event.ContainerAdapter() { public void componentAdded(java.awt.event.ContainerEvent evt) {

kode_barangComponentAdded(evt); }

});

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

} });

btbrowse.setText("...");

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

} });

(49)

jLabel5.setText("Nama Barang"); jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel6.setText("Harga"); jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel7.setText("Jumlah Beli"); jumlahbeli.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jumlahbeliActionPerformed(evt);

} });

jumlahbeli.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) {

jumlahbeliKeyTyped(evt); }

});

jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel8.setText("Sub Total");

javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.TRAILING, false) .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)) .addGap(27, 27, 27)

(50)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING, false) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() .addComponent(kode_barang, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btbrowse)) .addComponent(nama_barang) .addComponent(harga_jual) .addComponent(jumlahbeli) .addComponent(tsubtotal)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING) .addComponent(kode_barang) .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btbrowse, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)) .addGap(18, 18, 18) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(nama_barang, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.TRAILING) .addComponent(harga_jual, javax.swing.GroupLayout.PREFERRED_SIZE,

(51)

javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(3, 3, 3))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel7) .addComponent(jumlahbeli, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel8) .addComponent(tsubtotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); tbpenjualan.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, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null} },

new String [] {

"Title 1", "Title 2", "Title 3", "Title 4", "Title 5" }

));

tbpenjualan.setCursor(new

(52)

public void keyPressed(java.awt.event.KeyEvent evt) { tbpenjualanKeyPressed(evt); } }); jScrollPane1.setViewportView(tbpenjualan); jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder()); jLabel9.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel9.setText("Rp.");

ltotal.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N ltotal.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); ltotal.setText("Total");

jLabel11.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N jLabel11.setText("Uang Bayar");

tbayar.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N tbayar.addActionListener(new java.awt.event.ActionListener() {

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

} });

tbayar.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { tbayarKeyTyped(evt);

} });

jLabel12.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N jLabel12.setText("Uang Kembali");

tkembali.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N javax.swing.GroupLayout jPanel4Layout = new

javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

(53)

220, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(49, 49, 49) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING) .addComponent(jLabel12) .addComponent(jLabel11)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING) .addComponent(tkembali) .addComponent(tbayar)) .addContainerGap()) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING, false) .addGroup(jPanel4Layout.createSequentialGroup() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel11) .addComponent(tbayar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(jLabel12) .addComponent(tkembali, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addComponent(ltotal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

(54)

Short.MAX_VALUE)) ); bttambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/icons8_add_file_28px.png"))) ; // NOI18N bttambah.setText("TAMBAH"); bttambah.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); bttambah.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { bttambahActionPerformed(evt); } }); btsimpan.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/icons8_print_32px_1.png"))); // NOI18N btsimpan.setText("SIMPAN"); btsimpan.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); btsimpan.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { btsimpanActionPerformed(evt); } }); btbatal.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/icons8_delete_file_28px.png") )); // NOI18N btbatal.setText("BATAL"); btbatal.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); btbatal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { btbatalActionPerformed(evt); } }); btkeluar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/icons8_shutdown_32px.png")) ); // NOI18N btkeluar.setText("KELUAR"); btkeluar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); btkeluar.addActionListener(new java.awt.event.ActionListener() {

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

} });

(55)

kode_pengguna.setText("0");

jLabel10.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel10.setText("Riwayat Transaksi");

jLabel10.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); jLabel10.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) { jLabel10MouseClicked(evt);

} });

jLabel10.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { jLabel10KeyPressed(evt);

} });

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(405, 405, 405) .addComponent(kode_pengguna, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING, false) .addComponent(jLabel10, javax.swing.GroupLayout.DEFAULT_SIZE, 195, Short.MAX_VALUE) .addComponent(jSeparator1)))) .addContainerGap()) .addGroup(jPanel2Layout.createSequentialGroup()

(56)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.TRAILING, false) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(bttambah, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btsimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(btbatal, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(47, 47, 47) .addComponent(btkeluar)) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING ) .addGroup(jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.LEADING, false) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignmen t.BASELINE) .addComponent(bttambah)

(57)

.addComponent(btbatal) .addComponent(btkeluar)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(kode_pengguna) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel10) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) );

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0)) ); pack(); setLocationRelativeTo(null);

(58)

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

tampilDataobat(); }

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

boolean closable = true;

dataBarang db = new dataBarang(null, closable); db.transaksi = this; db.setVisible(true); db.setResizable(true); kode_barang.setText(KodeBarang); nama_barang.setText(NamaBarang); harga_jual.setText(Harga); }

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

jumlahbeli.requestFocus(); }

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

hapusTabelSementara(); dispose();

}

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

aktif();

kode.setText(nomor()); }

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

nama_pengguna.setText(KodeUser); tampilTabelSementara();

}

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

awal();

hapusTabelSementara(); kode.setText("");

(59)

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

if (evt.getKeyCode() == KeyEvent.VK_ENTER || evt.getKeyCode() == KeyEvent.VK_BACK_SPACE || evt.getKeyCode() == KeyEvent.VK_DELETE) { hapusIsiSementara(); jumlahbeli.setText(""); jumlahbeli.requestFocus(); } }

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

int harga, jumbel, total;

if (jumlahbeli.getText().equals("")) {

JOptionPane.showMessageDialog(null, "Masukkan Jumlah Beli"); } else {

harga = Integer.parseInt(harga_jual.getText()); jumbel = Integer.parseInt(jumlahbeli.getText()); total = harga * jumbel;

tsubtotal.setText(Integer.toString(total)); simpanSementara();

tampilTabelSementara(); int ttl = 0;

for (int a = 0; a < tbpenjualan.getRowCount(); a++) {

int sub = Integer.parseInt((String) tbpenjualan.getValueAt(a, 4)); ttl += sub;

}

ltotal.setText(Integer.toString(ttl));

if (JOptionPane.showConfirmDialog(this, "Mau Tambah Barang?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { aktif(); kode_barang.requestFocus(); kode_barang.setText(""); nama_barang.setText(""); harga_jual.setText(""); jumlahbeli.setText(""); tsubtotal.setText(""); } else { tbayar.requestFocus(); } } }

private void btsimpanActionPerformed(java.awt.event.ActionEvent evt) { if (tbayar.getText().equals("")) {

(60)

"Informasi", JOptionPane.INFORMATION_MESSAGE); tbayar.requestFocus();

} else {

simpanpenjualan(); simpanDetailpenjualan();

JOptionPane.showMessageDialog(this, "Berhasil di Simpan", "Informasi", JOptionPane.INFORMATION_MESSAGE); tampilTabelSementara();

if (JOptionPane.showConfirmDialog(this, "Mau Cetak Struk?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { cetakStruk(); hapusTabelSementara(); awal(); bersih(); tampilTabelSementara(); } else { hapusTabelSementara(); awal(); bersih(); kode.setText(""); } } }

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

int kembali, total, bayar;

total = Integer.parseInt(ltotal.getText()); bayar = Integer.parseInt(tbayar.getText()); kembali = bayar - total;

tkembali.setText(Integer.toString(kembali)); }

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

char c = evt.getKeyChar();

if (!((c >= '0') && (c <= '9') && jumlahbeli.getText().length() < 4 || (c == com.sun.glass.events.KeyEvent.VK_BACKSPACE) || (c == com.sun.glass.events.KeyEvent.VK_DELETE))) { getToolkit().beep(); evt.consume(); } }

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

(61)

|| (c == com.sun.glass.events.KeyEvent.VK_BACKSPACE) || (c == com.sun.glass.events.KeyEvent.VK_DELETE))) { getToolkit().beep(); evt.consume(); } }

private void jLabel10KeyPressed(java.awt.event.KeyEvent evt) { }

private void jLabel10MouseClicked(java.awt.event.MouseEvent evt) { cetakPenjualan mo = new cetakPenjualan();

mo.setLocationRelativeTo(null); mo.setVisible(true);

} /**

* @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; } }

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(menuPenjualan.class.getName()).log(java.util.lo gging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(menuPenjualan.class.getName()).log(java.util.lo gging.Level.SEVERE, null, ex);

(62)

java.util.logging.Logger.getLogger(menuPenjualan.class.getName()).log(java.util.lo gging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(menuPenjualan.class.getName()).log(java.util.lo gging.Level.SEVERE, null, ex);

}

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

/* Create and display the form */

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

new menuPenjualan().setVisible(true); }

}); }

// Variables declaration - do not modify private javax.swing.JButton btbatal;

private javax.swing.JButton btbrowse; private javax.swing.JButton btkeluar; private javax.swing.JButton btsimpan; private javax.swing.JButton bttambah; private javax.swing.JTextField harga_jual; private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JTextField jumlahbeli; private javax.swing.JTextField kode;

(63)

private javax.swing.JLabel ltotal;

private javax.swing.JTextField nama_barang; private javax.swing.JTextField nama_pengguna; private javax.swing.JTextField tbayar;

private javax.swing.JTable tbpenjualan; private javax.swing.JTextField tgl; private javax.swing.JTextField tkembali; private javax.swing.JTextField tsubtotal; // End of variables declaration }

(64)

1. Pengujian Login

Tabel III.10. Pengujian Menu Login

Kasus dan Hasil Uji

No Data Masukan Hasil Yang

Diharapkan Pengamatan Kesimpulan

1 Kode user benar Password benar

Berhasil login kedalam aplikasi penerimaan

Sesuai Harapan Diterima

2 Kode user benar Password salah

Sistem akan

menolak akses login Sesuai Harapan Diterima

3 Kode user salah Password benar

Sistem akan

menolak akses login Sesuai Harapan Diterima

4 Kode user kosong Password diisi

Sistem akan

menolak akses login Sesuai Harapan Diterima

5 Kode user diisi Pssword kosong

Sistem akan

menolak akses login Sesuai Harapan Diterima

6 Kode user kosong Password kosong

Sistem akan

(65)

Tabel III.11.

Spesifikasi Hardware dan Software

Kebutuhan Keterangan

Sistem Operasi Windows 8 Profesional

Processor Intel (R) Celeron (R) Up to 2.39 GHz

RAM 2.00 GB

Harddisk 232 GB

Monitor Generic PnP

Keyboard Standard PS/2

Gambar

Gambar III.3.
Gambar III.4.
Gambar III.5.
Gambar III.6.
+7

Referensi

Dokumen terkait

Ketepatan terapi dinilai dari kerasionalan pemberian obat pada pasien berdasarkan evaluasi 4T (tepat indikasi, tepat pasien, tepat obat, tepat dosis). Tepat indikasi adalah

Lasting impressions of Roman architecture have survived right up to the present day, from the ruins of the Colosseum at the epicentre of Rome itself, to far western corners of

menghentikan pengobatan medis terhadap pasien yang kondisinya sudah dianggap dokter untuk tidak dapat disembuhkan. Hadis tersebut juga memrintahkan untuk tetap melakukan

Penelitian ini bertujuan untuk meningkatkan keterampilan menulis kembali berita yang disimak pada siswa kelas VII B SMP Negeri 1 Sanggau. Subjek penelitian tindakan kelas ini

Menurut Ludwig dan Reynold (1988), gabungan informasi dan jumlah jenis dan kepadatan seperti uraian di atas adalah sebagai refleksi dari kekayaan jenis bentos

Tujuan dari penelitian ini adalah untuk mendapatkan bukti empiris pengaruh ukuran perusahaan, profitabilitas, likuiditas, pertumbuhan perusahaan dan opini audit tahun

Mengacu pada hasil dan pembahasan yang telah disampaikan, dapat disimpulkan bahwa: (1) Produk yang telah divalidasi oleh teman sejawat pada Program Studi

Beberapa penelitian mengenai klasifikasi data microarray dengan metode ANN telah dilakukan, salah satunya adalah klasifikasi kanker payudara menggunakan metode Artificial