aplikasi point of sales untuk butikrepository.usd.ac.id/32049/2/015314004_full.pdf · aplikasi...
Post on 19-Oct-2020
8 Views
Preview:
TRANSCRIPT
APLIKASI POINT OF SALES UNTUK BUTIK( Studi Kasus : Bona Butik Yogyakarta )
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
Firdaus HotHaposan PS
015314004
JURUSAN TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMAYOGYAKARTA
2008
i
APLIKASI POINT OF SALES UNTUK BUTIK( Studi Kasus : Bona Butik Yogyakarta )
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
Firdaus HotHaposan PS
015314004
JURUSAN TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMAYOGYAKARTA
2008
ii
POINT OF SALES (POS) APPLICATION
FOR BOUTIQUE( Case Study : Bona Butik )
A Thesis
Presented as Partial Fulfillment of the Requirements
to Obtain the Sarjana Teknik Degree
in Informatics Engineering
By :
Firdaus HotHaposan PS
015314004
DEPARTMENT OF INFORMATICS ENGINEERINGFACULTY OF TECHNOLOGY AND SAINS
SANATA DHARMA UNIVERSITYYOGYAKARTA
2008
v
PERNYATAAN
Dengan ini, saya sebagai penulis tugas akhir menyatakan dengan
sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian
karya orang lain, kecuali pemikiran, metode atau hasil penelitian orang lain yang
diambil dan disebutkan dengan jelas sebagai acuan.
Yogyakarta, 30 April 2008
Firdaus HotHaposan PS
Penulis
vii
HALAMAN PERSEMBAHAN
Karya Sederhana ini kupersembahkan untuk :
...
Allah Bapa Yang Maha Kuasa yang selalu mengasihi, mencintai dan
memberikan anugerah terindah dalah hidupku serta selalu
mengabulkan doa-doaku,
...
Yesus Sang Juru Selamat-ku yang selalu menjadi penerangku dalam
menghadapi berbagai persoalan hidup serta selalu memberikan
anugerah terindah dalam hidupku,
...
Kedua orang tuaku yang telah membesarkan dan mendidik aku
dengan cinta, kelembutan dan penuh dengan pengorbanan,
...
Adik-adikku David, Adven, Membang dan Dikta yang telah menjadi
kekuatanku dalam melangkah
...
Kedua Bidadari keluarga kecilku Brigita & Ruth Dita yang selalu setia
menemani hari-hariku, baik dalam suka maupun duka
...
Bapak dan Ibu di Klaten yang telah memberikan pengertian dan
dorongan dalam menjalani hidup
...
Brother Putut,S.Pd atas sharingnya
...
Seluruh Sahabatku yang memberikan kehangatan dalam hari-hariku.
..........
“Terima kasih untuk semuanya, Itu sudah...”
viii
HALAMAN MOTTO
If You Run You Might Loose, but if You don’t Run
You Guarantee To Loose!
“ Kejadian yang besar sering terjadi
pada tikungan yang paling kecil . “-Dick Gelael-
“ The future belongs to those who believein the beauty of their dreams.”
-Eleanor Roosevelt-
ix
ABSTRAK
Butik bona adalah suatu perusahaan retail yang bergerak dalam bidangpenjualan berbagai jenis batik dan produk garmen lainnya. Selama ini kegiatanpengelolaan penjualan pada butik ini masih dilakukan secara manual yaitu denganmenggunakan media ketas, kemudian baru dipindahkan ke komputer sehinggamenyebabkan timbulnya permasalahan. Permasalahan yang timbul yaitu rentannyaterjadi kesalahan dalam pencatatan data penjualan dikarenakan kasir mengalamikesulitan dalam mencari arsip-arsip yang ada sehingga pekerjaan menjadi kurangefisien.
Tujuan dari penelitan ini adalah membuat sistem informasi penjualan padabutik dalam mencatat transaksi penjualan langsung maupun transaksi penjualanmelalui pemesanan dan menangani pembuatan laporan penjualan. Sistem informasipenjualan ini berupa aplikasi Point Of Sales (POS) yang mampu mewakili sisteminformasi penjualan yang dirancang secara keseluruhan.
Pembuatan aplikasi point of sales ini menggunakan metode SDLC (SystemDevelopment Life Cycle). Tahapan utama siklus hidup pengembangan sistem (Systemdevelopment life cycle) dapat terdiri dari beberapa tahap yaitu : perencanaan sistem,analisis sistem, desain sistem, seleksi sistem dan implementasi sitem.
Aplikasi ini dibuat dengan menggunakan teknologi perangkat lunak VisualBasic.Net versi 2003 dengan dukungan database SQL SERVER 2000. Sedangkanuntuk pembuatan laporan digunakan Crystal Report versi 9.2 dan sistem ini telahberhasil diuji coba di Laboratorium Basis Data. .
.
x
ABSTRACT
Bona boutique is a retail company, which sells various kinds of batik andother fabric products. Nowadays, this boutique is still using selling managementmanually that is transforming from paper media to computer. However, the sellingtransaction information and the selling order are still being stored on paper,therefore causes problem. The problem is the susceptible in making mistakes inrecording selling data because the cassier finds difficulty in finding the existingfiles therefore the work becomes less efficient. The purpose of this study is to build selling information system in order torecord the direct selling transaction and selling transaction by order and handlingselling report. The selling information system is in form of Point of Salesapplication that is able to represent selling information system, which is totallyplanned. The making of this point of sales application used SDLC method (SystemDevelopment Life Cycle). The main phase of SDLC consists of some steps:System planning, system analysis, system design, system selection and systemimplementation.
This application was built using Visual Basic.Net software 2003 versionwith SQL SERVER 2000 support while making the report using Crystal Report9.2. and it has been successfully conducted experiment in Data Base Laboratory.
xi
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa
yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan
Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi
salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.
Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta
beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena
itu, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut
membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,
petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada:
1. Bapak Albertus Agung Hadhiatma, S.T, M.T, selaku Dosen Pembimbing,
yang telah banyak membantu terutama dalam memberikan bimbingan,
dukungan, dan penyediaan sarana yang mendukung, sehingga penulis dapat
menyelesaikan laporan tugas akhir ini. Terima kasih banyak pak, atas
semuanya.
2. Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc., selaku Dekan Fakultas
Teknik Universitas Sanata Dharma yang telah memberikan dispensasi
perpanjangan studi pada penulis. Terima kasih banyak Romo, atas dispensasi
dan ilmu bargain powernya.
3. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
4. Bapak JB. Budi Darmawan, S.T., M.Sc., dan Bapak Stevanus Wisnu Wijaya,
S.T, M.T selaku Dosen Penguji TA.
xii
5. Seluruh Dosen Universitas Sanata Dharma, khususnya Dosen yang mengajar
di Teknik Informatika, yang telah memberikan dan mengajarkan banyak ilmu
kepada penulis.
6. Kedua orang tua penulis yang sangat penulis kasihi, yang telah memberikan
semua yang mereka miliki kepada penulis, tanpa mengarapkan imbalan
apapun. Terima kasih Tuhan karena telah memberikan orang tua seperti
mereka kepada penulis.
7. Adik-adikku David, Adven, Membang dan Dikta. Terima kasih untuk
kebersamaannya.
8. Brigita yang menjadi tempat berbagi dan selalu setia menemani hari-hari
penulis baik dalam suka maupun duka.
9. Bapa Uda, Tante dan sepupuku Rina, Bona dan Ato yang telah memberikan
semangat untuk cepat lulus.
10. Seluruh keluarga yang berasal dari Kotacane dan Sipahutar, yang telah
memberikan dukungan kepada penulis selama ini.
11. Pak Tung Desem Waringin, yang telah memberikan coach dan pelatihan-
pelatihan kepada penulis.
12. Tanto yang telah menjadi teman seperjuangan penulis selama bimbingan TA
serta dalam mencari tanda tangan.
13. Anan, Sigit,Dami Ony dan Bironk Atmajaya yang telah membantu penulis
dalam menyelesaikan Tugas Akhir.
14. Adri, Cristine, Nita, Vindi, Desni, Robin, Yakob, Wahyu, Theo, Tanto, Danu,
Andi, Tria, Ida, Heni, Ema, Tio, Enji, Grace, Indra, Vivi, Nia, Willy, Mario,
xiii
Tiwi dan serta seluruh sahabat-sahabatku yang ada di Teknik Informatika.
Terima kasih atas persahabatan yang kalian berikan selama ini.
15. Puguh, Noel Gultom, Tora, Zeth, Bayu, dan Adven Sitompul yang telah
menjadi teman kost penulis selama ini.
16. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan
tugas akhir ini yang tidak dapat penulis sebutkan satu-persatu.
Penulis menyadari segala keterbatasan dalam menyelesaikan laporan
tugas akhir ini. Oleh karena itu, penulis ingin menyampaikan mohon maaf apabila
terdapat kesalahan dan kekurangan. Untuk itu, penulis mengharapkan kritik dan
saran yang membangun dari seluruh pihak yang membutuhkan laporan tugas akhir
ini.
Semoga laporan tugas akhir ini dapat memberikan manfaat bagi siapa
saja yang membutuhkannya. Atas segala perhatiannya dan kerjasamanya, penulis
ucapkan terima kasih.
Yogyakarta, Mei 2008
Firdaus Siagian
( Penulis )
xiv
DAFTAR ISI
HALAMAN JUDUL ..……………………………………………………….. i
HALAMAN PERSETUJUAN ………………………………………………. iii
HALAMAN PENGESAHAN ……………………………..………………… iii
HALAMAN PERNYATAAN KARYA ………………….………………….. v
HALAMAN PERNYATAAN PUBLIKASI ……….……….….……………. vi
HALAMAN PERSEMBAHAN ………………………….………………….. vii
HALAMAN MOTTO …………….……….…………………………………. viii
ABSTRAK ………………………..………………………………………….. ix
ABSTRACT …………………………………………………………………. x
KATA PENGANTAR …………….…………………………………………. xi
DAFTAR ISI .................................................................................................... xiv
DAFTAR GAMBAR ........................................................................................ xx
DAFTAR TABEL ............................................................................................ xxiii
BAB I PENDAHULUAN ................................................................................. 1
1.1 Latar Belakang Masalah .................................................................... 1
1.2 Rumusan Masalah .............................................................................. 2
1.3 Batasan Masalah ................................................................................ 3
1.4 Tujuan Penelitian ............................................................................... 3
1.5 Manfaat Penelitian ............................................................................. 4
1.6 Metodelogi Penelitian ........................................................................ 4
1.7 Sistematika Penulisan ........................................................................ 5
xv
BAB II LANDASAN TEORI ........................................................................... 7
2.1 Sistem ............................................................................................... 7
2.1.1 Konsep Dasar Sistem .................................................................. 7
2.1.2 Karakteristik Sistem .................................................................... 7
2.2 Informasi ............................................................................................ 9
2.2.1 Konsep Dasar Informasi .............................................................. 9
2.2.2 Siklus Informasi ........................................................................... 9
2.2.3 Kualitas Informasi ....................................................................... 10
2.2.4 Nilai Informasi ............................................................................. 11
2.3 Sistem Informasi ................................................................................ 11
2.3.1 Konsep Dasar Sistem Informasi .................................................. 11
2.4 Metodologi Pengembangan Sistem ................................................... 11
2.4.1 Langkah-Langkah Pengembangan Sistem ................................... 12
2.4.2 Alat dan Teknik dalam Perancangan Sistem ............................... 13
2.4.2.1 Usecase Diagram ................................................................... 13
2.4.2.2 Teknik ERD ........................................................................... 14
2.4.2.2.1 Notasi ER Diagram .......................................................... 15
2.4.2.2.2 Konsep Data Modelling ................................................... 16
2.4.2.3 DFD ( Data Flow Diagram ) .................................................. 19
2.4.2.3.1 Simbol DFD ..................................................................... 19
2.5 Point of Sales ..................................................................................... 21
2.6 Arsitektur Client Server ..................................................................... 21
2.6.1 Two Tier Model ........................................................................... 22
xvi
2.6.2 Three Tier Model ......................................................................... 23
2.7 Teknologi.NET, NET Framework dan Visual Basic.NET ................ 23
2.7.1 Teknologi.NET ............................................................................ 23
2.7.2 NET Framework .......................................................................... 24
2.7.3 Visual Basic.NET ........................................................................ 26
2.7.3.1 Object-object kontrol Visual Basic.NET ............................... 26
2.7.3.2 ADO.NET ………………………………………………….. 28
2.7.3.2.1 Object Connection ……………………………………... 29
2.7.3.2.2 Object Command ……………………………………… 29
2.7.3.2.3 Object Data Adapter …………………………………… 29
2.7.3.2.4 Object Data Reader …………………………………….. 30
2.7.3.2.5 Object Data Set ………………………………………… 30
2.7.3.2.6 Collection Data Table dan Data Relation ……………… 30
2.8 Database Dan Microsoft SQL Server 2000………………………… 31
2.8.1 Database ....................................................................................... 31
2.8.2 Microsoft SQL Server 2000 ......................................................... 31
2.8.2.1 Sejarah SQL Server 2000 ...................................................... 31
2.8.2.2 Arsitektur SQL Server ........................................................... 32
2.8.3 Konsep Pemrograman SQL Server .............................................. 34
2.8.4 Data Defination Language ........................................................... 36
2.8.5 Data Manipulation Language ...................................................... 36
2.8.6 Tipe-Tipe Data ............................................................................. 36
2.8.6.1 Ekspresi Dan Operator ........................................................... 37
xvii
2.8.6.2 Fungsi .................................................................................... 39
2.8.6.3 Prosedur ................................................................................. 40
2.8.6.4 Indeks ..................................................................................... 41
2.8.6.5 View ....................................................................................... 41
2.8.7 SQL Server Client Network Utility .............................................. 42
BAB III ANALISIS DAN PERANCANGAN SISTEM ...…..………………. 43
3.1 Analisis Sistem …………………...………………………………... 43
3.1.1 Gambaran Umum Sistem Yang Lama …………………………. 43
3.1.2 Gambaran Umum Sistem Yang Akan Dikembangkan ................ 45
3.2 Requierment Analysis ........................................................................ 46
3.2.1 Usecase Diagram ......................................................................... 46
3.3 Logical Design ................................................................................... 48
3.3.1 Desain Proses ............................................................................... 48
3.3.1.1 Proses Modelling ................................................................... 48
3.3.1.2 Context Diagram .................................................................... 49
3.3.1.3 Diagram Berjenjang ............................................................... 50
3.3.1.4 Overview Diagram ................................................................. 52
3.3.2 Desain Data Modelling ................................................................ 68
3.3.2.1 ER Diagram ........................................................................... 68
3.4 Desain Database ................................................................................. 69
3.4.1 Fisikal Data Model ...................................................................... 69
3.4.2 Relasi Antar Tabel ....................................................................... 72
xviii
BAB IV IMPLEMENTASI SISTEM ............................................................... 73
4.1 Karakteristik Sistem ........................................................................... 73
4.2 Kebutuhan Sistem .............................................................................. 73
4.3 Koneksi SQL Server .......................................................................... 74
4.4 User Interface .................................................................................... 77
4.4.1 User Interface Proses Login ........................................................ 77
4.4.2 User Interface Halaman Utama ................................................... 82
4.4.3 User Interface Data Pegawai ....................................................... 86
4.4.3.1 User Interface Delete Data Pegawai ...................................... 87
4.4.3.2 User Interface Edit Data Pegawai ..………………………... 88
4.4.3.3 User Interface Add Data Pegawai ..………………………… 92
4.4.3.4 User Interface Print Data Pegawai …………..…………….. 94
4.4.4 User Interface Data Pelanggan ...………………………………. 95
4.4.4.1 User Interface Delete Data Pelanggan ..……………………. 97
4.4.4.2 User Interface Edit Data Pelanggan .………………………. 98
4.4.4.3 User Interface Add Data Pelanggan ……………………….. 101
4.4.4.4 User Interface Print Data Pelanggan ……………………..... 102
4.4.5 User Interface Data Barang ..…………………………………... 103
4.4.5.1 User Interface Delete Data Barang .………………………... 104
4.4.5.2 User Interface Edit Data Barang .………………………….. 105
4.4.5.3 User Interface Add Data Barang ..………………………….. 108
4.4.6 User Interface Data Kas ..……………………………………. 110
4.4.6.1 User Interface Add Data Kas …………….………………… 111
xix
4.4.6.2 User Interface Edit Data Kas ………….…………………… 113
4.4.6.3 User Interface Delete Data Kas .…………………………… 114
4.4.7 User Interface Data Transaksi ……….………………………… 116
4.4.8 User Interface Proses Ubah Password ……………………….... 125
BAB V ANALISA HASIL IMPLEMENTASI ...……………………………. 128
5.1 Kelebihan Sistem Yang Dibuat ……….…………………………… 128
5.2 Kekurangan Sistem Yang Dibuat .…………………………………. 128
5.3 Analisa Manfaat ……………………………………………………. 128
BAB VI PENUTUP …………………………………………………………. 130
6.1 Kesimpulan ………………………………………………………… 130
6.2 Saran ……………………………………………………………….. 130
DAFTAR PUSTAKA ………………………………………………………... 131
xx
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Siklus Informasi 10
2.2 Simbol Use Case 13
2.3 Simbol Aktor 13
2.4 Contoh ERD 14
2.5 Contoh Dari Entity Mahasiswa 16
2.6 Contoh Atribut Yang Ada Pada Entitas Mahasiswa 16
2.7 Simbol Proses menggunakan SDL Diagram Shapes 19
2.8 Simbol dari arus data 20
2.9 Simbol kesatuan luar menurut Gane dan Sarson 20
2.10 Simbol penyimpanan data menurut Gane dan Sarson 21
2.11 Arsitektur Client-Server 22
2.12 Arsitektur Two Tier Client – Server 23
2.13 Arsitekur Database SQL Server 33
2.14 Arsitektur SQL Client/Server 34
3.1 Use Case Diagram 47
3.2 Context Diagram 49
3.3 Diagram Berjenjang Bagian 1 50
3.4 Diagram Berjenjang Bagian 2 51
3.5 Overview Diagram Bagian 1 52
3.6 Overview Diagram Bagian 2 53
3.7 Overview Diagram level 1 Proses Login 54
3.8 Overview Diagram level 1 Proses Data Pegawai 55
3.9 Overview Diagram level 1 Proses Data Barang 56
3.10 Overview Diagram level 1 Proses Data Satuan 57
xxi
3.11 Overview Diagram level 1 Proses Data Kas 58
3.12 Overview Diagram level 1 Proses Data Pelanggan 59
3.13 Overview Diagram level 1 Proses Data Kategori 60
3.14 Overview Diagram level 1 Proses Ubah Password 61
3.15 Overview Diagram level 1 Proses Data Satuan_Barang 62
3.16Overview Diagram level 1 Proses Data Transaksi
Penjualan63
3.17 Overview Diagram level 1 Proses Data Satuan_Barang 64
3.18 Overview Diagram level 2 Proses Data Pesanan 65
3.19Overview Diagram level 2 Proses Data Transaksi
Penjualan melalui Pesanan66
3.20Overview Diagram level 2 Proses Data Transaksi
penjualan secara langsung67
3.21 Entity Relational Model 68
3.22 Relasi Antar Tabel 72
4.1 User Interface Proses Login 77
4.2 Kotak Pesan Konfirmasi Proses Login Tidak Lengkap 81
4.3 Kotak Pesan Konfirmasi Proses Login Data Tidak
Terdaftar81
4.4 Kotak Pesan Konfirmasi Akses Ditolak 81
4.5 User Interface Halaman Utama 82
4.6 User Interface Data Pegawai 86
4.7 User Interface Proses Delete Data Pegawai 88
4.8 User Interface Proses Edit Data Pegawai 90
4.9 User interface proses cetak data pegawai 95
4.10 User interface proses data pelanggan 95
xxii
4.11 User interface proses delete data pelanggan 97
4.12 User interface proses update data pelanggan 99
4.13 User interface proses cetak data pelanggan 103
4.14 User interface proses data barang 103
4.15 User interface proses delete data barang 105
4.16 User interface proses update data barang 108
4.17 User interface proses data kas 110
4.18 User interface proses update data kas 111
4.19 User interface proses delete data kas 115
4.20 User interface proses data transaksi 116
4.21 User interface lihat data pelanggan 118
4.22 User interface lihat data barang 120
4.23 Kotak Pesan Stok kurang dari quantity 123
4.24 User interface fasilitas ubah password 126
xxiii
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Tabel Notasi ER-Diagram 15
2.2 Tabel Notasi Cardinality 18
2.3 Namespace database dalam .NET Framework 25
2.4 Objek-Objek Control Dalam Visual Basic.Net 28
2.5 Fitur Akses Database ADO.Net 29
2.6 Tipe-Tipe Data Integer 36
2.7 Tipe-Tipe Data Lain-Lain 37
2.8 Tipe-Tipe Data String 37
2.9 Tipe-Tipe Data Unicode String 37
2.10 Tipe-Tipe Data Binary String 37
2.11 Tipe-Tipe Operator Aritmetika 38
2.12 Tipe-Tipe Operator Perbandingan 38
2.13 Tipe-Tipe Operator Logika 39
2.14 Tipe-Tipe Operator Unary 39
2.15 Konfigurasi di SQL Server Client Network Utility 42
3.1 Input Output Proses Modelling 49
3.2 Tabel Pegawai 69
3.3 Tabel Grup_Pegawai 69
3.4 Tabel Barang 69
3.5 Tabel Kategori 70
xxiv
3.6 Tabel Satuan 70
3.7 Tabel Satuan_Jual 70
3.8 Tabel Pelanggan 70
3.9 Tabel Kas 70
3.10 Tabel Transaksi 71
3.11 Tabel Penjualan 71
3.12 Tabel Pesanan 71
3.13 Tabel Detail_Pesan 71
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Seiring dengan perkembangan era globalisasi, terutama dalam bidang
perekonomian menyebabkan persaingan dalam bidang usaha semakin ketat dan
kompetitif, sehingga menuntut para pelaku dibidang dunia usaha harus bisa
meningkatkan daya jual baik dari produk atau jasa yang dihasilkan maupun dari
segi sistem informasi yang mampu bersaing dalam mengelola dan menjalankan
perusahaan.
Dalam dunia usaha, proses penjualan adalah suatu proses yang sangat vital
yang menentukan siklus hidup kelangsungan perusahaan. Karena frekuensi proses
penjualan yang tinggi, maka penyediaan informasi yang dapat mendukung dan
meningkatkan penjualan sangatlah dibutuhkan.
Butik bona adalah suatu perusahaan retail yang bergerak dalam bidang
penjualan berbagai jenis batik dan produk garmen lainnya. Selama ini kegiatan
pengelolaan penjualan pada butik ini masih dilakukan secara manual yaitu dengan
menggunakan media ketas, kemudian baru dipindahkan ke komputer. Akan tetapi
informasi transaksi pemesanan penjualan dan transaksi penjualan secara langsung
masih disimpan di kertas, sehingga menyebabkan timbulnya permasalahan.
Permasalahan yang timbul antara lain kesalahan dalam pencatatan data penjualan
dikarenakan kesulitan dalam mencari arsip-arsip yang ada. Pengaksesan data
yang begitu banyak membutuhkan ketelitian dan ketepatan yang baik untuk
2
memperoleh hasil yang maksimal, namun pekerjaan menjadi kurang efisien dan
rentan terjadi kesalahan. Pengarsipan yang masih menggunakan sistem
tradisional juga berdampak pada efisiensi waktu. Akses untuk memperoleh
informasi mengenai riwayat transaksi akan membutuhkan waktu yang tidak
sedikit.
Dari latar belakang masalah diatas penulis ingin membuat sistem
informasi penjualan guna membantu perusahaan dalam mengorganisir serta
mengelola informasi penjualan untuk mendukung keputusan-keputusan yang
diambil oleh perusahaan.
Wujud dari sistem informasi penjualan ini adalah pembuatan aplikasi
Point Of Sales (POS) yang mampu mewakili sistem informasi penjualan yang
dirancang secara keseluruhan. Aplikasi sistem informasi penjualan yang
dihasilkan digunakan untuk melakukan pencatatan terhadap transaksi penjualan
serta menangani laporan-laporan.
1.2 Rumusan Masalah
Dari latar belakang diatas penulis merumuskan beberapa rumusan masalah
antara lain :
1 Bagaimana merancang sekaligus membuat aplikasi Point Of Sales
yang mampu mencatat aktivitas transaksi penjualan yang terjadi.
2 Bagaimana membangun aplikasi Point Of Sales (POS) untuk butik
dengan menggunakan Visual Basic.Net 2003 dengan rancangan
databasenya menggunakan SQL Server 2000.
3
1.3 Batasan Masalah
Agar perancangan dan pembuatan aplikasi dapat dilakukan secara tepat
maka pembahasan masalah pada tulisan ini akan dibatasi pada hal-hal sebagai
berikut :
1 Tidak menangani masalah keamanan jaringan.
2 Tidak membahas penggunaan barcode.
3 Tidak mengimplementasikan teknologi concurency control.
4 Tidak membahas perhitungan akuntansi
5 Sistem yang dibuat hanya membahas pada bagian penjualannya saja,
tidak membahas pada bagian pembelian dan inventorinya.
6 Sistem yang dibuat hanya menangani transaksi yang dilakukan secara
tunai.
7 Sistem yang dibuat tidak menangani masalah konversi satuan barang.
1.4 Tujuan Penelitian
Tujuan penelitian yang dilakukan adalah untuk membangun sistem
informasi penjualan pada butik dalam mencatat transaksi penjualan langsung
maupun transaksi pemesanan penjualan serta menangani pembuatan laporan
dengan menggunakan Visual Basic.Net yang dikolaborasikan dengan database
SQL Server 2000.
4
1.5 Manfaat Penelitian
Manfaat penelitian yang dilakukan adalah untuk merancang sekaligus
membangun aplikasi Point Of Sales (POS) untuk butik, yang akan digunakan
untuk melakukan pencatatan terhadap transaksi penjualan baik penjualan langsung
maupun penjualan melalui pemesanan.
1.6 Metodologi Penelitian
Metodologi Penelitian yang digunakan untuk membuat aplikasi Point Of
Sales (POS) adalah dengan langkah-langkah sebagai berikut :
1. Studi pustaka dengan Mempelajari buku-buku, laporan-laporan, karya
ilmiah maupun makalah yang dapat dijadikan sebagai bahan masukkan
informasi dalam menyelesaikan masalah-masalah yang ada.
2. Studi lapangan dengan melakukan wawancara dengan pemilik dan
pegawai butik bona untuk memperoleh informasi yang akurat berkaitan
dengan masalah yang ada.
3. Metode pengembangan sistem dengan menggunakan metode
pengembangan sistem SDLC (Software Development Life Cyly)
(Jogiyanto, 2003), yaitu terbagi menjadi beberapa fase :
a. Fase Analisis Sistem (Analysis Phase )
Analisis sistem dimaksudkan untuk mengidentifikasi dan mengetahui
permasalahan yang ada dan kebutuhan yang dikehendaki sehingga dapat
menyelesaikan hambatan dan kendala yang terjadi kearah perbaikan
sistem.
5
b. Fase Rancangan (Design Phase)
Merupakan langkah multi proses yang memusatkan kerja pada
perancangan sistem yaitu ERD (Whitten, 2004). Membuat perancangan
menu, perancangan tampilan dan user interface.
c. Fase Implementasi (Implementation Phase)
Setelah melakukan perancangan sistem yang diinginkan, maka hasil
rancangan tersebut diimplementasikan.
d. Fase Pengujian (Testing Phase)
Pengujian dimaksudkan agar dapat menguji apakah sistem yang dibuat
telah sesuai dengan yang dibutuhkan serta mencari segala kesalahan yang
mungkin terjadi.
1.7 Sistematika Penulisan
BAB I PENDAHULUAN
Pada bab ini berisi tentang latar belakang masalah, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian, metodologi
penelitian serta sistematika penulisan isi laporan.
BAB II LANDASAN TEORI
Pada bab ini berisi tentang dasar-dasar teori yang akan digunakan sebagai
dasar kajian dalam membahas penulisan skripsi ini.
BAB III ANALISA DAN PERANCANGAN SISTEM
Pada bab ini berisi tentang cara penerapan konsep dasar yang telah diuraikan
pada bab sebelumnya untuk menganalisa dan merancang sebuah aplikasi
6
yang berbasis desktop baik berupa perancangan database, perancangan input,
perancangan output maupun perancangan user interface.
BAB IV IMPLEMENTASI SISTEM
Pada bab ini akan berisi tentang implementasi dari perancangan yang telah
dibuat yang meliputi cara kerja program yaitu berupa hasil input program
maupun hasil output program
BAB V ANALISA HASIL IMPLEMENTASI
Bab ini berisi analisa mengenai kelebihan dan kekurangan dari sistem yang
dibuat.
BAB VI KESIMPULAN DAN SARAN
Pada bab ini berisi tentang kesimpulan dan saran dari penulisan tugas akhir
yang disusun.
7
BAB II
LANDASAN TEORI
2.1 SISTEM
2.1.1 Konsep Dasar Sistem
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi
untuk mencapai suatu tujuan tertentu (Jogiyanto, 1999). Sebuah
perusahaan juga merupakan suatu sistem. Komponen atau unsur-unsur di
dalamnya seperti pemasaran,penjualan, penelitian, pembukuan, dan
personalia yang mana semuanya bekerja sama untuk mencapai
keuntungan baik bagi para pekerjanya maupun bagi pemilik perusahaan.
2.1.2 Karakteristik Sistem
Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu,
yaitu mempunyai komponen-komponen(components), batas sistem
(boundary), lingkungan luar sistem (environment), penghubung
(interface), masukkan (input), keluaran (output), pengolah (proses) dan
sasaran (objectives) atau tujuan (goal).
1) Komponen Sistem
Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi,
yang artinya saling bekerja sama membentuk satu kesatuan.
Komponen-komponen sistem atau elemen-elemen sistem dapat berupa
suatu subsistem atau bagian-bagian dari sistem.
8
2) Batas sistem
Batas sistem (boundary) merupakan daerah yang membatasi antara
suatu sistem dengan sistem yang lainnya atau dengan lingkungan
luarnya. Batas sistem itu memungkinkan suatu sistem dipandang
sebagai satu kesatuan. Batas suatu sistem menunjukkan ruang lingkup
(scope) dari sistem tersebut.
3) Lingkungan Luar Sistem
Lingkungan luar (environment) dari suatu sistem adalah apapun diluar
batas dari sistem yang mempengaruhi operasi sistem.
4) Penghubung Sistem.
Penghubung (interface) merupakan media penghubung antara satu
subsistem dengan subsistem lainnya. Melalui penghubung ini
memungkinkan sumber-sumber daya mengalir dari satu subsistem ke
subsistem lainnya.
5) Masukkan Sistem
Masukan (input) adalah energi yang dimasukkan ke dalam sistem.
Masukan dapat berupa masukan perawatan (maintenance input) dan
masukan sinyal (signal input) agar sistem tersebut dapat beroperasi.
6) Keluaran Sistem
Keluaran (output) adalah hasil dari energi yang diolah dan
diklasifikasikan menjadi keluaran yang berguna. Keluaran dapat
merupakan masukan untuk subsistem yang lain.
9
7) Pengolah Sistem
Bagian pengolah sistem ini merupakan bagian yang akan mengubah
masukkan menjadi keluaran.
8) Sasaran Sistem
Suatu sistem pasti mempunyai tujuan (goal) atau sasaran (objective).
Jika suatu sistem tidak mempunyai sasaran, maka operasi sistem tidak
akan ada gunanya. Sasaran dari sistem sangat menentukan sekali
masukan yang dibutuhkan sistem dan keluaran yang akan dihasilkan
sistem. Sistem dikatakan berhasil bila mengenai sasaran atau
tujuannya.
2.2 INFORMASI
2.2.1 Konsep Dasar Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih
berguna dan lebih berarti bagi yang menerimanya (Jogiyanto, 1999).
2.2.2 Siklus Informasi
Data yang diolah melalui suatu model menjadi informasi,
penerima kemudian menerima informasi tersebut, membuat suatu
keputusan dan melakukan tindakan, yang berarti menghasilkan suatu
tindakan lain yang akan membuat sejumlah data kembali. Data tersebut
akan ditangkap sebagai input, diproses kembali lewat suatu model dan
seterusnya membentuk suatu siklus. Siklus ini disebut dengan siklus
10
informasi (information cycle). Siklus ini juga disebut dengan siklus
pengolahan data (data processing cycles).
Gambar 2.1 Siklus Informasi
2.2.3 Kualitas Informasi
Kualitas dari suatu informasi (quality of information) tergantung
dari tiga hal antara lain :
1) Akurat
Informasi harus bebas dari kesalahan-kesalahan dan tidak
menyesatkan dan juga harus jelas mencerminkan maksudnya.
2) Tepat pada waktunya
Informasi yang datang pada penerima tidak boleh terlambat. Karena
informasi merupakan landasan di dalam pengambilan keputusan.
3) Relevan
Informasi tersebut mempunyai manfaat untuk pemakainya.
11
2.2.4. Nilai Informasi
Informasi dikatakan bernilai bila manfaatnya lebih efektif
dibandingkan dengan biaya mendapatkannya.
2.3 SISTEM INFORMASI
2.3.1 Konsep Dasar Sistem Informasi
Sistem informasi adalah suatu sistem di dalam suatu organisasi
yang mempertemukan kebutuhan pengolahan transaksi harian,
mendukung operasi, bersifat managerial dan kegiatan startegi dari suatu
organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan
yang diperlukan (Robert A Leitch/K. Roscoe Davis, 1983).
2.4 METODOLOGI PENGEMBANGAN SISTEM
Terdapat beberapa metodologi untuk mengembangkan sistem yaitu
(Jogiyanto, 1990) :
a. Metodologi klasik.
b. Metodologi terstuktur.
Alat-alat yang digunakan dalam metodologi terstruktur ini adalah :
1. Diagram Arus Data.
2. Diagram Prosedur.
3. Diagram Relasi Entitas.
4. Diagram HIPO.
12
2.4.1 Langkah- Langkah Pengembangan Sistem
Terdiri dari beberapa langkah utama dalam pengembangan sistem (Jogiyanto,
1990) yaitu :
1. Perencanaan sistem
a. Studi suatu sistem.
b. Studi kelayakan.
2. Desain sistem :
A. Desain sistem secara umum :
1. Desain model secara umum.
2. Desain proses secara umum.
3. Desain output secara umum.
4. Desain input secara umum.
5. Desain database secara umum.
6. Desain teknologi secara umum.
7. Desain kontrol secara umum.
B. Desain sistem secara terinci :
1. Desain output secara terinci.
2. Desain input secara terinci.
3. Desain database secara terinci.
4. Desain teknologi secara terinci.
3. Seleksi Sistem.
4. Implementasi Sistem.
13
2.4.2 Alat dan Teknik Dalam Perancangan Sistem
2.4.2.1 Use Case Diagram
Use case diagram adalah sebuah diagram yang menggambarkan
interaksi antara sistem dan eksternal sistem dan pemakai (Whitten, J.L.,
Bentley, L.D., Barlow, V.M., 2004). Use case merupakan bagian dari
keseluruhan sistem. Digambarkan secara grafik dengan elips yang
horizontal dengan nama dari use case tertera diatas, dibawah atau di
dalam ellips. Gambar 2.2 merupakan simbol use case :
Gambar 2.2. Simbol Use Case
Actor merupakan segala sesuatu yang dibutuhkan untuk
berinteraksi dengan sistem untuk mengubah informasi. Dapat berupa
orang, organisasi atau sistem informasi yang lain atau juga suatu waktu
kejadian. Gambar 2.3 merupakan simbol dari actor.
Gambar 2.3. Simbol Aktor
Use case depends on relationship merupakan sebuah relasi use
case yang menentukan bahwa use case yang lain harus dibuat sebelum
use case yang sekarang. Digambarkan sebagai anak panah yang dimulai
Simbol Use case
Simbol Actor
14
dari satu use case dan menunjuk ke use case yang depend on kepadanya.
Setiap relasi depend on diberi label “<<depend on>>”
2.4.2.2 Teknik ERD (Entity Relationship Diagram)
ERD merupakan sebuah data model yang memanfaatkan beberapa
notasi untuk menggambarkan data dalam entity dan relasi yang dijelaskan
oleh data. Data model adalah sebuah teknik untuk mengorganisasikan dan
mendokumentasikan data dari sistem (Whitten, J.L., Bentley, L.D.,
Barlow, V.M., 2004). Juga disebut dengan database modeling. Gambar
2.4 merupakan contoh dari ERD.
Gambar 2.4 contoh ERD
15
2.4.2.2.1 Notasi E-R Diagram
Notasi ER Diagram versi Atzeni hal 164 :
Construct Graphical Representation
Entitas (Entity)
Relasi (Relationship)
Atribut (Attribute)
Gabungan atribut (Composite attribute) :
Atribut yang masih dapat diuraikan menjadi
sub-sub atribut yang masing-masing
memiliki arti. Misl : atribut alamat masih
dapat diuraikan lagi menjadi beberapa atribut
yaitu : jalan, kota, kode pos.
Cardinality of a
Cardinality of an attribute
Internal Identifier
External identifier
Generalization
Subset
Tabel 2.1 Notasi ER Diagram
16
2.4.2.2.2 Konsep Data Modeling :
a. Entitas (Entity)
Entitas adalah sebuah kumpulan dari orang, tempat, objek,
kejadian atau konsep yang diperlukan untuk menyimpan data. Nama
entity berupa kata benda tunggal (singular noun), (Whitten, J.L.,
Bentley, L.D., Barlow, V.M., 2004). Gambar 2.5 merupakan contoh
dari entity mahasiswa.
Gambar 2.5 contoh dari entity mahasiswa
b. Atribut (attributes)
Atribut merupakan sebuah properti yang deskriptif atau
karakteristik dari sebuah entity. Sinonimnya adalah element, property,
dan field, (Whitten, J.L., Bentley, L.D., Barlow, V.M., 2004). Gambar
2.6 merupakan contoh atribut yang ada pada entitas mahasiswa
Gambar 2.6 contoh atribut yang ada pada entitas mahasiswa
17
c. Primary Key
Adalah sebuah key yang paling umum digunakan untuk
mengidentifikasi secara unik instance dari entitas tunggal (Whitten,
J.L., Bentley, L.D., Barlow, V.M., 2004).
1. Concatenated key merupakan sekelompok atribut yang memiliki
identitas instance dari sebuah entity yang unik Sinonimnya
composite key dan compound key.
2. Candidate key merupakan satu dari nilai key yang akan berfungsi
sebagai primary key dari sebuah entity. Sinonimnya adalah
candidate identifier
3. Primary key merupakan sebuah candidate key yang paling
umum digunakan untuk mengidentifikasikan secara unik
instance dari entity yang tunggal.
4. Alternate key merupakan sebuah candidate key yang tidak dapat
dipilih untuk menjadi primary key. Sinonimnya adalah
secondary key.
d. Relasi (relationship)
Adalah sebuah asosiasi bisnis normal yang ada antara satu
atau lebih entity. Relasi mungkin juga mewakili suatu kejadian yang
menghubungkan antara entity atau logika gabungan antara entity.
e. Cardinality
Merupakan jumlah minimum dan maksimum kejadian dari
sebuah entitas yang dihubungkan dengan kejadian tunggal dari entity
18
yang lain. Karena seluruh relationship adalah dua arah
(bidirectional), maka kardinalitinya harus diidentifikasikan pada
kedua arah untuk setiap relasi.
Cardinality
Interpretation
(Minimum,
Maximum)
Instances
Graphic
Notation
One-to-one (1,1)
One-to-many (1,N)
Many-to-many (N,N)
Tabel 2.2 Notasi dari Cardinality
f. Foreign key
adalah sebuah primary key dari sebuah entity yang digunakan
oleh entity yang lain untuk mengidentifikasikan instance dari sebuah
relasi.
g. Nonspecific relationship
merupakan relasi dimana banyak instance dari sebuah entity
berasosiasi dengan banyak instance dari entity yang lainnya. Disebut
juga dengan relasi many-to-many relationship. Nonspecific
19
relationship harus diselesaikan. Kebanyakan dari nonspecific
relationship diselesaikan dengan sebuah associative entity.
h. Key-base data model
bertujuan untuk mengeliminasikan nonspecific relationship
jika ada, menambah asosiatif entity termasuk primary dan alternate
key, dan kardinalitas yang tepat.
i. Fully attributed data model
bertujuan untuk memasukkan seluruh atribut.
2.4.2.3 DFD (Data Flow Diagram)
Data Flow Diagram merupakan sebuah model proses yang
digunakan untuk mengambarkan aliran dari data yang melalui sebuah
sistem dan proses yang dibentuk oleh sistem (Whitten, J.L., Bentley, L.D.,
Barlow, V.M., 2004).
2.4.2.3.1 Simbol DFD
DFD terdiri dari 4 buah simbol yaitu :
1. Proses (Process)
Proses adalah kerja yang dilakukan oleh sistem dalam
merespon arus data yang datang atau suatu kondisi. Gambar 2.7
merupakan simbol proses menggunakan SDL Diagram Shapes :
Gambar 2.7 Simbol Proses menggunakan SDL Diagram Shapes
20
2. Arus data (Data Flow)
Arus data adalah data sebagai masukan ke proses atau keluaran
dari sebuah proses. Gambar 2.8 merupakan simbol dari arus data :
Gambar 2.8 Simbol dari arus data
Arus data juga digunakan untuk mewakili creation, reading, deleting,
atau updating dari data dalam file atau database (disebut datastore
atau penyimpanan data).
3. Kesatuan Luar (External Agent).
Kesatuan luar adalah orang, unit organisasi, sistem atau
organisasi luar yang berinteraksi dengan sistem. Disebut juga dengan
external entity. Gambar 2.9 merupakan simbol kesatuan luar menurut
Gane dan Sarson :
Gambar 2.9 Simbol kesatuan luar menurut Gane dan Sarson
4. Penyimpanan data (Data Store)
Penyimpanan data digunakan untuk menyimpan data hasil
proses maupun menyediakan data untuk diproses. Sinonim dengan file
dan database. Gambar 2.10 merupakan simbol penyimpanan data
menurut Gane dan Sarson
21
Gambar 2.10 Simbol penyimpanan data menurut Gane dan Sarson
2.5 POINT OF SALES (POS)
Aplikasi Point Of Sales (POS) merupakan sistem pengolahan data
yang banyak digunakan pada bisnis pengecer. POS biasanya didesain
secara modular sehingga bisa dikombinasikan ke dalam beberapa cara
untuk memenuhi kebutuhan secara khusus perusahaan yang bersangkutan.
Terdapat 3 jenis konfogurasi yang digunakan dalam POS, yaitu :
1. POS dengan kemampuan pencatatan lokal
Sistem yang menggunakan beberapa terminal data yang dapat
berfungsi sebagai penghimpun dan penyimpan data.
2. POS yang terpusat
Sistem yang memiliki suatu in-store controller yang dapat
dipergunakan untuk memantau terminal data.
3. POS yang bersifat remote on-line dan interaktif
Sistem yang mengendalikan beberapa terminal, namun terminal
tersebut bisa ditempatkan di satu atau beberapa pusat perbelanjaan.
2.6 ARSITEKTUR CLIENT – SERVER
Client-Server adalah suatu model pengolahan data yang
memisahkan antara “client” dan “server” dalam suatu jaringan dengan
22
jalan mendistribusikan fungsi-fungsi pada mesin dan tidak selalu
dikendalikan secara terpusat (Widjajanto, N., 2001).
Dalam arsitektur Client-Server, client berisi aplikasi dan
bertanggung jawab untuk bagian dari aplikasi yang berinteraksi dengan
pengguna termasuk didalamnya logika prosedur yang berkomunikasi
dengan server. Sedangkan server berisi DBMS dan basis data, yang akan
bertanggung jawab terhadap manajemen data, keamanan, penanganan
kesalahan.
Gambar 2.11 merupakan gambar arsitektur Client-Server
Gambar 2.11 Arsitektur Client – Server
2.6.1 Two Tier Model
Arsitektur ini terdiri dari 2 lapisan, yaitu client tier dan server tier.
Pada konfigurasi ini, client akan mengirimkan permintaan secara
langsung ke server. Server akan menangani permintaan tersebut dan
mengirimkan pelayanan berdasarkan permintaan tersebut kepada client
secara langsung.
23
Gambar 2.12 Arsitektur Two Tier Client – Server
2.6.2 Three Tier Model
Pada model three tier, aplikasi dipisahkan oleh business object.
Contoh paling tepat dari aplikasi three tier adalah aplikasi web.
2.7 TEKNOLOGI .NET, NET FRAMEWORK DAN VISUAL BASIC.NET
2.7.1 Teknologi .NET
Teknologi .NET adalah suatu platform baru dalam pemrograman
yang ditawarkan oleh microsoft dalam upaya meningkatkan produktivitas
penulisan program dan memungkinkan terbukanya peluang untuk
menjalankan program pada sistem operasi yang berbeda. Dengan adanya
teknologi .NET ini, program yang dibuat pada sistem operasi windows
dapat dijalankan pada sistem operasi unix/linux tanpa harus mengadakan
modifikasi pada program.
24
2.7.2 NET Framework
.NET Framework adalah lingkungan untuk membangun,
deploying/menyebarkan dan menjalankan services Web dan aplikasi
lainnya (Kusumo, Drs. Ario Suryo, 2004).
.NET Framework disusun oleh dua komponen utama, yaitu Common
Language Runtime (runtime bahasa umum) dan .NET Framework Class
Library.
Secara sederhana .NET Framework adalah platform tunggal di
mana semua orang dapat mengembankan aplikasi menggunakan suatu
system yang mirip dengan JVM (Java Virtual Machine). Hanya berbeda
dengan java, tidak ada penghalang bahasa dengan .NET sehingga aplikasi
dapat dikembangkan menggunakan bahasa : VB, C++, C#, J# dan 20
bahasa-bahasa pemrograman lainnya yang kompatibel dengan .NET
framework.
Tujuan dari .NET Framework adalah :
1. Menyediakan lingkungan pemrograman berorientasi objek, apakah
kode objek disimpan dan dijalankan secara lokal, dijalankan secara
lokal tetapi disebarkan melalui internet atau dijalankan secara remote
(dijalankan dari suatu tempat).
2. Menyediakan lingkungan untuk menjalan suatu kode yang
meminimalkan konflik saat software deployment/disebarkan dan
versioning/tentang versi.
25
3. Menyediakan lingkungan untuk menjalankan suatu kode yang
menjamin keamanan saat kode dijalankan, termasuk kode yang dibuat
oleh pihak yang tidak diketahui atau pihak ketiga yang setengah
dipercaya.
4. Menyediakan lingkungan untuk menjalankan suatu kode yang dapat
mengeliminasi masalah performa dari lingkungan scripted dan
interpreted.
Tabel 2.3 merupakan namespace database dalam .NET Framwork
Namespace Keterangan
System.Data
Merupakan namespace dasar baginamespace lainnya. Berisi class untukmenangani objek utama sepertiDataTable, DataColumn, DataView,dan constraint.
System.Data.Common Berisi kumpulan class yang digunakanuntuk mengakses sumber data
System.Data.OleDb
Class yang menangani .NET dataprovider untuk sumber data OLE DBatau yang kompatibel. Class dapatdigunakan untuk melakukan koneksike data sumber OLE DB, menjalankancommand ke sumber data dan melihathasilnya.
System.Data.SqlClient
Class yang menangani .NET dataprovider untuk sumber data SQLServer. Class dapat digunakan untukmelakukan koneksi ke data sumberSQL Server, menjalankan command kesumber data dan melihat hasilnya.
System.Data.SqlTypes Menyediakan class untuk tipe datanative dalam SQL Server.
System.Data.OdbcMenyediakan class untuk bekerja samadengan berbagai macam driver ODBC(Open DabaBase Connectivity).
Tabel 2.3 Namespace database dalam .NET Framework
26
2.7.3 Visual Basic.Net
Pengembangan aplikasi Visual Basic.Net menggunakan software Visual
Studio.Net. Visual Studio.Net menyediakan lingkungan yang disebut IDE
(Integrated Development Environment) untuk menyederhanakan proses
pengembangan aplikasi.
IDE ini menyediakan tool untuk mendesain, mengekesekusi dan men-
debug (mencari kesalahan program) aplikasi yang dibuat.
Untuk mengakses database, Visual Basic.Net menggunakan ADO.Net.
2.7.3.1 Objek-objek Kontrol Visual Basic.Net
Tabel 2.4 merupakan tabel objek-objek control Visual Basic.Net
Fungsi Nama PenjelasanLabel Menampilkan teks tetapi pemakai
tidak dapat mengubahnya secaralangsung
LinkLabel Menampilkan teks dengan modellink web dan akan memicu suatuevent/kejadian ketika pemakaimengkliknya. Teks di-link kejendela lain atau situs web.
Menampilkan teks(read only)
StatusBarTerletak di bagian bawah forminduk dan berisi informasi tentangkeadaan aplikasi sekarang.Informasi ditampilkan dalanjendela yang memiliki frame/panel
TextBox Menampilkan teks yang dapatdiedit oleh pemakai pada saatprogram dijalankan atau diubaholeh program
Edit teks RichTextBox Menampilkan teks dengan formatplain text atau rich-text format(RTF)
ListBox Menampilkan daftar teks dan itemgambar (icon)
Memilih dari suatudaftar
CheckedListBox Menampilkan daftar item yangdapat digulung, masing-masing
27
item disertai dengan kotak cekComboBox Menampilkan dafta drop-down dari
itemListView Menampilkan item dengan satu di
antara empat cara: Tampilan tekssaja, teks dengan icon kecil, teksdengan icon besar dan tampilanreport
PictureBox Menampilkan file gambar
Menangani gambar
ImageList Berfungsi sebagai tempatpenyimpanan gambar. KontrolImageList dan gambar yang ada didalamnya dapat digunakan padalebih dari satu objek
DateTimePicker Menampilkan kalender secaragrafikal dan pemakai dapatmemilih tanggal atau jam
MonthCalender Menampilkan kalender secaragrafikal pemakai dapat memilihrange tanggal
Mengatur tanggaldan waktu
Timer Untuk mengeksekusi waktukejadian pada rutin programtermasuk interval (selang waktu)
MainMenu Menyediakan antarmuka untukmendesain menu secara langsung
Membuat menu ContextMenu Menampilkan menu popup ketikapemakai mengklik mouse kananpada suatu objek
Button Digunakan untuk memulai,menghentikan atau menginterupsisuatu prosesCommand
ToolBar Berisi kumpulan kontrol tombolGroupBox Mengelompokkan kumpulan
control (seperti radio button), bisadiberi label judul dan frame yangtidak dapat digulung.
HelpProvider Menggabungkan help HTMLdengan aplikasi Windows
Tooltip Menampilkan teks ketika pemakaimenunjuk pada suatu control
Bantu ErrorProvider Menampilkan informasi kesalahanpemakai
PrintPreviewControl Menampilkan dokumen bagaimanaakan terlihat ketika dicetak
28
PrintDocument Mengatur property mencetak danmencetak dokumen dalam aplikasiWindowsMengatur print dan
report CrystalReportViewer Menampilkan jendela bagaimanatampilan objek Crystal Reportterlihat ketika dicetak
Menampilkan data DataGrid Menampilkan data secara tabulardari suatu dataset
Tabel 2.4 Objek-objek Kontrol dalam Visual Basic.Net
2.7.3.2 ADO.NET
ADO.NET (Active X Data Objects untuk .NET Framework)
adalah kumpulan class yang berisi komponen untuk melakukan koneksi,
akses dan manipulasi database.
Tabel 2.5 berikut berisi fitur akses data ADO.NET :
Fitur Keterangan
Representasi data dalam memoriMenggunakan objek DataSet yangdapat berisi satu atau lebih tabel yangmewakili objek DataTable
Relasi di antara banyak tabel
Adanya objek DataRelation untukmenghubungkan baris dalam sebuahobjek DataTable dengan baris dalamobjek DataTable lainnya.
Navigasi data
DataSet menggunakan akses non-sequential ke baris dalam tabel. Aksesdata tersebut mirip akses data padasuatu collection atau array. Hal inidimungkinkan karena adanya collectionRows dari DataTable yang digunakanuntuk mengakses baris melalui index,mengikuti relasi untuk navigasi daribaris dalam suatu tabel yangberhubungan dengan baris pada tabellainnya.
Koneksi Database
Menggunakan class Data Adapter,kemudian Data Adapter akanmelakukan pemanggilan ke providerOLEDB atau SQL Server
SkabilitasADO.NET menggunakan modelkoneksi disconnected database, artinyahanya sekali mengirim data dari
29
database, setelah itu koneksinya akanputus. Dengan demikian koneksi tidakakan memakan sumber systemsehingga akan mengurangi jumlahkoneksi yang aktif. Juga akanmempermudah transfer data dari satukomponen ke lainnya
Tabel 2.5 Fitur Akses Database ADO.NET
Untuk memberikan dukungan terhadap model koneksi disconnected, pada
komponen ADO.NET dipisahkan antara akses data dari manipulasi data.
Pemisahan ini terlihat dari dua komponen utam ADO.NET yaitu NET Data
Provider dan Data Storage.
Ada empat objek utama yang dimiliki NET Data Provider, yaitu objek
Connection, Command, DataReader dan DataAdapter.
2.7.3.2.1 Objek Connection
Objek Connection digunakan untuk membuat koneksi ke database.
2.7.3.2.2 Objek Command
Setelah melakukan koneksi, dapat digunakan objek Command
untuk menjalankan perintah yang akan memanggil data dari sumber data.
Perintah ditentukan oleh property CommandText. Properti CommandText
berisi nama tabel, Pernyataan SQL atau nama dari stored procedure dari
SQL Server.
2.7.3.2.3 Objek DataAdapter
Objek DataAdapter akan melakukan koordinasi antara
representasi data dalam memori dan sumber data permanen. Objek
DataAdapter bekerja sebagai duta antara data dengan mekanisme akses
30
data sehingga dapat memanggil dan menyimpan data dari sumber data dan
objek DataSet.
2.7.3.2.4 Objek DataReader
Objek DataReader merupakan mekanisme secara cepat untuk
memanggil aliran data yang bersifat forward-only dan read-only. NET
Provider SQL Server melakukan optimasasi dalam mekanisme
DataReader sehingga dapat menggunakannya sesering yang diinginkan
untuk menampilkan secara cepat data yang bersifat read-only.
2.7.3.2.5 Objek DataSet
DataSet merupakan representasi data dalam memori yang
memberikan model pemrograman relational yang konsisten, tanpa
memperhatikan asal dari sumber data. Suatu DataSet mewakili
serangkaian data secara lengkap termasuk tabel yang berhubungan,
constrains(aturan) dan relasi antartabel.
2.7.3.2.6 Collection DataTable dan DataRelation
Berbeda dengan Recordset dari ADO yang hanya berisi objek
tabel tunggal, DataSet dari ADO.NET berisi satu atau lebih tabel
(DataTable) yang disimpan sebagai collection DataTable
(DataTableCollection).
Untuk membuat relasi antartabel dapat digunakan collection
DataRelation. DataSet berisi suatu collection dari objek DataRelation
dalam property Relation. Tiap-tiap objek DataRelation dikaitkan dengan
31
DataTable yang berbeda dengan menggunakan referential integrity
seperti primary key, foreign key dan constraints.
2.8 DATABASE DAN MICROSOFT SQL SERVER 2000
2.8.1 Database
SQL server memakai sebuah tipe database yang dinamakan
database relational. Database relational adalah database yang
mengorganisasikan data dalam bentuk tabel (Martina, Ir. Inge., 2003).
Tabel dibentuk dengan mengelompokkan data yang mempunyai subjek
yang sama. Tabel berisi baris-baris dan kolom-kolom informasi. Tabel-
tabel dapat saling berhubungan jika diinginkan.
Database adalah sekumpulan data yang saling berhubungan (Ir.
Inge Martina, 2003). Dalam SQL server database bukanlah sebuah file
tetapi merupakan sebuah konsep logis yang berisi sekumpulan objek-
objek yang berhubungan. Objek-objek dalam sebuah database antara lain :
tabel, kolom, tipe data, stored procedure, trigger, rule, kunci utama
(primary key), kunci tamu (foreign key), konstrain, default, view dan
index.
2.8.2 Microsoft SQL Server 2000
2.8.2.1 Sejarah SQL Server
SQL (Structured Query Language) pertama kali dikembangkan
pada akhir tahun 1970-an di laboratorium IBM San Jose, California. SQL
32
yang biasanya disebut “sequel”, pada mulanya dikembangkan untuk
produk DB2 (Database) yang dimiliki oleh IBM (Sakti, 2002). Sedangkan
SQL Server adalah salah satu investasi dan komponen strategis utama dari
Microsoft, bersama dengan Windows NT. SQL Server yang baru adalah
versi yang mendobrak hubungan antara kode sumber produk asli yang
berdasarkan kepada SQL Server Sybase. Antarmuka SQL Server ini
membawa banyak inovasi dan kemudahan penggunaan dan juga
menggabungkan pula sarana-sarana yang canggih untuk User tingkat
lanjut. SQL Server menggabungkan OLAP Server dan modul Data
Transformation Services (DTS), serta manajemen terintegrasi dari banyak
server.
2.8.2.2 Arsitekur SQL Server
Database SQL Server dibagi ke dalam beberapa komponen
logikal, seperti tabel, view, dan elemen-elemen lain yang terlihat oleh
User (Ramalho, 2001). Elemen-elemen ini secara fisik disimpan di dalam
dua atau lebih file di dalam disk. Server SQL Server terdiri dari beberapa
database yang digunakan oleh beberapa User. Gambar berikut
menampilkan pandangan User dalam tiga tabel dan implementasi fisik
dari tabel-tabel tersebut menggunakan file data, file indeks, dan file log.
33
Gambar 2.13 Arsitekur Database SQL Server
Bila database telah dibuat maka user dapat memiliki izin akses
yang telah diberikan. Hal ini membuat SQL Server dapat menyimpan
beberapa database dan membatasi akses ke masing-masing database ke
user tertentu saja.
Berikut ini komponen-komponen penting dari SQL Server :
1. Database : mengandung obyek-obyek yang digunakan untuk
mewakili, meyimpan dan mengakses data.
2. Tabel : menyimpan record-record data dan hubungannya dengan tabel
lain.
3. Database Diagram : secara grafis menampilkan objek database,
sehingga dapat dimanipulasi tanpa menggunakan bahasa Transact-
SQL.
4. Indeks : file-file tambahan yang meningkatkan kecepatan akses dari
record-record tabel.
34
5. View : menyediakan cara melihat data yang berbeda di dalam satu
atau lebih tabel.
6. Stored Procedure : program-program Transact-SQL yang disimpan di
dalam server yang menjalankan tugas-tugas yang telah ditentukan.
7. Trigger : Sebuah jenis prosedur tersimpan khusus yang secara
otomatis dijalankan apabila operasi tertentu dilakukan di dalam tabel.
8. Full-Text Indexes : Indeks khusus yang membuat pencarian menjadi
lebih mudah di dalam kolom-kolom dengan tipe data Varchar dan
Text.
Gambar 2.14 Arsitektur SQL Client/Server
2.8.3 Konsep Pemrograman SQL Server
35
SQL Server adalah sebuah database relasional yang dirancang
untuk mendukung aplikasi dengan arsitektur client/server, dimana
database terdapat pada komputer pusat yang disebut server, dan informasi
digunakan bersama–sama oleh beberapa user yang menjalankan aplikasi
didalam komputer lokalnya yang disebut client. Arsitektur semacam ini
memberikan intergritas data yang tinggi, karena semua user bekerja
dengan informasi yang sama. Melalui aturan-aturan bisnis, kendali
diterapkan kepada semua user mengenai informasi yang ditambahkan ke
dalam database. Arsitektur client/server sangat mengurangi lalu lintas
jaringan, karena hanya memberikan data yang diminta oleh user saja
(Ramalho, 2001).
SQL Server menggunakan bahasa standar yang meliputi perintah-
perintah untuk menyimpan, menerima, memelihara dan mengatur akses-
akses ke basis data serta digunakan untuk memanipulasi dan menampilkan
data RDBMS. SQL Server membuat programmer atau database
administrator dapat melakukan hal-hal berikut :
1. Memodifikasi struktur database.
2. Menggantikan setting sistem keamanan.
3. Menambah wewenang user pada database atau tabel.
4. Menampilkan informasi dari database.
5. Mengubah isi dari database.
6. Membuat keamanan data.
7. Menangani proses transaksi diantara aplikasi.
36
8. Mentransfer data antara database yang berbeda.
2.8.4 Data Defination Language (DDL)
DDL adalah bagian dari SQL yang dipakai untuk mendefinisikan
data dan objek database (Ramalho, 2001). Bila perintah digunakan maka
akan dibuat ke dalam kamus data dari SQL Server.
2.8.5 Data Manipulation Language (DML)
DML adalah bagian SQL yang digunakan untuk memanipulasi
data (Ramalho, 2001).
2.8.6 Tipe-Tipe Data
Pada SQL Server data yang disimpan di dalam tabel bisa memiliki
beberapa tipe yaitu :
Integer Keterangan
Bit
Int
Smallint
Tinyint
Decimal atau Numeric
Money
Smallmoney
Float
Real
Datetime
Smalldatetime
Integer dengan nilai 0 dan 1.
Integer dengan nilai antara –23 sampai 231.
215 sampai 215-1.
Integer antara 0 sampai 255.
Angka dengan akurasi tetap antara –1038-1 sampai 1038-
1.
Nilai data moneter dari –263 sampai 263-1.
-214.748,3648 sampai 214.748,3647.
-1.79E+308 sampai 1.79E+308.
-3.40E+38 sampai 3.4E+38.
1 Januari 1753 sampai 31 Desember 9999.
1 Januari 1900 sampai 6 Juni 2079.
Tabel 2.6 Tipe-tipe data integer
37
Lain-lain Keterangan
Cursor
Timestamp
Uniqueidentifier
Referensi ke kursor
Angka eksklusif yang dikenali oleh database
Pengenal global yang eksklusif
Tabel 2.7 Tipe-tipe data lain-lain
String Keterangan
Char
Varchar
Text
Field tetap dengan ukuran maksimal sebesar 8000 byte.
Field tetap dengan ukuran maksimal sebesar 8000 byte.
Variabel dengan ukuran hingga 231-1 byte.
Tabel 2.8 Tipe-tipe data string
Unicode String Keterangan
Nchar
Nvarchar
Ntext
Karakter unicode dengan ukuran tetap hingga 4000 byte.
Karakter unicode dengan ukuran bervariasi hingga 4000 byte.
Variabel dengan ukuran sampai 230-1 byte.
Tabel 2.9 Tipe-tipe data uncode string
Binary String Keterangan
Binary
Varbinary
Image
Ukuran tetap hingga 8000 byte.
Ukuran bervariasi hingga 8000 byte.
Ukuran bervariasi hingga 231-1 byte.
Tabel 2.10 Tipe-tipe data binary string
2.8.6.1 Ekspresi dan Operator
SQL Server mendukung semua operator. Operator bertindak
berdasarkan operand, yaitu elemen yang dianalisa oleh operator
(Ramalho, 2001). Ada dua jenis operator, operator unary yang bertindak
38
berdasarkan satu operand saja, dan operator binary yang bertindak
berdasarkan dua atau lebih operand. Berikut ini adalah tipe-tipe operator
yang didukung oleh SQL Server :
Aritmetika Keterangan
Perkalian
Pembagian
Pengurangan
Penjumlahan
Modulus
*
/
-
+
%
Tabel 2.11 Tipe-tipe operator aritmetika
Perbandingan Keterangan
Sama dengan
Tidak sama dengan
Lebih besar dari
Lebih kecil dari
Lebih besar atau sama dengan
Lebih kecil atau sama dengan
Tidak kurang dari
Tidak lebih dari
Tidak sama dengan
=
<>
>
<
>=
<=
!<
!>
!=
Tabel 2.12 Tipe-tipe operator perbandingan
Logik Keterangan
NOT
AND
OR
BETWEEN
Membalikan nilai boolean.
Bernilai benar apabila kedua ekspresi benar.
Bernilai benar apabila salah satu ekspresi benar.
Bernilai benar apabila operand berada di dalam jangkauan.
39
LIKE
IN
SOME
ANY
ALL
Bernilai benar apabila operand menemukan standar.
Bernilai benar apabila beberapa item bernilai benar.
Bernilai benar apabila item apapun bernilai benar.
Bernilai benar apabila beberapa item bernilai benar.
Bernilai benar apabila semua bernilai benar.
Tabel 2.13 Tipe-tipe operator logika
Unary Keterangan
+ (positif)
- (negatif)
~ (bitwise NOT)
Nilai numerik postif.
Nilai numerik negatif.
Mengembalikan nilai komplemen dari angka.
Tabel 2.14 Tipe-tipe operator unary
2.8.6.2 Fungsi
Fungsi SQL adalah sebuah rutin yang melakukan operasi tertentu
dan mengembalikan satu hasil (Ramalho, 2001). Fungsi sama seperti
prosedur, kecuali bahwa prosedur tidak mengembalikan suatu hasil.
Fungsi bisa menerima argumen yang akan digunakan di dalam proses.
Sintaks dasar dari sebuah fungsi adalah :
Funcname {arg1,arg2,... argn)
Funcname adalah nama dari fungsi misalnya ABS, LOWER, UPPER.
arg1,arg2 dan argn adalah parameter opsional untuk fungsi.
Fungsi-fungsi SQL dibagi ke dalam fungsi satu baris atau skalar
dan fungsi grup atau aggregate. Fungsi satu baris mengembalikan hasil
dari setiap baris ke dalam bentuk tabel atau view. Fungsi grup
mengembalikan hanya satu hasil ke dalam grup baris. Misalnya fungsi
LOWER() menggubah argumennya menjadi huruf kecil semua.
40
2.8.6.3 Prosedur
Prosedur sangat bermanfaat pada lingkungan client-server, yaitu
untuk meningkatkan kinerja maupun untuk pemeliharaan (Ramalho,
2001). Karena satu prosedur bisa digunakan oleh beberapa program,
pengelolaan sistem bisa menjadi lebih mudah karena satu perubahan akan
segera direfleksikan kepada semua server
Dalam pembuatan prosedur perlu menentukan nama prosedur,
parameternya, serta badan yang mengandung perintah-perintah yang akan
dijalankan. Dengan parameter bisa dilakukan komunikasi antara prosedur
dengan dunia luar. Apabila program menjalankan prosedur, ia bisa
mengirimkan nilai-nilainya didalam bentuk parameter. Nilai-nilai ini bisa
digunakan oleh prosedur untuk melakukan tugasnya. Parameter harus
memilki nama yang eksklusif dan diawali dengan simbol @ dan juga
menyertakan definisi tipe data.
Contohnya :
CREATE PROCEDURE test1
@code varchar (8)
Artinya sebuah parameter bernama code akan dibuat dengan tipe Varchar
dengan ukuran delapan.
Semua parameter yang dibuat dianggap sebagi parameter input,
artinya menerima data dari program yang menjalankan prosedur. Dengan
menambahkan kata OUTPUT ke dalam definisi parameter, prosedur bisa
41
mengembalikan nilai dari parameter ke dalam program yang
memanggilnya. Contohnya sebagai berikut :
CREATE PROCEDURE test1
@code varchar(8)
@totalcode int OUTPUT
2.8.6.4 Indeks
Indeks adalah sebuah file pelengkap yang berhubungan dengan
tabel, yang fungsinya mempercepat waktu akses ke dalam baris-baris
tabel (Ramalho, 2001). Indeks dibentuk oleh kunci-kunci berdasarkan
kepada isi dari satu atau lebih kolom pada tabel. Jenis-jenis indeks dalam
SQL Server adalah :
1. Indeks Clustered : mengorganisir baris-baris pada tabel ke dalam
urutan tertentu misalnya secara alfabetis atau angka.
2. Indeks Non Clustered : memilki struktur yang terpisah dari tabel.
Urutan fisik dari baris tabel tidak mengikuti urutan dari file indeks.
Data (baris tabel) diletakan pada satu tempat dan indeks diletakan
pada tempat yang lain.
2.8.6.5 View
View adalah tabel virtual yang isinya didefinisikan oleh query
database. View bukanlah sebuah tabel fisik, tetapi sekumpulan instruksi
yang menghasilkan sekumpulan data (Ramalho, 2001). Penggunaan view
42
sangat bermanfaat bila ingin memfokuskan pada informasi tertentu pada
database. View mengizinkan banyak User yang berbeda melihat informasi
yang sama dengan fokus berbeda. View mengizinkan kombinasi
informasi untuk memenuhi kebutuhan User tertentu, dan bahkan bisa
diekspor ke dalam aplikasi lain.
2.8.7 SQL Server Client Network Utulity
Program yang dirancang untuk mengelola konfigurasi client untuk
koneksi network yang didefinisikan oleh User dan untuk DB-Library dan
Net-Libaries. Konfigurasi yang ada pada tab General adalah :
Pilihan Fungsi
Default Network Library
Server Alias Configurations
Network Library
Connection Parameters
Add
Remove
Edit
Menentukan kepustakaan default untuk
berkomuikasi dengan SQL Server
Menunjukkan alias dari komputer client
Menunjukkan kepustakaan network yang
digunakan
Menunjukkan parameter-parameter yang mungkin
yang berhubungan dengan alamat koneksi
Mengizinkan penambahan koneksi network baru
Mengizinkan penghapusan koneksi
Mengizinkan penyuntingan koneksi
Tabel 2.15 Konfigurasi di SQL Server Client Network Utility
43
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.1.1. Gambaran Umum Sistem Yang Lama
Butik bona merupakan sebuah perusahaan yang bergerak dalam bidang
penjualan produk-produk garmen secara retail dan grosir. Barang yang dijual oleh
butik ini meliputi bahan batik (batik tulis maupun cap) serta pakaian jadi, antara
lain hem,kemeja pria, blus, daster, busana muslim,sarung dan rok. Selain itu butik
ini juga melayani pemesanan seragam, pakaian batik dan produk garmen lainnya
baik dalam jumlah besar maupun kecil
Proses transaksi penjualan yang terjadi selama ini masih menggunakan
sistem kerja manual. Proses pencatatan transaksi penjualan yang terjadi selama ini
masih mengandalkan media kertas, begitu pula dengan proses penyimpanan
dokumen maupun pembuatan laporan. Walaupun butik ini memiliki komputer,
namun selama ini proses pencatatan transaksi yang dilakukan masih harus dicatat
terlebih dahulu di kertas, kemudian baru dipindahkan kedalam komputer untuk
selanjutnya digunakan untuk pembuatan laporan dengan menggunakan program
bantu Microsoft Office Excel.
Proses bisnis untuk transaksi penjualan langsung yang selama ini
dijalankan adalah sebagai berikut :
1. Konsumen datang ke kasir dengan membawa sejumlah item yang
akan dibeli.
44
2. Kasir mencatat kode, nama barang, satuan serta banyaknya barang
untuk setiap barang yang dibeli konsumen dalam nota penjualan
dan selanjutnya menghitung total biaya pembelian yang dilakukan
oleh konsumen.
3. Kasir memberitahukan konsumen total biaya pembelian dan
memberikan nota pembelian kepada konsumen.
4. Konsumen melakukan pembayaran sebesar seluruh biaya
pembelian.
5. Konsumen meninggalkan kasir dengan membawa bukti
pembayaran dan barang yang dibeli.
Proses bisnis untuk transaksi pemesanan yang selama ini dijalankan adalah
sebagai berikut :
1. Konsumen datang ke kasir untuk memesan barang.
2. Kasir mencatat nama barang, satuan jual, banyaknya jumlah
pesanan serta tanggal pengambilan barang untuk setiap barang
yang dipesan konsumen dalam nota pesanan dan selanjutnya
menghitung total biaya pesanan yang dilakukan oleh konsumen.
3. Kasir menanyakan besarnya uang muka yang akan dibayar oleh
konsumen.
4. Konsumen memberikan uang muka kepada kasir.
45
5. Kasir mencatat uang muka yang telah dibayarkan oleh konsumen
dalam nota pesanan dan memberikan nota pesanan kepada
konsumen.
6. Konsumen meninggalkan kasir dengan membawa bukti
pembayaran pesanan.
7. Proses pelunasan transaksi pemesanan dilakukan sesuai dengan
waktu yang telah ditentukan.
3.1.2. Gambaran Umum Sistem Yang Akan Dikembangkan
Untuk mengatasi masalah yang dihadapi oleh butik bona, maka akan
dikembangkan suatu sistem informasi penjualan yang terkomputerisasi. Wujud
dari sistem yang akan dikembangkan adalah berupa aplikasi Point of Sales
UntukButik. Dalam sistem ini, user dapat mengakses data dan melakukan proses-
proses data sesuai dengan hak aksesnya masing-masing. Untuk menjaga
keamanan data maka tiap user harus melakukan login terlebih dahulu. Dalam
proses login, sistem akan mengatur pendelegasian hak untuk tiap user. Untuk
menjalankan aplikasi ini, terdapat tiga level user, yaitu :
a. Manajer
§ Melakukan manipulasi terhadap data yang terdapat dalam database, seperti
data pegawai, data kas, data barang, dan data satuan_barang.
§ Melakukan akses terhadap laporan transaksi penjualan barang.
46
b. Kasir
§ Mencatat dan merekam data pesanan barang, data pesanan penjualan
barang dan transaksi penjualan barang,
§ Menambah dan mengupdate data pelanggan.
c. Admin
Mengupdate data pegawai dan data satuan
3.2. Requierment Analysis
Tahap requirement analysis meliputi pembuatan use case diagram. Use
Case diagram dari sistem ini dapat dilihat seperti pada Gambar 3.1
3.2.1. Usecase Diagram
47
Gambar 3.1 Use Case Diagram
48
3.3. Logical Design
Tahap logical design meliputi desain proses dan data modeling
3.3.1. Desain Proses
3.3.1.1. Proses Modelling
Process modeling dapat dimulai dari pembuatan input dan output dari
sistem, seperti pada tabel 3.1.
Entitas Input Output
Manajer Username dan password
manajer, data kasir, data
manajer, data perubahan untuk
data kasir, data perubahan
untuk data manajer, data kasir
yang dipilih untuk dihapus,
data kas, data perubahan untuk
data kas, data shift, data
kategori, data barang, data
perubahan untuk data barang,
data barang yang dipilih untuk
dihapus, data perubahan untuk
data kategori, data
satuan_barang, data perubahan
untuk data satuan_barang, data
satuan_barang yang dipilih
untuk dihapus
Informasi data manager,
informasi data kasir, informasi
data barang, informasi data
pelanggan, informasi data
kategori, informasi data satuan,
informasi data satuan_jual
,informasi data penjualan,
informasi data pesanan,
informasi data ubah username
dan password
Kasir Username dan password kasir,
data pelanggan, data
perubahan untuk data
pelanggan, data pelanggan
Informasi data barang, informasi
data satuan, informasi data
satuan_barang, informasi data
shift, informasi data pelanggan,
49
yang dipilih untuk dihapus,
data perubahan username dan
password kasir, data transaksi
penjualan, data pesanan,
mencetak nota penjualan dan
mencetak nota pesanan
informasi data ubah username
dan password, informasi data
transaksi penjualan, informasi
data pesanan
Admin Username dan password
admin, data pegawai, data
satuan
Informasi data pegawai,
informasi data satuan
Tabel 3.1 Input Output Proses Modelling
3.3.1.2. Context Diagram
Context diagram berguna untuk menggambarkan secara jelas bagaimana
sistem tersebut bekerja, mulai dari inputan awal sampai outputnya, seperti pada
gambar 3.2
Gambar 3.2 Context Diagram
50
3.3.1.3. Diagram Berjenjang
Gambar 3.3 Diagram Berjenjang bagian 1
51
Gambar 3.4 Diagram Berjenjang Bagian 2
52
3.3.1.4. Overview Diagram
Gambar 3.5 Overview Diagram Bagian 1
53
OVERVIEW DIAGRAM Bagian II
Gambar 3.6 Overview Diagram Bagian 2
54
OVERVIEW DIAGRAM LEVEL I PROSES LOGIN
Gambar 3.7 Overview Diagram level 1 Proses Login
55
OVERVIEW DIAGRAM LEVEL I PROSES DATA PEGAWAI
Gambar 3.8 Overview Diagram level 1 Proses Data Pegawai
56
OVERVIEW DIAGRAM LEVEL I PROSES DATA BARANG
Gambar 3.9 Overview Diagram level 1 Proses Data Barang
57
OVERVIEW DIAGRAM LEVEL I PROSES DATA SATUAN
Gambar 3.10 Overview Diagram level 1 Proses Data Satuan
58
OVERVIEW DIAGRAM LEVEL I PROSES DATA KAS
Gambar 3.11 Overview Diagram level 1 Proses Data Kas
59
OVERVIEW DIAGRAM LEVEL I PROSES DATA PELANGGAN
Gambar 3.12 Overview Diagram level 1 Proses Data Pelanggan
60
OVERVIEW DIAGRAM LEVEL I PROSES DATA KATEGORI
Gambar 3.13 Overview Diagram level 1 Proses Data Kategori
61
OVERVIEW DIAGRAM LEVEL I PROSES DATA UBAH PASSWORD
Gambar 3.14 Overview Diagram level 1 Proses Ubah Password
62
OVERVIEW DIAGRAM LEVEL I PROSES DATA SATUAN_JUAL
Gambar 3.15 Overview Diagram level 1 Proses Data Satuan_Jual
63
OVERVIEW DIAGRAM LEVEL I PROSES DATA TRANSAKSI PENJUALAN
Gambar 3.16 Overview Diagram level 1 Proses Data Transaksi Penjualan
64
OVERVIEW DIAGRAM LEVEL I PROSES MELIHAT LAPORAN
Gambar 3.17 Overview Diagram level 1 Proses Data Laporan
65
OVERVIEW DIAGRAM LEVEL 2 PROSES PESANAN PENJUALAN
Gambar 3.18 Overview Diagram level 2 Proses Data Pesanan
66
OVERVIEW DIAGRAM LEVEL 2 PROSES TRANSAKSI PENJUALAN MELALUI PESANAN
Gambar 3.19 Overview Diagram level 2 Proses Data Transaksi Penjualan melalui Pesanan
67
OVERVIEW DIAGRAM LEVEL 2 PROSES TRANSAKSI PENJUALAN BARANG LANGSUNG
10.3
10.3.2p
Proses PembayaranPenjualan Barang
Langsung
BKasir
Data Penjualan Langsung
Informasi Data Penjualan Langsung
Informasi Data Pembayaran PenjualanLangsung
Data Pembayaran Penjualan Langsung
B
Data Transaksi Penjualan
Data Penjualan Barang
Data Barang
Detail Data Satuan_Jual
10.3.1p
Proses PenjualanLangsung
Detail Data PenjualanLangsung
10.3.3p
Proses Mencetak NotaPenjualan Barang
Langsung
Persetujuan Mencetaj NotaPenjualan secara Langsung
Informasi Data Nota Penjualan secaraLangsung
Detail DataPembayaran PenjualanLangsung
Detail Data Transaksi Penjualan
Detail Data Penjualan Barang
Detail Data Pelanggan
Detail Data Pegawai
User_name, dan PasswordKasir Yang Valid
Satuan_JualD7
PenjualanD9
PelangganD4
PegawaiD1
PenjualanD9
kasD4
Transaksi PenjualanD7
Detail Data kas
Gambar 3.20 Overview Diagram level 2 Proses Data Transaksi penjualan secara langsung
68
3.3.2. Desain Data Modelling
3.3.2.1. ER Diagram
Gambar 3.21 Entity Relational Model
69
3.4. Desain Database
3.4.1. Fisikal Data Model
Dalam desain database ini terdapat 12 tabel, yakni terdiri dari tabel
pegawai, tabel group_user, tabel barang, tabel kategori, tabel satuan, tabel
satuan_jual, tabel pelanggan, tabel kas, tabel transaksi, tabel penjualan, tabel
pesanan dan tabel detail pesan. Secara lebih jelas dapat dilihat pada tabel-tabel
berikut ini :
Tabel 3.2 tabel pegawai
Nama Field Tipe Data Panjangkode_pegawai * varchar 8nama_pegawai varchar 35alamat varchar 25contact_person varchar 13username varchar 6password varchar 6kode_group ** Int 4
Tabel 3.3 tabel group_pegawai
Nama Field Tipe Data Panjangkode_group * varchar 8jabatan varchar 35
Tabel 3.4 tabel Barang
Nama Field Tipe Data Panjangkode_barang * varchar 8nama_barang varchar 35kode_kategori ** varchar 25jenis varchar 13
70
Tabel 3.5 tabel Kategori
nama Field Tipe Data Panjangkode_kategori * varchar 8nama_kategori varchar 35keterangan varchar 45
Tabel 3.6 tabel Satuan
Nama Field Tipe Data Panjangkode_satuan * varchar 8nama_satuan varchar 35
Tabel 3.7 tabel Satuan_Barang
Nama Field Tipe Data Panjangkode_barang ** varchar 8kode_satuan ** varchar 8Stock varchar 25harga_jual varchar 13
Tabel 3.8 tabel Pelanggan
Nama Field Tipe Data Panjangkode_pelanggan * varchar 8nama_pelanggan varchar 35alamat varchar 25kota varchar 13kodepos varchar 6Contact_person varchar 6
Tabel 3.9 tabel Kas
Nama Field Tipe Data Panjangkode_kas * varchar 8Tanggal varchar 35kas_awal money 25
71
Tabel 3.10 tabel transaksi
Nama Field Tipe Data Panjangkode_nota * varchar 8kode_pelanggan ** varchar 35kode_pegawai ** varchar 25total varchar 13bayar varchar 6
Tabel 3.11 tabel detail_jual
Nama Field Tipe Data Panjangkode_jual * varchar 8kode_nota ** varchar 35kode_barang ** varchar 25kode_satuan ** varchar 13jumlah int 50diskon float 8harga_total decimal 8
Tabel 3.12 tabel Pesanan
Nama Field Tipe Data Panjangkode_pesan * varchar 8kode_pelanggan ** varchar 35kode_pegawai ** varchar 25uang_muka varchar 13tanggal_pesan datetime 10tanggal_jadi datetime 10kode_nota ** varchar 8perkiraan_total_harga decimal 9
Tabel 3.13 tabel Detail_Pesan
Nama Field Tipe Data Panjangkode_DetailPesan * varchar 8kode_satuan ** varchar 8kode_barang ** varchar 8kode_pesan ** varchar 8jumlah_pesan int 9jumlah_terima int 9
72
keterangan varchar 8diskon float 8harga_total money 8
Keterangan : * = Primary Key
** =Foreign Key
3.4.2. Relasi Antar Tabel
Gambar 3.22 Relasi Antar Tabel
73
BAB IV
IMPLEMENTASI SISTEM
4.1 Karakteristik Sistem
Sistem ini dibangun sebagai sebuah aplikasi point of sales untuk butik
yang berada di daerah Yogyakarta.
Pada sistem ini terdapat tiga user, yaitu manajer, kasir dan admin. Admin
menggunakan sistem ini untuk input data pegawai dan data satuan. Manager
menggunakan sistem ini untuk input data barang, data satuan_barang, data kas dan
data kategori. Dalam menggunakan sistem ini manajer juga dapat melihat
transaksi penjualan yang terjadi. Kasir menggunakan sistem ini untuk input data
pelanggan, input data pemesanan, input data penjualan langsung, melihat data stok
barang dan melihat data kas.
4.2 Kebutuhan Sistem
Untuk dapat melakukan pengujian sistem, dibutuhkan beberapa sistem
penunjang. Antara lain
Spesifikasi software
1. Sistem Operasi Windows XP Service Pack 2
2. Net.Framework
3. VisualBasic.Net 2003
4. Microsoft SQL Server 2000
Spesifikasi Hardware
1. Prosesor intel Pentium IV 2,26 Ghz
74
2. Memory 512 MB
3. Hardisk 40 GB
4.3 Koneksi SQL Server
Tabel – tabel yang telah dibuat belum dapat terhubung dengan sistem.
Untuk menghubungkan Visual Basic dengan SQL Server, maka digunakan
sintak sebagai berikut
Dalam melakukan koneksi kedalam database digunakan sebuah variabel
string yang berfungsi untuk menampung parameter conection.
Untuk memudahkan koneksi sistem dengan database, maka script koneksi
dibuat dalam suatu procedure yang diletakan di sebuah modul. Jika sistem akan
melakukan koneksi dengan database maka procedure ini yang akan dipanggil.
Untuk membaca, mengakses dan melakukan query data ke dalam
database,maka dibuatl beberapa buah fungsi yang diletakkan dalam sebuah modul.
Perintah untuk modul fungsi dapat dilihat pada perintah berikut ini :
Module Module_FUNGSI'Public XX As BooleanPrivate koneksi As New SqlConnection("server=DAUS\KERBEROS;
database=SKRIPSI; Trusted_Connection=yes")
Imports System.DataImports System.Data.OdbcImports System.Data.SqlClient
Module koneksiPublic ssi As New SqlConnection("server=DAUS\KERBEROS;database=Tugas_Akhir; Trusted_Connection=yes") 'ssi = sqlkoneksiPublic da As New SqlDataAdapterPublic ds As DataSetPublic dt As DataTablePublic dr As DataRowPublic scom As SqlCommand 'scom = sqlcommandPublic bata As SqlDataReaderPublic sram As SqlParameter
End Module
75
Public Function executeQuery(ByVal sql As String) koneksi.Open()
TryDim commandExe As New SqlCommand(sql, koneksi)
commandExe.ExecuteNonQuery()Catch ex As Exception
MessageBox.Show("Failed to reader cause " &ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try koneksi.Close()
End Function
Public Function ambildatanumeric(ByVal sql As String) AsInteger koneksi.Open()
Dim bata As SqlDataReaderDim scom As SqlCommandDim data As Integer
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader
TryIf bata.Read Then
data = bata.GetValue(0)End If
Catch ex As Exception MessageBox.Show("Failed to reader cause " &ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try bata.Close() koneksi.Close()
Return dataEnd FunctionPublic Function isEmpty(ByVal sql As String) As Integer
' koneksi.Close() koneksi.Open()
Dim bata As SqlDataReaderDim scom As SqlCommand
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader
TryIf bata.HasRows Then
isEmpty = 0 bata.Close()
Else isEmpty = 1 bata.Close()
End IfCatch ex As Exception
MessageBox.Show("Failed to reader cause " &ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try bata.Close() koneksi.Close()
Return isEmptyEnd FunctionPublic Function ambildatastring(ByVal sql As String) As String
76
koneksi.Open()Dim bata As SqlDataReaderDim scom As SqlCommandDim data As String
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader
TryIf bata.Read Then
data = bata.GetValue(0)End If
Catch ex As Exception MessageBox.Show("Failed to reader cause " &ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try bata.Close() koneksi.Close()
Return dataEnd Function
Public Function ambildatadate(ByVal sql As String) As Date koneksi.Open()
Dim bata As SqlDataReaderDim scom As SqlCommandDim data As Date
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader
TryIf bata.Read Then
data = bata.GetValue(0)End If
Catch ex As Exception MessageBox.Show("Failed to reader cause " &ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try bata.Close() koneksi.Close()
Return dataEnd Function
End Module
Isi dari modul fungsi diatas antara lain untuk mengeksekusi query kedalam
database, membaca data numeric, membaca data string, membaca data tanggal
dan membaca data kosong.
77
4.4 User Interface
User interface merupakan implementasi dari proses modeling yang ada.
4.4.1 User Interface Proses Login
Gambar 4.1 User Interface Proses Login
Proses login harus dilakukan oleh semua user sebelum mengunakan sistem
sesuai dengan hak aksesnya. Data yang diinputkan pada login user adalah
username dan password. Pada proses login ini, sistem akan memberikan hak
akses sesuai dengan group dari tiap pegawai. Jika data yang diinputkan tidak
sesuai, maka aplikasi tidak bisa digunakan oleh user. Kode yang digunakan dalam
proses login adalah sebagai berikut :
Private Sub Buttonlogin_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Buttonlogin.Click
If Textuser.Text = "" And Textpassword.Text = "" Then MsgBox("Data Login Tidak Lengkap", MsgBoxStyle.OKOnly) clearscreen()
ElseTry
Dim kodegroup As IntegerDim username As String
koneksi.Open()Dim sql As String = "Select kode_grup,user_name
78
from Pegawai Where" & _ " user_name='" & Textuser.Text.Trim & "' Andpassword='" & Textpassword.Text.Trim & "'" scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows Then bantu_login = 0
While bata.Read() kodegroup = bata.Item("kode_grup")
username = bata.Item("user_name")End While
bata.Close()End If
If kodegroup = 1 ThenDim frmMDI As New FormMDI
frmMDI.Show()Me.Hide()
ElseIf kodegroup = 2 ThenDim frmMDI As New FormMDI
frmMDI.Show() frmMDI.MenuSatuan.Visible = False
Me.Hide()
ElseIf kodegroup = 3 ThenDim frmMDI As New FormMDI
frmMDI.Show() frmMDI.MenuPegawai.Visible = False
Me.Hide()
Else bantu_login = bantu_login + 1 MsgBox("Maaf, Login dan Password Anda TidakTerdaftar!!!") clearscreen()
If bantu_login = 3 Then MsgBox("Maaf, Anda Bukan User BONA BUTIK,Akses Masuk Anda Ditolak!!!")
EndEnd If
End IfCatch ex As Exception
MessageBox.Show("Maaf, Anda Bukan User BONA BUTIK,Akses Masuk Anda Ditolak!!!", "Konfirmasi", MessageBoxButtons.OK,MessageBoxIcon.Information) clearscreen()
Finally koneksi.Close()
End TryEnd If
End Sub
79
Private Sub Textpassword_KeyPress(ByVal sender AsSystem.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim bata2 As SqlDataReader
If e.Handled = bool(Asc(e.KeyChar)) ThenElse
If Textuser.Text = "" And Textpassword.Text = "" Then MsgBox("Data Login Tidak Lengkap",MsgBoxStyle.OKOnly)
ElseIf Textuser.Text = "" Then MsgBox("Data User Id Masih Kosong",MsgBoxStyle.OKOnly)
ElseTry
Dim kodegorup As IntegerDim username As String
koneksi.Open()' baca data userDim sql As String = "Select
kode_grup,user_name from Pegawai Where" & _ " user_name='" & Textuser.Text.Trim & "' Andpassword='" & Textpassword.Text.Trim & "'" scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows Then bantu_login = 0
While bata.Read() kodegorup = bata.Item("kode_group")
username = bata.Item("user_name")End While
bata.Close()End If
If kodegorup = 1 ThenDim frmMDI As New FormMDI
Show_Admin()Me.Hide()
ElseIf kodegorup = 2 ThenDim frmMDI As New FormMDI
Show_Manager()Me.Hide()
ElseIf kodegorup = 3 ThenDim frmMDI As New FormMDI
Show_Kasir()Me.Hide()
Else bantu_login = bantu_login + 1 MsgBox("Maaf, Login dan Password AndaTidak Terdaftar!!!") clearscreen()
80
If bantu_login = 3 Then MsgBox("Maaf, Anda Bukan User BONABUTIK, Akses Masuk Anda Ditolak!!!")
EndEnd If
End If koneksi.Close()
Catch ex As Exception MessageBox.Show("Maaf, Anda Bukan User BONABUTIK, Akses Masuk Anda Ditolak!!!", "Konfirmasi",MessageBoxButtons.OK, MessageBoxIcon.Information) clearscreen()
Finally koneksi.Close()
End TryEnd If
End IfEnd Sub
Jika user lupa memasukkan salah satu dari nama user atau data
passwordnya maka akan muncul kotak pesan yang mengatakan bahwa data yang
dimasukkan tidak lengkap, dan diharapkan user melengkapi data inputannya.
Gambar 4.2 merupakan user interface yang berupa kotak pesan pemberitahuan
bahwa data yang dimasukkan belum lengkap.
Gambar 4.2 Kotak Pesan Konfirmasi Data Tidak Lengkap
81
Jika data login yang diinputkan salah maka akan muncul kotak pesan
pemberitahuan bahwa data yang diinputkan tidak terdaftar. Gambar 4.3
merupakan user interface yang berupa kotak pesan pemberitahuan bahwa data
yang dimasukkan salah atau tidak terdaftar.
Gambar 4.3 Kotak Pesan Konfirmasi Data Tidak Terdaftar
Jika data login yang dimasukkan user salah selama tiga kali maka akan
muncul kotak pesan pemberitahuan bahwa akses masuk ditolak dan user otomatis
akan keluar dari aplikasi. Gambar 4.4 merupakan user interface yang berupa
kotak pesan pemberitahuan bahwa akses masuk ditolak.
Gambar 4.4 Kotak Pesan Konfirmasi Akses Ditolak
82
4.4.2 User Interface Halaman Utama
Setelah proses login berhasil, selanjutnya user akan masuk ke halaman
utama. Halaman utama yang ditampilkan sesuai dengan hak akses atau bagian
masing-masing dari user. Gambar 4.5 merupakan user interface halaman utama.
Gambar 4.5 Halaman Utama
Berikut ini adalah perintah untuk masuk kedalam user interface halaman
utama.
Private Sub FormMDI_Load(ByVal sender As System.Object, ByVale As System.EventArgs) Handles MyBase.Load MenuLogOff.Enabled = False
End Sub
Private Sub MenuLogOff_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuLogOff.Click
Me.SendToBack()Dim f As New Form_LOGIN2
f.Show()
83
End Sub
Private Sub MenuExit_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuExit.Click
EndEnd Sub
Private Sub MenuPelanggan_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuPelanggan.Click
Me.SendToBack()Dim f As New Form_DATA_PELANGGAN
f.Show()End Sub
Private Sub MenuJual_Langsung_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesMenuJual_Langsung.Click
Me.SendToBack()Dim f As New Form_TRANSAKSI_JUAL
f.Show()End Sub
Private Sub MenuJual_pesan_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesMenuJual_pesan.Click
Me.SendToBack()Dim f As New Form_TRANSAKSI_JUAL
f.ShowDialog()End Sub
Private Sub MenuBarang_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuBarang.Click
Me.SendToBack()Dim f As New Form_DATA_BARANG
f.Show()End Sub
Private Sub FormMDI_Activated(ByVal sender As Object, ByVal eAs System.EventArgs) Handles MyBase.Activated
Dim f As New Form_LOGIN2'TextBox1.Text = f.XX
End Sub
Private Sub FormMDI_Closed(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles MyBase.Closed
EndEnd Sub
Private Sub MenuStok_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuStok.Click
Me.SendToBack()Dim f As New Form_SATUAN_JUAL
f.Show()End Sub
84
Private Sub MenuKas_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles MenuKas.Click
Me.SendToBack()Dim f As New Form_DATA_KAS
f.ShowDialog()End Sub
Private Sub MenuSatuan_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuSatuan.Click
Me.SendToBack()Dim f As New Form_DATA_SATUAN
f.ShowDialog()End Sub
Private Sub MenuPegawai_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MenuPegawai.Click
Me.SendToBack()Dim f As New Form_DATA_PEGAWAI
f.ShowDialog()End Sub
Private Sub MenuLaporan_Stok_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesMenuLaporan_Stok.Click
Me.SendToBack()Dim f As New Form_LAPORAN_JUAL
f.ShowDialog()End Sub
Private Sub MenuLaporan_Jual_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesMenuLaporan_Jual.Click
Me.SendToBack()Dim f As New Form_LAPORAN_JUAL
f.ShowDialog()End Sub
Private Sub MenuGanti_Password_Click(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesMenuGanti_Password.Click
Me.SendToBack()Dim f As New Form_UBAH_PASSWORD
f.ShowDialog()End Sub
Pada halaman utama ini terdapat menu File, Master, Utility, dan Laporan.
Menu File terdiri dari sub menu:
• Logout
• Exit
85
Menu Master terdiri dari sub menu:
• Barang
• Pelanggan
• Kas
• Pegawai
• Stok
• Satuan
Menu Utility terdiri dari sub menu:
• Ganti Password
Menu Laporan terdiri dari sub menu :
• Laporan Penjualan Langsung
• Laporan Penjualan Melalui Pemesanan
Setiap menu dan sub menu pada halaman utama mempunyai fungsi yang
berbeda. Menu File, menu ini berisi sub menu yang mendukung proses login,
logout, dan exit. Menu Master, menu ini berisi sub menu yang digunakan untuk
mengakses dan memanipulasi semua data yang berada dalam sistem informasi ini.
Administrator memiliki hak akses penuh pada bagian menu Data ini. Menu Utility
hanya berisi sub menu untuk mengganti password. Sedangkan Menu Laporan,
menu ini berisi sub menu yang digunakan untuk proses pembuatan laporan.
86
4.4.3 User Interface Data Pegawai
Gambar 4.6 merupakan gambar User interface untuk data Pegawai. Pada
user interface data Pegawai ada beberapa tombol command seperti add, edit,
delete, print dan exit.
Gambar 4.6 User Interface Proses Data Pegawai
Data Pegawai akan langsung tertampil jika data Pegawai telah tersimpan
dalam Database. Kode program yang digunakan agar data Pegawai langsung
tampil ketika form ini di panggil adalah sebagai berikut :
Private Sub Form_DATA_PEGAWAI_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load isidatagrid()
End Sub
Untuk menampilkan data Pegawai kedalam datagrid, syntaks yang
digunakan adalah :
Private Sub isidatagrid()koneksi.Open()Dim sqlselect As String = " Select * from VIEWPegawai_Grup "
87
da = New SqlDataAdapter(sqlselect, koneksi) ds = New DataSet da.Fill(ds, "Pegawai") DataGrid1.DataSource = ds DataGrid1.DataMember = ("Pegawai") DataGrid1.ReadOnly = True koneksi.Close()
End Sub
4.4.3.1 User Interface Delete Data Pegawai
Untuk dapat menghapus data Pegawai, maka salah satu data yang terdapat
dalam datagrid harus diklik terlebih dahulu.
Untuk menghapus data Pegawai dan menampilkan kotak dialog data
pegawai yang akan dihapus, syntaks yang digunakan adalah :
Private Sub ButtonDelete_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonDelete.Click
If (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex)) ThenTry
koneksi.Open()Dim deletekodepegawai As String =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))
If (MessageBox.Show("Apakah anda yakin akan menghapus data " &Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) & " ?", "POSButik Bona", MessageBoxButtons.YesNo, MessageBoxIcon.Question) =DialogResult.Yes) Then
Dim sql As String = "Delete From Pegawai" & _" Where kode_pegawai='" & Trim(deletekodepegawai) & "'" scom = New SqlCommand(sql, koneksi)
TryDim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Hapus Data Berhasil", MsgBoxStyle.Information)Else
MsgBox("Hapus Data Gagal", MsgBoxStyle.Critical)End IfCatch ex As Exception
MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !")
End TryElse
clearscreen()End If
koneksi.Close() '' clearscreen()
88
Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !") clearscreen()
Finally koneksi.Close()
End TryElse
MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End If koneksi.Close() ButtonRefresh_Click(sender, e)
End Sub
Gambar 4.7 User Interface Proses Delete Data Pegawai
4.4.3.2 User Interface Edit Data Pegawai
Untuk dapat mengedit data Pegawai, maka salah satu data yang terdapat
dalam datagrid harus diklik terlebih dahulu. Kemudian jika tombol edit pada data
89
pegawai dieksekusi maka user interface update data pelanggan akan muncul.
Berikut adalah kode pada tombol edit :
Private Sub ButtonEdit_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonEdit.Click
If isEmpty(" Select * from VIEWPegawai_Grup ") ThenElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex))
Then f = New Form_UPDATE_PEGAWAI
'f.ComboBoxgrup.Visible = False' f.ComboBoxgrup.Dispose()
f.Textkdpeg.Enabled = False f.Textkdgrup.Text = jabatan f.Textkdpeg.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) f.Textnama.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) f.ComboBoxgrup.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 2)) f.dtmasuk.Value =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 3)) f.Textalamat.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 4)) f.Textcp.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 5)) f.textuser.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 6)) f.Textpassword.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 7))
' f.lbltempkd.Text = f.Textkdpeg.Text' f.Textkdpeg.Enabled = False
f.flag = 1 f.ShowDialog()
Else MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End IfEnd Sub
90
Gambar 4.8 User Interface Proses Edit Data Pegawai
Tombol cancel digunakan untuk kembali ke menu user interface data
pegawai. Sedangkan tombol refresh digunakan untuk mengembalikan nilai data
kebentuk sebelumnya, dan tombol save digunakan untuk menyimpan data baik
yang telah di edit maupun data baru. Kode yang digunakan untuk menyimpan
hasil edit dan penambahan data pegawai yang baru adalah sebagai berikut :
Private Sub Buttonsave_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Buttonsave.Click
Call AmbilKodeGrup()Try
koneksi.Open()If Textkdpeg.Text = "" Then
MsgBox("Silahkan masukkan kode Pegawai",MsgBoxStyle.Exclamation) Textkdpeg.Focus()
ElseIf Textnama.Text = "" Then MsgBox("Nama Pegawai belum diisi ",MsgBoxStyle.Exclamation) Textnama.Focus()
91
Else
Dim sql As StringDim sqlSelect As StringDim tanggal As String =
CStr(DateValue(dtmasuk.Value))
If flag = 0 Then sql = "Insert Into Pegawai(kode_grup,kode_pegawai,nama_pegawai,tanggal_masuk,alamat,cp,user_name, password ) Values('" & Trim(kode) & "','" &Trim(Textkdpeg.Text) & "','" & Trim(Textnama.Text) & "','" &tanggal & "','" & Trim(Textalamat.Text) & "','" &Trim(Textcp.Text) & "','" & Trim(textuser.Text) & "','" &Trim(Textpassword.Text) & "')" scom = New SqlCommand(sql, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Tambah Data Berhasil", MsgBoxStyle.Information)Me.Close()Else
MsgBox("Tambah Data Gagal", MsgBoxStyle.Critical)End If
Else sql = "Update Pegawai Set" & _ " nama_pegawai = '" &Textnama.Text & "',alamat = '" & Textalamat.Text & "',cp = '" &Textcp.Text & "',user_name = '" & textuser.Text & "', password ='" & Textpassword.Text & "'" & _ " Where kode_pegawai='" & Textkdpeg.Text & "'" scom = New SqlCommand(sql, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Update Data Berhasil",MsgBoxStyle.Information)
Me.Close()Else
MsgBox("Update Data Gagal",MsgBoxStyle.Critical)
End IfEnd If
End IfCatch ex As Exception
MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !!")
Finally koneksi.Close()
End TryEnd Sub
Private Sub AmbilKodeGrup() koneksi.Open()
Dim sql As String = "select kode_grup from Grup_Pegawaiwhere jabatan = '" & ComboBoxgrup.SelectedItem & "'" scom = New SqlCommand(sql, koneksi)
92
bata = scom.ExecuteReader()If bata.HasRows Then
TryWhile bata.Read
kode = Trim(bata.GetString(0))End While
Catch ex As Exception
MsgBox("Referensi grup tidak Ada..",MsgBoxStyle.OKOnly, "Keterangan")
End TryEnd If
koneksi.Close()End Sub
Fungsi call AmbilKodeGrup() adalah untuk mengambil kode group
Pegawai yang dipilih. Berikut adalah kode yang dipakai untuk memanggil kode
Group Pegawai :
Private Sub AmbilKodeGrup() koneksi.Open()
Dim sql As String = "select kode_grup from Grup_Pegawaiwhere jabatan = '" & ComboBoxgrup.SelectedItem & "'" scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows ThenTry
While bata.Read kode = Trim(bata.GetString(0))
End WhileCatch ex As Exception
MsgBox("Referensi grup tidak Ada..",MsgBoxStyle.OKOnly, "Keterangan")
End TryEnd If
koneksi.Close()End Sub
4.4.3.3 User Interface add Data Pegawai
Tombol add digunakan untuk menambah data Pegawai yang baru. Berikut
adalah kode yang digunakan untuk menambah data Pegawai baru :
93
Private Sub ButtonAdd_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles ButtonAdd.Click f = New Form_UPDATE_PEGAWAI
' f.Textkdgrup.Visible = False'f.lbltempkd.Text = ""
f.Textkdpeg.Enabled = False f.flag = 0 f.generate_kode() f.ShowDialog()
End Sub
Fungsi tombol add antara lain untuk menampilkan form_UPDATE
PEGAWAI dan untuk memanggil fungsi generate kode Pegawai. Berikut adalah
kode untuk menampilkan fungsi generate kode Pegawai.
Public Sub generate_kode()Dim i As Integer = 1Dim kode_pegawai As StringDim kode_pegawai2 As String
koneksi.Open()Dim sql As String = "select kode_pegawai from Pegawai
order by kode_pegawai asc"
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows ThenTry
While bata.Read kode_pegawai =CInt(Mid(Trim(bata.GetString(0)), 4, 5))
If kode_pegawai = i Then i = i + 1
End IfEnd While
Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly,"Info")
End Try kode_pegawai2 = CStr(i)
If kode_pegawai2.Length = 1 Then kode_pegawai2 = "PEG0000" + CStr(kode_pegawai2) Textkdpeg.Text = kode_pegawai2
ElseIf kode_pegawai2.Length = 2 Then kode_pegawai2 = "PEG000" + CStr(kode_pegawai2) Textkdpeg.Text = kode_pegawai2
ElseIf kode_pegawai2.Length = 3 Then kode_pegawai2 = "PEG00" + CStr(kode_pegawai2) Textkdpeg.Text = kode_pegawai2
ElseIf kode_pegawai2.Length = 4 Then kode_pegawai2 = "PEG0" + CStr(kode_pegawai2)
94
Textkdpeg.Text = kode_pegawai2ElseIf kode_pegawai2.Length = 5 Then
kode_pegawai2 = "PEG" + CStr(kode_pegawai2) Textkdpeg.Text = kode_pegawai2
End If bata.Close() koneksi.Close()
Else kode_pegawai2 = "PEG00001" Textkdpeg.Text = kode_pegawai2 koneksi.Close()
End IfEnd Sub
4.4.3.4 User Inferface Print Data Pegawai
Fungsi tombol print pada user interface data Pegawai adalah untuk
menampilkan data Pegawai dalam bentuk laporan. Berikut kode yang digunakan
untuk menampilkan laporan Pegawai:
Private Sub Buttonprint_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Buttonprint.Click
Me.SendToBack()Dim f As New Form_PRINT_PEGAWAI
f = New Form_PRINT_PEGAWAI f.Show()
End Sub
Didalam fungsi tombol print terdapat pemanggilan form print pegawai.
Berikut kode pada form print pegawai :
Private Sub CrystalReportViewer1_Load(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesCrystalReportViewer1.Load CrystalReportViewer1.ReportSource = "D:\PROJECTSKRIPSI\POS_Butik\POS_Butik\Cetak_Pelanggan1.rpt" CrystalReportViewer1.Zoom(1)
End Sub
95
Gambar 4.9 User Interface Proses cetak Data Pegawai
4.4.4 User Interface Data Pelanggan
Gambar 4.10 merupakan gambar User interface untuk data Pelanggan.
Pada user interface data Pelanggan ada beberapa tombol command seperti add,
edit, delete, print dan exit.
Gambar 4.10 User Interface Proses Data Pelanggan
96
Data Pelanggan akan langsung tertampil jika data Pelanggan telah
tersimpan dalam Database. Kode program yang digunakan agar data Pelanggan
langsung tampil ketika form ini di panggil adalah sebagai berikut :
Private Sub Form_DATA_PELANGGAN_Load(ByVal sender As Object, ByVale As System.EventArgs) Handles MyBase.Load clearscreen() isidatagrid()
End Sub
Untuk menampilkan data Pelanggan kedalam datagrid, syntaks yang
digunakan adalah :
Public Sub isidatagrid() koneksi.Open()
Dim sqlselect As String = "Select kode_pelanggan as [KODEPELANGGAN],nama_pelanggan as [NAMA],alamat as [ALAMAT],kota as[KOTA],kode_pos as [KODE POS],cp as [CONTACT PERSON] fromPelanggan order by kode_pelanggan asc" da = New SqlDataAdapter(sqlselect, koneksi) ds = New DataSet da.Fill(ds, "Pelanggan") DataGrid1.DataSource = ds DataGrid1.DataMember = ("Pelanggan") DataGrid1.ReadOnly = True koneksi.Close()
End Sub
97
4.4.4.1 User Interface Delete Data Pelanggan
Gambar 4.11 User Interface Delete Data Pelanggan
Untuk menghapus data pelanggan dan menampilkan kotak dialog, syntaks
yang digunakan adalah :
Private Sub ButtonDelete_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonDelete.Click
If (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex)) ThenTry
koneksi.Close() koneksi.Open()Dim deletekodepelanggan As String =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))If (MessageBox.Show("Apakah anda yakin akan menghapus data " &Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) & " ?", "POSButik Bona", MessageBoxButtons.YesNo, MessageBoxIcon.Question) =DialogResult.Yes) ThenDim sql As String = "Delete From PELANGGAN" & _" Wherekode_pelanggan='" & Trim(deletekodepelanggan) & "'"scom = New SqlCommand(sql, koneksi)TryDim status As Integer = scom.ExecuteNonQuery()If status = 1 Then MsgBox("Hapus Data Berhasil", MsgBoxStyle.Information)
Else MsgBox("Hapus Data Gagal", MsgBoxStyle.Critical)End IfCatch ex As Exception
98
MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !")End TryElseclearscreen()End Ifkoneksi.Close() ''clearscreen()
Catch ex As ExceptionMsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !")clearscreen()
Finallykoneksi.Close()
End TryElse
MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End If ButtonRefresh_Click(sender, e)
End Sub
4.4.4.2 User Interface Edit Data Pelanggan
Jika tombol edit pada data pelanggan diklik maka user interface update
data pelanggan akan muncul. Berikut adalah kode pada tombol edit :
Private Sub ButtonEdit_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles ButtonEdit.Click
If isEmpty("Select kode_pelanggan as [KODEPELANGGAN],nama_pelanggan as [NAMA],alamat as [ALAMAT],kota as[KOTA],kode_pos as [KODE POS],cp as [CONTACT PERSON] fromPelanggan") Then
ElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex))Then f = New Form_UPDATE_PELANGGAN f.Textkode.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) f.Textnama.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) f.Textalamat.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 2)) f.Textkota.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 3)) f.Textkodepos.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 4)) f.Textcp.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 5)) f.lbltempkd.Text = f.Textkode.Text f.Textkode.Enabled = False
99
f.flag = 1 f.ShowDialog()
Else MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End IfEnd Sub
Gambar 4.12 User Interface Update Data Pelanggan
Tombol cancel digunakan untuk kembali ke menu user interface data
pelanggan. Tombol refresh digunakan untuk mengembalikan nilai data kebentuk
sebelumnya, dan tombol save digunakan untuk menyimpan data baik yang telah di
edit maupun data baru. Kode yang digunakan untuk menyimpan hasil edit dan
penambahan data pelanggan adalah sebagai berikut :
Private Sub Buttonsave_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Buttonsave.Click
Try koneksi.Open()
If Textkode.Text = "" Then MsgBox("Masukkan Kode Pelanggan",MsgBoxStyle.Exclamation) Textkode.Focus()
100
ElseIf Textnama.Text = "" Then MsgBox("Masukkan nama Pelanggan",MsgBoxStyle.Exclamation) Textnama.Focus()
ElseDim sql_update As String
If flag = 0 Then sql_update = "insert into Pelanggan(kode_pelanggan, nama_pelanggan, alamat, kota, kode_pos, cp)values('" & Trim(Textkode.Text) & "','" & Trim(Textnama.Text) &"','" & Trim(Textalamat.Text) & "','" & Trim(Textkota.Text) &"','" & Trim(Textkodepos.Text) & "','" & Trim(Textcp.Text) & "')" scom = New SqlCommand(sql_update, koneksi)
Dim status As Integer = scom.ExecuteNonQueryIf status = 1 Then
MsgBox("Tambah Data Berhasil",MsgBoxStyle.Information)
Me.Close()Else
MsgBox("Tambah Data Gagal",MsgBoxStyle.Critical)
End IfElse
sql_update = "Update Pelanggan Set" & _ " kode_pelanggan = '" &Textkode.Text & "',nama_pelanggan = '" & Textnama.Text & "',alamat= '" & Textalamat.Text & "',kota = '" & Textkota.Text &"',kode_pos = '" & Textkodepos.Text & "', CP = '" & Textcp.Text &"'" & _ " Where kode_pelanggan='" &Textkode.Text & "'" scom = New SqlCommand(sql_update, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Update Data Berhasil",MsgBoxStyle.Information)
Me.Close()Else
MsgBox("Update Data Gagal",MsgBoxStyle.Critical)
End IfEnd If
End IfCatch ex As Exception
MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !!")
Finally koneksi.Close()
End TryEnd Sub
101
4.4.4.3 User Interface add Data Pelanggan
Tombol add digunakan untuk menambah data pelanggan yang baru.
Berikut adalah kode yang digunakan untuk menambah data pelanggan baru :
Private Sub ButtonAdd_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonAdd.Click f = New Form_UPDATE_PELANGGAN f.lbltempkd.Text = "" f.Textkode.Enabled = False f.flag = 0 f.generate_kode() f.ShowDialog()
End Sub
Fungsi tombol add antara lain untuk menampilkan form_UPDATE
PELANGGAN dan untuk memanggil fungsi generate kode pelanggan. Berikut
adalah kode untuk menampilkan fungsi generate kode pelanggan.
Public Sub generate_kode()Dim i As Integer = 1Dim kode_pelanggan As StringDim kode_pelanggan2 As String
koneksi.Open()Dim sql_select As String = "select kode_pelanggan from
PELANGGAN" scom = New SqlCommand(sql_select, koneksi) bata = scom.ExecuteReader
If bata.HasRows ThenTry
While bata.Read kode_pelanggan =CInt(Mid(Trim(bata.GetString(0)), 4, 5))
If kode_pelanggan = i Then i = i + 1
End IfEnd While
Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly,"Info")
End Try
kode_pelanggan2 = CStr(i)If kode_pelanggan2.Length = 1 Then
kode_pelanggan2 = "PLG0000" + CStr(kode_pelanggan2)
102
Textkode.Text = kode_pelanggan2ElseIf kode_pelanggan2.Length = 2 Then
kode_pelanggan2 = "PLG000" + CStr(kode_pelanggan2) Textkode.Text = kode_pelanggan2
ElseIf kode_pelanggan2.Length = 3 Then kode_pelanggan2 = "PLG00" + CStr(kode_pelanggan2) Textkode.Text = kode_pelanggan2
ElseIf kode_pelanggan2.Length = 4 Then kode_pelanggan2 = "PLG0" + CStr(kode_pelanggan2) Textkode.Text = kode_pelanggan2
ElseIf kode_pelanggan2.Length = 5 Then kode_pelanggan2 = "PLG" + CStr(kode_pelanggan2) Textkode.Text = kode_pelanggan2
End If
bata.Close() koneksi.Close()
Else kode_pelanggan2 = "PLG00000" Textkode.Text = kode_pelanggan2 koneksi.Close()
End IfEnd Sub
4.4.4.4 User Inferface Print Data Pelanggan
Fungsi tombol print pada user interface data pelanggan adalah untuk
menampilkan data pelanggan dalam bentuk laporan. Berikut kode yang digunakan
untuk menampilkan laporan pelanggan :
Private Sub Buttonprint_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Buttonprint.Click
Me.SendToBack()Dim f As New Form_PRINT_PELANGGAN
f = New Form_PRINT_PELANGGAN f.Show()
End Sub
Kode pada FORM_PRINT_PELANGGAN adalah sebagai berikut :Private Sub CrystalReportViewer1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) HandlesCrystalReportViewer1.Load CrystalReportViewer1.ReportSource = "D:\PROJECTSKRIPSI\POS_Butik\POS_Butik\Cetak_Pelanggan1.rpt" CrystalReportViewer1.Zoom(1)
End Sub
103
Gambar 4.13 User Interface cetak Data Pelanggan
4.4.5 User Interface Data Barang
Gambar 4.14 merupakan gambar User interface untuk data barang. Pada
user interface data barang ada beberapa tombol command seperti add, edit, delete
print dan exit.
Gambar 4.14 User Interface Proses Data barang
104
Data barang akan langsung tertampil jika data barang telah tersimpan
dalam Database. Kode program yang digunakan agar data barang langsung tampil
ketika form ini di panggil adalah sebagai berikut :
Private Sub Form_DATA_BARANG_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load isidatagrid()
End Sub
Untuk menampilkan data barang kedalam datagrid, syntaks yang
digunakan adalah :
Public Sub isidatagrid() koneksi.Open()
Dim sqlselect As String = "select * fromVIEWBarang_kategori" da = New SqlDataAdapter(sqlselect, koneksi) ds = New DataSet da.Fill(ds, "Barang") DataGrid1.DataSource = ds DataGrid1.DataMember = ("Barang") DataGrid1.ReadOnly = True koneksi.Close()
End Sub
4.4.5.1 User Interface Delete Data barang
Gambar 4.15 User Interface Delete Data barang
105
Untuk menghapus data barang dan menampilkan kotak dialog data barang
yang akan dihapus, kode yang digunakan adalah sebagai berikut :
Private Sub ButtonDelete_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonDelete.Click
If isEmpty("Select * from VIEWBarang_kategori ") Then'a.nama_kategori as [NAMA KATEGORI],b.kode_barang as [KODEBARANG],b.nama_barang as [NAMA],b.jenis as [JENIS] from Kategoria,Barang b ") Then
ElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex))Then koneksi.Open()If (MessageBox.Show("Apakah anda yakin akan menghapus data " &Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) & " ?", "POSButik Bona", MessageBoxButtons.YesNo, MessageBoxIcon.Question) =DialogResult.Yes) Then
Dim bantu_hapus As String =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))
Dim sqlDeleted As String sqlDeleted = "delete from barang where kode_barang='" & bantu_hapus & "'" scom = New SqlCommand(sqlDeleted, koneksi)
TryDim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Hapus Data Berhasil", MsgBoxStyle.Information) koneksi.Close() isidatagrid()
Exit SubElse
MsgBox("Hapus Data Gagal", MsgBoxStyle.Critical)End IfCatch ex As ExceptionMsgBox("Error: " & ex.Source & ": " & ex.Message,
MsgBoxStyle.Critical, "Koneksi Error !")End TryElse
Exit SubEnd IfEnd If
koneksi.Close()End Sub
4.4.5.2 User Interface Edit Data barang
Fungsi user interface edit data barang adalah untuk menampilkan form
UPDATE_BARANG. Tombol edit digunakan untuk mengubah data barang.
Berikut adalah kode untuk user interface edit data barang:
106
Private Sub ButtonEdit_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles ButtonEdit.ClickIf isEmpty("Select * from VIEWBarang_kategori ") ThenElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex)) Thenf = New Form_UPDATE_BARANGf.Textkd.Enabled = Falsef.Textkd.Text = Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))f.ComboBoxktg.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 2))f.Textnama.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex,1)) f.Textjenis.Text = Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex,3)) f.Textkdktg.Text = Nama_ktg f.flag = 1 f.ShowDialog()
Else MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End IfEnd Sub
Tombol cancel digunakan untuk kembali ke menu user interface data
barang. Sedangkan tombol refresh digunakan untuk mengembalikan nilai data
kebentuk sebelumnya, dan tombol save digunakan untuk menyimpan data barang
baik yang telah di edit maupun data barang baru. Kode yang digunakan untuk
menyimpan hasil edit dan penambahan data barang adalah sebagai berikut :
Private Sub Buttonsave_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Buttonsave.Click
Call AmbilKodeKategori()Try
koneksi.Open()If Textkd.Text = "" Then
MsgBox("Silahkan masukkan kode Barang",MsgBoxStyle.Exclamation) Textkd.Focus()
ElseIf Textnama.Text = "" Then MsgBox("Nama Barang belum diisi ",MsgBoxStyle.Exclamation) Textnama.Focus()
Else
Dim sql As StringDim sqlSelect As String
107
If flag = 0 Then sql = "Insert Into Barang (kode_kategori,kode_barang, nama_barang, jenis) Values('" & Trim(kode) & "','" &Trim(Textkd.Text) & "','" & Trim(Textnama.Text) & "','" &Trim(Textjenis.Text) & "')" scom = New SqlCommand(sql, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()
If status = 1 Then MsgBox("Tambah Data Berhasil",MsgBoxStyle.Information)
Me.Close()Else
MsgBox("Tambah Data Gagal",MsgBoxStyle.Critical)
End If
Else sql = "Update Barang Set" & _ " kode_barang = '" & Textkd.Text& "',nama_Barang = '" & Textnama.Text & "',jenis = '" &Textjenis.Text & " ' " & _ " Where kode_barang = '" & Textkd.Text & "'" scom = New SqlCommand(sql, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Update Data Berhasil",MsgBoxStyle.Information)
Me.Close()Else
MsgBox("Update Data Gagal",MsgBoxStyle.Critical)
End IfEnd If
End IfCatch ex As Exception
MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !!")
Finally koneksi.Close()
End TryEnd Sub
108
Gambar 4.16 User Interface UPDATE Data barang
4.4.5.3 User Interface add Data barang
Private Sub ButtonAdd_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonAdd.Click f = New Form_UPDATE_BARANG f.Textkd.Enabled = False f.flag = 0 f.generate_kode() f.ShowDialog()
End Sub
Fungsi tombol add digunakan untuk menambah data barang baru. Ketika
tombol add di klik maka sistem menampilkan form_UPDATE BARANG.
Didalam user interface terdapat fungsi untuk menggenerate kode barang. Berikut
adalah kode untuk menampilkan fungsi generate kode barang, yaitu :
Public Sub generate_kode()Dim i As Integer = 1Dim kode_barang As StringDim kode_barang2 As String
koneksi.Open()Dim sql As String = "select kode_barang from Barang order
by kode_barang asc"
109
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows ThenTry
While bata.Read kode_barang =CInt(Mid(Trim(bata.GetString(0)), 4, 5))
If kode_barang = i Then i = i + 1
End IfEnd While
Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly,"Info")
End Try kode_barang2 = CStr(i)
If kode_barang2.Length = 1 Then kode_barang2 = "BRG0000" + CStr(kode_barang2) Textkd.Text = kode_barang2
ElseIf kode_barang2.Length = 2 Then kode_barang2 = "BRG000" + CStr(kode_barang2) Textkd.Text = kode_barang2
ElseIf kode_barang2.Length = 3 Then kode_barang2 = "BRG00" + CStr(kode_barang2) Textkd.Text = kode_barang2
ElseIf kode_barang2.Length = 4 Then kode_barang2 = "BRG0" + CStr(kode_barang2) Textkd.Text = kode_barang2
ElseIf kode_barang2.Length = 5 Then kode_barang2 = "BRG" + CStr(kode_barang2) Textkd.Text = kode_barang2
End If bata.Close() koneksi.Close()
Else kode_barang2 = "BRG00001" Textkd.Text = kode_barang2 koneksi.Close()
End IfEnd Sub
110
4.4.6 User Interface Data Kas
Gambar 4.17 merupakan gambar user interface untuk data Kas. Sama
halnya pada user interface data Barang, pada user interface data Kas juga ada
beberapa tombol command seperti add, edit, delete , print dan exit.
Gambar 4.17 User Interface Proses Data Kas
Data Kas akan langsung tertampil jika data kas telah tersimpan dalam
Database. Kode program yang digunakan agar data kas langsung tampil ketika
form ini di panggil adalah sebagai berikut :
Private Sub Form_DATA_KAS_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load isidatagrid()
End Sub
Untuk menampilkan data kas kedalam datagrid, syntaks yang digunakan
adalah :
111
Private Sub isidatagrid() koneksi.Open()
Dim sqlselect As String = "select kode_kas as [KODEKAS],tanggal_simpan as [TANGGAL], kas_awal as [KAS AWAL] from Kasorder by kode_kas" da = New SqlDataAdapter(sqlselect, koneksi) ds = New DataSet da.Fill(ds, "Kas") DataGrid1.DataSource = ds DataGrid1.DataMember = ("Kas") DataGrid1.ReadOnly = True koneksi.Close()
End Sub
4.4.6.1 User Interface add Data Kas
Tombol add digunakan untuk menambahkan data kas baru. Untuk
menambah data kas baru, tombol add berfungsi memanggil form baru yaitu
form_UPDATE_KAS. Untuk memanggil form_UPDATE_KAS digunakan kode
sebagai berikut :
Public f As Form_UPDATE_KAS
Variabel f dideklarasikan sebagai form_UPDATE_KAS dan bersifat
public.
Gambar 4.18 User Interface Update Data Kas
112
Proses penambahan data kas baru, dibuat melalui form UPDATE_KAS.
Kodenya adalah sebagai berikut :
Private Sub ButtonAdd_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonAdd.Click f = New Form_UPDATE_KAS f.lbltempkd.Text = "" f.Textkd.Enabled = False f.flag = 0 f.generate_kode() f.ShowDialog()
End Sub
Ketika tombol add diklik, maka proses selanjutnya adalah menampilkan
form_UPDATE_KAS. Fungsi dari generate_code() adalah untuk membuat kode
kas secara otomatis.
Public Sub generate_kode()Dim i As Integer = 1Dim kode_kas As StringDim kode_kas2 As String
koneksi.Open()Dim sql As String = "select kode_kas from Kas order by
kode_kas asc" scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows ThenTry
While bata.Read kode_kas = CInt(Mid(Trim(bata.GetString(0)),4, 5))
If kode_kas = i Then i = i + 1
End IfEnd While
Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly,"Info")
End Try kode_kas2 = CStr(i)
If kode_kas2.Length = 1 Then kode_kas2 = "KAS0000" + CStr(kode_kas2) Textkd.Text = kode_kas2
ElseIf kode_kas2.Length = 2 Then kode_kas2 = "KAS" + CStr(kode_kas2) Textkd.Text = kode_kas2
ElseIf kode_kas2.Length = 3 Then
113
kode_kas2 = "KAS00" + CStr(kode_kas2) Textkd.Text = kode_kas2
ElseIf kode_kas2.Length = 4 Then kode_kas2 = "KAS0" + CStr(kode_kas2) Textkd.Text = kode_kas2
ElseIf kode_kas2.Length = 5 Then kode_kas2 = "KAS" + CStr(kode_kas2) Textkd.Text = kode_kas2
End If bata.Close() koneksi.Close()
Else kode_kas2 = "KAS000001" Textkd.Text = kode_kas2 koneksi.Close()
End IfEnd Sub
4.4.6.2 User Interface edit Data Kas
Sama halnya dengan tombol add, fungsi tombol edit adalah mengubah
nilai data kas dengan cara memanggil form_UPDATE_KAS. Sebelum proses edit
data terjadi, terlebih dahulu akan dilakukan proses pengecekan data.
Private Sub ButtonEdit_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles ButtonEdit.Click
If isEmpty("select kode_kas as [KODE KAS],tanggal_simpanas [TANGGAL], kas_awal as [KAS AWAL]from Kas order by kode_kas")Then
ElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex))Then f = New Form_UPDATE_KAS f.Textkd.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) f.DateTimePicker1.Value =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) f.Textkas.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 2)) f.lbltempkd.Text = f.Textkd.Text f.Textkd.Enabled = False f.flag = 1 f.ShowDialog()
Else MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End IfEnd Sub
114
4.4.6.3 User Interface delete Data Kas
User interface ini tidak jauh berbeda dengan user interface data kas yang
lain. Sebelum proses delete terjadi, telebih dahulu akan dilakukan proses
pengecekan data yang akan di hapus. Kode yang digunakan untuk menghapus
data kas adalah sebagai berikut :
Private Sub ButtonDelete_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ButtonDelete.Click
If isEmpty("select kode_kas as [KODE KAS],tanggal_simpanas [TANGGAL], kas_awal as [KAS AWAL] from Kas") Then
ElseIf (DataGrid1.IsSelected(DataGrid1.CurrentRowIndex))Then
Try koneksi.Open()
Dim deletekdKas As String =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0))
If (MessageBox.Show("Apakah anda yakin akanmenghapus data " & Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex,0)) & " ?", "P o S Butik BONA", MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then
Dim sql As String = "Delete from Kas" & _ " Where kode_kas = '" & Trim(deletekdKas)& "'" scom = New SqlCommand(sql, koneksi)
TryDim status As Integer =
scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Hapus Data Berhasil",MsgBoxStyle.Information) koneksi.Close()
Else MsgBox("Hapus Data Gagal",MsgBoxStyle.Critical)
End If isidatagrid()
Catch ex As Exception MsgBox("Error: " & ex.Source & ": " &ex.Message, MsgBoxStyle.Critical, "Koneksi Error !")
End TryElse
End If koneksi.Close()
Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !")
115
' clearscreen()Finally
koneksi.Close()End Try
Else MsgBox("Pilih Data Terlebih Dahulu",MsgBoxStyle.Exclamation)
End If ButtonRefresh_Click(sender, e)
End Sub
Gambar 4.19 User Interface proses delete Data Kas
116
4.4.7 User Interface Data Transaksi
Gambar 4.20 merupakan user interface transaksi penjualan. User interface
ini berfungsi untuk mencatat transaksi jual yang dilakukan. Pada user interface ini
juga akan dipanggil fungsi untuk membuat Kode Nota secara otomatis.
Gambar 4.20 User Interface Data Transaksi
Untuk membuat kode nota secara otomatis, kode yang digunakan adalah
sebagai berikut :
Public Sub generate_id() TextBox13.Text = Now
Dim i As Integer = 1Dim kode_nota As StringDim kode_nota2 As String
koneksi.Open()Dim sql As String = "select kode_nota from TRANSAKSI_JUAL
order by kode_nota asc"
scom = New SqlCommand(sql, koneksi) bata = scom.ExecuteReader()
If bata.HasRows Then
117
TryWhile bata.Read
kode_nota = CInt(Mid(Trim(bata.GetString(0)),4, 5))
If kode_nota = i Then i = i + 1
End IfEnd While
Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly,"Info")
End Try kode_nota2 = CStr(i)
If kode_nota2.Length = 1 Then kode_nota2 = "PNJ0000" + CStr(kode_nota2) tekskdnota.Text = kode_nota2
ElseIf kode_nota2.Length = 2 Then kode_nota2 = "PNJ000" + CStr(kode_nota2) tekskdnota.Text = kode_nota2
ElseIf kode_nota2.Length = 3 Then kode_nota2 = "PNJ00" + CStr(kode_nota2) tekskdnota.Text = kode_nota2
ElseIf kode_nota2.Length = 4 Then kode_nota2 = "PNJ0" + CStr(kode_nota2) tekskdnota.Text = kode_nota2
ElseIf kode_nota2.Length = 5 Then kode_nota2 = "PNJ" + CStr(kode_nota2) tekskdnota.Text = kode_nota2
End If bata.Close() koneksi.Close()
Else kode_nota2 = "PNJ00001" tekskdnota.Text = kode_nota2 koneksi.Close()
End IfEnd Sub
Setiap melakukan transaksi, kode nota akan di generate secara otomatis,
dengan cara menambahkan kode nota dengan nilai 1. Untuk pertama kali, kode
nota diset menjadi PNJ00001.
Tombol Pelanggan pada transaksi jual berfungsi untuk memilih nama
pelanggan yang akan melakukan transaksi. Gambar 4.21 menunjukkan proses
pengambilan data pelanggan.
118
Gambar 4.21 User Interface Lihat Data Pelanggan
Data Pelanggan akan langsung tertampil jika data Pelanggan telah
tersimpan dalam Database. Kode program yang digunakan agar data pelanggan
langsung tampil ketika form ini di panggil adalah sebagai berikut :
Private Sub Form_VIEW_PELANGGAN_Load(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) Handles MyBase.Load isidatagrid()
Me.rbnama.Checked = TrueEnd Sub
Untuk menampilkan data pelanggan kedalam datagrid, syntaks yang
digunakan adalah :
Private Sub isidatagrid() koneksi.Open()
'Me.DataGrid1.BringToFront() da = New SqlDataAdapter("selectkode_pelanggan,nama_pelanggan from PELANGGAN", koneksi)
Dim dtCustomer As New DataTable
119
dtCustomer.Clear() da.Fill(dtCustomer)
Me.DataGrid1.DataSource = dtCustomer koneksi.Close()
End Sub
Untuk memilih pelanggan, user harus melakukan klik ganda pada datagrid
pelanggan. Berikut kode untuk proses pemilihan data pelanggan.
Private Sub DataGrid1_DoubleClick(ByVal sender As Object, ByVal eAs System.EventArgs) Handles DataGrid1.DoubleClick
fort.TextBox8.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) fort.TextBox10.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) fort.Show()
Me.Hide()End Sub
Pada form ini juga terdapat fasilitas pencarian pelanggan berdasarkan kode
pelanggan dan nama pelanggan. Berikut kode untuk proses pencarian berdasarkan
kriteria nama dan kode pelanggan :
Private Sub btncari_Click(ByVal sender As System.Object, ByVal eAs System.EventArgs) Handles btncari.Click
If Me.TextBox1.Text = "" Then MsgBox("Isikan kata kunci pencarian", , "Perhatian")
Me.TextBox1.Focus()Exit Sub
End IfTry
koneksi.Open()If Me.rbKode.Checked = True Then
da = New SqlDataAdapter("select kode_pelanggan,nama_pelanggan from PELANGGAN where kode_pelanggan = '" &TextBox1.Text & "'", koneksi)
Else da = New SqlDataAdapter("select kode_pelanggan,nama_pelanggan from PELANGGAN where nama_pelanggan like '" &TextBox1.Text & "%'", koneksi)
End IfDim dtCustomer As New DataTable
dtCustomer.Clear() da.Fill(dtCustomer)
If dtCustomer.Rows.Count = Nothing Then
120
MsgBox("Tidak Ada data, masukkan input yangtepat", MsgBoxStyle.Information, "Perhatian")
Me.TextBox1.Text = ""Me.TextBox1.Focus()Exit Sub
End IfMe.DataGrid1.DataSource = dtCustomer
koneksi.Close()Catch ex As SqlException
MsgBox(ex.Message, MsgBoxStyle.Information,"Perhatian")
End TryEnd Sub
Setelah proses pemilihan data pelanggan selesai, proses berikutnya adalah
memilih barang yang akan dibeli oleh pelanggan. Tombol Barang pada transaksi
jual berfungsi untuk memilih nama barang yang akan dibeli. Gambar 4.22
menunjukkan proses pemilihan data barang.
Gambar 4.22 User Interface Lihat Data Barang
Data Barang akan langsung tertampil jika data Barang telah tersimpan
dalam Database. Kode program yang digunakan agar data Barang langsung
tampil ketika form ini di panggil adalah sebagai berikut :
121
Private Sub Form_VIEW_DATA_BARANG_Load(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) Handles MyBase.Load isidatagrid()
End Sub
Untuk menampilkan data Barang kedalam datagrid, syntaks yang
digunakan adalah :
Private Sub isidatagrid() koneksi.Open() da = New SqlDataAdapter("select * from VIEWSatuan_Jual",koneksi)
Dim dtStok As New DataTable dtStok.Clear() da.Fill(dtStok)
Me.DataGrid1.DataSource = dtStok koneksi.Close()
End Sub
Untuk memilih data barang yang diinginkan, user harus melakukan klik
ganda pada datagrid barang. Berikut kode untuk proses pemilihan data barang :
Private Sub DataGrid1_DoubleClick(ByVal sender As Object,ByVal e As System.EventArgs) Handles DataGrid1.DoubleClick
Dim kode As String fas.TextBox1.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)) fas.TextBox2.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 1)) fas.TextBox7.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 2)) fas.TextBox9.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 4)) fas.txtSatuan.Text =Trim(DataGrid1.Item(DataGrid1.CurrentRowIndex, 5)) fas.Show()
Me.Hide()End Sub
Setelah proses pemilihan barang, proses selanjutnya adalah
membandingkan jumlah yang akan dibeli dengan ketersediaan stok barang.
Berikut adalah kode untuk melihat banyaknya stok serta kode untuk proses
perbandingan antara ketersediaan barang dengan jumlah barang yang akan dibeli.
122
Private Function cekStok(ByVal kodesatuan As String, ByValkodebarang As String) As Boolean
Dim stok As Integer koneksi.Open()
Dim sql As String = "select stok from satuan_jual wherekode_satuan = '" & kodesatuan & "' and kode_barang='" & kodebarang& "'" scom = New SqlCommand(sql, koneksi) bata = scom2.ExecuteReader()
Dim myRead As SqlDataReaderIf bata.HasRows ThenTryWhile bata5.Read
stok = Trim(bata5.Item("stok"))End While
Catch ex As ExceptionMsgBox("Referensi Nama Satuan tidak Ada..", MsgBoxStyle.OKOnly,"Keterangan")
End TryEnd If
koneksi.Close()If stok = 0 ThenReturn FalseElse
Return TrueEnd If
End Function
Jika stok tersedia, proses berikutnya adalah mengambil nilai stok.
Private Function ambilStok(ByVal kodesatuan As String, ByValkodebarang As String) As Integer
Dim stok As Integer koneksi.Open()
Dim sql As String = "select stok from satuan_jual wherekode_satuan = '" & kodesatuan & "' and kode_barang='" & kodebarang& "'"
scom = New SqlCommand(sql, koneksi6) bata = scom2.ExecuteReader()
Dim myRead As SqlDataReaderIf bata.HasRows Then
TryWhile bata5.Read
stok = Trim(bata5.Item("stok"))
End WhileCatch ex As Exception
MsgBox("Referensi Nama Satuan tidak Ada..", MsgBoxStyle.OKOnly,"Keterangan")
End Try
123
End If koneksi.Close()
Return stokEnd Function
Jika jumlah barang yang akan dijual melebihi persediaan stok yang ada,
maka user interface berupa kotak dialog akan muncul. Gambar 4.23 merupakan
gambaran user interfacenya.
Gambar 4.23 Kotak Pesan Stok kurang dari quantity
Jika jumlah barang yang diinginkan kurang dari banyaknya jumlah stok,
langkah selanjutnya adalah mengurangi Jumlah stok dengan banyaknya barang
124
yang dibeli. Stok yang telah dikurangi, akan menjadi persediaan stok yang baru.
Berikut adalah kode untuk mengupdate jumlah stok.
Dim sqlKurangiStock As String koneksi5.Open()sqlKurangiStock = "update Satuan_Jual set stok = stok-(" & d & ")where kode_satuan='" & kodesatuan & "' and kode_barang='" & a &"'" scom1 = New SqlCommand(sqlKurangiStock, koneksi5)
status2 = scom1.ExecuteNonQuery()If status2 = 1 ThenElse
MsgBox("Kurangi stok Gagal", MsgBoxStyle.Critical)End IfCatch ex As Exception
MsgBox("Gagal2", MsgBoxStyle.OKOnly, "Info")Finally
koneksi5.Close()End Try
Langkah selanjutnya adalah menghitung total pembelian yang dilakukan
oleh pelanggan. Data hasil perhitungan dimasukkan kedalam listview penjualan.
Berikut kode yang digunakan untuk menghitung total penjualan dan proses
penyimpanan kedalam list view.
Private Sub frmSimpan_Click(ByVal sender As System.Object, ByVal eAs System.EventArgs) Handles frmSimpan.Click
TryIf TextBox2.Text <> "" Then
a = TextBox1.Text 'ID b = TextBox2.Text 'Nama c = TextBox9.Text 'ini harga satuan kodesatuan = TextBox7.Text satuan = txtSatuan.Text d = Me.NumericUpDown1.Value 'qty g = Me.NumericUpDown2.Value 'Diskon f = c * d h = Val(txtSetelahDiskon.Text)
If txtSetelahDiskon.Text = "" Then h = f
End If bersihTextBox()
Call list_view()Dim sa As Double
txtStelahPPH.Text = Val(txtStelahPPH.Text) + hEnd If
Catch ex As Exception
125
MsgBox(ex.Message, MsgBoxStyle.Information,"Perhatian")
End TryEnd Sub
Berikut adalah kode yang digunakan untuk menghitung harga barang
dikalikan dengan banyaknya quantity.
Private Sub NumericUpDown1_ValueChanged(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesNumericUpDown1.ValueChanged TextBox4.Text = Val(TextBox9.Text) *(NumericUpDown1.Value)
End Sub
Untuk menghitung diskon penjualan, kode yang digunakan adalah sebagai
berikut :
Private Sub NumericUpDown2_ValueChanged(ByVal sender AsSystem.Object, ByVal e As System.EventArgs) HandlesNumericUpDown2.ValueChanged
Dim Hrga As Double Hrga = Val(TextBox4.Text) * (Val(NumericUpDown2.Value) /100) txtSetelahDiskon.Text = Val(TextBox4.Text) - Hrga
End Sub
4.8 User Interface Proses Ubah Password
User interface ini digunakan jika user ingin mengganti password loginnya.
Inputan yang digunakan adalah username, password lama dan password yang
baru. Gambar 4.24 dibawah ini merupakan user interface proses ubah password.
126
Gambar 4.24 Fasilitas Ubah Password
Berikut adalah kode yang digunakan untuk mengubah password.
Private Sub btnsave_Click(ByVal sender As System.Object, ByVal eAs System.EventArgs) Handles btnsave.Click
Try koneksi.Open()
If TextBoxuser.Text = "" Then MsgBox("Masukkan User Name",MsgBoxStyle.Exclamation) TextBoxuser.Focus()
ElseIf TextBoxpaslama.Text = "" Then MsgBox("Masukkan Password yang lama",MsgBoxStyle.Exclamation) TextBoxpaslama.Focus()
ElseIf TextBoxpasbaru.Text = "" Then MsgBox("Masukkan Password yang Baru",MsgBoxStyle.Exclamation) TextBoxpasbaru.Focus()
ElseDim sql_update As String
sql_update = "Update Pegawai Set" & _ " password = '" &TextBoxpasbaru.Text & "'Where user_name ='" & TextBoxuser.Text &"'and password = '" & TextBoxpaslama.Text & "'" scom = New SqlCommand(sql_update, koneksi)
Dim status As Integer = scom.ExecuteNonQuery()If status = 1 Then
MsgBox("Ubah Password Berhasil",MsgBoxStyle.Information)
Me.Close()Else
127
MsgBox("Ubah Password Gagal",MsgBoxStyle.Critical)
End IfEnd If
Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message,MsgBoxStyle.Critical, "Koneksi Error !!")
Finally koneksi.Close()
End TryEnd Sub
End Class
128
BAB V
ANALISIS HASIL IMPLEMENTASI
Secara umum, sistem informasi perangkat lunak ini sudah berjalan dengan
baik, sehingga tidak menutup kemungkinan dapat digunakan di Butik Bona
Yogyakarta. Adapun kelebihan,kekurangan dan manfaatnya adalah sebagai
berikut :
5.1 Kelebihan sistem yang dibuat
1. Sistem ini memiliki fasilitas untuk manager dalam mencatat kas awal
yang digunakan sebagai modal awal penjualan tiap harinya.
2. Sistem ini memberi fasilitas bagi kasir untuk mengupdate data
penjualan.
5.2 Kekurangan sistem yang dibuat
1. Sistem ini tidak memiliki fasilitas konversi satuan barang.
2. Sistem ini tidak dapat menginformasikan harga pokok pembelian
barang-barang.
3. Sistem ini tidak memiliki fasilitas Bantuan.
4. Sistem ini tidak memiliki fasilitas laporan dalam bentuk grafik.
5.3 Analisa manfaat
Manfaat yang bisa diperoleh dengan adanya sistem ini adalah sebagai
berikut :
129
1. Adanya data kas mengurangi manipulasi keuangan pada butik dan total
penjualan dapat diketahui dengan cepat dan akurat.
2. Informasi tentang data penjualan secara langsung dan data penjualan
melalui pemesanan dapat diketahui secara cepat.
3. Fasilitas penjualan melalui pemesanan menginformasikan data-data
pesanan penjualan kepada manajer yang belum dan sudah ditangani.
130
BAB VI
PENUTUP
6.1 Kesimpulan
1. Aplikasi Point Of Sales untuk butik secara umum mampu menangani
proses-proses transaksi penjualan yang terjadi didalamnya, sehingga
kemungkinan aplikasi ini dapat digunakan dalam kondisi sesungguhnya.
2. Aplikasi ini memiliki fasilitas untuk mencatat data pegawai, data kas,
data pelanggan, data transaksi penjualan secara langsung maupun data
transaksi penjualan melalui pemesanan serta dapat menampilkan
informasi daftar barang-barang yang dipesan dan pesanan yang belum
lunas.
6.2 Saran
1. Sebaiknya sistem ini diintegrasikan dengan sistem yang dapat
menangani transaksi-transaksi butik lainnya seperti sistem pembelian
dan sistem inventorinya.
2. Sebaiknya sistem ini mampu menangani konversi satuan barang.
3. Sebaiknya sistem ini dapat di integrasikan dengan hardware yang
berhubungan dengan aplikasi penjualan seperti Barcode scanner.
4. Sebaiknya sistem ini diberi fasilitas menu help, sehingga memudahkan
user dalam menggunakannya.
131
DAFTAR PUSTAKA
Kusumo, Drs. Ario Suryo, Visual Basic.NET versi 2002 dan 2003, Elex Media
Komputindo, Jakarta, 2004.
Budiharto, Widodo, Panduan Bagi Programmer .NET Menguasai Visual Basic.Net
Tingkat Lanjut, Elex Media Komputindo, Jakarta, 2003.
Akbar, Ali, VISUAL BASIC.net Belajar Praktis Melalui Berbagai Tutorial dan Tips,
Informatika Bandung, Bandung, 2005.
Martina, Ir. Inge, 36 Jam Belajar Komputer Microsoft SQL Server 2000, Elex Media
Komputindo, Jakarta, 2003.
Yung, Kok, Trik Menguasai Perintah SQL, Elex Media Komputindo, Jakarta, 2003.
Whitten, J. L., Bentley, L. D., Barlow, V. M., System Analysis & Design Methods
Sixth Edition, Irwin/McGraw-Hill, 2004.
Jogiyanto, Analisis & Disain Sistem Informasi : Pendekatan Terstruktur Teori dan
Praktek Aplikasi Bisnis, Andi Offset, Yogyakarta, 1990.
Widjajanto, Nugroho, Sistem Informasi Akuntansi, Erlangga, Jakarta, 2001.
Connolly, T., Begg, C., DATABASE SYSTEM A Pratical Approach To Design,
Implementation And Management, Addison Wesley, 2002.
MSDN Library-July 2004.
top related