bab iii pembahasan · 22 mekanik melakukan seluruh perintah yang diperintahkan oleh chief mekanik....
TRANSCRIPT
-
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