bab iii pembahasan - repository.bsi.ac.id · sampai menengah keatas. seiring dengan perkembangan...

71
24 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Apotek Harum sebagai perusahaan resmi yang bertanggung jawab dalam menyalurkan obat-obatan resmi dari supplier yang telah lulus di departemen kesehatan dan bertanggungg jawab untuk memberi pelayanan yang terbaik kepada setiap pasien yang kritis dan menuntut layanan yang serba profesional. Hal ini juga menjadi salah satu faktor pendukung untuk mendapatkan kepercayaan konsumen. Untuk melaksanakan kegiatan-kegiatannya, maka Apotek Harum memerlukan sumber daya manusia yang ahli dalam bidangnya. Kegiatan yang dilakukan di apotek harum selain menjual obat-obatan dengan resep, juga melayani penjualan obat tanpa resep serta memberi penjelasan kepada pasien tentang pemakaian obat dengan dosis yang benar sesuai dengan penyakit yang diderita. 3.1.1. Sejarah Perusahaan Atas prakarsa Bapak Kukuh Setiawan Nugroho, S. Far, Apt didirikan Apotek Harum pada bulan agustus 2016 dengan Surat Izin Apotek (SIA) dengan nomor 503/23.43/SIA/KEP/VIII/2016 dan Surat Ijin Praktik (SIPA) dengan nomor 19860104/SIPA.3305/2016/1006 beralamat di desa sarwogadung RT 02 RW 1 Kecamatan Mirit, Kebumen dan dipimpin oleh Bapak Kukuh Setiawan Nugroho, S Far, Apt. Disamping itu juga dibantu oleh asisten apoteker dan bagian administrasi dalam kegiatan usaha.

Upload: others

Post on 27-Oct-2020

9 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

24

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Apotek Harum sebagai perusahaan resmi yang bertanggung jawab dalam

menyalurkan obat-obatan resmi dari supplier yang telah lulus di departemen

kesehatan dan bertanggungg jawab untuk memberi pelayanan yang terbaik kepada

setiap pasien yang kritis dan menuntut layanan yang serba profesional. Hal ini

juga menjadi salah satu faktor pendukung untuk mendapatkan kepercayaan

konsumen.

Untuk melaksanakan kegiatan-kegiatannya, maka Apotek Harum

memerlukan sumber daya manusia yang ahli dalam bidangnya. Kegiatan yang

dilakukan di apotek harum selain menjual obat-obatan dengan resep, juga

melayani penjualan obat tanpa resep serta memberi penjelasan kepada pasien

tentang pemakaian obat dengan dosis yang benar sesuai dengan penyakit yang

diderita.

3.1.1. Sejarah Perusahaan

Atas prakarsa Bapak Kukuh Setiawan Nugroho, S. Far, Apt didirikan

Apotek Harum pada bulan agustus 2016 dengan Surat Izin Apotek (SIA) dengan

nomor 503/23.43/SIA/KEP/VIII/2016 dan Surat Ijin Praktik (SIPA) dengan

nomor 19860104/SIPA.3305/2016/1006 beralamat di desa sarwogadung RT 02

RW 1 Kecamatan Mirit, Kebumen dan dipimpin oleh Bapak Kukuh Setiawan

Nugroho, S Far, Apt. Disamping itu juga dibantu oleh asisten apoteker dan bagian

administrasi dalam kegiatan usaha.

Page 2: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

25

Dalam melaksanakan kegiatan transaksi sehari-hari Apotek Harum selalu

berusaha menyediakan obat yang lengkap, mulai harga yang menengah kebawah

sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat

akan layanan bidang kesehatan Apotek Harum membuka praktek dokter umum

BPJS dan Kader BPJS atau bisa menerima pembayaran BPJS karena sudah

kerjasama dengan BPJS khusus desa sarwogadung dan abean.

3.1.2. Struktur Organisasi dan Fungsi

Struktur organisasi merupakan suatu kerangka untuk mewujudkan sutau

pola tetap dari hubungan antara kedudukan dan peranan dalam suatu lingkar kerja

sama. Struktur organisasi mutlak diperlukan agar dapat diketahui dengan jelas

bagaimana hubungan antara bagian serta tugas, wewenang, dan tanggung

jawabnya disetiap bagian struktur organisasi mempunyai tanggung jawab dan

kewajiban-kewajiban terhadap pengembangan perusahaan.

Setiap bagian dalam struktur organisasi harus mampu bekerja secara

professional, dan harus dapat berinteraksi dengan bagian lainnya sehingga didapat

kerjasama yang optimal antar fungsi.

Berikut ini merupakan struktur organisasi apotek harum.

Sumber : Apotek Harum

Gambar III.1. Struktur Organisasi Apotek Harum

Page 3: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

26

Adapun fungsi dan tugas masing-masing personil atau divisi adalah

sebagai berikut:

1. Pemilik (Apoteker)

a. Mengangkat dan memberhentikan karyawan

b. Memantau perkembangan Apotek Harum

c. Bertanggug jawab penuh terhadap seluruh kegiatan operasional dan

kelangsungan usaha pada Apotek Harum dan memberi keputusan

terakhir dalam menangani masalah yang terjadi

2. Asisten Apoteker

a. Bertanggung jawab dalam pengolahan obat-obatan

b. Memberikan informasi dan petunjuk pemakaian obat dan melakukan

penyiapan obat yang sesuai anjuran kepada customer.

c. Menentukan keterangan pada obat

d. Memeriksa persediaan obat

3. Bagian administrasi

a. Mengenal produk dan barang yang akan dijual secara baik

b. Melayani customer dengan permintaan obat yang dibutuhkan

c. Mencatat keluar masuknya obat

d. Mencatat laporan transaksi penjualan.

e. Menerima uang hasil penjualan obat setiap harinya.

f. Mengumpulkan serta mengarsipkan nota dan faktur penjualan

g. Bertugas dalam melayani transaksi penjualan kepada konsumen.

Page 4: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

27

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

1. Prosedur penjualan obat dengan resep

Prosedur penjualan obat dengan resep yang sedang berjalan adalah sebagai

berikut (Gambar III.2.): Customer datang menyerahkan resep kepada administrasi.

Administrasi menerima resep serta mendata customer dan resepnya. Kemudian

dihitung harga resep untuk mengetahui total bayar untuk diinformasikan kepada

customer, jika customer setuju dengan harga maka dibuat nota kemudian resep

diserahkan kepada asisten apoteker. Tetapi jika tidak setuju maka resep kembali

pada customer. Asisten apoteker menyediakan atau meracik dan mengemas obat

sesuai dengan resep serta memberikan petunjuk pemakaian obat. Kemudian obat

dan nota disiapkan serta diserahkan kepada customer. Customer menerima obat

sesuai aturan pakai dan melakukan pembayaran. Administrasi membuat laporan

penjualan dan diserahkan kepada apoteker atau pemilik Apotek Harum.

2. Prosedur penjualan obat bebas (nonresep)

Prosedur penjualan obat bebas (nonresep) yang sedang berjalan adalah

sebagai berikut (Gambar III.3.): Customer datang menyerahkan data obat bebas

(nonresep). Administrasi menerima data obat bebas (nonresep), dan mengecek

ketersediaan obat. Jika tidak ada, data obat bebas dikembalikan ke customer.

Tetapi jika obat ada lalu dihitung harga obat kemudian diinformasikan ke

customer. Kemudian administrasi membuat faktur penjualan dan kwitansi untuk

diserahkan kepada asisten apoteker. Asisten apoteker menyediakan obat

berdasarkan faktur penjualan, kemudian obat dan faktur penjualan diserahkan ke

Page 5: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

28

customer. Administrasi membuat laporan penjualan kemudian diserahkan kepada

apoteker atau pemilik Apotek Harum.

3.2.2. Activity Diagram Penjualan

1. Activity Diagram Penjualan Obat Dengan Resep

act activ ity diagram resep

PemilikAsisten apotekerAdminCustomer

start

menyerahkan resep menerima resep

menyerahkan resep

mendata customer

dan resep obat

hitung harga

resep

membuat nota

setuju

menerima resep

meracik dan

mengemas obat

sesuai resep

menerima nota dan obat

sesuai aturan pakai

membuat laporan

penjualan dan laporan

data obat

menerima laporan

penjualan dan

laporan data obat

end

tidak

menyerahkan nota

dan memberikan

petunjuk obat

sesuai aturan

pakai

menyerahkan pembayaran menerima pembayaran

Gambar III.2.

Activity Diagram Penjualan Obat Dengan Resep

Page 6: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

29

2. Activity Diagram Penjualan Obat Nonresep atau Bebas

act activ ity diagram nonresep

PemilikAdminCustomer

start

membeli obat ke bagian

administrasimelayani customer

mendata customer dan

obat bebas

menghitung harga obat

cek

ketersediaan

obat

tersedia

tidak

memberi informasi

harga ke customer

menerima informasi

harga dari admin

menyerahkan

pembayaran

membuat faktur

penjualan

membuat kwitansi

menerima laporan

penjualan dan

laporan data obat

menerima obat serta

faktur penjualan dan

kwitansi

membuat laporan

penjualan dan laporan

data obat

end

menerima pembayaran

Gambar III.3.

Activity Diagram Penjualan Obat Nonresep Atau Bebas

Page 7: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

30

3.2.3. Dokumen Masukan

Dokumen masukan adalah segala bentuk dokumen yang berasal dari

lingkungan luar sistem yang berupa dokumen-dokumen yang akan diolah dalam

suatu proses agar dapat menghasilkan keluaran yang diinginkan. Adapun

dokumen-dokumen masukan tersebut adalah sebagai berikut:

1. Kartu Stok

Nama Dokumen : Kartu stok obat

Fungsi : Sebagai simpanan data stok obat

Sumber : Asisten apoteker

Tujuan : Bagian administrasi

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi penjualan obat

Format : Lampiran A.1

2. Resep

Nama Dokumen : Resep

Fungsi : Catatan obat hasil pemeriksaan dokter

Sumber : Customer

Tujuan : Administrasi

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi penjualan obat

Format : Lampiran A.2

Page 8: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

31

3.2.4. Dokumen Keluaran

Dokumen keluaran adalah segala bentuk dokumen perusahaan yang

mendukung kegiatan manajemen serta merupakan dokumen hasil pencatatan atau

laporan. Adapun dokumen-dokumen keluaran tersebut adalah sebagai berikut:

1. Kwitansi

Nama Dokumen : Kwitansi

Fungsi : Sebagai bukti pembayaran

Sumber : Customer

Tujuan : Administrasi

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi penjualan

Format : Lampiran B.1

2. Faktur penjualan

Nama Dokumen : Faktur penjualan

Fungsi : Untuk menuliskan bukti transaksi penjualan

Sumber : Administrasi

Tujuan : Customer

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi penjualan obat untuk

instansi

Format : Satu lembar

Page 9: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

32

3. Nota

Nama Dokumen : Nota

Fungsi : Sebagai tanda bukti pembayaran dan sejumlah obat

Sumber : Administrasi

Tujuan : Customer

Media : Kertas

Jumlah : Satu lembar

Frekuensi : Setiap terjadi transaksi penjualan obat untuk umum

Format : Lampiran B.3

3.2.5. Permasalahan Pokok

Adapun masalah yang ditemukan pada apotek harum adalah masih

menggunakan cara manual dalam prosesnya seperti:

1. Data obat dalam bentuk kartu stok yang terlalu banyak menjadi tercecer.

2. Pencatatan riwayat customer yang tidak tersimpan mengakibatkan

kurangnya hubungan yang baik dengan pelanggan.

3. Adanya penyimpanan bukti transaksi berupa faktur penjualan dan nota

dalam bentuk arsip menyebabkan kesulitan bagi karyawan dalam

pencarian data-data transaksi terutama pada saat data atau dokumen

semakin banyak.

4. Kesulitan proses pembuatan laporan membutuhkan waktu yang relatif

lama, karena harus membuat rekapitulasi dari dokumen-dokumen

transaksi, dan laporan yang disajikan kurang akurat.

5. Laporan penjualan dan persediaan obat menjadi tidak akurat dan lupa

tercatat oleh pegawai atau kasir serta hilangnya data.

Page 10: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

33

3.2.6. Pemecahan Masalah

Dari permasalahan-permasalahan tersebut diatas maka penulis merancang

untuk sistem penjualan pada obat Apotek Harum dengan pengolahan data yang

berbasis komputerisasi dengan menggunakan pemrograman java desktop dapat

memudahkan dan mempercepat proses pekerjaan dalam memberikan informasi

yang lebih efektif, efisien, dan tepat waktu serta resiko kehilangan data relatif

kecil karena tersimpan dalam database.

3.3. Analisis Kebutuhan Sofware

3.3.1. Tahapan Analisis

Analisa kebutuhan software untuk sistem penjualan obat dengan beberapa

prosedur diantaranya:

Halaman Admin:

1. Admin dapat login dengan memasukkan username dan password.

2. Admin dapat membuka menu file master.

3. Admin dapat mengelola data obat.

4. Admin dapat mengelola data user.

5. Admin dapat mengelola data customer.

6. Admin dapat mengelola data perkiraan.

7. Admin dapat membuka menu transaksi.

8. Admin dapat mengelola data penjualan.

9. Admin dapat mengelola data resep.

10. Admin dapat mengelola data jurnal.

11. Admin dapat membuka menu laporan.

12. Admin dapat mengelola data laporan penjualan.

Page 11: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

34

13. Admin dapat membuka data kartu stok.

14. Admin dapat keluar.

3.3.2. Use Case Diagram Halaman Admin

uc Use case diagram

admin

Login

menu file

master

menu transaksi

laporan

Auseraname

data perkiraan

password

data obat

data customer

data penjualan

data resep

data jurnal

Laporan kartu stok

laporan penjualan

keluar

data_user

«extend»«include»«extend»

«include»

«include»

«include»

«include»

«extend»

«include»

«extend»

«include»

«include»

«include»

«include»

«include»

Gambar III.4.

Use case Diagram Halaman Admin

Page 12: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

35

Tabel III.1.

Deskripsi Use Case Diagram Halaman Admin

Use Case Narative

Tujuan Admin dapat melakukan login dan mengelola menu yang

ada di dalam sistem informasi penjualan barang.

Deskripsi Sistem ini memungkinkan aktor untuk mengelola sistem

informasi penjualan barang mulai dari input data sampai

dengan pembuatan laporan.

Skenario Utama

Aktor Admin

Kondisi awal Aktor membuka sistem informasi penjualan obat

pada Apotek Harum.

Aksi actor Reaksi sistem

1. Aktor memilih tombol

menu login

Sistem akan menampilkan texbox untuk mengisi

username dan password

2. Aktor memilih tombol

menu file master

Sistem akan menampilkan sub menu data user,

data obat, data perkiraan dan data customer

3. Aktor memilih tombol

menu transaksi

Sistem akan menampilkan sub menu data

penjualan, data jurnal dan data resep.

4. Aktor memilih tombol

laporan

Sistem akan menampilkan sub menu laporan

penjualan dan kartu stok.

5. Aktor memilih dan

klik tombol keluar

Keluar dari program

6. Kondisi akhir Jika perintah sesuai maka sistem akan masuk ke

dalam aplikasi penjualan barang dan menampilkan

apa yang diingankan oleh aktor.

Page 13: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

36

3.3.3. Activity Diagram

1. Activity Diagram Login

act activ itiy diagram login

sistemadmin

tampil form login cek username dan password

tampil menu

utama tampil pesan

username/password

anda salah,

silahkan coba lagi

valid?

input

usernameinput

password

Gambar III.5.

Activity Diagram Login

Page 14: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

37

2. Activity Diagram Menu Utama

act activ ity diagram menu utama

sistemadmin

start

menampilkan form login

input

username

input

password

cek username dan password

valid ?

menampilkan menu utama

valid

menampilkan

pesan username

dan password

salah

invalid

menu file

mastermenu

transaksi

menu

laporan

Gambar III.6.

Activity Diagram Menu Utama

Page 15: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

38

3. Activity Diagram Menu File Master

act activ ity diagram menu file master

admin sistem

pilih menu file master menampilkan menu file master

data obat data customer data perkiraandata user

Gambar III.7.

Activity Diagram Menu File Master

Page 16: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

39

4. Activity Diagram Data User

act data user

sistemadmin

pilih data user menampilkan menu data user

input data user

klik tombol simpan data disimpan

klik data yang akan di ubah

data diubah

klik tombol keluar

klik tombol hapus

data di hapus

Gambar III.8.

Activity Diagram Data User

Page 17: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

40

5. Activity Diagram Data Obat

act data obat

sistemadmin

pilih menu data obat menampilkan data obat

input data obat

klik tombol simpan data disimpan

klik tombol reset data direset

klik tombol ubah

data diubah

klik tombol hapus

data di hapus

klik tombol cetak

data dicetak

klik tombol keluar

Gambar III.9.

Activity Diagram Data Obat

Page 18: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

41

6. Activity Diagram Data Perkiraan

act activ ity diagram data perkiraan

sistemadmin

memilih menu file master menampilkan menu dalam file master

klik menu data perkiraan

menampilkan data perkiraan

input data perkiraan

klik tombol simpan data berhasil disimpan

klik data perkiraan yang akan

diubah

menampilkan data obat yang akan diubah

klik tombol ubah

data diubah

klik tombol reset

data direset

klik tombol keluar

Gambar III.10.

Activity Diagram Data Perkiraan

Page 19: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

42

7. Activity Diagram Data Customer

act Act data customer

sistemadmin

pilih data customermenampilkan menu data customer

input data customer menampilkan data customer

data berhasil disimpan

klik tombol simpan

klik data yang akan di ubah

data diubah

klik reset

data direset

klik data yang akan di hapus

data di hapus

klik tombol keluar

Gambar III.11.

Activity Diagram Data Customer

Page 20: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

43

8. Activity Diagram Menu Transaksi

act Data transaksi

sistemadmin

pilih menu transaksi menampilkan menu transaksi

data penjualandata resep data jurnal

pilihan

Gambar III.12.

Activity Diagram Menu Transaksi

Page 21: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

44

9. Activity Diagram Data Penjualan

act data penjualan scra detail

sistemAdmin

pilih menu data penjualan menampilkan menu data penjualan

input data penjualan

klik tombol simpandata penjualan disimpan

klik tombol reset

data penjualan direset

klik tombol cetak

data penjualan dicetak

klik tombol keluar

klik data penjualan yang akan

diinput detailnya

menampilkan menu detail

penjualan

input data detail penjualan

klik tombol simpan data detail penjualan disimpan

klik tombol ubah

data detail penjualan diubah

klik tombol reset

data detail penjualan direset

klik tombol hapus

data detail penjualan dihapus

klik tombol hapus transaksi

transaksi dihapus

klik tombol cetak

data detail penjualan dicetak

klik tombol tutup

data detail penjualan ditutup

Gambar III.13.

Activity Diagram Data Penjualan

Page 22: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

45

10. Activity Diagram Data Resep

act data resep

sistemadmin

input data resep

pilih menu resep menampilkan menu resep

klik tombol simpan data disimpan

klik tombol reset

data direset

klik tombol cetak

data di cetak

klik tombol hapus

data di hapus

klik tombol keluar

Gambar III.14.

Activity Diagram Data Resep

Page 23: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

46

11. Activity Diagram Data Jurnal

act data jurnal

sistemadmin

pilih menu data jurnal menampilkan menu data jurnal

input data jurnal

klik tombol simpan data disimpan

klik tombol ubah

data diubah

klik tombol reset

data direset

klik tombol hapus

data di hapus

klik tombol cetak

data dicetak

klik tombol keluar

Gambar III.15.

Activity Diagram Data Jurnal

Page 24: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

47

12. Activity Diagram Menu Laporan

act activ ity diagram laporan

sistemadmin

memilih menu laporan menampilkan menu laporan

pilihan

kartu stok laporan penjualan

Gambar III.16.

Activity Diagram Menu Laporan

Page 25: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

48

13. Activity Diagram Laporan Penjualan

act laporan penjualan

sistemadmin

pilih menu laporan penjualan menampilkan menu laporan penjualan

pilih tanggal awal sampai

akhir periode

klik tombol tampil menampilkan laporan penjualan

klik tombol cetak

data di cetak

klik tombol keluar

Gambar III.17.

Activity Diagram Laporan Penjualan

Page 26: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

49

14. Activity Diagram Kartu Stok

act activ ity diagram kartu stok

sistemadmin

pilih data kartu stok menampilkan menu kartu stok

klik tombol tambah

menampilkan data stok

input data stok

klik tombol simpan data berhasil disimpan

klik data stok yang akan

diubah

menampilkan data stok yang akan diubah

klik tombol ubah

data diubah

klik tombol reset

pilih data yang akan di

hapus

data direset

klik tombol hapusdata di hapus

klik tombol cetak

data dicetak

Gambar III.18.

Activity Diagram Kartu Stok

Page 27: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

50

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

erd erd penjualan obat

customer

kd_cust

nm_cust

alamat

no_telp

kd_penj

nm_obat

satuan

data penjualan

tgl_penj

kd_obat

status

catatan

subtotal

data_perkiraan

nm_perkiraan

kd_perkiraan

jns_perkiraan

saldo

data_jurnal tgl_jurnal

debitkredit

kd_cust

ket_jurnal

kd_jurnal

saldo

username

password

kd_user

tgl_dibuat

user

resep

detail penjualan

obat

kartu stok

kd_penj

kd_penj

kd_obat

id_detail

jumlah

kd_reseptgl_resep

nm_pasien

kd_stok stok_obat

kd_obat exp

jns_obat 1

M

M

M

M

1

1

1

M

1

M

MM

M

11

1

1

1

1

1

M

totalmelayani

memliki

dicatat

melakukan

memiliki

diterima

mengecek

memiliki

memiliki

dicatat

Gambar III.19.

Entity Relationship Diagram (ERD) Sistem Informasi Akuntansi

Penjualan Obat

Page 28: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

51

3.4.2. Logical Record Structure (LRS)

class LRS penj

kartu stok

- exp

- kd_obat

- kd_stok**

- stok_obat*

customer

- alamat

- kd_cust*

- nm_cust

- no_telp**

obat

- jns_obat**

- kd_obat*

- nm_obat

- satuan

data penjualan

- catatan

- kd_cust

- kd_obat**

- kd_penj*

- status

- sub_total

- tgl_penj

detail penjualan

- id_detail**

- jumlah

- kd_obat**

- Kd_penj

- total

resep

- kd_resep*

- nama_pasien

- tgl_resep

data jurnal

- debit

- kd_jurnal*

- ket_jurnal

- kredit

- saldo

- tgl_jurnal

data perkiraan

- jns_perkiraan

- kd_perkiraan*

- nm_perkiraan

- saldo

data user

- kd_user*

- password

- tgl_dibuat

- username

1M

1

1

1

1

1

M

1

1

1 1 M

1

M

M

M

M 1

1

Gambar III.20.

Logical Record Structure (LRS) Sistem Informasi Akuntansi

Penjualan Obat

Page 29: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

52

3.4.3. Spesifikasi File

Spesifikasi file menjelaskan tentang file-file yang akan digunakan dalam

database. Berikut adalah file-file yang akan digunakan:

1. Spesifikasi file data user

Nama Database : Db_penjualan

Nama File : data user

Akronim : user

Tipe File : File master

Akses File : Random

Panjang Record : 40 karakter

Kunci Field : Kd_obat

Software : My Sql

Tabel III.2.

Spesifikasi File Data User

No. Elemen data Nama field Type Size Keterangan

1. Username Username Varchar 5

2. Password Password Varchar 15 Primary key

3. Tanggal dibuat tgl_dibuat Date -

4. Kode user kd_user Varchar 20

Page 30: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

53

2. Spesifikasi file obat

Nama Database : Db_penjualan

Nama File : data obat

Akronim : obat

Tipe File : File master

Akses File : Random

Panjang Record : 100 karakter

Kunci Field : Kd_obat

Software : My Sql

Tabel III.3.

Spesifikasi File Data Obat

3. Spesifikasi file data perkiraan

Nama Database : Db_Penjualan

Nama File : data jurnal

Akronim : jurnal

Tipe File : File master

No. Elemen data Nama field Type Size Keterangan

1. Kode obat kd_obat Char 10 Primary key

2. Nama obat nm_obat Varchar 50

3. Satuan satuan Varchar 6

4. Jenis obat jns_obat Varchar 20

5. Harga Harga Int 11

6. Stok Stok Int 3

Page 31: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

54

Akses File : Random

Panjang Record : 65 karakter

Software : My Sql

Tabel III.4.

Spesifikasi File Perkiraan

No. Elemen data Nama field Type Size Keterangan

1. kode. perkiraan kd_perkiraan Varchar 15 Primary key

2. Nama pekiraan nm_perkiraan Varchar 25

3. Jenis perkiraan jns_perkiraan Varchar 15

4. Saldo saldo Int 10

4. Spesifikasi file data customer

Nama Database : Db_Penjualan

Nama File : data customer

Akronim : customer

Tipe File : Transaksi

Akses File : Random

Panjang Record : 67 karakter

Kunci Field : Kd_penj

Software : My Sql

Page 32: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

55

Tabel III.5.

Spesifikasi File Data Customer

No. Elemen data Nama field Type Size Keterangan

1. Kode customer kd_cust Char 10

2. Nama customer nm_cust Varchar 15

3. Alamat Alamat Varchar 30

4. No telpon No_telp Varchar 12 Foreign key

5. Spesififkasi File Kartu Stok

Nama Database : DbPenj Obat

Nama File : kartu stok

Akronim : kartu stok

Tipe File : Transaksi

Akses File : Random

Panjang Record : 30 karakter

Kunci Field : Kd_penj

Software : My Sql

Tabel III.6.

Spesifikasi File Kartu Stok

No. Elemen data Nama field Type Size Keterangan

1. Kode stok kd_stok Char 10

2. Kode Obat kd_obat Varchar 15 Primary key

3. Stok_obat stok_obat Int 5

4. Expired exp Date -

Page 33: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

56

6. Spesifikasi file data penjualan

Nama Database : Db_Penjualan

Nama File : data penjualan

Akronim : penjualan

Tipe File : Transaksi

Akses File : Random

Panjang Record : 102 karakter

Kunci Field : Kd_penj

Software : My Sql

Tabel III.7.

Spesifikasi File Data Penjualan

No. Elemen data Nama field Type Size Keterangan

1. Kode penjualan kd_penj Varchar 10 Foreign key

2. Tanggal

penjualan

tgl_penj Date - Primary key

3. Kode customer kd_cust Varchar 20

4. Catatan catatan Varchar 35

5. Subtotal subtotal Int 7

6. Status status Varchar 30

Page 34: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

57

7. Spesifikasi file detail penjualan

Nama Database : Db_Penjualan

Nama File : detail penjualan

Akronim : detail penjualan

Tipe File : Transaksi

Akses File : Random

Panjang Record : 65 karakter

Kunci Field : Kd_penj

Software : My Sql

Tabel III.8.

Spesifikasi File detail penjualan

No. Elemen Data Nama field Type Size Keterangan

1. Id detail id_detail Int 9 Primary key

2. Kode penjualan kd_penj Varchar 10

3. Kode obat kd_obat Varchar 15

4. Jumah jumlah Int 20

5. Total total Int 11

Page 35: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

58

8. Spesifikasi file resep

Nama Database : DbPenj Obat

Nama File : penjualan

Akronim : pejualan

Tipe File : Transaksi

Akses File : Random

Panjang Record : 115 karakter

Kunci Field : Kd_penj

Software : My Sql

Tabel III.9.

Spesifikasi File Resep

No. Elemen data Nama field Type Size Keterangan

1. Kode resep kd_resep Char 10 Primary key

2. Nama pasien nm_pasien Varchar 105

3. Tanggal resep tgl_resep Date -

Page 36: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

59

9. Spesifikasi file data jurnal

Nama Database : Db_Penjualan

Nama File : data jurnal

Akronim : jurnal

Tipe File : Transaksi

Akses File : Random

Panjang Record : 151 karakter

Kunci Field : no_jurnal

Software : My Sql

Tabel III.10.

Spesifikasi File Tabel Jurnal

No. Elemen data Nama field Type Size Keterangan

1. Kode jurnal kd_jurnal Varcahr 10 Primary key

2. Tanggal tgl_jurnal Date -

3. Debit Debit Varchar 40

4. Kredit kredit Varchar 40

5. Saldo saldo Int 11

6. Keterangan ket_jurnal Varchar 50

Page 37: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

60

3.4.4. Sequence Diagram

1. Sequence Diagram Login

sd sq diagram login

admin

form login control login menu utama

input username()

login berhasil()

get(login)

validasi()

masuk()

gagal login()

input password()

set(login)

Gambar.III.21.

Sequence Diagram Login

Page 38: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

61

2. Sequence Diagram Data Penjualan

sd sequence diagram penjualan

admin

control data

penjualan

from data

penjualan

penjualan

set(kd_penj)

cetak()

masuk()

keluar()

set(tgl_penj

set(catatan)

get(catatan)

set(subtotal)

get(tgl_penj)

get(subtotal)

display(kd_penj)

get(kd_cust)

simpan()

reset()

set(kd_cust)

get(kd_penj)

Gambar.III.22.

Sequence Diagram Data Penjualan

Page 39: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

62

3. Sequence Diagram Detail Penjualan

sd sq diagram data detail penjualan

admin

form data detail

penjualan

control data detail

penjualan

data detail

penjualan

reset()

get(jns_obat)

ubah()

get(nm_obat)

cetak()

set(jumlah)

get(kd_obat)

set(jns_obat)

set(kd_obat)

get(total)

set(hrg_obat)

hapus transaksi()

get(hrg_obat)

tutup()

simpan()

set(total)

display(id_detail)

set(nm_obat)

hapus()

get(jumlah)

masuk()

Gambar.III.23.

Sequence Diagram Data Detail Penjualan

Page 40: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

63

4. Sequence Diagram Laporan Penjualan

sd sq laporan penjualan

admin

form laporan

penjualan

control data

laporan penjualan

laporan penjualan

cetak()

get(periode)

tampil()

set(periode)

keluar()

masuk()

display penjualan()

Gambar.III.24.

Sequence Diagram Laporan Penjualan

Page 41: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

64

5. Sequence Diagram Kartu Stok

sd sequence diagram kartu stok

admin

form kartu stok control data kartu

stok

kartu stok

set(jns_obat)

keluar()

display(kd_stok)

cetak()

get(stok_obat)

masuk()

set(exp)

get(nm_obat)

reset()

get(jns_obat)

get(exp)

ubah()

set(kd_stok)

simpan()

get(kd_stok)

set(stok_obat)

set(nm_obat)

hapus()

Gambar.III.25.

Sequence Diagram Kartu Stok

Page 42: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

65

3.4.5. Deployment Diagram

deployment deployment

Aplikasi Serv er

Sistem informasi

penjualan obat

XAMPP

Personal Computer

My Sql

Komputer

HTTP<<Conection>>

<<JDBC>>

Db_penjualan

Gambar III.26.

Deployment Diagram Sistem Informasi Akuntansi Penjualan Obat

Page 43: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

66

3.4.6. User Interface

1. Menu login

Gambar III.27.

Menu Login

2. Menu utama

Gambar III.28.

Menu Utama

Page 44: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

67

3. Menu file master

Gambar III.29.

Menu File Master

4. Form data user

Gambar III.30.

Menu Data User

Page 45: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

68

5. Form data obat

Gambar III.31.

Menu Data Obat

6. Form data perkiraan

Gambar III.32.

Menu Data Perkiraan

Page 46: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

69

7. Form data customer

Gambar III.33.

Menu Data Customer

8. Menu transaksi

Gambar III.34.

Menu Transaksi

Page 47: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

70

9. Form data penjualan

Gambar III.35.

Menu Data Penjualan

Page 48: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

71

10. Form data detail penjualan

Gambar III.36.

Menu Data Detail Penjualan

Page 49: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

72

11. Form data resep

Gambar III.37.

Menu Data Resep

12. Form data jurnal

Gambar III.38.

Menu Data Jurnal

Page 50: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

73

13. Menu laporan

Gambar III.39.

Menu Laporan

14. Laporan Penjualan

Gambar III.40.

Menu Data Laporan Penjuala

Page 51: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

74

15. Form kartu stok

Gambar III.41.

Menu Data Kartu Stok

3.5. Implementasi

3.5.1. Code Generation

1. Data penjualan

package multifromfram;

import Apotek_harum_GUI.menu_utama;

import java.awt.Dimension;

import java.awt.Toolkit;

import java.io.File;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.util.JRLoader;

Page 52: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

75

import net.sf.jasperreports.view.JasperViewer;

/**

*

* @author L E N O V O

*/

public class data_penjualan extends javax.swing.JFrame {

String header[]={"Kode penjualan","Tanggal penjualan","Kode

customer","Catatan","Subtotal","Status"};

Connection con;

Statement st;

koneksi kon=new koneksi();

private DefaultTableModel tabMode;

String query;

String nama,skrg;

private Dimension dimensi = Toolkit.getDefaultToolkit().getScreenSize();

public data_penjualan() {

initComponents();

bersih();

TampilDataTabel();

cmbCust(); this.setLocation(dimensi.width/2 -

this.getWidth()/2,dimensi.height/2 - this.getHeight()/2);

}

/**

* This method is called from within the constructor to initialize the

form.

* WARNING: Do NOT modify this code. The content of this method is

always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

lbl_kodepenjualan = new javax.swing.JLabel();

txt_kodepenjualan = new javax.swing.JTextField();

bt_tambah = new javax.swing.JButton();

bt_simpan = new javax.swing.JButton();

lbl_tglpenjualan = new javax.swing.JLabel();

lbl_jumlah = new javax.swing.JLabel();

lbl_jenisobat = new javax.swing.JLabel();

txt_catatan = new javax.swing.JTextField();

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

lbl_kodecustomer = new javax.swing.JLabel();

Page 53: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

76

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

jPanel1 = new javax.swing.JPanel();

lbl_datapenjualan = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

myTabel = new javax.swing.JTable();

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

txt_tanggalpenjualan = new javax.swing.JTextField();

lbl_jumlah1 = new javax.swing.JLabel();

txt_namacustomer = new javax.swing.JTextField();

bt_keluar = new javax.swing.JButton();

bt_cetak = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CL

OSE);

lbl_kodepenjualan.setText("Kode penjualan");

txt_kodepenjualan.addActionListener(new

java.awt.event.ActionListener() {

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

txt_kodepenjualanActionPerformed(evt);

}

});

bt_tambah.setText("RESET");

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

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

bt_tambahActionPerformed(evt);

}

});

bt_simpan.setText("SIMPAN");

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

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

bt_simpanActionPerformed(evt);

}

});

lbl_tglpenjualan.setText("Tanggal penjualan");

lbl_jumlah.setText("Nama Customer");

lbl_jenisobat.setText("Status");

txtDate.addPropertyChangeListener(new

java.beans.PropertyChangeListener() {

Page 54: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

77

public void propertyChange(java.beans.PropertyChangeEvent evt)

{

txtDatePropertyChange(evt);

}

});

lbl_kodecustomer.setText("Kode customer");

cmb_status.setModel(new

javax.swing.DefaultComboBoxModel<>(new String[] { "resep",

"nonresep (bebas)" }));

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

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

cmb_statusActionPerformed(evt);

}

});

jPanel1.setBorder(new

javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAI

SED));

lbl_datapenjualan.setFont(new java.awt.Font("Times New Roman",

1, 18)); // NOI18N

lbl_datapenjualan.setText("DATA PENJUALAN");

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(192, 192, 192)

.addComponent(lbl_datapenjualan)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

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

LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(lbl_datapenjualan)

.addContainerGap(14, Short.MAX_VALUE))

);

Page 55: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

78

jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Data

Penjualan"));

myTabel.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, null, null, null, null},

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

},

new String [] {

"Kode penjualan", "Tanggal penjualan", "Kode customer ",

"Catatan", "Subtotal", "Status"

}

));

myTabel.addMouseListener(new java.awt.event.MouseAdapter() {

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

myTabelMouseClicked(evt);

}

});

jScrollPane1.setViewportView(myTabel);

tabMode=new DefaultTableModel(null,header);

myTabel.setModel(tabMode);

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

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

LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

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

.addContainerGap())

);

jPanel2Layout.setVerticalGroup(

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

LEADING)

Page 56: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

79

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 120,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(22, Short.MAX_VALUE))

);

cmb_kodecustomer.setModel(new

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

cmb_kodecustomer.addActionListener(new

java.awt.event.ActionListener() {

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

cmb_kodecustomerActionPerformed(evt);

}

});

lbl_jumlah1.setText("Catatan");

bt_keluar.setText("KELUAR");

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

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

bt_keluarActionPerformed(evt);

}

});

bt_cetak.setText("CETAK");

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

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

bt_cetakActionPerformed(evt);

}

});

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN

G)

.addGroup(layout.createSequentialGroup()

.addGap(25, 25, 25)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING, false)

Page 57: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

80

.addComponent(lbl_tglpenjualan,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addComponent(lbl_kodepenjualan,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.TRAILING, false)

.addComponent(lbl_jumlah,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addComponent(lbl_kodecustomer,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addComponent(lbl_jumlah1,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addComponent(lbl_jenisobat,

javax.swing.GroupLayout.PREFERRED_SIZE, 88,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(23, 23, 23)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING)

.addComponent(cmb_status,

javax.swing.GroupLayout.PREFERRED_SIZE, 227,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txt_namacustomer,

javax.swing.GroupLayout.PREFERRED_SIZE, 227,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txt_catatan,

javax.swing.GroupLayout.PREFERRED_SIZE, 227,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.TRAILING, false)

.addGroup(layout.createSequentialGroup()

.addComponent(txt_tanggalpenjualan,

javax.swing.GroupLayout.PREFERRED_SIZE, 193,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 58: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

81

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addComponent(txtDate,

javax.swing.GroupLayout.PREFERRED_SIZE, 29,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(cmb_kodecustomer, 0,

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

.addComponent(txt_kodepenjualan)))))

.addContainerGap(219, Short.MAX_VALUE))

.addComponent(jPanel1,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(bt_simpan)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addComponent(bt_tambah,

javax.swing.GroupLayout.PREFERRED_SIZE, 71,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(316, 316, 316)

.addComponent(bt_keluar,

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

.addComponent(jPanel2,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

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

layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(bt_cetak)))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN

G)

.addGroup(layout.createSequentialGroup()

.addGap(0, 0, 0)

.addComponent(jPanel1,

javax.swing.GroupLayout.PREFERRED_SIZE,

Page 59: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

82

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

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

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(txt_kodepenjualan,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lbl_kodepenjualan,

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.LEADING)

.addComponent(txtDate,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(lbl_tglpenjualan,

javax.swing.GroupLayout.PREFERRED_SIZE, 19,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txt_tanggalpenjualan,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(lbl_kodecustomer,

javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(cmb_kodecustomer,

javax.swing.GroupLayout.PREFERRED_SIZE,

Page 60: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

83

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(10, 10, 10)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(txt_namacustomer,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lbl_jumlah,

javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(txt_catatan,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(lbl_jumlah1,

javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELAT

ED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(lbl_jenisobat,

javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(cmb_status,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignme

nt.BASELINE)

.addComponent(bt_simpan)

.addComponent(bt_tambah)

.addComponent(bt_keluar))

.addGap(18, 18, 18)

Page 61: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

84

.addComponent(jPanel2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNREL

ATED)

.addComponent(bt_cetak)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

pack();

}// </editor-fold>

private void cmb_statusActionPerformed(java.awt.event.ActionEvent

evt) {

// TODO add your handling code here:

}

private void

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

// TODO add your handling code here:

}

private void bt_tambahActionPerformed(java.awt.event.ActionEvent

evt) {

bersih(); // TODO add your handling code here:

}

private void bt_simpanActionPerformed(java.awt.event.ActionEvent

evt) {

Simpan(); // TODO add your handling code here:

}

private void txtDatePropertyChange(java.beans.PropertyChangeEvent

evt) {

try{

String tampilan ="yyyy-MM-dd" ;

SimpleDateFormat fm = new SimpleDateFormat(tampilan);

String tanggal = String.valueOf(fm.format(txtDate.getDate()));

txt_tanggalpenjualan.setText(tanggal);

}catch(Exception e){} // TODO add your handling code here:

}

private void

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

String kb=cmb_kodecustomer.getSelectedItem().toString();

Page 62: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

85

String nm_cust="";

query = "Select * From `tb_customer` where `kd_cust` like '"+kb+"'";

ResultSet rs;

try {

rs = st.executeQuery(query);

if(rs.next()) {

nm_cust = rs.getString("nm_cust");

}

} catch (SQLException ex) {}

txt_namacustomer.setText(nm_cust);

}

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

String

kd=String.valueOf(myTabel.getValueAt(myTabel.getSelectedRow(),0));

this .dispose();

new data_detailpenjualan(kd).show();

// TODO add your handling code here:

}

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

{

this.dispose();

new menu_utama().show(); // TODO add your handling code

here:

}

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

{

try{

String namaFile="report/penjualan.jasper";

HashMap parameter=new HashMap();

Connection

kon=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_penj

ualan","root","");

File laporanFile=new File(namaFile);

JasperReport jasperReport=(JasperReport)

JRLoader.loadObject(laporanFile.getPath());

JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,

parameter, kon);

JasperViewer.viewReport(jasperPrint,false);

JasperViewer.setDefaultLookAndFeelDecorated(true);

}catch (Exception ex){

} // TODO add your handling code here:

}

Page 63: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

86

/**

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

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

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(data_penjualan.class.getName()).log(ja

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

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(data_penjualan.class.getName()).log(ja

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

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(data_penjualan.class.getName()).log(ja

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

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(data_penjualan.class.getName()).log(ja

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

}

//</editor-fold>

/* Create and display the form */

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

public void run() {

new data_penjualan().setVisible(true);

}

});

}

Page 64: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

87

// Variables declaration - do not modify

private javax.swing.JButton bt_cetak;

private javax.swing.JButton bt_keluar;

private javax.swing.JButton bt_simpan;

private javax.swing.JButton bt_tambah;

private javax.swing.JComboBox<String> cmb_kodecustomer;

private javax.swing.JComboBox<String> cmb_status;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JLabel lbl_datapenjualan;

private javax.swing.JLabel lbl_jenisobat;

private javax.swing.JLabel lbl_jumlah;

private javax.swing.JLabel lbl_jumlah1;

private javax.swing.JLabel lbl_kodecustomer;

private javax.swing.JLabel lbl_kodepenjualan;

private javax.swing.JLabel lbl_tglpenjualan;

private javax.swing.JTable myTabel;

private com.toedter.calendar.JDateChooser txtDate;

private javax.swing.JTextField txt_catatan;

private javax.swing.JTextField txt_kodepenjualan;

private javax.swing.JTextField txt_namacustomer;

private javax.swing.JTextField txt_tanggalpenjualan;

// End of variables declaration

void Simpan(){

String kd_penj= txt_kodepenjualan.getText();

String tgl_penj=txt_tanggalpenjualan.getText();

String kd_cust = cmb_kodecustomer.getSelectedItem().toString();

String catatan= txt_catatan.getText();

String subtotal= "0";

String status = cmb_status.getSelectedItem().toString();

try{

kon.QUERY("INSERT INTO `tb_penjualan`(`kd_penj`, `tgl_penj`,

`kd_cust`, `catatan`,`subtotal`,`status`) VALUES

('"+kd_penj+"','"+tgl_penj+"','"+kd_cust+"','"+catatan+"','"+subtotal+"','"+

status+"')","Simpan");

TampilDataTabel();

bersih();

}catch(Exception sqle){

JOptionPane.showMessageDialog(rootPane,"Data Gagal

Simpan"+sqle.getMessage());

}

}

Page 65: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

88

void Ubah(){

String kd_penj = txt_kodepenjualan.getText();

String tgl_penj = txt_tanggalpenjualan.getText();

String kd_cust = cmb_kodecustomer.getSelectedItem().toString();

String catatan= txt_catatan.getText();

String subtotal = "";

String status= cmb_status.getSelectedItem().toString();

try{

kon.QUERY("UPDATE `tb_penjualan` SET

`kd_penj`='"+kd_penj+"',`tgl_penj`='"+tgl_penj+"',`kd_cust`='"+kd_cust+

"',`catatan`='"+catatan+"' WHERE `kd_penj`='"+kd_penj+"'","Ubah");

TampilDataTabel();

bersih();

}catch(Exception sqle){

JOptionPane.showMessageDialog(rootPane,"Data Gagal

Simpan"+sqle.getMessage());

}

}

void Hapus(){

String kd_penj = txt_kodepenjualan.getText();

try{

kon.QUERY("DELETE FROM `tb_penjualan` WHERE

`kd_penj`='"+kd_penj+"'","Hapus");

TampilDataTabel();

bersih();

}catch(Exception sqle){

JOptionPane.showMessageDialog(rootPane,"Data Gagal

Hapus"+sqle.getMessage());

}

}

void KodeOtomatis(){

String kd_penj="";//

try{

con=kon.open();

st=con.createStatement();

query="SELECT * FROM tb_penjualan order by kd_penj desc";

ResultSet rs=st.executeQuery(query);

if(rs.next()){

Page 66: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

89

kd_penj=rs.getString("kd_penj");

}

}catch(SQLException sqle){kd_penj="";}

if(kd_penj.length() <1){kd_penj="000000";}

String ur=kd_penj.substring(3,6);

int u=Integer.parseInt(ur)+1;

System.out.println(ur+"=="+u);

if(u<10){ur="00"+u;}

else if(u<100){ur="0"+u;}

else {ur=""+u;}

kd_penj="PNJ"+ur;

txt_kodepenjualan.setText(kd_penj);

}

void bersih(){

txt_kodepenjualan.setText("");

txt_tanggalpenjualan.setText("");

cmb_kodecustomer.setSelectedItem("");

txt_catatan.setText("");

cmb_status.setSelectedItem(0);

bt_simpan.setEnabled(true);

KodeOtomatis();

txtDate.setDateFormatString("yyyy-MM-dd");

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

skrg=sdf.format(new Date());

txt_tanggalpenjualan.setText(skrg);

}

void TampilDataTabel(){

removeTable();

try{

con=kon.open();

st=con.createStatement();

query="SELECT * FROM tb_penjualan order by kd_penj asc";

ResultSet rs=st.executeQuery(query);

while(rs.next()){

String kd_penj=rs.getString("kd_penj");

String tgl_penj=rs.getString("tgl_penj");

String kd_cust=rs.getString("kd_cust");

String catatan=rs.getString("catatan");

String subtotal=rs.getString("subtotal");

String status=rs.getString("status");

String data[]={kd_penj,tgl_penj,kd_cust,catatan,subtotal,status};

tabMode.addRow(data);

}

}catch(SQLException sqle){

Page 67: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

90

JOptionPane.showMessageDialog(null,"Data Gagal Masuk

Tabel"+sqle);

}

}

void removeTable(){

try{

for(int t=tabMode.getRowCount();t>0;t--)

{tabMode.removeRow(0);}

}catch(Exception ex){ System.out.println(ex);

}

}

void Lihat(){

txt_kodepenjualan.setText(String.valueOf(myTabel.getValueAt(myTabel.

getSelectedRow(),0)));

txt_tanggalpenjualan.setText(String.valueOf(myTabel.getValueAt(myTab

el.getSelectedRow(),1)));

cmb_kodecustomer.setSelectedItem(String.valueOf(myTabel.getValueAt(

myTabel.getSelectedRow(),2)));

txt_catatan.setText(String.valueOf(myTabel.getValueAt(myTabel.getSelec

tedRow(),3)));

cmb_status.setSelectedItem(String.valueOf(myTabel.getValueAt(myTabel

.getSelectedRow(),5)));

bt_simpan.setEnabled(false);

}

void cmbCust(){

String[]ar=new String[1000];

int n=0;

try {

con = kon.open();

st = con.createStatement();

query = "SELECT * FROM tb_customer order by kd_cust asc ";

ResultSet rs = st.executeQuery(query);

while (rs.next()) {

String kd_cust = rs.getString("kd_cust");

ar[n]=kd_cust;n++;

}

}

catch(Exception ee){}

String []ar2=new String[n];

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

Page 68: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

91

ar2[i]=ar[i];

}

cmb_kodecustomer.setModel(new

javax.swing.DefaultComboBoxModel(ar2));

}

}

3.5.2. Blackbox Testing

1. Blackbox Testing Form Login

Tabel III.11.

Hasil Pengujian Blackbox Testing Form Login

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Input username

dan password

(data benar)

Username:

input

username

(benar)

Password:

input

password

(benar)

sistem

menampilkan

menu utama

Sesuai

harapan

Valid

2. Input username

dan password

(data salah)

Username:

input

username

(salah)

Password:

input

password

(salah)

Sistem tidak

akan

menampilkan

menu utama

Sesuai

harapan

Valid

Page 69: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

92

2. Blackbox Testing Data penjualan

Tabel III. 12.

Hasil Pengujian Blackbox Testing Data Penjualan

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Kode penjualan

secara otomatis

muncul, tanggal

penjualan wajib

diisi

Tanggal

penjualan:

diklik

sistem

menampilkan

data tanggal

bulan dan

tahun

Sesuai

harapan

Valid

2. Mengklik pilihan

kode customer

mengetikan nama

customer dan

catatan boleh

tidak diisi.

Kode

customer

: tampil

dan

dipilih

Sistem akan

menampilkan

kode customer

Sesuai

harapan

Valid

3. Status wajib

dipilih untuk

mengetahui

dengan resep atau

nonresep.

Status:

muncul

pilihan

resep dan

nonresep

(bebas)

Sistem akan

menampilkan

pilihan status

resep dan

nonresep

(bebas)

Sesuai

harapan

Valid

4. Mengklik tombol

simpan maka

akan menyimpan

data

Muncul

pesan:

data

disimpan

Sistem akan

menyimpan

data

Sesuai

harapan

Valid

5. Mengklik tombol

reset maka data

yang akan diinput

terhapus dan tidak

tersimpan.

Secara

otomatis

input data

: bersih

Sistem akan

membersihkan

data yang

tidak jadi

diinput .

Sesuai

harapan

Valid

6. Mengklik tombol

cetak maka data

dicetak.

Klik

tombol

cetak:

data

dicetak

Sistem akan

mencetak data

yang dipilih.

Sesuai

harapan

Valid

7. Mengklik tombol

keluar maka data

keluar dari form

Klik

tombol

keluar:

Sistem akan

keluar dari

form data

Sesuai

harapan

Valid

Page 70: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

93

data penjualan.

keluar

dari form

data

penjualan

penjualan.

3. Blackbox Testing Data Detail Penjualan

Tabel III.13.

Hasil Pengujian Blackbox Testing Data Detail Penjualan

No. Skenario

pengujian

Test case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1. Mengklik pilihan

Kode obat secara

otomatis muncul,

dan dipilih

Kode

obat

penjualan

: diklik

Sistem

menampilkan

kode obat

Sesuai

harapan

Valid

2. Meninput nama

obat, jenis obat,

harga obat jumlah

dan total

Tampil

inputan

data

Sistem

menampilkan

form untuk

diisi

Sesuai

harapan

Valid

3. Mengklik tombol

simpan maka

akan menyimpan

data

Muncul

pesan

:data

disimpan

Sistem akan

menyimpan

data

Sesuai

harapan

Valid

4. Mengklik tombol

ubah maka akan

mengubah data

Muncul

pesan

:data

diubah

Sistem akan

mengubah

data

Sesuai

harapan

Valid

5. Mengklik tombol

reset maka data

yang akan diinput

terhapus dan tidak

tersimpan.

Secara

otomatis

input data

: bersih

Sistem akan

membersihkan

data yang

tidak jadi

diinput.

Sesuai

harapan

Valid

6. Mengklik tombol

hapus maka data

di hapus

Muncul

pesan

:data

dihapus

Sistem akan

menghapus

data

Sesuai

harapan

Valid

7. Mengklik tombol

hapus transaksi

Muncul

pesan

Sistem akan

menghapus

Sesuai

harapan

Valid

Page 71: BAB III PEMBAHASAN - repository.bsi.ac.id · sampai menengah keatas. Seiring dengan perkembangan kebutuhan masyarakat akan layanan bidang kesehatan Apotek Harum membuka praktek dokter

94

maka data

transaksi di hapus

:data

transaksi

dihapus

data

tranksaksi

8. Mengklik tombol

cetak maka data

dicetak.

Klik

tombol

cetak:

data

dicetak

Sistem akan

mencetak data

yang dipilih.

Sesuai

harapan

Valid

9. Mengklik tombol

tutup maka data

keluar dari form

data detail

penjualan.

Klik

tombol

tutup:

keluar

dari form

data

penjualan

Sistem akan

keluar dari

form data

detail

penjualan.

Sesuai

harapan

Valid

3.5.3. Spesifikasi Hardware dan Sofware

Kebutuhan Keterangan

Hardware

Processor AMD E-1 2100 APU with Radeon ™ HD graphics (2 CPU s)

RAM 2048 MB

Harddisk 1.00 GB

Monitor Generic Pnp Monitor

Keyboard Standard PS/2 Keyboard

Printer Laser jet

Mouse Standard Mouse

Software

System Operasi Windows 7, Windows 10

Web Browser Mozila Firefox, Internet Exploer, Google Crome

Database Server Java Application, Enterprise Architect, NetBeans IDE 8.1