Top Banner
21 BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan Tinjauan perusahaan ini berisi tentang sejarah berdirinya Apotek Dana Farma Karawang serta stuktur organisasi yang ada dan fungsi-fungsi dari bagian yang ada dalam perusahaan. 3.1.1 Sejarah Apotek APOTEK DANA FARMAyang berlokasi di Jl. Proklamasi No.27 Tanjungmekar Karawang. Apotek ini berdiri sejak tahun 1982 dengan nama Balai Apotek Bakti Waluya sampai dengan tahun 2008. Tahun 2009 berubah nama menjadi Apotek Dana Farma sampai sekarang dan terus mengalami perkembangan yang cukup baik. 3.1.2. Struktur Organisasi dan Fungsi Struktur organisasi merupakan suatu kerangka untuk mewujudkan suatu pola tetap dari hubungan antara kedudukan dan peranan dalam suatu lingkar kerjasama.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 apotek.Setiap bagian didalam struktur organisasi harus mampu bekerja secara profesional, dan harus dapat berinteraksi dengan bagian lainnya sehingga didapat kerjasama yang optimal antar fungsi.
103

BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

Oct 29, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

21

BAB III

PEMBAHASAN

3.1 Tinjauan Perusahaan

Tinjauan perusahaan ini berisi tentang sejarah berdirinya Apotek Dana Farma

Karawang serta stuktur organisasi yang ada dan fungsi-fungsi dari bagian yang ada

dalam perusahaan.

3.1.1 Sejarah Apotek

APOTEK DANA FARMAyang berlokasi di Jl. Proklamasi No.27 Tanjungmekar

Karawang. Apotek ini berdiri sejak tahun 1982 dengan nama Balai Apotek Bakti

Waluya sampai dengan tahun 2008. Tahun 2009 berubah nama menjadi Apotek Dana

Farma sampai sekarang dan terus mengalami perkembangan yang cukup baik.

3.1.2. Struktur Organisasi dan Fungsi

Struktur organisasi merupakan suatu kerangka untuk mewujudkan suatu pola

tetap dari hubungan antara kedudukan dan peranan dalam suatu lingkar

kerjasama.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 apotek.Setiap bagian didalam struktur organisasi

harus mampu bekerja secara profesional, dan harus dapat berinteraksi dengan bagian

lainnya sehingga didapat kerjasama yang optimal antar fungsi.

Page 2: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

22

Pada dasarnya struktur organisasi merupakan suatu hal yang sangat menentukan

kedudukan dalam apotek.Sistem yang di gunakan dalam Struktur Organisasi adalah

sistem kerjasama (team work) yang dijalankan oleh sekelompok orang untuk mencapai

tujuan tertentu. Gambaran mengenai susunan struktur organisasi pada APOTEK DANA

FARMA dapat dilihat pada gambar dibawah ini:

Sumber: Apotek Dana Farma Karawang

Gambar III.1

Struktur Organisasi Apotek Dana Farma

Adapun sesuai dengan fungsi dan tugas masing-masing bagian dari struktur

organisasi yang terdapat pada APOTEK DANA FARMA yaitu sebagai berikut :

1. Kepala Apotek

a. Bertugas memimpin dan mengkordinasi

b. Mengontrol jalannya klinik

c. Membuat suatu kebijakan

d. Memeriksa laporan pembelian yang dibutuhkan klinik.

2. Bagian Pembelian

a. Mengeluarkan order kepada supplier.

b. Membuat laporan pembelian.

Page 3: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

23

c. Menerima obat.

d. Menerima laporan dari Bagian Pengiriman dan Bagian Gudang.

3. Store Gudang (Store)

a. Pengecekan obat

b. Proses pembuatan pesanan

c. Membuat laporan obat masuk dan keluar

4. Bagian Penjualan

a. Menerima Order dari customer

b. Membuat laporan penjualan

c. Menerima pembayaran

d. Menerima laporan dari bagian pengiriman dan bagian gudang

5. Bagian Keuangan

a. Membayar pesanan

b. Menerima laporan penjualan

3.2 Tinjauan Kasus

3.2.1 Prosedur Bisnis Sistem Berjalan

Pada sistem berjalan ada beberapa prosedur yang harus dijalankan untuk proses

pembuatan laporan, yaitu terdiri dari :

1. Proses pengecekan stok obat

Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan

membuat KS (Kartu Stok) kemudian bagian pembelian membuat laporan pesanan

kepada pemilik untuk di acc.

2. Proses pemesanan obat

Page 4: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

24

Bagian pembelian membuat SP (Surat Pesanan), kemudian bagian

pembelian menghubungi bagian supplier untuk datang ke apotek mengambil SP

(Surat Pesanan), apotek mengarsipkan surat pesanan, dan supplier membawa SP

(Surat Pesanan).

3. Proses penerimaan obat

Supplier datang keapotek membawa obat yang dipesan dan menyerahkan

faktur penjualan kepada bagian pembelian, kemudian bagian pembelian

menerima obat, nota dan faktur serta melakukan pengecekan obat yang datang

dan disesuaikan yang tertera dengan faktur penjualan, jika salah maka bagian

pembelian mengembalikan faktur kepada supplier.

4. Proses pembayaran obat

Bagian pembelian menyerahkan nota dan faktur kepada bagian keuangan

untuk melakukan pembayaran pada saat jatuh tempo kepada supplier.

Page 5: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

25

1.2.2 Activity Diagram

Bersifat dinamis. Diaram aktivitas adalah tipe khusus dari diagram status yang

memperlihatkan aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem.

Gambar III.2

Activity Diagram Apotek Dana Farma.

1.2.3 Spesifikasi Dokumen Masukkan

1. Nama Dokumen : Faktur Pembelian

Fungsi : Untuk mengetahui data pembelian

Sumber : Supplier

Tujuan : Bagian Pembelian

Frekuansi : Setiap terjadi pembelian

Page 6: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

26

Media : Kertas

Jumlah : Satu lembar

Bentuk : Lampiran A.1

3.3.4 Spesifikasi Dokumen Keluaran

1. Purchase Order

Nama Dokumen : Purchase Order

Fungsi : Sebagai bukti memesan barang

Sumber : supplier

Tujuan : Bagian Pembelian

Frekuensi : Setiap terjadi pemesanan barang

Media : Kertas

Jumlah : 2 Lembar

Bentuk : Lihat Lampiran B-1

2. Nama Dokumen : Laporan Pembelian

Fungsi : Untuk mengetahui semua transaksi pembelian

Sumber : Bagian Pembelian

Tujuan : Pemilik Apotek

Frekuansi : Setiap akhir bulan

Media : Kertas

Jumlah : Satu lembar

Bentuk : Lampiran B.2

Page 7: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

27

3.3.5 Permasalahan Pokok

Bedasarkan pengamatan, maka penulis membuat kesimpulan bahwa Apotek Dana

Farma dalam membuat laporan masih menggunakan cara manual. Dilihat dari sistem

berjalan timbul adanya permasalahan yang antara lain,yaitu :

1. Dalam pengisian Purchase Order masih menggunakan manual sehingga mudah

disalah gunakan atau data yang dibuat bisa dipalsukan.

2. Keamanan dokumen kurang terjamin tersimpan dengan aman sehingga mudah

rusak dan hilangnya dokumen yang terkait Apotek Dana Farma.

3. Data dalam membuat laporan kurang akurat karena masih menghitung dan

membuat laporan masih secara manual dan mudah terjadi kesalahan-kesalahan

yang seharusnya tidak terjadi

4. Kurangnya sumber daya manusia pada Apotek Dana Farma.

3.3.6 Pemecahan Masalah

Berdasarkan hasil pengamatan, maka penulis membuat kesimpulan bahwa Apotek

Dana Farma dalam melakukan proses kegiatan pembuatan laporan masih manual.

Dengan pengisian data yang masih manual (tidak terkomputerisasi) maka banyak

permasalahan yang terjadi.Tentunya hal ini sangat merugikan karena tidak sesuai dengan

kemajuan teknologi informasi sekarang ini. Dengan digunakan komputer sebagai alat

bantu untuk mempermudah proses pembuatan laporan. Selain itu keuntungan lain yang

dapat diperoleh dengan adanya komputer adalah dalam pembuatan dan penyusunan

laporan akan lebih cepat dan akurat, sehingga dalam pembuatan dan penyusunan laporan

tidak mengalami kesulitan. Maka dari itu, penulis berusaha memberikan alternative

pemecahan masalah dari berbagai pemasalahan yang ada, yaitu dengan mengubah

Page 8: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

28

system pembuatan laporan menggunakan bahasa pemprograman sehingga memudahkan

pengguna komputer dalam menjalankan pekerjaannya.

3.3 Analisi Kebutuhan Software

3.3.1 Analisa Kebutuhan

Sistem Informasi Pembelian Kredit merupakan pengembangan sistem yang

dirancang penulis untuk Apotek Dana Farma Karawangdengan menerapkan sebuah

program berbasis desktop untuk menunjang kegiatan operasional dalam mengelola

pembelian obat secara kredit di Apotek Dana Farma Karawang. Berikut ini spesifikasi

kebutuhan dari Sistem Informasi Pembelian Obat Secara Kredit berdasarkan

pemakainya:

A. Admin

A.1. Admin dapat melakukan Login pada Form Login.

A.2. Admin dapat mengelola data Master.

A.3. Admin dapat mengelola data transaksi.

A.4. Admin dapat mengelola data laporan.

A.5. Admin dapat mengelola data jurnal.

A.6. Admin dapat mengelolah pengaturan.

B. Pemilik Apotek

B.1. Pemilik Apotek dapat melakukan Login pada Form Login.

B.2. Pemilik Apotek dapat melihat menu Laporan

B.3. Pemilik Apotek dapat mengelola pengaturan.

Page 9: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

29

3.3.2 Use Case Diagram

1. Use Case Diagram Login Admin

Gambar III.3

Use Case Diagram Login Admin

2. Use Case Menu Utama Admin

Gambar III.4

Use Case Diagram Menu Utama Admin

Page 10: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

30

3. Use Case Diagram Pengelolahan Data Master

Gambar III.5

Use Case Diagram Pengelolahan Data Master

Deskripsi Use Case Digaram Pengelolahan Data Master

Tabel III.1

Use Case Diagram Pengolahan Data Master

Use case name Admin mengelola Data Master

Requirment A2

Goal Admin dapat mengolah data Master, baik mencari, menambah,

mengedit, menyimpan, dan mencetak data Master.

Pre-condition Admin telah melakukan login dan mengakses form data Master

dan mengelola data obat dan data supplier

Post-condition Data obat berhasil terupdate dan tersimpan data obat dan data

supplier.

Failed and conditions Gagal terupdate dan tersimpan data obat dan data supplier.

Primary Actors Admin

Main flow / Basic path 1. Admin mengakses form data obat dan data supplier.

2. Admin memilih tombol "tambah".

3. Admin menambahkan data obat dan data supplier.

4. Admin memilih tombol "simpan".

5. Sistem menyimpan data Master kedalam Database.

6. Sistem menampilkan keterangan berhasil menyimpan data.

Page 11: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

31

Alternate flow / invariant

1

A.1 Admin mencari data obat dan data supplier.

A2. Sistem menampilkan data Master yang dicari.

A3. Admin memilih tombol "edit".

A4. Admin merubah data obat dan data supplier.

A5. Admin memilih tombol "simpan".

A6. Sistem memperbarui data Master kedalam Database.

A7. Sistem menampilkan keterangan berhasil memperbarui data

Master.

4. Use Case Diagram Pengelolahan Data Transaksi

Gambar III.6

Use Case Diagram Pengelolahan Data Transaksi

Deskripsi Use Case Pengelolahan Data Transaksi

Tabel III.2

Use Case Diagram Pengolahan Data Transaksi

Use Case Name PengolahanData Transaksi

Requirements A3

Goal Admin dapat mengolah data Master, baik mencari, menambah,

menyimpan, dan mencetak data transaksi.

Pre-condition Admin telah melakukan login dan mengakses form data transaksi dan

mengelola data pesanan dan data pembayaran.

Page 12: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

32

Post condition Berhasil tersimpan data pesanan dan data pembayaran.

Failed end Conditions Gagal tersimpan data pesanan dan data pembayaran.

Primary Actors Admin

Main flow / Basic Path 1. Admin mengakses form data pesanan.

2. Admin memilih tombol "tambah".

3. Admin menambahkan data pesanan.

4. Admin memilih tombol "simpan".

5. Sistem menyimpan data transaksi kedalam Database.

6. Sistem menampilkan keterangan berhasil menyimpan data.

Alternate flow / A1. Admin mencari data pembayaran.

Invariant 1 A2. Sistem menampilkan data transaksi yang dicari.

A3. Admin memilih tombol “cetak”.

A4. Admin mencetak transaksi pesanan dan pembayaran.

5. Use Case Diagram Data Laporan

Gambar III.7

Use Case Diagram Pengolahan Data Laporan

Deskripsi Use Case Diagram Pengolahan Data Laporan

Tabel III.3

Use Case Diagram Pengolahan Data Laporan

Page 13: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

33

Use Case Name Pengelolaan Data Laporan

Requirements A4

Goal

Admin dapat mengolah data laporan, baik mencari,

menambah,

menyimpan, dan mencetak data Master.

Pre-condition

Admin telah melakukan login dan mengakses form data

laporan dan

mengelola laporan pembelian dan laporan jurnal.

Post condition Berhasil tersimpan laporan pembelian dan laporan jurnal.

Failed end Gagal tersimpan laporan pembelian dan laporan jurnal.

Conditions

Primary Actors Admin.

Main flow /

1. Admin mengakses form laporan pembelian dan laporan

jurnal.

Basic Path 2. Admin memilih tombol "tambah".

3. Admin menambahkan data laporan pembelian dan laporan

jurnal.

4. Admin memilih tombol "simpan".

5. Sistem menyimpan data laporan kedalam Database.

6. Sistem menampilkan keterangan berhasil menyimpan data.

Alternate flow / A1. Admin mencari data laporan pembelian dan laporan jurnal.

Invariant 1 A2. Sistem menampilkan data laporan yang dicari.

A3. Admin memilih tombol "cetak”.

A4. Admin mencetak laporan pembelian dan laporan jurnal.

6. Use Case Diagram Pengelolahan Data Jurnal

Gambar III.8

Use Case Diagram Pengolahan Data Jurnal

Page 14: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

34

Deskripsi Use Case Diagram Pengolahan Data Jurnal

Tabel III.4

Use Case Diagram Pengolahan Data Jurnal

Use Case Name Pengelolaan Data Jurnal

Requirements A5

Goal Admin dapat mengolah data jurnal, baik mencari, menambah,

dan menyimpan data jurnal.

Pre-condition

Admin telah melakukan login dan mengaksesdata perkiraan akun dan data

jurnal umum.

Post condition Berhasil tersimpan data perkiraan akun dan data jurnal umum.

Failed end Gagal tersimpan data perkiraan akun dan data jurnal umum.

Conditions

Primary Actors Admin

Main flow / 1. Admin mengakses data perkiraan akun dan data jurnal umum.

Basic Path 2. Admin memilih tombol "tambah".

3. Admin menambahkan data perkiraan akun dan data jurnal umum.

4. Admin memilih tombol "simpan".

5. Sistem menyimpan data perkiraan akun dan data jurnal umum kedalam

Database.

6. Sistem menampilkan keterangan berhasil menyimpan data.

Alternate flow / A1. Admin mencari data perkiraan akun.

Invariant 1 A2. Sistem menampilkan data perkiraan akun yang dicari.

A3. Admin memilih tombol "edit".

A4. Admin merubah data perkiraan akun.

A5. Admin memilih tombol "simpan".

A6. Sistem memperbarui data perkiraan akun kedalam Database.

A7. Sistem menampilkan keterangan berhasil memperbarui data perkiraan

akun.

7. Use Case Diagram Pengelolahan Data Pengaturan

Gambar III.9

Use Case Diagram Pengolahan Pengaturan

Page 15: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

35

Deskripsi Use Case Diagram Pengolahan Data Pengaturan

Tabel III.5

Use Case Diagram Pengolahan Pengaturan

Use case name Mengelola menu pengaturan

Requirment A6

Goal Admin dapat mengelola menu pengaturan

Pre-condition Admin telah melakukan Login

Post-condition User berhasil ditambahkan

Failed and

conditions

Gagal menambahkan user

Primary Actors Admin

Main flow / Basic

path

A.1 Admin mengelola menu pengaturan

A.2 Admin memilih “tambah pengguna”, “ganti password” dan

“back up data”.

A.3 admin menginput “tambah pengguna”, “password baru”

A.4 Admin memilih tombol “simpan”

A.5 System menyimpan pembaharuan

8. Use Case Diagram Login Pemilik Apotek

Gambar III.10

Use Case Diagram Pemilik Apotek

Page 16: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

36

9. Use Case Diagram Pengaturan Pemilik Apotek

Gambar III.11

Use Case Diagram Pengaturan Pemilik Apotek

Deskripsi Use Case Diagram Pengaturan Pemilik Apotek

Tabel III.6

Use Case Diagram Pengaturan Pemilik Apotek

Use case name Mengelola menu pengaturan Pemilik

Requirment B2

Goal Pemilik dapat mengelola menu pengaturan

Pre-condition Pemilik telah melakukan Login

Post-condition User berhasil ditambahkan

Failed and

Conditions

Gagal menambahkan user

Primary Actors Pemilik

Main flow / Basic

path

A.1 Pemilik mengelola menu pengaturan

A.2 Pemilik memilih “tambah pengguna”, “ganti password” dan “back up data”.

A.3 Pemilik menginput “tambah pengguna”, “password baru”

A.4 Pemilik memilih tombol “simpan”

A.5 System menyimpan pembaharuan

Page 17: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

37

3.3.3 Activty Diagram Diagram

1. Activity Diagram Pengecekan Obat

Gambar III.12

Activity Diagram Pengecekan Obat

Page 18: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

38

2. Activity Diagram Pembelian Obat

Gambar III.13

Activity Diagram Pembelian Obat

Page 19: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

39

3. Activity Diagram Pembayaran Obat

Gambar III.14

Activity Diagram Pembayaran Obat

Page 20: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

40

4. Activity Diagram Data Jurnal

Gambar III.15

Activity Diagram Data Jurnal

Page 21: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

41

5. Activity Diagram Pemilik Apotek

Gambar III.16

Activity Diagram Pemilik Apotek

3.4 Desain

Menggambarkan hubungan antar tabel yang dibuat beserta relasi antar tabel.

Dalam penggambarannya disini menggunakan Entity Relationship Diagram untuk

pembuatan sistem informasi pembelian obat secara kredit pada Apotek Dana Farma

Karawang sebagai berikut:

Page 22: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

42

3.4.1 Entity Relationship Diagram (ERD)

Gambar III.17

Entity Relationship Diagram (ERD)

Page 23: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

43

3.4.2 Logical Record Structure (LRS)

Gambar III.18

Logical Record Structure (LRS)

Page 24: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

44

3.4.3 Spesifikasi File

Dalam program ini menggunakan satu buah Database dengan nama

dana_farma.sql dan didalamnya terdapat tabel-tabel sebagai entitas. Tabel-tabel

tersebut sebagai berikut:

1. Spesifikasi File Tabel Data Pengguna

Nama Database : dana_farma

Nama File : pengguna

Akronim : pengguna.myd

Tipe File :File Master

Akses File : Random

Panjang Record : 100 byte

Kunci Field : id_pengguna

Tabel III.7.

Spesifikasi File Tabel Pengguna

No Elemen Data Akronim Tipe Panjang Keterangan

1 Id pengguna Id_pengguna Varchar 20 Primary key

2 Nama Pengguna Nm_pengguna Varchar 35

3 Password Password Varchar 35

4 Level Level Varchar 10

2. Spesifikasi File Tabel Data Supplier

Nama Database : dana_farma

Nama File : supplier

Akronim : supplier.myd

Page 25: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

45

Tipe File :File Master

Akses File : Random

Panjang Record : 345 byte

Kunci Field : kd_supplier

Tabel III.8.

Spesifikasi File Tabel Supplier

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Supplier Kd_supplier Char 5 Primary key

2 Nama Supplier Nm_supplier Varchar 35

3 Kontak Personal Kntk_personal Varchar 35

4 Alamat Supplier Almt_supplier Varchar 255

5 Nomer Telpon

Supplier

No_tlp_supplier Varchar 15

3. Spesifikasi File Tabel Data Obat

Nama Database : dana_farma

Nama File : obat

Akronim : obat.myd

Tipe File :File Master

Akses File : Random

Panjang Record : 108 byte

Kunci Field : kd_obat

Tabel III.9.

Spesifikasi File Tabel Data Obat

No Elemen Data Akronim Tipe Panjang Keterangan

Page 26: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

46

1 Kode Obat Kd_obat Char 7 Primary key

2 Nama Obat Nm_obat Varchar 35

3 Jenis Obat Jenis_obat Varchar 25

4 Dosis Dosis Varchar 15

5 Satuan Satuan Varchar 15

6 Harga Obat Hrg_obat Double

7 Stok Stok Int 11

4. Spesifikasi File Tabel Perkiraan

Nama Database : dana_farma

Nama File : perkiraan

Akronim : perkiraan.myd

Tipe File :File Master

Akses File : Random

Panjang Record : 57 byte

Kunci Field : kd_akun

Tabel III.10.

Spesifikasi File Tabel Perkiraan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Akun Kd_akun Varchar 7 Primary key

2 Nama Akun Nm_akun Varchar 25

3 Klasifikasi Klasifikasi Varchar 25

5. Spesifikasi File Tabel Pemesanan

Nama Database : dana_farma

Nama File : pemesanan

Page 27: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

47

Akronim : pemesanan.myd

Tipe File :File transaksi

Akses File : Random

Panjang Record : 35 byte

Kunci Field : no_pemesanan

Tabel III.11.

Spesifikasi File Tabel Pemesanan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Pemesanan No_pemesanan Char 9 Primary key

2 Tanggalpemesanan Tgl_pemesanan Date

3 Kode Supplier Kd_supplier Char 5

4 Id Pengguna Id_pengguna Varchar 20

5 Total Pemesanan Total_pemesanan Double

6 Status Tagih Status_tagih Int 1

6. Spesifikasi File Tabel Detail Pemesanan

Nama Database : dana_farma

Nama File :detail_pemesanan

Akronim : detail_pemesanan.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record : 27 byte

Kunci Field : no_pemesanan

Page 28: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

48

Tabel III.12.

Spesifikasi File Tabel Detail Pemesanan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomor Pemesanan no_pemesanan Char 9 Primary key

2 Kode Obat kd_obat Varchar 7

3 Jumlah Beli jml_beli Int 11

4 Harga Obat hrg_obat Double

7. Spesifikasi File Tabel Penerimaan

Nama Database : dana_farma

Nama File : penerimaaan

Akronim : penerimaan.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record : 54 byte

Kunci Field : no_penerimaan

Tabel III.13.

Spesifikasi File Tabel Penerimaan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Penerimaan no_penerimaan Char 9 Primary key

2 Tanggal Peneriman tgl_penerimaan Date

3 Kode Supplier kd_supplier Char 5

4 Nomer Surat Jalan no_sj Char 20

5 Id Pengguna id_pengguna Varchar 20

Page 29: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

49

8. Spesifikasi File Tabel Detail Penerimaan

Nama Database : dana_farma

Nama File : detail_penerimaaan

Akronim : detail_penerimaan.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record 27 byte

Kunci Field : no_penerimaan

Tabel III.14.

Spesifikasi File Tabel Detail Penerimaan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Penerimaan No_penerimaan Char 9 Primary key

2 Kode Obat Kd_obat Varchar 7

3 Jumlah Terima Jml_terima Int 11

9. Spesifikasi File Tabel Penagihan

Nama Database : dana_farma

Nama File : penagihan

Akronim : penagihan.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record :34 byte

Kunci Field : no_penagihan

Page 30: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

50

Tabel III.15.

Spesifikasi File Tabel Penagihan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Penagihan No_penagihan Char 9 Primary key

2 Tanggal Penagihan Tgl_penagihan Date

3 Tanggal Jatuh Tempo Tgl_jatuh_tempo Date

4 Nomer Pemesanan No_pemesanan Char 9

5 Total Tagihan Total_tagihan Double

6 Id Pengguna Id_pengguna Varchar 15

7 Status Bayar Status_bayar Tinyint 1

10. Spesifikasi File Tabel Pembayara

Nama Database : dana_farma

Nama File : pembayaran

Akronim : pembayaran.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record : 58 byte

Kunci Field : no_pembayaran

Tabel III.16.

Spesifikasi File Tabel Pembayaran

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Pembayaran No_pembayaran Char 9 Primary key

2 Tanggal Pembayaran Tgl_pembayaran Date 7

3 Nomer Penagihan No_penagihan Char 11

Page 31: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

51

4 Nomer Faktur No_faktur Varchar 20

5 Jumlah Dibayar Jmlh_dibayar Double

6 Id Pengguna Id_pengguna Varchar 20

11. Spesifikasi File Tabel Data Jurnal

Nama Database : dana_farma

Nama File : jurnal

Akronim : jurnal.myd

Tipe File :File Transaksi

Akses File : Random

Panjang Record : 147 byte

Kunci Field : no_jurnal

Tabel III.17.

Spesifikasi File Tabel Jurnal

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Jurnal No_jurnal Char 7 Primary key

2 Tanggal Jurnal Tgl_jurnal Date

3 Nomer Referensi No_reff Varchar 20

4 Keterangan Keterangan Varchar 100

5 Id Pengguna Id_pengguna Double 20

12. Spesifikasi File Tabel Detail Jurnal

Nama Database : dana_farma

Nama File : detail_jurnal

Akronim : detail_jurnal.myd

Page 32: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

52

Tipe File :File Transaksi

Akses File : Random

Panjang Record : 14 byte

Kunci Field : no_jurnal

Tabel III.18.

Spesifikasi File Tabel Detail Jurnal

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomer Jurnal No_jurnal Char 7 Primary key

2 Kode Akun Kd_akun Varchar 7

3 Debet Debet Double

4 Kredit Kredit Double

Page 33: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

53

3.4.4 Squence Diagram

Gambar III.19

Squence Diagram

Page 34: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

54

3.4.5 Deployment Diagram

Gambar III.20

Deployment Diagram

3.4.6 User Interface

1. Admin melakukan Login pada form login dengan cara mengisi id pengguna dan

password lalu klik login.

Gambar III.21

Form login pembelian kredit

Page 35: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

55

2. Tampil menu utama program pembelian kredit

Gambar III.22

Form Menu Utama Pembelian Kredit

3. Admin mengakses Data Obat pada menu Master dengan cara memilih Data Master

kemudian klik data obat, lalu isi data obat dan simpan

Gambar III.23

Form Data Master Data Obat pada Pembelian Kredit

Page 36: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

56

Gambar III.24

Form Data Obat pada Pembelian Kredit

4. Admin mengakses Data Supplier pada menu Master dengan cara memilih Data

Master kemudian klik Data Supplier, lalu isi data supplier dan simpan

Gambar III.25

Form Data Master Data Supplier Pembelian Kredit

Page 37: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

57

Gambar III.26

Form Data Supplier pada Pembelian Kredit

5. Admin mengakses Data Transaksi pada pemesanan dengan cara memilih Data

Transaksi kemudian klik Pemesanan, lalu isi Pemesanan dan simpan

Gambar III.27

Form Data Transaksi Data Pemesanan pada Pembelian Kredit

Page 38: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

58

Gambar III.28

Form Data Pesanan Obat pada Pembelian Kredit

6. Admin mengakses Data Transaksi pada penerimaan dengan cara memilih Data

Transaksi kemudian klik Penerimaan, lalu isi Pemesanan dan simpan

Gambar III.29

Form Data Transaksi Data Penerimaan pada Pembelian Kredit

Page 39: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

59

Gambar III.30

Form Data Penerimaan Obat pada Pembelian Kredit

7. Admin mengakses Data Transaksi pada penagihan dengan cara memilih Data

Transaksi kemudian klik Penagihan, lalu isi Pemesanan dan simpan

Gambar III.31

Form Data Transaksi Data Penagihan pada Pembelian Kredit

Page 40: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

60

Gambar III.32

Form Data Penagihan Obat pada Pembelian Kredit

8. Admin mengakses Data Transaksi pada pembayaran dengan cara memilih Data

Transaksi kemudian klik Pembayaran, lalu isi Pemesanan dan simpan

Gambar III.33

Form Data Transaksi Data Pembayaran pada Pembelian Kredit

Page 41: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

61

Gambar III.34

Form Data Pembayaran Tagihan pada Pembelian Kredit

9. Admin mengakses Data Laporan pada Laporan Pemesanan dengan cara memilih

Data Laporan kemudian klik Laporan Pemesanan, lalu isi Laporan Pemesanan dan

lihat

Gambar III.35

Form Data Laporan Data Laporan Pemesanan pada Pembelian Kredit

Page 42: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

62

Gambar III.36

Form Laporan Pemesanan pada Pembelian Kredit

10. Admin mengakses Data Laporan pada Laporan Pembayaran dengan cara memilih

Data Laporan kemudian klik Laporan Pembayaran, lalu isi Laporan Pembayaran

dan lihat

Gambar III.37

Form Data Laporan Data Laporan Pembayaran pada Pembelian Kredit

Page 43: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

63

Gambar III.38

Form Laporan Pembayaran pada Pembelian Kredit

11. Admin mengakses Data Laporan pada Laporan Jurnal dengan cara memilih Data

Laporan kemudian klik Laporan Jurnal, lalu isi Laporan Jurnal dan lihat

Gambar III.39

Form Data Laporan Data Laporan Jurnal pada Pembelian Kredit

Gambar III.40

Form Laporan Jurnal pada Pembelian Kredit

Page 44: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

64

12. Admin mengakses Data Jurnal pada Data Perkiraan dengan cara memilih Data

Jurnal kemudian klik Data Perkiraan, lalu isi Data Perkiraan dan Simpan

Gambar III.41

Form Data Laporan Data Laporan Jurnal pada Pembelian Kredit

Gambar III.42

Form Data Perkiraan pada Pembelian Kredit

Page 45: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

65

13. Admin mengakses Data Jurnal pada Jurnal dengan cara memilih Data Jurnal

kemudian klik Jurnal, lalu isi Jurnal umum dan Simpan

Gambar III.43

Form Data Jurnal Data Jurnal pada Pembelian Kredit

Gambar III.44

Form Jurnal Umum pada Pembelian Kredit

Page 46: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

66

14. Admin mengakses Pengaturan pada Ganti Password dengan cara memilih

Pengaturan kemudian klik Ganti Password, lalu isi Ganti Password dan Simpan

Gambar III.45

Form Pengaturan Ganti Password pada Pembelian Kredit

Gambar III.46

Form Ganti Password pada Pembelian Kredit

Page 47: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

67

15. Admin mengakses Pengaturan pada Back Up dengan cara memilih Back Up

kemudian klik Back Up

Gambar III.47

Form Pengaturan Back Up pada Pembelian Kredit

Gambar III.48

Form Back Up pada Pembelian Kredit

3.5 Implementasi

3.5.1 Code Generation

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

Page 48: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

68

package forms;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.Toolkit;

import java.awt.event.KeyEvent;

import java.io.File;

import java.text.DateFormat;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.ListIterator;

import java.util.Locale;

import javax.swing.DefaultComboBoxModel;

import javax.swing.JDialog;

import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

import model.Pemesanan;

import model.PemesananDetail;

import model.Obat;

import model.Supplier;

Page 49: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

69

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

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

import net.sf.jasperreports.view.JasperViewer;

import utama.Utama;

public class FormPemesanan extends javax.swing.JFrame {

/**

* Creates new form FormPemesanan

*/

String KdObat = "";

String NoPemesanan = "";

String Status = "";

NumberFormat number = new DecimalFormat("#");

NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("id",

"ID"));

Pemesanan pemesanan = new Pemesanan();

Supplier supplier = new Supplier();

Obat obat = new Obat();

Page 50: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

70

PemesananDetail pemesananDetail = new PemesananDetail();

DefaultTableModel model = null;

DefaultTableModel model_pemesanan = null;

DefaultComboBoxModel combo_model = null;

public FormPemesanan() {

initComponents();

Toolkit tk = Toolkit.getDefaultToolkit();

Dimension d = tk.getScreenSize();

int x, y;

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

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

setLocation(x, y);

model = (DefaultTableModel) tbldetailbeli.getModel();

model_pemesanan = (DefaultTableModel) tblpemesanan.getModel();

combo_model = (DefaultComboBoxModel) tsupplier.getModel();

tbldetailbeli.getTableHeader().setFont(new Font("Century Schoolbook", 1,

16));

tbldetailbeli.setRowHeight(30);

Page 51: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

71

tblpemesanan.getTableHeader().setFont(new Font("Century Schoolbook",

1, 16));

tblpemesanan.setRowHeight(30);

bersihForm();

listSupplier();

listPemesanan();

tab.setSelectedIndex(1);

aktifButton();

}

private void aktifButton() {

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

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

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

btnpilih.setEnabled(!"".equals(this.Status));

btncetak.setEnabled("".equals(this.Status) &&

!"".equals(this.NoPemesanan));

btntambah_item.setEnabled(!"".equals(this.Status) &&

!"".equals(tnm_obat.getText()));

tno_pemesanan.setEditable(false);

ttotal_pemesanan.setEditable(false);

Page 52: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

72

ttgl_pemesanan.setEditable(false);

tnm_obat.setEditable(false);

tmerk.setEditable(false);

tsatuan.setEditable(false);

tjml_beli.setEditable(!"".equals(this.Status));

tharga.setEditable(!"".equals(this.Status));

tsupplier.setEnabled(!"".equals(this.Status));

tkd_obat.setEditable(!"".equals(this.Status));

tharga.setEditable(!"".equals(this.Status));

tjml_beli.setEditable(!"".equals(this.Status));

tab.setEnabledAt(0, !"".equals(this.Status));

tab.setEnabledAt(1, "".equals(this.Status));

}

private void hitungTotal() {

double total = 0;

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

total += (double) model.getValueAt(i, 6);

}

ttotal_pemesanan.setText(number.format(total));

}

private void bersihForm() {

tno_pemesanan.setText("");

Page 53: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

73

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

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

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

tsupplier.setSelectedItem("");

tkd_obat.setText("");

tnm_obat.setText("");

tmerk.setText("");

tsatuan.setText("");

tharga.setText("");

ttotal_pemesanan.setText("");

}

private void bersihItem() {

tkd_obat.setText("");

tnm_obat.setText("");

tmerk.setText("");

tsatuan.setText("");

tharga.setText("");

tjml_beli.setText("");

}

private void tampilObat() {

Page 54: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

74

tkd_obat.setText(obat.getKd_obat());

tnm_obat.setText(obat.getNm_obat());

tmerk.setText(obat.getJenis_obat());

tsatuan.setText(obat.getSatuan());

tharga.setText(number.format(obat.getHrg_obat()));

}

private void listSupplier() {

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

ListIterator li = ls.listIterator();

combo_model.addElement("");

while (li.hasNext()) {

Supplier sp = new Supplier();

sp = (Supplier) li.next();

combo_model.addElement(sp.getKd_supplier() + "-" +

sp.getNm_supplier());

}

}

private void tambahItem() {

// TODO add your handling code here:

int i;

Page 55: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

75

for (i = 0; i < model.getRowCount(); i++) {

String kode = model.getValueAt(i, 0).toString();

if (kode.equalsIgnoreCase(tkd_obat.getText())) {

model.getDataVector().removeElementAt(i);

break;

}

}

Object[] data = {

tkd_obat.getText().toUpperCase(),

tnm_obat.getText(),

tmerk.getText(),

tsatuan.getText(),

tharga.getText(),

tjml_beli.getText(),

Double.parseDouble(tjml_beli.getText()) *

Double.parseDouble(tharga.getText())

};

model.addRow(data);

bersihItem();

KdObat = "";

aktifButton();

tkd_obat.requestFocus();

Page 56: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

76

}

private void listPemesanan() {

List<Pemesanan> lp = pemesanan.listPemesanan();

ListIterator li = lp.listIterator();

model_pemesanan.setRowCount(0);

model.getDataVector().removeAllElements();

tblpemesanan.repaint();

while (li.hasNext()) {

pemesanan = (Pemesanan) li.next();

supplier = supplier.cariSupplierKd(pemesanan.getKd_supplier());

Object[] data = {

pemesanan.getNo_pemesanan(),

pemesanan.getTgl_pemesanan(),

pemesanan.getKd_supplier(),

supplier.getNm_supplier(),

nf.format(pemesanan.getTotal_pemesanan())

};

model_pemesanan.addRow(data);

}

}

private void listPemesanan(Date tgl1, Date tgl2) {

Page 57: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

77

List<Pemesanan> lp = pemesanan.cariPemesananPeriode(new

java.sql.Date(tgl1.getTime()), new java.sql.Date(tgl2.getTime()));

ListIterator li = lp.listIterator();

model_pemesanan.setRowCount(0);

model.getDataVector().removeAllElements();

tblpemesanan.repaint();

while (li.hasNext()) {

pemesanan = (Pemesanan) li.next();

supplier = supplier.cariSupplierKd(pemesanan.getKd_supplier());

Object[] data = {

pemesanan.getNo_pemesanan(),

pemesanan.getTgl_pemesanan(),

pemesanan.getKd_supplier(),

supplier.getNm_supplier(),

nf.format(pemesanan.getTotal_pemesanan())

};

model_pemesanan.addRow(data);

}

}

/**

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

Page 58: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

78

* 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() {

btntambah = new javax.swing.JButton();

btnsimpan = new javax.swing.JButton();

btnbatal = new javax.swing.JButton();

btntutup = new javax.swing.JButton();

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

tab = new javax.swing.JTabbedPane();

jPanel2 = new javax.swing.JPanel();

tmerk = new javax.swing.JTextField();

jLabel6 = new javax.swing.JLabel();

jLabel11 = new javax.swing.JLabel();

tharga = new javax.swing.JTextField();

tsatuan = new javax.swing.JTextField();

tnm_obat = new javax.swing.JTextField();

jLabel12 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

Page 59: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

79

tjml_beli = new javax.swing.JTextField();

jLabel5 = new javax.swing.JLabel();

jLabel4 = new javax.swing.JLabel();

tkd_obat = new javax.swing.JTextField();

tno_pemesanan = new javax.swing.JTextField();

btnpilih = new javax.swing.JButton();

jLabel10 = new javax.swing.JLabel();

ttotal_pemesanan = new javax.swing.JTextField();

jLabel14 = new javax.swing.JLabel();

jLabel7 = new javax.swing.JLabel();

ttgl_pemesanan = new javax.swing.JTextField();

jLabel8 = new javax.swing.JLabel();

jLabel9 = new javax.swing.JLabel();

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

jScrollPane2 = new javax.swing.JScrollPane();

tbldetailbeli = new javax.swing.JTable();

btntambah_item = new javax.swing.JButton();

jPanel3 = new javax.swing.JPanel();

jLabel15 = new javax.swing.JLabel();

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

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

btncari = new javax.swing.JButton();

jScrollPane3 = new javax.swing.JScrollPane();

Page 60: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

80

tblpemesanan = new javax.swing.JTable();

btncetak = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

btntambah.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); //

NOI18N

btntambah.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/tambah.png"))); //

NOI18N

btntambah.setText("Tambah");

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

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

btntambahActionPerformed(evt);

}

});

btnsimpan.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); //

NOI18N

btnsimpan.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/save.png"))); //

NOI18N

btnsimpan.setText("Simpan");

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

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

btnsimpanActionPerformed(evt);

Page 61: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

81

}

});

bnbatal.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); // NOI18N

btnbatal.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/batal.png"))); //

NOI18N

btnbatal.setText("Batal");

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

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

btnbatalActionPerformed(evt);

}

});

btntutup.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); //

NOI18N

btntutup.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/keluar.png"))); //

NOI18N

btntutup.setText("Tutup");

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

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

btntutupActionPerformed(evt);

}

});

Page 62: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

82

jPanel1.setBackground(new java.awt.Color(69, 145, 109));

jPanel1.setPreferredSize(new java.awt.Dimension(329, 88));

jLabel1.setFont(new java.awt.Font("Century Schoolbook", 0, 36)); //

NOI18N

jLabel1.setForeground(new java.awt.Color(255, 255, 255));

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

jLabel1.setText("Pemesanan Barang");

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

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

ING)

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

jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,

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

.addContainerGap())

);

jPanel1Layout.setVerticalGroup(

Page 63: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

83

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

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(21, 21, 21)

.addComponent(jLabel1)

.addContainerGap(23, Short.MAX_VALUE))

);

tab.setTabPlacement(javax.swing.JTabbedPane.BOTTOM);

tab.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); // NOI18N

tmerk.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); // NOI18N

jLabel6.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel6.setText("Jenis Obat");

jLabel11.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel11.setText("Satuan");

tharga.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

tsatuan.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

Page 64: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

84

tnm_obat.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel12.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel12.setText("Jumlah Pembelian");

jLabel3.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel3.setText("Kode Obat");

tjml_beli.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel5.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel5.setText("Harga");

jLabel4.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel4.setText("Nama Obat");

tkd_obat.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

tkd_obat.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent evt) {

tkd_obatKeyPressed(evt);

Page 65: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

85

}

});

tno_pemesanan.setFont(new java.awt.Font("Century Schoolbook", 0, 15));

// NOI18N

btnpilih.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

btnpilih.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/cari.png"))); //

NOI18N

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

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

btnpilihActionPerformed(evt);

}

});

jLabel10.setFont(new java.awt.Font("Century Schoolbook", 1, 18)); //

NOI18N

jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);

jLabel10.setText("Tekan [Del] Untuk Hapus");

ttotal_pemesanan.setEditable(false);

ttotal_pemesanan.setFont(new java.awt.Font("Century Schoolbook", 1,

24)); // NOI18N

Page 66: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

86

ttotal_pemesanan.setHorizontalAlignment(javax.swing.JTextField.TRAILING);

jLabel14.setFont(new java.awt.Font("Century Schoolbook", 1, 18)); //

NOI18N

jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);

jLabel14.setText("Total Pemesanan");

jLabel7.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel7.setText("No Pemesanan");

ttgl_pemesanan.setFont(new java.awt.Font("Century Schoolbook", 0, 15));

// NOI18N

jLabel8.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel8.setText("Tanggal Pemesanan");

jLabel9.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

jLabel9.setText("Supplier");

tsupplier.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

tbldetailbeli.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); //

NOI18N

Page 67: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

87

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

new Object [][] {

},

new String [] {

"Kode Obat", "Nama Obat", "Jenis Obat", "Satuan", "Harga",

"Jumlah Beli", "Subtotal"

}

) {

boolean[] canEdit = new boolean [] {

false, false, false, false, false, false, false

};

public boolean isCellEditable(int rowIndex, int columnIndex) {

return canEdit [columnIndex];

}

});

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

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

tbldetailbeliMouseClicked(evt);

}

});

tbldetailbeli.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent evt) {

tbldetailbeliKeyPressed(evt);

Page 68: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

88

}

});

jScrollPane2.setViewportView(tbldetailbeli);

btntambah_item.setFont(new java.awt.Font("Century Schoolbook", 0, 14));

// NOI18N

btntambah_item.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/add_item.png")));

// NOI18N

btntambah_item.setText("Tambah Item");

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

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

btntambah_itemActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

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

ING)

Page 69: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

89

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.LEADING)

.addComponent(jLabel9)

.addComponent(jLabel7)

.addComponent(jLabel8))

.addGap(30, 30, 30)

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

ment.LEADING, false)

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.LEADING)

.addComponent(tno_pemesanan,

javax.swing.GroupLayout.PREFERRED_SIZE, 154,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 70: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

90

.addComponent(ttgl_pemesanan,

javax.swing.GroupLayout.PREFERRED_SIZE, 170,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(764, 764, 764))

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(tsupplier, 0,

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

.addGap(619, 619, 619))))

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.TRAILING)

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addGap(3, 3, 3)

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

ment.LEADING)

.addComponent(jLabel4)

.addComponent(jLabel6)

Page 71: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

91

.addComponent(jLabel11)

.addComponent(jLabel3)

.addComponent(jLabel5))

.addGap(48, 48, 48))

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

jPanel2Layout.createSequentialGroup()

.addComponent(jLabel12)

.addGap(18, 18, 18)))

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(tkd_obat,

javax.swing.GroupLayout.PREFERRED_SIZE, 154,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(btnpilih))

.addComponent(tsatuan,

javax.swing.GroupLayout.PREFERRED_SIZE, 124,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 72: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

92

.addComponent(tnm_obat,

javax.swing.GroupLayout.PREFERRED_SIZE, 337,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tjml_beli,

javax.swing.GroupLayout.PREFERRED_SIZE, 76,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tharga,

javax.swing.GroupLayout.PREFERRED_SIZE, 161,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tmerk,

javax.swing.GroupLayout.PREFERRED_SIZE, 244,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(btntambah_item,

javax.swing.GroupLayout.PREFERRED_SIZE, 224,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(261, 261, 261)))

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addGap(69, 69, 69)

.addComponent(jLabel14)

Page 73: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

93

.addGap(28, 28, 28)

.addComponent(ttotal_pemesanan))

.addGroup(jPanel2Layout.createSequentialGroup()

.addGap(20, 20, 20)

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

ment.LEADING)

.addComponent(jLabel10)

.addComponent(jScrollPane2))

.addGap(1, 1, 1)))

.addContainerGap())))

);

jPanel2Layout.setVerticalGroup(

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

ING)

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

jPanel2Layout.createSequentialGroup()

.addContainerGap()

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

ment.TRAILING)

.addGroup(jPanel2Layout.createSequentialGroup()

Page 74: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

94

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(jLabel14,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jLabel7,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

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

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

ment.BASELINE)

.addComponent(tsupplier,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 75: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

95

.addComponent(jLabel9,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(37, 37, 37)

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

ment.LEADING)

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.BASELINE)

.addComponent(tkd_obat,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnpilih,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

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

.addComponent(tnm_obat,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

Page 76: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

96

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

.addComponent(tmerk,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(tsatuan,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel2Layout.createSequentialGroup()

.addComponent(jLabel3,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

)

.addComponent(jLabel4,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

Page 77: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

97

.addComponent(jLabel6,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(jLabel11,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)))

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

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

ment.LEADING)

.addComponent(jLabel5,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tharga,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(9, 9, 9)

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

ment.LEADING)

Page 78: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

98

.addComponent(jLabel12,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tjml_beli,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(18, 18, Short.MAX_VALUE))

.addGroup(jPanel2Layout.createSequentialGroup()

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

ment.LEADING)

.addComponent(tno_pemesanan,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel10,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

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

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

ment.LEADING)

Page 79: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

99

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

ment.BASELINE)

.addComponent(ttgl_pemesanan,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel8,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE, 370,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

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

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

ment.LEADING)

.addComponent(btntambah_item,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jPanel2Layout.createSequentialGroup()

.addGap(25, 25, 25)

Page 80: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

100

.addComponent(ttotal_pemesanan,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)))))

.addGap(189, 189, 189))

);

tab.addTab("Input", jPanel2);

jLabel15.setFont(new java.awt.Font("Century Schoolbook", 1, 15)); //

NOI18N

jLabel15.setText("Tanggal Pemesanan");

tgl1.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); // NOI18N

tgl2.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); // NOI18N

btncari.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

btncari.setText("Cari");

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

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

btncariActionPerformed(evt);

}

});

tblpemesanan.setFont(new java.awt.Font("Century Schoolbook", 0, 14)); //

NOI18N

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

new Object [][] {

Page 81: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

101

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

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

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

{null, null, null, null, null}

},

new String [] {

"No Pemesanan", "Tanggal Pemesanan", "Kode Supplier", "Nama

Supplier", "Total Pemesanan"

}

) {

boolean[] canEdit = new boolean [] {

false, false, false, false, false

};

public boolean isCellEditable(int rowIndex, int columnIndex) {

return canEdit [columnIndex];

}

});

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

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

tblpemesananMouseClicked(evt);

}

});

jScrollPane3.setViewportView(tblpemesanan);

Page 82: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

102

btncetak.setFont(new java.awt.Font("Century Schoolbook", 0, 15)); //

NOI18N

btncetak.setIcon(new

javax.swing.ImageIcon(getClass().getResource("/forms/image/cetak.png"))); //

NOI18N

btncetak.setText("Cetak");

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

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

btncetakActionPerformed(evt);

}

})

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

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

jPanel3Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.TRAILING)

Page 83: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

103

.addComponent(jScrollPane3,

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

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(btncetak,

javax.swing.GroupLayout.PREFERRED_SIZE, 133,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

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

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addComponent(jLabel15)

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

jPanel3Layout.createSequentialGroup()

.addComponent(tgl1,

javax.swing.GroupLayout.PREFERRED_SIZE, 165,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(tgl2,

javax.swing.GroupLayout.PREFERRED_SIZE, 165,

javax.swing.GroupLayout.PREFERRED_SIZE)))

Page 84: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

104

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

)

.addComponent(btncari,

javax.swing.GroupLayout.PREFERRED_SIZE, 93,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD

ING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addContainerGap(

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(jLabel15,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

)

Page 85: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

105

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Align

ment.LEADING)

.addComponent(btncari,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tgl1,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tgl2,

javax.swing.GroupLayout.PREFERRED_SIZE, 30,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addComponent(btncetak,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE))

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

.addComponent(jScrollPane3,

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

.addContainerGap())

);

tab.addTab("Data", jPanel3);

Page 86: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

106

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

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

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,

1139, Short.MAX_VALUE)

.addGroup(layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)

.addComponent(btntambah)

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

.addComponent(btnsimpan,

javax.swing.GroupLayout.PREFERRED_SIZE, 112,

javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(btnbatal,

javax.swing.GroupLayout.PREFERRED_SIZE, 115,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(74, 74, 74)

Page 87: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

107

.addComponent(btntutup,

javax.swing.GroupLayout.PREFERRED_SIZE, 119,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(19, 19, 19))

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(tab)

.addContainerGap())

);

layout.setVerticalGroup

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

.addGroup(layout.createSequentialGroup()

.addComponent(jPanel1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(tab, javax.swing.GroupLayout.PREFERRED_SIZE,

513, Short.MAX_VALUE)

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

Page 88: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

108

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA

SELINE)

.addComponent(btntambah,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnsimpan,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btnbatal,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(btntutup,

javax.swing.GroupLayout.PREFERRED_SIZE, 45,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap())

);

pack();

}// </editor-fold>

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

// TODO add your handling code here:

if (evt.getKeyCode() == KeyEvent.VK_ENTER) {

obat = obat.cariObatKd(tkd_obat.getText().trim());

Page 89: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

109

if (obat.getNm_obat() == null) {

JOptionPane.showMessageDialog(rootPane, "Data obat yang Anda

cari tidak ada", "Error", JOptionPane.ERROR_MESSAGE);

bersihItem();

} else {

tampilObat();

tharga.requestFocus();

}

aktifButton();

}

}

private void btntambahActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

this.Status = "Tambah";

NoPemesanan="";

bersihForm();

tno_pemesanan.setText(pemesanan.noPemesananAuto());

tab.setSelectedIndex(0);

aktifButton();

}

private void btnbatalActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

bersihForm();

Page 90: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

110

model.setRowCount(0);

tbldetailbeli.repaint();

tab.setSelectedIndex(1);

NoPemesanan="";

Status = "";

aktifButton();

}

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

{

// TODO add your handling code here:

if ("".equals(tnm_obat.getText())

|| "".equals(tharga.getText())) {

JOptionPane.showMessageDialog(rootPane, "Mohon pilih dulu obat

yang di order", "Info", JOptionPane.WARNING_MESSAGE);

return;

}

if(!Utama.validasiInput(tharga.getText(), "[0-9]{3,8}$")){

JOptionPane.showMessageDialog(rootPane, "Harga harus berupa

angka", "Info", JOptionPane.WARNING_MESSAGE);

return;

}

if(!Utama.validasiInput(tjml_beli.getText(), "[0-9]{1,5}$")){

Page 91: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

111

JOptionPane.showMessageDialog(rootPane, "Jumlah beli harus berupa

angka", "Info", JOptionPane.WARNING_MESSAGE);

return;

}

tambahItem();

hitungTotal();

}

private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if ("".equals(tsupplier.getSelectedItem().toString().trim())) {

JOptionPane.showMessageDialog(rootPane, "Pilih dahulu [Supplier]",

"Galat", JOptionPane.ERROR_MESSAGE);

return;

}

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

JOptionPane.showMessageDialog(rootPane, "Belum ada obat yang

dipilih", "Galat", JOptionPane.ERROR_MESSAGE);

return;

}

pemesanan.setNo_pemesanan(tno_pemesanan.getText());

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

Page 92: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

112

pemesanan.setTgl_pemesanan(sdate);

pemesanan.setId_pengguna(Utama.id_pengguna);

pemesanan.setKd_supplier(tsupplier.getSelectedItem().toString().substring(0,

5));

pemesanan.setStatus_tagih(0);

pemesanan.setTotal_pemesanan(Double.parseDouble(ttotal_pemesanan.getText(

)));\

pemesanan.PemesananTambah()

System.out.println(pemesanan.getPesan_error());

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

String kode = (String) model.getValueAt(i, 0);

double harga = Double.parseDouble(model.getValueAt(i, 4).toString());

int jml = Integer.parseInt(model.getValueAt(i, 5).toString());

pemesananDetail.setNo_pemesanan(tno_pemesanan.getText());

pemesananDetail.setKd_obat(kode);

pemesananDetail.setHrg_obat(harga);

pemesananDetail.setJml_beli(jml);

pemesananDetail.PemesananDetailTambah();

bersihForm();

model.getDataVector().removeAllElements();

tbldetailbeli.repaint();

Page 93: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

113

Status = "";

KdObat = "";

NoPemesanan="";

listPemesanan();

tab.setSelectedIndex(1);

JOptionPane.showMessageDialog(rootPane, "Pemesanan berhasil dibuat",

"Info", JOptionPane.INFORMATION_MESSAGE);

aktifButton();

}

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

// TODO add your handling code here:

try {

int row = tbldetailbeli.getSelectedRow();

KdObat = (String) model.getValueAt(row, 0);

} catch (Exception e) {

}

}

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

// TODO add your handling code here:

if (evt.getKeyCode() == KeyEvent.VK_DELETE) {

int row = tbldetailbeli.getSelectedRow();

Page 94: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

114

model.removeRow(row);

tbldetailbeli.repaint();

hitungTotal();

}

}

private void btntutupActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

dispose();

}

private void btnpilihActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

Utama.kd_obat = null;

new FormCariObat(this, true).setVisible(true);

if (Utama.kd_obat != null) {

obat = obat.cariObatKd(Utama.kd_obat);

tampilObat();

} else {

bersihItem();

}

aktifButton();

}

private void btncariActionPerformed(java.awt.event.ActionEvent evt) {

Page 95: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

115

// TODO add your handling code here:

if (tgl1.getDate() == null || tgl2.getDate() == null) {

listPemesanan();

} else {

listPemesanan(tgl1.getDate(), tgl2.getDate());

}

}

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

int row = tblpemesanan.getSelectedRow();

this.NoPemesanan = model_pemesanan.getValueAt(row, 0).toString();

aktifButton();

}

private void btncetakActionPerformed(java.awt.event.ActionEvent evt) {

JDialog reportViwer = new JDialog(this, true);

try {

String FileRaport = "src/forms/Nota.jasper";

HashMap parameter = new HashMap();

parameter.put("NoPemesanan", this.NoPemesanan);

File file = new File(FileRaport);

Page 96: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

116

JasperReport jr = (JasperReport) JRLoader.loadObject(file);

JasperPrint jrp = JasperFillManager.fillReport(jr, parameter,

pemesanan.getKoneksi());

JasperViewer viewer = new JasperViewer(jrp, false);

reportViwer.setContentPane(viewer.getContentPane());

reportViwer.setSize(viewer.getSize());

reportViwer.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

reportViwer.setTitle("Nota");

reportViwer.setVisible(true);

} catch (Exception ex) {

ex.printStackTrace();

}

// TODO add your handling code here:

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

Page 97: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

117

//<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 ("Windows".equals(info.getName())) {

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

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(FormPemesanan.class

.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(FormPemesanan.class

.getName()).log(java.util.logging.Level.SEVERE, null, ex);

Page 98: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

118

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(FormPemesanan.class

.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(FormPemesanan.class

.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

Page 99: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

119

//</editor-fold>

//</editor-fold>

/* Create and display the form */

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

public void run() {

new FormPemesanan().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton btnbatal;

private javax.swing.JButton btncari;

private javax.swing.JButton btncetak;

private javax.swing.JButton btnpilih;

private javax.swing.JButton btnsimpan;

private javax.swing.JButton btntambah;

private javax.swing.JButton btntambah_item;

private javax.swing.JButton btntutup;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

Page 100: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

120

private javax.swing.JLabel jLabel12;

private javax.swing.JLabel jLabel14;

private javax.swing.JLabel jLabel15;

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.JScrollPane jScrollPane2;

private javax.swing.JScrollPane jScrollPane3;

private javax.swing.JTabbedPane tab;

private javax.swing.JTable tbldetailbeli;

private javax.swing.JTable tblpemesanan;

private com.toedter.calendar.JDateChooser tgl1;

private com.toedter.calendar.JDateChooser tgl2;

private javax.swing.JTextField tharga;

private javax.swing.JTextField tjml_beli;

private javax.swing.JTextField tkd_obat;

Page 101: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

121

private javax.swing.JTextField tmerk;

private javax.swing.JTextField tnm_obat;

private javax.swing.JTextField tno_pemesanan;

private javax.swing.JTextField tsatuan;

private javax.swing.JComboBox<String> tsupplier;

private javax.swing.JTextField ttgl_pemesanan;

private javax.swing.JTextField ttotal_pemesanan;

// End of variables declaration

}

Page 102: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

122

3.5.2 BlackBox Testing

Tabel III.19

Hasil Pengujian Blackbox Testing Form Login Admin

No Skenario

Pengujian

Test Case Hasil yang

diharapkan

Hasil

pengujian

Kesimpulan

1 Id pengguna dan

Password tidak di isi

lalu klik Login

Id Ppengguna:

(Kosong)

Password:

(Kosong)

Id pengguna dan

password tidak

boleh kosong

Tidak sesuai

harapan

Tidak valid

2 Id Pengguna di isi

dan password tidak

di isi lalu klik Login

Id Pengguna:

(danafarma)

Password:

(kosong)

Id pengguna dan

password tidak

boleh kosong

Tidak sesuai

harapan

Tidak valid

3 Id Pengguna tidak di

isi dan password di

isi lalu klik Login

Id Pengguna:

(kosong)

Password:

(adm2019)

Id pengguna dan

password tidak

boleh kosong

Tidak sesuai

harapan

Tidak valid

4 Id Pengguna di isi

(salah)dan password

di isi (salah) lalu

klik Login

Id Pengguna:

(danafarma2019

)

Password:

(admin)

Id pengguna dan

Password keliru

Tidak sesuai

harapan

Tidak valid

5 Id Pengguna di isi

dan password di isi

lalu klik Login

Id Pengguna:

(danafarma)

Password:

(adm2019)

Berhasil Login Sesuai

Harapan

Valid

3.5.3 Spesifikasi Hardware dan Software

Kemampuan suatu sistem yang optimal dapat menghasilkan sistem yang baik,

salah satu yang di perlukan untuk memperoleh suatu sistem yang baik adalah perangkat

keras (hardware) dan perangkat lunak (software). Dua perangkat tersebut saling

berkaitan dalam beroperasinya suatu sistem di dalam komputer, kedua perangkat

tersebut tentu saja tidak dapat dipisahkan dan sangat berperan penting untuk

mengoptimalkan suatu sistem.

1. Perangkat Keras (Hardware)

Perangkat keras atau hardware adalah komponen pada komputer yang dapat dilihat

dan disentuh secara fisik, yang berfungsi untuk mendukung proses komputerisasi.

Page 103: BAB III PEMBAHASAN 3.1 Tinjauan Perusahaan 3.1.1 Sejarah ... · Bagian pembelian mengecek stok obat dengan melihat posisi obat dirak dan membuat KS (Kartu Stok) kemudian bagian pembelian

123

Penulis mengusulkan menggunakan perangkat keras yang standar dan tidak mahal serta

di sesuaikan dengan kebutuhan program aplikasi yang akan dirancang. Spesifikasi

perangkat keras yang diusukan sebagai berikut:

a. Monitor : 18 “

b. Proccessor : Core2 Duo / Intel(R) Celeron(R) CPU N2810 @ 2.00 GHz

c. Memory : 2GB (Minimum)

d. Harddisk : 100 GB

e. Keyboard : 102 Keys2

f. Printer : EPSON Printer LX.310

g. Mouse : Standar Mouse

2. Perangkat Lunak (Software)

Perangkat lunak atau software adalah program komputer yang terasosiasi

dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain,

dan cara penggunaan (user manual). Perangkat lunak atau software bisa juga

diartikan sebagai kumpulan komponen yang saling terkait dan mempunyai satu

tujuan.

Perangkat lunak yang dibutuhkan untuk menjalankan program rancang

bangun sistem pembelian kredit ini adalah:

a. Sistem Operasi : Windows 7 or Higher.

b. Bahasa Pemrograman : Java Netbeans.

c. Program atau Software pendukung : Xampp, Mysql, Phpmyadmin.