Aplikasi Desktop Data Niaga Toko Gandrung Elektrik & Elektronik Berbasis C#
Aplikasi Desktop Data Niaga Toko Gandrung Elektrik & Elektronik Berbasis C#
SKRIPSI
Disusun Oleh :
Juang Firman Haq
20110140070
SKRIPSI
Disusun Oleh:
JUANG FIRMAN HAQ
20110140070
1
HALAMAN PENGESAHAN II
SKRIPSI
Disusun Oleh:
JUANG FIRMAN HAQ
20110140070
Penguji
Mengesahkan
Ketua Program Studi Teknik Informatika
2
PRAKATA
3
6. Para Staf Jurusan Teknologi Informasi UMY, Mbak Lilis, Mas
Andi, dan Mas Haris yang senantiasa membantu penulis dalam
urusan administrasi.
7. Mba Umi selaku pemilik Toko andrun Elektrik dan Elektonik yang
selalu bersedia meluangkan waktu dan membantu memberikan
informasi sebagai bahan penelitian skripsi.
8. Bapak, Ibu, Adek Galih, Adek Lulus, Adek Uda, dan Keluarga
Besar saya yang selalu mengingatkan dalam ibadah, kedisiplinan,
kemandirian, memberi semangat dan mendoakan penulis di setiap
waktu.
9. Saudara Bryan, A’la, Mas Danang yang sudah meluangkan
waktunya untuk mengajari coding.
10. Semua teman-teman 2011 A dan B, serta semua pihak yang telah
menemani dan membantu yang tidak bisa disebutkan satu per satu.
4
DAFTAR ISI
5
3.2 Alur Penelitian.........................................................................................18
3.2.1 System or Information Engineering and Modelling........................19
3.2.2 Software Requirement Analysis.......................................................20
3.2.3 System Design..................................................................................20
3.2.4 Coding..............................................................................................20
3.2.5 Testing..............................................................................................20
3.2.6 Maintenance.....................................................................................21
3.3 Analisis Prosedur.....................................................................................21
3.4 Rancangan Perangkat Lunak...................................................................22
3.4.1 Diagram UML (Unified Modeling Language).................................22
3.4.2 Use Case Diagram.................................................................................23
3.4.3 Activity Diagram..............................................................................24
3.4.4 Class Diagram..................................................................................31
3.4.5 ER Diagram......................................................................................32
3.5 Rancangan Antarmuka (User Interface)..................................................32
3.5.1 Form Login......................................................................................32
3.5.2 Form Utama.....................................................................................33
3.5.3 Form Penjualan Barang....................................................................35
3.5.4 Form Pengembalian Barang.............................................................35
3.5.5 Form Pengembalian Langsung.........................................................36
3.5.6 Form Pembelian Barang...................................................................37
3.5.7 Form Jatuh Tempo Pembelian..........................................................38
3.5.8 Form Laporan Pembelian.................................................................39
3.5.9 Form Pembelian Pembayaran..........................................................40
3.5.10 Form Barang Datang........................................................................41
3.5.11 Form Tambah Barang.......................................................................42
3.5.12 Form Admin Edit Data Barang........................................................43
3.5.13 Form Admin Tambah Data Barang..................................................44
3.5.14 Form Admin Edit User.....................................................................46
3.5.15 Form Admin Tambah User...............................................................47
3.6 Metode Pengujian....................................................................................48
BAB IV HASIL DAN PEMBAHASAN...............................................................49
6
4.1 Implementasi User Interface...................................................................49
4.1.1 Form Login......................................................................................49
4.1.2 Form Menu Utama...........................................................................51
4.1.3 Form Penjualan Barang....................................................................53
4.1.4 Form Pengembalian Barang.............................................................55
4.1.5 Form Pembelian Barang...................................................................55
4.2 Pembahasan.............................................................................................60
4.3 Pengujian Sistem.....................................................................................61
4.3.1 Pengujian User Interface.................................................................61
4.3.2 Pengujian Dasar Sistem...................................................................62
4.3.2 Pengujian Validasi............................................................................63
BAB V KESIMPULAN DAN SARAN.................................................................64
5.2 Kesimpulan..............................................................................................64
5.2 Saran........................................................................................................65
DAFTAR PUSTAKA.............................................................................................66
LAMPIRAN...........................................................................................................67
7
DAFTAR GAMBA
Gambar 3. 1 Metode waterfall...............................................................................18
8
Gambar 3. 24 Rancangan admin data barang........................................................44
9
DAFTAR TABEL
10
INTISARI
11
ABSTRACT
12
BAB I
PENDAHULUAN
manajemen dan pengolahan data sangat tepat. Di Toko Gandrung Eletrik dan
Pencatatan barang masuk dan barang keluar, harga modal dan penjualan, serta
transaksi jual beli masih terpusat pada pencatatan manual (tulis) dan hal
Gandrung Elektrik dan Elektronik berdiri sejak tahun 2007. Seiring berjalan
waktu karena semua pengolahan data masih secara manual, pemilik toko
tikar sebanyak dua kali dalam kurun sembilan tahun. Namun, karena semangat
31
2. Daftar barang masuk dan keluar masih tidak beraturan sehingga
pemilik toko tidak memiliki data yang jelas dalam menganalisis laba
dan keuntungan.
31
Gambar 1. 2 Item barang sangat banyak
31
Dengan munculnya permasalahan tersebut sudah selayaknya dibangun
suatu aplikasi yang dapat mengelola dokumen dan data usaha yang lebih efisien,
efektif serta praktis. Pemiilik toko sudah memahami bahwa penyebab utama
mewujudkan pengolahan data yang lebih terkoordinir. Salah satunya yaitu aplikasi
SQL Server. Aplikasi desktop ini dapat membantu pemilik toko untuk
Disamping itu, pemilik toko juga dapat melakukan pengawasan terhadap segala
aktivitas input dan output data penjualan yang tidak dibatasi oleh jarak dan waktu
31
3. Karyawan mengalami kesulitan untuk mengetahui harga penjualan
awal dari pabrik, harga untuk tokonya, dan harga untuk grosiran karena
31
2. Pengelolaan data penjualan lebih tertata karena sudah menggunakan
sistem komputerisasi.
3. Memudahkan pengecekan jumlah barang masuk dan barang keluar, data
Istimewa Yogyakarta
BAB I : PENDAHULUAN
sistematika penulisan.
31
digunakan sebagai dasar dalam penelitian serta segala sesuatu yang
sistem yang sedang berjalan pada aplikasi apakah sesuai dengan metode
Bab V menjelaskan tentang kesimpulan dan saran yang dibutuhkan dari hasil
penelitian yang telah dibuat.
31
BAB II
namun dengan jenis yang berbeda-beda dan tergantung pada jenis kebutuhan.
berikut:
Maulani (2012) menyusun skripsi dengan judul “Sistem Informasi
data dan sistem informasi yang masih manual pada toko komputer MasCom
31
pengorganisasiannya, sehingga menimbulkan kesalahan dalam penghitungan.
Untuk itu dibuatlah sistem aplikasi penjualan berbasis desktop yang bertujuan
toko. Sistem ini menggunakan metode SDLC. Metode SDLC adalah metode
barang beserta data laporan. Sehingga adanya sistem baru tersebut diperoleh
dan baik untuk digunakan dalam membantu toko MasCom untuk mengolah
tentang data yang diolah baik untuk toko MasCom itu sendiri.
transaksi pada toko. Menurut beberapa ahli ada beberapa definisi, diantaranya
adalah :
31
a. Pranama (2012). Aplikasi adalah satu unit perangkat lunak yang dibuat
tertentu.
tertentu.
Sri Warni (2014). Pada umumnya pembukuan toko terdiri dari beberapa
komponen utama yaitu harga modal, harga eceran, harga per lusin, dan harga
31
2.2.3 Aplikasi Data Niaga
untuk memudahkan pemilik toko atau karyawan dari sebuah toko dalam
aplikasi ini, pemilik toko dapat memantau jenis barang yang stoknya telah
berkurang dan membuat rencana untuk pengadaan barang dengan segera sebelum
kehabisan stock. Tidak hanya itu saja, disini pemilik toko juga dapat menginput
data secara komputerisasi sehingga lebih efektif dalam pengecekan harga awal,
jumlah barang masuk, jumlah barang keluar, bisa dengan mudah mengetahui
harga modal, harga ecer dan grosir di toko. Dengan sistem ini tranparansi data
akan mudah tercipta, karena sebelumnya cuma mengandalkan daya ingat saja.
berjalan sendiri atau independen tidak menggunakan browser. Tidak perlu koneksi
internet, karena semua file yang diperlukan untuk menjalankan aplikasinya sudah
prosesnya lebih cepat. Tetapi aplikasi berbasis desktop apabila akan menjalankan
aplikasi harus diinstal terlebih dahulu di komputer. Bermasalah dengan lisensi, hal
ini membutuhkan lisensi yang banyak pada setiap komputer. Dan biasanya
31
2.2.5 Arsitektur Perangkat Lunak
sistem ini akan dibangun dan dijalankan. Arsitektur perangkat lunak pada aplikasi
a. Admin
mengakses aplikasi input output data ini dengan memasukkan login user yang
benar.
31
b. Komputer
c. Perangkat Lunak
mencetak laporan.
d. Basis Data
oleh admin.
e. Printer
Turbo C++ dan orland Delphi. Bahasa C# juga telah distandarisasi secara
31
bisa digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi
berbasis windows (desktop) dan aplikasi berbasis web, serta aplikasi berbasis web
1. Sederhana
C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C
dan C++. Jika anda familiar dengan C dan C++ atau bahkan Java, anda
polimorfisme.
a. Efisien
mengurangi kerumitan.
b. Modular
31
Kode C# ditulis dengan pembagian masing Class-Class (classes) yang
dan metode yang dimaksud, maka kita akan dapat membuat suatu kode
yang dapat digunakan oleh satu atau beberapa aplikasi dan program (kode
sering menyebutnya dengan SQL Server saja. Microsoft SQL Server juga
Microsoft SQL Server Mirosoft SQL Server banyak digunakan pada dunia bisnis,
data. Pada tahun 2000 Microsoft mengeluarkan SQL Server 2000 yang merupakan
versi yang banyak digunakan. Berikut ini adalah beberapa fitur yang dari sekian
31
b. Multi-Instance Support. Fitur ini memungkinkan Anda untuk
sama.
Inteljensi melalui analisis servis. Selain itu, SQL Server 2000 juga
reorganisasi indeks.
31
BAB III
METODOLOGI PENELITIAN
penunjang keberhasilan penelitian. Alat dan bahan tersebut adalah sebagai berikut:
3.1.1 Alat
Hardware berupa:
a. Laptop
b. Perangkat Input dan Outut( Keyboard, Mouse, Scanner, dan Printer)
Software berupa:
a. Sistem Operasi (Windows 8.1)
b. SQL Server 2014
c. Visual Studio 2014
d. Microsoft Visio 2010
e. Balsamiq
3.1.2 Bahan
31
e. Maka akan dibuat aplikasi dengan spesifikasi sebagai berikut:
adalah model Waterfall. Waterfall Model atau Classic Life Cycle merupakan
model yang paling banyak dipakai dalam Software Engineering (SE). Disebut
waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap
S.Pressman, tahapan pada model SDLC Waterfall dalam pembuatan aplikasi dapat
31
Gambar 3. 1 Metode waterfall
31
3.2.2 Software Requirement Analysis
3.2.4 Coding
Untuk dapat dimengerti oleh mesin yang dalam hal ini adalah komputer,
maka desain aplikasi harus diubah bentuknya menjadi bentuk yang dapat
coding, dalam hal ini bahasa pemrograman yang digunakan adalah bahasa
pemrograman C#.
3.2.5 Testing
Semua fungsi-fungsi software harus diuji coba agar software bebas dari error atau
kesalahan dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah
didefinisikan sebelumnya.
31
3.2.6 Maintenance
pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu.
Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan
sebelumnya atau ada penambahan fitur-fitur yang belum ada pada software.
grosir dan eceran dari setiap item yang telah dibeli. Jika konsumen
membeli barang 12 atau lebih, maka akan mendapat diskon dari toko.
5. Mengirim barang ke toko lain dengan menyiapkan barang yang di order
(diluar barang yang masuk ke toko). Lalu membuat nota penjualan keluar
tempo.
7. Kalau penjualannya menggunakan cash maka nota asli dipegang oleh toko
tujuan tersebut.
Prosedur input dan output data yang sedang berjalan di Toko Gandrung
31
1. Admin akan login seebagai owner atau sebagai karyawan
2. Ketika login sebagai owner, fungsi yang bisa dijalankan adalah input
3. Ketika login sebagai karyawan maka fungsi yang bisa dijalankan hanya
4. Pada form penjualan, admin dapat mengelola data penjualan, melihat sisa
UML adalah sebuah bahasa yang telah menjadi standar dalam industry
memodelkan aplikasi berorientasi objek dalam UML meliputi use case diagram,
31
aktifitas yang mungkin terjadi dengan menggunakan sudut pandang dari aktor
sebagai pengguna sistem. Use case diagram lebih menekankan pada “siapa”
melakukan “apa” dalam lingkungan sistem perangkat lunak yang akan dibangun.
Use Case diagram untuk aplikasi toko ini dapat dilihat pada Gambar 3.2
fungsi yang dimiliki administrator adalah untuk melakukan input, output, edit
item
31
3.4.3 Activity Diagram
mungkin terjadi dan bagaimana mereka berakhir. Activity diagram juga dapat
A. Login
31
Gambar 3. 3 Activity login
proses admin melakukan penambahan data, mengedit data ataupun melihat data
barang yang masuk. Activity diagram mengelola data penjualan barang dapat
31
Gambar 3. 4 Activity penjualan barang
tentang alur kerja dari proses input data yang selanjutnya semua akan tersimpan di
31
Gambar 3. 5 Activity pengembalian barang
tentang alur kerja dari proses input data yang selanjutnya semua akan tersimpan di
dalam database. Activity diagram edit data barang masuk dapat dilihat pada
Gambar 3.6
31
Gambar 3. 6 Activity pembelian barang
31
E. Manajemen Admin
alur kerja dari proses pembuatan password karyawan baru. Pada sistem ini admin
31
F. Cek History
Admin mempunyai hak untuk melihat laporan data penjualan dengan yang
juga dapat mencetak laporannya. Activity diagram laporan dapat dilihat pada
Gambar 3.8.
31
3.4.4 Class Diagram
4. Kelas Barang memiliki asosiasi dengan kelas barang datang. Barang yang
31
5. Kelas Pengembalian memiliki asosiasi dengan kelas barang. Misalkan
penjualannya.
setiap item yang terbeli terdapat data mengenai sales tempat pengambilan
barang.
3.4.5 ER Diagram
merancang basis data dan memperlihatkan relasi antar entitas atau objek dengan
memudahkan dalam merancang basis data yang ditunjukkan pada Gambar 3.10
31
Gambar 3. 10 ER Diagram aplikasi toko
31
3.5 Rancangan Antarmuka (User Interface)
input output data di Toko Gandrung Elektrik & Elektronik, dengan tujuan
tampilan aplikasi.
form utama aplikasi. Gambar rancangan antarmuka login dapat dilihat pada
gambar 3.11.
31
3.5.2 Form Utama
dapat dibuka oleh admin setelah memasukkan username dan password. Ada dua
fungsi disini, yaitu login sebagai owner dan uga sebagai karyawan. Berikut
Gambar rancangan antarmuka form utama login sebagai owner dapat dilihat pada
Gambar 3.12
31
Sedangkan yang berikut ini adalah gambar rancangann antarmuka form utama
31
3.5.3 Form Penjualan Barang
edit/hapus, cetak dan hapus layar. Gambar rancangan antarmuka form penjualan
31
berbagai alasan. Admin dapat melihat alasan pengembalian barang di laporan
3.15
untuk admin memasukkan data pembelian yang di return oleh konsumen berupa
tuker barang dengan yang baru atau dengan yang lebih baik dari sebelumnya.
31
Gambar 3. 16 Rancangan pengembalian langsung
admin memasukkan data. Dalam form pembelian barang admin dapat menambah,
mengedit / mengahpus data dari item yang dijual ataupun dibeli. Rancangan
barang, dan tombol untuk cek harga. Gambar rancangan antarmuka form dapat
31
Gambar 3. 17 Rancangan form pembelian
agar bisa melihat tanggal jatuh tempo dari item yang dibeli ke produsen. Gambar
31
Gambar 3. 18 Rancangan pembelian jatuh tempo
digunakan oleh admin untuk mengetahui data laporan pembelian setiap item
barang. Meliputi jumlah barang yang dibeli dengan harganya, beserta detail
pembelian dari setiap item bisa diakses dari form ini. Gambar rancangan
31
Gambar 3. 19 Rancangan laporan pembelian
admin dapat melihat laporan pembelian dari setiap item yang dibeli. Admin juga
dapat melihat total biaya dan total kekurangan yang harus dilunasi dari setiap item
yang dibeli oleh pemilik toko. Gambar rancangan antarmuka form pembelian
31
Gambar 3. 20 Rancangan form pembelian pembayaran
data pembelian barang beserta tanggal pembelian dan tanggal jatuh tempo untuk
setiap pembelian yang dibeli oleh pemilik toko. Gambar rancangan antarmuka
31
Gambar 3. 21 Rancangan form pembelian barang datang
berfungsi untuk input data harga dari setiap item. Pada form ini admin akan
lapangan. Gambar rancangan antarmuka form tambah barang dapat dilihat pada
Gambar 3.22
31
Gambar 3. 22 Rancangan form tambah barang
berfungsi untuk edit data barang di toko. Didalam form ini, admin dapat
melakukan perubahan harga penjualan dari setiap item barang yang ada di toko.
Meliputi edit harga jual 1 / harga satuan toko harga jual 2 = untuk harga retail, dan
harga jual 3 = harga per lusin. Gambaran rancangan antarmuka form edit data
31
Gambar 3. 23 Rancangan admin data barang
berfungsi untuk input harga modal, harga jual 1 (Harga Satuan Toko), harga jual 2
(Harga Untuk Retail), harga jual 3 (Harga Eceran). Selain itu juga di form ini
admin bisa input jumlah stok dari setiap item yang dibeli. Didalam form tambah
data barang ini terdapat empat tombol yaitu tombol edit, hapus,simpan, dan batal.
Tombol edit untuk mengedit data harga barang ketika ada yang mau diperbaharui.
Tombol hapus untuk menghapus data bila ada kekeliruan. Tombol simpan untuk
Gambaran rancangan antarmuka form data barang dapat dilihat pada Gambar 3.24
31
Gambar 3. 24 Rancangan admin tambah data barang
berfungsi untuk mengedit nama pengguna sebelumnya. Edit disini mencakup eit
nama, ganti password lama dengan yang baru. Didalam form edit user terdapat
empat tombol yaitu tombol edit untuk mengubah data yang sudah ada, tombol
data user, dan tombol batal untuk membatalkan perubahan. Gambaran rancangan
31
Gambar 3. 25 Rancangan admin edit user
untuk sebagai tempat input data beserta password untuk login sebagai karyawan
ataupun sebagai owner. Didalam form tambah user terdapat dua tombol yaitu
tombol simpan untuk menyimpan perubahan data dan tombol batal untuk
31
Gambar 3. 126 Rancangan form admin tambah user
Metode pengujian yang dipakai adalah Black box. Black box testing adalah
pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan
memeriksa fungsional dari perangkat lunak. Pengujian black box ini mengevaluasi
apa sesungguhnya yang terjadi dalam proses detailnya (hanya mengetahui input
dan output).
31
BAB IV
Form login merupakan form yang pertama muncul pada saat mulai
penyalahgunaan hak akses, sehingga keamanan data dapat terjamin. Di sini admin
diminta untuk mengisi username dan password untuk dapat mengakses data
31
Gambar 4. 2 Notifikasi eror
Apabila tombol LOGIN diklik dan username dan password masih kosong,
Name dan Password….. dan pengguna tidak dapat masuk ke dalam sistem.
31
Gambar 4. 3 Salah password
Apabila usernme sudah benar di input tetapi salah password, maka akan
muncul form utama dari aplikasi. Dalam form utama terdapat beberapa menu
yang dapat dioperasikan oleh admin. Pengguna aplikasi terbagi mnjadi dua
pembelian barang, form admin, dan menu cek histori. Form utama dapat dilihat
31
Gambar 4. 4 Menu utama aplikasi admin
31
Gambar 4. 5 Menu utama aplikasi karyawan
Pada form penjualan barang terdapat pilihan menu yaitu tambah barang,
edit/hapus barang, cetak (belum difungsikan karena belum penting kata pemilik
toko), dan menu hapus layar. Form penjualan dapat dilihat pada Gambar 4.6
31
Pada form penjualan barang terdapat pilihan menu yaitu tambah barang.
Berikut tampilan ketika tambah barang setelah berhasil di input bisa dilihat
31
4.1.4 Form Pengembalian Barang
Form pengembalian terdapat 3 (tiga) buah tab yang dapat dipilih, yaitu tab
dalam basis data sistem. Terdapat 6 menu yaitu pembelian barang, barang datang,
pembayaran barang, lihat tanggal jatuh tempo, lihat laporan pembelian, dan lihat
data pembayaran . Jika admin mau mengisi menu Tambah Barang maka tidak
perlu lagi mengisi tanggal, bulan, dan tahun penginputan terlebih dahulu karena
sudah di hide. Admin cukup mengisi jenis pemesanan dan nama sales terlebih
31
Gambar 4. 10 Form pembelian barang
Jika data belum terisi dan admin memilih menu tambah barang maka akan
muncul message box yang memberi tahukan bahwa jenis pembelian dan nama
sales diisi terlebih dahulu. Tampilan message box dapat dilihat pada Gambar 4.11
31
Setelah data terisi lengkap baik itu tanggal, bulan, dan jenis pemesanan
telah diisi semua maka admin langsung bisa melakukan aktifitas input data. Form
Setelah data terisi lengkap baik itu tanggal, bulan, dan jenis pemesanan
telah diisi semua maka admin langsung bisa melakukan aktifitas input data barang
31
Gambar 4. 13 Admin bisa melakukan input data barang datang
Admin juga langsung bisa melakukan aktifitas input data pembayaran barang.
Disini pemilik toko bisa mencatat tanggal barang masuk dan tanggal jatuh tempo
apanila jenis pemesanan barang yang dilakukan dengan sistem kredit atau pesan
dahulu dengan dp sesuai budget pemilik toko. Form pembayaran barang sendiri
31
Selain itu, admin juga bisa melihat tanggal jatuh tempo item barang. Form lihat
Form lain yang bisa di akses yaitu admin dapat melihat laporan pembelian
barang. Form lihat laporan pembelian dapat dilihat pada Gambar 4.16
31
Form terakhir yang bisa di akses oleh admin yaitu dapat melihat laporan data
pembayaran. Form lihat lihat data pembayaran dapat dilihat pada Gambar 4.17
4.2 Pembahasan
jual beli barang di toko elektronik. Aplikasi ini juga membantu karyawan toko
ini. Aplikasi ini juga dapat menampilkan dan mengubah laporan barang
dan juga laporan hutang dan pengembalian barang di toko elektronik bentuk pdf.
Aplikasi ini juga akan menampilkan data barang yang dimilik oleh toko, riwayat
31
4.3 Pengujian Sistem
diajukan adalah elemen button dan tombol bantuan keyboard di setiap halaman
aplikasi
2 Tombol Aplikasi menampilkan Form muncul sesuai Berhasil
tombol dipilih
3 Tombol Aplikasi dapat Form ditampilkan Berhasil
tambah data
5 Tombol Aplikasi menghapus Data terhapus sesuai Berhasil
31
4.3.2 Pengujian Dasar Sistem
fungsi yang diharapkan atau dirancang sesuai dengan kebutuhan, hasil pengujian
database
4 Hapus Data Aplikasi menghapus Data dihapus dari Berhasil
yang di dalam sistem sudah berjalan dengan baik, hasil pengujian ditunjukkan
31
password jika peringatan bahwa login beum diisi dan
password
2 Validasi Aplikasi Aplikasi menampilkan Berhasil
username dan
password
31
BAB V
5.2 Kesimpulan
Dari hasil analisis dan pengujian terhadap aplikasi surat menyurat berbasis
pemilik toko dalam mencatat data barang masuk dan keluar. Aplikasi
dan sisa stok barang dari setiap item yang ada di toko.
dengan detail data harga dari setiap item barang. Meliputi harga
modal, harga jual untuk toko, untuk grosir, dan untuk eceran. Bukan
31
5.2 Saran
sistem adalah:
pengguna.
31
DAFTAR PUSTAKA
Anda, Jerrytrian (2013). Bahasa Pemrograman C#. Diakses pada tanggal 8 Mei
2018 dari http://jerrytriananda.blogspot.co.id/2013/09/bahasa-pemrograman-
c.html
Adi Wicaksana (t.thn.). Pengertian Aplikasi Berbasis Web dan Dekstop.
http://www.aldo-expert.com/writers/pengertian-aplikasi-berbasis-web-dan-
desktop.html
Afif (2002). Pengertian UML . http://informatika.web.id/pengertian-uml.htm
Pressman, Roger S (2013). 4 Metodologi Pengembangan Software Berbasis
SDLC (Software Development Life Cycle) . http://andgaa.web.id/4-metodologi-
pengembangan-software-berbasis-sdlc-software-development-life-cycle/
Annisa (2012). Sistem Informasi Penjualan Retail. Diakses pada tanggal 20 April
2018 dari http://eprints.ums.ac.id/20639/1/HALAMAN_DEPAN.pdf
Fathurrahman (2017). Belajar membuat aplikasi input output data. Diakses pada
tanggal 10 April 2018 dari https://www.okedroid.com/2017/08/belajar-membuat-
aplikasi-input-dan-output-data-Kotlin-Android.html
31
LAMPIRAN
1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Data.SqlClient;
6. using System.Drawing;
7. using System.Linq;
8. using System.Text;
9. using System.Windows.Forms;
10.
11. namespace AplikasiToko
12. {
13. public partial class FormLogin : Form
14. {
15. public FormLogin()
16. {
17. InitializeComponent();
18. }
19.
20. private void pictureBox1_Click(object sender, EventArgs e)
21. {
22.
23. }
24.
25. private void label7_Click(object sender, EventArgs e)
26. {
27.
28. }
29.
30. private void lblError_Click(object sender, EventArgs e)
31. {
32.
33. }
34.
35. private void tableLayoutPanel2_Paint(object sender,
PaintEventArgs e)
36. {
37.
38. }
39.
40. private void button4_Click(object sender, EventArgs e)
41. {
42. string user, pass, roles;
43. user = pass = roles = "";
31
44. string strConnection = "server=DESKTOP-J1Q3JJ8\\JUANKSQL;
initial catalog=TokoGandrung; user id=sa; password=123;";
45. SqlConnection sqlConnection = new
SqlConnection(strConnection);
46. String SQLQuery = "SELECT UserName, Password, Roles FROM
UserLogin where UserName='" + txtUser.Text + "'";
47. SqlCommand command = new SqlCommand(SQLQuery,
sqlConnection);
48. SqlDataReader Dr;
49. sqlConnection.Open();
50. Dr = command.ExecuteReader();
51. if (Dr.HasRows == false)
52. {
53. lblError.Visible = true;
54. lblError.Text = "Username salah !! silahkan coba
lagi.....";
55. }
56. if (txtUser.Text == "")
57. {
58. lblError.Visible = true;
59. lblError.Text = "Silahkan masukkan Username dan
Password.....";
60. }
61. else
62. {
63. while (Dr.Read())
64. {
65. user = Dr[0].ToString();
66. pass = Dr[1].ToString();
67. roles = Dr[2].ToString();
68. }
69. sqlConnection.Close();
70. if ((txtUser.Text == user) && (txtPass.Text == pass))
71. {
72. FormHome a = new FormHome();
73. a.setUserText(user);
74. a.setRoleText(roles);
75. a.UserRestrict(roles);
76. a.Show();
77. lblError.Visible = false;
78. this.Hide();
79. }
80. else
81. {
82. lblError.Visible = true;
83. lblError.Text = "Password salah !!!. silahkan
coba lagi.....";
84. }
85. }
86. }
87.
88. private void label1_Click(object sender, EventArgs e)
89. {
90.
91. }
92.
93. private void txtUser_TextChanged(object sender, EventArgs e)
31
94. {
95.
96. }
97.
98. private void FormLogin_Load(object sender, EventArgs e)
99. {
100.
101. }
102. }
103. }
namespace AplikasiToko
{
public partial class FormPembelian : Form
{
public FormHome logicalPrnt { get; set; }
SqlDataReader Dr;
string[] ID = new string[20];
int[] jml = new int[10];
int stok = 0, stoksebelum = 0, stoksesudah = 0, i = 0, j = 0;
int TotalLp = 0, TotalBarang = 0, TotalDPLp = 0, TotalKurangLp = 0;
string strConnection = "server=DESKTOP-J1Q3JJ8\\JUANKSQL; initial
catalog=TokoGandrung; user id=sa; password=123;";
public FormPembelian()
{
InitializeComponent();
RefreshDG();
for (int i = 1; i < 32; i++)
{
cbHari.Items.Add(i);
cbHariDtgBD.Items.Add(i);
cbHariJtBD.Items.Add(i);
cbHariJtPB.Items.Add(i);
cbHariByr.Items.Add(i);
}
for (int i = 1; i < 13; i++)
{
cbBulan.Items.Add(i);
cbBulanLp.Items.Add(i);
cbBulanDtgBD.Items.Add(i);
cbBulanJtBD.Items.Add(i);
cbBulanJtPB.Items.Add(i);
cbBulanByr.Items.Add(i);
cbBulanJt.Items.Add(i);
31
cbBlnBr.Items.Add(i);
}
for (int i = 2017; i < 3000; i++)
{
cbTahun.Items.Add(i);
cbTahunLp.Items.Add(i);
cbTahunDtgBD.Items.Add(i);
cbTahunJtBD.Items.Add(i);
cbTahunJtPB.Items.Add(i);
cbTahunByr.Items.Add(i);
cbTahunJt.Items.Add(i);
cbThnBr.Items.Add(i);
}
}
31
txtID.Text = "B000" + ctr;
}
else if ((ctr >= 999) && (ctr < 9999))
{
ctr = ctr + 1;
txtID.Text = "B00" + ctr;
}
else if ((ctr >= 9999) && (ctr < 99999))
{
ctr = ctr + 1;
txtID.Text = "B0" + ctr;
}
else if (ctr >= 99999)
{
ctr = ctr + 1;
txtID.Text = "B" + ctr;
}
txtTotal.Text = "0";
txtDP.Text = "0";
txtKurang.Text = "0";
cbJenisBeli.Text = "";
cbSales.Text = "";
dgPembelian.DataSource = null;
}
}
private void tabPage2_Click(object sender, EventArgs e)
{
31
cmd.ExecuteNonQuery();
sqlConnection.Close();
MessageBox.Show("Data Disimpan Dengan Sukses !!!!");
cbIDPB.Text="";
txtBiayaPB.Text="0";
txtKurangPB.Text="0";
cbHariJtPB.Text="";
cbBulanJtPB.Text = "";
cbTahunJtPB.Text="";
cbHariByr.Text="";
cbBulanByr.Text="";
cbTahunByr.Text="";
txtTotalPB.Text="0";
31
+ ",jenisPembelian='"+cbJenisBeli.SelectedItem.ToString()+ "' Where
idPembelian = '" + txtID.Text + "'";
SqlCommand cmd2 = new SqlCommand(query2, sqlConnection);
string query3 = "update Pembelian set tanggal='" + tanggal + "',
namaSales='" + cbSales.SelectedValue.ToString()
+ "', TotalPembelian=" + txtTotal.Text + ", DP=" + txtDP.Text + ",
kekurangan=" + txtKurang.Text
+ ",jenisPembelian='" + cbJenisBeli.SelectedItem.ToString() + "',status
= 'Lunas' " + "Where idPembelian = '" + txtID.Text + "'";
SqlCommand cmd3 = new SqlCommand(query3, sqlConnection);
sqlConnection.Open();
if (Convert.ToInt32(txtKurang.Text) == 0)
{
cmd3.ExecuteNonQuery();
}
else
{
cmd2.ExecuteNonQuery();
}
sqlConnection.Close();
MessageBox.Show("Data Disimpan Dengan Sukses !!!!");
31
public string IDPenjualan()
{
return txtID.Text;
}
31
else
return false;
}
31
SqlCommand cmd = new SqlCommand("Insert Into
Pembelian(idPembelian,tanggal,namaSales,totalPembelian, DP, kekurangan,
jenisPembelian, status) Values
(@id,@tanggal,@sales,@total,@totalDP,@totalKrg,@jenis,@status)");
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
cmd.Parameters.AddWithValue("@id", txtID.Text);
string tanggal = cbTahun.SelectedItem + "-" + cbBulan.SelectedItem + "-"
+ cbHari.SelectedItem;
cmd.Parameters.AddWithValue("@sales",
cbSales.SelectedValue.ToString() );
string x = "0";
cmd.Parameters.AddWithValue("@total", x);
cmd.Parameters.AddWithValue("@totalDP", x);
cmd.Parameters.AddWithValue("@totalKrg", x);
cmd.Parameters.AddWithValue("@jenis",
cbJenisBeli.SelectedItem.ToString());
31
txtKurang.Text = kurang.ToString();
}
}
}
}
31
private void button1_Click(object sender, EventArgs e)
{
DetailPembelian a = new DetailPembelian();
a.LogicalParent = this;
a.Show();
string x = cbIDBD.SelectedValue.ToString();
a.KontPress(x);
}
31
txtTotalPB.Text = total.ToString();
txtKurangPB.Text = txtTotalPB;
}
31
for (j = 0; j <= i; j++)
{
stoksebelum = GetStok(ID[j]);
stoksesudah = stoksebelum + jml[j];
UpdateStok(ID[j], stoksesudah);
}
}
31
SqlConnection sqlConnection = new SqlConnection(strConnection);
SqlConnection conn = new SqlConnection(strConnection);
conn.Open();
SqlCommand comm = new SqlCommand("SELECT Count(*) FROM Pembelian where
MONTH(tanggal) =" + bln + " and YEAR(tanggal) = " + thn, conn);
Int32 count = (Int32)comm.ExecuteScalar();
conn.Close();
string[] IDBeli = new string[count];
string SQLQuery = "SELECT IdPembelian, DP, kekurangan FROM Pembelian
where MONTH(tanggal) =" + bln + " and YEAR(tanggal) = " + thn;
SqlCommand command = new SqlCommand(SQLQuery, sqlConnection);
sqlConnection.Open();
Dr = command.ExecuteReader();
while (Dr.Read())
{
IDBeli[x] = Dr["idPembelian"].ToString();
//string query = "Select namaBarang 'Nama Barang',harga 'Harga',jumlah
'Jumlah',potongan 'Potongan / Diskon',totalHarga 'Total',statusBarang
'Status' from DetailPembelian where idPembelian = '" + IDBeli[x] + "'";
string query = "Select DetailPembelian.namaBarang 'Nama
Barang',DetailPembelian.harga 'Harga',DetailPembelian.jumlah
'Jumlah',DetailPembelian.potongan 'Potongan /
Diskon',DetailPembelian.totalHarga 'Total',DetailPembelian.statusBarang
'Status', Pembelian.tanggal 'Tanggal' from DetailPembelian INNER JOIN
Pembelian ON DetailPembelian.idPembelian = Pembelian.idPembelian where
DetailPembelian.idPembelian = '" + IDBeli[x] + "'";
string query1 = "Select * from DetailPembelian where idPembelian = '" +
IDBeli[x] + "'";
SqlConnection con1 = new SqlConnection(strConnection);
SqlCommand command1 = new SqlCommand(query1, con1);
TotalDPLp = TotalDPLp + Convert.ToInt32(Dr["DP"]);
TotalKurangLp = TotalKurangLp + Convert.ToInt32(Dr["kekurangan"]);
con1.Open();
SqlDataReader Dr1 = command1.ExecuteReader();
while (Dr1.Read())
{
TotalLp = TotalLp + Convert.ToInt32(Dr1["totalHarga"]);
TotalBarang = TotalBarang + Convert.ToInt32(Dr1["jumlah"]);
}
con1.Close();
SqlDataAdapter da = new SqlDataAdapter(query, con1);
x++;
da.Fill(ds, "Details");
}
sqlConnection.Close();
return ds;
}
31
}
31
private void lblUser_Click(object sender, EventArgs e)
{
}
}
}
namespace AplikasiToko
{
public partial class FormPenjualan : Form
{
public FormHome logicalPrnt { get; set; }
SqlDataReader Dr;
string[] ID = new string[20];
int[] jml = new int[10];
int stok = 0, stoksebelum = 0, stoksesudah = 0, i = 0, j = 0;
int TotalLp = 0, TotalBarang = 0;
string strConnection = "server=DESKTOP-J1Q3JJ8\\JUANKSQL; initial
catalog=TokoGandrung; user id=sa; password=123;";
public FormPenjualan()
{
InitializeComponent();
RefreshDG();
for (int i = 1; i < 32; i++)
{
cbHari.Items.Add(i);
cbHariLp.Items.Add(i);
}
for (int i = 1; i < 13; i++)
{
cbBulan.Items.Add(i);
cbBlnLp.Items.Add(i);
}
for (int i = 2017; i < 3000; i++)
{
cbTahun.Items.Add(i);
cbThnLp.Items.Add(i);
}
31
// laporan_load();
}
31
cbTahun.Text = "";
dgPenjualan.DataSource = null;
}
}
public string IDPenjualan()
{
return txtID.Text;
}
31
return true;
}
else
return false;
}
31
if (Dr.HasRows == false)
{
sqlConnection.Close();
SqlCommand cmd = new SqlCommand("Insert Into
Penjualan(idPenjualan,tanggalPenjualan,nominalPenjualan) Values
(@id,@tanggal,@harga)");
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
cmd.Parameters.AddWithValue("@id", txtID.Text);
string tanggal = cbTahun.SelectedItem + "-" +
cbBulan.SelectedItem + "-" + cbHari.SelectedItem;
string x = "0";
cmd.Parameters.AddWithValue("@harga", x);
sqlConnection.Open();
cmd.ExecuteNonQuery();
}
sqlConnection.Close();
TambahJualBarang a = new TambahJualBarang();
a.LogicalParent = this;
a.Show();
a.NumberNota(txtID.Text);
this.Enabled = false;
}
}
31
{
SqlConnection sqlConnection = new SqlConnection(strConnection);
String SQLQuery = "SELECT * FROM Barang where namaBarang ='" +
cbID.Text + "'";
SqlCommand command = new SqlCommand(SQLQuery, sqlConnection);
sqlConnection.Open();
Dr = command.ExecuteReader();
while (Dr.Read())
{
txtStok.Text = Dr["stok"].ToString();
txtGrosir.Text = Dr["hargaJual2"].ToString();
txtSatuan.Text = Dr["hargajual1"].ToString();
}
sqlConnection.Close();
}
31
string tanggal = cbThnLp.SelectedItem + "-" +
cbBlnLp.SelectedItem + "-" + cbHariLp.SelectedItem;
dgLaporan.DataSource = getLp(tanggal).Tables[0];
txtPms.Text = TotalLp.ToString();
txtBT.Text = TotalBarang.ToString();
// dgLaporan.DataBind();
}
return ds;
}
31
int a = Convert.ToInt32(cbBulan.Text);
int b = Convert.ToInt32(cbHari.Text);
if (CekKosong() == true)
{
MessageBox.Show("Nama Dan Tanggal Harus diisi dulu !!!");
}
else if (ValidateDate(b, a) == false)
{
MessageBox.Show("Tanggal tidak valid !!!");
}
else
{
string tanggal = cbTahun.SelectedItem + "-" +
cbBulan.SelectedItem + "-" + cbHari.SelectedItem;
SqlConnection sqlConnection = new
SqlConnection(strConnection);
string query2 = "update Penjualan set tanggalPenjualan='"
+ tanggal + "', nominalPenjualan=" + txtTotal.Text + " Where idPenjualan =
'" + txtID.Text + "'";
SqlCommand cmd2 = new SqlCommand(query2, sqlConnection);
sqlConnection.Open();
cmd2.ExecuteNonQuery();
sqlConnection.Close();
MessageBox.Show("Data Disimpan Dengan Sukses !!!!");
RefreshDG();
}
}
31
public void getIdJml()
{
i = 0;
SqlConnection sqlConnection = new SqlConnection(strConnection);
string query1 = "SELECT * FROM DetailPenjualan where
IdPenjualan='" + txtID.Text + "'";
SqlCommand command2 = new SqlCommand(query1, sqlConnection);
sqlConnection.Open();
Dr = command2.ExecuteReader();
while (Dr.Read())
{
ID[i] = Dr["namaBarang"].ToString();
jml[i] = Convert.ToInt32(Dr["jumlah"]);
i++;
}
sqlConnection.Close();
}
31
SqlConnection sqlConnection = new SqlConnection(strConnection);
string query1 = "Delete FROM DetailPenjualan where
idPenjualan='" + txtID.Text + "'";
SqlCommand command2 = new SqlCommand(query1, sqlConnection);
sqlConnection.Open();
Dr = command2.ExecuteReader();
sqlConnection.Close();
}
}
}
}
namespace AplikasiToko
{
public partial class FormPenjualan : Form
{
public FormHome logicalPrnt { get; set; }
SqlDataReader Dr;
string[] ID = new string[20];
int[] jml = new int[10];
int stok = 0, stoksebelum = 0, stoksesudah = 0, i = 0, j = 0;
int TotalLp = 0, TotalBarang = 0;
string strConnection = "server=DESKTOP-J1Q3JJ8\\JUANKSQL; initial
catalog=TokoGandrung; user id=sa; password=123;";
public FormPenjualan()
{
InitializeComponent();
RefreshDG();
for (int i = 1; i < 32; i++)
{
cbHari.Items.Add(i);
cbHariLp.Items.Add(i);
}
for (int i = 1; i < 13; i++)
31
{
cbBulan.Items.Add(i);
cbBlnLp.Items.Add(i);
}
for (int i = 2017; i < 3000; i++)
{
cbTahun.Items.Add(i);
cbThnLp.Items.Add(i);
}
// laporan_load();
}
31
}
else if (ctr >= 99999)
{
ctr = ctr + 1;
txtID.Text = "J" + ctr;
}
txtTotal.Text = "0";
cbBulan.Text = "";
cbHari.Text = "";
cbTahun.Text = "";
dgPenjualan.DataSource = null;
}
}
public string IDPenjualan()
{
return txtID.Text;
}
31
else
return true;
}
31
{
SqlConnection sqlConnection = new
SqlConnection(strConnection);
String SQLQuery = "SELECT idPenjualan FROM Penjualan
where idPenjualan='" + txtID.Text + "'";
SqlCommand command = new SqlCommand(SQLQuery,
sqlConnection);
sqlConnection.Open();
Dr = command.ExecuteReader();
if (Dr.HasRows == false)
{
sqlConnection.Close();
SqlCommand cmd = new SqlCommand("Insert Into
Penjualan(idPenjualan,tanggalPenjualan,nominalPenjualan) Values
(@id,@tanggal,@harga)");
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
cmd.Parameters.AddWithValue("@id", txtID.Text);
string tanggal = cbTahun.SelectedItem + "-" +
cbBulan.SelectedItem + "-" + cbHari.SelectedItem;
string x = "0";
cmd.Parameters.AddWithValue("@harga", x);
sqlConnection.Open();
cmd.ExecuteNonQuery();
}
sqlConnection.Close();
TambahJualBarang a = new TambahJualBarang();
a.LogicalParent = this;
a.Show();
a.NumberNota(txtID.Text);
this.Enabled = false;
}
}
31
EditJualBarang b = new EditJualBarang();
b.LogicalParent = this;
b.Show();
this.Enabled = false;
}
31
private void menuStrip1_ItemClicked(object sender,
ToolStripItemClickedEventArgs e)
{
31
}
sqlConnection.Close();
return ds;
}
31
getIdJml();
for (j = 0; j <= i; j++)
{
stoksebelum = GetStok(ID[j]);
stoksesudah = stoksebelum + jml[j];
UpdateStok(ID[j], stoksesudah);
}
}
31
SqlCommand command2 = new SqlCommand(query1, sqlConnection);
sqlConnection.Open();
Dr = command2.ExecuteReader();
sqlConnection.Close();
}
}
}
}
31