bab iii pembahasan - repository.bsi.ac.id · toko obat ini telah mendapat ijin dari departemen...

61
24 BAB III PEMBAHASAN 3.1. Tinjauan Perusahaan Tinjauan perusahaan ini berisi tentang sejarah berdirinya Apotek Cito, struktur organisasi dan fungsi dari masing-masing bagian yang ada dalam Apotek, serta beberapa informasi tambahan yang didapat penulis selama proses penelitian. Penulis melakukan penelitian pada Apotek Cito. Apotek Cito merupakan usaha yang bergerak pada penjualan obat yang beralamat di Jl. Kertabumi No.271 Karawang, Kabupaten Karawang Provinsi Jawa Barat. Kode pos 41311 3.1.1. Sejarah Perusahaan Apotek Cito didirikan pada tahun 2016 yang beralamat di Jl. Kertabumi No.271 Karawang, Kabupaten Karawang Provinsi Jawa Barat. Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito berkembang sangat pesat. Saat ini Apotek Cito menyediakan dan menerima obat berdasarkan resep ataupun obat tanpa resep (obat bebas dan obat bebas terbatas). Apotek Cito melakukan kegiatannya mulai pukul 16.00 sampai dengan pukul 22.00, buka setiap hari Senin- Jum‟at.

Upload: others

Post on 31-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

24

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Tinjauan perusahaan ini berisi tentang sejarah berdirinya Apotek Cito,

struktur organisasi dan fungsi dari masing-masing bagian yang ada dalam Apotek,

serta beberapa informasi tambahan yang didapat penulis selama proses penelitian.

Penulis melakukan penelitian pada Apotek Cito. Apotek Cito merupakan

usaha yang bergerak pada penjualan obat yang beralamat di Jl. Kertabumi No.271

Karawang, Kabupaten Karawang Provinsi Jawa Barat. Kode pos 41311

3.1.1. Sejarah Perusahaan

Apotek Cito didirikan pada tahun 2016 yang beralamat di Jl. Kertabumi

No.271 Karawang, Kabupaten Karawang Provinsi Jawa Barat. Toko obat ini telah

mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja:

KP.01.01.1.3.0587.

Pada tahun 2017 Apotek Cito berkembang sangat pesat. Saat ini Apotek Cito

menyediakan dan menerima obat berdasarkan resep ataupun obat tanpa resep (obat

bebas dan obat bebas terbatas). Apotek Cito melakukan kegiatannya mulai pukul

16.00 sampai dengan pukul 22.00, buka setiap hari Senin-Jum‟at.

Page 2: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

25

3.1.2. Struktur Organisasi Perusahaan

Berikut ini struktur organisasi yang bertanggung jawab terhadap berjalannya

Apotek Cito:

STRUKTUR ORGANISASI

Sumber : Struktur Organisasi Apotek Cito (2019)

Gambar III.1. Struktur Organisasi Apotek Cito

Page 3: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

26

3.1.3. Uraian Tugas dan Tanggung Jawab

1. Pemilik Apotek

a. Bertugas dan bertanggung jawab sebagai pemimpin jalannya Apotek .

b. Memastikan bahwa seluruh pengoperasian Apotek berjalan dengan lancar dan

sesuai harapan serta menganalisa penerimaan kas.

2. HRD

a. Membuat job description dan rekrutmen

b. Mengelola absensi karyawan dan payroll yang meliputi gaji, tunjangangan,

PPh 21, upah lembur dan bonus karyawan

3. Apoteker Pengelola Apotek

a. Memimpin seluruh kegiatan, baik kegiatan teknis maupun non teknis

kefarmasian sesuai dengan ketentuan maupun perundangan yang berlaku.

b. Melakukan pengembangan usaha apotek agar dapat memberikan hasil yang

optimal.

4. Bagian Keuangan

a. Melaksanakan pengelolaan penatausahaan keuangan dengan tertib

b. Menyelenggarakan kepengurusan keuangan.

5. Bagian Pembelian

a. Mencatat dan menerima data permintaan obat yang harus dibeli.

b. Melaksanakan pembelian

6. Bagian Koordinator Pelayanan

a. Mengkoordinasikan pelaksanaan dan program dan kegiatan medik.

b. Mengevaluasi kegiatan pelaksanaan program pelayanan untuk

mengetahuitingkat pencapaian.

Page 4: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

27

7. Kasir

a. Melakukan pelayanan penjualan obat pada Apotek Cito.

b. Menerima pembayaran dan membuatkan laporan penerimaan kas.

3.2. Tinjauan Kasus

Penulis menguraikan gambaran tentang bagaimana prosedur dari sistem

penerimaan kas yang ada di perusahaan sesuai dengan ruang lingkup tugas akhir

yang telah penulis buat, yakni sebagai berikut:

3.2.1. Proses Bisnis Sistem Berjalan

1. Proses Pemesanan

Konsumen datang langsung ke toko dan memberikan resep obat. Kasir

menerima resep kemudian mengecek ketersediaan obat. Jika obat tersedia

maka kasir memberitahukan kepada konsumen bahwa obat berdasarkan resep

tersebut tersedia di apotek. Jika tidak tersedia maka kasir memberitahukan

dan menyarankan obat lain yang sejenis dengan resep obat. Jika konsumen

setuju maka kasir akan menyiapkan obat, tetapi jika konsumen tidak setuju

maka kasir mengembalikan resep obat.

2. Proses Pembayaran

Konsumen melakukan pembayaran kemudian kasir membuatkan kwitansi.

Kwitansi berwarna putih di serahkan kepada konsumen. Sedangkan kwitansi

berwarna merah diarsipkan.

3. Proses Pembuatan Laporan

Setiap akhir bulan, kasir mengumpulkan nota penjualan berwarna merah dan

menghitung keseluruhan transaksi pada bulan tersebut. Kasir menyerahkan

Page 5: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

28

laporan penerimaaan kas kepada pemilik. Pemilik menerima laporan

penerimaan kas periode 1 bulan.

3.2.2. Activity Diagram Sistem Berjalan

Sumber : Data Olahan Penulis

Gambar III.2. Activity Diagram Proses Sistem Berjalan

Page 6: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

29

3.2.3. Dokumen Masukan

1. Nama Dokumen : Resep Obat

Fungsi : Sebagai dokumen resep dari dokter

Sumber : Konsumen

Tujuan : Kasir

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap adanya pembelian obat

3.2.4. Dokumen Keluaran

1. Nama Dokumen : Kwitansi

Fungsi : Sebagai transaksi penjualan

Sumber : Kasir

Tujuan : Konsumen

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap adanya proses penjualan

4. Nama Dokumen : Laporan Penerimaan Kas

Fungsi : Sebagai laporan penerimaan kas yang di dapat

Sumber : Kasir

Tujuan : Pemilik

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap Bulan

Page 7: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

30

3.2.5. Permasalahan Pokok

Permasalahan yang sering muncul pada sistem berjalan yang ada pada

Apotek Cito adalah sebagai berikut:

1. Proses penjualan dan penerimaan obat yang berjalan pada Apotek Cito masih

menggunakan cara sederhana sehingga seringkali menyulitkan Kasir saat

proses pengecekan obat, proses pencatatan penjualan dan proses pembuatan

laporan penerimaan kas.

2. Media dokumen pencatatan yang masih menggunakan kertas sehingga

keamanannya kurang terjamin. 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

mempermudah proses pencarian obat, proses penjualan serta proses

pembuatan laporan yang sistematis sehingga meminamilisir kesalahan dalam

pencatatan obat ataupun pembuatan 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. Sehingga dapat dengan mudah melakukan pencarian data jika sewaktu-

waktu diperlukan.

Page 8: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

31

3.3. Analisis Kebutuhan Software

Penulis mendokumentasikannya melalui Analisis Kebutuhan, Use Case

Diagram, dan Activity Diagram sesuai dengan tinjauan kasus diatas.

3.3.1. Analisis 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 Resep

c) Kasir Mengelola Data Obat

d) Kasir Mengelola Data Akun

A.2.2. Kasir Mengakses Menu Transaksi

a) Kasir Mengelola Penjualan

b) Kasir Mengelola Resep

c) Kasir Mengelola Piutang

d) 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

Page 9: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

32

3.3.2. Usecase Diagram

Berdasarkan analisis kebutuhan yang telah diuraikan diatas. Berikut ini

dibuatkan use case diagram sesuai kebutuhan menu perangkat lunak yang akan

dibuat, beserta deskripsi detail dari masing-masing diagramnya.

A. Use Case Diagram Kasir

Use Case Diagram Kasir

Login

Master

Batal

<<include>>

Kasir

Transaksi

Menu Utama

Pengguna Obat Akun

<<extend>> <<extend>> <<extend>>

Resep

<<extend>>

<<include>> <<include>>

Jurnal

<<extend>>

Penjualan

<<extend>>

Piutang

<<extend>>

Gambar III.3. 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, obat dan akun

Skenario Utama

Aktor Kasir

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

Page 10: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

33

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 obat Sistem akan menampilkan form submenu akun

Sistem akan menampilkan form submenu resep Sistem akan menampilkan form submenu penjualan

Sistem akan menampilkan form submenu piutang Sistem akan menampilkan form submenu jurnal

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

B. Use Case Diagram Pemilik

Gambar III.4. 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

Page 11: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

34

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.

3.3.3. Activity Diagram

Berikut ini dibuatkan activity diagram yang lebih rinci dan detail dalam

menggambarkan alur kerja sistem yang juga dapat digunakan sebagai pengantar

dalam tahap pembuatan desain.

1. Activity Diagram Menu Login

Activity Diagram Menu Login

Sistem Kasir

START

Melakukan

Login

Masukkan

Kode User

Masukkan

Password

Cek Kode User

dan Password

Selamat Datang

Kasir

Data Tidak

Ditemukan

VALID?

[VALID?]

END

[TIDAK

VALID]

Mengakses

Menu Utama

Gambar III.5. Activity Diagram Login

Page 12: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

35

2. Activity Diagram Menu Utama

Activity Diagram Menu Utama

SistemKasir

Ph

ase

START

Mengakses

Menu Utama

Menampilkan

Menu Utama

Menu

Master

Menu

Transaksi

Keluar Sistem

END

Menu

Logout

Gambar III.6. Activity Diagram Menu Utama

Page 13: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

36

3. Activity Diagram Submenu Pengguna

Activity Diagram Menu Master Submenu Pengguna

SistemKasir

Ph

ase

START

Mengklik Menu Master

Submenu Pengguna

Menampilkan Form

Input Pengguna

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

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

Klik

Edit

Gambar III.7. Activity Diagram Submenu Pengguna

Page 14: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

37

4. Activity Diagram Menu Obat

Activity Diagram Menu Master Submenu Obat

SistemKasir

Ph

ase

START

Mengklik Menu Master

Submenu Obat

Menampilkan Form

Input Obat

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

Input Data Yang

Ingin diubah

Tampil

Info Hapus

Proses

Hapus data

Klik

Simpan

Proses simpan

Data

Textbox

Kembali Bersih

Input

Kode Obat

Nama Obat

Jenis Obat

Harga Jual

Stok

Klik

Batal

Klik

Edit

Gambar III.8. Activity Diagram Submenu Obat

Page 15: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

38

5. Activity Diagram Menu Akun

Activity Diagram Menu Master Submenu Akun

SistemKasir

Ph

ase

START

Mengklik Menu Master

Submenu Akun

Menampilkan Form

Input Akun

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

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

Klik

Edit

Gambar III.9. Activity Diagram Submenu Akun

Page 16: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

39

6. Activity Diagram Menu Resep

Activity Diagram Menu Transaksi Submenu Resep

SistemKasir

Ph

ase

START

Mengklik Menu Transaksi

Submenu Resep

Menampilkan Form

Input Resep

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

Input Data Yang

Ingin diubah

Tampil

Info Hapus

Proses

Hapus data

Klik

Simpan

Proses simpan

Data

Textbox

Kembali Bersih

Input

Kode Resep

Tanggal

Nama Pengguna

Nama Pasien

Umur

Okter

Alamat Pasien

Klik

Batal

Klik

Edit

Gambar III.10. Activity Diagram Submenu Resep

Page 17: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

40

7. Activity Diagram Menu Penjualan

Activity Diagram Menu Transaksi Submenu Penjualan

SistemKasir

Ph

ase

START

Mengklik Menu Transaksi

Submenu Penjualan

Menampilkan Form

Input Penjualan

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

Input Data Yang

Ingin diubah

Tampil

Info Hapus

Proses

Hapus data

Klik

Simpan

Proses simpan

Data

Textbox

Kembali Bersih

Input

Kode Penjualan

Tanggal

Nama Pengguna

Kode Obat

Nama Obat

Harga Obat

Jumlah Beli

Sub Total

Klik

Batal

Klik

Edit

Gambar III.11 Activity Diagram Submenu Penjualan

Page 18: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

41

8. Activity Diagram Submenu Piutang

Activity Diagram Menu Transaksi Submenu Piutang

SistemKasir

Phase

START

Mengklik Menu Transaksi

Submenu Piutang

Menampilkan Form

Input Piutang

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

Input Data Yang

Ingin diubah

Tampil

Info Hapus

Proses

Hapus data

Klik

Simpan

Proses simpan

Data

Textbox

Kembali Bersih

Input

Kode Piutang

Kode Pengguna

Tanggal

Pembayar_Piutang

Total

Keterangan

Klik

Batal

Klik

Edit

Gambar III.12. Activity Diagram Submenu Piutang

Page 19: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

42

9. Activity Diagram Menu Jurnal

Activity Diagram Menu Transaksi Submenu Jurnal

SistemKasir

Ph

ase

START

Mengklik Menu Transaksi

Submenu Jurnal

Menampilkan Form

Input Jurnal

Tampil Form

Input

Proses Ubah

Data

Klik

Ubah

Klik

Hapus

END

Tidak

Ya

Klik Tambah Pilih Data

Input Data Yang

Ingin diubah

Tampil

Info Hapus

Proses

Hapus data

Klik

Simpan

Proses simpan

Data

Textbox

Kembali Bersih

Input

Kode Jurnal

Tanggal

Keterangan

Kode Akun

Debit

Kredit

Klik

Batal

Klik

Edit

Gambar III.13. Activity Diagram Submenu Jurnal

Page 20: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

43

3.4. Desain

Desain perangkat lunak adalah proses multi langkah yang fokus pada desain

pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat

lunak, respresentasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasi

kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar

dapat diimplementasikan menjadi program pada tahap selanjutnya.

3.4.1. Entity Relationship Diagram (ERD)

Gambar III.14. Entity Relationship Diagram (ERD)

Page 21: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

44

3.4.2. Logical Record Structure (LRS)

Gambar III.15. Logical Record Structure (LRS)

3.4.3. Spesifikasi File

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_apotek

Fungsi : sebagai penyimpan data pengguna

Tipe File : File Master

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 63 Byte

Page 22: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

45

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

4 Level level Varchar 10

2. Spesifikasi File Obat

Nama File : obat

Akronim : db_apotek

Fungsi : sebagai penyimpan data obat

Tipe File : File Master

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 90 Byte

Kunci field : kode_obat

Software : MySQL

Tabel III.4.

Spesifikasi File Obat

No Elemen Data Nama Field Type Size Keterangan

1 Kode Obat kode_obat Varchar 8 Primary Key

2 Nama Obat nama_obat Varchar 30

3 Jenis Obat Jenis_obat Varchar 30

4 Harga Jual Harga_jual Int 11

5 Stok stok Nt 11

Page 23: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

46

3. Spesifikasi File Akun

Nama File : akun

Akronim : db_apotek

Fungsi : sebagai penyimpan data akun

Tipe File : File Master

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 90 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_obat Varchar 8 Primary Key

2 Nama Obat nama_obat Varchar 30

3 Saldo Normal saldo_normal Varchar 3

4. Spesifikasi File Resep

Nama File : resep

Akronim : db_apotek

Fungsi : sebagai penyimpan data resep

Tipe File : File Transaksi

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 107 Byte

Page 24: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

47

Kunci field : kode_resep

Software : MySQL

Tabel III.6.

Spesifikasi File Resep

No Elemen Data Nama Field Type Size Keterangan

1 Kode Resep kode_resep Varchar 15 Primary Key

2 Tanggal Taggal Varchar 30

3 Total Bayar totalbayar Int 11

4 Kode Pengguna kode_pengguna Varchar 8 Foreign Key

5 Nama Pasien nama_pasien Varchar 30

6 Umur Umur Varchar 3

7 Alamat Alamat Text -

8 Dokter Dokter Varchar 30

5. Spesifikasi File Detail Resep

Nama File : detail_resep

Akronim : db_apotek

Fungsi : sebagai penyimpan data resep

Tipe File : File Transaksi

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 45 Byte

Kunci field : kode_resep

Software : MySQL

Tabel III.7.

Spesifikasi File Detail Resep

No Elemen Data Nama Field Type Size Keterangan

1 Kode Resep kode_resep Varchar 15 Primary Key

2 Kode Obat kode_obat Varchar 8 Primary Key

3 Jumlah Beli jumlahbeli Int 11

4 Subtotal subtotal Int 11

Page 25: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

48

6. Spesifikasi File Penjualan

Nama File : penjualan

Akronim : db_apotek

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.8.

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

4 Kode Pengguna kode_pengguna Varchar 8 Foreign Key

7. Spesifikasi File Detail Penjualan

Nama File : penjualan

Akronim : db_apotek

Fungsi : sebagai penyimpan data penjualan

Tipe File : File Transaksi

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Page 26: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

49

Panjang record : 45 Byte

Kunci field : kode_penjualan

Software : MySQL

Tabel III.9.

Spesifikasi File Detail Penjualan

No Elemen Data Nama Field Type Size Keterangan

1 Kode Penjualan kode_penjualan Varchar 15 Primary Key

2 Kode Obat kode_obat Varchar 8 Foreign Key

3 Jumlah Beli jumlahbeli Int 11

4 Subtotal subtotal Int 11

8. Spesifikasi File Piutang

Nama File : piutang

Akronim : db_apotek

Fungsi : sebagai penyimpan data piutang

Tipe File : File Transaksi

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 66 Byte

Kunci field : kode_piutang

Software : MySQL

Tabel III.10.

Spesifikasi File Piutang

No Elemen Data Nama Field Type Size Keterangan

1 Kode Piutang Kode_piutang Varchar 15 Primary Key

2 Kode Pengguna Kode_pengguna Varchar 10 Foreign Key

3 Tanggal Tanggal Date -

4 Pembayar Pembayaran_piuta Varchar 30

Page 27: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

50

Piutang ng

5 Total Total Int 11

6 Keterangan Keterangan Text -

9. Spesifikasi File Jurnal

Nama File : jurnal

Akronim : db_apotek

Fungsi : sebagai penyimpan data jurnal

Tipe File : File Transaksi

Organisasi File : Indexed Sequential

Akses File : Random

Media : Harddisk

Panjang record : 75 Byte

Kunci field : kode_jurnal

Software : MySQL

Tabel III.11.

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

10. Spesifikasi File Detail Jurnal

Nama File : detail_jurnal

Akronim : db_apotek

Fungsi : sebagai penyimpan data jurnal

Page 28: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

51

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.12.

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

4 Kredit Kredit Int 11

3.4.4. Sequence Diagram

Penulis yang membatasi pembuatan sequence diagram dengan memilih

transaksi bisnis yang utama, yaitu transaksi penjualan:

Page 29: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

52

Kasir

Sequance Diagram Transaksi Penjualan

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

Input Penjualan()

Sistem

Simpan

Data()

Batal()

Manampilkan

kode_penjualan()

tanggal()

Totalbayar()

kode_pengguna()

Menampilkan kode

akun()

Simpanr()

debet()

kredit()

set (data telah

tersimpan)

Gambar III.16. Sequence Diagram

Page 30: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

53

3.4.5. Deployment Diagram

Berikut ini deployment diagram yang dibuat oleh penulis dalam

menggambarkan program aplikasi dan software database yang digunakan dalam

perancangan sistem penerimaan kas.

MAIN

JAVA

<<database>> DATABASE

<<DBMS>> MYSQL

db_apotek.sql

<<device>>

AppApotek

Gambar III.17. Deployment Diagram

Page 31: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

54

3.4.6. User Interface

Berdasarkan anilisis kebutuhan software yang telah dirancang, berikut ini

adalah desain tampilan program yang dibuat penulis:

1. User Interface Form Menu Login

Gambar III.18. Menu Login

2. User Interface Form Menu Utama

Gambar III.19. Menu Utama

Page 32: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

55

3. User Interface Form Menu Pengguna

Gambar III.20. Menu Pengguna

4. User Interface Form Menu Obat

Gambar III.21. Menu Obat

5. User Interface Form Menu Akun

Gambar III.22. Menu Akun

Page 33: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

56

6. User Interface Form Menu Resep

Gambar III.23. Menu Resep

7. User Interface Form Menu Penjualan

Gambar III.24. Menu Penjualan

Page 34: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

57

8. User Interface Form Menu Piutang

Gambar III.25. Menu Piutang

9. User Interface Form Menu Jurnal

Gambar III.26. Menu Jurnal

Page 35: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

58

10. User Interface Kartu Resep

Gambar III.27. Kartu Resep

11. User Interface Nota Penjulan

Gambar III.28. Nota Penjualan

Page 36: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

59

3.5. Implementasi

Implementasi merupakan tahap akhir pada pembahasan laporan tugas akhir

ini, dimana penulis menjelaskan tentang code generation, testing, dan spesifikasi

hardware dan software yang akan diuraikan sebagai berikut:

3.5.1. Code Generation

Penulis akan menampilkan listing program pada form yang terkait dengan

proses bisnis utamanya yaitu proses penjualan:

/* * 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 obat", "Nama obat", "Harga", "Jumlah Beli", "Subtotal"};

/** * Creates new form menupenjualan

*/ public menuPenjualan() {

initComponents(); kon.setKoneksi(); setTanggal();

awal();

Page 37: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

60

kode_pengguna.setVisible(false);

}

public Date date = new Date(); public SimpleDateFormat noformat = new SimpleDateFormat("yyMM"); public String Kodeobat;

public String Namaobat; public String Hargaobat;

public String KodeUser; public String NamaUser;

public String getKodeobat() { return Kodeobat;

} public String getNamaobat() {

return Namaobat; }

public String getHargaobat() { return Hargaobat;

}

public String getKodeUser() { return KodeUser; }

public String getNamaUser() { return NamaUser;

} private void bersih() {

nama_obat.setText(""); jumlahbeli.setText("");

tsubtotal.setText(""); tbayar.setText(""); tkembali.setText("");

ltotal.setText("0"); }

private void nonaktif() { kode.setEditable(false);

tgl.setEditable(false); nama_obat.setEditable(false);

kode_obat.setEditable(false); jumlahbeli.setEditable(false); tsubtotal.setEditable(false);

harga_jual.setEditable(false); tbayar.setEditable(false);

tkembali.setEditable(false);

Page 38: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

61

nama_pengguna.setEditable(false);

}

private void aktif() { kode_obat.setEditable(true); jumlahbeli.setEditable(true);

tbayar.setEditable(true); }

private void setTanggal() { java.util.Date skrg = new java.util.Date();

java.text.SimpleDateFormat kal = new java.text.SimpleDateFormat("yyyy-MM-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_obat";

kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData();

int kolom = m.getColumnCount();

Page 39: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

62

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_obat"); datasementara[x][1] = kon.rs.getString("nama_obat"); datasementara[x][2] = kon.rs.getString("harga_jual");

datasementara[x][3] = kon.rs.getString("jumlahbeli"); 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 obat where kode_obat ='" + kode_obat.getText() + "'";

kon.rs = kon.st.executeQuery(sql); if (kon.rs.next()) {

nama_obat.setText(kon.rs.getString("nama_obat")); harga_jual.setText(kon.rs.getString("harga_jual")); jumlahbeli.requestFocus();

} else { JOptionPane.showMessageDialog(null, "Kode " + kode_obat.getText() +

"tidak ditemukan"); } } catch (SQLException e) {

JOptionPane.showMessageDialog(null, e); }

} private void simpanSementara() {

try { String sql = "insert into sementara values ('" + kode_obat.getText() + "','"

+ nama_obat.getText() + "','" + harga_jual.getText() + "','" + jumlahbeli.getText() + "','" + tsubtotal.getText() + "')";

kon.st.executeUpdate(sql); tampilTabelSementara();

} catch (SQLException e) {

Page 40: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

63

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; ltotal.setText(Integer.toString(total));

try { String sql = "delete from sementara where kode_obat ='" + (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_obat,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);

Page 41: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

64

}

}

private void cetakStruk() { cetakPenjualan mt = new cetakPenjualan(); mt.setLocationRelativeTo(null);

mt.setVisible(true); mt.Kodeobat = kode.getText();

} /**

* 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">//GEN-BEGIN:initComponents

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_obat = new javax.swing.JTextField();

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

nama_obat = 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();

Page 42: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

65

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();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle("Penjualan"); setUndecorated(true); addWindowListener(new java.awt.event.WindowAdapter() {

public void windowActivated(java.awt.event.WindowEvent evt) { formWindowActivated(evt);

} }); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

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)

Page 43: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

66

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(nama_pengguna,

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

jPanel1Layout.setVerticalGroup(

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

.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.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)) );

getContentPane().add(jPanel1, new

org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 690, -1)); jPanel2.setBorder(new

javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));

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

jLabel4.setText("Kode Obat"); kode_obat.addContainerListener(new java.awt.event.ContainerAdapter() {

public void componentAdded(java.awt.event.ContainerEvent evt) { kode_obatComponentAdded(evt);

}

Page 44: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

67

});

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

kode_obatActionPerformed(evt); } });

btbrowse.setText("...");

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

} });

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel5.setText("Nama Obat");

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

jLabel6.setText("Harga Obat"); 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.Alignment.

TRAILING, false)

Page 45: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

68

.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, 85, 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,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(27, 27, 27)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() .addComponent(kode_obat,

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

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btbrowse)) .addComponent(nama_obat)

.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.Alignment.LEADING)

.addComponent(kode_obat) .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)

Page 46: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

69

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(nama_obat, 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.Alignment.TRAILING) .addComponent(harga_jual,

javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

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.Alignment.

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.Alignment.

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 [][] {

Page 47: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

70

{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

java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); tbpenjualan.addKeyListener(new java.awt.event.KeyAdapter() {

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

Page 48: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

71

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)

.addComponent(ltotal, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(49, 49, 49) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

LEADING) .addComponent(jLabel12)

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

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

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.Alignment.

LEADING, false) .addGroup(jPanel4Layout.createSequentialGroup()

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

.addComponent(jLabel11) .addComponent(tbayar,

javax.swing.GroupLayout.PREFERRED_SIZE,

Page 49: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

72

javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.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)) .addContainerGap(29, Short.MAX_VALUE))

);

bttambah.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gambar/Pencil.png"))); // NOI18N bttambah.setText("TAMBAH");

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("/gambar/Pencil and Ruler.png"))); // NOI18N btsimpan.setText("SIMPAN");

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("/gambar/Error.png"))); // NOI18N btbatal.setText("BATAL"); 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("/gambar/keluar.png"))); // NOI18N

btkeluar.setText("KELUAR");

Page 50: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

73

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

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

} });

kode_pengguna.setFont(new java.awt.Font("Tahoma", 0, 1)); // NOI18N kode_pengguna.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

kode_pengguna.setText("0"); 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.Alignment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup() .addGap(405, 405, 405) .addComponent(kode_pengguna,

javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(0, 154, Short.MAX_VALUE)) .addGroup(jPanel2Layout.createSequentialGroup()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(jPanel2Layout.createSequentialGroup() .addComponent(bttambah) .addGap(40, 40, 40)

.addComponent(btsimpan)) .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.Alignment.LEADING)

.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)

.addGroup(jPanel2Layout.createSequentialGroup()

Page 51: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

74

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(btbatal) .addGap(47, 47, 47)

.addComponent(btkeluar))))) .addContainerGap()) );

jPanel2Layout.setVerticalGroup(

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

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

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.Alignment.

BASELINE) .addComponent(bttambah)

.addComponent(btsimpan) .addComponent(btbatal) .addComponent(btkeluar))

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

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

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

.addContainerGap()) );

getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 54, 690, 390));

pack(); }// </editor-fold>//GEN-END:initComponents

private void kode_obatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-

FIRST:event_kode_obatActionPerformed // TODO add your handling code here: tampilDataobat();

}//GEN-LAST:event_kode_obatActionPerformed

Page 52: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

75

private void btbrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-

FIRST:event_btbrowseActionPerformed // TODO add your handling code here:

boolean closable = true; dataObat db = new dataObat(null, closable); db.transaksi = this;

db.setVisible(true); db.setResizable(true);

kode_obat.setText(Kodeobat); nama_obat.setText(Namaobat); harga_jual.setText(Hargaobat);

}//GEN-LAST:event_btbrowseActionPerformed

private void kode_obatComponentAdded(java.awt.event.ContainerEvent evt) {//GEN-FIRST:event_kode_obatComponentAdded // TODO add your handling code here:

jumlahbeli.requestFocus(); }//GEN-LAST:event_kode_obatComponentAdded

private void btkeluarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btkeluarActionPerformed

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

dispose(); }//GEN-LAST:event_btkeluarActionPerformed

private void bttambahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bttambahActionPerformed

// TODO add your handling code here: aktif(); kode.setText(nomor());

}//GEN-LAST:event_bttambahActionPerformed

private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated

// TODO add your handling code here: nama_pengguna.setText(KodeUser);

tampilTabelSementara(); }//GEN-LAST:event_formWindowActivated

private void btbatalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btbatalActionPerformed

// TODO add your handling code here: awal(); hapusTabelSementara();

kode.setText(""); }//GEN-LAST:event_btbatalActionPerformed

Page 53: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

76

private void tbpenjualanKeyPressed(java.awt.event.KeyEvent evt) {//GEN-

FIRST:event_tbpenjualanKeyPressed // 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(); } }//GEN-LAST:event_tbpenjualanKeyPressed

private void jumlahbeliActionPerformed(java.awt.event.ActionEvent evt) {//GEN-

FIRST:event_jumlahbeliActionPerformed // 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 obat?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {

aktif(); kode_obat.requestFocus();

kode_obat.setText(""); nama_obat.setText(""); harga_jual.setText("");

jumlahbeli.setText(""); tsubtotal.setText("");

} else { tbayar.requestFocus();

}

}

Page 54: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

77

}//GEN-LAST:event_jumlahbeliActionPerformed

private void btsimpanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-

FIRST:event_btsimpanActionPerformed // TODO add your handling code here: if (tbayar.getText().equals("")) {

JOptionPane.showMessageDialog(this, "Silahkan Masukkan Uang Bayar", "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("");

} }

}//GEN-LAST:event_btsimpanActionPerformed

private void tbayarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbayarActionPerformed // 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));

}//GEN-LAST:event_tbayarActionPerformed

private void jumlahbeliKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jumlahbeliKeyTyped // 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)

Page 55: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

78

|| (c == com.sun.glass.events.KeyEvent.VK_DELETE))) {

getToolkit().beep(); evt.consume();

} }//GEN-LAST:event_jumlahbeliKeyTyped

private void tbayarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tbayarKeyTyped

// TODO add your handling code here: char c = evt.getKeyChar(); if (!((c >= '0') && (c <= '9')&&tbayar.getText().length()<11

|| (c == com.sun.glass.events.KeyEvent.VK_BACKSPACE) || (c == com.sun.glass.events.KeyEvent.VK_DELETE))) {

getToolkit().beep(); evt.consume(); }

}//GEN-LAST:event_tbayarKeyTyped

/** * @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.log

ging.Level.SEVERE, null, ex); } catch (InstantiationException ex) {

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

} catch (IllegalAccessException ex) {

Page 56: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

79

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

} catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(menuPenjualan.class.getName()).log(java.util.log

ging.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//GEN-BEGIN:variables 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 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.JTextField jumlahbeli; private javax.swing.JTextField kode;

private javax.swing.JTextField kode_obat; private javax.swing.JLabel kode_pengguna;

private javax.swing.JLabel ltotal;

Page 57: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

80

private javax.swing.JTextField nama_obat;

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//GEN-END:variables

} 3.5.2. Blackbox Testing

Pada tahap pengujian ini penulis menggunakan pendekatan pengujian validasi

dengan menggunakan Black Box Testing (pengujian kotak hitam) yang berfokus pada

persyaratan fungsional dari sistem yang dibangun.

1. Pengujian Login

Tabel III.13.

Pengujian Menu Login

No Skenario

Pengujian Test Case

Hasil Yang

Diharapkan

Hasil

Pengujian Kesimpulan

1

Mengosongkan semua isian data

login, kemudian langsung klik

tombol ‘Login’

Kode User:

(Kosong) Password:

(Kosong)

Sistem akan menolak akses login dan

menampilkan pesan “Data

tidak ditemukan !!”

Sesuai Harapan

Valid

2

Hanya mengisi

data Kode User, mengosongkan data password,

kemudian langsung klik

tombol ‘Login’

Kode User: U001

Password: (Kosong)

Sistem akan

menolak akses login dan menampilkan

pesan “Data tidak

ditemukan !!”

Sesuai

Harapan Valid

3

Hanya mengisi data password dan

mengosongkan Kode User,

kemudian langsung klik tombol ‘Login’

Password:

Ba03 Kode User:

(Kosong)

Sistem akan menolak akses

login dan menampilkan pesan “Data

tidak ditemukan !!”

Sesuai Harapan

Valid

Page 58: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

81

4

Menginputkan dengan kondisi

salah satu data benar dan salah

satu lagi salah, kemudian klik tombol ‘Login’

Kode User:

U001 (Benar)

Password: Asd01 (Salah)

Sistem akan menolak akses

login dan menampilkan

pesan “Data tidak ditemukan !!”

Sesuai Harapan

Valid

2. Pengujian Menu Utama

Tabel III.14.

Pengujian Menu Utama

No

Skenario Pengujian

Hasil Yang

Diharapkan

Hasil

Pengujian

Kesimpulan

1 Memilih Menu

Master

Menampilkan submenu

master

Sesuai

Harapan

Valid

2

Memilih Menu

Transaksi

Menampilkan submenu

transaksi

Sesuai

Harapan Valid

3 Memilih Menu

Laporan

Menampilkan submenu

laporan

Sesuai

Harapan Valid

4 Memilih Menu

Logout

Keluar dari aplikasi sisfo

pendapatan jasa

Sesuai

Harapan

Valid

Page 59: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

82

3. Pengujian Submenu Master Data User

Tabel III.15.

Pengujian Submenu User

No Skenario Pengujian Hasil Yang

Diharapkan

Hasil

Pengujian Kesimpulan

1

Mengisi semua data

secara lengkap kemudian klik

tombol „Simpan‟

Menampilkan

pesan peringatan “Data Berhasil

Disimpan!!”

Sesuai Harapan

Valid

2

Mengisi semua data secara lengkap kemudian klik

tombol „Batal‟

Menampilkan inputan data

menjadi kosong

Sesuai Harapan

Valid

3

Langsung klik

tombol „Tambah‟, lalu menampilkan kode user urutan

angka terakhir, kemudian klik

tombol „Simpan‟

Menampilkan pesan peringatan “Data

Tidak Boleh Kosong!!”

Sesuai

Harapan

Valid

4

Mengosongkan

semua data, Kemudian klik

tombol „Simpan‟

Menampikan

pesan peringatan “Data Tidak Boleh

Kosong !!”

Sesuai Harapan

Valid

5

Langsung klik tombol „Cari‟ tanpa memasukkan kode

user

Menampilkan pesan peringatan “Data

tidak ditemukan”

Sesuai Harapan

Valid

6

Mencari data dengan kode user

yang salah, kemudian klik

tombol „Cari‟

Menampilkan pesan peringatan

“Data tidak ditemukan”

Sesuai Harapan

Valid

Page 60: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

83

7

Mencari data dengan kode user yang

benar, lalu klik tombol „Cari‟

Menampilkan pesan

peringata “Data ditemukan”

Sesuai

Harapan

Valid

8

Langsung memilih tombol „Hapus‟ tanpa mencari data

kode user

Menampilkan

pesan peringata

“Silahkan Cari Data!!”

Sesuai Harapan

Valid

9

Memasukkan kode

user dikolom pencarian kemudian klik tombol „Batal‟

Menampilkan

inputan data menjadi kosong

Sesuai Harapan

Valid

10

Memasukkan kode user yang akan

dihapus dikolom pencarian lalu klik tombol „Cari‟

kemudian klik tombol „Hapus‟

Menampilkan

pesan peringatan “Data berhasil di

hapus”

Sesuai Harapan

Valid

11

Memilih submenu

lain ketika sedang membuka form data user

Menampilkan

pesan informasi “Silahkan tutup form dahulu !!”

Sesuai Harapan

Valid

12 Membuka submenu form data user lalu

klik tombol „Keluar‟

Keluar dari

submenu form data user dan

menampilkan menu utama

Sesuai Harapan

Valid

Page 61: BAB III PEMBAHASAN - repository.bsi.ac.id · Toko obat ini telah mendapat ijin dari Departemen Kesehatan RI dengan Surat Ijin Kerja: KP.01.01.1.3.0587. Pada tahun 2017 Apotek Cito

84

3.5.3. Spesifikasi Hardware dan Software

Spesifikasi hardware dan software dibuatkan untuk menjelaskan mengenai

kebutuhan perangkat keras dan perangkat lunak yang akan digunakan untuk

menjalankan sistem. Berikut spesifikasi yang disarankan penulis:

Tabel III.16.

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

Mouse Microsoft PS/2