Anda di halaman 1dari 129

SISTEM INFORMASI PENJUALAN BARANG

PADA APOTEK K-24

TUGAS AKHIR

FARUQ HAFIZ PURBA


092406132

PROGRAM STUDI DIPLOMA III TEKNIK INFORMATIKA


DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012

Universitas Sumatera Utara


SISTEM INFORMASI PENJUALAN BARANG
PADA APOTEK K-24

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya

FARUQ HAFIZ PURBA


092406132

PROGRAM STUDI DIPLOMA III TEKNIK INFORMATIKA


DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012

Universitas Sumatera Utara


PERSETUJUAN

Judul : SISTEM INFORMASI PENJUALAN BARANG


PADA APOTEK K-24
Kategori : TUGAS AKHIR
Nama : FARUQ HAFIZ PURBA
Nim : 092406132
Program Studi : D-3 TEKNIK INFORMATIKA
Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM UNIVERSITAS SUMATERA UTARA

Diluluskan di
Medan, Juni 2012

Diketahui
Departemen Matematika FMIPA USU
Ketua, Dosen Pembimbing

Prof. Dr. Tulus, Vordipl.Math., M.Si., Ph.D Dr. Sutarman ,M.Sc


NIP. 19620901 198803 1 002 NIP. 19631026 199003 1 001

Universitas Sumatera Utara


PERNYATAAN

SISTEM INFORMASI PENJUALAN BARANG PADA APOTEK K-24

TUGAS AKHIR

Saya mengakui bahwa Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali
beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juni 2012

FARUQ HAFIZ PURBA


092406132

Universitas Sumatera Utara


PENGHARGAAN

Puji syukur Alhamdulillah penulis ucapkan serta panjatkan kehadirat Allah SWT
yang telah memberikan rahmat, berkah serta hidayah Nya kepada penulis sehingga
penulis dapat menyelesaikan tugas akhir ini sebagai salah satu syarat untuk
menyelesaikan perkuliahan pada Program Studi Diploma-3 Teknik Informatika Fakultas
Matematika Dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

Dalam menyelesaikan penulisan tugas akhir ini, penulis ingin menyampaikan


rasa terima kasih dan penghargaan yang sebesar-besarnya kepada semua pihak yang
telah memberikan bimbingan dan dukungan, baik secara materil dan moril, terutama
sekali kepada :

1. Bapak Dr. Sutarman, M.Sc selaku Dekan Fakultas MIPA Universitas


Sumatera Utara.
2. Bapak Prof. Drs. Tulus, Vordipl.Math., M.Si., Ph.D, selaku Ketua Jurusan
Program Studi D-III Teknik Informatika.
3. Pimpinan Apotek K-24 beserta Staffnya yang telah membantu penulis
dalam memberikan data-data yang berhubungan dengan penyelesaiain
laporan tugas akhir ini.
4. Bapak Drs. Sutarman, M.Sc selaku Dosen pembimbing penulis yang
selalu memberikan masukan, baik kritik dan saran kepada penulis
selama pembuatan sampai penyelesaian tugas akhir ini.
5. Teristimewa kepada kedua orang tua penulis yang tercinta Ayahanda
(Alm. Drs Antilan Purba, M.Pd), Ibunda (Salmah Hasibuan, S.Pd), serta
abang dan kakak penulis yang senantiasa memberikan kasih sayang, doa,
dukungan dan motivasi yang tak terhingga dan tak ternilai harganya.
6. Seluruh teman-teman D3 Tekhnik Informatika stambuk 2009
khususnya Kom C’09 yang selama ini telah menjadi keluarga dan
sahabat penulis.

Penulis menyadari bahwa masih terdapat kekurangan dan jauh dari


kesempurnaan didalamnya karena pengetahuan dan kemampuan penulis masih sangat
terbatas. Maka dari itu dengan segala kerendahan hati penulis mengharapkan kritik dan
saran yang bersifat membangun demi perbaikan dan penyempurnaan laporan ini. Akhir
kata semoga laporan ini bermanfaat bagi semua pihak yang membacanya.

Universitas Sumatera Utara


ABSTRAK

Tugas akhir ini bertujuan untuk membangun suatu sistem informasi penjualan barang
yang dapat digunakan sebagai dasar dalam Sistem Pengambilan Keputusan. Sistem ini
dibuat dengan menggunakan Visual Basic 6.0 dan Microsoft Access 2003. Metodologi
penelitian yang digunakan adalah berdasarkan wawancara dan observasi penelitian
kepustakaan untuk memperoleh data dan informasi yang berhubungan dengan
masalah yang diteliti. Objek utama dari sistem ini adalah untuk memberikan
kemudahan dan melihat arsitektur sistem informasi penjualan barang agar kinerja
pengolahan data dapat ditingkatkan serta rancangan antarmuka dapat diperoleh lebih
mudah.

Universitas Sumatera Utara


DAFTAR ISI

Halaman

Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Daftar Isi vi
Daftar Gambar viii
Daftar Tabel ix

BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Metodologi Penelitian 3
1.6 Sistematika Penulisan 3

BAB 2 LANDASAN TEORI 5


2.1 Sistem 5
2.1.1 Pengertian Sistem 5
2.1.2 Elemen Sistem 6
2.2 Informasi 7
2.3 Sistem Informasi 8
2.3.1 Pengertian Sistem Informasi 8
2.3.2 Komponen Sistem Informasi 9
2.4 Basis Data (Database) 10
2.5 Database Management System (DMS) 11
2.5.1 Pengertian Database Management System (DMS) 11
2.5.2 Komponen Database Management System (DMS) 12
2.6 Bahasa Pemograman Visual Basic 6.0 13
2.6.1 Struktur Bahasa Pemograman Visual Basic 6.0 15
2.7 Microsoft Access 2003 20
2.8 Crystal Report 21

BAB 3 GAMBARAN UMUM PERUSAHAAN 22


3.1 Sejarah Apotek K-24 22
3.2 Tinjauan Umum Apotek K-24 23
3.3 Visi Apotek K-24 24
3.4 Misi Apotek K-24 24
3.5 Prestasi Apotek K-24 25
3.6 Struktur Organisasi Apotek K-24 26

Universitas Sumatera Utara


BAB 4 PERANCANGAN SISTEM 27
4.1 Perancangan Sistem 27
4.2 Perancangan Database 27
4.2.1 Relasi Antar Tabel 29
4.3 Diagram Konteks 30
4.4 Data Flow Diagram 31
4.5 Flowchart 37

BAB 5 IMPLEMENTASI SISTEM 38


5.1 Defenisi Implementasi Sistem 38
5.2 Tujuan Implementasi Sistem 38
5.3 Komponen Utama dalam Implementasi Sistem 39
5.3.1 Perangkat Keras (Hardware) 39
5.3.2 Perangkat Lunak (Software) 40
5.3.3 Pengguna (Brainware) 40
5.4 Pengujian Sistem 41
5.4.1 Menu Login 41
5.4.2 Menu Utama 42
5.4.3 Menu Data Jenis 43
5.4.4 Menu Data Barang 44
5.4.5 Menu Data Pengguna 45
5.4.6 Menu Tambah Stok Barang 46
5.4.7 Menu Transaksi Penjualan 48
5.4.8 Menu Laporan Seluruh Barang 51
5.4.9 Menu Laporan Barang Per- Jenis 51
5.4.10 Menu Laporan Seluruh Penjualan 53
5.4.11 Menu Laporan Penjualan Per- Tanggal Transaksi 53
5.4.12 Menu Laporan Penjualan Per- Bulan 54
5.4.13 Menu Laporan Seluruh Jumlah Barang yang Terjual 56
5.4.14 Menu Laporan Jumlah Barang yang Terjual Per- Bulan 56
5.4.15 Menu Grafik Pendapatan Per- Bulan 57

BAB 6 KESIMPULAN DAN SARAN 59


6.1 Kesimpulan 59
6.2 Saran 60

DAFTAR PUSTAKA 61
LAMPIRAN

Universitas Sumatera Utara


DAFTAR GAMBAR

Halaman
Gambar 2.1 Form Utama Microsoft Visual Basic 6.0 16
Gambar 2.2 Toolbar 16
Gambar 2.3 Form 17
Gambar 2.4 Windows Properties 17
Gambar 2.5 Windows Form Layout 18
Gambar 2.6 Toolbox 18
Gambar 2.7 Project Windows 19
Gambar 2.8 Code Windows 20
Gambar 3.1 Struktur Organisasi Apotek K-24 26
Gambar 4.1 Relasi Antar Tabel 30
Gambar 4.2 Diagram Konteks 31
Gambar 4.3 DFD Level 0 32
Gambar 4.4 DFD Level 1 Proses 1 33
Gambar 4.5 DFD Level 1 Proses 2 34
Gambar 4.6 DFD Level 1 Proses 3 34
Gambar 4.7 DFD Level 1 Proses 4 35
Gambar 4.8 DFD Level 1 Proses 5 36
Gambar 4.9 Flowchart 37
Gambar 5.1 Menu Login 41
Gambar 5.2 Menu Utama 43
Gambar 5.3 Menu Data Jenis 43
Gambar 5.4 Menu Data Barang 44
Gambar 5.5 Menu Data Pengguna 45
Gambar 5.6 Menu Tambah Stok Barang 46
Gambar 5.7 Menu Cari Daftar Barang 47
Gambar 5.8 Menu Transaksi Penjualan 48
Gambar 5.9 Menu Cari Persediaan Barang 49
Gambar 5.10 Menu Laporan Hasil Penjualan 50
Gambar 5.11 Laporan Seluruh Barang 51
Gambar 5.12 Menu Laporan Barang Per- Jenis 52
Gambar 5.13 Laporan Barang Per- Jenis 52
Gambar 5.14 Laporan Seluruh Penjualan 53
Gambar 5.15 Menu Laporan Penjualan Per- Tanggal Transaksi 53
Gambar 5.16 Laporan Penjualan Per- Tanggal Transaksi 54
Gambar 5.17 Menu Laporan Penjualan Per- Bulan 55
Gambar 5.18 Laporan Penjualan Per- Bulan 55
Gambar 5.19 Laporan Seluruh Jumlah Barang yang Terjual 56
Gambar 5.20 Menu Laporan Jumlah Barang yang Terjual Per- Bulan 56
Gambar 5.21 Laporan Jumlah Barang yang Terjual Per- Bulan 57
Gambar 5.22 Grafik Pendapatan Per- Bulan 58

Universitas Sumatera Utara


DAFTAR TABEL

Halaman
Tabel 4.1 Tabel Barang 28
Tabel 4.2 Tabe Detail Penjualan 28
Tabel 4.3 Tabel Jenis Barang 28
Tabel 4.4 Tabel Pengguna 29
Tabel 4.5 Tabel Penjualan 29

Universitas Sumatera Utara


ABSTRAK

Tugas akhir ini bertujuan untuk membangun suatu sistem informasi penjualan barang
yang dapat digunakan sebagai dasar dalam Sistem Pengambilan Keputusan. Sistem ini
dibuat dengan menggunakan Visual Basic 6.0 dan Microsoft Access 2003. Metodologi
penelitian yang digunakan adalah berdasarkan wawancara dan observasi penelitian
kepustakaan untuk memperoleh data dan informasi yang berhubungan dengan
masalah yang diteliti. Objek utama dari sistem ini adalah untuk memberikan
kemudahan dan melihat arsitektur sistem informasi penjualan barang agar kinerja
pengolahan data dapat ditingkatkan serta rancangan antarmuka dapat diperoleh lebih
mudah.

Universitas Sumatera Utara


BAB 1

PENDAHULUAN

1.1 Latar Belakang

Saat ini perkembangan tekhnologi dan informasi sangat pesat sekali seiring dengan

kemajuan zaman dan perkembangan ilmu pengetahuan. Setiap individu pun dipacu

untuk senantiasa menemukan hal baru dan semaksimal mungkin dengan tekhnologi

yang dimiliki nya untuk menemukan solusi atas masalah – masalah yang dihadapi,

terutama masalah informasi yang biasanya dilakukan secara manual dan tradisional

akan semakin lebih cepat dan tepat jika dilakukan dengan bantuan mesin yaitu

teknologi komputer. Kemajuan tekhnologi ini mendorong suatu pemberian informasi

untuk dapat memanfaatkan tekhnologi baru sesuai dengan kebutuhan tersebut

Perkembangan tekhnologi komputer sangat diperlukan diperlukan di berbagai

instansi. Seperti apotek yang merupakan sebuah instansi yang bergerak dalam

pelayanan jasa membantu dan mengatasi masalah penyakit. Pengolahan data pada

apotek yang dilakukan secara manual, seperti transaksi penjualan obat, laporan

penjualan obat, laporan stok obat, dan seluruh laporan kegiatan sistem pembukuan

yang masih kurang terstruktur dapat menimbulkan berbagai kendala. Kendala yang

muncul adalah masalah waktu dimana dalam melakukan pembukuan atau pengecekan

data obat terlalu lama dan juga masalah pengotrolan stok obat – obatan yang tersedia

Universitas Sumatera Utara


2

yang kurang begitu teratur secara baik. Untuk itu diperlukan suatu sistem informasi

yang mampu meningkatkan kinerja sistem agar dapat memberikan hasil yang

maksimal serta dapat meningkatkan efisiensi dan efektifitas kerja.

Berdasarkan latar permasalahan tersebut maka penulis ingin merancang suatu

program sebagai antarmuka yang dapat membantu kesulitan yang dialami selama ini

dan juga sebagai bahan penulisan tugas akhir dengan judul “SISTEM INFORMASI

PENJUALAN BARANG PADA APOTEK K-24”

1.2 Rumusan Masalah

Berdasarkan latar belakang permasalahan diatas, maka dalam tugas akhir ini rumusan

masalah yang rumuskan adalah : “Bagaimana merancang, membangun dan

mengaplikasikan sebuah sistem informasi penjualan barang di Apotek K-24”.

1.3 Batasan Masalah

Sesuai dengan rumusan masalah yang telah di paparkan, maka batasan yang

diberlakukan di tugas akhir ini meliputi :

1. Perancangan sistem informasi penjualan barang di Apotek K-24 dengan

menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 .

2. Perancangan installer sistem.

Universitas Sumatera Utara


3

1.4 Tujuan Penelitian

Adapun tujuan penelitian yang dilakukan adalah:

1. Mempermudah dan mempercepat kerja dalam hal pengolahan data,

pengecekan stok barang, transaksi penjualan, dan laporan penjualan .

2. Mempermudah dalam pencarian informasi.

1.5 Metodologi Penelitian

Metodologi penelitian yang digunakan penulis untuk menyelesaikan permasalah yang

terjadi di atas adalah :

1. Melakukan penelitian langsung di Apotek K-24 dan menganalisan langsung

sistem yang ada serta data – data yang dibutuhkan dalam merancang sistem

informasi tersebut.

2. Melakukan penelitian dengan mencari pendukung sumber data tersebut untuk

mengumpulkan data yang bersifat teoritis yang berkaitan dengan penelitian

dan penyusunan tugas akhir.

3. Merancang aplikasi sistem informasi.

4. Menguji program yang telah dirancang dan melakukan perbaikan jika masih

ada kesalahan.

1.6 Sistematika Penulisan

Adapun sistematika penulisan Laporan Tugas Akhir adalah sebagai berikut :

Universitas Sumatera Utara


4

BAB 1: PENDAHULUAN

Dalam bab ini penulis menguraikan latar belakang masalah, permasalahan, maksud dan

tujuan, ruang lingkup, metode penelitian, serta sistematika penulisan.

BAB 2: LANDASAN TEORI

Dalam bab ini penulis menguraikan beberapa hal yang berhubungan dengan judul

dan bahasa pemograman Mircorsoft Visual Basic 6.0 yang penulis gunakan.

BAB 3: GAMBARAN UMUM PERUSAHAAN

Dalam bab ini penulis menjelaskan sekilas gambaran tentang Apotek K-24

yang terdiri dari sejarah, tinjauan umum, visi dan misi, prestasi, dan struktur

organisasi.

BAB 4: PERANCANGAN SISTEM

Dalam bab ini penulis menguraikan tentang perancangan sistem, perancangan

database, Diagram Konteks, Data Flow Diagram (DFD), serta flowchart dari program

yang dirancang.

BAB 5: IMPLEMENTASI SISTEM

Dalam bab ini penulis menyajikan tentang pengertian dan tujuan

implementasi sistem, komponen utama dalam implementasi sistem, serta pengujian

sistem.

BAB 6: KESIMPULAN DAN SARAN

Dalam bab ini penulis menguraikan tentang kesimpulan dan saran.

Universitas Sumatera Utara


BAB 2

LANDASAN TEORI

2.1 Sistem

2.1.1 Pengertian Sistem

Pengertian sistem menurut Kamus Besar Bahasa Indonesia (1988 :849) adalah (1)

perangkat unsur yang secara teratur saling berkaitan sehingga membentuk suatu

totalitas, (2) susunan yang teratur dari pandangan, teori, asas, dan sebagainya, (3)

metode. Beberapa pengertian sistem menurut para ahli, antara lain :

1. Menurut John Mc Manama, sistem adalah sebuah struktur konseptual yang

tersusun dari fungsi-fungsi yang saling berhubungan yang bekerja sebagai

suatu kesatuan organik untuk mencapai suatu hasil yang diinginkan secara

efektif dan efesien.

2. Menurut L. James Havery, sistem adalah prosedur logis dan rasional untuk

merancang suatu rangkaian komponen yang berhubungan satu dengan yang

lainnya dengan maksud untuk berfungsi sebagai suatu kesatuan dalam usaha

mencapai suatu tujuan yang telah ditentukan.

3. Menurut Mulyadi, sistem adalah suatu jaringan prosedur yang dibuat menurut

pola yang terpadu untuk melaksanakan kegiatan pokok perusahaan.

Universitas Sumatera Utara


6

4. Menurut Robert G.Murdick, sistem adalah seperangkat elemen – elemen yang

terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan bersama.

Berdasarkan pengertian diatas maka dapat disimpulkan bahwa sistem adalah

elemen - elemen yang saling berkumpul, berhubungan, bekerja sama membentuk

suatu jaringan yang berfungsi untuk menyelesaikan suatu sasaran yang diinginkan

secara efektif dan efisien.

2.1.2 Elemen Sistem

Ada beberapa elemen yang membentuk sebuah sistem, yaitu : tujuan, masukan,

proses, keluaran, batas, mekanisme pengendalian dan umpan balik serta lingkungan.

Berikut penjelasan mengenai elemen-elemen yang membentuk sebuah sistem :

1. Tujuan

Setiap sistem memiliki tujuan, maupun satu ataupun banyak. Tujuan inilah

yang menjadi pemotivasi yang mengarahkan sistem. Tanpa tujuan, sistem

menjadi tak terarah dan tak terkendali. Tentu saja, tujuan antara satu sistem

dengan sistem yang lain berbeda.

2. Masukan

Masukan (input) sistem adalah segala sesuatu yang masuk ke dalam sistem dan

selanjutnya menjadi bahan yang diproses. Masukan dapat berupa hal-hal yang

berwujud (tampak secara fisik) maupun yang tidak tampak.

3. Proses

Proses merupakan bagian yang melakukan perubahan atau transformasi dari

masukan menjadi keluaran yang berguna dan lebih bernilai.

Universitas Sumatera Utara


7

4. Keluaran

Keluaran (output) merupakan hasil dari pemrosesan. Pada sistem informasi,

keluaran bisa berupa suatu informasi, saran, cetakan laporan, dan sebagainya.

5. Batas

Yang disebut batas (boundary) sistem adalah pemisah antara sistem dan

daerah di luar sistem (lingkungan). Batas sistem menentukan konfigurasi,

ruang lingkup, atau kemampuan sistem.

6. Mekanisme Pengendalian dan Umpan Balik

Mekanisme pengendalian (control mechanism) diwujudkan dengan

menggunakan umpan balik (feedback), yang mencuplik keluaran. Umpan balik

ini digunakan untuk mengendalikan baik masukan maupun proses. Tujuannya

adalah untuk mengatur agar sistem berjalan sesuai dengan tujuan.

7. Lingkungan

Lingkungan adalah segala sesuatu yang berada diluar sistem. Lingkungan bisa

berpengaruh terhadap operasi sistem dalam arti bisa merugikan atau

menguntungkan sistem itu sendiri. Lingkungan yang merugikan tentu saja

harus ditahan dan dikendalikan supaya tidak mengganggu kelangsungan

operasi sistem, sedangkan yang menguntungkan tetap harus terus dijaga,

karena akan memacu terhadap kelangsungan hidup sistem.

2.2 Informasi

Dalam suatu organisasi ataupun perusahaan, informasi mempunyai manfaat dan

peranan yang sangat penting. Dengan adanya informasi dalam suatu organisasi para

manajer dapat mengambil keputususan dengan cepat dan mencapai tujuan yang efektif

Universitas Sumatera Utara


8

dan efisien. Sehingga dapat dikatakan bahwa informasi adalah suatu hasil dari

pengolahan data menjadi bentuk yang lebih berguna bagi penggunanya dan dapat

digunakan dalam pengambilan sebuah keputusan.

Berikut ini adalah pengertian dan definisi informasi menurut beberapa ahli:

1. Menurut Joner Hasugian, informasi adalah sebuah konsep yang universal

dalam jumlah muatan yang besar, meliputi banyak hal dalam ruang lingkupnya

masing-masing dan terekam pada sejumlah media.

2. Menurut Kenneth C.Laudon, informasi adalah data yang sudah dibentuk ke

dalam sebuah formulir bentuk yang bermanfaat dan dapat digunakan untuk

manusia.

3. Menurut Anton M. Moeliono, informasi adalah penerangan, keterangan,

pemberitahuan, kabar atau berita. Informasi juga merupakan keterangan atau

bahan nyata yang dapat dijadikan dasar kajian analisis atau kesimpulan.

2.3 Sistem Informasi

2.3.1 Pengertian Sistem Informasi

Menurut John F. Nash (1995:8) yang diterjemahkan oleh La Midjan dan Azhar

Susanto, menyatakan bahwa sistem informasi adalah kombinasi dari manusia, fasilitas

atau alat teknologi, media, prosedur dan pengendalian yang bermaksud menata

jaringan komunikasi yang penting, proses atas transaksi-transaksi tertentu dan rutin,

membantu manajemen dan pemakai intern dan ekstern dan menyediakan dasar

pengambilan keputusan yang tepat. Sedangkan menurut Henry Lucas (1988:35) yang

Universitas Sumatera Utara


9

diterjemahkan oleh Jugianto H.M, menyatakan bahwa sistem informasi adalah suatu

kegiatan dari prosedur – prosedur yang diorganisasikan, bila mana dieksekusi akan

menyediakan informasi untuk mendukung pengambilan keputusan dan pengendalian

di dalam organisasi.

Dari defenisi diatas, maka dapat disimpulkan pengertian dari sistem informasi

adalah suatu jaringan dari beberapa elemen-elemen yang saling berhubungan yang

berfungsi untuk menyediakan informasi yang dibutuhkan oleh organisasi untuk

mendukung pengambilan keputusan manajemen dari suatu kejadian internal dan

eksternal agar organisasi tersebut dapat beroperasi secara efektif dan efisien.

2.3.2 Komponen Sistem Informasi

Sistem informasi terdiri dari beberapa komponen yang saling berinteraksi satu dengan

yang lain membentuk suatu kesatuan untuk mencapai tujuan yang diinginkan.

Komponen tersebut adalah sebagai berikut :

1. Komponen masukan (input)

Komponen yang terdiri dari metode dan media untuk menangkap data yang

akan dimasukkan kedalam sistem informasi .

2. Komponen model

Komponen ini terdiri dari kombinasi prosedur, logika, dan model matematik

yang akan memanipulasi data input dan data di basis data (database).

3. Komponen keluaran (output)

Hasil dari sistem informasi yang berupa informasi yang berkualitas dan

dokumentasi yang berguna untuk semua pemakai sistem.

Universitas Sumatera Utara


10

4. Komponen teknologi

Teknologi digunakan untuk menerima input, menjalankan model, menyimpan

dan mengakses data, menghasilkan dan mengirimkan keluaran, dan membantu

pengendalian dari sistem secara keseluruhan.

5. Komponen hardware

Berperan sebagai suatu media penyimpanan sumber data bagi sistem

informasi.

6. Komponen software

Berfungsi sebagai sarana untuk mengolah,menghitung dan memanipulasi data

yang diambil dari hardware untuk menciptakan suatu informasi.

7. Komponen basis data

Kumpulan data yang saling berkaitan dan berhubungan satu dengan yang lain,

yang diperlukan untuk keperluan penyediaan informasi lebih lanjut.

8. Komponen control

Beberapa pengendalian yang diterapkan untuk meyakinkan bahwa hal-hal

yang dapat merusak sistem dapat dicegah ataupun bila terlanjur terjadi

kesalahan-kesalahan dapat langsung cepat diatasi.

2.4 Basis Data (Database)

Gordon C. Everest menyebutkan bahwa basis data adalah kumpulan data yang

mekanis, terbagi, terdefinisi secara formal dan dikontrol di pusat organisasi.

Selanjutnya menurut C.J.Date, basis data adalah koleksi data operasional yang

tersimpan dan dipakai oleh sistem aplikasi dari suatu organisasi. Maka secara

keseluruhan dapat disimpulkan bahwa basis data adalah suatu kumpulan data yang

Universitas Sumatera Utara


11

saling berhubungan yang tersimpan dalam suatu media dan terorganisir dengan rapi,

yang dapat diakses dengan urutan yang berbeda-beda secara logis dengan cara yang

relatif mudah dan dapat dipakai oleh sistem aplikasi dari suatu organisasi.

2.5 Database Management System (DBMS)

2.5.1 Pengertian dan Fungsi Database Management System (DBMS)

Database management system (DBMS) yaitu suatu sistem atau perangkat lunak yang

mengelola basis data dan menjalankan operasi terhadap data dalam jumah yang besar

yang terdapat di dalam basis data, sehingga memudahkan pengguna akhir untuk

menggunakan data dan mendapatkannya sebagai informasi yang sesuai. Adapun

beberapa fungsi dari Database Management System adalah sebagai berikut :

1. Data Definition

Sebuah DBMS dapat mengolah dari pendefinisian data dan

menghubungkannya.

2. Data Manipulation

Sebuah DBMS dapat menyelesaikan permintaan-permintaan dari pemakaian

untuk mengakses data.

3. Data Security dan Integrity

Sebuah DBMS dapat memeriksa security dan integrity data yang didefinisikan

oleh Database Administrator (DBA).

4. Data Recovery dan Concurrency

Sebuah DBMS dapat menangani kegagalan-kegagalan pengaksesan basis data

yang dapat disebabkan oleh kesalah sistem, kerusakan disk, dan lainnya dan

Universitas Sumatera Utara


12

juga harus dapat mengontrol pengaksesan data yang concurrent, yaitu apabila

satu data diakses secara bersama-sama oleh lebih dari satu pemakai pada saat

yang bersamaan.

6. Data Dictionary

Sebuah DBMS dapat menyediakan data dictionary.

7. Perfomance

Sebuah DBMS dapat menangani unjuk kerja dari semua fungsi seefisien

mungkin.

2.5.2 Komponen Database Management System (DBMS)

Komponen DBMS terbagi menjadi 5 komponen, yaitu :

1. Perangkat Keras (Hardware)

Suatu komputer yang terdiri dari processor, harddisk dan memory, ataupun

jaringan yang terdiri dari beberapa komputer yang dapat menjalankan DBMS

2. Perangkat Ringan (Software)

Suatu penghubung antara basis data dan pengguna yang berupa perangkat

lunak DBMS itu sendiri dan program aplikasi lainnya.

3. Data

Komponen yang terdapat di dalam basis data yang saling terkait, terintegrasi,

dan dapat diakses oleh sejumlah pengguna secara bersamaan

4. Prosedur

Prosedur memuat aturan-aturan untuk mendisain dan penggunaan basis data

dan DBMS.

Universitas Sumatera Utara


13

5. Pengguna

Pengguna sendiri dapat di kategorikan menjadi 3 jenis yaitu :

a. Administrator basis data yaitu pengguna yang merencanakan, menerapkan,

mengoperasikan dan mengamankan basis data

b. Pemogram aplikasi yaitu pengguna yang membuat aplikasi basis data

dengan menggunakan bahasa pemrograman.

c. Pengguna Akhir yaitu konsumen yang hanya memakai suatu teknologi

tanpa mengetahui proses panjang dibaliknya.

2.6 Bahasa Pemrograman Visual Basic 6.0

Microsoft Visual Basic pertama kali diluncurkan pada tahun 1991 dengan nama

“thunder” yang merupakan development pertama yang berbasis visual yang dibuat

oleh Microsoft untuk menandingi bahasa pemrograman lainnya yang telah ada seperti

pemrograman C, C++, Pascal, dan bahasa pemrograman lainnya.

Pada tahun 1993, Microsoft menegluarkan Visual Basic versi 2.0 yang mulai

menarik perahatian para pengembang program. Ketika Visual Basic versi 3.0

diluncurkan, versi ini menjadi bahasa pemrograman yang paling pesat

perkembangannya di pasaran sehingga banyak diminati oleh programmer.

Pada tahun 1997, Microsoft mengeluarkan Visual Basic versi 5.0 yang

memiliki kemampuan untuk menciptakan activeX Control yang membuat kita mampu

menempatkannya di internet dan membuat bahasa HTML lebih dinamis dan praktis.

Universitas Sumatera Utara


14

Kemudian pada tahun 1998, Micrososft mengeluarkan Visual Basic versi 6.0.

M. Agus J. Alam (2001, hal:1) mengatakan Microsoft Visual Basic 6.0 adalah bahasa

pemrograman yang bekerja dalam lingkup MS-Windows. Microsoft Visual Basic 6.0

merupakan bahasa pemrograman yang digunakan untuk membuat suatu aplikasi

maupun suatu sistem informasi dalam Microsoft Windows dengan menggunakan

metode Graphical User Interface (GUI). Microsoft Visual Basic 6.0 berasal dari

bahasa pemrograman yang popular yang disebut BASIC (Beginner’s All-purpose

Symbolic Intruction Code) (Wahana Komputer, 2004:2).

Microsoft Visual Basic 6.0 memiliki tiga dimensi yang sangat berbeda dengan

versi sebelumnya, yaitu :

1. Standart Edition merupakan produk standar (dasar) yang sudah mencakup

berbagai sarana dasar dari Visual Basic 6.0 untuk pengembangan sebuah

aplikasi.

2. Professional Edition merupakan versi yang memberikan sarana ekstra yang

dibutuhkan oleh programmer, misalnya kontrol tambahan, dukungan untuk

pemrograman internet, compiler untuk membuat file help, serta sarana – sarana

pengembangan database yang lebih baik. Versi ini juga berisi tambahan

Microsoft Jet Data Access Engine (database) dan pembuatan server OLE

Automatication.

3. Enterprise Edition yang memungkinkan professional programmer untuk

membuat aplikasi client – server yang dapat terhubung ke internet. Biasanya

versi ini digunakan untuk membuat aplikasi jaringan.

Universitas Sumatera Utara


15

2.6.1 Struktur Bahasa Pemrograman Visual Basic

Lingkungan pemrograman Visual Basic mengandung semua sarana yang dibutuhkan

untuk membangun program – program windows dengan cepat dan efisien. Visual

Basic merupakan bahasa pemrograman yang terstruktur. Struktur aplikasi Visual

Basic terdiri dari :

1. Form, yaitu windows atau jendela dimana user interface atau tampilan yang

merupakan antar muka program.

2. Control, yaitu tampilan berbasis grafis yang dimasukkan pada form untuk

membuat interaksi dengan memakai text, label, option, check, frame, dan

command.

3. Properties, yaitu nilai atau karakter yang dimiliki oleh sebuah objek Visual

Basic, seperti name, size, color, position dan text. Properties dapat diubah saat

mendesain program atau runtime ketika program dijalankan.

4. Methods, yaitu serangkaian perintah – perintah yang telah tersedia dan dapat

diminta untuk melakukan tugas tertentu.

5. Even Procedure, yaitu kode yang berhubungan dengan suatu objek yang dapat

diminta untuk melakukan tugas tertentu.

6. General Procedure, yaitu kode yang tidak berhubungan dengan suatu objek

tetapi pada general procedure ini sangat berhubungan dangen aplikasi.

7. Module, yaitu kumpulan dari prosedur umum, deklarasi variabel dan defenisi

konstanta yang digunakan oleh aplikasi.

Universitas Sumatera Utara


16

Dari penjelasan di atas maka tampilan environment Visual Basic 6.0 dapat

dilihat padda gambar berikut :

Gambar 2.1 Form Utama Microsoft Visual Basic 6.0

Secara rinci, tampilan form utama Visual Basic 6.0 seperti yang dilihat pada

gambar 2.3 terdiri dari :

1. Toolbar, yaitu tombol – tombol yang akan sangat membantu dalam

mempercepat akses perintah.

Gambar 2.2 Toolbar

2. Baris menu, yaitu kumpulan perintah – perintah yang dikelompokkan

berdasarkan criteria yang dihasilkan.

3. Form, yaitu suatu interface untuk merancang suatu program.

Universitas Sumatera Utara


17

Gambar 2.3 Form

4. Windows Properties, yaitu jendela yang sangat mendukung sifat – sifat dari

sebuah objek yang digunakan dalam sebuah form.

Gambar 2.4 Windows Properties

5. Windows Form Layout, yaitu windows yang menampilkan letak dari form

(posisi form) pada layar monitor pada saat program dijalankan.

Universitas Sumatera Utara


18

Gambar 2.5 Windows Form Layout

6. Toolbox, yaitu sebuah windows yang mengandung semua objek atau kontrol

yang akan digunakan untuk membentuk sebuah program aplikasi dan

merupakan sebuah kontrol yang akan menjadi interface antara program

aplikasi dengan semua objek yang diletakkan di jendela form.

Gambar 2.6 Toolbox

Universitas Sumatera Utara


19

Keterangan mengenai toolbox :

a) Label, menampilkan tulisan pada form.

b) Text Box, sebagai tempat input atau untuk menampilkan teks dan pemakai

dapat mengubah – ubah tulisan yang terdapat pada kontrol.

c) List Box, menampilkan beberapa item. Dari kontrol item – item tersebut user

dapat melakukan pilihan dengan scroll bar.

d) Command Button, menjalankan suatu tindakan dengan cara mengklik.

e) Combo Box, merupakan kombinasi dari textbox dan listbox.

f) Check Box, menampilkan keadaan true atau false

g) Picture box, menampilkan gambar.

h) Option Button, fungsinya hampir sama dengan check box, perbedaannya pada

option button ini dapat memilih beberapa pilihan sekaligus.

i) Frame, mengelompokkan kontrol – kontrol secara visual (tergambar) atau

secara fungsional (tindakan).

7. Project Windows, yaitu project yang menampilkan semua file di dalam Visual

Basic yang sedang aktif. Project merupakan kumpulan dari modul form,

modul class, dan modul standart yang membentuk suatu aplikasi.

Gambar 2.7 Project Windows

Universitas Sumatera Utara


20

8. Windows Code, yaitu jendela yang berisi kode-kode program yang merupakan

instruksi-instruksi untuk aplikasi Visual Basic 6.0.

Gambar 2.8 Code Windows

9. Windows Immadiate, yaitu windows yang berguna untuk mencoba beberapa

instruksi program, pada saat program diuji windows ini berguna sebagai

windows debug (pencari kesalahan / error).

2.7. Microsoft Access 2003

Database adalah sekumpulan informasi yang saling berhubungan dengan semua objek,

topik atau yang mempunyai tujuan tertentu. Informasi atau data yang diolah tersebut

disimpan dalam sebuah file. Contohnya adalah database buku, koleksi musik,

kerusakan komputer, penjualan barang, pegawai, siswa dan lain-lain. Microsoft

Access adalah program aplikasi database yang sangat populer dan paling banyak

digunakan, yang akan membantu seeorang dalam merancang, membuat dan mengolah

database. Microsoft Access dibuat dan dikonsentrasikan agar program aplikasi

database dapat lebih mudah dipakai, lebih fleksibel dan lebih mudah diintegrasikan

Universitas Sumatera Utara


21

dengan program aplikasi MS Office XP lainnya, dapat bekerja sama pada sistem

jaringan serta dapat memanfaatkan fasilitas-fasilitas yang terdapat pada internet

maupun intranet.

2.8 Crystal Report

Crystal Report merupakan perangkat lunak yang dikhususkan untuk membangun

sebuah laporan. Crystal Report dapat digunakan dengan bahasa pemrograman berbasis

windows seperti Visual Basic 6.0, Borland Delphi, Visual Basic.net, Visual C++, dan

Visual Interdev. Beberapa kelebihan Crystal Report :

1. Dari segi pembuatan laporan tidak terlalu rumit. Hal ini memungkinkan para

programmer pemula sekalipun dapat membuat laporan yang sederhana tanpa

melibatkan banyak kode program.

2. Integrasi dengan bahasa – bahasa pemrograman lain yang memungkinkan

dapat digunakan oleh banyak programmer dengan masing-masing keahlian.

3. Fasilitas impor hasil laporan yang mendukung format – format seperti

Microsoft Word, Microsoft Excel, Adobe Acrobat Reader, HTML, dan

sebagainya.

Universitas Sumatera Utara


BAB 3

GAMBARAN UMUM PERUSAHAAN

3.1 Sejarah Apotek K-24

Apotek K-24 adalah apotek franchise dari PT. K–24 Indonesia yang didirikan oleh dr.

Gideon Hartono pada tanggal 24 Oktober 2002 di Yogyakarta. Gerai pertama

didirikan di Jl. Magelang mendapat sambutan yang luar biasa sehingga didirikan gerai

berikutnya pada tanggal 24 maret 2003 di Jl. Gejayan dan tanggal 24 Agustus 2003

gerai ke tiga didirikan di Jl. Kaliurang dan pada tahun 2004 apotek k-24 membuka

gerai ketiga di Jl. Gondomanan dan gerai keempat di dirikan di Kota Semarang di Jl.

Gajah Mada.

Pada tahun 2005 apotek K-24 mulai di waralabakan dan pada ulang tahunnya

yang ke 3 (tiga) Apotek K-24 membuka secara serentak 7 gerai baru, 4 gerai berlokasi

di Surabaya, 2 gerai di Yogyakarta dan 1 gerai di Semarang. Saat ini Apotek K-24

memiliki hampir 300 gerai yang tersebar di berbagai kota di seluruh wilayah

Indonesia. Di Medan sendiri telah didirikan 7 gerai, diantaranya adalah Apotek K-24

M.Yamin. Apotek K-24 M.Yamin didirikan pada tanggal 24 April 2008 dan

merupakan gerai pertama yang didirikan di Medan.

Universitas Sumatera Utara


23

3.2 Tinjauan Umum Apotek K-24

K-24 sendiri adalah kependekan dari komplet 24 jam. Komplet dalam artian komplet

obatnya dan buka 24 jam sehari sepanjang tahun. Persediaan ragam obat di Apotek K-

24 relatif komplit ( memiliki ragam obat lebih dari 5800 item ) dan semua gerai

Apotek K-24 berkomitmen melayani masyarakat 24 jam perhari 7 hari perminggu

dengan harga yang sama pada pagi, siang, malam dan hari libur tanpa mengenakan

harga yang lebih tinggi di luar jam kerja biasa.

Sebagai upaya membantu program Pemerintah dalam memerangi peredaran

obat palsu yang notabene kian marak di pasaran, Apotek K-24 berkomitmen untuk

menyediakan obat hanya dari sumber-sumber dengan prosedur yang resmi sehingga

keaslian obat lebih terjamin. Setiap Apotek K-24 di seluruh Indonesia memasok

barang dari 15 PBF (Pedagang Besar Farmasi) Nasional dan beberapa PBF lokal yang

resmi, legan , dan terpercaya. 15 PBF Nasional tersebut antara lain adalah APL,

AAM, BSP, Kebayoran, MBS, ENSEVAL, Parit Padang, DMA, MPI, Kalista Prima,

Sawah Besar, Indofarma Global, Kimia Farma, UDC, dan DBM.

Semua karyawan Apotek K-24 memahami dan menghargai perbedaan dan

keragaman sosial budaya di dalam maupun di luar perusahaan.Apotek K-24 untuk

dapat melayani masyarakat dengan baik. Apotek K-24 juga melayani konsultasi obat

secara gratis, layanan pesan antar bagi masyarakat yang membutuhkan obat namun

tidak dapat dating ke Apotek K – 24 ( delivery service ) sekaligus jaminan akan

keaslian obat. Setiap hari ulang tahun gerainya Apotek K-24 menyelenggarakan

pelayanan pengobatan gratis bagi warga sekitar yang tidak mampu.

Universitas Sumatera Utara


24

3.3 Visi Apotek K-24

• Menjadi merek nasional yang menjadi pemimpin pasar bisnis apotek di Negara

Republik Indonesia, melalui apotek jaringan waralaba yang menyediakan

ragam obat yang komplit, buka 24 jam termasuk hari libur yang tersebar di

seluruh Indonesia.

• Menjadi merek nasional kebanggaan bangsa Indonesia yang menjadi berkat

dan bermanfaat bagi masyarakat, karyawan-karyawati dan pemilik.

• Menyediakan pilihan obat yang komplit, setiap saat, dengan harga yang sama

pagi-siang-malam dan hari libur.

• Menyediakan kualitas pelayanan prima : Apotek K-24 senantiasa mempelajari

dan mengusahakan peningkatan kualitas pelayanan untuk memaksimalkan

tingkat kepuasan para pelanggan dan penerima waralaba.

3.4 Misi Apotek K-24

• Menyediakan pilihan obat yang komplit, setiap saat, dengan harga sama pagi-

siang-malam dan hari libur: Apotek K-24 melayani masyarakat selama 24 jam

perhari 7 hari perminggu dengan memberlakukan kebijakan harga yang tetap

sama pada pagi hari, siang hari, malam hari maupun hari libur.

• Menyediakan kualitas pelayanan yang prima: Apotek K-24 senantiasa

mempelajari dan mengusahakan peningkatan kualitas pelayanan untuk

memaksimalkan tingkat kepuasan para pelanggan dan penerima waralaba.

Universitas Sumatera Utara


25

3.5 Prestasi Apotek K-24

Perjalanan yang cukup panjang namun menorehkan prestasi, membuat Apotek K – 24

mempunyai ‘brand identity’ yang bernilai jual tinggi di tengah era persaingan usaha

yang sangat kompetitif ini. Hal ini diperoleh karena usaha dan kerja keras, disiplin

serta keuletan yang tetap memegang teguh prinsip pelayanan kepada masyarakat.

Berikut beberapa prestasi berupa penghargaan yang telah di terima Apotek K-24 :

• Museum Rekor Indonesia ( MURI ) dengan kategori “Apotek Jaringan

Pertama di Indonesia Yang Buka 24 jam Non Stop Setiap Hari", pada tanggal

6 April 2005.

• Museum Rekor Indonesia ( MURI ) dengan kategori "Apotek Asli Indonesia

Yang Pertama Kali Diwaralabakan", pada tanggal 24 Oktober2005.

• Museum Rekor Indonesia ( MURI ) dengan kategori "Pembukaan Gerai

Apotek Terbanyak; 7 Gerai Dibuka Pada Waktu Yang Sama” pada tanggal 24

Oktober 2005.

• Penghargaan “Excellent Franchise & Businnes Concept Award” dari Asosiasi

Franchise Indonesia ( AFI ) dan Majalah Info Franchise pada tanggal 11

Agustus 2006.

• Penghargaan “Enterprise 50, Indonesian Entrepreneurs Community” dari

Majalah SWA Sembada pada tanggal 21 Desember 2006.

• Penghargaan “Franchise Terbaik 2007 di Bidang Kesehatan”, dari Majalah

Pengusaha pada tanggal 27 Juni 2007.

Universitas Sumatera Utara


26

• Museum Rekor Indonesia ( MURI ) dengan kategori “Pengobatan Hipertensi

Gratis Terbanyak dalam Acara ‘Apotek K – 24 & Aktifis Peduli Hipertensi’

Serentak di 12 Kota pada 31 Gerai Apotek K – 24” pada tanggal 22 Juli 2007.

• Museum Rekor Indonesia ( MURI ) dengan kategori “Pembukaan Gerai

Apotek Terbanyak, 11 Gerai Dibuka Serentak di 7 Kota” pada tangal 24 Juli

2007.

3.6 Struktur Organisasi Apotek K-24

Setiap organisasi formal memiliki struktur organisasi sebagai keharusan manajerial.

Struktur organisasi adalah suatu bagian yang menunjukkan kedudukan, tugas,

wewenang dan tanggung jawab dalam suatu organisasi. Tujuan struktur organisasi

dibuat adalah setiap bagian dapat melaksanakan tugasnya masing–masing sesuai

dengan wewenang dan tanggung jawab yang telah diberikan, sehingga tujuan

organisasi dapat tercapai dengan baik.

Gambar 3.1 Struktur Organisasi Apotek K-24

Universitas Sumatera Utara


BAB 4

PERANCANGAN SISTEM

4.1 Perancangan Sistem

Perancangan sistem dapat didefenisikan sebagai merancang atau mendesain suatu

sistem yang baik, yang isinya adalah penggambaran, perencanaan, dan pembuatan

sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam satu kesatuan

yang utuh dan berfungsi untuk mendukung operasi sistem. Tujuan dari perancangan

sistem ialah untuk memenuhi kebutuhan kepada pemakai sistem serta untuk

memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada

pemogram komputer dan ahli-ahli teknik yang terlibat.

4.2 Perancangan Database

Secara garis besar Sistem Informasi Penjualan Barang pada Apotek K-24

menggunakan struktur database sebagai berikut :

Nama Field Tipe Data Ukuran Keterangan

Kode_Barang Text 6 Kode Barang

Kode_Jenis Text 5 Kode Jenis Barang

Universitas Sumatera Utara


28

Nm_Barang Text 20 Nama Barang

Hrg_Satuan Number 12 Harga Satuan Barang

Stok_Barang Number 4 Stok Barang

Keterangan Text 30 Keterangan Obat

Tabel 4.1 Tabel Barang

Nama Field Tipe Data Ukuran Keterangan

No_Nota Text 8 Nomor Nota Penjualan

Kode_Barang Text 5 Kode Barang

Harga_Jual Number 12 Harga Jual Barang yang

Dibeli

Jumlah_Jual Number 3 Jumlah Barang yang Dibeli

Subtotal Number 12 Jumlah dari Satuan Barang

yang Dibeli

Tabel 4.2 Tabel Detail_Penjualan

Nama Field Tipe Data Ukuran Keterangan

Kode_Jenis Text 5 Kode Jenis Barang

Nama_Jenis Text 10 Nama Jenis Barang

Tabel 4.3 Tabel Jenis_Barang

Universitas Sumatera Utara


29

Nama Field Tipe Data Ukuran Keterangan

Id AutoNumber 3 Nomor Id

UserId Text 10 Nama Pengguna Id

PassId Text 10 Password Id

Nama Text 20 Nama Lengkap Pengguna Id

Status Text 5 Status Pengguna

Tabel 4.4 Tabel Pengguna

Nama Field Tipe Data Ukuran Keterangan

No_Nota Text 8 Nomor Nota Penjualan

Tgl_Nota Date/Time Tanggal Penjualan

Total_Bayar Number 12 Total Penjualan

UserId Text 10 Nama Pengguna Id

Tabel 4.5 Tabel Penjualan

4.2.1 Relasi Antar Tabel

Jika dilihat kembali ke pada tabel database diatas terdapat beberapa field yang sama

pada dua tabel yang membentuk relasi antar tabel. Relasi antar tabel sendiri

merupakan hubungan yang terjadi pada suatu tabel dengan tabel lainnya, yang

berfungsi unuk mengatur operasi suatu database sesuai yang diinginkan.

Universitas Sumatera Utara


30

Sebagai gambaran relasi antar tabel dalam database tersebut dapat dilihat

sebagai berikut :

Gambar 4.1 Relasi Antar Tabel

4.3 Diagram Konteks

Diagram konteks adalah suatu diagram alir tingkat tinggi dari Data Flow Diagram

(DFD) yang menggambarkan seluruh jaringan, masukan dan keluaran. sistem yang

dimaksud adalah untuk menggambarkan sistem yang sedang berjalan,

mengidentifikasikan awal dan akhir data yang masuk dan keluaran sistem. Dengan

adanya suatu diagram konteks dari sistem, struktur pendekatan ini menggambarkan

sistem secara garis besar yang kemudian akan dipecah menjadi bagian-bagian lebih

Universitas Sumatera Utara


31

rinci. Berikut ini adalah diagram konteks dari sistem informasi penjualan barang pada

Apotek K-24.

Data Jenis Barang


Data Barang
Data Pengguna Laporan Seluruh Barang
Data Penjualan Sistem Informasi Laporan Barang Per-Jenis
Admin Pimpinan
Penjualan Barang
Laporan Seluruh Penjualan
Laporan Seluruh Barang Laporan Penjualan Per-Bulan
Laporan Barang Per-Jenis Laporan Penjualan Per-Tanggal Transaksi
Laporan Seluruh Penjualan Laporan Penjualan Antar Tanggal Transaksi
Laporan Penjualan Per-Tanggal Transaksi Laporan Penjualan Per-Bulan
Laporan Penjualan Antar Tanggal Transaksi Data Penjualan Laporan Seluruh Jumlah Barang yang Terjual
Laporan Penjualan Per-Bulan Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi
Laporan Seluruh Jumlah Barang yang Terjual Laporan Jumlah Barang yang Terjual Per- Bulan
Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi Grafik Pendapatan Per- Bulan
Laporan Jumlah Barang yang Terjual Per- Bulan
Grafik Pendapatan Per- Bulan
Kasir

Gambar 4.2 Diagram Konteks

4.4 Data Flow Diagram (DFD)

Data Flow Diagram (DFD) atau Diagram Arus Data (DAD) merupakan gerakan data

dari sebuah sistem, mulai dari masuk sampai ke tujuannya. Arus data di DFD diberi

simbol anak panah dan mengalir diantara proses (process), simpanan data (data store)

dan kesatuan luar (external entity).

DFD juga merupakan alat yang digunakan pada metodologi pengembangan

sistem yang terstruktur. DFD yang pertama kali digambarkan adalah level teratas (top

level) yang disebut dengan diagram konteks. Dari diagram konteks kemudian akan

digambar dengan lebih rinci lagi yang disebut overview diagram (level 0). Tiap-tiap

proses di overview diagram akan digambarkan secara lebih rinci lagi dan disebut

dengan level 1. Apabila tiap-tiap proses di level 1 dapat digambar kembali dengan

Universitas Sumatera Utara


32

lebih rinci lagi maka disebut dengan level 2 dan seterusnya, sampai tiap-tiap proses

tidak dapat digambarkan lebih rinci lagi. Berikut Data Flow Diagram dari Sistem

Informasi Penjualan Barang pada Apotek K-24.

DFD Level 0

Penggambaran sistem DFD level 0 (Overview Diagram) merupakan penjabaran dari

konteks diagram yang sudah menjurus kepada suatu proses dan merupakan gabungan

secara keseluruhan yang melibatkan semua kesatuan luar secara lengkap. Proses

tersebut dapat digambarkan sebagai berikut :

Admin Kasir

Data
Pengguna
Data Jenis Data Barang
Barang
Data Transaksi Penjualan Data Transaksi
Penjualan

1.0 2.0 3.0 4.0


Data
Pengguna
Pemasukan Data Pemasukan Data Pemasukan Data Pemasukan Data
Pengguna Jenis Barang Barang Transaksi Penjualan
Data
Barang
Data Data
Data Jenis Data Data Detail
Pengguna Data Jenis Penjualan
Barang Barang Penjualan
Barang

Data
Data Pengguna Data Jenis Barang Data Barang Data Penjualan
Detail_Penjualan

Data Data Detail


Pengguna Data Penjualan Data
Barang Penjualan
Data Jenis 5.0
Barang
Pembuatan Laporan

Laporan Seluruh Barang


Laporan Barang Per-Jenis Pimpinan
Laporan Seluruh Penjualan Laporan Seluruh Barang
Laporan Penjualan Per-Tanggal Transaksi Laporan Barang Per-Jenis
Laporan Penjualan Antar Tanggal Transaksi Laporan Seluruh Penjualan
Laporan Penjualan Per-Bulan
Laporan Penjualan Per-Tanggal Transaksi
Laporan Seluruh Jumlah Barang yang Terjual Laporan Penjualan Antar Tanggal Transaksi
Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi Laporan Penjualan Per-Bulan
Laporan Jumlah Barang yang Terjual Per- Bulan Laporan Seluruh Jumlah Barang yang Terjual
Grafik Pendapatan Per- Bulan Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi
Laporan Jumlah Barang yang Terjual Per- Bulan
Grafik Pendapatan Per- Bulan

Gambar 4.3 DFD Level 0

Universitas Sumatera Utara


33

Pada DFD diatas dapat dijelaskan bahwa seluruh data yang di input oleh admin

maupun kasir langsung disimpan di database (1.0 dan 2.0) ataupun disimpan dengan

membutuhkan data dari tabel lain melalui relasi antar tabel (3.0 dan 4.0). Kemudian

data-data tersebut digunakan untuk pembuatan laporan yang akan disampaikan ke

pimpinan dan admin.

DFD Level 1 Proses 1

Data Flow Diagram Level 1 Proses 1 dapat dijabarkan sebagai berikut.

1.1
Data Data
Pengguna Proses Pengguna
Admin Data Pengguna
Perekaman Data
Pengguna
Data
Pengguna

Data
Pengguna 1.2
Data
Pengguna
Proses Perubahan
Data Pengguna

Gambar 4.4 DFD level 1 proses 1

Berdasarkan DFD diatas, proses pemasukan data pengguna ke dalam tabel

pengguna dilakukan oleh Admin. (1.1). Admin juga melakukan proses perubahan data

yang membutuhkan data dari tabel pengguna, yang kemudian akan disimpan kembali

ke dalam tabel Pengguna (1.2).

Data Flow Diagram Level 1 Proses 2

Data Flow Diagram Level 1 Proses 1 dapat digambarkan sebagai berikut.

Universitas Sumatera Utara


34

2.1
Data Jenis Data Jenis
Barang Proses Barang Data Jenis
Admin
Perekaman Data Barang
Jenis Barang
Data Jenis
Barang

Data Jenis
Barang 2.2
Data Jenis
Barang
Proses Perubahan
Data Jenis Barang

Gambar 4.5 DFD level 1 proses 2

Berdasarkan DFD diatas, Admin memasukkan data jenis barang (2.1) dan

melakukan perubahan data yang membutuhkan data dari tabel Jenis_Barang yang

akan disimpan kembali ke dalam tabel tersebut (2.2).

Data Flow Diagram Level 1 Proses 3

Data Flow Diagram Level 1 Proses 1 dapat digambarkan secara lengkap sebagai

berikut.

Data Jenis
Barang

Data Jenis
Barang

3.1
Data Data
Barang Proses Barang
Admin Data Barang
Perekaman Data
Barang
Data
Barang

Data
Barang 3.2
Data
Barang
Proses Perubahan
Data Barang

Gambar 4.6 DFD level 1 proses 3

Universitas Sumatera Utara


35

Proses pemasukan barang dilakukan oleh Admin dan disertai dengan

pemasukan data jenis barang dari tabel Jenis_Barang yang dibutuhkan sebagai

informasi jenis barang pada barang yang akan disimpan. (3.1).

DFD Level 1 Proses 4

Data Flow Diagram Level 1 Proses 4 dapat dijabarkan secara lengkap sebagai berikut.

Data Barang

Data
Data Transaksi Barang
Penjualan
Kasir Data Detail
4.1 Penjualan
Data Detail
Proses Penjualan
Perekaman Data
Transaksi
Penjualan
Data
Penjualan
Admin
Data Transaksi Data Data Penjualan
Penjualan Pengguna

Data Pengguna

Gambar 4.7 DFD level 1 proses 4

Admin dan kasir melakukan proses pemasukan data transaksi penjualan yang

membutuhkan data barang dari tabel Barang sebagai informasi barang-barang yang

ada dan data pengguna dari tabel Pengguna untuk menentukan pengguna yang

melakukan transaksi penjualan(4.1). Kemudian data dari proses tersebut direkam ke

dalam tabel Detail_Penjualan dan tabel Penjualan.

Universitas Sumatera Utara


36

DFD Level 1 Proses 5

Data Flow Diagram Level 1 Proses 1 dapat dijabarkan sebagai berikut.

5.1
Data Barang
Data Pengguna Pembuatan Laporan Admin dan Pimpinan
Data Jenis Seluruh Barang
Barang

Laporan Seluruh Barang


5.2
Data Barang Laporan Barang Per-Jenis
Pembuatan Laporan
Barang Per-Jenis

Data Jenis Barang Data Pengguna


5.3
Laporan Seluruh Penjualan
Pembuatan Laporan
Seluruh Penjualan

5.4
Laporan Penjualan Per-
Data Penjualan Pembuatan Laporan Tanggal Transaksi
Data Barang
Penjualan Per-
Tanggal Transaksi

Data Barang 5.6


Laporan Penjualan Antar
Pembuatan Laporan Tanggal Transaksi
Penjualan Antar
Tanggal Transaksi
Data Penjualan

5.5
Laporan Penjualan Per-
Data Detail Penjualan
Bulan
Pembuatan Laporan
Penjualan Per-Bulan

Data Detail 5.7


Laporan Seluruh Jumlah
Penjualan
Pembuatan Laporan Barang yang Terjual
Seluruh Jumlah
Barang yang Terjual
Data Penjualan
Data Penjualan
5.8
Laporan Jumlah Barang yang
Pembuatan Laporan Terjual Antar Tanggal Transaksi
Jumlah Barang yang
Terjual Antar
Tanggal Transaksi

5.9
Data Detail Laporan Jumlah Barang
Penjualan Pembuatan Laporan yang Terjual Per- Bulan
Jumlah Barang yang
Terjual Per- Bulan

5.10
Data Detail Penjualan Grafik Pendapatan Per-Bulan
Pembuatan Grafik
Pendapatan Per-
Bulan

Gambar 4.8 DFD level 1 proses 5

Universitas Sumatera Utara


37

Proses pembuatan keseluruhan laporan dari seluruh tabel yang telah disimpan

dan akan disampaikan kepada admin dan pimpinan.

4.5 Flowchart

Flowchart atau bagan alir adalah suatu alat bantu yang dapat menentukan langkah-

langkah yang akan dilakukan oleh pemogram, mulai dari membentuk berkas hingga

program mampu menghasilkan keluaran (informasi) yang diperlukan untuk mencapai

hasil yang maksimal. Flowchart berbeda dengan Data Flow Diagram dimana DFD

menunjukkan alur data di suatu sistem sedangkan flowchart menjelaskan alur kerja

atau prosedur-prosedur yang ada di dalam sistem. Gambaran flowchart Sistem

Informasi Penjualan Barang pada Apotek K-24 dapat dilihat di bawah ini :

Data Pengguna Data Jenis Barang Data Barang Data Penjualan

Proses Rekam Proses Rekam Proses Rekam Proses Rekam

Detal_Penjualan.d
Pengguna.db Jenis_Barang.db Barang.db Penjualan.db
b

Proses Cetak Proses Cetak Proses Cetak Proses Cetak


Laporan Laporan Laporan Laporan

1 3 7 10
2 4 8
5 9
6

Keterangan :

1. Laporan Seluruh Barang


2. Laporan Barang Per-Jenis
3. Laporan Seluruh Penjualan
4. Laporan Penjualan Per-Tanggal Transaksi
5. Laporan Penjualan Antar Tanggal Transaksi
6. Laporan Penjualan Per-Bulan
7. Laporan Seluruh Jumlah Barang yang Terjual
8. Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi
9. Laporan Jumlah Barang yang Terjual Per- Bulan
10. Grafik Pendapatan Per- Bulan

Gambar 4.9 Flowchart

Universitas Sumatera Utara


BAB 5

IMPLEMENTASI SISTEM

5.1 Defenisi Implementasi Sistem

Secara sederhana implementasi dapat diartikan pelaksanaan atau penerapan tetapi

secara garis besar implementasi sistem merupakan langkah-langkah atau prosedur-

prosedur yang dilakukan dalam menyelesaikan desain sistem yang telah disetujui,

untuk menguji, menginstal, dan memulai sistem baru atau sistem yang diperbaiki

untuk menggantikan yang lama.

5.2 Tujuan Implementasi Sistem

Adapun tujuan-tujuan dari implementasi sistem, yaitu:

a. Menyelesaikan rancangan sistem yang ada dalam dokumen sistem yang baru

dan telah disetujui.

b. Mengkaji rangkaian sistem baik dari segi software maupun hardware sebagai

sarana pengolah data dan sekaligus penyaji informasi yang dibutuhkan.

c. Memastikan pemakai (user) dapat mengoperasikan program dengan mudah

terhadap sistem yang baru dan mendapatkan hasil yang baik dan jelas.

d. Memperhitungkan bahwa sistem telah memenuhi permintaan pemakai (user)

yaitu dengan menguji sistem secara menyeluruh.

Universitas Sumatera Utara


39

e. Memastikan bahwa sistem telah berjalan dengan lancar dengan mengontrol

dan melakukan instalasi secara benar.

5.3 Komponen Utama dalam Implementasi Sistem

Terdapat tiga komponen yang diperlukan sebagai sarana pendukung utama dalam proses

program dan pengolahan data yaitu Perangkat Keras (Hardware), Perangkat Lunak

(Software), dan Pengguna (Brainware). Komponen-komponen tersebut mempunyai

peran yang penting dalam menunjang sistem yang telah dirancang terhadap pengolahan

data.

5.3.1 Perangkat Keras (Hardware)

Perangkat keras (hardware) merupakan salah satu komponen dari sebuah komputer

yang sifat alat nya bisa dilihat dan disentuh secara langsung atau yang berbentuk

nyata, yang berfungsi untuk mendukung proses komputerisasi. Berdasarkan fungsinya

hardware dapat dibagi menjadi lima bagian, yaitu perangkat masukan (input device),

perangkat proses (process device), perangkat keluaran (output device), perangkat

penyimpanan (backing storage), dan perangkat tambahan (peripheral). Dalam hal ini

spesifikasi hardware yang penulis gunakan yaitu:

a. Satu unit Personal Computer dengan Processor Intel Core 2 Duo

b. Harddisk 320 MB

c. Memori 2 GB DDR2

d. Kartu Grafis NVIDIA GeForce 512 MB

e. Printer Canon Pixma IP 1880

Universitas Sumatera Utara


40

5.3.2 Perangkat Lunak (Software)

Perangkat lunak adalah sekumpulan data elektronik yang berupa program atau

instruksi yang akan menjalankan suatu perintah dan menjadi penghubung antara

hardware dan brainware. Untuk sistem ini penulis memakai beberapa software yang

diantaranya adalah:

1. Sistem operasi Windows XP Sp 3.

2. Visual Basic 6.0

3. Microsoft Access 2003

4. Crystal Report

5.3.3 Pengguna (Brainware)

Brainware adalah semua pihak yang terlibat dalam kegiatan pemanfaatan komputer

atau sistem pengolahan data. Brainware juga dapat diartikan sebagai perangkat

intelektual yang mengoperasikan dan mengeksplorasi kemampuan dari hardware

komputer maupun software komputer. Tanpa adanya brainware ini mustahil hardware

dan software yang canggih sekalipun dapat dimanfaatkan secara maksimal.

Berdasarkan tingkat pemanfaatannya, brainware komputer dibagi menjadi beberapa

kategori, yaitu :

1. Sistem analis, yaitu seseorang yang menganalisa sistem melalui penelitian,

perencanaan, pengkoordinasian, dan merekomendasikan pemilihan perangkat

lunak dan sistem yang paling sesuai dengan kebutuhan pemakai.

Universitas Sumatera Utara


41

2. Programmer, yaitu seseorang yang mempunyai kemampuan menguasai bahasa

pemograman dan bertugas sebagai pembuat dan petugas yang mempersiapkan

program yang dibutuhkan pada sistem komputerisasi yang akan dirancang.

3. Administrator adalah seseorang yang bertugas mengelola suatu sistem operasi

dan program-program yang berjalan pada sebuah sistem komputer atau

jaringan komputer.

4. Operator adalah pengguna biasa yang bekerja dengan hanya memanfaatkan

sistem komputer yang sudah ada.

5.4 Pengujian Sistem

Pengujian sistem bertujuan untuk memastikan sistem berjalan dengan lancar dan dapat

memenuhi keinginan pemakai serta dapat digunakan oleh pemakai dan dioperasikan

oleh operator sistem. Berikut ini langkah-langkah dan beberapa tampilan dalam

menjalankan program Sistem Informasi Penjualan Barang pada Apotek K-24 :

5.4.1 Menu Login

Pada form ini tersedia fasilitas untuk login ke dalam sistem aplikasi, baik itu seorang

ADMIN maupun KASIR. Dan untuk setiap pengguna memiliki hak aksesnya masing-

masing sesuai dengan status keanggotaannya.

Universitas Sumatera Utara


42

Gambar 5.1 Menu Login

Langkah 1 : - Masukkan Username

- Masukkan Password

- Masukkan Status dari Username tersebut

- Klik tanda check (√ ) maka pengguna akan memasukin Form Menu

Utama

Langkah 2 : - Jika klik tanda cross ( X ) maka pengguna akan batal Login dan

keluar dari program.

5.4.2 Menu Utama

Pada form ini terdapat beberapa menu dan submenu, antara lain adalah sebagai

berikut:

Master Data : - Data Jenis

- Data Barang

- Data Pengguna

Transaksi : - Tambah Stok Barang

- Transaksi Penjualan

Laporan : - Laporan Seluruh Barang

Universitas Sumatera Utara


43

- Laporan Barang Per- Jenis

- Laporan Seluruh Penjualan

- Laporan Penjualan Per- Tanggal Transaksi

- Laporan Penjualan Antar Tanggal Transaksi

- Laporan Penjualan Per- Bulan

- Laporan Seluruh Jumlah Barang yang Terjual

- Laporan Jumlah Barang yang Terjual Antar Tanggal

- Laporan Jumlah Barang yang Terjual Per- Bulan

- Grafik Pendapatan Per- Bulan

Sistem : - Logout/Login

- Keluar

Terdapat juga lima toolbar yang fungsi nya adalah untuk memanggil menu

yang telah ditentukan. Toolbar tersebut adalah Master Jenis Barang, Master Data

Barang, Tambah Stok Barang, Transaksi Penjualan, dan Login/Logout.

Gambar 5.2 Menu Utama

Universitas Sumatera Utara


44

5.4.3 Menu Data Jenis

Menu ini akan digunakan untuk pengolahan data-data jenis barang.

Gambar 5.3 Menu Data Jenis

Langkah 1 : - Klik Tambah jika ingin menambah jenis barang.

- Klik Simpan jika ingin menyimpan jenis barang yang telah diisi

pada Kode Jenis dan Nama Jenis.

Langkah 2 : Pilih data yang ingin diubah lalu klik Ubah jika ingin mengubah data

yang ada.

Langkah 3 : Pilih data yang ini di hapus lalu klik Hapus jika ingin menghapus data

yang ada.

Langkah 3 : Klik Keluar jika ingin keluar dari menu.

5.4.4 Menu Data Barang

Menu ini akan digunakan untuk pengolahan data barang. Data barang akan

dikelompokkan berdasarkan jenis barang.

Universitas Sumatera Utara


45

Gambar 5.4 Menu Data Barang

Langkah 1 : - Klik Tambah jika ingin menambah data barang.

- Klik Simpan jika ingin menyimpan data barang yang telah

dimasukkan.

Langkah 2 : Pilih data yang akan diubah lalu klik Ubah jika ingin mengubah data

yang ada.

Langkah 3 : Pilih data yang akan dihapus lalu klik Hapus jika ingin menghapus data

yang ada.

Langkah 4 : Klik Keluar jika ingin keluar dari menu.

Universitas Sumatera Utara


46

5.4.5 Menu Data Pengguna

Pada pengolahan data pengguna, pengguna dapat menentukan status pengguna atau

hak akses pengguna, baik itu sebagai ADMIN maupun KASIR. Staus pengguna

ADMIN dapat mengakses semua menu yang terdapat didalam program, sedangkan

status pengguna KASIR hanya dapat mengakses Menu Transaksi Penjualan, Menu

Laporan Seluruh Barang, Menu Laporan Barang Per- Jenis, Menu Logout/Login, dan

Menu Keluar.

Gambar 5.5 Menu Daftar Pengguna

Langkah 1 : - Klik Tambah jika ingin menambah data pengguna.

- Klik Simpan jika ingin menyimpan data pengguna yang telah

dimasukkan.

Langkah 2 : Pilih data yang akan diubah lalu klik Ubah jika ingin mengubah data

yang ada.

Langkah 3 : Pilih data yang akan dihapus lalu klik Hapus jika ingin mengubah data

yang ada.

Langkah 4 : Klik Keluar jika ingin keluar dari menu.

Universitas Sumatera Utara


47

5.4.6 Menu Tambah Stok Barang

Menu ini menyediakan fasilitas untuk menambahkan stok barang.

Gambar 5.6 Menu Tambah Stok Barang

Langkah 1 : - Klik Tambah jika ingin menambah stok barang

- Klik simbol search ( ) untuk mencari barang yang akan

ditambah stoknya.

- Lalu akan muncul menu Cari Daftar Barang. Pada menu ini

terdapat dua kategori pencarian yaitu kategori kode barang dan

kategori nama barang.

Gambar 5.7 Menu Cari Daftar Barang

Universitas Sumatera Utara


48

(-) Klik Kode Barang jika ingin mencari berdasarkan kode

barang dan klik Nama Barang jika ingin mencari berdasarkan

nama barang. Ketikkan nama barang atau kode barang yang

akan ditambah stoknya.

(-) Pilih barang yang akan ditambah stoknya lalu menu akan

otomatis tertutup dan kembali ke menu Tambah Stok Barang.

(-) Klik Normal jika ingin menghapus nama barang atau kode

barang yang telah diketikkan.

(-) Klik Tutup jika tidak ingin menambah stok dan menu akan

tertutup.

Langkah 2 : Isikan jumlah stok yang akan ditambah pada label Tambah Stok lalu

klik Simpan.

Langkah 3 : Klik Keluar jika ingin keluar dari menu.

5.4.7 Menu Transaksi Penjualan

Menu transaksi penjualan barang digunakan untuk merekam proses transaksi

penjualan barang terhadap pelanggan dan langsung mencetak laporan atau

menampilkan hasil dari penjualan.

Universitas Sumatera Utara


49

Gambar 5.8 Menu Transaksi Penjualan

Langkah 1 : - Klik Transaksi Baru jika ingin memulai transaksi.

- Klik simbol search ( ) untuk mencari barang yang akan dibeli

pelanggan.

- Lalu akan muncul menu Cari Persediaan Barang. Pada menu ini

terdapat dua kategori pencarian yaitu kategori kode barang dan

kategori nama barang

Gambar 5.9 Menu Cari Persediaan Barang

Universitas Sumatera Utara


50

(-) Klik Kode Barang jika ingin mencari berdasarkan kode

barang dan klik Nama Barang jika ingin mencari berdasarkan

nama barang. Ketikkan nama barang atau kode barang yang

akan dijual.

(-) Pilih barang yang akan dijual lalu menu akan otomatis

tertutup dan kembali ke menu Transaksi Penjualan.

(-) Klik Normal jika ingin menghapus nama barang atau kode

barang yang telah diketikkan.

(-) Klik Tutup jika tidak ingin menjual barang dan menu akan

tertutup.

Langkah 2 : Ketikkan jumlah barang yang dibeli pelanggan pada label Jumlah.

Langkah 3 : Klik Masuk Grid untuk memasukkan data barang yang dibeli ke dalam

grid penjualan.

Langkah 4 : Masukkan jumlah uang yang dibayar pelanggan kedalam label Cash

jika barang yang dibeli pelanggan sudah masuk semua kedalam grid

penjualan.

Langkah 5 : Klik Simpan untuk menyimpan transaksi penjualan lalu laporan hasil

penjualan akan muncul.

Universitas Sumatera Utara


51

Gambar 5.10 Menu Laporan Hasil Penjualan

(-) Klik Simpan jika ingin menyimpan laporan hasil transaksi

penjualan.

(-) Klik Cetak jika ingin mencetak laporan melalui printer.

(-) Klik Keluar jika ingin keluar dari menu.

Langkah 6 : Klik Batal jika ingin membatalkan transaksi dan klik Keluar jika ingin

keluar dari menu Transaksi Penjualan.

5.4.8 Menu Laporan Seluruh Barang

Menu ini langsung memunculkan laporan data barang yang ada di database.

Universitas Sumatera Utara


52

Gambar 5.11 Laporan Seluruh Barang

5.4.9 Menu Laporan Barang Per- Jenis

Menu ini dapat menampilkan laporan barang yang dipilih sesuai jenisnya.

Gambar 5.12 Menu Laporan Barang Per- Jenis

Langkah 1 : - Pilih Jenis Barang yang akan ditampilkan

Universitas Sumatera Utara


53

- Klik Tampilkan untuk menampilkan jenis barang yang telah dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu Laporan Barang Per- Jenis.

Gambar 5.13 Laporan Barang Per- Jenis

5.4.10 Menu Laporan Seluruh Penjualan

Menu ini langsung memunculkan laporan seluruh transaksi penjualan.

Universitas Sumatera Utara


54

Gambar 5.14 Laporan Seluruh Penjualan

5.4.11 Menu Laporan Penjualan Per- Tanggal Transaksi

Menu ini menampilkan laporan penjualan sesuai tanggal transaksi yang dipilih.

Gambar 5.15 Menu Laporan Penjualan Per- Tanggal Transaksi

Langkah 1 : - Pilih Tanggal Transaksi yang akan di tampilkan.

Universitas Sumatera Utara


55

- Klik Tampilkan untuk menampilkan laporan penjualan sesuai dengan

tanggal yang dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu.

Gambar 5.16 Laporan Penjualan Per-Tanggal Transaksi

5.4.11 Menu Laporan Penjualan Antar Tanggal Transaksi

Menu ini menampilkan laporan penjualan sesuai antar tanggal transaksi yang dipilih.

Universitas Sumatera Utara


56

Gambar 5.15 Menu Laporan Penjualan Antar Tanggal Transaksi

Langkah 1 : - Pilih Tanggal Transaksi yang akan di tampilkan.

- Klik Tampilkan untuk menampilkan laporan penjualan sesuai dengan

tanggal yang dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu.

Gambar 5.16 Laporan Penjualan Antar Tanggal Transaksi

Universitas Sumatera Utara


57

5.4.12 Menu Laporan Penjualan Per-Bulan

Menu ini menampilkan laporan penjualan sesuai bulan yang dipilih.

Gambar 5.17 Menu Laporan Penjualan Per- Bulan

Langkah 1 : - Pilih Transaksi Pada Bulan yang akan di tampilkan.

- Klik Tampilkan untuk menampilkan laporan penjualan sesuai dengan

bulan yang dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu.

Gambar 5.18 Laporan Penjualan Per- Bulan

Universitas Sumatera Utara


58

5.4.13 Menu Laporan Seluruh Jumlah Barang yang Terjual

Menu ini langsung memunculkan laporan seluruh jumlah barang yang terjual.

Gambar 5.19 Laporan Seluruh Jumlah Barang yang Terjual

5.4.14 Menu Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi

Menu ini menampilkan laporan jumlah barang yang terjual antar tanggal transaksi

yang dipilih.

Gambar 5.20 Menu Laporan Jumlah Barang yang Terjual Antar Tanggal

Transaksi

Universitas Sumatera Utara


59

Langkah 1 : - Pilih Tanggal Transaksi yang akan di tampilkan.

- Klik Tampilkan untuk menampilkan laporan penjualan sesuai dengan

tanggal yang dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu.

Gambar 5.21 Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi

5.4.14 Menu Laporan Jumlah Barang yang Terjual Per- Bulan

Menu ini menampilkan laporan jumlah barang yang terjual sesuai bulan yang dipilih.

Universitas Sumatera Utara


60

Gambar 5.20 Menu Laporan Jumlah Barang yang Terjual Per- Bulan

Langkah 1 : - Pilih Transaksi Pada Bulan yang akan di tampilkan.

- Klik Tampilkan untuk menampilkan laporan penjualan sesuai dengan

bulan yang dipilih.

Langkah 2 : Klik Keluar untuk keluar dari menu.

Gambar 5.21 Laporan Jumlah Barang yang Terjual Per- Bulan

Universitas Sumatera Utara


61

5.4.15 Menu Grafik Pendapatan Per- Bulan

Menu ini langsung memunculkan grafik pendapatan per- bulan.

Gambar 5.22 Grafik Pendapatan Per- Bulan

Universitas Sumatera Utara


BAB 6

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berdasarkan pembahasan yang telah dilakukan di bab sebelumnya maka penulis dapat

menarik kesimpulan :

1. Setiap organisasi atau perusahaan termasuk diantaranya Apotek K-24 dalam

proses operasionalnya membutuhkan suatu sistem informasi yang dapat

mengatur sistem penjualan barang sehingga proses produksi dapat berjalan

dengan lancar.

2. Sistem Informasi Penjualan Barang pada Apotek K-24 sangat diperlukan

dalam pengolahan data termasuk diantaranya penginputan data, penyimpanan

data, pengeditan data dapat dilakukan dengan lebih efektif dan efisien.

3. Laporan yang dihasilkan dari Sistem Informasi Penjualan Barang pada

Apotek K-24 sangat berarti dan berguna untuk pengambilan masa kini dan

maupun yang akan datang.

Universitas Sumatera Utara


63

6.2 Saran

Saran yang dapat penulis kemukakan adalah sebagai berikut :

1. Untuk meningkatkan efisiensi kinerja pegawai diharapkan memakai sistem

informasi penjualan barang yang telah dirancang.

3. Diharapkan dimasa yang akan datang adanya pengembangan lebih lanjut dari

sistem informasi ini sehingga menjadi sistem informasi yang terpadu untuk

menanggulangi dan mengolah data yang lebih besar.

Universitas Sumatera Utara


DAFTAR PUSTAKA

Binarto, Suryo , 2009. Tips dan Trik Membuat Program Penjualan Menggunakan

Visual Basic 6.0. Jakarta: Media Kita.

Kurniadi, Adi, 2000. Pemrograman Visual Basic 6.0, Jakarta: Penerbit PT. Elex

Media Komputindo.

Nono, 2011. Membangun Sistem Informasi Toko dan Distributor dengan VB dan

Access. Jakarta: Penerbit PT. Elex Media Komputindo.

Subari dan Yuswanto. 2008. Panduan Lengkap Pemograman Visual Basic 6.0.

Surabaya: Cerdas Pustaka Publisher.

Indriyana, Indah dan Nugroho, Bunafit. 2009. Panduan Tugas Akhir: Membuat

Aplikasi Penjualan Barang dengan Visual Basic 6.0. Yogyakarta: Penerbit

Alif Media.

Rusmawan, Uus, 2008. Koleksi Program VB 6.0 Konsep ADO untuk Tugas Akhir

dan Skripsi, Jakarta: Penerbit PT. Elex Media Komputindo.

http://www.apotek-k24.net/ Diakses tanggal 5 April,2012

http://djuliar.blogspot.com/2012/02/berbagai-skin-dan-style-untuk-visual.html

Diakses tanggal 11 Mei, 2012

http://www.naamcom.com/2010/04/script-mencetak-struk-di-vb6.html

Diakses tanggal 27 Mei, 2012

Universitas Sumatera Utara


LAMPIRAN

Modul Utama
Option Explicit
Public KoneksiDB As New ADODB.Connection
Public Rs_Jenis As ADODB.Recordset
Public Rs_Barang As ADODB.Recordset
Public Rs_StokBarang As ADODB.Recordset
Public Rs_Pengguna As ADODB.Recordset
Public Rs_Penjualan As ADODB.Recordset
Public Rs_CetakPenjualan As ADODB.Recordset
Public Rs_PreviewPenjualan As ADODB.Recordset
Public Rs As ADODB.Recordset

Public StrAkses As String


Public SqlInsert As String
Public SqlDelete As String
Public SqlUpdate As String
Public PenggunaID, PenggunaNm As String
Public SQL As String
Public Konfirmasi As String
Public Status As String

Public Sub BukaDatabase()

StrAkses = "Provider=Microsoft.Jet.OLEDB.4.0;Persist " _


& "Security Info=False;Data Source=" _
& App.Path + "\DbBarang.mdb"

On Error Resume Next

If KoneksiDB.State = adStateOpen Then


KoneksiDB.Close
Set KoneksiDB = New ADODB.Connection
KoneksiDB.Open StrAkses
Else
KoneksiDB.Open StrAkses
End If

Set Rs_Jenis = New ADODB.Recordset


Rs_Jenis.Open "SELECT * FROM Jenis_Barang", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

Set Rs_Barang = New ADODB.Recordset


Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _

Universitas Sumatera Utara


& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

Set Rs_StokBarang = New ADODB.Recordset


Rs_StokBarang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Stok_Barang <> 0 " _
& " ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

Set Rs_Pengguna = New ADODB.Recordset


Rs_Pengguna.Open "SELECT * FROM Pengguna", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

Set Rs_Penjualan = New ADODB.Recordset


Rs_Penjualan.Open "SELECT * FROM Penjualan", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic
End Sub

Public Function TglSkrg(tgl As Date) As String


TglSkrg = Format(Day(tgl), "00") & "/" _
& Format(Month(tgl), "00") & "/" _
& Format(Year(tgl))
End Function

Modul Cetak
Public Type arrCetak
KodeBarang As String
NamaBarang As String
TanggalTerima As Date
Jumlah As Long
HargaSatuan As Long
Total As Long
End Type

Public tabCetak() As arrCetak

'# Tulisan rata kiri


Function RKiri(NData, CFormat) As String
If NData > 0 Then 'Jika NData bilangan positif
RKiri = Format(NData, CFormat)

Universitas Sumatera Utara


'RKiri = RKiri + Space(Len(CFormat) - Len(RKiri))
Else 'Jika NData merupakan string kosong
RKiri = Format(NData, CFormat)
RKiri = "" + Space(Len(CFormat) - 1)
End If
End Function

'# Tulisan rata kanan


Function RKanan(NData, CFormat) As String
If NData > 0 Then 'Jika NData bilangan positif
RKanan = Format(NData, CFormat)
RKanan = RKanan + Space(Len(CFormat) - Len(RKanan))
Else 'Jika NData merupakan bilangan nol
RKanan = Format(NData, CFormat)
RKanan = Space(Len(CFormat) - 1) + "0"
End If
End Function

Public Function IsPrinterInstalled() As Boolean


On Error Resume Next
Dim strDummy As String
strDummy = Printer.DeviceName
If Err.Number Then
IsPrinterInstalled = False
Else
IsPrinterInstalled = True
End If
End Function

Form Menu Utama


Option Explicit

Private Sub Form_Paint()


Dim lebar As Single
Dim tinggi As Single
Dim x As Single
Dim y As Single

lebar = Picture1.ScaleWidth
tinggi = Picture1.ScaleHeight
y = Toolbar1.Height
Do While y < ScaleHeight
x=0
Do While x < ScaleWidth
PaintPicture Picture1.Picture, _
x, y, lebar, tinggi
x = x + lebar
Loop
y = y + tinggi

Universitas Sumatera Utara


Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim Tanya

Tanya = MsgBox("Keluar dari Sistem?", vbQuestion + vbYesNo)

If Tanya = vbYes Then


End
Else
Exit Sub
End If
End Sub

Private Sub mnuGraJualBln_Click()


cr.ReportFileName = App.Path + "\rptGraJualBln.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28

End Sub

Private Sub mnuKeluar_Click()


Dim Tanya

Tanya = MsgBox("Keluar Dari Program Ini?", vbQuestion + vbYesNo, "Keluar")

If Tanya = vbYes Then


End
Else

End If

End Sub

Private Sub mnuJualPeriode_Click()


frmLapJualPeriode.Show 1
End Sub

Private Sub mnuJualTgl_Click()


frmLapJualTgl.Show 1
End Sub

Private Sub mnuLapBrgJualAntrTgl_Click()


frmLapBrgAntrTgl.Show 1
End Sub

Universitas Sumatera Utara


Private Sub mnuLapJlhBrgJualBln_Click()
frmLapJlhBrgJualBln.Show 1
End Sub

Private Sub mnuLapJualAntrTgl_Click()


frmLapJlAntrTgl.Show 1
End Sub

Private Sub mnuLapSelBrgJual_Click()


cr.ReportFileName = App.Path + "\rptGraSelJlhBrg.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28

End Sub

Private Sub mnuPengguna_Click()


frmPengguna.Show 1
End Sub

Private Sub mnuJenis_Click()


frmJenis.Show 1, FrmUtama
End Sub

Private Sub mnuLapJual_Click()


With rptLapPenjualan
.Sections("Section4").Controls("Label5").Caption = _
Format(Date, "dd MMMM yyyy")
.Show 1
End With
End Sub

Private Sub mnuLapBarang_Click()


With rptBarang
.Sections("Section4").Controls("Label5").Caption = _
Format(Date, "dd MMMM yyyy")
.Show 1
End With
End Sub

Private Sub mnuLogin_Click()


If FrmUtama.mnuLogin.Caption = "Login" Then
frmLogin.Show 1
Else
mnuLaporan.Enabled = False
mnuBarang.Enabled = False

Universitas Sumatera Utara


mnuJenis.Enabled = False
mnuTamStok.Enabled = False
mnuPengguna.Enabled = False
mnuTransaksi.Enabled = False
Toolbar1.Enabled = False

Me.mnuLogin.Caption = "Login"
End If
End Sub

Private Sub mnuBarang_Click()


frmBarang.Show 1, FrmUtama
End Sub

Private Sub mnuBarangJenis_Click()


frmLapBarangJenis.Show 1
End Sub

Private Sub mnuTamStok_Click()


frmTambahStok.Show 1
End Sub

Private Sub mnuTransJual_Click()


frmJual.Show 1, FrmUtama
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)


On Error Resume Next
Select Case Button.Index
Case 1:
frmJenis.Show 1
Case 2:
frmBarang.Show 1
Case 4:
frmTambahStok.Show 1
Case 5:
frmJual.Show 1
Case 7:
frmLogin.Show 1
End Select
End Sub

Form Menu Login


Option Explicit
Dim MaxLogin As Integer

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"

Universitas Sumatera Utara


Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase

cmbStatus.AddItem ("KASIR")
cmbStatus.AddItem ("ADMIN")
End Sub

Private Sub TbLogin_Click()


If txtUser.Text = "" Then
MsgBox "USER ID MASIH KOSONG !", _
vbCritical + vbOKOnly, "Error"
txtUser.SetFocus
ElseIf txtPwd.Text = "" Then
MsgBox "PASSWORD MASIH KOSONG !", _
vbCritical + vbOKOnly, "Error"
txtPwd.SetFocus
Else
SQL = ""
SQL = "SELECT * FROM Pengguna " _
& "WHERE UserID='" & txtUser.Text & "' " _
& " AND PassID='" & txtPwd.Text & "'" _
& " AND Status='" & cmbStatus.Text & "'"
Set Rs_Pengguna = KoneksiDB.Execute(SQL)

If Not Rs_Pengguna.BOF Then


If Rs_Pengguna!Status = "ADMIN" Then
Unload Me
FrmUtama.Enabled = True
FrmUtama.Show
FrmUtama.mnuLaporan.Enabled = True
FrmUtama.mnuBarang.Enabled = True
FrmUtama.mnuJenis.Enabled = True
FrmUtama.mnuPengguna.Enabled = True
FrmUtama.mnuTransaksi.Enabled = True
FrmUtama.mnuTamStok.Enabled = True
FrmUtama.mnuTransJual.Enabled = True
FrmUtama.mnuJualPeriode.Enabled = True
FrmUtama.mnuLapJual.Enabled = True
FrmUtama.mnuJualTgl.Enabled = True
FrmUtama.mnuLapSelBrgJual.Enabled = True
FrmUtama.mnuLapJualAntrTgl.Enabled = True
FrmUtama.mnuLapBrgJualAntrTgl.Enabled = True
FrmUtama.mnuLapJlhBrgJualBln.Enabled = True
FrmUtama.mnuGraJualBln.Enabled = True
FrmUtama.Toolbar1.Enabled = True

Universitas Sumatera Utara


Else
Unload Me
FrmUtama.Enabled = True
FrmUtama.Show
FrmUtama.mnuLaporan.Enabled = True
FrmUtama.mnuLapBarang.Enabled = True
FrmUtama.mnuBarangJenis.Enabled = True
FrmUtama.mnuTransJual.Enabled = True
FrmUtama.mnuTamStok.Enabled = False
FrmUtama.mnuJualPeriode.Enabled = False
FrmUtama.mnuLapJual.Enabled = False
FrmUtama.mnuJualTgl.Enabled = False
FrmUtama.mnuBarang.Enabled = False
FrmUtama.mnuJenis.Enabled = False
FrmUtama.mnuPengguna.Enabled = False
FrmUtama.mnuTransaksi.Enabled = True
FrmUtama.mnuLapJualAntrTgl.Enabled = False
FrmUtama.mnuLapBrgJualAntrTgl.Enabled = False
FrmUtama.mnuLapSelBrgJual.Enabled = False
FrmUtama.mnuLapJlhBrgJualBln.Enabled = False
FrmUtama.mnuGraJualBln.Enabled = False
FrmUtama.Toolbar1.Enabled = False
End If

PenggunaID = Rs_Pengguna!UserId
PenggunaNm = Rs_Pengguna!Nama

With FrmUtama
.StatusBar1.Panels(1).Text = Rs_Pengguna!Nama
.StatusBar1.Panels(2).Text = "[" _
& Rs_Pengguna!Status & "]"
.mnuLogin.Enabled = True
.mnuLogin.Caption = "Logout"
End With

Unload Me
Else
' Periksa, login hanya 3 kali
' 3x gagal pesan error ditampilkan
If MaxLogin < 3 Then
MsgBox "PASSWORD MASIH SALAH, SILAHKAN ULANGI LAGI!", _
vbCritical + vbOKOnly, "Error"
txtPwd.Text = ""
txtPwd.SetFocus
MaxLogin = MaxLogin + 1
Else
MsgBox "ANDA BUKAN USER YANG BERHAK!", _
vbCritical + vbOKOnly, "Error"
End

Universitas Sumatera Utara


End If
End If
End If
End Sub

Private Sub TbTutup_Click()


Dim pil As VbMsgBoxResult
pil = MsgBox("Anda Yakin untuk keluar?", vbQuestion + vbYesNo, "Exit")
If (pil = vbYes) Then Unload Me
End Sub

Form Menu Data Jenis


Option Explicit
Dim GridObjIndex As Byte
Dim KodeJenis As String

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase
Call TampilGridData
Call FormMati

TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
End Sub

Sub FormKosong()
txtKode.Text = ""
txtNama.Text = ""
End Sub

Sub FormHidup()
txtKode.Enabled = True
txtNama.Enabled = True
End Sub

Sub FormMati()
txtKode.Enabled = False
txtNama.Enabled = False
End Sub

Sub FormNormal()

Universitas Sumatera Utara


FormKosong
FormMati

TbTambah.Enabled = True
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
TbKeluar.Caption = "Keluar"
End Sub

Sub BuatKodeJenis()
Rs_Jenis.Requery
Set Rs_Jenis = New ADODB.Recordset
Set Rs_Jenis = New ADODB.Recordset
Rs_Jenis.Open "SELECT * FROM Jenis_Barang", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

If Rs_Jenis.BOF Then
KodeJenis = "K0001"
Exit Sub
Else
Rs_Jenis.MoveLast
KodeJenis = Rs_Jenis!Kode_Jenis
KodeJenis = Right(KodeJenis, 4)
KodeJenis = Val(KodeJenis) + 1

If Len(KodeJenis) > 4 Then


MsgBox "Kode jenis baru melewati batas", _
vbCritical, "Error"
Exit Sub
End If
End If
KodeJenis = "K" & Format(KodeJenis, "0000")
End Sub

Sub AktifGridJenis()
With GridJenis
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.RowHeightMin = 300
.Col = 1

Universitas Sumatera Utara


.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 2
.Row = 0
.Text = "NAMA JENIS"
.CellFontBold = True
.ColWidth(2) = 6000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub

Sub TampilGridData()
Dim Baris As Integer
GridJenis.Clear
AktifGridJenis

GridJenis.Rows = 2
Baris = 0

Call BukaDatabase
If Rs_Jenis.BOF Then
MsgBox "Tabel Jenis masih kosong!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Else
With Rs_Jenis
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridJenis.Rows = Baris + 1
GridJenis.TextMatrix(Baris, 0) = Baris
GridJenis.TextMatrix(Baris, 1) = !Kode_Jenis
GridJenis.TextMatrix(Baris, 2) = !Nama_Jenis
.MoveNext
Loop
End With
End If
End Sub

Private Sub GridJenis_DblClick()


TbHapus.Enabled = True
TbSimpan.Enabled = False

Universitas Sumatera Utara


TbUbah.Enabled = True
TbKeluar.Caption = "Batal"
TbTambah.Enabled = False

Call FormHidup
txtNama.SetFocus

GridObjIndex = GridJenis.Row

Set Rs_Jenis = New ADODB.Recordset


Rs_Jenis.Open " SELECT * FROM Jenis_Barang " _
& " WHERE Kode_Jenis='" _
& GridJenis.TextMatrix(GridObjIndex, 1) & "' " _
, KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Jenis.BOF Then
MsgBox "Tabel jenis Barang masih kosong!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Call FormNormal
Else
Rs_Jenis.MoveFirst
Do While Not Rs_Jenis.EOF
On Error Resume Next
txtKode.Text = Rs_Jenis!Kode_Jenis
txtNama.Text = Rs_Jenis!Nama_Jenis
Rs_Jenis.MoveNext
Loop
End If
End Sub

'# TOMBOL TAMBAH DIKLIK


Private Sub TbTambah_Click()
Call FormHidup

Call BuatKodeJenis
txtKode.Text = KodeJenis

TbSimpan.Enabled = True
TbTambah.Enabled = False
TbUbah.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = "Batal"
txtNama.SetFocus

Call TampilGridData
End Sub

Private Sub TbSimpan_Click()

Universitas Sumatera Utara


Dim Rs_Jenis As New ADODB.Recordset
Set Rs_Jenis = KoneksiDB.Execute("SELECT * " _
& " FROM Jenis_Barang " _
& " WHERE Nama_Jenis='" & txtNama.Text & "' ")

If txtNama.Text = "" Then


MsgBox "Nama Jenis Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus
ElseIf Not Rs_Jenis.BOF Then
MsgBox "Maaf, Nama jenis Barang" _
& " " & UCase(txtNama.Text) _
& " sudah tersedia!!", _
vbInformation + vbOKOnly, "Information"
txtNama.Text = ""
txtNama.SetFocus
Exit Sub
Else
SqlInsert = "INSERT INTO Jenis_Barang " _
& " (Kode_Jenis,Nama_Jenis) " _
& " VALUES('" & txtKode.Text & "','" _
& txtNama.Text & "')"

KoneksiDB.Execute SqlInsert, , adCmdText


Rs_Jenis.Requery
Call FormNormal
Call Form_Load

MsgBox "Data telah tersimpan dalam database !", _


vbOKOnly + vbInformation, "Konfirmasi"
End If
End Sub

'# TOMBOL UBAH DIKLIK


Private Sub TbUbah_Click()
If txtNama.Text = "" Then
MsgBox "Nama jenis Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus
Else
SqlUpdate = "UPDATE Jenis_Barang" _
& " SET Nama_Jenis='" & txtNama.Text & "' " _
& " WHERE Kode_Jenis='" & txtKode.Text & "'"

KoneksiDB.Execute SqlUpdate, , adCmdText


Rs_Jenis.Requery
Call FormNormal

MsgBox "Data telah ter_update dalam database !", _

Universitas Sumatera Utara


vbOKOnly + vbInformation, "Konfirmasi"

Call Form_Load
End If
End Sub

'# TOMBOL HAPUS DIKLIK


Private Sub TbHapus_Click()
Konfirmasi = MsgBox("Anda yakin akan " _
& " menghapus pesan ini?", _
vbYesNo + vbQuestion, "Konfirmasi")
If Konfirmasi = vbYes Then
SqlDelete = "DELETE FROM Jenis_Barang WHERE " _
& " Kode_Jenis='" & txtKode.Text & "'"

KoneksiDB.Execute SqlDelete, , adCmdText


Rs_Jenis.Requery
Call FormNormal
Call Form_Load
Else
Call FormNormal
End If
End Sub

'# TOMBOL KELUAR DIKLIK


Private Sub TbKeluar_Click()
If TbKeluar.Caption = "Keluar" Then
Unload Me
Else
Call FormNormal
End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)


KeyAscii = Asc(UCase((Chr(KeyAscii))))
If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus
KeyAscii = 0
End If
End Sub

Form Menu Data Barang


Option Explicit
Dim GridObjIndex As Byte
Dim Kd_Jenis As String
Dim KodeBarang As String
Dim KeteranganBarang As String

Private Sub Form_Load()

Universitas Sumatera Utara


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase
Call TampilGridData
Call FormMati

TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False

Call CmbJenis_Click
Call cmbJenis_DropDown
End Sub

Sub FormKosong()
txtKode.Text = ""
CmbJenis.ListIndex = -1
txtNama.Text = ""
txtHarga.Text = "0"
txtStok.Text = "0"
txtKeterangan.Text = ""
End Sub

Sub FormHidup()
txtKode.Enabled = True
CmbJenis.Enabled = True
txtNama.Enabled = True
txtHarga.Enabled = True
txtStok.Enabled = True
txtKeterangan.Enabled = True
End Sub

Sub FormMati()
txtKode.Enabled = False
CmbJenis.Enabled = False
txtNama.Enabled = False
txtHarga.Enabled = False
txtStok.Enabled = False
txtKeterangan.Enabled = False
End Sub

Sub FormNormal()
Call FormKosong
Call FormMati
txtStok.Locked = False

Universitas Sumatera Utara


TbTambah.Enabled = True
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbUbah.Enabled = False
TbKeluar.Caption = "Keluar"
End Sub

Private Sub CmbJenis_Click()


Kd_Jenis = ""
Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _
& " Jenis_Barang WHERE " _
& " Nama_Jenis='" & CmbJenis.Text & "'")
With Rs_Jenis
If .EOF And .BOF Then
Exit Sub
Else
Kd_Jenis = Rs_Jenis!Kode_Jenis
txtNama.SetFocus
End If
End With
End Sub

Private Sub cmbJenis_DropDown()


CmbJenis.Clear
Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _
& " Jenis_Barang ORDER BY Nama_Jenis")
If Not Rs_Jenis.BOF Then
While Not Rs_Jenis.EOF
CmbJenis.AddItem Rs_Jenis!Nama_Jenis
Rs_Jenis.MoveNext
Wend
End If
End Sub

Sub BuatKodeBarang()
Rs_Barang.Requery
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " ORDER BY Kode_Barang ASC ", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then
KodeBarang = "B0001"
Exit Sub
Else

Universitas Sumatera Utara


Rs_Barang.MoveLast
KodeBarang = Rs_Barang!Kode_Barang
KodeBarang = Right(KodeBarang, 4)
KodeBarang = Val(KodeBarang) + 1

If Len(KodeBarang) > 4 Then


MsgBox "Kode baru melewati batas", _
vbCritical, "Error"
Exit Sub
End If
End If
KodeBarang = "B" & Format(KodeBarang, "0000")
End Sub

Sub AktifGridBarang()
With GridBarang
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 2
.Row = 0
.Text = "JENIS"
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns

Universitas Sumatera Utara


.CellAlignment = flexAlignCenterCenter

.Col = 4
.Row = 0
.Text = "HARGA [Rp.]"
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 5
.Row = 0
.Text = "STOK"
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 6
.Row = 0
.Text = "KETERANGAN"
.CellFontBold = True
.ColWidth(6) = 3000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

End With
End Sub

Sub TampilGridData()
Dim Baris As Integer
GridBarang.Clear
Call AktifGridBarang

GridBarang.Rows = 2
Baris = 0

Call BukaDatabase

If Rs_Barang.BOF Then
MsgBox "Tabel Barang masih kosong!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Else
With Rs_Barang
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1

Universitas Sumatera Utara


GridBarang.Rows = Baris + 1
GridBarang.TextMatrix(Baris, 0) = Baris
GridBarang.TextMatrix(Baris, 1) = !Kode_Barang
GridBarang.TextMatrix(Baris, 2) = !Nama_Jenis
GridBarang.TextMatrix(Baris, 3) = !Nm_Barang
GridBarang.TextMatrix(Baris, 4) = !Hrg_Satuan
GridBarang.TextMatrix(Baris, 5) = !Stok_Barang
GridBarang.TextMatrix(Baris, 6) = !Keterangan
.MoveNext
Loop
End With
End If
End Sub

Private Sub GridBarang_DblClick()


TbHapus.Enabled = True
TbSimpan.Enabled = False
TbUbah.Enabled = True
TbKeluar.Caption = "Batal"
TbTambah.Enabled = False
txtStok.Locked = True

Call FormHidup
CmbJenis.SetFocus

GridObjIndex = GridBarang.Row

Set Rs_Barang = New ADODB.Recordset


Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Kode_Barang='" _
& GridBarang.TextMatrix(GridObjIndex, 1) _
& "' ORDER BY Kode_Barang ASC ", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then
MsgBox "Tabel Barang masih kosong!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Call FormNormal
Else
Rs_Barang.MoveFirst
Do While Not Rs_Barang.EOF
On Error Resume Next
txtKode.Text = Rs_Barang!Kode_Barang
CmbJenis.Text = Rs_Barang!Nama_Jenis
txtNama.Text = Rs_Barang!Nm_Barang

Universitas Sumatera Utara


txtHarga.Text = Rs_Barang!Hrg_Satuan
txtStok.Text = Rs_Barang!Stok_Barang
txtKeterangan.Text = Rs_Barang!Keterangan
Rs_Barang.MoveNext
Loop
End If
End Sub

Private Sub Label1_Click()

End Sub

Private Sub TbTambah_Click()


Call FormHidup
Call BuatKodeBarang
txtKode.Text = KodeBarang

TbSimpan.Enabled = True
TbTambah.Enabled = False
TbUbah.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = "Batal"
CmbJenis.SetFocus

Call TampilGridData
End Sub

Private Sub TbSimpan_Click()


If CmbJenis.ListIndex = -1 Then
MsgBox "Jenis Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
CmbJenis.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus
ElseIf txtHarga.Text = "" Or txtHarga.Text = "0" Then
MsgBox "Harga Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtHarga.SetFocus
ElseIf txtStok.Text = "" Then
MsgBox "Stok Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtStok.SetFocus
Else
If txtKeterangan = "" Then
KeteranganBarang = "Tidak ada keterangan"
Else
KeteranganBarang = txtKeterangan.Text

Universitas Sumatera Utara


End If

SqlInsert = "INSERT INTO Barang " _


& " (Kode_Barang,Kode_Jenis, Nm_Barang, " _
& " Hrg_Satuan,Stok_Barang, Keterangan)" _
& " VALUES('" & txtKode.Text & "','" _
& Kd_Jenis & "','" & txtNama.Text & "','" _
& txtHarga.Text & "','" & txtStok.Text & "','" _
& KeteranganBarang & "')"

KoneksiDB.Execute SqlInsert, , adCmdText


Rs_Barang.Requery
Call FormNormal
Call Form_Load

MsgBox "Data telah tersimpan dalam database !", _


vbOKOnly + vbInformation, "Konfirmasi"
End If
End Sub

Private Sub TbUbah_Click()


If CmbJenis.ListIndex = -1 Then
MsgBox "Jenis Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
CmbJenis.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "Nama Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtNama.SetFocus
ElseIf txtHarga.Text = "" Or txtHarga.Text = "0" Then
MsgBox "Harga Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtHarga.SetFocus
ElseIf txtStok.Text = "" Then
MsgBox "Stok Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtStok.SetFocus
Else
If txtKeterangan = "" Then
KeteranganBarang = "Tidak ada keterangan"
Else
KeteranganBarang = txtKeterangan.Text
End If

SqlUpdate = "UPDATE Barang" _


& " SET Kode_Jenis='" & Kd_Jenis & " ', " _
& " Nm_Barang='" & txtNama.Text & "', " _
& " Hrg_Satuan='" & txtHarga.Text & "', " _
& " Stok_Barang='" & txtStok.Text & "', " _

Universitas Sumatera Utara


& " Keterangan='" & KeteranganBarang & "' " _
& " WHERE Kode_Barang='" & txtKode.Text & "'"

KoneksiDB.Execute SqlUpdate, , adCmdText


Rs_Barang.Requery
Call FormNormal

MsgBox "Data telah ter_update dalam database !", _


vbOKOnly + vbInformation, "Konfirmasi"

Call Form_Load
End If
End Sub

Private Sub TbHapus_Click()


Konfirmasi = MsgBox("Anda yakin akan " _
& " menghapus pesan ini?", _
vbYesNo + vbQuestion, "Konfirmasi")
If Konfirmasi = vbYes Then
SqlDelete = "DELETE FROM Barang WHERE " _
& " Kode_Barang='" & txtKode.Text & "'"

KoneksiDB.Execute SqlDelete, , adCmdText


Rs_Barang.Requery
Call FormNormal
Call Form_Load
Else
Call FormNormal
End If
End Sub

Private Sub TbKeluar_Click()


If TbKeluar.Caption = "Keluar" Then
Unload Me
Else
FormNormal
End If
End Sub

Private Sub txtHarga_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
txtStok.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _
And KeyAscii <= Asc("9") _
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub

Universitas Sumatera Utara


Private Sub txtKeterangan_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus
KeyAscii = 0
End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
txtHarga.SetFocus
KeyAscii = 0
End If
End Sub

Private Sub txtStok_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
txtKeterangan.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _
And KeyAscii <= Asc("9") _
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub

Form Menu Pengguna


Option Explicit
Dim GridBaris As Byte
Dim TmpPassword As String
Dim NewPassword As String
Dim Tanya As String

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase
Call TampilGridData

cmbStatus.Clear

cmbStatus.AddItem ("KASIR")
cmbStatus.AddItem ("ADMIN")

TbUbah.Enabled = False

Universitas Sumatera Utara


TbSimpan.Enabled = False
TbHapus.Enabled = False

Call FormMati
End Sub

Sub FormKosong()
txtUserId.Text = ""
txtPassword.Text = ""
txtNama.Text = ""
cmbStatus.ListIndex = -1
End Sub

Sub FormHidup()
txtUserId.Enabled = True
txtPassword.Enabled = True
txtNama.Enabled = True
cmbStatus.Enabled = True

txtUserId.BackColor = &HFFFFFF
txtPassword.BackColor = &HFFFFFF
txtNama.BackColor = &HFFFFFF
cmbStatus.BackColor = &HFFFFFF
End Sub

Sub FormMati()
txtUserId.Enabled = False
txtPassword.Enabled = False
txtNama.Enabled = False
cmbStatus.Enabled = False

txtUserId.BackColor = &HC0FFFF
txtPassword.BackColor = &HC0FFFF
txtNama.BackColor = &HC0FFFF
cmbStatus.BackColor = &HC0FFFF
End Sub

Sub FormNormal()
Call FormKosong
Call FormMati

TbBaru.Enabled = True
TbUbah.Enabled = False
TbHapus.Enabled = False
TbSimpan.Enabled = False
TbKeluar.Caption = "Keluar"
End Sub

Sub AktifGridPengguna()

Universitas Sumatera Utara


With GridPengguna

.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "USER ID"
.CellFontBold = True
.ColWidth(0) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 1
.Row = 0
.Text = "PASSWORD"
.CellFontBold = True
.ColWidth(1) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 2
.Row = 0
.Text = "NAMA PEMILIK"
.CellFontBold = True
.ColWidth(2) = 3700
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "STATUS"
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub

Sub TampilGridData()
Dim Baris As Integer
GridPengguna.Clear
Call AktifGridPengguna

GridPengguna.Rows = 2
Baris = 0

Set Rs_Pengguna = New ADODB.Recordset


Rs_Pengguna.Open "SELECT * FROM Pengguna", _
KoneksiDB, adOpenDynamic, adLockOptimistic

Universitas Sumatera Utara


If Rs_Pengguna.BOF Then
MsgBox "DATA Pengguna MASIH KOSONG!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Else
With Rs_Pengguna
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridPengguna.Rows = Baris + 1
GridPengguna.TextMatrix(Baris, 0) = !UserId
GridPengguna.TextMatrix(Baris, 1) = "xxxxxxx"
GridPengguna.TextMatrix(Baris, 2) = !Nama
GridPengguna.TextMatrix(Baris, 3) = !Status
.MoveNext
Loop
End With
End If
End Sub

Private Sub GridPengguna_DblClick()


TbHapus.Enabled = True
TbSimpan.Enabled = False
TbUbah.Enabled = True
TbKeluar.Caption = "Batal"
TbBaru.Enabled = False
txtUserId.Locked = True

Call FormHidup
txtPassword.SetFocus

GridBaris = GridPengguna.Row

Set Rs_Pengguna = New ADODB.Recordset


Rs_Pengguna.Open "SELECT * FROM Pengguna " _
& " WHERE UserId='" _
& GridPengguna.TextMatrix(GridBaris, 0) & "'", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Pengguna.BOF Then
MsgBox "TABEL MASIH KOSONG", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Call FormNormal
Else
Rs_Pengguna.MoveFirst
Do While Not Rs_Pengguna.EOF
On Error Resume Next

Universitas Sumatera Utara


txtUserId.Text = Rs_Pengguna!UserId
txtNama.Text = Rs_Pengguna!Nama
cmbStatus.Text = Rs_Pengguna!Status

TmpPassword = Rs_Pengguna!PassId
Rs_Pengguna.MoveNext
Loop
End If
End Sub

Private Sub TbBaru_Click()


Call FormHidup
Call TampilGridData

TbSimpan.Enabled = True
TbBaru.Enabled = False
TbHapus.Enabled = False
TbKeluar.Caption = "Batal"

txtUserId.Locked = False
txtUserId.SetFocus
End Sub

Private Sub TbSimpan_Click()


Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open "SELECT * FROM Pengguna WHERE " _
& " UserId='" & Trim(txtUserId.Text) & "'", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Len(txtUserId.Text) <= 4 Then


MsgBox "USER ID MINIMAL 4 DIGIT", _
vbOKOnly + vbCritical, "Error"
txtUserId.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "NAMA BELUM DIISI", _
vbOKOnly + vbCritical, "Error"
txtNama.SetFocus
ElseIf Not Rs_Pengguna.BOF Then
MsgBox "Maaf, UserId" _
& " " & UCase(txtUserId.Text) _
& " sudah tersedia!!", _
vbInformation + vbOKOnly, "Information"
txtUserId.Text = ""
txtUserId.SetFocus
Exit Sub
Else
SqlInsert = "INSERT INTO Pengguna " _
& " (UserId,PassId,Nama,Status) " _
& " VALUES('" & Trim(txtUserId.Text) & "','" _

Universitas Sumatera Utara


& Trim(txtPassword.Text) & "','" _
& Trim(txtNama.Text) & "','" _
& Trim(cmbStatus.Text) & "')"

KoneksiDB.Execute SqlInsert, , adCmdText


Rs_Pengguna.Requery

Call FormNormal
Call Form_Load
MsgBox "DATA PENGGUNA BARU TELAH TERSIMPAN", _
vbOKOnly + vbInformation, "Sukses"
End If
End Sub

Private Sub TbUbah_Click()


Set Rs_Pengguna = New ADODB.Recordset
Rs_Pengguna.Open "SELECT * FROM Pengguna WHERE " _
& " UserId='" & Trim(txtUserId.Text) & "'", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If txtNama.Text = "" Then


MsgBox "NAMA BELUM DIISI", _
vbOKOnly + vbCritical, "Error"
txtNama.SetFocus
Else
If Trim(txtPassword.Text) = "" Then
NewPassword = TmpPassword
Else
NewPassword = txtPassword.Text
End If

Tanya = MsgBox("AKAN MERUBAH DATA PENGGUNA? DARI : " _


& vbCrLf & "" & "NAMA LAMA : " _
& Rs_Pengguna.Fields!Nama + vbCrLf & "" _
& "NAMA BARU : " & txtNama.Text + vbCrLf & "", _
vbYesNo + vbQuestion, "Awass")

If Tanya = vbYes Then


SqlUpdate = "UPDATE Pengguna" _
& " SET PassId='" & NewPassword & " ', " _
& " Nama='" & Trim(txtNama.Text) & "', " _
& " Status='" & Trim(cmbStatus.Text) & "' " _
& " WHERE UserId='" & Trim(txtUserId.Text) & "'"

KoneksiDB.Execute SqlUpdate, , adCmdText


End If

Rs_Barang.Requery
Call FormNormal

Universitas Sumatera Utara


Call Form_Load
End If

End Sub

Private Sub TbHapus_Click()


Tanya = MsgBox("YAKIN AKAN MENGHAPUS DATA INI?" _
& vbCrLf & "" & "USER ID : " _
& txtUserId + vbCrLf & "" _
& "NAMA : " & txtNama.Text + vbCrLf & "", _
vbYesNo + vbQuestion, "Awass")
If Tanya = vbYes Then
SQL = "DELETE FROM Pengguna WHERE " _
& " UserId='" & txtUserId.Text & "'"
KoneksiDB.Execute SQL, , adCmdText

Rs_Pengguna.Requery
Call FormNormal
Call FormMati
Call TampilGridData
Else
Call FormNormal
End If
End Sub

Private Sub TbKeluar_Click()


If TbKeluar.Caption = "Keluar" Then
Unload Me
Else
Call FormNormal
End If
End Sub

Private Sub txtUserId_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
txtPassword.SetFocus
KeyAscii = 0
End If
End Sub

Private Sub txtPassword_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
txtNama.SetFocus
KeyAscii = 0
End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)


KeyAscii = Asc(UCase((Chr(KeyAscii))))

Universitas Sumatera Utara


If KeyAscii = vbKeyReturn Then
cmbStatus.SetFocus
KeyAscii = 0
End If
End Sub

Form Menu Tambah Stok Barang


Private Sub Form_Load()
Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase
Call FormMati

SkinLabel7.Visible = False
txtStokLama.Visible = False

TbCari.Enabled = False
TbSimpan.Enabled = False
End Sub

Sub FormKosong()
txtKode.Text = ""
txtJenis.Text = ""
txtNama.Text = ""
txtHarga.Text = "0"
txtStok.Text = "0"
txtStokLama.Text = ""
txtKeterangan.Text = ""
End Sub

Sub FormHidup()
txtKode.Enabled = True
txtJenis.Enabled = True
txtNama.Enabled = True
txtHarga.Enabled = True
txtStok.Enabled = True
txtKeterangan.Enabled = True
End Sub

Sub FormMati()
txtKode.Enabled = False
txtJenis.Enabled = False
txtNama.Enabled = False

Universitas Sumatera Utara


txtHarga.Enabled = False
txtStok.Enabled = False
txtKeterangan.Enabled = False
End Sub

Sub FormNormal()
Call FormKosong
Call FormMati
txtStok.Locked = False
SkinLabel7.Visible = False
txtStokLama.Visible = False

TbCari.Enabled = False
TbTambah.Enabled = True
TbSimpan.Enabled = False
TbKeluar.Caption = "Keluar"
End Sub

Private Sub TbCari_Click()


FrmUtama.Enabled = False
frmTambahStok.Enabled = False
frmCariBarang.Show 1
End Sub

Private Sub TbKeluar_Click()


If TbKeluar.Caption = "Keluar" Then
FrmUtama.Enabled = True
Unload Me
Else
FormNormal
End If
End Sub

Private Sub TbSimpan_Click()


If txtStok.Text = "" Or txtStok.Text = "0" Then
MsgBox "Stok Barang tidak boleh kosong!", _
vbInformation + vbOKOnly, "Perhatian"
txtStok.SetFocus
Else

SqlUpdate = ""
SqlUpdate = "UPDATE Barang" _
& " SET Stok_Barang=Stok_Barang + " _
& Val(txtStok.Text) & "" _
& " WHERE Kode_Barang='" & txtKode.Text & "'"

KoneksiDB.Execute SqlUpdate, , adCmdText

Universitas Sumatera Utara


Rs_Barang.Requery
Call FormNormal

MsgBox "Data telah ter_update dalam database !", _


vbOKOnly + vbInformation, "Konfirmasi"

Call Form_Load
End If
End Sub

Private Sub TbTambah_Click()


Call FormHidup
TbCari.Enabled = True
TbSimpan.Enabled = True
TbTambah.Enabled = False
TbKeluar.Caption = "Batal"
txtKode.SetFocus
End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
If Len(txtKode.Text) < 5 Then
MsgBox "KODE BARANG HARUS 5 DIGIT", _
vbCritical, "Error"
Exit Sub
End If
KeyAscii = 0
SkinLabel7.Visible = True
txtStokLama.Visible = True

Set Rs_Barang = New ADODB.Recordset


Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Kode_Barang='" _
& txtKode.Text & "' ", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic
If Rs_Barang.BOF Then
MsgBox "KODE BARANG TIDAK DIKENALI ..", _
vbInformation, "Info"
Else
With Rs_Barang
txtJenis.Text = !Nama_Jenis
txtNama.Text = !Nm_Barang
txtHarga.Text = !Hrg_Satuan
txtStokLama.Text = !Stok_Barang
txtKeterangan = !Keterangan
txtStok.SetFocus

Universitas Sumatera Utara


End With
End If
End If
End Sub

Private Sub txtStok_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
TbSimpan.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _
And KeyAscii <= Asc("9") _
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub

Form Menu Cari Daftar Barang

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 4

Call BukaDatabase
Call TampilGridData
End Sub

Sub AktifGridBarang()
With GridBarang
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

Universitas Sumatera Utara


.Col = 2
.Row = 0
.Text = "JENIS"
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 4
.Row = 0
.Text = "HARGA [Rp.]"
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 5
.Row = 0
.Text = "STOK"
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 6
.Row = 0
.Text = "KETERANGAN"
.CellFontBold = True
.ColWidth(6) = 3000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

End With
End Sub

Sub TampilGridData()
Dim Baris As Integer

GridBarang.Clear
Call AktifGridBarang

Universitas Sumatera Utara


GridBarang.Rows = 2
Baris = 0

If Rs_Barang.BOF Then
MsgBox "Tabel Barang masih kosong!", _
vbInformation + vbOKOnly, "Informasi"
Exit Sub
Else
With Rs_Barang
.MoveFirst
Do While Not .EOF
Baris = Baris + 1
GridBarang.Rows = Baris + 1
GridBarang.TextMatrix(Baris, 0) = Baris
GridBarang.TextMatrix(Baris, 1) = !Kode_Barang
GridBarang.TextMatrix(Baris, 2) = !Nama_Jenis
GridBarang.TextMatrix(Baris, 3) = !Nm_Barang
GridBarang.TextMatrix(Baris, 4) = !Hrg_Satuan
GridBarang.TextMatrix(Baris, 5) = !Stok_Barang
GridBarang.TextMatrix(Baris, 6) = UCase(!Keterangan)
.MoveNext
Loop
End With
End If
End Sub

Private Sub GridBarang_DblClick()


Dim barisGrid As String
barisGrid = GridBarang.Row

frmTambahStok.SkinLabel7.Visible = True
frmTambahStok.txtStokLama.Visible = True

If GridBarang.Rows <> 1 Then


With frmTambahStok
.txtKode.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 1))
.txtJenis.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 2))
.txtNama.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 3))
.txtHarga.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 4))
.txtStokLama.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 5))
.txtKeterangan.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 6))
End With

Universitas Sumatera Utara


Else
Exit Sub
End If

FrmUtama.Enabled = False
frmTambahStok.Enabled = True
Unload Me
End Sub

Private Sub TbNormal_Click()


Call Form_Load
txtCari.Text = ""
txtCari.SetFocus
End Sub

Private Sub TbTutup_Click()


FrmUtama.Enabled = False
frmTambahStok.Enabled = True
Unload Me
End Sub

Private Sub txtCari_Change()


If Option2.Value = True Then
Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Nm_Barang LIKE '%" _
& txtCari.Text & "%' " _
& " ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then
MsgBox "Tidak menemukan nama Barang! " _
& " - " & txtCari.Text & " - dalam tabel", _
vbInformation, "Informasi"

txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If

ElseIf Option1.Value = True Then


Set Rs_Barang = New ADODB.Recordset
Rs_Barang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _

Universitas Sumatera Utara


& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Kode_Barang LIKE '%" _
& txtCari.Text & "%' " _
& " ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_Barang.BOF Then
MsgBox "Tidak menemukan kode Barang! " _
& " - " & txtCari.Text & " - dalam tabel", _
vbInformation, "Informasi"

txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub

Form Menu Transaksi Penjualan


Option Explicit
Dim Baris As Integer
Dim i As Integer
Dim Tanya As String
Dim NoNota As String
Dim NaikHargaJual As String

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase
Call FormMati

TbSimpan.Enabled = False
TbCari.Enabled = False
TbMasuk.Enabled = False
End Sub

Sub FormKosong()
txtNoNota.Text = ""
txtTgl.Text = "__/__/____"
txtKode.Text = ""
txtNama.Text = ""
txtStok.Text = ""
txtHarga.Text = "0"

Universitas Sumatera Utara


txtJumlah.Text = ""
txtTotal.Text = "0"
txtTotalHarga = "0"
txtKembali.Text = "0"
txtCash.Text = "0"

Baris = 1
GridPenjualan.Clear
GridPenjualan.Rows = 2
Call AktifGridJual
End Sub

Sub FormTransKosong()
txtTotalHarga.Text = "0"
txtCash.Text = ""
txtKembali.Text = "0"
End Sub

Sub FormMati()
txtNoNota.Enabled = False
txtTgl.Enabled = False
txtKode.Enabled = False
txtNama.Enabled = False
txtStok.Enabled = False
txtHarga.Enabled = False
txtJumlah.Enabled = False
txtTotal.Enabled = False
txtTotalHarga.Enabled = False
txtCash.Enabled = False
txtKembali.Enabled = False
End Sub

Sub FormHidup()
txtNoNota.Enabled = True
txtTgl.Enabled = True
txtKode.Enabled = True
txtNama.Enabled = True
txtStok.Enabled = True
txtHarga.Enabled = True
txtJumlah.Enabled = True
txtTotal.Enabled = True
txtTotalHarga.Enabled = True
txtCash.Enabled = True
txtKembali.Enabled = True
End Sub

Sub FormNormal()
FormMati
FormKosong

Universitas Sumatera Utara


TbKeluar.Caption = "Keluar"
TbSimpan.Enabled = False
TbBaru.Enabled = True
TbCari.Enabled = False
TbMasuk.Enabled = False
End Sub

Sub BuatNotaJual()
Rs_Penjualan.Requery
Set Rs_Penjualan = New ADODB.Recordset
Rs_Penjualan.Open " SELECT * FROM " _
& " Penjualan ORDER BY No_Nota ", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

If Rs_Penjualan.BOF Then
NoNota = "JL-00001"
Exit Sub
Else
Rs_Penjualan.MoveLast
NoNota = Rs_Penjualan!No_Nota
NoNota = Right(NoNota, 5)
NoNota = Val(NoNota) + 1

If Len(NoNota) > 5 Then


MsgBox "Nomor nota baru melewati batas", _
vbCritical, "Error"
Exit Sub
End If
End If
NoNota = "JL-" & Format(NoNota, "00000")
End Sub

Sub AktifGridJual()
With GridPenjualan
.Col = 0
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(0) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 1
.Row = 0
.Text = "NAMA Barang"
.CellFontBold = True
.ColWidth(1) = 4200

Universitas Sumatera Utara


.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 2
.Row = 0
.Text = "HARGA (Rp)"
.CellFontBold = True
.ColWidth(2) = 1800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "JUMLAH"
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 4
.Row = 0
.Text = "SUBTOTAL (Rp)"
.CellFontBold = True
.ColWidth(4) = 1800
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub

Private Sub TbBaru_Click()


txtTgl.Text = Format(Date, "dd/MM/yyyy")
Call FormHidup
Call AktifGridJual

Call BuatNotaJual
txtNoNota.Text = NoNota

TbBaru.Enabled = False
TbCari.Enabled = True
TbKeluar.Caption = "Batal"
TbSimpan.Enabled = True
TbMasuk.Enabled = True

Baris = 1
End Sub

Private Sub TbCari_Click()


FrmUtama.Enabled = False

Universitas Sumatera Utara


frmJual.Enabled = False
frmCariStok.Show 1
End Sub

Private Sub TbMasuk_Click()


If txtKode.Text = "" Then
MsgBox "Barang masih kosong! ", _
vbOKOnly + vbCritical, "Konfirmasi"
TbCari.SetFocus
ElseIf Val(txtJumlah.Text) > _
Val(txtStok.Text) Then
MsgBox "Maaf..! Stok tidak memadai .", _
vbOKOnly + vbCritical, "Konfirmasi"
txtJumlah.Text = "0"
txtJumlah.SetFocus
ElseIf txtJumlah.Text = "0" _
Or txtJumlah.Text = "" Then
MsgBox "Jumlah barang masih kosong! ", _
vbOKOnly + vbCritical, "Konfirmasi"
txtJumlah.SetFocus
ElseIf GridPenjualan.Rows = 1 Then
MsgBox "Belum ada barang yang akan dijual!", _
vbOKOnly + vbCritical, "Konfirmasi"
TbCari.SetFocus
ElseIf txtStok.Text = "1" Then
MsgBox "Stok barang minimum!", _
vbOKOnly + vbCritical, "Konfirmasi"
Call BersihBarang
ElseIf Val(txtStok.Text) = _
Val(txtJumlah.Text) Then
MsgBox "Stok harus disisakan untuk sempel!", _
vbOKOnly + vbCritical, "Konfirmasi"
txtJumlah.Text = Val(txtJumlah.Text) - 1
TbMasuk.SetFocus
Else
With GridPenjualan
.Rows = Baris + 1
.TextMatrix(Baris, 0) = txtKode.Text
.TextMatrix(Baris, 1) = txtNama.Text
.TextMatrix(Baris, 2) = txtHarga.Text
.TextMatrix(Baris, 3) = txtJumlah.Text
.TextMatrix(Baris, 4) = txtTotal.Text
End With

txtTotalHarga.Text = _
Val(txtTotalHarga.Text) + Val(txtTotal.Text)

Baris = Baris + 1
Call BersihBarang

Universitas Sumatera Utara


End If
End Sub

Private Sub TbSimpan_Click()


Dim i As Integer

If txtNoNota.Text = "" Then


MsgBox "Nomor transaksi masih kosong !", _
vbOKOnly + vbCritical, "Konfirmasi"
txtNoNota.SetFocus
ElseIf Baris = 1 Then
MsgBox "Belum ada Barang yang akan dijual!", _
vbOKOnly + vbCritical, "Konfirmasi"
TbCari.SetFocus
ElseIf txtCash.Text = "" Or txtCash.Text = "0" Then
MsgBox "Belum melakukan pembayaran ! ", _
vbOKOnly + vbCritical, "Konfirmasi"
txtCash.SetFocus
ElseIf Val(txtCash.Text) < _
Val(txtTotalHarga.Text) Then
MsgBox "Pembayaran masih kurang", _
vbOKOnly + vbCritical, "Konfirmasi"
txtCash.SetFocus
Else
SqlInsert = ""
SqlInsert = "INSERT INTO Penjualan" _
& "(No_Nota,Tgl_Nota,Total_Bayar,UserId)" _
& "VALUES ('" & txtNoNota.Text & "','" _
& Format(Date, "yyyy-MM-dd") & "','" _
& txtTotalHarga.Text & " ','" _
& PenggunaID & "')"
KoneksiDB.Execute SqlInsert, , adCmdText
Rs_Penjualan.Requery

For i = 1 To Baris - 1
SqlInsert = ""
SqlInsert = "INSERT INTO Detail_Penjualan" _
& "(No_Nota,Kode_Barang,Harga_Jual, " _
& " Jumlah_Jual,SubTotal)" _
& " VALUES ('" & txtNoNota.Text & "','" _
& GridPenjualan.TextMatrix(i, 0) & "','" _
& GridPenjualan.TextMatrix(i, 2) & "','" _
& GridPenjualan.TextMatrix(i, 3) & "','" _
& GridPenjualan.TextMatrix(i, 4) & "')"
KoneksiDB.Execute SqlInsert, , adCmdText

SqlUpdate = ""
SqlUpdate = "UPDATE Barang SET " _
& " Stok_Barang=Stok_Barang - " _

Universitas Sumatera Utara


& Val(GridPenjualan.TextMatrix(i, 3)) & "" _
& " WHERE Kode_Barang='" _
& GridPenjualan.TextMatrix(i, 0) & "'"
KoneksiDB.Execute SqlUpdate, , adCmdText
Next i
MsgBox "Data telah tersimpan dalam database !", _
vbOKOnly + vbInformation, "Konfirmasi"

On Error Resume Next


With frmCetakJual
.NoNota = txtNoNota.Text
.TotHarga = txtTotalHarga.Text
.UangBayar = txtCash.Text
.UangKembali = txtKembali.Text
.Show 1
End With

Call FormNormal
Call FormTransKosong
End If
End Sub

Private Sub TbKeluar_Click()


If TbKeluar.Caption = "Keluar" Then
Tanya = MsgBox("ANDA YAKIN AKAN " _
& " MENGAKHIRI APLIKASI INI..?", _
vbQuestion + vbYesNo, "Exit")
If Tanya = vbYes Then
FrmUtama.Enabled = True
Unload Me
Else
Exit Sub
End If
Else
Call FormNormal
End If
End Sub

Sub BersihBarang()
txtKode.Text = ""
txtNama.Text = ""
txtHarga.Text = "0"
txtStok.Text = "0"
txtJumlah.Text = ""
txtTotal.Text = "0"
End Sub

Private Sub txtCash_Change()


On Error Resume Next

Universitas Sumatera Utara


If txtCash.Text = "" Or txtTotalHarga.Text = "" Then
txtKembali.Text = "0"
Exit Sub
Else
txtKembali.Text = _
Val(txtCash.Text) - Val(txtTotalHarga.Text)
End If
End Sub

Private Sub txtCash_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
TbMasuk.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _
And KeyAscii <= Asc("9") _
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub

Private Sub txtJumlah_Change()


On Error Resume Next
If txtJumlah.Text = "" Or txtHarga.Text = "" Then
txtTotal.Text = "0"
Exit Sub
Else
txtTotal.Text = txtJumlah.Text * txtHarga.Text
End If
End Sub

Private Sub txtJumlah_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
TbMasuk.SetFocus
ElseIf Not (KeyAscii >= Asc("0") _
And KeyAscii <= Asc("9") _
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub

Private Sub txtKode_KeyPress(KeyAscii As Integer)


If KeyAscii = vbKeyReturn Then
If Len(txtKode.Text) < 5 Then
MsgBox "KODE BARANG HARUS 5 DIGIT", _
vbCritical, "Error"
Exit Sub
End If

Universitas Sumatera Utara


KeyAscii = 0

Set Rs_StokBarang = New ADODB.Recordset


Rs_StokBarang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Stok_Barang <> 0 " _
& " AND Barang.Kode_Barang='" & txtKode.Text & "' ", _
KoneksiDB, adOpenDynamic, _
adLockBatchOptimistic

If Rs_StokBarang.BOF Then
MsgBox "KODE BARANG TIDAK DIKENALI ..", _
vbInformation, "Info"
Else
With Rs_StokBarang
txtStok.Text = !Stok_Barang
txtNama.Text = !Nm_Barang

' Harga penjualan secara otomatis


' dinaikkan 10% dari harga satuan
NaikHargaJual = _
(0.1 * Val(Rs_StokBarang!Hrg_Satuan))
txtHarga.Text = _
(Val(Rs_StokBarang!Hrg_Satuan) + NaikHargaJual)
txtJumlah.SetFocus
End With
End If
End If
End Sub

Form Menu Cari Persediaan Barang


Option Explicit
Dim NaikHargaJual As String

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 2

Call BukaDatabase
Call TampilGridData
End Sub

Sub AktifGridBarang()
With GridBarang

Universitas Sumatera Utara


.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 750
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 2
.Row = 0
.Text = "JENIS"
.CellFontBold = True
.ColWidth(2) = 1900
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 3
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(3) = 3300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 4
.Row = 0
.Text = "HARGA [Rp.]"
.CellFontBold = True
.ColWidth(4) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

.Col = 5
.Row = 0
.Text = "STOK"
.CellFontBold = True
.ColWidth(5) = 1600
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter

Universitas Sumatera Utara


End With
End Sub

Sub TampilGridData()
Dim Baris As Integer

GridBarang.Clear
Call AktifGridBarang

GridBarang.Rows = 2
Baris = 0

If Rs_StokBarang.BOF Then
MsgBox "Tabel Barang masih kosong!", _
vbInformation + vbOKOnly, "Informasi"
Exit Sub
Else
With Rs_StokBarang
.MoveFirst
Do While Not .EOF
Baris = Baris + 1
GridBarang.Rows = Baris + 1
GridBarang.TextMatrix(Baris, 0) = Baris
GridBarang.TextMatrix(Baris, 1) = !Kode_Barang
GridBarang.TextMatrix(Baris, 2) = !Nama_Jenis
GridBarang.TextMatrix(Baris, 3) = !Nm_Barang
GridBarang.TextMatrix(Baris, 4) = !Hrg_Satuan
GridBarang.TextMatrix(Baris, 5) = !Stok_Barang
.MoveNext
Loop
End With
End If

End Sub

Private Sub GridBarang_DblClick()


Dim barisGrid As String
barisGrid = GridBarang.Row

Set Rs_StokBarang = New ADODB.Recordset


Rs_StokBarang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Kode_Barang='" _
& GridBarang.TextMatrix(barisGrid, 1) & "'", _
KoneksiDB, adOpenDynamic, adLockOptimistic

Universitas Sumatera Utara


If GridBarang.Rows <> 1 Then
With frmJual
.txtKode.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 1))
.txtNama.Text = _
UCase(GridBarang.TextMatrix(barisGrid, 3))
.txtStok.Text = _
GridBarang.TextMatrix(barisGrid, 5)

' Harga penjualan secara otomatis


' dinaikkan 10% dari harga satuan
NaikHargaJual = _
(0.1 * Val(Rs_StokBarang!Hrg_Satuan))
.txtHarga.Text = _
(Val(Rs_StokBarang!Hrg_Satuan) + NaikHargaJual)
End With
Else
Exit Sub
End If

FrmUtama.Enabled = False
frmJual.Enabled = True
Unload Me
End Sub

Private Sub TbNormal_Click()


Call Form_Load
txtCari.Text = ""
txtCari.SetFocus
End Sub

Private Sub TbTutup_Click()


FrmUtama.Enabled = False
frmJual.Enabled = True
Unload Me
End Sub

Private Sub txtCari_Change()


If Option2.Value = True Then

Set Rs_StokBarang = New ADODB.Recordset


Rs_StokBarang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Nm_Barang LIKE '%" _
& txtCari.Text & "%' ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

Universitas Sumatera Utara


If Rs_StokBarang.BOF Then
MsgBox "Tidak menemukan nama Barang! " _
& " - " & txtCari.Text & " - dalam tabel", _
vbInformation, "Informasi"

txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If

ElseIf Option1.Value = True Then

Set Rs_StokBarang = New ADODB.Recordset


Rs_StokBarang.Open "SELECT Barang.*, " _
& " Jenis_Barang.Nama_Jenis " _
& " FROM Barang, Jenis_Barang WHERE " _
& " Jenis_Barang.Kode_Jenis=Barang.Kode_Jenis " _
& " AND Barang.Kode_Barang LIKE '%" _
& txtCari.Text & "%' ORDER BY Kode_Barang", _
KoneksiDB, adOpenDynamic, adLockBatchOptimistic

If Rs_StokBarang.BOF Then
MsgBox "Tidak menemukan kode Barang! " _
& " - " & txtCari.Text & " - dalam tabel", _
vbInformation, "Informasi"

txtCari.Text = ""
txtCari.SetFocus
Else
Call TampilGridData
End If
End If
End Sub

Form Laporan Barang Per- Jenis


Option Explicit
Dim Kd_Jenis As String

Private Sub cmbJenis_Change()


Kd_Jenis = ""
' Menampilkan seluruh daya jenis barang
Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM" _
& " Jenis_Barang WHERE Nama_Jenis='" _
& CmbJenis.Text & "'")

With Rs_Jenis
' Memeriksa keberadaan data

Universitas Sumatera Utara


If .EOF And .BOF Then
Exit Sub
Else
'Jika data ada, maka akan ditampilkan
On Error Resume Next
Kd_Jenis.Text = !Kode_Jenis
CmbJenis.Text = !Nama_Jenis
TbTampil.SetFocus
End If
End With
End Sub

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Call BukaDatabase

'Menampilkan seluruh data berdasarkan nama jenis


Set Rs_Jenis = KoneksiDB.Execute("SELECT * FROM " _
& " Jenis_Barang ORDER BY Nama_Jenis")

With Rs_Jenis
'Memeriksa keberadaan data jenis barang
If .BOF Then
Exit Sub
Else
'Jika data jenisa barang, maka ditampilkan
.MoveFirst
Do While Not .EOF
CmbJenis.AddItem ![Nama_Jenis]
.MoveNext
Loop
End If
End With
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Private Sub TbTampil_Click()


Dim SQL As String
Dim Rs_Tampil As New ADODB.Recordset
Set Rs_Tampil = New ADODB.Recordset

Universitas Sumatera Utara


'Menampilkan data barang berdasarkan nama jenis
SQL = ""
SQL = " SELECT Barang.*, Jenis_Barang.Nama_Jenis" _
& " FROM Barang, Jenis_Barang WHERE " _
& " Barang.Kode_Jenis = Jenis_Barang.Kode_Jenis " _
& " AND Barang.Hrg_Satuan <> 0 " _
& " AND Jenis_Barang.Nama_Jenis = '" _
& CmbJenis.Text & "'"

Set Rs_Tampil = KoneksiDB.Execute(SQL)


'Memeriksa keberadaan data barang
If Rs_Tampil.BOF Then
MsgBox " Belum ada stok Barang dengan jenis " _
& UCase(CmbJenis.Text) & "tidak tersedia !", _
vbInformation + vbOKOnly, "Informasi"
CmbJenis.ListIndex = -1
Else
'Jika data barang ada, maka akan ditampilkan kedalam bentuk laporan
DELaporan.Commands(3).CommandText = SQL
With rptLapBarangJenis
.Sections("Section4").Controls("Label3").Caption = _
CmbJenis.Text
.Sections("Section4").Controls("Label5").Caption = _
Format(Date, "dd MMMM yyyy")
.Refresh
.WindowState = 2
.Show 1
End With
End If

End Sub

Form Laporan Penjualan Per- Tanggal Transaksi

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

DTPicker1.Value = Now
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Universitas Sumatera Utara


Private Sub TbTampil_Click()
cr.ReportFileName = App.Path + "\rptJualTgl.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.ReplaceSelectionFormula "day({Penjualan.Tgl_Nota})=" & Day(DTPicker1.Value)
& " and month({Penjualan.Tgl_Nota})=" & Month(DTPicker1.Value) & " and
year({Penjualan.Tgl_Nota})=" & Year(DTPicker1.Value)
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28
End Sub

Form Laporan Penjualan Per-Bulan

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

MonthView1.Value = Now
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Private Sub TbTampil_Click()


cr.ReportFileName = App.Path + "\rptJualBln.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.ReplaceSelectionFormula " month({Penjualan.Tgl_Nota})=" &
Month(MonthView1.Value) & " and year({Penjualan.Tgl_Nota})=" &
Year(MonthView1.Value)
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28
End Sub

Form Laporan Jumlah Barang yang Terjual Per- Bulan

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

Universitas Sumatera Utara


MonthView1.Value = Now
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Private Sub TbTampil_Click()


cr.ReportFileName = App.Path + "\rptGraBlnJlhBrg.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
cr.ReplaceSelectionFormula " month({Penjualan.Tgl_Nota})=" &
Month(MonthView1.Value) & " and year({Penjualan.Tgl_Nota})=" &
Year(MonthView1.Value)
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28
End Sub

Form Laporan Penjualan Antar Tanggal Transaksi

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

DTPicker1.Value = Now
DTPicker2.Value = Now
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Private Sub TbTampil_Click()


cr.ReportFileName = App.Path + "\rptLapJlAntrTgl.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
Qry = "{Penjualan.Tgl_Nota} >= " & Format(DTPicker1, "\Date(yyyy,mm,dd)") & "
"_
& "And {Penjualan.Tgl_Nota} <= " & Format(DTPicker2, "\Date(yyyy,mm,dd)")
cr.SelectionFormula = Qry
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28
End Sub

Universitas Sumatera Utara


Form Laporan Jumlah Barang yang Terjual Antar Tanggal Transaksi

Private Sub Form_Load()


Skin1.LoadSkin App.Path & "/skin/chizh.skn"
Skin1.ApplySkin Me.hWnd

Move (Screen.Width - Width) / 2, _


(Screen.Height - Height) / 3

DTPicker1.Value = Now
DTPicker2.Value = Now
End Sub

Private Sub TbKeluar_Click()


Unload Me
End Sub

Private Sub TbTampil_Click()


cr.ReportFileName = App.Path + "\rptBrgJlAntrTgl.rpt"
cr.DataFiles(0) = App.Path + "\DbBarang.mdb"
Qry = "{Penjualan.Tgl_Nota} >= " & Format(DTPicker1, "\Date(yyyy,mm,dd)") & "
"_
& "And {Penjualan.Tgl_Nota} <= " & Format(DTPicker2, "\Date(yyyy,mm,dd)")
cr.SelectionFormula = Qry
cr.DiscardSavedData = True
cr.Destination = crptToWindow
cr.WindowState = crptMaximized
cr.Action = 28
End Sub

Universitas Sumatera Utara

Anda mungkin juga menyukai