Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
70 Universitas Kristen Petra
4. IMPLEMENTASI SISTEM
Pada bab 4 ini akan dibahas cara dan implementasi mulai dari pembuatan
database pada SQL Server, setting virtual private network pada mikrotik,
setting koneksi dari program Microsoft Visual Basic 2010 sampai ke
penjelasan segmen-segmen dari aplikasi yang telah dibuat.
4.1 Implementasi Database
Seperti yang sudah disebutkan diawal, penggunaan database untuk
aplikasi Sistem Informasi Inventori Toko Bangunan Santoso adalah
menggunakan Microsoft SQL Server 2008 R2. Pembuatan tabel dalam
database dapat dilihat pada gambar 4.1.
Gambar 4.1 Contoh Pembuatan Tabel Pembelian
Pembuatan tabel ini dilakukan sesuai dengan rancangan ERD yang
sudah dibuat dalam Bab 3 sebelumnya. Contoh dari database untuk
sistem informasi inventori pada toko bangunan Santoso adalah seperti
pada gambar 4.2.
71 Universitas Kristen Petra
Gambar 4.2 Database Sistem Informasi Inventori
4.2 Implementasi Virtual Private Network
Langkah awal untuk implementasi virtual private network adalah
dengan instalasi Mikrotik Pc Router dan menyiapkan koneksi Speedy untuk
router mikrotik. Untuk membuat virtual private network dibutuhkan ip publik
agar bisa diakses dimana saja. Sehingga modem ADSL Speedy di setting
sebagai Bridge, lalu username & password Speedy di input pada Mikrotik
(PPPoE Client), sehingga setelah terkoneksi ke Speedy maka IP Public berada
pada Mikrotik. Contoh untuk setting modem ADSL Speedy sebagai Bridge
adalah seperti pada gambar 4.3.
72 Universitas Kristen Petra
Gambar 4.3 Setting Bridge Mode ADSL Modem
Berikutnya adalah menyiapkan Mikrotik PC Router, Mikrotik PC
Router adalah sebuah PC yang dapat berfungsi sebagai routerboard
biasanya. Spesifikasi untuk membuat Mikrotik PC Router hanya
memerlukan setidaknya Pentium II/400Mhz, harddisk IDE minimal
1GB, Ram 64Mb/128 Mb, 2 buah Lan Card (Merk
Intel/Realtek/Dlink/3 Com/ TPLink/ dll), CDRom IDE, CD Installer
Mikrotik, pada saat ini versi router os yang digunakan adalah versi
5.20. Gambar 4.4 merupakan topologi Jaringan Mikrotik yang akan
dibangun.
73 Universitas Kristen Petra
Gambar 4.4 Topologi Jaringan Mikrotik pada Toko 1
Setelah pada tahap persiapan dengan memahami konsep dan topologi
jaringan mikrotik yang akan dibangun, maka cara setting Mikrotik PC
Router adalah sebagai berikut
1. Melakukan instalasi Router OS pada PC, dengan memilih fitur apa
saja yang akan diinstal pada PC Router.Pada kasus ini semua fitur
akan diinstal.Gambar proses instalasi Router OS dapat dilihat pada
gambar 4.5
74 Universitas Kristen Petra
Gambar 4.5 Install Router OS
2. Setelah instalasi selesai, reboot PC Router, dan bisa mengakses
Mikrotik menggunakan Winbox. Gambar 4.6 merupakan gambar
Winbox.
Gambar 4.6 Aplikasi Winbox
3. Selanjutnya ubah nama kedua Interface pada mikrotik menjadi
LAN dan SPEEDY dengan cara klik 2x pada kotak biru yang
terdapat pada Gambar 4.7. Tujuannya adalah untuk memudahkan
75 Universitas Kristen Petra
identifikasi, sehingga tidak terjadi kesalahan pada saat setting
interface.
Gambar 4.7 Mengubah nama interface
4. Setting IP Address untuk LAN menjadi 192.168.88.251/24 seperti
pada gambar 4.8 dan IP Address untuk Speedy menjadi
192.168.1.10/24 seperti pada gambar 4.9.
Gambar 4.8 Ip Address Interface LAN
76 Universitas Kristen Petra
Gambar 4.9 IP Address Interface Speedy
5. Setting IP DNS dengan IP DNS Speedy yaitu 202.134.1.10 dan
202.134.0.155. Caranya dengan masuk ke menu “IP” lalu pilih
“DNS” seperti pada gambar 4.10.
Gambar 4.10 Setting IP DNS Speedy
6. Langkah selanjutnya adalah membuat interface PPPoE Client.
Caranya klik menu Interface, pada simbol plus diklik dan pilih
“PPPoE Client” seperti pada gambar 4.11. Masukkan Username
dan password Speedy. Pada option “General”, cukup menentukan
interface yang 1 jalur dengan modem ADSL untuk nama dan type-
77 Universitas Kristen Petra
nya pake default-nya saja sudah cukup, dan tentu Interface yang
mengarah ke modem ADSL, yaitu interface yang telah diberi nama
“SPEEDY” seperti pada gambar 4.12. Selanjutnya klik tab “Dial
Out” dan masukkan Username + Password Account Speedy seperti
pada gambar 4.13.
Gambar 4.11 Membuat Interface PPPoE Client
Gambar 4.12 Nama Profile Interface PPPoE Client
78 Universitas Kristen Petra
Gambar 4.13 Tab Dial Out
7. Apabila selesai melakukan setting PPPoE Client maka begitu
selesai setting, Mikrotik langsung melakukan DialUp ke modem
ADSL. Jika setting Username dan Password ini benar maka
selanjutnya akan tampak status koneksi Mikrotik dan pada menu
IP -> Address akan muncul sebuah IP Address baru berupa IP
Publik yaitu 125.164.75.150 yang diberikan Telkom Speedy
kepada pelanggan berdasarkan Username & Password seperti pada
gambar 4.14.
Gambar 4.14 Ip Addres Baru
79 Universitas Kristen Petra
8. Selanjutnya mengatur NAT (Network Address Translation) agar
client dapat terkoneksi ke Internet atau dapat mengakses internet.
Caranya masuk ke webbox dengan alamat IP 192.168.88.251 pada
browser, pilih interface pppoe-out1 lalu centang NAT dan klik
Apply seperti pada gambar 4.15.
Gambar 4.15 Setting NAT Interface pppoe-out1
9. Selanjutnya tambahakan 1 buah IP Route. Perhatikan pada sebelah
IP Address dari IP Publik pada gambar 4.16, yaitu Network =
125.164.72.1. IP Network ini adalah IP Gateway Telkom Speedy
yang melayani koneksi, Tambahkan 1 buah New Route,
Destination 0.0.0.0/0 lalu gateway = 125.164.72.1.
80 Universitas Kristen Petra
Gambar 4.16 Setting IP Route
10. Sampai tahap ini setting mikrotik Router telah selesai. Tinggal test
ping koneksi dari Mikrotik. Lakukan test ke IP DNS Speedy :
202.134.1.10 dilanjutkan dengan test ping ke yahoo.com maupun
website lain. Jika ada reply maka Mikrotik telah berhasil / sukses
dikonfigurasi, contohnya pada gambar 4.17.
Gambar 4.17 Test Ping IP DNS dan website lain
81 Universitas Kristen Petra
11. Setelah mendapatkan IP Publik dari Speedy (125.164.75.150),
selanjutnya akan melakukan konfigurasi PPP -> PPTP Server
seperti pada gambar 4.18. B New Interface PPTP Server, dan
gunakan settingan default langsung OK, seperti pada gambar 4.19.
Gambar 4.18 Konfigurasi PPTP Server
82 Universitas Kristen Petra
Gambar 4.19 Membuat Interface pptp-in1
12. Langkah berikutnya adalah membuat IP Pool, atau sekelompok IP
Address yang akan dibuat untuk mengalokasikan sejumlah IP
Adress untuk VPN Client per-user yang nanti akan terkoneksi ke
Mikrotik VPN Server. Selain menggunakan IP Pool, juga bisa
memberikan IP Adress per-user satu persatu. Tetapi jika jumlah
VPN Client-nya banyak maka cara inilah yang tepat untuk
dilakukan. Untuk membuat IP Pool klik menu IP -> Pool seperti
pada gambar 4.20. Selanjutnya buat New Ip Pool. Misalnya
alokasikan IP Address: 192.168.88.10 – 192.168.88.20 dan diberi
nama vpn-client seperti pada gambar 4.21. Jika Ip Pool sudah
terbuat maka akan tampak seperti gambar 4.22.
83 Universitas Kristen Petra
Gambar 4.20 Membuat IP Pool
Gambar 4.21 Membuat IP Pool Baru
84 Universitas Kristen Petra
Gambar 4.22 Ip Pool Berhasil Di Buat
13. Langkah Selanjutnya adalah membuat sebuah profile dengan nama
VPS-VPN (atau bebas). Local Address adalah IP Adress yang
digunakan sebagai VPN gateway oleh Mikrotik, yaitu IP Address
Mikrotik LAN. Remote address adalah IP Address yang akan
diberikan kepada masing-masing VPN Client dan IP Adress inilah
yang dapat dikenali dan dapat berkomunikasi dengan Client yang
lain, sebelumnya sudah dibuat pada IP Pool.Contohnya ada pada
gambar 4.23.
85 Universitas Kristen Petra
Gambar 4.23 Membuat Profile Untuk VPN Client
14. Selanjutnya klik PPTP Server. Option inilah yang menentukan
Fitur PPTP Server berfungsi atau tidak pada Mikrotik. Aktifkan /
centang tanda checkmark “Enable” lalu pilih default profile dengan
profile yang dibuat sebelumnya, yaitu VPS-VPN seperti pada
gambar 4.24.
86 Universitas Kristen Petra
Gambar 4.24 Mengaktifkan PPTP Server
15. Langkah Selanjutnya adalah membuat User VPN di menu Tab
“Secrets”. Setting username, password, Service PPTP dan Profile
VPS-VPN seperti pada gambar 4.25. Hingga tahap ini proses
setting VPN Server sudah selesai, tinggal setting vpn client di sisi
client.
87 Universitas Kristen Petra
Gambar 4.25 Membuat User VPN
16. Agar dapat langsung menggunakan akses VPN ini maka pastikan
dahulu ada akses internet di PC atau laptop. Pada windows 7
langkahnya adalah:
Buka Menu Network And Sharing Center dan pilih menu
Setup a New Connection Network seperti pada gambar 4.26.
88 Universitas Kristen Petra
Gambar 4.26 Menu Network and Sharing Center
Pilih Menu Connect to a Network Place seperti pada gambar
4.27.
Gambar 4.27 Connect to a Network Place
89 Universitas Kristen Petra
Pilih Menu Create New Connection seperti pada gambar 4.28.
Gambar 4.28 Create New Connection
Pilih Use my Internet connection (VPN) serperti pada gambar
4.29
Gambar 4.29 User My Internet Connection (VPN)
90 Universitas Kristen Petra
Selanjutnya masukkan alamat IP Address atau Domain Name
dari VPN Server dan nama koneksi VPN seperti pada gambar
4.30
Gambar 4.30 Masukkan IP Address dan nama koneksi
Setelah itu akan muncul tampilan seperti dibawah ini dan
masukkan Username + Password VPN yang telah dibuat
sebelumnya. Contoh pada gambar 4.31
91 Universitas Kristen Petra
Gambar 4.31 Masukkan username dan password vpn client
Lihat di status Network Connection telah muncul sebuah
nama koneksi VPN yang telah dibuat tadi. Klik nama koneksi
VPN tersebut lalu pilih properties seperti pada gambar 4.32.
92 Universitas Kristen Petra
Gambar 4.32 Network Connection
Pada menu tab Security,tentukan jenis VPN misalnya pada
contoh ini menggunakan PPTP VPN tanpa Enkripsi, sehingga
dapat dilihat pada gambar 4.33.
93 Universitas Kristen Petra
Gambar 4.33 VPN Properties
Selanjutnya pada menu tab Networking, cek setting pada
Internet Protocol/ TCP-IP. Lalu klik Properties dan
selanjutnya klik lagi Advanced seperti pada gambar 4.34.
94 Universitas Kristen Petra
Gambar 4.34 Menu Networking
Pada Menu tab IP Settings yang ada pada gambar 4.35
menjelaskan mengenai, jika opsi Use default gateway on
remote network ]diaktifkan maka apabila client ini sudah
terkoneksi dengan VPN Server maka selanjutnya Gateway
yang digunakan bukan lagi gateway dari koneksi lokal
melainkan menggunakan Gateway yang ada pada VPN
Server.Jika opsi use default gateway on remote network
dinon-aktifkan maka apabila client ini sudah terkoneksi ke
VPN Server maka Gateway yang digunakan tetap gateway
dari koneksi lokal atau tidak menggunakan gateway yang ada
pada vpn server. Artinya vpn hanya digunakan sebagai
jembatan untuk mengakses dan memanfaatkan resource yang
ada di jaringan LAN (misalnya:Database Server).
95 Universitas Kristen Petra
Gambar 4.35 Setting default gateway on remote network
Langkah berikutnya adalah melakukan koneksi dari vpn
client (pastikan username & password telah disetting
dengan benar) seperti pada gambar 4.36 dan jika koneksi
vpn client ini berhasil dan statusnya connected akan tampak
seperti pada gambar 4.37.
96 Universitas Kristen Petra
Gambar 4.36 Koneksi VPN Client
Gambar 4.37 VPN Terhubung
97 Universitas Kristen Petra
Karena koneksi yang digunakan saat ini adalah Speedy, maka speedy
memiliki ip publik dinamik yang setiap beberapa jam berganti
sehingga mempersulit untuk proses koneksi terhadap VPN dimana
harus selalu mengganti IP nya. Berikut ini merupakan proses
konfigurasi auto update ip publik dinamik dengan FreeDDNS pada
Mikrotik PC Router.Langkah-langkahnya adalah sebagai berikut:
1. Melakukan registrasi pada website www.changeip.com, dan
melakukan login pada website tersebut.
2. Setelah itu pilih menu Products -> Free Dynamic DNS, akan
muncul tampilan seperti pada gambar 4.38. Dan pilih subdomain
yang diinginkan, pada contoh ini saya memilih subdomain
dynamic-dns.net dengan nama tayongky2014.
Gambar 4.38 Menu Free Dynamic DNS
3. Selanjutnya klik menu DNS Manager, dan akan terlihat sejumlah
nama subdomain yang telah diregister seperti pada gambar 4.39
98 Universitas Kristen Petra
Gambar 4.39 DNS Manager
4. Selanjutnya klik menu View Recent DDNS Updates maka akan
terlihat IP Public yang sudah teregister pada subdomain tersebut.
Ip Publik ini dapat diganti secara otomatis dengan beberapa cara,
yaitu update via tools / software DNS Client Updater ataupun
menggunakan update via router.Untuk Update via router caranya
adalah:
Membuat ScriptHomingBeaconUpdater dari Menu System
Script
Membuat Scheduler yang diset permenit untuk menjalankan
ScriptHomingBeaconUpdater
Dari Mikrotik Winbox, Pilih menu System Script untuk membuat
ScriptHomingBeaconUpdater seperti pada gambar 4.40. Lalu
masukkan script tersebut dan klik Apply / OK. Script Homing
Beacon Updater dapat dilihat pada gambar 4.41.
99 Universitas Kristen Petra
Gambar 4.40 Menu System Script
Gambar 4.41 Script Homing Beacon Updater
5. Selanjutnya dari menu System Scheduler buat sebuah schedule
baru yang set permenit untuk menjalankan Script Homing
Beacon Updater yang telah dibuat tadi caranya seperti pada
gambar 4.42. kemudian tentukan nama Schedule dan interval
jalannya script. Lalu pada pilihan On Event, taruh nama script
yang sudah di siapkan sebelumnya. Lalu klik OK / Apply
seperti pada gambar 4.43.
100 Universitas Kristen Petra
Gambar 4.42 Membuat Scheduler Baru
Gambar 4.43 Memasukkan Script dalam Schedule
6. Apabila update dns sukses maka dapat dilihat contohnya pada
gambar 4.44. Dan dapat langsung mengakses VPN Server
tanpa menggunakan IP, melainkan dengan menggunakan
domain yang telah di buat sebelumnya seperti pada gambar
4.45.
101 Universitas Kristen Petra
Gambar 4.44 Update DNS Sukses
Gambar 4.45 Mengganti Ip dengan Domain
102 Universitas Kristen Petra
4.3 Implementasi Program
Program yang dibuat,terdiri dari beberapa user login seperti admin,
kasir,dan manajer sehingga form awal yang didalamnya berbeda 1
sama lain, akan tetapi tiap form awal terdapat menu strip yang
merupakan menu-menu dari program. Untuk lebih jelasnya dapat
melihat pada Tabel 4.1.
Tabel 4.1 Tabel Menu dari form Utama
Nama
Menu
Sub Menu Nama Form Yang digunakan
Master Master User FormMasterUser
Master Barang FormMasterBarang
Master Toko FormMasterToko
Master Supplier FormMasterSupplier
Master User FormMasterUser
Transaksi Pembelian FormTransaksiPembelian
Penerimaan FormTransaksiPenerimaan
Pelunasan FormTransaksiPelunasan
Request Retur FormTransaksiRequestRetur
Penerimaan Retur FormTransaksiTerimaRetur
Stock Opname FormStokOpname
Transfer FormTransaksiTransfer
Request Jual FormRequestReturPenjualan
NotaPenjualan FormNotaPenjualan
Pengiriman FormTransaksiPengiriman
Pelunasan FormTransaksiPelunasanPenjualan
Request Retur FormTransaksiRequestReturJual
Retur Jual FormTransaksiReturJual
Laporan Laporan Penjualan FormLaporanPenjualan
Laporan Pembelian FormLaporanPembelian
Laporan Hutang FormLaporanHutang
103 Universitas Kristen Petra
Laporan Piutang FormLaporanPiutang
Laporan Kartu Stok FormLaporanKartustok
Laporan Laba Rugi FormLaporanLabaRugi
Logout - -
Masing-masing form memiliki function, function dari tiap-tiap form dapat
dilihat pada tabel 4.2
Tabel 4.2 Tabel Form
No Proses
DFD
Form Seg
ment
Keterangan
Proses 1.1 FormNotaPenjualan 4.1 Form untuk membuat nota
penjualan (Browse
Request, Browse
Customer,Tambah
Barang, Hapus,Simpan)
FormTransaksiPengiriman Form untuk mencatat
pengiriman
penjualan(Browse Nota
Penjualan, Hapus,Simpan)
Proses 1.2 FormTransaksiPelunasanPenjualan Form untuk mencatat
pelunasan
penjualan(Browse Nota
Penjualan, Bayar)
Proses 1.3 FormRequestPenjualan Form untuk mencatat
pesanan
penjualan(Browse
Customer,Tambah
Barang,Hapus,Simpan)
Proses 1.4 FormTransaksiRequestReturJual Form untuk mencatat
104 Universitas Kristen Petra
request retur
penjualan(Browse
Transaksi Penjualan,
Hapus, Simpan)
FormTransaksiReturJual 4.2 Form untuk mencatat retur
penjualan(Browse
Request Retur,Hapus,
Simpan)
FormMasterCustomer 4.3 Form untuk menyimpan
data
customer(Add,Edit,Delete
)
Proses 2.1 FormTransaksiPembelian 4.4 Form untuk mencatat
transaksi
pembelian(Browse
Supplier, Tambah
Barang,Hapus,Simpan)
Proses 2.2 FormTransaksiPenerimaan Form untuk mencatat
transaksi
penerimaan(BrowseTrans
aksiPembelian,Hapus,Sim
pan)
Proses 2.3 FormTransaksiRequestRetur 4.5 Form untuk mencatat
permohonan retur
beli(BrowseTransaksiPem
belian,Hapus,Simpan)
FormTransaksiTerimaRetur Form untuk mencatat
penerimaan retur
beli(BrowseRequestRetur,
105 Universitas Kristen Petra
Hapus,Simpan)
Proses 2.4 FormTransaksiPelunasan Form untuk mencatat
transaksi pelunasan
beli(BrowseTransaksiPem
belian,Bayar)
Proses 2.5 FormMasterSupplier Form untuk mencatat data
supplier(Add,Edit,Delete)
Proses 3 FormLaporanPenjualan 4.6 Form untuk menampilkan
laporan penjualan
FormLaporanPembelian Form untuk menampilkan
laporan pembelian
FormLaporanHutang Form untuk memunculkan
laporan hutang
FormLaporanPiutang Form untuk memunculkan
laporan piutang
FormLaporanKartuStok Form untuk menampilkan
laporan kartu stok
FormLaporanLabaRugi Form untuk menampilkan
laporan laba rugi
Proses 4 FormStokOpname Form untuk menampilkan
stok opname
FormTransaksiTransfer Form untuk mencatat
pengiriman barang antar
toko(BrowseToko,Tamba
hBarang,Hapus,Simpan)
FormMasterBarang Form untuk mencatat data
barang(Add,Edit,Delete,B
106 Universitas Kristen Petra
rowseGambar)
FormTransaksiRequestTransfer Form untuk meminta
transfer barang ke toko
pusat(BrowseToko,Tamba
hBarang,Hapus)
FormMasterUser Form untuk mencatat
daftar user
login(Add,Edit,Delete)
FormMasterToko Form untuk mencatat data
toko(Add,Edit,Delete)
1. Form Nota Penjualan
Pada form ini, kasir dapat melakukan penjualan. Source code Form Nota
Penjualan dapat dilihat pada Segmen program 4.1
Segmen 4.1 Form Nota Penjualan
Browse Request Penjualan
Dim sqlCommandText As String = "SELECT
t.id_penjualan,s.nama,t.tgl_penjualan,t.total " & _
"FROM [tbl_penjualan] t " & _
"INNER JOIN [tbl_customer] s ON (t.CustomerID=s.CustomerID) " & _
"WHERE t.id_penjualan LIKE '%" & TextBox1.Text & "%' AND
t.Status<>'X' AND t.id_toko=" & Connect.idToko
Browse Customer
Dim sqlCommandText As String = "SELECT
t.CustomerID,t.nama,t.alamat,t.no_telp " & _
"FROM [tbl_customer] t WHERE t.nama LIKE '%" & TextBox1.Text & "%'
AND t.id_toko=" & Connect.idToko
107 Universitas Kristen Petra
Segmen 4.1 Form Nota Penjualan (Lanjutan)
Tambah Barang
FormBrowseBarangJ.ShowDialog()
If (Not FormBrowseBarangJ.brg Is Nothing) Then
Dim contained As Boolean = False
For i As Integer = 0 To detailPembelian.Count - 1
If (detailPembelian.Item(i).barangID =
FormBrowseBarangJ.brg.barangID) Then
contained = True
detailPembelian.Item(i).total detailPembelian.Item(i).total +
FormBrowseBarangJ.brg.total
End If
Next
If (Not contained) Then
detailPembelian.Add(FormBrowseBarangJ.brg)
End If
bindingsource.ResetBindings(True)
hitungTotal()
End If
Hapus
Try
Dim i As Integer = DataGridView1.CurrentRow.Index()
detailPembelian.RemoveAt(i)
bindingsource.ResetBindings(True)
hitungTotal()
Catch ex As Exception
End Try
2. Form Retur Jual
Pada form ini, kasir dapat memasukkan retur penjualan. Source code form
retur jual dapat dilihat pada Segmen program 4.2.
Segmen 4.2 Form Retur Jual
Simpan Data Retur
If (checkValid()) Then
Try
Dim noPembelian As String = TextBox3.Text
Dim tanggal As Date = DateTimePicker1.Value
Dim sqlConn As SqlConnection = New SqlConnection
sqlConn.ConnectionString = Connect.str
sqlConn.Open()
Dim sqlCommandText As String = "INSERT INTO
tbl_penerimaanreturbeli(no_pembelian,tgl_penerimaanretur) " & _
"VALUES (@nopemb,@tglpemb)"
Dim sqlquery As New SqlCommand(sqlCommandText,sqlConn)
sqlquery.Parameters.Add(New SqlParameter("@nopemb",
noPembelian))
sqlquery.Parameters.Add(New SqlParameter("@tglpemb", tanggal))
sqlquery.ExecuteNonQuery()
Dim mid As String = ""
sqlCommandText = "SELECT MAX(id_penerimaanretur) AS mid FROM
tbl\_penerimaanreturbeli"
sqlquery = New SqlCommand(sqlCommandText, sqlConn)
Dim rd As SqlDataReader = sqlquery.ExecuteReader
While (rd.Read)
mid = rd("mid")
End While
rd.Close()
For i As Integer = 0 To detailPembelian.Count - 1
108 Universitas Kristen Petra
Segmen 4.2 Form Retur Jual (Lanjutan)
sqlCommandText = "INSERT INTO tbl_detailpenerimaanreturbeli
(id_penerimaanretur,kode_barang,jumlah) " & _
"VALUES (@nopemb,@kode,@jumlah)"
sqlquery = New SqlCommand(sqlCommandText, sqlConn)
sqlquery.Parameters.Add(New SqlParameter("@nopemb", mid))
sqlquery.Parameters.Add(New SqlParameter("@kode",
detailPembelian.Item(i).barangID))
sqlquery.Parameters.Add(New SqlParameter("@jumlah",
detailPembelian.Item(i).total2))
sqlquery.ExecuteNonQuery(
Next
sqlConn.Close()
resetInput()
MessageBox.Show("Data retur berhasil disimpan")
Catch ex As Exception
End Try
End
3. Form Master Customer
Pada form ini dapat menambah,edit,hapus data customer. Source code
form Master Customer dapat dilihat pada Segmen program 4.3
Segmen 4.3 Form Master Customer
Add
If (checkValid()) Then
Dim supplier As String = TextBox1.Text
Dim alamat As String = TextBox2.Text
Dim notelp As String = TextBox4.Text
Try
Dim sqlConn As SqlConnection = New SqlConnection
sqlConn.ConnectionString = Connect.str
sqlConn.Open()
Dim sqlCommandText As String = "INSERT INTO [tbl_customer]
(nama,alamat,no_telp,id_toko) VALUES
(@nama,@alamat,@telp,@idtoko)"
Dim sqlquery As New SqlCommand(sqlCommandText, sqlConn)
sqlquery.Parameters.Add(New SqlParameter("@nama", supplier))
sqlquery.Parameters.Add(New SqlParameter("@alamat", alamat))
sqlquery.Parameters.Add(New SqlParameter("@telp", notelp))
sqlquery.Parameters.Add(New SqlParameter("@idtoko",
Connect.idToko))
sqlquery.ExecuteNonQuery()
sqlConn.Close()
Catch ex As Exception
End Try
Me.Close()
End If
Delete
Try Dim i As Integer = DataGridView1.CurrentRow.Index() Dim id As String = DataGridView1.Item(0, i).Value Dim dc As SqlConnection = New SqlConnection dc.ConnectionString = Connect.str dc.Open() Dim sqlCommandText As String = "DELETE FROM tbl_customer WHERE CustomerID=" & id
109 Universitas Kristen Petra
Segmen 4.3 Form Master Customer (Lanjutan
Dim sqlquery As New SqlCommand(sqlCommandText, dc) sqlquery.ExecuteNonQuery() dc.Close() Catch ex As Exception End Try viewDataUser() End If Edit
Dim supplier As String = TextBox1.Text
Dim alamat As String = TextBox2.Text
Dim notelp As String = TextBox4.Text
Try
Dim sqlConn As SqlConnection = New SqlConnection
sqlConn.ConnectionString = Connect.str
sqlConn.Open()
Dim sqlCommandText As String = "UPDATE [tbl_customer] SET
nama=@nama,alamat=@alamat,no_telp=@telp WHERE CustomerID=" &
idCustomer
Dim sqlquery As New SqlCommand(sqlCommandText, sqlConn)
sqlquery.Parameters.Add(New SqlParameter("@nama", supplier))
sqlquery.Parameters.Add(New SqlParameter("@alamat", alamat))
sqlquery.Parameters.Add(New SqlParameter("@telp", notelp))
sqlquery.ExecuteNonQuery()
sqlConn.Close()
Catch ex As Exception
End Try
Me.Close()
4. Form Transaksi Pembelian
Pada form ini dapat menyimpan pembelian kepada supplier. Source code
dari form transaksi pembelian ini dapat dilihat pada Segmen program 4.4
Segmen 4.4 Form Transaksi Pembelian
Tambah Barang
FormBrowseBarang.ShowDialog()
If (Not FormBrowseBarang.brg Is Nothing) Then
Dim contained As Boolean = False
For i As Integer = 0 To detailPembelian.Count – 1
If (detailPembelian.Item(i).barangID =
FormBrowseBarang.brg.barangID) Then
contained = True
detailPembelian.Item(i).total = detailPembelian.Item(i).total +
FormBrowseBarang.brg.total
End If
Next
If (Not contained) Then
detailPembelian.Add(FormBrowseBarang.brg)
End If
bindingsource.ResetBindings(True)
hitungTotal()
End If
Simpan
If (checkValid()) Then Try Dim noPembelian As String = TextBox3.Text Dim tanggal As Date = DateTimePicker1.Value
110 Universitas Kristen Petra
Segmen 4.4 Form Transaksi Pembelian (Lanjutan)
Dim tipePembelian As String = ComboBox1.SelectedIndex Dim tanggalJatuhTempo As Date = DateTimePicker2.Value Dim sqlConn As SqlConnection = New SqlConnection sqlConn.ConnectionString = Connect.str sqlConn.Open() Dim sqlCommandText As String = "INSERT INTO tbl_pembelian (id_supplier,no_pembelian,tgl_pembelian,tgl_jatuhtempo,tipe_pembelian,total,status) " & _ "VALUES (@idsupp,@nopemb,@tglpemb,@tgljtempo,@tipe,@total,'H')" Dim sqlquery As New SqlCommand(sqlCommandText, sqlConn) sqlquery.Parameters.Add(New SqlParameter("@idsupp", suppID)) sqlquery.Parameters.Add(New SqlParameter("@nopemb", noPembelian)) sqlquery.Parameters.Add(New SqlParameter("@tglpemb", tanggal))
sqlquery.Parameters.Add(New SqlParameter("@tgljtempo", tanggalJatuhTempo)) sqlquery.Parameters.Add(New SqlParameter("@tipe", tipePembelian)) sqlquery.Parameters.Add(New SqlParameter("@total", total)) sqlquery.ExecuteNonQuery() For i As Integer = 0 To detailPembelian.Count - 1 sqlCommandText = "INSERT INTO tbl_detailpembelian (no_pembelian,kode_barang,jumlah,harga,subtotal) " & _ "VALUES (@nopemb,@kode,@jumlah,@harga,@subtotal)" sqlquery = New SqlCommand(sqlCommandText, sqlConn) sqlquery.Parameters.Add(New SqlParameter("@nopemb", noPembelian)) sqlquery.Parameters.Add(New SqlParameter("@kode", detailPembelian.Item(i).barangID)) sqlquery.Parameters.Add(New SqlParameter("@jumlah", detailPembelian.Item(i).total)) sqlquery.Parameters.Add(New SqlParameter("@harga", detailPembelian.Item(i).harga)) sqlquery.Parameters.Add(New SqlParameter("@subtotal", detailPembelian.Item(i)._subtotal)) sqlquery.ExecuteNonQuery() Next sqlConn.Close() resetInput() MessageBox.Show("Data pembelian berhasil disimpan") Catch ex As Exception End Try End If
5. Form Transaksi Request Retur Pembelian
Pada form ini dapat menyimpan transaksi request retur pembelian. Soure
code dari form Transaksi request retur pembelian ini dapat dilihat pada
Segmen program 4.5.
111 Universitas Kristen Petra
Segmen 4.5 Form Transaksi Request Retur Pembelian
Browse Transaksi Pembelian
FormBrowseTransaksiRR.ShowDialog()
If (Not FormBrowseTransaksiRR.kodePembelian = "") Then
TextBox3.Text = FormBrowseTransaksiRR.kodePembelian
TextBox2.Text = FormBrowseTransaksiRR.namaSupplier
detailPembelian.Clear()
Dim sqlConn As SqlConnection = New SqlConnection
sqlConn.ConnectionString = Connect.str
sqlConn.Open()
'harga barang pada saat retur diambilkan dari pembelian
Dim sqlCommandText As String = "SELECT
dp.kode_barang,b.nama_barang,SUM(dp.total_diterima) AS
jumlah,dpx.harga " & _
"FROM [tbl_detailpenerimaan] dp " & _
"INNER JOIN [tbl_barang] b ON (dp.kode_barang=b.kode_barang) " & _
"INNER JOIN [tbl_penerimaan] p ON
(p.id_penerimaan=dp.id_penerimaan) " & _
"INNER JOIN ( " & _
"SELECT MAX(dp.harga) AS harga,dp.kode_barang " & _
"FROM tbl_detailpembelian dp " & _
"WHERE dp.no_pembelian='" & TextBox3.Text & "' " & _
"GROUP BY dp.kode_barang " & _
") dpx ON (dp.kode_barang=dpx.kode_barang) " & _
"WHERE p.no_pembelian='" & TextBox3.Text & "' " & _
"GROUP BY dp.kode_barang,b.nama_barang,dpx.harga "
Dim sqlquery As New SqlCommand(sqlCommandText, sqlConn)
Dim dr As SqlDataReader = sqlquery.ExecuteReader
While (dr.Read)
Dim brg As detailpenerimaan = New detailpenerimaan
brg.barangID = dr("kode_barang")
brg.nama = dr("nama_barang")
brg.harga = dr("harga")
brg.total = dr("jumlah")
brg.total2 = dr("jumlah")
detailPembelian.Add(brg)
End While
dr.Close()
For i As Integer = 0 To detailPembelian.Count - 1
Dim qt As String = "SELECT SUM(dp.total_diterima) AS total2 " & _
"FROM tbl_detailpenerimaan dp " & _
"INNER JOIN tbl_penerimaan tp ON
(dp.id_penerimaan=tp.id_penerimaan) " & _
"WHERE dp.kode_barang='" & detailPembelian.Item(i).barangID & "'
AND tp.no_pembelian='" & TextBox3.Text & "'"
sqlquery = New SqlCommand(qt, sqlConn)
dr = sqlquery.ExecuteReader
detailPembelian.Item(i).total3 = 0
While (dr.Read)
If (Not IsDBNull(dr("total2"))) Then
detailPembelian.Item(i).total3 = dr("total2")
End If
End While
dr.Close()
qt = "SELECT SUM(dp.jumlah) AS total2 " & _
"FROM tbl_detailreturbeli dp " & _
"INNER JOIN tbl_returbeli tp ON (dp.id_retur=tp.id_retur) " & _
"WHERE dp.kode_barang='" & detailPembelian.Item(i).barangID & "'
AND tp.no_pembelian='" & TextBox3.Text & "'"
sqlquery = New SqlCommand(qt, sqlConn)
dr = sqlquery.ExecuteReader
While (dr.Read)
If (Not IsDBNull(dr("total2"))) Then
112 Universitas Kristen Petra
Segmen 4.5 Form Transaksi Request Retur Pembelian (Lanjutan)
detailPembelian.Item(i).total3 = detailPembelian.Item(i).total3 -
dr("total2")
End If
End While
dr.Close()
qt = "SELECT SUM(dp.jumlah) AS total2 " & _
"FROM tbl_detailpenerimaanreturbeli dp " & _
"INNER JOIN tbl_penerimaanreturbeli tp ON
(dp.id_penerimaanretur=tp.id_penerimaanretur) " & _
"WHERE dp.kode_barang='" & detailPembelian.Item(i).barangID & "'
AND tp.no_pembelian='" & TextBox3.Text & "'"
sqlquery = New SqlCommand(qt, sqlConn)
dr = sqlquery.ExecuteReader
While (dr.Read)
If (Not IsDBNull(dr("total2"))) Then
detailPembelian.Item(i).total3 = detailPembelian.Item(i).total3 +
dr("total2")
End If
End While
dr.Close()
detailPembelian.Item(i).total2 = detailPembelian.Item(i).total3
Next
sqlConn.Close()
bindingsource.ResetBindings(True)
hitungTotal()
End If
6. Form Laporan Penjualan
Pada form ini dapat menyimpan Laporan Penjualan. Source code dari form
Laporan Penjualan ini dapat dilihat pada Segmen program 4.6
Segmen 4.6 Form Laporan Penjualan.
Dim pathSchema As String = ""
Try
Dim dc As SqlConnection = New SqlConnection(Connect.str)
dc.Open()
Dim dtP1 As DateTime = New DateTime(dt.Year, dt.Month, dt.Day, 0, 0,
0)
Dim dtP2 As DateTime = New DateTime(dt2.Year, dt2.Month, dt2.Day,
23, 59, 59)
Dim qr As String = "SELECT
t.id_notajual,s.nama,t.tgl_penjualan,t.total " & _
"FROM [tbl_notajual] t " & _
"INNER JOIN [tbl_customer] s ON (t.CustomerID=s.CustomerID) " & _
"WHERE t.tgl_penjualan>=@dt1 AND t.tgl_penjualan<=@dt2"
Dim qq As New SqlCommand(qr, dc)
qq.Parameters.Add(New SqlParameter("@dt1", dtP1))
qq.Parameters.Add(New SqlParameter("@dt2", dtP2))
Dim qa As New SqlDataAdapter
Dim qs As New DataSet
qa.SelectCommand = qq
qa.Fill(qs)
lp.SetDataSource(qs)
dc.Close()
113 Universitas Kristen Petra
Segmen 4.6 Form Laporan Penjualan (Lanjutan)
lp.SetParameterValue("Tanggal", "Tanggal " & dt.ToString("dd-MM-
yyyy") & " sampai " & dt2.ToString("dd-MM-yyyy"))
Catch e As Exception
End Try
CrystalReportViewer1.ReportSource = lp