-
19
BAB III
PEMBAHASAN
3.1. Tinjauan Perusahaan
Tinjauan perusahaan dilakukan untuk mendapatkan gambaran
terhadap PT.Subur
Plus Motor Yamaha meliputi sejarah perusahaan, struktur
organisasi dan masing-masing
fungsi organisasi.
3.1.1. Sejarah Perusahaan
Sejak didirikan pada bulan September 2006 di Jl.Pangkal
perjuangan No.8
Bypass Karawang oleh Bapak William Wijaya atau yang lebih
dikenal dengan nama ko
oten. PT.Subur Plus Motor adalah dealer sepeda motor Yamaha.
Perusahaan yang
bergerak dibidang penjualan, service dan sparepart sepeda motor
Yamaha ini semakin
berkembang seiring dengan tumbuhnya pasar sepeda motor di
Indonesia khususnya
Jawa Barat. Pada tahun 2008 perusahaan ini mulai membuka cabang
dibeberapa tempat
didaerah karawang dan sekitarnya. Saat ini PT.Subur Plus Motor
memiliki 3 jaringan 3S
dan 2 jaringan 2S yang tepatnya berada di By Pass, Teluk Jambe,
Rengasdengklok,
Cikampek dan Indramayu.
Gambar III.1. Logo Perusahaan
-
20
3.1.2. Struktur Organisasi dan Fungsi
Sumber : Bagian ADH PT.Subur Plus Motor Yamaha Karawang
Gambar III.2. Struktur Organisasi
Struktur organisasi merupakan suatu hubungan dan sususanantara
tiap
bagian dan serta posisi yang ada pada suatu organisasi atau
perusahaan dalam
menjalankan kegiatan operasional untuk mencapai tujuan tertentu.
Struktur
organisasi menggambarkan dengan yang lainnya. Bagan organisasi
hanya dapat
menunjukkan hubungan wewenang yang formal, dan tidak dapat
menggambarkan seberapa besar wewenang,tanggung jawab dan
deskripsi
pekerjaan yang terperinci.
Struktur organisasi pada perusahaan ini masih terbilang
sederhana, tidak
serumit perusahaan-perusahaan besar pada umumnya. Perusahaan ini
memiliki
-
21
tujuh belas total pegawai. Adapun rincian fungsi dari struktur
organisasinya yaitu
sebagai berikut:
1. Owner
Owner perusahaan berfungsi sebagai penanggug jawab penuh
dilingkungan
perusahaan serta pengawas bagi kegiatan yang berjalan
diperusahaan dan
menerima semua laporan keuangan bengkel setiap bulannya.
2. PIC Area
PIC Area atau kepala area bertanggung jawab sepenuhnya atas
semua cabang
PT.Subur Plus Yamaha tentang Target Bengkel maupun tentang
Penjualan
Unit Serta mengoptimalkan sumber daya yang ada dalam usaha
pencapaian
target.
3. Admin Head & Accounting
Admin Head & Accounting bertanggung jawab atas semua
kegiatan admin,
Bengkel dan mengatur semua keuangan yang ada di PT.Subur Plus
Yamaha.
4. PIC Cabang
PIC Cabang bertanggung jawab setiap target penjualan dan
aktivitas di
cabannya masing – masing.
5. Chief Mekanik
Chief Mekanik Berfungsi menerima kendaraan yang akan di
service,
memberikan bimbingan teknis kepada para mekanik yang
dibawahinnya
dalam melakukan perbaikan kendaraan, memberikan petunjuk
penggunaan
atau perawatan perlengkapan bengkel.
6. Mekanik
-
22
Mekanik melakukan seluruh perintah yang diperintahkan oleh Chief
mekanik.
Dimana ia hanya mengerjakan job description dan tidak boleh
melakukan
pekerjaan lain mesti komponen system yang lain ada yang rusak.
Tetapi jika
ada yang lain menyangkut dengan kualitas yang nantinya akan
diperoleh
terhadap hasil suatu servisan maka mekanik perlu
mengkonsultasikan dengan
Chief Mekanik.
7. Counter Service & Kasir
Counter Service bertugas melayani kebutuhan pelanggan,
Mendengarkan
setiap keluhan pelanggan dan mendiagnosa kerusakan kendaraan
berdasarkan
pengamatan dikendaraan. Menerima complain dari pelanggan yang
kurang
puas atau kecewa. Sebagai penerjemah bahasa teknis dari chief
Mekanik ke
bahasa awam. Memberikan keterangan teknis mengenai perbaikan
yang
diperlukan kepada pelanggan atau memberikan alasan terhadap
complain yang
ada dan memberitahu informasi jika sparepart sedang kosong.
8. Admin PO (Purchase Order)
Admin PO bertugas membuat order pembelian barang berdasarkan
permintaan
pembelian barang dari Yamaha.
9. Admin Faktur dan OJ
Admin Faktur bertanggung jawab mengenai stock Barang yang ada di
Dealer.
10. Admin STNK & BPKB
Seseorang yang bertanggung jawab mengenai pelayanan surat-surat
kendaraan
sepeda motor yang dijual.
11. Sales Counter
-
23
Bertugas melayani customer yang datang ke dealer untuk
menanyakan
informasi seputar tentang Unit yang di pasarkan oleh PT.Subur
Plus Yamaha.
3.2. Tinjauan Kasus
Untuk merancang sebuah sistem yang baik dan sesuai dengan hasil
yang
diharapkan, maka terlebih dahulu harus diperoleh data atau
informasi tentang sistem
yang sedang berjalan pada perusahaan. Analisa sistem merupakan
tahap penting sebelum
memasuki tahap selanjutnya, apabila pada tahap ini terjadi
kesalahan maka tahap
selanjutnya sudah dipastikan akan terjadi kesalahan. Tujuan dari
sistem rancang bangun
ini secara garis besar adalah untuk menghasilkan bentuk rancang
bangun yang dapat
memenuhi kebutuhan akan penyelesaian masalah secara tepat dan
benar.
Perusahaan adalah suatu organisasi yang didirikan oleh seseorang
atau
sekelompok orang atau badan lain yang kegiatannya adalah
melakukan produksi dan
distribusi untuk memenuhi kebutuhan ekonomis manusia. Dalam
perusahaan tidak
hanya memiliki satu prosedur saja, melainkan memiliki beberapa
prosedur yang berbeda
disetiap bagiannya. Seperti halnya pada PT.Subur Plus Yamaha
karawang yang bergerak
dibidang penjualan dan jasa pelayanan pemeliharaan (service)
kendaraan sepeda motor
roda dua. Pada perusahaan tersebut memiliki beberapa prosedur
diantaranya adalah
kegiatan penerimaan jasa service serta penjualan spare part.
Proses penjualan dan pendapatan jasa service dimulai dari
pelanggan melakukan
service kendaraan sepeda motor dan dilanjutkan ke bagian chief
mekanik untuk
dilakukan pengecekkan kendaraan. Namun terdapat permasalahan
pada bagian
administrasi dimana kurang diperhatikannya dalam pengolahan
data-data transaksi yang
membuat proses pembuatan laporan harus memakan waktu yang cukup
lama karena
-
24
harus merekap kembali data-data transaksi tersebut menjadi
sebuah laporan setiap
harinya.
3.2.1 Proses Sistem Berjalan
1. Prosedur pemesanan barang
Customer datang langsung ke dealer PT. Subur Plus Yamaha dengan
membawa
kartu keluarga, kemudian customer memesan barang ke bagian
penjualan.
Bagian penjualan mengecek barang ke buku stok, jika barang yang
dipesan ada,
maka bagian penjualan membuatkan surat pesanan tiga rangkap,
warna putih
untuk bagian gudang, kuning untuk customer, merah untuk
diarsipkan.
2. Prosedur pengajuan perjanjian kredit
Bagian penjualan mengisi formulir permohonan pembiayaan individu
dari data
Kartu keluarga, KTP dan SP merah customer, lalu mengajukan
proses kredit ke
subur plus . kemudian subur plus memberikan kabar approve
dengan
mengeluarkan Purchase Order (PO) di berikan ke bagian
penjualan.
3. Prosedur pembayaran uang muka
Setelah PO di keluarkan, customer bias langsung membayar uang
muka ke
bagian penjualan dan PO di arsip. Bagian penjualan membuatkan
kwitansi
rangkap dua, kwitansi putih di berikan ke bagian customer dan
kwitansi merah
untuk di arsipkan.
4. Prosedur pengiriman barang
Berdasarkan SP (Surat Pesanan) yang di terima oleh bagian
gudang, maka bagian
gudang membuatkan surat jalan dan menyiapkan barang pesanan.
Lalu surat
jalan dan barang pesanan di cek berdasarkan data kwitansi merah
oleh bagian
-
25
penjualan, setelah sesuai maka barang pesanan dan surat jalan di
berikan ke
customer, setelah di tandatangani oleh customer, surat jalan
warna merah untuk
costumer dan surat jalan warna putih untuk di arsipkan.
5. Proses pembuatan laporan
Bagian penjualan membuat laporan penjualan berdasarkan data
surat jalan putih
dan data kwitansi merah, setelah data lengkap maka bagian
penjualan membuat
laporan penjualan bulanan untuk di serahkan kepada manager.
-
26
3.2.2 Activity diagram
Activity Sistem Berjalan
Customer Bagian Penjualan Subur Plus Manager
Phas
e
memesan danmenyerahkan ktpdan krtu keluarga
Menerima KartuKeluarga
Mengecek BarangDibuku Stok
Membuat danMenyerahkan Surat
Pesanan
MengisiPermohonanPembiayaan
Individu
MenyerahkanPermohonanPembiayaan
Individu
MenerimaPermohonanPembiayaan
Individu
Purchase OrderMenerima Purchase
OrderMembayar Uang
Muka
Membuat Kwotasi
Membuat Laporan
MenyerahkanLaporan
Menerima Laporan
END
Tidak
approve
Tidak
START
Gambar III.3 Activity Diagram
-
27
3.2.3 Dokumen Masukan
1 Nama arus data : KTP
Alias : Kartu Tanda Penduduk
Fungsi : syarat pemesanan barang
Tujuan : bagian penjualan
Media : keretas
Jumlah : satu lembar
Frekuensi : setiap terjadi pemesanan barang
Bentuk : lampiran A.1
2. Nama arus data : Kartu Keluarga
Alias : Kartu Keluarga
Fungsi : syarat pemesanan barang
Tujuan : bagian penjualan
Media : keretas
Jumlah : satu lembar
Frekuensi : setiap tejadi pemesanan barang
Bentuk : lampiran A.2
3. Nama arus data : PO
Alias : Purchase Order
Fungsi : tanda approve data customer
Tujuan : bagian penjualan
Media : keretas
Jumlah :satu lembar
-
28
Frekuensi : setiap terjadi pemesanan barang
Bentuk : lampiran A.3.
4. Nama arus data : Data Stok
Alias : data stok
Fungsi : untuk mengetahui stok barang
Tujuan : bagian penjualan
Media : keretas
Jumlah : satu buku
Frekuensi : setiap terjadi pemesanan
Bentuk : lampiran A.4
3.2.4 Dokumen Keluaran
Dokumen keluaran adalah segala bentuk dokumen perusahaan
berupa
dokumen-dokumen yang akan mendukung kegiatan manajemen serta
merupakan
dokumen hasil pencatatan atau laporan. Adapun dokumen-dokumen
keluaran
tersebut adalah sebagai berikut :
1. Nama arus data : Kwitansi Pembayaran
Alias : Kwitansi Pembayaran
Fungsi : sebagai bukti pembayaran motor
Tujuan : customer
Media : keretas
Jumlah : dua lembar
Frekuensi : setiap ada transaksi penjualan
Bentuk : lampiran B.1
-
29
2. Nama arus data : Laporan Penjualan
Alias : Laporan Penjualan
Fungsi : untuk mengetahui penjualan motor di customer
Tujuan : manager
Media : keretas
Jumlah : dua lembar
Frekuensi : setiap terjadi closing counter perbulan
Bentuk : lampiran B.2.
3. Nama arus data : Surat Jalan
Alias : Surat Jalan
Fungsi : untuk pengiriman motor
Tujuan : customer
Media : keretas
Jumlah : dua lembar
Frekuensi : setiap terjadi permintaan barang
Bentuk : lampiran B.3
4. Nama arus data : Surat Pesanan
Alias : Surat Pesanan
Fungsi : untuk bukti pemesanan
Tujuan : customer
Media : keretas
Jumlah : dua lembar
Frekuensi : setiap terjadi pemesanan barang
-
30
Bentuk : lampiran B.4
3.2.5. Permasalahan Pokok
1. Memungkinkan adanya kesalahan dalam pemesanan barang yang
sedang dipesan
pelanggan.
2. Tidak adanya pencarian data barang sehingga setiap ada
pemesanan, harus dicek
terlebih dahulu kepastian barangnya
3. Dokumen dari transaksi penjualan yang diarsip secara manual
rawan hilang
ataupun rusak menyebabkan ketidak sesuaian dalam penyususnan
laporan
penjualan.
3.2.6. Pemecahan Masalah
1. Dengan menggunakan program yang dibuat khusus untuk transaksi
penjualan
perusahaan diharapkan dapat mempermudah pencatatan serta dapat
megurangi
kesalahan saat pemesanan barang.
2. Dengan mengggunakan program, barang yang akan dipesan dapat
dengan
mudah dicek terlebih dahulu ketersediaannya.
3. Dengaan menggunakan program, transaksi yang berhasil dapat
disimpan
kedalam basisdata sehingga terhindar dari resiko dokumen hilang
ataupun rusak
sehingga memudahkan dalam penyusunan laporan.
3.3. Analisa Kebutuhan Software
3.3.1. Analisa Kebutuhan
Berikut ini adalah analisa kebutuhan pengguna terhadap sistem
penjualan.
1. Analisa Kebutuhan Admin
A. Admin Melakukan Login
-
31
B. Admin Mengakses Menu Utama
C. Admin Mengakses Menu Master
1. Admin Mengelola Menu Pengguna
2. Admin Mengelola Menu Pelanggan
3. Admin Mengelola Menu Barang
4. Admin Mengelola Menu Akun
D. Admin Mengakses Menu Transaksi
1. Admin Mengelola Menu Sales Order
2. Admin Mengelola Menu Surat Jalan
3. Admin Mengelola Menu Tagihan
4. Admin Mengelola Menu Jurnal
E. Admin Mengakses Menu Laporan
1. Admin Mengelola Menu Laporan Penjualan
F. Admin Melakukan Logout
2. Analisa Kebutuhan Pemilik
A. Pemilik Melakukan Login
B. Pemilik Mengakses Menu Utama
C. Pemilik Mengakses Menu Laporan
1. Pemilik Membuka Menu Laporan Penjualan
E. Pemilik Melakukan Logout
-
32
3.3.2. Usecase Diagram
1. Analisa Kebutuhan Admin
A. Admin Melakukan Login
Gambar III.4.Use Case Menu Login
Tabel III.1.Deskripsi Use Case Menu Login
Use Case Narative Menu Login
Tujuan Melakukan login dan masuk kedalam sistem penjualan
DeskripsiSistem ini memungkinkan aktor untuk mengakses
sistempenjualan
Skenario Utama
Aktor Admin
Kondisi awal Aktor membuka aplikasi penjualan
Aksi Aktor Reaksi Sistem1. Aktor memilih
tombol login2. Aktor memilih
tombol batal
Sistem akan menampilkan texbox untuk mengisi kodeuser dan
passwordSistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi AkhirJika perintah sesuai maka sistem akan masuk
kedalamaplikasi penjualan
-
33
B. Admin Mengakses Menu Utama
Gambar III.5.Use Case Menu Utama
Tabel III.2.Deskripsi Use Case Menu Utama
Use Case Narative Menu Utama
TujuanMelakukan pengolahan data yang ada di submenumaster,
submenu transaksi, dan submenu laporan
DeskripsiSistem ini memungkinkan aktor untuk mengelolasistem
penjualan mulai dari input data sampai denganpembuatan laporan
Skenario UtamaAktor Admin
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
utama
Aksi Aktor Reaksi Sistem1. Aktor memilih tombol
menu masterSistem ini menampilkan submenu master seperti
datapengguna, data barang, data pelanggan dan data akun
-
34
2. Aktor memilih tombolmenu transaksi
3. Aktor memilih tombolmenu laporan
4. Aktor memilih tombolLogout
Sistem ini menampilkan submenu transaksi sepertisubmenu
transaksi sales order, surat jalan, tagihan,dan jurnal
Sistem akan menampilkan submenu laporanpenjualan
Sistem akan menampilkan pesan untuk keluar darisystem
Kondisi AkhirJika perintah sesuai maka sistem akan
menampilkanseperti yang diinginkan oleh actor
C. Admin Mengakses Menu Master
Gambar III.6.Use Case Menu Master
-
35
Tabel III.3.Deskripsi Use Case Menu Master
Use Case Narative Menu Master
TujuanMelakukan pengolahan data yang ada di menumaster
DeskripsiSistem ini memungkinkan aktor untuk mengelolasistem
penjualan mulai dari input data pengguna,data barang, data
pelanggan dan data akun
Skenario Utama
Aktor Admin
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
master
Aksi Aktor Reaksi Sistem
1. Aktor memilihsubmenu pengguna
2. Aktor memilihsubmenu barang
3. Aktor memilihsubmenu pelanggan
4. Aktor memilihsubmenu akun
Sistem ini menampilkan submenu pengguna
Sistem ini menampilkan submenu barang
Sistem ini menampilkan submenu pelanggan
Sistem ini menampilkan submenu akun
Kondisi AkhirJika perintah sesuai maka sistem akan
menampilkanseperti yang diinginkan oleh aktor
-
36
D. Admin Mengakses Menu Transaksi
Gambar III.7.Use Case Menu Transaksi
Tabel III.4.Deskripsi Use Case Menu Transaksi
Use Case Narative Menu Transaksi
TujuanMelakukan pengolahan data yang ada di menutransaksi
DeskripsiSistem ini memungkinkan aktor untuk mengelolasistem
penjualan mulai dari transaksi sales order,surat jalan, tagihan dan
jurnal
Skenario Utama
Aktor Admin
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
transaksi
-
37
Aksi Aktor Reaksi Sistem
1. Aktor memilihsubmenu sales order
2. Aktor memilihsubmenu surat jalan
3. Aktor memilihsubmenu tagihan
4. Aktor memilihsubmenu jurnal
Sistem ini menampilkan submenu sales order
Sistem ini menampilkan submenu surat jalan
Sistem ini menampilkan submenu tagihan
Sistem ini menampilkan submenu jurnal
Kondisi AkhirJika perintah sesuai maka sistem akan
menampilkanseperti yang diinginkan oleh aktor
E. Admin Mengakses Menu Laporan
Gambar III.8.Use Case Menu Laporan
-
38
Tabel III.5.Deskripsi Use Case Menu Laporan
Use Case Narative Menu Laporan
TujuanMelakukan pengolahan data yang ada di menulaporan
DeskripsiSistem ini memungkinkan aktor untuk mengaksslaporan
penjualan
Skenario Utama
Aktor Admin
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
laporan
Aksi Aktor Reaksi Sistem
1. Aktor memilihsubmenu laporanpenjualan
Sistem ini menampilkan submenu laporan penjualan
Kondisi AkhirJika perintah sesuai maka sistem akan
menampilkanseperti yang diinginkan oleh actor
F. Admin Melakukan Logout
Gambar III.9.Use Case Menu Logout
-
39
Tabel III.6.Deskripsi Use Case Menu Logout
Use Case Narative Menu Logout
Tujuan Melakukan Logout dan keluar dari sistem penjualan
DeskripsiSistem ini memungkinkan aktor untuk menutup
sistempenjualan
Skenario Utama
Aktor Admin
Kondisi awal Aktor belum melakukan logout
Aksi Aktor Reaksi Sistem
1. Aktor memilihtombol Logout
2. Aktor memilihtombol batal
Sistem akan menampilkan messagebox untuk mengkonfirmasiapakah
akan keluar dan tekan yes
Sistem akan membatalkan proses logout dengan menekan nodan tetap
didalam aplikasi
Kondisi AkhirJika perintah sesuai maka sistem akan smenutup
aplikasipenjualan dan kembali ke menu login
2. Analisa Kebutuhan Pemilik
A. Pemilik Melakukan Login
Gambar III.10.Use Case Menu Login
-
40
Tabel III.7.Deskripsi Use Case Menu Login
Use Case Narative Menu Login
Tujuan Melakukan login dan masuk kedalam sistem penjualan
DeskripsiSistem ini memungkinkan aktor untuk mengakses
sistempenjualan
Skenario Utama
Aktor Pemilik
Kondisi awal Aktor membuka aplikasi penjualan
Aksi Aktor Reaksi Sistem3. Aktor memilih
tombol login4. Aktor memilih
tombol batal
Sistem akan menampilkan texbox untuk mengisi namapengguna dan
passwordSistem akan membatalkan proses dan keluar dari
aktivitas
Kondisi AkhirJika perintah sesuai maka sistem akan masuk
kedalamaplikasi penjualan
B. Pemilik Mengakses Menu Utama
Gambar III.11.Use Case Menu Utama
-
41
Tabel III.8.Deskripsi Use Case Menu Utama
Use Case Narative Menu Utama
Tujuan Mengakses menu yang ada di menu utama pemilik
DeskripsiSistem ini memungkinkan aktor untuk mengaksessistem
penjualan tertama menu laporan
Skenario Utama
Aktor Pemilik
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
utama
Aksi Aktor Reaksi Sistem
C. Pemilik Mengakses Menu Laporan
Gambar III.12.Use Case Menu Laporan
-
42
Tabel III.9.Deskripsi Use Case Menu Laporan
Use Case Narative Menu Laporan
TujuanMelakukan pengolahan data yang ada di menulaporan
DeskripsiSistem ini memungkinkan aktor untuk mengaksslaporan
penjualan
Skenario Utama
Aktor Pemilik
Kondisi AwalAktor membuka aplikasi penjualan dan masuk kemenu
laporan
Aksi Aktor Reaksi Sistem
1. Aktor memilihsubmenu laporanpenjualan
Sistem ini menampilkan submenu laporan penjualan
Kondisi AkhirJika perintah sesuai maka sistem akan
menampilkanseperti yang diinginkan oleh actor
E. Pemilik Melakukan Logout
Gambar III.13.Use Case Menu Logout
-
43
Tabel III.10.Deskripsi Use Case Menu Logout
Use Case Narative Menu Logout
Tujuan Melakukan Logout dan keluar dari sistem penjualan
DeskripsiSistem ini memungkinkan aktor untuk menutup
sistempenjualan
Skenario UtamaAktor Pemilik
Kondisi awal Aktor belum melakukan logout
Aksi Aktor Reaksi Sistem1. Aktor memilihtombol Logout
2. Aktor memilihtombol batal
Sistem akan menampilkan messagebox untuk mengkonfirmasiapakah
akan keluar dan tekan yes
Sistem akan membatalkan proses logout dengan menekan nodan tetap
didalam aplikasi
Kondisi AkhirJika perintah sesuai maka sistem akan smenutup
aplikasipenjualan dan kembali ke menu login
3.3.3. Activity Diagram
1. Activity Diagram Kebutuhan Admin
A. Admin Melakukan Login
Gambar III.14.Activity Diagram Login
-
44
B. Admin Mengakses Menu Utama
Gambar III.15.Activity Diagram Menu Utama
-
45
C. Admin Mengakses Menu Master
Gambar III.16.Activity Diagram Menu Master
-
46
D. Admin Mengakses Menu Transaksi
Gambar III.17.Activity Diagram Menu Transaksi
-
47
E. Admin Mengakses Menu Laporan
Gambar III.18.Activity Diagram Menu Laporan
-
48
F. Admin Melakukan Logout
Gambar III.19.Activity Diagram Menu Logout
2. Activity Diagram Kebutuhan Pemilik
A. Pemilik Melakukan Login
Gambar III.20.
Activity Diagram Menu Login
-
49
B. Pemilik Mengakses Menu Utama
Gambar III.21.Activity Diagram Menu Utama
-
50
C. Pemilik Mengakses Menu Laporan
Gambar III.22.Activity Diagram Menu Laporan
-
51
E. Pemilik Melakukan Logout
Gambar III.23.Activity Diagram Menu Logout
-
52
3.4. Desain
3.4.1. Entty Relationship Diagram (ERD)
Gambar III.24.Entity Relationship Diagram (ERD)
-
53
3.4.2. Logical Record Structure (LRS)
Gambar III.25.Logical Record Structure (LRS)
-
54
3.4.3. Spesifikasi File
1. Spesifikasi File Tabel Pengguna
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola data pengguna
Nama File : pengguna
Akronim : pengguna.myd
Tipe File : File Master
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 38 Byte
Field Key : id_pengguna
Software : MySQL
Tabel III..11Spesifikasi File Pengguna
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. Id Pengguna id_pengguna Varchar 3 Primary Key2. Nama Pengguna
nm_pengguna Varchar 203. Kata Sandi kt_sandi Varchar 84. Akses
Akses Varchar 7
-
55
2. Spesifikasi File Tabel Pelanggan
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola data pelanggan
Nama File : pelanggan
Akronim : pelanggan.myd
Tipe File : File Master
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 55 Byte
Field Key : id_pelanggan
Software : MySQL
Tabel III..12Spesifikasi File Pelanggan
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. Id Pelanggan id_pelanggan Varchar 5 Primary Key
2. Nama Pelanggannm_pelanggan
Varchar 20
3. No Telepon no_telp Varchar 154. Email Email Varchar 155
Alamat Alamat Text
3. Spesifikasi File Tabel Barang
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola data barang
-
56
Nama File : barang
Akronim : barang.myd
Tipe File : File Master
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 39 Byte
Field Key : id_barang
Software : MySQL
Tabel III..13Spesifikasi File Barang
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. Id Barang id_barang Varchar 5 Primary Key2. Nama Barang
nm_barang Varchar 203. Harga Harga Int 114. Jumlah Jumlah smallint
3
4. Spesifikasi File Tabel Akun
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola data akun
Nama File : akun
Akronim : akun.myd
Tipe File : File Master
Media File : Harddisk
Organisasi File : Index Sequental
-
57
Akses File : Random
Panjang Record : 35 Byte
Field Key : id_akun
Software : MySQL
Tabel III..14Spesifikasi File Pengguna
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. Id Akun id_akun Varchar 5 Primary Key2. Nama Akun nm_akun
Varchar 203. Jenis Akun jns_akun Varchar 10
5. Spesifikasi File Tabel Sales Order
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi sales order
Nama File : so
Akronim : so.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 37 Byte
Field Key : no_so
Software : MySQL
-
58
Tabel III..15Spesifikasi File So
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Sales Order no_so Varchar 9 Primary Key2. Tanggal Tgl
Date3. Id Pengguna id_pengguna Varchar 3 Foreign Key4. Id Pelanggan
id_pelanggan Varchar 5 Foreign Key5 No Purchase Order no_po Varchar
20
6. Spesifikasi File Tabel Detail Sales Order
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi detail So
Nama File : detail_so
Akronim : detail_so.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 17 Byte
Field Key : no_so
Software : MySQL
Tabel III..16Spesifikasi File So
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Sales Order no_so Varchar 9 Primary Key2. Id Barang
id_barang Varchar 5 Foreign Key
-
59
3. Jumlah Pesan jml_pesan Smallint 37. Spesifikasi File Tabel
Surat Jalan
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi surat jalan
Nama File : sj
Akronim : sj.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 21 Byte
Field Key : no_sj
Software : MySQL
Tabel III..17Spesifikasi File Sj
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Surat Jalan no_sj Varchar 9 Primary Key2. Tanggal Tgl
Date3. Id Pengguna id_pengguna Varchar 3 Foreign Key4. No Sales
Order no_so Varchar 9 Foreign Key
8. Spesifikasi File Tabel Tagihan
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi tagihan
Nama File : tagihan
-
60
Akronim : tagihan.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 21 Byte
Field Key : no_tag
Software : MySQL
Tabel III..18Spesifikasi File Tagihan
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Tagihan no_tag Varchar 9 Primary Key2. Tanggal Tgl Date3.
Id Pengguna id_pengguna Varchar 3 Foreign Key4. No Sales Order
no_so Varchar 9 Foreign Key
9. Spesifikasi File Tabel Jurnal
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi jurnal
Nama File : jurnal
Akronim : jurnal.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
-
61
Akses File : Random
Panjang Record : 21 Byte
Field Key : no_jurnal
Software : MySQL
Tabel III..19Spesifikasi File Jurnal
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Jurnal no_jurnal Varchar 9 Primary Key2. Tanggal Tgl
Date3. Id Pengguna id_pengguna Varchar 3 Foreign Key4. No Tagihan
no_tag Varchar 9 Foreign Key
10. Spesifikasi File Tabel Detail Jurnal
Nama Database : db_penjualan
Fungsi : Digunakan untuk mengelola transaksi detail jurnal
Nama File : detail_jurnsl
Akronim : detail_jurnsl.myd
Tipe File : File Transaksi
Media File : Harddisk
Organisasi File : Index Sequental
Akses File : Random
Panjang Record : 36 Byte
Field Key : no_jurnal
Software : MySQL
-
62
Tabel III..20Spesifikasi File So
No.
Elemen Data Nama Field Tipe Panjang Keterangan
1. No Jurnal no_jurnal Varchar 9 Primary Key2. Id Akun id_akun
Varchar 5 Foreign Key3. Debet Debet Int 114 Kredit Kredit Int
11
3.4.4. Sequnce Diagram
Gambar III.26.Sequence Diagram
-
63
3.4.5. Deployment Diagram
Gambar III.27.
Deployment Diagram
-
64
3.4.6. User Interface
1. Tampilan Halaman Login
Gambar III.28.
Halaman login
2. Tampilan Mennu utama
Gambar III.29.
Halaman menu utama
-
65
3. Tampilan Halaman transaksi sales order
Gambar III.30.
Halaman transaksi sales order
4. Tampilan Transaksi Surat Jalan
Gambar III.31.
Halaman transaksi surat jalan
-
66
5. Tampilan Transaksi Tagihan
Gambar III.32.
Halaman transaksi tagihan
6. Tampilan Halaman Jurnal
Gambar III.33.
Halaman Jurnal
-
67
3.5. Implementasi
3.5.1. Code Generation
1. Laporan Penjualan
-
68
tagihan.`no_tag` AS tagihan_no_tag,
tagihan.`tgl` AS tagihan_tgl,
tagihan.`id_pengguna` AS tagihan_id_pengguna,
detail_so.`no_so` AS detail_so_no_so,
detail_so.`id_barang` AS detail_so_id_barang,
detail_so.`jml_pesan` AS detail_so_jml_pesan,
detail_so.`subtotal` AS detail_so_subtotal,
so.`id_pelanggan` AS so_id_pelanggan,
so.`no_po` AS so_no_po,
barang.`nm_barang` AS barang_nm_barang,
barang.`harga` AS barang_harga,
pengguna.`nm_pengguna` AS pengguna_nm_pengguna,
pelanggan.`nm_pelanggan` AS pelanggan_nm_pelanggan
FROM
`detail_so` detail_so LEFT OUTER JOIN `tagihan` tagihan ON
detail_so.`no_so` = tagihan.`no_so`
RIGHT OUTER JOIN `so` so ON detail_so.`no_so` = so.`no_so`
RIGHT OUTER JOIN `barang` barang ON detail_so.`id_barang` =
barang.`id_barang`
RIGHT OUTER JOIN `pelanggan` pelanggan ON so.`id_pelanggan`
=
pelanggan.`id_pelanggan`
RIGHT OUTER JOIN `pengguna` pengguna ON tagihan.`id_pengguna`
=
pengguna.`id_pengguna`
-
69
WHERE
month(tagihan.`tgl`) = $P{bulan}
AND year(tagihan.`tgl`) = $P{tahun}]]>
-
70
-
71
-
72
java.util.Date()]]>
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
2. Penjualan
package penjualan;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author user
*/
public class jtbl_brg extends javax.swing.JDialog {
koneksi kon = new koneksi();
public home h = null;
private Object[][] datab = null;
private String[] labelb = {"ID BARANG", "NAMA", "HARGA",
"JUMLAH"};
public jtbl_brg(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
kon.setKoneksi();
-
87
Bacatbl_b();
}
private void Bacatbl_b() {
try {
String sql = "Select *From barang where jumlah != 0";
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();
}
datab = new Object[baris][kolom];
int x = 0;
kon.rs.beforeFirst();
while (kon.rs.next()) {
datab[x][0] = kon.rs.getString("id_barang");
datab[x][1] = kon.rs.getString("nm_barang");
datab[x][2] = kon.rs.getString("harga");
datab[x][3] = kon.rs.getString("jumlah");
x++;
}
tbl_b.setModel(new DefaultTableModel(datab, labelb));
-
88
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void Bacatbl_bCari() {
try {
String sql = "Select *From barang where id_barang like '%"
+cari_b.getText()+ "%' ||"
+ "nm_barang like '%" +cari_b.getText()+ "%' ";
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();
}
datab = new Object[baris][kolom];
int x = 0;
kon.rs.beforeFirst();
while (kon.rs.next()) {
datab[x][0] = kon.rs.getString("id_barang");
datab[x][1] = kon.rs.getString("nm_barang");
-
89
datab[x][2] = kon.rs.getString("harga");
datab[x][3] = kon.rs.getString("jumlah");
x++;
}
tbl_b.setModel(new DefaultTableModel(datab, labelb));
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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 initComponents() {
jPanel8 = new javax.swing.JPanel();
cari_b = new javax.swing.JTextField();
jLabel26 = new javax.swing.JLabel();
-
90
jScrollPane2 = new javax.swing.JScrollPane();
tbl_b = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLO
SE);
cari_b.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
cari_b.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
cari_bKeyTyped(evt);
}
});
jLabel26.setFont(new java.awt.Font("Tahoma", 0, 14)); //
NOI18N
jLabel26.setText("Pencarian");
tbl_b.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
-
91
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tbl_b.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
tbl_bMousePressed(evt);
}
});
jScrollPane2.setViewportView(tbl_b);
javax.swing.GroupLayout jPanel8Layout = new
javax.swing.GroupLayout(jPanel8);
jPanel8.setLayout(jPanel8Layout);
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(21, 21, 21)
-
92
.addComponent(jLabel26,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cari_b,
javax.swing.GroupLayout.PREFERRED_SIZE, 155,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(436, 436, 436))
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2)
.addContainerGap())
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alig
nment.BASELINE)
-
93
.addComponent(jLabel26)
.addComponent(cari_b,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 418,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(214, 214, 214))
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 695, Short.MAX_VALUE)
-
94
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap()))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 501, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 479,
javax.swing.GroupLayout.PREFERRED_SIZE)
-
95
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)))
);
pack();
setLocationRelativeTo(null);
}//
private void cari_bKeyTyped(java.awt.event.KeyEvent evt) {
Bacatbl_bCari();
}
private void tbl_bMousePressed(java.awt.event.MouseEvent evt)
{
int tabel = tbl_b.getSelectedRow();
h.id_brg_so.setText(tbl_b.getValueAt(tabel, 0).toString());
h.nm_brg_so.setText(tbl_b.getValueAt(tabel, 1).toString());
h.hrg_so.setText(tbl_b.getValueAt(tabel, 2).toString());
this.dispose();
}
/**
* @param args the command line arguments
*/
-
96
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay
with the
default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(jtbl_brg.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
-
97
java.util.logging.Logger.getLogger(jtbl_brg.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(jtbl_brg.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(jtbl_brg.class.getName()).log(java.util.loggi
ng.Level.SEVERE, null, ex);
}
//
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
jtbl_brg dialog = new jtbl_brg(new javax.swing.JFrame(),
true);
dialog.addWindowListener(new java.awt.event.WindowAdapter()
{
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
-
98
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField cari_b;
private javax.swing.JLabel jLabel26;
private javax.swing.JPanel jPanel8;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable tbl_b;
// End of variables declaration
}
-
99
3.5.2.Blackbox Testing
1. Pengujian login
Tabel III.21.Pengujian Menu Login
1.
NoSkenarioPengujian
Hasil YangDiharapkan
HasilPengujian Kesimpulan
1
Mengosongkansemua isian datalogin, kemudianlangsung kliktombol
‘Login’
Sistem akanmenolak akses logindan menampilkanpesan “Data
tidakditemukan !!”
SesuaiHarapan
Valid
2
Hanya mengisidata kode user,mengosongkandata
password,kemudianlangsung kliktombol ‘Login’
Sistem akanmenolak akses logindan menampilkanpesan “Data
tidakditemukan !!”
SesuaiHarapan
Valid
3
Hanya mengisidata passworddanmengosongkankode
user,kemudianlangsung kliktombol ‘Login’
Sistem akanmenolak akses logindan menampilkanpesan “Data
tidakditemukan !!”
SesuaiHarapan
Valid
4
Menginputkandengan kondisisalah satu databenar dan salahsatu
lagi salah,kemudian kliktombol ‘Login’
Sistem akanmenolak akses logindan menampilkanpesan “Data
tidakditemukan !!”
SesuaiHarapan
Valid
5
Mengisi kodeuser danpassword atausalah satunya,kemudian
kliktombol ‘Batal’
Menampilkaninputan data menjadikosong
SesuaiHarapan
Valid
-
100
6
Menginputkandata login yangbenar, kemudianklik tombol‘Login’
Sistem akanmenerima akseslogin dan munculpesan “SelamatDatang”,
lalu masukke menu utama
SesuaiHarapan
Valid
2. Pengujian Menu UtamaTabel III.22.
Pengujian Menu Utama
NoSkenario Pengujian
Hasil YangDiharapkan
HasilPengujian Kesimpulan
1Memilih MenuMaster
Menampilkan submenumaster
SesuaiHarapan
Valid
2Memilih MenuTransaksi
Menampilkan submenutransaksi
SesuaiHarapan
Valid
3Memilih MenuLaporan
Menampilkan submenulaporan
SesuaiHarapan
Valid
4Memilih MenuLogout
Keluar dari aplikasi sisfoSesuai
HarapanValid
3. Pengujian Submenu TagihanTabel III.23.
Pengujian Submenu Tagihan
No SkenarioPengujian
Hasil YangDiharapkan
HasilPengujian
Kesimpulan
1Memilihtombol Tambah
Menampilkan FormInput Data Tagihan
SesuaiHarapan Valid
-
101
2
Mengisi semuadata secaralengkap danbenarMemilihTombolSimpan
Menampilkan pesan“Data BrhasilDisimpan !”
SesuaiHarapan Valid
3
Mengisi datatidak lengkapMemilihTombolSimpan
Menampilkan pesan“Lengkapi Data !”
SesuaiHarapan
Valid
4
Mengisi datasalahMemilihTombolSimpan
Menampilkan pesan“Data Salah !”
SesuaiHarapan
Valid
5
Mengosongkansemua dataMemilih ombol‘Simpan’
Menampikan pesan“Data Tidak BolehKosong !”
SesuaiHarapan Valid
6
Memasukankode pencariandengan benarMemilihTombol Cari
Menampikan pesan“Data Ditemukan !”
SesuaiHarapan
Valid
-
102
7
Memasukankode pencarianyang salahMemilihTombol Cari
Menampikan pesan“Data TidakDitemukan !”
SesuaiHarapan
Valid
8
Memilih datayang akandiubahMemilihTombol Ubah
Menampilkan pesan“Data BerhasilDiubah!”
SesuaiHarapan
Valid
9
Memilih datayang akandihapusMemilihTombol Hapus
Menampilkan pesan“Data BerhasilDihapus!”
SesuaiHarapan
Valid
10
Keluar dariForm TagihanMemilihTombol Keluar
Keluar dari FormTagihan
SesuaiHarapan
Valid
-
103
3.5.3. Spesifikasi Hardware dan Software
Tabel III.24.Spesifikasi Hardware dan Software
Kebutuhan Keterangan
Sistem Operasi Windows 7 Profesional
Processor Intel (R) Pentium(R) Dual CPU E2160 1.80 Ghz
RAM 2.00 GB
Harddisk 232 GB
Monitor Generic PnP
Keyboard Standard PS/2
Mouse Microsoft PS/2
Printer HP Deskjet 2000 J210 Series
SoftwareBahasa Pemrograman : JavaAplikasi Pendukung : NetBeans
IDE 8.1DBMS : MySQL