BAB III PEMBAHASAN - repository.bsi.ac.id · Bagian pengiriman bertugas membuatkan surat jalan...
Transcript of BAB III PEMBAHASAN - repository.bsi.ac.id · Bagian pengiriman bertugas membuatkan surat jalan...
20
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Tinjauan merupakan hasil dari pengamatan, pengukuran peninjauan dapat
dilakukan dengan mengamati atau wawacara tentang isi materi yang ini diukur
dari objek penelitian. Tinjauan perusahaan dibagi menjadi sejarah perusahaan,
struktur organisasi serta tugas dan fungsi organisasi. Visi PT. Ana Furnindo
Cemerlang akan menjadi perusahaan yang dapat terus berkembang dan
berkomitmen untuk selalu memberikan produk yang terbaik dan berkualitas serta
menjadi perusahaan paling unggul, profesional dan menguntungkan dalam bidang
interior di Indonesia. Sedangkan Misi dari PT. Ana Furnindo Cemerlang
diantaranya:
1. Menjadi perusahaan yang dapat bersaing dalam bidang interior bangunan
dan menjadi pilihan utama bagi masyarakat dan konsumen.
2. Memberikan pelayanan terbaik dalam segala hal utamanya kepada para
konsumen yang telah memilih dan menggunakan produk perusahaan serta
menjamin bahwa produk yang dihasilkan adalah yang terbaik.
3. Memberikan pelatihan secara maksimal kepada para karyawan sehingga
dapat menciptakan produk yang berkualitas.
3.1.1. Sejarah Perusahaan
PT. Ana Furnindo Cemerlang merupakan perusahaan swasta yang berskala
nasional. Perusahaan ini didirikan di Kota Bekasi pada tanggal 19 September
21
2017 berdasarkan data notaris yang dibuat oleh Abdul Rajab Rahman, SH.Mkn,
serta memperoleh persetujuan dari Menteri Kehakimanan dan Hak Asasi Manusia
Republik Indonesia melalui surat nomor AHU-0043839.AH.01.01.2017 pada
tanggal 04 Oktober 2017 serta nomor Surat Keterangan Usaha (SKU) :
510/00329/PM.DPMPTSP.PPJU/OL.
PT Ana Furnindo Cemerlang merupakan perusahaan yang bergerak
dibidang interior, dan teknikat. Selain itu perusahaan kami juga bergerak di
bidang pertamanan. Perusahaan ini secara resmi berdiri pada tahun 2017 yang
didukung oleh Sumber Daya Manusia (SDM) yang profesional dalam
memberikan pelayanan terbaik.
3.1.2. Struktur Organisasi dan Fungsi
Dalam sebuah perusahaan baik pemerintah maupun swasta, struktur
organisasi sangat diperlukan gunanya untuk mengetahui pembagian tugas dari
masing-masing unit data organisasi tersebut. Sebelum digambarkan pengertian
tentang struktur organisasi pada PT. Ana Furnindo Cemerlang. Terlebih dahulu
akan diberikan pengertian tentang struktur organisasi tersebut.
Struktur oraganisasi dapat diartikan sebagai susunan dan hubungan antara
bagian-bagian komponen dan posisi di dalam suatu perusahaan. Struktur
menspesifikasi pembagian kegiatan kerja dan menunjukan bagaimana fungsi atau
kegiatan yang berbeda-beda itu dihubungkan, struktur itu juga menunjukan
tingkatan dan struktur wewenang organisasi.
22
Struktur organisasi pada PT. Ana Furnindo Cemerlang dapat digambarkan sebagai
berikut:
Gambar III.1 Sturktur Organisasi PT Ana Cemerlang
Sumber : Struktur Organisasi PT. Ana Furnindo Cemerlang
Berikut adalah uraian tugas dan fungsi masing-masing bagian terkait yang
terdapat di PT. Ana Furnindo Cemerlang:
1. Marketing Direktur
Direktur bertugas memimpin, mengkoordinasi, mengontrol, bertanggung
jawab dan mengendalikan seluruh jalannya kegiatan yang ada di
perusahaan serta melakukan pemasaran .
2. Bagian Penjualan
Bagian penjualanbertugas dalam melayani konsumen yang datang,
melakukan penawaran dan melakukan invoice.
23
3. Bagian Produksi
Bagian produksi bertugas mengolah bahan mentah menjadi barang siap
pakai, dimulai dengan perakitan, mengukir, pewarnaan dan finishing.
4. Ahli Teknik Lapangan
Bagian staff bertugas dalam merancang design barang pesanan pelanggan.
5. Bagian Pengiriman
Bagian pengiriman bertugas membuatkan surat jalan untuk barang yang
akan dikirim dan menyerahkan barang yang dipesan sesuai permintaan,
spesifikasinya sesuai dengan yang tercantum dalam surat jalan.
3.2. Tinjauan Kasus
3.2.1. Proses Bisnis Sistem Berjalan
Proses bisnis sistem berjalan yang diambil pada PT. Ana Furnindo
Cemerlang adalah sistem penjualan furniture secara tunai. Secara umum melewati
proses sebagai berikut:
1. Proses Penjualan
Pada proses ini dimulai ketika customer memesan barang yang akan dibeli
dengan datang langsung atau melalui telepon ke PT Ana Furnindo
Cemerlang, pemesanan disampaikan secara lisan. Kemudian bagian
penjualan akan memberikan surat penawaran barang yang akan dipesan
oleh customer apakah sesuai dengan pesanan atau tidak sesuai, apabila
sesuai maka terjadi kesepakatan. Berdasarkan kwitansi yang dibuat dan
telah disepakati bersama, maka bagian penjualan memberikan kwitansi
yang berisi tagihan sejumlah uang yang harus dibayar oleh customer.
24
2. Proses Pengiriman Barang
Proses pengiriman sesuai dengan kwitansi yang telah dibuat oleh bagian
penjualan, maka marketing direktur membuat SJ (Surat Jalan) yang
diberikan untuk bagian produksi, kemudian bagian produksi akan
menyiapkan barang yang akan dikirim berdasarkan SJ, setelah itu bagian
produksi memerintahkan kepada bagian pengiriman barang yang disertai
SJ kepada customer. Jika ada barang yang tidak sesuai, maka pelanggan
tidak akan menandatangani SJ tersebut. Jika sesuai makan SJ akan
ditandatangani customer dan akan dikirim kembali rangkapnya untuk arsip
ke marketing direktur sebagai bukti bahwa barang yang telah diterima oleh
pelanggan dengan baik.
3. Proses Pembuatan Laporan
Pada proses pembuatan laporan penjualan sebagai bukti pertanggung
jawaban kepada marketing direktur maka bagian penjualan membuat
laporan penjualan yang akan diserahkan kepada marketing direktur setiap
1 bulan sekali dan laporan penjualan ini dibuat berdasarkan kwitansi
penjualan.
25
act Activ ity Diagram Penjualan
Bagian PenjualanCustomer
Start
Menanyakan Barang Memberikan Surat Penawaran
Pesanan Disetujui
Membuat KwitansiMenerima Kwitansi
Melakukan Pembayaran Menerima Pembayaran
finish
Disetujui
Tidak Disetujui
Melakukan Penawaran Barang dan Harga
3.2.2. Activity Diagram
1. Activity Diagram Proses Penjualan
Gambar III.2 Activity Diagram Proses Penjualan
26
act Activ ity Diagram Pembayaran
CustomerBagian PengirimanBagian ProduksiMarketing Direktur
Menyiapkan Barang dan surat jalan
Melihat Kwitansi
Membuat Surat Jalan
Start
Menerima surat jalan dan barang
Mengirim Barang disertai surat jalan
Menerima Barang dan Surat Jalan
Cek Barang
Meneriman Surat Jalan
Surat jalan di validasiMenerima surat jalan yang divalidasi
Mengirim surat jalan yang telah di validasi
Mengirim Surat jalan yang tidak di validasi dan
barang yang tidak sesuai
Menerima surat jalan dan Barang
Menerima surat jalan yang telah divalidasi
Finish
Tidak Sesuai
Sesuai
2. Activity Diagram Proses Pengiriman
Gambar III.3 Activity Diagram Proses Pengiriman
27
act Activ ity Diagram Pembuatan Laporan
Marketing DirekturBagian Penjualan
Start
Melihat Kwitansi
Membuat Laporan Penjualan Menerima Laporan Penjualan
Finish
3. Activity Diagram Pembuatan Laporan
Gambar III.4 Acticvity Diagram Proses Pembuatan Laporan
3.2.3. Dokumen Masukan
Dalam penulisan tugas akhir ini penulis mencoba menjelaskan tentang
dokumen masukan (input) diantaranya sebagai berikut:
1. Nama Dokumen : Data Barang
Fungsi : Sebagai dokumen masukan untuk data barang
Sumber : Bagian Penjualan
Tujuan : Customer
Media : Kertas
28
Jumlah : 2 Lembar
Frekuensi : Setiap adanya proses data barang masuk
Bentuk : Lampiran A.1
3.2.4. Dokumen Keluaran (Output)
Bentuk dokumen keluaran merupakan dokumen atau data yang dibuat
berdasarkan data keluarannya. Dalam proses pengolahan data nantinya
menghasilkan bentuk keluaran dan laporan diantaranya sebagai berikut:
1. Nama Dokumen : Kwitansi
Fungsi : Sebagai data penjualan
Sumber :Bagian Penjualan
Tujuan : Customer
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap ada penjualan
Bentuk : Lampiran B.1
2. Nama Dokumen : Laporan Penjualan
Fungsi : Sebagai laporan penjualan furniture
Sumber : Bagian Penjualan
Tujuan : Marketing Direktur
29
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap akhir bulan
Bentuk : Lampiran B.2
3. Nama Dokumen : Surat Jalan
Fungsi : Sebagai bukti pengiriman barang
Sumber : Marketing Direktur
Tujuan : Customer
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap pengiriman barang
Bentuk : Lampiran B.3
4. Nama Dokumen : Surat Penawaran
Fungsi : Sebagai bukti adanya penawaran barang
Sumber : Marketing Direktur
Tujuan : Customer
Media : Kertas
Jumlah : 1 Lembar
Frekuensi : Setiap adanya penawaran
30
Bentuk : Lampiran B.4
3.2.5. Permasalahan Pokok
Dari analisa yang dilakukan didapatkan beberapa permasalahan pokok
dalam sistem penjualan furniture pada PT. Ana Furnindo Cemerlang yang masih
menggunakan sistem manual, diantaranya :
1. Masih menggunakan cara manual dalam proses perhitungan, pencatatan
pembukuan, dan pembuatan laporan. Perhitungan masih menggunakan alat
bantu kalkulator, pencatatan atau pembukuan masih manual menggunakan
sebuah buku besar, dan laporan masih harus menuliskannya pada
Microsoft Office Excel dan kurangnya pemanfaatan alat komputer yang
tersedia.
2. Keamanan dokumen kurang terjamin, dikarenakan semua data masih
dicatat di media kertas sehingga dapat terjadi hal-hal yang tidak
diinginkan, misalkan kebanjiran dan kebakaran yang tidak terduga yang
menyebabkan hilangnya data.
3. Penyimpanan data tidak dipisah-pisahkan sesuai bagian tertentu, sehingga
data tidak bisa langsung didapatkan saat dibutuhkan.
3.2.6. Pemecahan Masalah
Dengan sistem penjualan yang belum terkomputerisasi maka banyak
permasalahan yang terjadi. Tentunya hal ini sangat merugikan karena tidak sesuai
lagi dengan kemajuan teknologi informasi sekarang ini, dengan digunakan
komputer sebagai alat bantu untuk mempermudah proses perhitungan dalam
melakukan transaksi penjualan. Selain itu keuntungan lain yang dapat diperoleh
31
dengan adanya komputer adalah dalam penyusunan laporan penjualan akan lebih
cepat dan akurat, sehingga dalam proses perhitungan dan penyusunan laporan
tidak mengalami kesulitan.
Maka dari itu, penulis berusaha memberikan alternatif pemecahan masalah
dari berbagai permasalahan yang ada. Untuk menangani hal tersebut diatas, maka
alternatif pemecahan masalah yang penulis usulkan dengan menggunakan aplikasi
Neatbeans IDE 8.1 sehingga memudahkan pengguna komputer dalam
menjalankan pekerjaanya, dari hal diatas tersebut ada beberapa hal diataranya:
1. Dari fasilitas yang ada karyawan dapat diberikan ilmu / training untuk
mempelajari dan mendata ulang menggunakan aplikasi yang penulis
usulkan (Neatbeans IDE 8.1)
2. Penyimpanan data yang rapih dapat membantu karyawan dalam
mengoprasikan komputer dengan data dan laporan yang cepat, akurat, dan
tingkat keamanan data lebih baik dari pada manual.
3. Penempatan file dengan menggunakan Neatbeans IDE 8.1 bisa membantu
karyawan untuk mencari data dengan cepat.
3.3. Analisis Kebutuhan Software
Adapun kebutuhan software yang digunakan dalam perancangan web ini
adalah XAMPP merupakan web server yang didalamnya sudah tersedia database
serverMySQL, dan Java NetBeans. XAMPP merupakan software yang mudah
digunakan dan mendukung instalasi di windows ataupun Linux, keuntungan
lainnya adalah kita bisa mengatur web server yang akan kita gunakan.
32
3.3.1. Analisis Kebutuhan
Bagian admin (Marketing Direktur) dankasir ( Bagian Penjualan) dapat
masuk ke sistem penjualan. Didalam sistem penjualan, admin dapat mengakses
semua transaksi penjualan dan penginputan data barang hingga mencetak laporan
penjualan yang nanti akan diberikan kepada pemilik. Sedangkan bagian kasir.
A. Analisa Kebutuhan User (AdmindanKasir) akan Sistem
A1. Melakukan Login
A2. Mengakses Menu Utama Admin
A2.1 Mengakses Menu File
A2.2 Mengakses Menu Master
A2.3 Mengakses Menu Transaksi
A2.4 Mengakses Menu Laporan
A2.5 Mengakses Menu Pengaturan
B2. Mengakses Menu Utama Kasir
B2.1 Mengakses Menu File
B2.2 Mengakses Menu Transaksi
B2.3 Mengakses Menu Laporan
33
3.3.2. Use Case Diagram
1. Use Case Diagram Halaman Admin
Gambar III.5 Use Case Diagram Halaman Admin
Deskripsi Gambar III.5 Use Case Diagram Halaman Admin
Use Case Narative File
Tujuan User dapat keluar dari aktivitas
Deskripsi Sistem ini memungkinkan aktor untuk membatalkan proses
dan keluar dari aktivitas didalam aplikasi
Skenario Utama
Aktor Admin
Kondisi Awal Aktor membuka Menu Utama
uc Use Case Admin
Admin
Login
Keluar
Verifikasi Login
Login Gagal
Login Berhasil
Menu Utama
File
MasterTransaksi
Laporan
Pengaturan
Logout Keluar Barang UserLaporan Data
BarangLaporan Data
User
Laporan Data Transaksi
Ganti Password
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»«include»«include»
«include»
«include»
34
Aksi Aktor Reaksi Sistem
1. Aktor memilih
tombol Log In
2. Aktor memilih
tombol Keluar
3. Aktor memilih
tomol File
4. Aktor memilih
Menu Master
5. Aktor memilih
Menu Transaksi
6. Aktor memilih
Menu Laporan
7. Aktor memilih
Menu
Pengaturan
Sistem akan menampilkan teatbox untuk mengisi username
dan password
Sistem akan membatalkan proses dan keluar dari aktivitas
Sistem akan menampilkan submenu file seperti log out dan
Keluar
Sistem akan menampilkan teatbox untuk input daftar data
barang dan daftar data user
Sistem akan menampilkan teatbox untuk mengisi transaksi
penjualan
Sistem akan menampilkan opsional untuk melihat dan
mencetak laporan
Sistem akan menampilkan teatbox untuk mengelola data
pengguna seperti ganti password
Kondisi Akhir Jika perintah sesuai maka user akan keluar dari aktivitas di
dalam aplikasi
35
2. Use Case Diagram HalamanKasir
Gambar III.6 Use Case Diagram Halaman Kasir
Deskripsi Gambar III.6 Use Case Halaman Kasir
Use Case Narative File
Tujuan User dapat keluar dari aktivitas
Deskripsi Sistem ini memungkinkan aktor untuk membatalkan proses
dan keluar dari aktivitas didalam aplikasi
Skenario Utama
Aktor Kasir
Kondisi Awal Aktor membuka Menu Utama
Aksi Aktor Reaksi Sistem
uc Use Case Kasir
Kasir
Login
Keluar
Verifikasi Login
Login Gagal
Login Berhasil
Menu Utama
File
Transaksi
Laporan
Logout KeluarLaporan Data
BarangLaporan Data
Transaksi
«include»
«include»
«include»
«include»
«include»
«include»
«include»
«include»«include»
«include»
«include»
36
1. Aktor memilih
tombol Log In
2. Aktor memilih
tombol Keluar
3. Aktor memilih
Menu File
4. Aktor memilih
Menu Transaksi
5. Aktor memilih
Menu Laporan
Sistem akan menampilkan teatbox untuk mengisi username
dan password
Sistem akan membatalkan proses dan keluar dari aktivitas
Sistem akan menampilkan submenu file seperti log out dan
Keluar
Sistem akan menampilkan teatbox untuk mengisi transaksi
penjualan
Sistem akan menampilkan opsional untuk melihat dan
mencetak laporan
Kondisi Akhir Jika perintah sesuai maka user akan keluar dari aktivitas di
dalam aplikasi
37
act Activ ity Diagram Menu Login
Aplikasi PenjualanUser
Start
Melakukan Login
Memasukan Kode User Memasukan Password
Cek Kode User dan Password
Masuk ke Menu Utama
Tampil Pesan Kode User atau Password Salah
Finish
Tidak Sesuai
Sesuai
3.3.3. Activity Diagram
1. Activity Diagram Log In
Gambar III.7 Activity Diagram Menu Log In
38
act Activ ity Diagram Menu Utama
Aplikasi PenjualanUser
Start
Mengakses Menu Utama Menampilkan Menu
Menu File Menu Master Menu Transaksi Menu Laporan Menu Pengaturan
Tampil Data
Finish
2. Activity Diagram Menu Utama Admin
Gambar III.8 Activity Diagram Menu Utama Admin
39
act Actv ity Diagram Kasir
Aplikasi PenjualanUser
Start
Mengakses Menu Utama Menampikan Menu Utama
Menu File Menu Transaksi Menu Laporan
Tampil Data
Finish
3. Activity Diagram Menu Utama Kasir
Gambar III.9 Activity Diagram Menu Utama Kasir
40
act Activ ity Diagram Menu File
Aplikasi PenjualanUser
Start
Mengakses Menu File Tampilkan Menu File
Menentukan Pilihan
Keluar Log Out Kembali Ke Form Log In
Keluar Sistem
Finish
4. Activity Diagram Menu File
Gambar III.10 Activity Diagram Menu File
41
act Activ ity Diagram Menu Master
Aplikasi PenjualanUser
Start
Mengakses Menu Master
Tampil Menu Master
Memilih Submenu Menu Master
Pilih Data Barang Pilih Data User
Input Data Barang
Tambah Keluar
Input Data
Tampil Pesan Data Berhasil Disimpan
Finish
Input Data User
5. Activity Diagram Menu Master
Gambar III.11 Activity Diagram Menu Master
42
act Activ ity Diagram Menu Transaksi
Aplikasi Penjualan
Tutup Menu Transaksi
Tampil Menu Transaksi
User
Start
Mengakses Menu Transaksi
Input Transaksi
Stop
Batal Simpan Data Tersimpan
Pilih Tombol Cetak Struk
Cetak Struk
Pilih Tombol Tambah
Tidak Lengkap
Lengkap
6. Activity Diagram Menu Transaksi
Gambar III.12 Activity Diagram Menu Transaksi
43
act Activ ity Diagram Menu Laporan
Marketing DirekturAplikasi Penjualan
Finish
Menerima LaporanMenyerahkan Laporan
Cetak Laporan Laporan
Laporan Data BarangLaporan Transaksi Penjualan
Menampilkan Menu Laporan
Mengakses Menu Laporan
User
Start
Laporan Data User
7. Activity Diagram Menu Menu Laporan
Gambar III.13 Activity Diagram Menu Laporan
44
act Activ ity Diagram Menu Pengaturan
Aplikasi Penjualan
Finish
Data TersimpanPilih Simpan
Tampil Ganti Password
Start
User
Input Password Baru
Mengakses Menu Pengaturan
8. Activity Diagram Menu Pengaturan
Gambar III.14 Activity Diagram Menu Pengaturan
45
erd ERD
totalbayar
tgl
level
password
kd_user
detailtransaksi
Transaksi
subtotal
jumlahbelihrg_jual
nm_brg
nama_user
notransaksi
User
kd_brg
Barang
kd_user
notransaksi
jumlahbeli
subtotal
kd_brg
11
1
M
1 1
Berisi
Mengelola
Berisi
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD)
Gambar III.15 Entity Relationship Diagram (ERD)
46
3.4.2. Logical Record Structure (LRS)
Gambar III.16 Logical Record Structure (LRS)
3.4.3. Spesifikasi File
1. Spesifikasi File Barang
Nama File : Data Barang
Akronimi : Barang
Fungsi : Menyimpan data barang
Tipe File : File Master
Organisasi File : Index Sequential
47
Akses File : Random
Media : Harddisk
Panjang Record : 56 Byte
Kunci Field : kd_brg
Software : XAMPP
Tabel III.1
Spesifikasi File Data Barang
No Elemen Data Akronomi Tipe Panjang Keterangan
1 Kode Barang kd_brg Varchar 10 Primary Key
2 Nama Barang nm_brg Varchar 35
3 Harga Jual hrg_jual Double
4 Jumlah Beli jumlahbeli Integer 11
4 Sub Total subtotal Double
2. Spesifikasi File User
Nama File : Data User
Akronimi : User
Fungsi : Menginput Data User
Tipe File : File Master
48
Organisasi File : Index Sequential
Akses File : Random
Media : Harddisk
Panjang Record : 61 Byte
Kunci Field : kd_user
Software : XAMPP
Tabel III.2
Spesifikasi File Data User
No Elemen Data Akronomi Tipe Panjang Keterangan
1 Kk k Kode User kd_user Varchar 10 Primary Key
2 Nama User nama_user Varchar 20
3 Password password Varchar 30
4 Level level Varchar 1
3. Spesifikasi File Transaksi
Nama File : Data Transaksi
Akronimi : Transaksi
Fungsi : Input data transaksi
Tipe File : File Transaksi
49
Organisasi File : Index Sequantial
Akses File : Random
Media : Harddisk
Panjang Record : 25 Byte
Kunci Field : notransaksi
Software : XAMPP
Tabel III.3
SpesifikasiFile Data Transaksi
No Elemen Data Akronomi Tipe Panjang Keterangan
1 Nn Nomor Transaksi notransaksi Varchar 15 Primary Key
2 Tanggal tgl Date
3 Total Bayar totalbayar Double
4 Kode User kd_user Varchar 10 Foreign Key
4. Spesifikasi File Detail Transaksi
Nama File : Data Detail Transaksi
Akronimi : detailtransaksi
Fungsi : Input data detail transaksi
Tipe File : File Transaksi
50
Organisasi File : Index Sequential
Akses File : Random
Media : Harddisk
Panjang Record : 36 Byte
Kunci Field : notransaksi
Software : XAMPP
Tabel III.4
Spesifikasi File Detail Transaksi
No Elemen Data Akronomi Tipe Panjang Keterangan
1 Nn Nomor Transaksi notransaksi Varchar 15 Foreign Key
2 Jumlah Beli jumlahbeli Integer 11
3 Sub Total subtotal Double
4 Kode Barang kd_brg Varchar 10 Foreign Key
51
3.4.5. Sequence Diagram Transaksi Penjualan
Gambar III.17 Sequence Diagram Transaksi Penjualan
3.4.5. Deployment Diagram
Gambar III.18 Deployment Diagram
sd Sequence Transaksi
Kasir
Form TransaksiPenjualan
ControlPenjualan
Database
get (kd_user)
Simpan()
get (tgl)
get (tgl)
Batal()
get (bayar)
display (notransaksi+1)
get (notransaksi)
get (bayar)
get (kd_user)
set (subtotal)
get (jumlahbeli)
set (kembali)
get (kd_brg)
get (harga)
get (kd_brg)
get (notransaksi)
set (struk)
set (kembali)
Tambah()
get (jumlahbeli)
get (harga)
set (subtotal)
deployment Deployment
Main
<<ActiveXControl>> Java
<<device>> Database
<<DBMS>> MySQL
<<Database>> Furniture_db
<<device>>
<<Aplication>> Aplikasi Penjualan
52
3.4.6. User Interface
1. User InterfaceMenuLogin
Tampilan ini digunakan untuk mengakses aplikasi penjualan
Gambar III.19User Interface Menu Login
53
2. User Interface Menu UtamaAdmin
Tampilan ini digunakan untuk admin mengakses sub menu yang ada di
aplikasi penjualan
Gambar III.20 User Interface Form Menu Utama Admin
3. User Interface Menu Utama Kasir
Tampilan ini digunakan untuk kasir mengakses sub menu yang ada di
aplikasi penjualan
Gambar III.21 User Interface Menu Utama Kasir
54
4. User Interface Form Data Barang
Tampilan ini digunakan untuk mengelola atau menginput data barang.
Gambar III.22 User Interface Data Barang
55
5. User Interface Form Data User
Tampilan ini digunakan untuk mengelola atau menginput data user
Gambar III.23 User Interface Data User
56
6. User Interface Form Data Pelunasan
Tampilan ini digunakan untuk mengelola atau menginput data pelunasan.
Gambar III.24 User Interface Data Pelunasan
57
7. User Interface Form Input Transaksi
Tampilan ini untuk mengelola transaksi penjualan.
Gambar III.25 User Interface Input Transaksi
58
8. User Interface Laporan Transaksi
Pada Tampilan ini user dapat melihat laporan transaksi mulai dari laporan
transaksi perperiode maupun perbulan
Gambar III.26 User Interface Laporan Transaksi
59
9. User Interface Laporan Data Barang
Tampilan ini digunakan untuk melihan laporan data barang
Gambar III.27 User Interface Laporan Barang
60
10. User Interface Laporan Data User
Tampilan ini digunakan untuk melihat data user baik admin maupun kasir.
Gambar III.28 User Interface Laporan User
11. User Interface Laporan Transaksi PerPeriode
Tampilan ini dugunakan untuk melihat laporan transaksi penjualan
perperiode.
Gambar III.29 User Interface Laporan Transaksi PerPeriode
61
12. User Interface Laporan Transaksi PerBulan
Tampilan ini digunakan untuk melihat laporan transaksi penjualan
perbulan.
Gambar III.30 User Interface Laporan Transaksi PerBulan
62
13. User Interface Laporan Pelunasan
Tampilan ini digunakan untuk melihat laporan pelunasan.
Gambar III.31 User Interface Laporan Pelunasan
63
14. User Interface Ganti Password
Tampilan ini digunakan untuk user mengganti password yang lama
dengan yang baru.
Gambar III.32 User Interface Ganti Password
64
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. */ package aplikasi_furniture; import java.sql.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.text.SimpleDateFormat; import java.util.Date; import java.awt.event.KeyEvent; import java.util.HashMap; //paket JasperReoports import javax.swing.JOptionPane; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.view.JasperViewer; /** * * @author duolestari */ public class Aplikasi_Transaksi extends javax.swing.JFrame { koneksi kon = new koneksi(); private Object [][] datasementara=null; private String[] labelsementara={"Kode Barang","Nama Barang","Harga","Jumlah Beli","Subtotal"}; /** * Creates new form Aplikasi_Transaksi */ public Aplikasi_Transaksi() { initComponents(); kon.setKoneksi(); setTanggal(); awal(); } public Date date = new Date(); public SimpleDateFormat noformat=new SimpleDateFormat("yyMM"); public String KodeBarang; public String NamaBarang; public String HargaBarang; public String KodeUser; public String getKodeBarang(){ return KodeBarang; } public String getNamaBarang(){ return NamaBarang; } public String getHargaBarang(){ return HargaBarang; } public String getKodeUser(){ return KodeUser; } private void bersih() { tnotrans.setText(""); tkodebarang.setText(""); tnamabarang.setText(""); tharga.setText("");
65
tjumbel.setText(""); tsubtotal.setText(""); tbayar.setText(""); tkembali.setText(""); ltotal.setText("0"); } private void nonaktif() { tnotrans.setEditable(false); ttanggal.setEditable(false); tkodebarang.setEditable(false); tnamabarang.setEditable(false); tharga.setEditable(false); tjumbel.setEditable(false); tsubtotal.setEditable(false); tbayar.setEditable(false); tkembali.setEditable(false); } private void aktif() { tkodebarang.setEditable(true); tjumbel.setEditable(true); tbayar.setEditable(true); } private void awal() { nonaktif(); bersih(); } void setTanggal(){ java.util.Date skrg = new java.util.Date(); java.text.SimpleDateFormat kal=new java.text.SimpleDateFormat("yy-MM-dd"); ttanggal.setText(kal.format(skrg)); } public String nomor() { String urutan=null; try{ kon.rs=kon.st.executeQuery("select right(notransaksi,3)+1 " + " from transaksi as Nomor order by notransaksi desc"); if(kon.rs.next()) { urutan=kon.rs.getString(1); while(urutan.length()<3) urutan="0"+urutan; urutan="FK-"+noformat.format(date)+urutan; }else { urutan="FK-"+noformat.format(date)+"001"; } } catch(Exception e){ JOptionPane.showMessageDialog(null, e); } return urutan; } private void TampilTabelSementara() { try{ String sql="Select *From sementara order by kd_brg"; kon.rs=kon.st.executeQuery(sql); ResultSetMetaData m=kon.rs.getMetaData(); int kolom=m.getColumnCount(); int baris=0; while(kon.rs.next()){ baris=kon.rs.getRow(); }
66
datasementara=new Object[baris][kolom]; int x=0; kon.rs.beforeFirst(); while(kon.rs.next()){ datasementara[x][0]=kon.rs.getString("kd_brg"); datasementara[x][1]=kon.rs.getString("nm_brg"); datasementara[x][2]=kon.rs.getString("hrg_jual"); datasementara[x][3]=kon.rs.getString("jumlahbeli"); datasementara[x][4]=kon.rs.getString("subtotal"); x++; } tbtransaksi.setModel(new DefaultTableModel(datasementara, labelsementara)); } catch(SQLException e){ JOptionPane.showMessageDialog(null, e); } } private void tampildatabarang() { try{ String sql="select * from barang where kd_brg='" +tkodebarang.getText()+"'"; kon.rs=kon.st.executeQuery(sql); if(kon.rs.next()) { tnamabarang.setText(kon.rs.getString("nm_brg")); tharga.setText(kon.rs.getString("hrg_jual")); tjumbel.requestFocus(); } else { JOptionPane.showMessageDialog(null, "Kode Barang "+tkodebarang.getText()+" tidak ditemukan"); } } catch(SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void SimpanSementara() { try{ String sql="insert into sementara values('"+tkodebarang.getText()+"'," + "'"+tnamabarang.getText()+"','"+tharga.getText()+"'," + "'"+tjumbel.getText()+"','"+tsubtotal.getText()+"')"; kon.st.executeUpdate(sql); TampilTabelSementara(); } catch(SQLException e){ JOptionPane.showMessageDialog(null, e); } } private void HapusIsiSementara() { int row=tbtransaksi.getSelectedRow(); int x; int total=Integer.parseInt(ltotal.getText()); x=Integer.parseInt((String)tbtransaksi.getValueAt(row, 4)); total=total-x; ltotal.setText(Integer.toString(total)); try{ String sql="Delete from sementara where kd_brg='"+(String)tbtransaksi.getValueAt(row, 0)+"'"; kon.st.executeUpdate(sql); TampilTabelSementara(); }
67
catch(SQLException e){ JOptionPane.showMessageDialog(null, e); } } private void SimpanTransaksi() { try{ String sql="insert into transaksi values('"+tnotrans.getText()+"'," + "'"+ttanggal.getText()+"','"+ltotal.getText()+"'," + "'"+tkodeuser.getText()+"')"; kon.st.executeUpdate(sql); } catch(SQLException e){ System.out.println("Koneksi Gagal"+ e.toString()); } } private void simpanDetailTransaksi() { try{ String sql="insert detailtransaksi select '" +tnotrans.getText()+"'," +"jumlahbeli,subtotal,kd_brg from sementara"; kon.st.executeUpdate(sql); } catch(SQLException e){ System.out.println("Koneksi Gagal"+ e.toString()); } } private void HapusTabelSementara() { try{ String sql = "Delete from sementara"; kon.st.executeU pdate(sql); TampilTabelSementara(); } catch(SQLException e){ JOptionPane.showMessageDialog(null, e); } } private void cetakstruk() { try { String file = "src/aplikasi_furniture/struk1.jasper"; HashMap param = new HashMap(); param.put("notrans", tnotrans.getText()); JasperPrint print = JasperFillManager.fillReport(file, param, kon.setKoneksi()); JasperViewer.viewReport(print, false); } catch (Exception e){ JOptionPane.showMessageDialog(null, e.getMessage()); } } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") private void bttambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: aktif();
68
tnotrans.setText(nomor()); tkodeuser.setText(KodeUser); } private void tkodeuserActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void tkodebarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: tampildatabarang(); } private void btbowseActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: boolean closable =true; Aplikasi_Data_Barang dataBarang=new Aplikasi_Data_Barang(null, closable); dataBarang.transaksi = this; dataBarang.setVisible(true); dataBarang.setResizable(true); tkodebarang.setText(KodeBarang); tnamabarang.setText(NamaBarang); tharga.setText(HargaBarang); } private void tkodebarangComponentAdded(java.awt.event.ContainerEvent evt) { // TODO add your handling code here: tjumbel.requestFocus(); } private void btbatalActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: awal(); HapusTabelSementara(); tnotrans.setText(""); } private void btkeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: HapusTabelSementara(); dispose(); } private void formWindowActivated(java.awt.event.WindowEvent evt) { // TODO add your handling code here: tkodeuser.setText(KodeUser); TampilTabelSementara(); } private void tbtransaksiKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==KeyEvent.VK_BACK_SPACE) { HapusIsiSementara(); } } private void tjumbelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int harga,jumbel,total; harga=Integer.parseInt(tharga.getText()); jumbel=Integer.parseInt(tjumbel.getText()); total=harga*jumbel; tsubtotal.setText(Integer.toString(total)); SimpanSementara(); TampilTabelSementara(); int ttl=0; for(int a=0;a<tbtransaksi.getRowCount();a++)
69
{ int sub=Integer.parseInt((String)tbtransaksi.getValueAt(a, 4)); ttl+=sub; } ltotal.setText(Integer.toString(ttl)); if(JOptionPane.showConfirmDialog(this, "Mau Tambah Barang?", "Konfirmasi", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ aktif(); tkodebarang.requestFocus(); tkodebarang.setText(""); tnamabarang.setText(""); tharga.setText(""); tjumbel.setText(""); tsubtotal.setText(""); }else{ tbayar.requestFocus(); } } private void btsimpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: SimpanTransaksi(); simpanDetailTransaksi(); JOptionPane.showMessageDialog(this, "Berhasil Disimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE); if(JOptionPane.showConfirmDialog(this, "Mau Cetak struk?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { cetakstruk(); } TampilTabelSementara(); HapusTabelSementara(); awal(); bersih(); tnotrans.setText(""); TampilTabelSementara(); } private void tbayarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int kembali,total,bayar; total=Integer.parseInt(ltotal.getText()); bayar=Integer.parseInt(tbayar.getText()); kembali=bayar-total; tkembali.setText(Integer.toString(kembali)); } private void tsubtotalActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; }
70
} } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Aplikasi_Transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Aplikasi_Transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Aplikasi_Transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Aplikasi_Transaksi.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Aplikasi_Transaksi().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btbatal; private javax.swing.JButton btbowse; private javax.swing.JButton btkeluar; private javax.swing.JButton btsimpan; private javax.swing.JButton bttambah; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JLabel ltotal; private javax.swing.JTextField tbayar; private javax.swing.JTable tbtransaksi; private javax.swing.JTextField tharga; private javax.swing.JTextField tjumbel; private javax.swing.JTextField tkembali; private javax.swing.JTextField tkodebarang; private javax.swing.JTextField tkodeuser; private javax.swing.JTextField tnamabarang; private javax.swing.JTextField tnotrans; private javax.swing.JTextField tsubtotal; private javax.swing.JTextField ttanggal; // End of variables declaration }
71
3.5.2. Black Box Testing
Untuk tahap pengujian penulis menggunakan metode Black Box Testing,
Metode Black Box Testing merupakan pengujian program yang mengutamakan
pengujian terhadap kebutuhan fungsi dari suatu program.Tujuan dari metode
Black Box Testing untuk menemukan kesalahan fungsi pada program. Pengujian
dengan menggunakan metode Black Box Testing dilakukan hanya mengamati
hasil eksekusi melalui data uji dan memeriksa fungsional dari software dan
fungsionalitasnya tanpa mengetahui yang terjadi dalam proses detail, melainkan
hanya mengetahui input dan output.
Tabel III.5 Black Box Testing
No Skenario
Pengujian Test Case
Hasil yang
diharapkan
Hasil
Pengujian Kesimpulan
1
Kode User,
Nama User,
Password,
level, Tidak
diisi
kemudian
klik tombol
“SIMPAN”
Kode User:
Sistem akan
menolak akses dan
akan menampilkan
pesan “"Data Yang
Anda Masukkan
Salah"
Sesuai
Harapan Valid
(kosong)
Nama User:
(kosong)
Password :
(kosong)
Level :
(kosong)
2
Input Kode
User, Nama
User,
Password,
level,
kemudian
klik tombol
“SIMPAN”
Kode User: 01
Sistem akan
menerima akses
dan akan
menampilkan
pesan “ Data
BerhasilDisimpan”.
Sesuai
Harapan Valid
(benar)
Nama User:
Moo
(benar)
Password : 1234
(benar)
Level : 1
(benar)
3 Sistem dapat
melakukan
proses ubah
Melakukan ubah
data
Sistem akan
menampilkan
proses ubah dan
Sesuai
Harapan Valid
72
data user
pada program
dengan
memilih data
yang akan di
ubah.
menampilkan data
user
yangdiinginkan.
4 Sistem dapat
melakukan
proses hapus
data user
pada program
dengan
memilih data
yang akan di
hapus.
Memilih data
yang akan di
hapus dan
menekan tombol
backspace pada
keyboard
Sistem akan
menghapus data
user yang dipilih
Sesuai
Harapan Valid
3.5.3. SpesifikasiHardware dan Software
1. Perangkat Keras (Hardware)
Perangkat keras (hardware) adalah seluruh komponen yang membentuk
suatu sistem komputer dan peralatan lainnya yang memungkinkan
komputer dapat melaksanakan tugasnya. Dalam hal ini perangkat karas
yang dibutuhkan diantaranya :
a. Processor : AMD A4-5000 APU with Radeon™ HD Graphics
1.50GHz
b. Sistem Operasi : Microsoft windows7
c. RAM : 2 GB
d. Hard disk : 368 GB
e. Keyboard : 108 keys
f. Monitor : 14.0 HD LED LCD
g. Printer : Ink Jet
h. Mouse : Standard Mouse
73
2. Perangkat Lunak (Software)
Dalam suatu perancangan program tidak terlepas dari perangkat lunak
(software) yang akan digunakan dalam menyusun program aplikasi serta
sistem operasi yang akan digunakan untuk menjalankan program aplikasi
tersebut. Pemakian komputer tidak terlepas dari penggunaan software
untuk mengolah data dan sebagai sarana pendukung sarana program yang
akan dibuat. Dalam hal ini perangkat karas yang dibutuhkan diantaranya :
a. Program Design : Java and Netbeans
b. Bahasa Script : PHP
c. Web Browser : Mozilla Firefox
d. Database :MySQL