• Tidak ada hasil yang ditemukan

BAB III PEMBAHASAN. Cilik Sejahtera yang meliputi sejarah perusahaan, struktur organisasi dan beserta

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PEMBAHASAN. Cilik Sejahtera yang meliputi sejarah perusahaan, struktur organisasi dan beserta"

Copied!
78
0
0

Teks penuh

(1)

18

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Berikut ini merupakan pembahasan mengenai tinjuan perusahan pada PT. Giri Cilik Sejahtera yang meliputi sejarah perusahaan, struktur organisasi dan beserta fungsi-fungsinya.

3.1.1. Sejarah Perusahaan

PT. Giri Cilik Sejahtera merupakan perusahaan yang bergerak di bidang perusahan dagang yang didirikan oleh bapak Hakim, beralamat Jalan Raya Pebayuran No.55, Kedungwaringin, Kecamatan Kedungwaringin, Bekasi Jawa Barat 17540.

PT. Giri Cilik Sejahtera menyediakan berbagai bahan bangunan, tidak hanya itu perusahaan ini juga memproduksi bahan bangunan khusus besi. Awalnya perusahaan ini hanya menyediakan bahan bangunan berupa pasir saja dikarenakan pemilik melihat peluang dalam bidang bahan bangunan sangatlah besar maka pemilik memutuskan untuk memperbesar usahanya dan perusahaan ini juga berafiliasi dengan toko bangunan yang ada di sekitar dengan tujuan memberdayakan masyarakat dalam bidang wirausaha. Pemilik perusahaan bersama afiliasi pedagang bahan bangunan selalu menjaga perusahaan agar tetap berjalan lancar dan selalu mengutamakan keuunggulan atau kualitas dari bahan bangunan yang dijual.

PT. Giri Cilik Sejahtera yang dimiliki bapak Hakim mengharapkan agar kedepannya toko bangunan ini bisa memiliki sistem yang lebih bagus untuk mempermudah pengelolaan keuangannya pada bidang penjualan bahan bangunan agar bisa baik dan berjalan lancar.

(2)

3.1.2. Struktur Organisasi Perusahaan dan Fungsi

Struktur organisasi perusahaan adalah jaringan kerjasama dalam sekelompok orang guna mencapai tujuan yang telah ditetapkan. Berikut skema struktur organisasi pada PT. Giri Cilik Sejahtera.

Sumber : PT. Giri Cilik Sejahtera

Gambar III.1

Struktur Organisasi Perusahaan Adapun tugas dari tiap-tiap bagian adalah sebagai berikut: 1. Pemilik Perusahaan

Tugasnya:

a. Menetapkan keputusan-keputusan internal perusahaan dan bertanggung jawab terhadap perencanaan, pengembangan, pelaksanaan, pengawasan, penilaian dan pengendalian seluruh kegiatan perusahaan, serta kegiatan administrasi perusahaan.

b. Melakukan kerja sama dengan pihak eksternal (toko bangunan) yang berpotensi dalam mengembangkan perusahaan.

c. Bertanggung jawab atas kerugian yang dihadapi perusahaan termasuk juga keuntungan perusahaan.

Pemilik Perusahaan

Penanggung Jawab

(3)

2. Penanggung Jawab Tugasnya :

a. Bertanggung jawab atas kegiatan bendahara, purchase, marketing, teknisi, driver.

b. Bertanggung jawab atas alat dan fasilitas. c. Mengkoordinasikan kegiatan.

d. Membuat rencana dan mengevaluasi kerja harian dan bulanan untuk memastikan tercapainya kualitas target kerja yang di persyaratkan dan sebagai bahan informasi kepada atasan.

3. Purchase

a. Mencari dan menganalisa calon supplier.

b. Melakukan negosiasi harga dengan supplier dan memastikan tanggal pengiriman standar.

c. Melakukan kegiatan pembelian barang yang di butuhkan perusahaan. d. Membuat laporan pembelian dan pengeluaran barang.

4. Marketing

a. Merencanakan produk

b. Menetapkan harga yang akan di pasarkan c. Merencanakan promosi

d. Merencanakan proses distribusi e. Mencatat kegiatan penjualan

(4)

5. Bendahara

a. Mengendalikan keuangan perusahaan.

b. Mengkoordinasikan penyelenggaraan urusan perusahaan yang meliputi mengawasi penggunaan uang perusahaan.

c. Membuat laporan keuangan harian maupun bulanan untuk dilaporkan kepada atasan.

6. Teknisi

a. Teknisi bertugas melaksanakan tugas/pekerjaan dengan benar sesuai intruksi penanggung jawab perusahaan

b. Memeliharaan/perbaikan mesin dan sarana perusahaan

7. Driver

a. Mengantarkan barang yang sudah di pesan b. Melakukan pembersihan kendaraan

c. Melakuakn pemeriksaan terkait fisik ataupun mesin kendaraan

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

Kegiatan rangkaian yang terstruktur dalam pelaksanaan satu proses, dalam sistem kelancararan pengolahan tiap data, ataupun bentuk aktivitas apabila didukung dengan prosedur yang baik dan tepat, maka sistem berjalan secara teratur dan output yang dihasilkan serta mutu pelayanan akan lebih baik.

Pada prosedur sistem akuntansi berjalan ini ada beberapa prosedur yang ditetapkan antara lain sebagai berikut:

(5)

1. Prosedur Pemesanan Barang

Prosedur pemesanan barang pada PT Giri Cilik Sejahtera dimulai ketika konsumen melakukan pemesanan barang melawati pemilik perusahaan kemudian pemilik perusahaan memproses pesanan tersebut dengan memesankan barang yang diminta setelah barang tersedia konsumen akan mendapatkan kwitansi rincian harga barang dan diberikan ke konsumen.

2. Prosedur Penerimaan Pembayaran

Dalam penerimaan pendapatan yang biasa menerima kas adalah pemilik perusahaan dimana kas ini didapat dari hasil penjualan barang yang telah dibayar oleh konsumen yang diserahkan kepada pemilik perusahaan kemudian dilakukan pencataan penerimaan oleh bendahara pada buku kas umum.

3. Prosedur Pembelian Barang

Pemilik perusahan melakukan pembelian barang kepada supplier dan mendapatkan nota pembelian barang yang akan dibuat untuk rincian nota pengeluaran kas dan akan dicatat dalam buku kas umum oleh bendahara.

4. Prosedur Pembuatan Laporan

Setelah mendapatkan nota dari hasil penjualan dan pengeluaran yang diberikan pemilik perusahaan kepada bendahara maka bendahara melakukan pembuatan laporan pada buku kas umum dan laporan keuangan.

(6)

3.5.3. Activity Diagram

1. Prosedur Pemesanan Barang

Gambar III.2

Activity Diagram Pemesanan Barang

2. Prosedur Penerimaan Pembayaran

Gambar III.3

Activity Diagram Penerimaan Pembayaran act Pemesanan Barang

Pemilik Konsumen Mulai Mengajukan/Melakukan Pemesanan Barang Memeriksa Pesanan

Mengirim Barang Mengirimkan Kwitansi

Menerima Barang dan Kwitansi

Selesai

act Penerimaan Pembayaran

Bendahara Pemilik

Konsumen

Mulai

Melakukan Pembayaran Menerima Pembayaran

Memberikan Kwitansi/Nota Kepada Bendahara Untuk

Diinput Ke Buku Kas

Input Ke Buku Kas

(7)

3. Prosedur Pembelian Barang

Gambar III.4

Activity Diagram Pembelian Barang 4. Prosedur Pembuatan Laporan

Gambar III.5

Activity Diagram Pembuatan Laporan

act Pembelian Barang

Bendahara Pemilik Supplier

Mulai

Mengajukan/Melakukan Pembelian Barang

Menerima Daftar Pembelian Barang

Mengirim Barang Mengirimkan Nota Pembelian

Menerima Barang dan Nota Pembelian

Memproses Pembelian

Memberikan Nota Pada Bendahara Untuk Diinput Input Nota Ke Buku Kas

Selesai

act Pembuatan Laporan

Pemilik Bendahara

Mulai

Mengumpulkan Bukti/Nota Transaksi

Membuat Rekap Laporan

Menyerahkan Rekap Laporan Ke Pemilik

Menerima Laporan

(8)

3.5.3. Spesifikasi Bentuk Dokumen Masukan

Dokumen masukan adalah semua dokumen yang digunakan sebagai dasar untuk memperoleh data-data yang akan diproses untuk menghasilkan suatu keluaran yang disebut dengan output. Dokumen masukan yang digunakan adalah sebagai berikut:

1. Nama Dokumen : Daftar Pembelian Barang Fungsi : Untuk pembelian barang

Sumber : Konsumen

Tujuan : Marketing

Media : Kertas

Jumlah : -

Frekuensi : Setiap kali ada pemesanan

Format : Lampiran A.1

2. Nama Dokumen : Bukti Pembelian Barang (Kwitansi Pembelian) Fungsi : Untuk bukti pembelian barang dari supplier

Sumber : Supplier

Tujuan : Pemilik

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap kali transaksi pembelian

(9)

3.5.4. Dokumen Keluaran

Dokumen keluaran adalah segala bentuk dokumen yang akan mendukung kegiatan manajemen serta merupakan dokumen dari hasil catatan laporan. Dokumen keluaran yang digunakan adalah sebagai berikut:

1. Nama Dokumen : Kwitansi Penjualan

Fungsi : Untuk bukti penjualan barang

Sumber : Pemilik

Tujuan : Konsumen

Media : Kertas

Jumlah : 1 Lembar

Frekuensi : Setiap kali ada pemesanan

Format : Lampiran B.1

2. Nama Dokumen : Buku Kas Umum

Fungsi : Laporan masuk dan keluarnya kas

Sumber : Bendahara

Tujuan : Pemilik

Media : Kertas

Jumlah : -

Frekuensi : Setiap kali diminta

(10)

3.5.5. Permasalahan Pokok

Laiknya sebuah sistem, sistem yang telah berjalan pada PT Giri Cilik Sejahtera ini juga masih terdapat beberapa permasalahan pokok, antara lain:

1. Sistem pencatatan pemesanan, penjualan, pembelian, dan pendapatan perusahaan hanya menggunakan buku besar yang ditulis tangan.

2. Untuk pencarian data yang diinginkan membutuhkan waktu yang cukup lama karena harus merunut catatan transaksi satu persatu.

3. Kemungkinan terjadi manipulasi data sangat besar karena semua pencatatan masih dilakukan dengan tulis tangan.

4. Belum adanya bentuk laporan yang baik sehingga semua bentuk transaksi bisa dipertanggung jawabkan.

5. Sering terjadinya file-file yang corupt karena termakan virus. 3.5.6. Pemecahan Masalah

Setiap permasalah selalu memiliki solusi, solusi yang tepat dapat diperoleh dengan melakukan troubleshooting pada masalah yang dihadapi agar ditemukan titik dari permasalahan tersebut. Berikut adalah alternatif pemecahan masalah pada PT Giri Cilik Sejahtera:

1. Membuat sebuah sistem komputerisasi yang dapat menangani semua pencatatan transaksi dengan lebih baik.

2. Membuat pencarian data yang dibutuhkan lebih mudah dengan menyimpan semua data dalam basis data yang terintegrasi dengan program.

3. Membatasi akses masing-masing pengguna untuk meminimalisasi terjadinya manipulasi data.

4. Membuat format laporan yang lebih baik dengan tampilan lebih jelas sehingga semua bentuk transaksi dapat dipertanggung jawabkan.

(11)

5. Melakukan back-up data secara berkala untuk mengantisipasi terjadinya kerusakan sistem yang mengakibatkan hilangnya data.

3.3. Analisis Kebutuhan Software 3.3.1. Analisa Kebutuhan

Untuk membangun sebuah sistem informasi, diperlukan anlisa yang tepat agar sistem yang dibangun menjadi sistem yang tepat dan dapat mengefisienkan kerja atau proses bisnis. Sistem informasi yang diimplementasikan dalam sebuah aplikasi ini dibuat dengan berbasis desktop menggunakan bahasa pemrograman Java. Pilihan mengunakan desktop lebih tepat untuk kegiatan proses bisnis yang berkelanjutan, selain itu aplikasi berbasih desktop lebih sedikit menggunakan sunber daya komputer dibandingkan membuat aplikasi berbasih web. Adapun untuk kebutuhan pengguna dari aplikasi ini akan dibagi 2 yaitu:

A. Pemilik

A.1. Melakukan Login

A.2. Mengelola Data Pengguna A.3. Melihat Laporan

B. Bendahara

B.1. Melakukan Login

B.2. Mengelola Buku Kas Umum

C. Purchasing

C.1. Melakukan Login C.2. Mengelola Supplier C.3. Mengelola Barang C.4. Melakukan Pembelian

(12)

D. Marketing

D.1. Melakukan Login D.2. Mengelola Supplier D.3. Mengelola Barang D.4. Melakukan Pembelian

3.3.2. Use Case Diagram 1. Use Case Diagram Pemilik

a. Gambar Use Case Diagram Pemilik

Gambar III.6

Use Case Diagram Pemilik

uc Use Case Diagram Pemilik

Pemilik

Login Mengelola Pengguna

Menambah Pengguna Mengubah Pengguna Menghapus Pengguna Melihat Pengguna Melihat Laporan Melihat Laporan Pembelian Melihat Laporan Penjualan Melihat Laporan Buku Kas Mencari Pengguna «include» «include»

(13)

b. Deskripsi Use Case Diagram

1) Deskripsi Use Case Diagram Menambah Pengguna Tabel III.1

Deskripsi Use Case Diagram Menambah Pengguna

Tujuan Pemilik dapat menambah data pengguna

Deskripsi Sistem ini memungkinkan aktor menambah

pengguna yang berbeda-beda

Aktor Pemilik

Kondisi Awal

Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan data pengguna

baru 2. Memeriksa apakah valid tidaknya

masukan

3. Menyimpan data pengguna ke basis data 4. Menampilkan pesan berhasil disimpan Skenario Alternatif

1. Memasukkan data pengguna baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

6. Menyimpan data pengguna ke basis data 7. Menampilkan pesan berhasil disimpan Kondisi Akhir Sistem dapat menyimpan data pengguna baru

(14)

2) Deskripsi Use Case Diagram Mengubah Pengguna Tabel III.2

Deskripsi Use Case Diagram Mengubah Pengguna

Tujuan Pemilik dapat mengubah data pengguna

Deskripsi Sistem ini memungkinkan aktor

mengubah pengguna

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama pengguna yang dicari

4. Melakukan perubahan pada data pengguna

1. Mencari data pengguna yang akan dibuah.

2. Menampilkan data pengguna

6. Melakukan validasi terhadap masukan.

7. Menyimpan data pengguna ke basis data

8. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Memasukkan nama pengguna yang dicari

4. Melakukan perubahan pada data pengguna

2. Mencari data pengguna yang akan dibuah.

3. Menampilkan data pengguna

5. Melakukan validasi terhadap masukan.

6. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

(15)

7. Memperbaiki masukan yang

salah 8. Melakukan validasi terhadap

masukan.

9. Menyimpan data pengguna ke basis data

10. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat mengubah data pengguna yang telah diubah

3) Deskripsi Use Case Diagram Mencari Pengguna Tabel III.3

Deskripsi Use Case Diagram Mencari Pengguna

Tujuan Pemilik dapat mencari data pengguna

Deskripsi Sistem ini memungkinkan aktor mencari

pengguna.

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama pengguna

yang dicari 2. Mencari data pengguna di basis data. 3. Menampilkan daftar pengguna yang

sesuai.

Kondisi Akhir Sistem dapat mencari data pengguna

4) Deskripsi Use Case Diagram Menghapus Pengguna Tabel III.4

Deskripsi Use Case Diagram Menghapus Pengguna

Tujuan Pemilik dapat menghapus data pengguna

Deskripsi Sistem ini memungkinkan aktor

menghapus pengguna.

Aktor Pemilik

(16)

Aksi Aktor Reaksi Sistem Skenario Normal

1. Memasukkan nama pengguna yang dicari

3. Klik hapus

5. Memilih Ya

2. Mencari data pengguna yang akan dibuah.

4. Konfirmasi Hapus

6. Menghapus data pengguna dari basis data

7. Menampilkan pesan berhasil dihapus

Kondisi Akhir Sistem dapat menghapus data pengguna

2. Use Case Diagram Bendahara

a. Gambar Use Case Diagram Bendahara

Gambar III.7

Use Case Diagram Bendahara uc Use Case Diagram Bendahara

Bendahara

Login Mengelola Buku Kas

Mengubah Buku Kas

Menghapus Buku Kas

Mencari Buku Kas Melihat Buku Kas Menambah Buku Kas

(17)

b. Deskripsi Use Case Diagram Bendahara

1) Deskripsi Use Case Diagram Menambah Buku Kas Umum Tabel III.5

Deskripsi Use Case Diagram Menambah Buku Kas Umum

Tujuan Pemilik dapat menambah data buku kas

umum Deskripsi

Sistem ini memungkinkan aktor menambah buku kas umum yang berbeda-beda

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menginput data buku kas umum

baru 2. Memeriksa apakah valid tidaknya

masukan

3. Menyimpan data buku kas umum ke basis data

4. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Menginput data buku kas umum baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

6. Menyimpan data buku kas umum ke basis data

7. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat menyimpan data buku kas umum baru

(18)

2) Deskripsi Use Case Diagram Mengubah Buku Kas Umum Tabel III.6

Deskripsi Use Case Diagram Mengubah Buku Kas Umum

Tujuan Pemilik dapat mengubah data buku kas

umum

Deskripsi Sistem ini memungkinkan aktor

mengubah buku kas umum.

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama buku kas umum yang dicari

4. Melakukan perubahan pada data buku kas umum

2. Mencari data buku kas umum yang akan dibuah.

3. Menampilkan data buku kas umum

5. Melakukan validasi terhadap masukan.

6. Menyimpan data buku kas umum ke basis data

7. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Memasukkan nama buku kas umum yang dicari

4. Melakukan perubahan pada data buku kas umum

2. Mencari data buku kas umum yang akan dibuah.

3. Menampilkan data buku kas umum

5. Melakukan validasi terhadap masukan.

6. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

(19)

7. Memperbaiki masukan yang salah

8. Melakukan validasi terhadap masukan.

9. Menyimpan data buku kas umum ke basis data

10. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat mengubah data buku kas umum yang telah diubah

3) Deskripsi Use Case Diagram Mencari Buku Kas Umum Tabel III.7

Deskripsi Use Case Diagram Mencari Buku Kas Umum

Tujuan Pemilik dapat mencari data buku kas

umum

Deskripsi Sistem ini memungkinkan aktor mencari

buku kas umum.

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan periode buku kas umum yang dicari

2. Mencari data buku kas umum di basis data.

3. Menampilkan daftar buku kas umum yang sesuai.

(20)

4) Deskripsi Use Case Diagram Menghapus Buku Kas Umum Tabel III.8

Deskripsi Use Case Diagram Menghapus Buku Kas Umum

Tujuan Pemilik dapat menghapus data buku kas

umum

Deskripsi Sistem ini memungkinkan aktor

menghapus buku kas umum.

Aktor Pemilik

Kondisi Awal Pemilik sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama buku kas umum yang dicari

1. Klik hapus

5. Memilih Ya

2. Mencari data buku kas umum yang akan dibuah.

4. Konfirmasi Hapus

6. Menghapus data buku kas umum dari basis data

7. Menampilkan pesan berhasil dihapus Kondisi Akhir Sistem dapat menghapus data buku kas

(21)

3. Use Case Diagram Purchasing

a. Gambar Use Case Diagram Purchasing

Gambar III.8

Use Case Diagram Purchasing

b. Deskripsi Use Case Diagram Purchasing

1) Deskripsi Use Case Diagram Menambah Barang Tabel III.9

Deskripsi Use Case Diagram Menambah Barang

Tujuan Purchasing dapat menambah data barang

Deskripsi Sistem ini memungkinkan aktor

menambah barang yang berbeda-beda

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menginput data barang baru

2. Memeriksa apakah valid tidaknya masukan

3. Menyimpan data barang ke basis data 4. Menampilkan pesan berhasil

(22)

Skenario Alternatif

1. Menginput data barang baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

6. Menyimpan data barang ke basis data 7. Menampilkan pesan berhasil

disimpan

Kondisi Akhir Sistem dapat menyimpan data barang baru

2) Deskripsi Use Case Diagram Mengubah Barang Tabel III.10

Deskripsi Use Case Diagram Mengubah Barang

Tujuan Purchasing dapat mengubah data barang

Deskripsi Sistem ini memungkinkan aktor

mengubah barang.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama barang yang dicari

5. Melakukan perubahan pada data barang

2. Mencari data barang yang akan dibuah.

3. Menampilkan data barang

5. Melakukan validasi terhadap masukan.

6. Menyimpan data barang ke basis data 7. Menampilkan pesan berhasil

(23)

Skenario Alternatif

3. Memasukkan nama barang yang dicari

4. Melakukan perubahan pada data barang

7. Memperbaiki masukan yang salah

2. Mencari data barang yang akan dibuah.

3. Menampilkan data barang

5. Melakukan validasi terhadap masukan.

6. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

8. Melakukan validasi terhadap masukan.

9. Menyimpan data barang ke basis data 10. Menampilkan pesan berhasil

disimpan

Kondisi Akhir Sistem dapat mengubah data barang yang telah diubah

3) Deskripsi Use Case Diagram Mencari Barang Tabel III.11

Deskripsi Use Case Diagram Mencari Barang

Tujuan Purchasing dapat mencari data barang

Deskripsi Sistem ini memungkinkan aktor mencari

barang.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama barang

yang dicari 2. Mencari data barang di basis data. 3. Menampilkan daftar barang yang

(24)

Kondisi Akhir Sistem dapat mencari data barang

4) Deskripsi Use Case Diagram Menghapus Barang Tabel III.12

Deskripsi Use Case Diagram Menghapus Barang

Tujuan Purchasing dapat menghapus data barang

Deskripsi Sistem ini memungkinkan aktor

menghapus barang.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

2. Memasukkan nama barang yang dicari

3. Klik hapus

5. Memilih Ya

2. Mencari data barang yang akan dibuah.

4. Konfirmasi Hapus

6. Menghapus data barang dari basis data

7. Menampilkan pesan berhasil dihapus

Kondisi Akhir Sistem dapat menghapus data barang

5) Deskripsi Use Case Diagram Menambah Supplier Tabel III.13

Deskripsi Use Case Diagram Menambah Supplier

Tujuan Purchasing dapat menambah data

supplier

Deskripsi Sistem ini memungkinkan aktor

menambah supplier yang berbeda-beda

Aktor Purchasing

(25)

Aksi Aktor Reaksi Sistem Skenario Normal

1. Memasukkan data supplier baru

2. Memeriksa apakah valid tidaknya masukan

3. Menyimpan data supplier ke basis data

4. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Memasukkan data supplier baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

6. Menyimpan data supplier ke basis data

7. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat menyimpan data supplier baru

6) Deskripsi Use Case Diagram Mengubah Supplier Tabel III.14

Deskripsi Use Case Diagram Mengubah Supplier

Tujuan Purchasing dapat mengubah data supplier

Deskripsi Sistem ini memungkinkan aktor

mengubah supplier

Aktor Purchasing

Kondisi Awal

(26)

Aksi Aktor Reaksi Sistem Skenario Normal

1. Memasukkan nama supplier yang dicari

4. Melakukan perubahan pada data supplier

2. Mencari data supplier yang akan dibuah.

3. Menampilkan data supplier

5. Melakukan validasi terhadap masukan.

6. Menyimpan data supplier ke basis data

7. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Memasukkan nama supplier yang dicari

4. Melakukan perubahan pada data supplier

7. Memperbaiki masukan yang salah

2. Mencari data supplier yang akan dibuah.

3. Menampilkan data supplier

5. Melakukan validasi terhadap masukan.

6. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

8. Melakukan validasi terhadap masukan.

9. Menyimpan data supplier ke basis data

10. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat mengubah data supplier yang telah diubah

(27)

7) Deskripsi Use Case Diagram Mencari Supplier Tabel III.15

Deskripsi Use Case Diagram Mencari Supplier

Tujuan Purchasing dapat mencari data supplier

Deskripsi Sistem ini memungkinkan aktor mencari

supplier.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama supplier

yang dicari 2. Mencari data supplier di basis data. 3. Menampilkan daftar supplier yang

sesuai.

Kondisi Akhir Sistem dapat mencari data supplier

8) Deskripsi Use Case Diagram Menghapus Supplier Tabel III.16

Deskripsi Use Case Diagram Menghapus Supplier

Tujuan Purchasing dapat menghapus data

supplier

Deskripsi Sistem ini memungkinkan aktor

menghapus supplier.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan nama supplier yang dicari

4. Klik hapus

2. Mencari data supplier yang akan dibuah.

(28)

5. Memilih Ya

6. Menghapus data supplier dari basis data

7. Menampilkan pesan berhasil dihapus Kondisi Akhir Sistem dapat menghapus data supplier

9) Deskripsi Use Case Diagram Menambah Pembelian

Tabel III.17

Deskripsi Use Case Diagram Menambah Pembelian

Tujuan Purchasing dapat menambah data

pembelian

Deskripsi Sistem ini memungkinkan aktor

menambah pembelian.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menginput data pembelian baru

2. Memeriksa apakah valid tidaknya masukan

3. Menyimpan data pembelian ke basis data

4. Menampilkan pesan berhasil disimpan

Skenario Alternatif

1. Menginput data pembelian baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

(29)

6. Menyimpan data pembelian ke basis data

7. Menampilkan pesan berhasil disimpan

Kondisi Akhir Sistem dapat menyimpan data pembelian baru

10) Deskripsi Use Case Diagram Mencari Pembelian

Tabel III.18

Deskripsi Use Case Diagram Mencari Pembelian

Tujuan Purchasing dapat menambah data

pembelian

Deskripsi Sistem ini memungkinkan aktor mencari

pembelian.

Aktor Purchasing

Kondisi Awal Purchasing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan periode

pembelian yang dicari 2. Mencari data pembelian di basis data. 3. Menampilkan daftar pembelian yang

sesuai.

(30)

4. Use Case Diagram Marketing

a. Gambar Use Case Diagram Marketing

Gambar III.9

Use Case Diagram Marketing

b. Deskripsi Use Case Diagram Marketing

1) Deskripsi Use Case Diagram Menambah Penjualan Tabel III.19

Deskripsi Use Case Diagram Menambah Penjualan

Tujuan Marketing dapat menambah data penjualan

Deskripsi Sistem ini memungkinkan aktor menambah

penjualan.

Aktor Marketing

Kondisi Awal Marketing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Menginput data penjualan baru

2. Memeriksa apakah valid tidaknya masukan

(31)

3. Menyimpan data penjualan ke basis data 4. Menampilkan pesan berhasil disimpan Skenario Alternatif

1. Menginput data penjualan baru

4. Memperbaiki masukan yang salah.

2. Memeriksa apakah valid tidaknya masukan

3. Menampilkan pesan peringatan bahwa data yang diinput tidak valid

5. Memeriksa apakah valid tidaknya masukan

6. Menyimpan data penjualan ke basis data 7. Menampilkan pesan berhasil disimpan Kondisi Akhir Sistem dapat menyimpan data penjualan baru

2) Deskripsi Use Case Diagram Mencari Penjualan

Tabel III.20

Deskripsi Use Case Diagram Mencari Penjualan

Tujuan Marketing dapat mencari data penjualan

Deskripsi Sistem ini memungkinkan aktor mencari

penjualan.

Aktor Marketing

Kondisi Awal Marketing sudah login

Aksi Aktor Reaksi Sistem

Skenario Normal

1. Memasukkan periode penjualan

yang dicari 2. Mencari data penjualan di basis data. 3. Menampilkan daftar penjualan yang

sesuai.

(32)

3.3.3. Activity Diagram 1. Activity Diagram Login

Gambar III.10

Activity Diagram Login act Activity Login

Sistem Pengguna

Mulai

ID Pengguna dan Password

Klik Login Validasi Login

Valid?

Tampilkan Pesan Error

Tampilkan Menu Utama

Selesai

Form Login

[Tidak]

(33)

2. Activity Diagram Mengelola Data Barang

Gambar III.11

Activity Diagram Mengelola Data Barang

act Mengelola Data Barang

Sistem Purchasing

Mulai

Pilih

Tambah

Input Data Barang

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data Barang

Ubah

Ubah Data

Simpan?

Batal

Selesai

Hapus Hapus Data

Ada?

Tampilkan Pesan Error

[Tidak] [Ya] [Tidak] [Tidak] Ya [Ya]

(34)

3. Activity Diagram Mengelola Data Supplier

Gambar III.12

Activity Diagram Mengelola Data Supplier

act Mengelola Data Supplier

Sistem Purchasing

Mulai

Pilih

Tambah

Input Data Supplier

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data supplier

Ubah

Ubah Data

Simpan?

Batal

Selesai

Hapus Hapus Data

Ada?

Tampilkan Pessan Error

[Ya] Ya [Ya] [Tidak] [Tidak] [Tidak]

(35)

4. Activity Diagram Mengelola Data Pengguna

Gambar III.13

Activity Diagram Mengelola Data Pengguna

act Mengelola Data Pengguna

Sistem Pemilik

Mulai

Pilih

Tambah

Input Data Pengguna

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data Pengguna

Ubah

Ubah Data

Simpan?

Batal

Selesai

Hapus Hapus Data

Ada?

Tampilkan Pesan Error

[Ya] [Tidak]

[Tidak]

Ya [Ya]

(36)

5. Activity Diagram Mengelola Data Penjualan

Gambar III.14

Activity Diagram Mengelola Data Penjualan

act Mengelola Data Penjualan

Sistem Marketing

Mulai

Pilih

Tambah

Input Data Pembeli

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data Penjualan

Cetak Simpan? Batal Selesai Tampilkan Bukti Penjualan Ada?

Input Data Barang

Input Lagi? [Ya] [Ya] [Tidak] [Ya] [Tidak] [Tidak] [Tidak] [Ya]

(37)

6. Activity Diagram Mengelola Data Pembelian

Gambar III.15

Activity Diagram Mengelola Data Pembelian

act Mengelola Data Pembelian

Sistem Purchasing

Mulai

Pilih

Tambah

Input Data Supplier

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data PembeliAN

Cetak Simpan? Batal Selesai Tampilkan Bukti Pembelian Ada?

Input Data Barang

Input Lagi? [Tidak] [Ya] [Tidak] [Tidak] [Tidak] [Ya] [Ya] [Ya]

(38)

7. Activity Diagram Melihat Laporan

Gambar III.16

Activity Diagram Melihat Laporan act Activity Laporan

Sistem Pemilik

Mulai

Input Periode Laporan

Klik Lihat Tampilkan Laporan

Selesai

(39)

8. Activity Diagram Mengelola Buku Kas Umum

Gambar III.17

Activity Diagram Mengelola Kas Umum

act Mengelola Buku Kas

Sistem Bendahara

Mulai

Pilih

Tambah

Input Data Buku Kas

Simpan Cari Validasi Valid? Simpan Data Tampilkan Data

Pilh Data Buku Kas

Ubah

Ubah Data

Simpan?

Batal

Selesai

Hapus Hapus Data

Ada?

Tampilkan Pesan Error

[Tidak]

Ya [Ya]

(40)

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

Gambar III.18

(41)

3.4.2. Logical Record Structure (LRS)

Gambar III.19

Logical Record Structure

3.4.3. Spesifikasi File

1. Spesifikasi File Tabel Barang

Nama Database : db_giri_cilik_sejahtera Nama File : barang

Tipe File : File Master Akses File : Random

Record Size : 109 Karakter

(42)

Tabel III. 21

Spesifikasi File Tabel Barang

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Barang kode_barang CHAR 7 Primary Key

2 Nama Barang nama_barang VARCHAR 35

3 Merk merk VARCHAR 25

4 Ukuran Barang ukuran_barang VARCHAR 30

5 Satuan satuan VARCHAR 7

6 Harga Barang harga_barang DOUBLE

7 Stok Barang stok_barang INT 5

2. Spesifikasi File Tabel Supplier

Nama Database : db_giri_cilik_sejahtera Nama File : supplier

Tipe File : File Master Akses File : Random

Record Size : 291 Karakter

Field Key : kode_supplier

Tabel III.22

Spesifikasi File Tabel Supplier

No Elemen Data Akronim Tipe Panjang Keterangan

1 Kode Supplier kode_supplier CHAR 6 Primary Key

2 Nama Supplier nama_supplier VARCHAR 35

3 Kontak Person kontak_person VARCHAR 35

4 Alamat Supplier alamat_supplier VARCHAR 200

5 No Telepon no_telp VARCHAR 15

3. Spesifikasi File Tabel Pengguna

Nama Database : db_giri_cilik_sejahtera Nama File : pengguna

Tipe File : File Master Akses File : Random

(43)

Record Size : 100 Karakter

Field Key : id_pengguna

Tabel III.23

Spesifikasi File Tabel Pengguna

No Elemen Data Akronim Tipe Panjang Keterangan

1 ID Pengguna id_pengguna VARCHAR 20 Primary Key

2 Nama Pengguna nama_pengguna VARCHAR 35

3 Password password VARCHAR 35

4 Hak Akses hak_akses VARCHAR 10

4. Spesifikasi File Tabel Penjualan

Nama Database : db_giri_cilik_sejahtera Nama File : penjualan

Tipe File : File Transaksi Akses File : Random

Record Size : 264 Karakter

Field Key : no_transaksi

Tabel III.24

Spesifikasi File Tabel Penjualan

No Elemen Data Akronim Tipe Panjang Keterangan

1 No Transaksi no_transaksi CHAR 9 Primary Key

2 Tanggal Trans tanggal_transaksi DATE

3 Nama Pembeli nama_pembeli CHAR 35

4 Alamat Pembeli alamat_pembeli VARCHAR 200

5 Ongkos Kirim ongkos_kirim DOUBLE

6 Total Penjualan total_penjualan DOUBLE

(44)

5. Spesifikasi File Tabel Penjualan Detail Nama Database : db_giri_cilik_sejahtera Nama File : penjualan_detail Tipe File : File Transaksi Akses File : Random

Record Size : 21 Karakter

Field Key : -

Tabel III. 25

Spesifikasi File Tabel Penjualan Detail

No Elemen Data Akronim Tipe Panjang Keterangan

1 No Transaksi no_transaksi CHAR 9 Foreign Key

2 Kode Barang kode_barang VARCHAR 7 Foreign Key

3 Jumlah Jual jumlah_jual INT 5

4 Harga Barang harga_barang DOUBLE

6. Spesifikasi File Tabel Pembelian

Nama Database : db_giri_cilik_sejahtera Nama File : pembelian

Tipe File : File Pembelian Akses File : Random

Record Size : 35 Karakter

Field Key : no_pembelian

Tabel III. 26

Spesifikasi File Tabel Pembelian

No Elemen Data Akronim Tipe Panjang Keterangan

1 No Pembelian no_pembelian CHAR 9 Primary Key

2 Tanggal Pmb tanggal_pembelian DATE

3 Kode Supplier kode_supplier CHAR 6

4 Total Pembelian total_pembelian DOUBLE

(45)

7. Spesifikasi File Tabel Pembelian Detail Nama Database : db_giri_cilik_sejahtera Nama File : pembelian_detail Tipe File : File Transaksi Akses File : Random

Record Size : 21 Karakter

Field Key : -

Tabel III. 27

Spesifikasi File Tabel Pembelian Detail

No Elemen Data Akronim Tipe Panjang Keterangan

1 No Transaksi no_pembelian CHAR 9 Foreign Key

2 Kode Barang kode_barang VARCHAR 7 Foreign Key

3 Jumlah Beli jumlah_beli INT 5

4 Harga Beli harga_beli DOUBLE

8. Spesifikasi File Tabel Buku Kas Umum Nama Database : db_giri_cilik_sejahtera Nama File : buku_kas

Tipe File : File Transaksi Akses File : Random

Record Size : 195 Karakter

Field Key : no_buku

Tabel III. 28

Spesifikasi File Tabel Buku Kas Umum

No Elemen Data Akronim Tipe Panjang Keterangan

1 No Buku no_buku CHAR 10 Primary Key

2 No Bukti no_bukti VARCHAR 15

3 Uraian uraian VARCHAR 150

4 Debet debet DOUBLE

5 Kredit kredit DOUBLE

6 Saldo saldo DOUBLE

(46)

3.4.4. Sequence Diagram

1. Sequence Diagram Mengelola Data Barang

Gambar III.20

Sequence Diagram Mengelola Data Barang

sd Sequence Diagram Barang

Purchasing

Form Barang Control Barang

Barang bersihInputan() queryBarang]() tambahBarang() btnsimpanActionPerformed() «create»

[Input Data Barang]:

aktifNonaktif() btntambahActionPerformed()

[Buat Kode Barang Baru]: kodeBarangOtomatis() [Validasi]: [Set Data]: [Status= "Tambah"]: FormBarang() «create» [Tampil Error]: [Tampilkan Kode Barang]:

(47)

2. Sequence Diagram Mengelola Data Supplier

Gambar III.21

Sequence Diagram Mengelola Data Supplier

sd Sequence Diagram Supplier

Purchasing

Form Supplier Control Supplier

Supplier

[Validasi]: bersihInputan()

btnsimpanActionPerformed()

«create»

[Tampilkan Kode Supplier]:

[Buat Kode Supplier Baru]: kodeSupplierOtomatis()

[Tampil Error]: [Status= "Tambah"]:

[Set Data]: btntambahActionPerformed()

[Input Data supplier]:

FormSupplier() «create»

[Kode Supplier Baru]: queryObat()

tambahSupplier() aktifNonaktif()

(48)

3. Sequence Diagram Mengelola Data Pengguna

Gambar III.22

Sequence Diagram Mengelola Data Pengguna

sd Sequence Diagram Pengguna

Pemilik

Form Pengguna Control Pengguna

Pengguna bersihInputan()

«create»

[Tampil Error]: [Set Data]: [Input Data Pengguna]:

[status="Tambah"]: btntambahActionPerformed() tambahPengguna() FormPengguna() «create» [Validasi]: btnsimpanActionPerformed() aktifNonaktif()

(49)

4. Sequence Diagram Mengelola Data Penjualan

Gambar III.23

Sequence Diagram Mengelola Data Penjualan

sd Sequnce Diagram Mengelola Data Penjualan

Marketing

Form Penjualan Control Penjualan

Penjualan

Barang Penjualan Detail

loop Input Data Barang

btntambah_itemActionPerformed()

noTransaksiOtomatis()

[Tampil Data Barang]: aktifNonaktif() cariKodeBarang() «create» bersihInputan() ubahBarang() tambahPenjualan() tkode_barangKeyPressed() FormPenjualan() «create» [Validasi]: [Tampilkan No Transaksi]: btnsimpanActionPerformed() [Buat No Baru]:

[Tampil Data Barang]: noTransaksiOtomatis() [Data Barang]: «create» [status= "Tambah"]: cariBarang() «create» btntambahActionPerformed() tambahPenjualanDetail() [Tampil Pesan Error]:

[Input Kode Barang]:

[Set Data]:

(50)

5. Sequence Diagram Mengelola Data Pembelian

Gambar III.24

Sequence Diagram Mengelola Data Pembelian

sd Sequence Diagram Mengelola Data Pembelian

Purchasing

Form Pembelian Control Pembelian

Pembelian Barang Pembelian Detail loop cariKodeBarang() bersihInputan() tambahPembelianDetail() tkode_barangKeyPressed() «create»

[Tampil Pesan Error]: [Tampilkan No Pembelian]:

«create»

[Set Data]:

[Buat No Baru]:

[Tampil Data Barang]: btntambah_itemActionPerformed() noPembelianOtomatis() [Data Barang]: [status= "Tambah"]: ubahBarang() cariBarang() btntambahActionPerformed() tambahPembelian() [Input Kode Barang]:

«create»

[Validasi]: [No Pembelian Baru]: FormPembelian()

«create»

btnsimpanActionPerformed()

noPembelianOtomatis()

[Tampil Data Barang]: aktifNonaktif()

(51)

6. Sequence Diagram Mengelola Data Buku Kas

Gambar III.25

Sequence Diagram Mengelola Data Buku Kas

sd Sequence Diagram Buku Kas

Bendahara

Form Buku Kas Control Buku Kas

Buku Kas

[Buat No Buku Baru]: noBukuOtomatis()

[Tampil Error]: [Status= "Tambah"]:

[Set Data]: btntambahActionPerformed()

[Input Data Buku Kas]:

FormBukuKas() «create»

[No Buku Baru]: queryBuku() tambahBukuKas() aktifNonaktif() [Validasi]: bersihInputan() btnsimpanActionPerformed() «create» [Tampilkan No Buku]:

(52)

3.4.5. Deployment Diagram Gambar III.26 Deployment Diagram deployment Deployment Aplikasi Aplikasi Pendapatan Jasper Report Database Server MySQL Server Java

Java Runrtime Environment

db_giri_cilik_sejahtera

Java Core Library «use»

MySQL JDBC Driver «use»

(53)

3.4.6. User Interface a. Form Login

Gambar III.27

Form Login

b. Form Menu Utama

Gambar III.28

(54)

c. Form Pengguna Gambar III.29 Form Pengguna d. Form Supplier Gambar III.30 Form Supplier

(55)

e. Form Barang

Gambar III.31

Form Barang

f. Form Penjualan

Gambar III.32

(56)

g. Form Pembelian

Gambar III.33

Form Pemb elian Barang

h. Form Buku Kas Umum

Gambar III.34 Form Buku Kas

(57)

i. Form Laporan Gambar III.35 Form Laporan 3.5. Implementasi 3.5.1. Code Generation 1. Model Pembelian package model; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Pembelian { private Connection koneksi; private String no_pembelian; private Date tanggal_pembelian;

(58)

private String kode_supplier; private String id_pengguna; private double total_pembelian; private String pesan_error; public Pembelian() { try { Class.forName("com.mysql.jdbc.Driver"); koneksi = DriverManager.getConnection("jdbc:mysql://localhost/db_giri_cilik_sejahtera?", "root", "");

} catch (ClassNotFoundException | SQLException ex) { this.pesan_error = ex.getMessage();

} }

public Connection getKoneksi() { return koneksi;

}

public String getNo_pembelian() { return no_pembelian;

}

public void setNo_pembelian(String no_pembelian) { this.no_pembelian = no_pembelian;

}

public Date getTanggal_pembelian() { return tanggal_pembelian;

}

public void setTanggal_pembelian(Date tanggal_pembelian) { this.tanggal_pembelian = tanggal_pembelian;

}

public String getKode_supplier() { return kode_supplier;

}

public void setKode_supplier(String kode_supplier) { this.kode_supplier = kode_supplier;

}

public String getId_pengguna() { return id_pengguna;

(59)

public void setId_pengguna(String id_pengguna) { this.id_pengguna = id_pengguna;

}

public double getTotal_pembelian() { return total_pembelian;

}

public void setTotal_pembelian(double total_pembelian) { this.total_pembelian = total_pembelian;

}

public String getPesan_error() { return pesan_error;

}

public String noPembelianOtomatis() { try {

String Sql = "SELECT * FROM pembelian ORDER BY SUBSTR(no_pembelian,4,9) * 1 DESC LIMIT 1";

Statement st = this.koneksi.createStatement(); ResultSet rs = st.executeQuery(Sql); if (rs.next()) { String No = rs.getString("no_pembelian"); No = No.substring(3, 9); No = "PMB" + String.format("%06d", Integer.parseInt(No) + 1); return No; } else { return "PMB000001"; }

} catch (SQLException ex) {

this.pesan_error = ex.getMessage(); return "";

} }

public List<Pembelian> daftarPembelian() { try {

String Sql = "SELECT * FROM pembelian ORDER BY no_pembelian DESC";

List<Pembelian> lb = new ArrayList(); Statement st = this.koneksi.createStatement(); ResultSet rs = st.executeQuery(Sql);

while (rs.next()) {

Pembelian pmb = new Pembelian();

(60)

pmb.setTanggal_pembelian(rs.getDate("tanggal_pembelian")); pmb.setKode_supplier(rs.getString("kode_supplier")); pmb.setId_pengguna(rs.getString("id_pengguna")); pmb.setTotal_pembelian(rs.getDouble("total_pembelian")); lb.add(pmb); } return lb;

} catch (SQLException ex) {

this.pesan_error = ex.getMessage(); return null;

} }

public List<Pembelian> cariPembelianPeriode(Date tanggal_pembelian1, Date tanggal_pembelian2) {

try {

String Sql = "SELECT * FROM pembelian WHERE tanggal_pembelian BETWEEN ? AND ? ORDER BY no_pembelian DESC";

List<Pembelian> lb = new ArrayList();

PreparedStatement ps = this.koneksi.prepareStatement(Sql); ps.setDate(1, tanggal_pembelian1);

ps.setDate(2, tanggal_pembelian2); ResultSet rs = ps.executeQuery(); while (rs.next()) {

Pembelian pmb = new Pembelian();

pmb.setNo_pembelian(rs.getString("no_pembelian")); pmb.setTanggal_pembelian(rs.getDate("tanggal_pembelian")); pmb.setKode_supplier(rs.getString("kode_supplier")); pmb.setId_pengguna(rs.getString("id_pengguna")); pmb.setTotal_pembelian(rs.getDouble("total_pembelian")); lb.add(pmb); } return lb;

} catch (SQLException ex) {

this.pesan_error = ex.getMessage(); return null;

} }

public Pembelian cariNoTransaksi(String No) { try {

String Sql = "SELECT * FROM pembelian WHERE no_pembelian=? ORDER BY no_pembelian"; PreparedStatement ps = this.koneksi.prepareStatement(Sql); ps.setString(1, No); ResultSet rs = ps.executeQuery(); if (rs.next()) { this.setNo_pembelian(rs.getString("no_pembelian"));

(61)

this.setTanggal_pembelian(rs.getDate("tanggal_pembelian")); this.setKode_supplier(rs.getString("kode_supplier")); this.setId_pengguna(rs.getString("id_pengguna")); this.setTotal_pembelian(rs.getDouble("total_pembelian")); } else { this.setNo_pembelian(null); this.setTanggal_pembelian(null); this.setKode_supplier(null); this.setId_pengguna(null); this.setTotal_pembelian(0); } return this;

} catch (SQLException ex) { this.setNo_pembelian(null); this.setTanggal_pembelian(null); this.setKode_supplier(null); this.setId_pengguna(null); this.setTotal_pembelian(0); this.pesan_error = ex.getMessage(); return this; } }

public int tambahPembelian() { try {

String Sql = "INSERT INTO pembelian (no_pembelian, tanggal_pembelian, kode_supplier, total_pembelian, id_pengguna) VALUES (?,?,?,?,?)";

PreparedStatement ps = this.koneksi.prepareStatement(Sql); ps.setString(1, this.no_pembelian); ps.setDate(2, this.tanggal_pembelian); ps.setString(3, this.kode_supplier); ps.setDouble(4, this.total_pembelian); ps.setString(5, this.id_pengguna); return ps.executeUpdate();

} catch (SQLException ex) {

this.pesan_error = ex.getMessage(); return -1; } } } 2. Form Pembelian package forms; import pt_giri_cilik_sejahtera.Pt_Giri_Cilik_Sejahtera; import java.awt.Dimension; import java.awt.Font; import java.awt.Toolkit;

(62)

import java.awt.event.KeyEvent; import java.io.File; 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.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import model.PembelianDetail; import model.Pembelian; import model.Barang; import model.Supplier; 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;

public class FormPembelian extends javax.swing.JFrame { /**

* Creates new form FormPembelian */

String kondisi = ""; String no_pembelian = "";

Pembelian pembelian = new Pembelian();

PembelianDetail detailpembelian = new PembelianDetail(); Barang barang = new Barang();

Supplier supplier = new Supplier();

NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("id", "ID"));

DefaultTableModel tabelPembelianModel = null; DefaultTableModel tabelDetailModel = null; public FormPembelian() {

initComponents();

Toolkit tk = Toolkit.getDefaultToolkit(); Dimension d = tk.getScreenSize(); int x, y;

(63)

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

tabelPembelianModel = (DefaultTableModel) tblpembelian.getModel(); tabelDetailModel = (DefaultTableModel) tbldetail.getModel();

tblpembelian.getTableHeader().setFont(new Font("Calibri Light", 1, 16)); tblpembelian.setRowHeight(27);

DefaultTableCellRenderer rataKanan = new DefaultTableCellRenderer(); rataKanan.setHorizontalAlignment(JLabel.RIGHT);

tbldetail.getColumnModel().getColumn(3).setCellRenderer(rataKanan); tbldetail.getColumnModel().getColumn(4).setCellRenderer(rataKanan); tblpembelian.getColumnModel().getColumn(7).setCellRenderer(rataKanan); tblpembelian.getColumnModel().getColumn(8).setCellRenderer(rataKanan); tbldetail.getTableHeader().setFont(new Font("Calibri Light", 1, 16));

tbldetail.setRowHeight(27); setLocation(x, y); daftarPembelian(); daftarSupplier(); bersihInputan(); aktifNonaktif(); MyTab.setSelectedIndex(1); }

private void aktifNonaktif() {

btntambah.setEnabled("".equals(this.kondisi)); btnsimpan.setEnabled(!"".equals(this.kondisi)); btnbatal.setEnabled(!"".equals(this.kondisi)); btncari.setEnabled("".equals(this.kondisi));

btncetak.setEnabled("".equals(this.kondisi) && !"".equals(this.no_pembelian)); tkode_barang.setEnabled(!"".equals(this.kondisi)); tjumlah_beli.setEnabled(!"".equals(this.kondisi)); btntambah_item.setEnabled(!"".equals(this.kondisi) && !"".equals(tharga_barang.getText())); MyTab.setEnabledAt(0, !"".equals(this.kondisi)); MyTab.setEnabledAt(1, "".equals(this.kondisi)); }

private void bersihInputan() { tno_pembelian.setText("");

(64)

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); ttanggal_pembelian.setText(sdf.format(new java.util.Date())); talamat.setText(""); tkode_barang.setText(""); tnama_barang.setText(""); tharga_barang.setText(""); tjumlah_beli.setText(""); ttotal_beli.setText(""); tabelDetailModel.getDataVector().removeAllElements(); }

private void daftarPembelian() {

List<Pembelian> listPembelian = pembelian.daftarPembelian(); System.out.println(pembelian.getPesan_error()); ListIterator li = listPembelian.listIterator(); tabelPembelianModel.setRowCount(0); tblpembelian.repaint(); String No = ""; double total = 0; while (li.hasNext()) {

Pembelian pmb = (Pembelian) li.next();

supplier = supplier.cariKodeSupplier(pmb.getKode_supplier()); List<PembelianDetail> listDetail =

detailpembelian.daftarDetailPembelian(pmb.getNo_pembelian()); ListIterator lIterator = listDetail.listIterator();

Object[] data = null;

while (lIterator.hasNext()) {

PembelianDetail dtl = (PembelianDetail) lIterator.next();

Barang brg = new Barang().cariKodeBarang(dtl.getKode_barang()); if (No.equalsIgnoreCase(pmb.getNo_pembelian())) { Object[] jdata = { "", "", "", "", dtl.getKode_barang(), brg.getMerk() + " " + brg.getUkuran_barang(), dtl.getJumlah_beli(), nf.format(dtl.getHarga_beli()), nf.format(dtl.getHarga_beli() * dtl.getJumlah_beli()) }; data = jdata; } else { Object[] jdata = {

(65)

pmb.getNo_pembelian(), pmb.getTanggal_pembelian(), pmb.getKode_supplier(), supplier.getNama_supplier(), dtl.getKode_barang(), brg.getMerk() + " " + brg.getUkuran_barang(), dtl.getJumlah_beli(), nf.format(dtl.getHarga_beli()), nf.format(dtl.getHarga_beli() * dtl.getJumlah_beli()) }; data = jdata; }

total += dtl.getHarga_beli() * dtl.getJumlah_beli(); tabelPembelianModel.addRow(data); No = pmb.getNo_pembelian(); } } Object[] jdata = { "", "", "", "", "", "", "", "<html><b>T O T A L</b></html>", "<html><b>" + nf.format(total) + "</b></html>" }; tabelPembelianModel.addRow(jdata); }

private void daftarPembelian(Date tgl1, Date tgl2) {

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

ListIterator li = listPembelian.listIterator(); tabelPembelianModel.setRowCount(0); tblpembelian.repaint(); String No = ""; double total = 0; while (li.hasNext()) {

Pembelian pmb = (Pembelian) li.next();

supplier = supplier.cariKodeSupplier(pmb.getKode_supplier()); List<PembelianDetail> listDetail =

detailpembelian.daftarDetailPembelian(pmb.getNo_pembelian()); ListIterator lIterator = listDetail.listIterator();

(66)

Object[] data = null;

while (lIterator.hasNext()) {

PembelianDetail dtl = (PembelianDetail) lIterator.next();

Barang brg = new Barang().cariKodeBarang(dtl.getKode_barang()); if (No.equalsIgnoreCase(pmb.getNo_pembelian())) { Object[] jdata = { "", "", "", "", dtl.getKode_barang(), brg.getMerk() + " " + brg.getUkuran_barang(), dtl.getJumlah_beli(), nf.format(dtl.getHarga_beli()), nf.format(dtl.getHarga_beli() * dtl.getJumlah_beli()) }; data = jdata; } else { Object[] jdata = { pmb.getNo_pembelian(), pmb.getTanggal_pembelian(), pmb.getKode_supplier(), supplier.getNama_supplier(), dtl.getKode_barang(), brg.getMerk() + " " + brg.getUkuran_barang(), dtl.getJumlah_beli(), nf.format(dtl.getHarga_beli()), nf.format(dtl.getHarga_beli() * dtl.getJumlah_beli()) }; data = jdata; }

total += dtl.getHarga_beli() * dtl.getJumlah_beli(); tabelPembelianModel.addRow(data); No = pmb.getNo_pembelian(); } } Object[] jdata = { "", "", "", "", "", "", "", "<html><b>T O T A L</b></html>", "<html><b>" + nf.format(total) + "</b></html>" }; tabelPembelianModel.addRow(jdata);

(67)

}

private void bersihInputan2() { tkode_barang.setText(""); tnama_barang.setText(""); tharga_barang.setText(""); tjumlah_beli.setText(""); }

private void tambahItem() {

int i;

barang = barang.cariKodeBarang(tkode_barang.getText()); for (i = 0; i < tabelDetailModel.getRowCount(); i++) {

String kode = tabelDetailModel.getValueAt(i, 0).toString(); if (kode.equalsIgnoreCase(barang.getKode_barang())) { tabelPembelianModel.getDataVector().removeElementAt(i); break; } } Object[] data = { barang.getKode_barang(), tnama_barang.getText(), tjumlah_beli.getText(), nf.format(barang.getHarga_barang()), nf.format(barang.getHarga_barang() * Double.parseDouble(tjumlah_beli.getText())) }; tabelDetailModel.addRow(data); bersihInputan2(); no_pembelian = ""; aktifNonaktif(); tkode_barang.requestFocus(); }

private void hitungTotal() { double total = 0;

for (int i = 0; i < tabelDetailModel.getRowCount(); i++) { total += Double.parseDouble(tabelDetailModel.getValueAt(i, 4).toString().replace("Rp", "").replace(",00", "").replace(".", "")); System.out.println(total);

}

ttotal_beli.setText(nf.format(total)); }

(68)

private void cariBarang() {

NumberFormat number = new DecimalFormat("#"); if (!"".equals(tkode_barang.getText())) { barang = barang.cariKodeBarang(tkode_barang.getText()); if (barang.getNama_barang() == null) { bersihInputan2(); tkode_barang.requestFocus(); } else { tnama_barang.setText(barang.getMerk() + " " + barang.getUkuran_barang()); tharga_barang.setText(number.format(barang.getHarga_barang())); tjumlah_beli.requestFocus(); } } else { bersihInputan2(); tkode_barang.requestFocus(); } aktifNonaktif(); }

private void daftarSupplier() {

List<Supplier> ls = supplier.daftarSupplier(); ListIterator<Supplier> li = ls.listIterator(); tsupplier.removeAllItems(); tsupplier.addItem(""); while (li.hasNext()) { supplier = li.next(); tsupplier.addItem(supplier.getKode_supplier() + "-" + supplier.getNama_supplier()); } }

private void btncariActionPerformed(java.awt.event.ActionEvent evt) { if (tgl1.getDate() == null || tgl2.getDate() == null) {

daftarPembelian(); } else {

daftarPembelian(tgl1.getDate(), tgl2.getDate()); }

}

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

}

private void tbldetailKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_DELETE) {

(69)

tabelDetailModel.removeRow(row); tbldetail.repaint();

hitungTotal(); }

}

private void btntambahActionPerformed(java.awt.event.ActionEvent evt) { this.kondisi = "Tambah"; this.no_pembelian = ""; bersihInputan(); aktifNonaktif(); tno_pembelian.setText(pembelian.noPembelianOtomatis()); tkode_barang.requestFocus(); MyTab.setSelectedIndex(0); }

private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) { if ("".equals(talamat.getText().trim())) {

JOptionPane.showMessageDialog(rootPane, "Mohon isi data supplier dahulu", "Galat", JOptionPane.ERROR_MESSAGE);

return; }

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

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

return; }

String[] suppl = tsupplier.getSelectedItem().toString().split("-"); pembelian.setNo_pembelian(tno_pembelian.getText());

java.sql.Date sdate = new java.sql.Date(new java.util.Date().getTime()); pembelian.setTanggal_pembelian(sdate); pembelian.setKode_supplier(suppl[0]); pembelian.setTotal_pembelian(Double.parseDouble(ttotal_beli.getText().replace("R p", "").replace(".", "").replace(",00", ""))); pembelian.setId_pengguna(Pt_Giri_Cilik_Sejahtera.id_pengguna); pembelian.tambahPembelian();

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

double harga = Double.parseDouble(tabelDetailModel.getValueAt(i, 3).toString().replace("Rp", "").replace(".", "").replace(",00", ""));

int jml = Integer.parseInt(tabelDetailModel.getValueAt(i, 2).toString()); detailpembelian.setNo_pembelian(tno_pembelian.getText());

Gambar

Gambar III.6
Gambar III.7
Gambar III.8
Gambar III.9
+7

Referensi

Dokumen terkait

Bagi peneliti selanjutnya agar melakukan penelitian yang lebih maksimal dengan menggunakan media yang lebih baik seperti memutar video dan alat peraga ataupun dikombinasikan

Hasil penelitian didapatkan , 52 responden (60,5%) yang memiliki sikap yang baik tentang pengobatan tradisional, terdapat 47 responden (54,7%) yang menggunakan

Tämä näkyi erityisesti siinä, kuinka sekä haastateltavien että kirjoittajien muistoissa kaupunkiin muutto maaseudulta ei ollut nuorille naisille erityisen

Menyiapkan Karya Tulis terkait dengan Keselamatan Lulu Lintas dan Angkutan Jalan untuk dipresentasikan sebagai bahan penilaian pada acara pemilihan Pelajar Pelopor sesuai dengan

Pada indikator ini dimaksudkan untuk dapat membantu masyarakat dalam mengurus IMB, dimana para aparat Dinas Cipta Karya dan Pertambangan dalam memberikan pelayanan kepada

Thus, the study will focus on understanding the features of SNS that promote perceived enjoyment and social presence for continuous usage using reflections of personal experience of

Pada tabel 2 diuraikan bahan-bahan dalam proses pembuatan dangke yaitu terdiri dari susu sapi, pemilihan susu sapi karena rasa dan aroma dari susu sapi lebih

Tujuan penelitian ini adalah: 1) Untuk mengetahui pengaruh kualitas layanan terhadap loyalitas konsumen pada CV. Showroom Yulia Motor, 2) untuk mengetahui pengaruh