SISTEM INFORMASI PERSEDIAAN OBAT PADA APOTIK DUNIA
TUGAS AKHIR
LINDAWATY 052406183
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
SISTEM INFORMASI PERSEDIAAN OBAT PADA APOTIK DUNIA
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
LINDAWATY 052406183
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2008
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
PERSETUJUAN
Judul
: SISTEM INFORMASI PERSEDIAAN OBAT PADA APOTIK DUNIA
Kategori
: TUGAS AKHIR
Nama
: LINDAWATY
Nomor Induk Mahasiswa
: 052406183
Program Studi
: D3 ILMU KOMPUTER
Departemen
: MATEMATIKA
Fakultas
: MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan,
Juni 2008
Diketahui/Disetujui oleh Departemen Matematika FMIPA USU Ketua,
Pembimbing
Dr. Saib Suwilo, M.Sc NIP. 131796149
Dra.Elly Rosmaini, M.Si NIP. 131459475
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
PERNYATAAN SISTEM INFORMASI PERSEDIAAN OBAT PADA APOTIK DUNIA
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 2008
LINDAWATY 052406183
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
PENGHARGAAN
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, dengan limpahan dan karunia-Nya Tugas Akhir ini dapat diselesaikan dalam waktu yang telah ditetapkan. Ucapan
terima
kasih
penulis
sampaikan
kepada
Bapak
Drs.Eddy
Marlianto,M.Sc selaku Dekan FMIPA USU. Kepada Bapak Dr.Saib Suwilo,M.Sc selaku Ketua Jurusan FMIPA USU. Ibu Dra.Elly Rosmaini,M.Si, selaku dosen pembimbing dalam penyelesaian Tugas Akhir ini yang sudah banyak memberikan masukan kepada penulis hingga Tugas Akhir ini selesai dan kepada seluruh dosen dan staf pegawai yang ada di FMIPA USU. Kepada orang tua beserta seluruh keluarga yang telah banyak memberikan dukungan kepada penulis. Kepada teman-teman di Ilmu Komputer khususnya C’05 yang telah banyak memberikan masukan dan dukungan kepada penulis. Penulis sepenuhnya menyadari bahawa Tugas Akhir ini masih jauh dari sempurna, baik dari segi penyusunan maupun kosa katanya. Untuk itu, dengan segala kerendahan hati penulis bersedia menerima kritik dan saran dari pembaca yang berguna untuk perbaikan di masa yang akan datang. Akhir kata, semoga Tugas Akhir ini dapat berguna bagi pembaca.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
ABSTRAK
Tugas Akhir ini bertujuan untuk membangun suatu rancangan sistem informasi persediaan obat yang bertujuan sebagai dasar dalam Sistem Pengambilan Keputusan. Sistem ini dikembangkan menggunakan Microsoft Visual Basic 6.0 dan Oracle 10 XE. Metodologi pengembangan sistem yang digunakan adalah berdasarkan Tinjauan Lapangan (Field Research) dan Tinjauan Kepustakaan (Library Research). Sistem ini meliputi form-form masukan data yang berkaitan dengan data obat, pembelian obat dan stok obat. Objektif utama sistem ini adalah untuk melihat arsitektur sistem informasi persediaan obat agar kinerja pengolahan data dapat ditingkatkan dan rancangan antarmuka diperoleh lebih mudah.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
DAFTAR ISI
Persetujuan Pernyataan Penghargaan Abstrak Daftar Isi Daftar Tabel Daftar Gambar Bab 1 Pendahuluan 1.1 Latar Belakang 1.2 Identifikasi Masalah 1.3 Batasan Masalah 1.4 Maksud dan Tujuan 1.5 Metodologi Penelitian 1.6 Sistematika Penulisan
Halaman ii iii iv v vi viii ix 1 1 2 3 4 4 5
Bab 2 Landasan Teori 2.1 Sistem dan Informasi 2.1.1 Sistem 2.1.2 Informasi 2.1.3 Komponen Sistem Informasi 2.2 Data dan Database Management System (DBMS) 2.2.1 Data 2.2.2 Database Management System (DBMS) 2.2.3 Komponen Utama DBMS 2.3 Bahasa Pemrograman Visual Basic 6.0 2.3.1 Sekilas tentang Bahasa Pemrograman Visual Basic 6.0 2.3.2 Struktur Bahasa Pemrograman Visual Basic 6.0 2.4 Oracle 10g XE
7 7 7 9 11 12 12 13 15 16 16 17 24
Bab 3 Perancangan Sistem 3.1 Perancangan Sistem 3.2 Perancangan Database 3.3 Hubungan antar tabel 3.4 Diagram Konteks 3.5 Digram Alir Data (Data Flow Diagram) 3.6 Algoritma
29 29 30 35 36 37 41
Bab 4 Implementasi Sistem 4.1 Defenisi Implementasi Sistem 4.2 Tujuan Implementasi Sistem 4.3 Komponen Utama Implementasi Sistem
44 44 44 45
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
4.4 Pengujian Sistem 4.5 Pemeliharaan Sistem 4.6 Tampilan
48 49 50
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2 Saran
53 53 53
Daftar Pustaka
55
Lampiran
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
DAFTAR TABEL
Halaman Tabel 3.1. Tabel Pembelian Tabel 3.2. Tabel Kode Master Tabel 3.3. Tabel Kode Tabel 3.4. Tabel Kartu Stok
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
31 31 32 32
DAFTAR GAMBAR
Halaman Gambar 2.1 Layar Interface Visual Basic 6.0 Gambar 2.2 Tampilan Menu Bar Gambar 2.3 Tampilan Toolbar Gambar 2.4 Tampilan Form Gambar 2.5 Tampilan Properties Window Gambar 2.6 Tampilan Form Layout Window Gambar 2.7 Tampilan Toolbox Gambar 2.8 Tampilan Project Window Gambar 2.9 Tampilan Code Window Gambar 2.10 Tampilan Immediate Window Gambar 2.11 Topologi Pear to Pear Gambar 2.12 Skema Rancangan Database Oracle Gambar 2.13 Tampilan Home page Oracle Gambar 2.14 Tampilan Halaman Administration Gambar 2.15 Tampilan Halaman Access Gambar 2.16 Tampilan Halaman Access Updated Gambar 3.1 Tampilan Tabel Pembelian Gambar 3.2 Tampilan Tabel Kode Gambar 3.3 Tampilan Tabel Master Gambar 3.4 Relasi Antar Tabel Gambar 3.5 Diagram Konteks Gambar 3.6 DFD Level 0 Gambar 3.7 DFD Level 1 Gambar 4.1 Tampilan Form Utama Gambar 4.2 Tampilan Form Entry Gambar 4.3 Tampilan Form Penjualan Gambar 4.4 Tampilan Form Pembelian Gambar 4.5 Tampilan Form Help
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
18 19 19 20 20 21 22 22 23 23 25 26 27 27 28 28 33 33 34 35 36 38 40 50 50 51 52 52
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan sistem komputerisasi tidak terlepas dari perkembangan teknologi yang hampir mempengaruhi seluruh aspek kehidupan manusia. Dalam perkembangan sistem komputerisasi, pemanfaatan teknologi informasi dalam pengelolaan dan manajemen data sangat diperlukan.
Dengan berbagai kelebihan dan kemudahan yang ditawarkannya tentu akan meningkatkan efisiensi dan efektivitas kerja dari suatu perusahaan. Salah satu kelebihan dari sistem komputerisasi ialah menghasilkan informasi secara relevan,tepat waktu dan akurat. Informasi yang dihasilkan tidak terlepas dari manajemen informasi yang baik dan mampu menjaga kelancaran kebutuhan informasi dalam sirkulasi data suatu sistem.
Manajemen sistem informasi juga menyangkut adanya suatu database yang mampu mengorganisasikan data yang ada di dalamnya secara akurat dan mampu mengatur relasi antar data sehingga informasi yang dihasilkan berdaya guna dan berpengaruh pada proses pengambilan keputusan pihak manajemen perusahaan. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Membangun suatu sistem informasi memerlukan pemahaman yang baik dan jelas mengenai sistem yang akan digunakan baik dalam prosedur sistem, input, output maupun hal-hal yang mempengaruhi kinerja sistem baik untuk jangka pendek maupun jangka panjang.
Tempat penulis melakukan penelitian yaitu Apotik Dunia, sistem pengolahan data untuk menangani transaksi pembelian dan penjualan, mengontrol persediaan obat di gudang dan mendata para pelanggan masih menggunakan aplikasi perkantoran yang umum digunakan yaitu Microsoft Office. Untuk itu diperlukan suatu sistem informasi yang mampu meningkatkan kinerja sistem agar dapat memberikan hasil yang maksimal serta dapat meningkatkan efiensi dan efektivitas kerja.
Berdasarkan uraian di atas bahwa sistem informasi sangat diperlukan dalam suatu perusahaan sehingga penulis melakukan penelitian dan menuangkannya dalam bentuk tugas akhir dengan judul “Sistem Informasi Persediaan Obat pada Apotik Dunia”.
1.2. Identifikasi Masalah
Dalam membangun suatu sistem informasi perlu diperhatikan terlebih dahulu akar permasalahan yang timbul dalam sistem yang telah ada ataupun dari data-data yang akan dikumpulkan.
Berdasarkan hasil penelitian terhadap sistem yang telah berjalan di apotik tersebut, maka identifikasi permasalahan pokok terdapat pada : Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
1. Kegiatan pengontrolan obat baik dalam persediaan, pembelian dan penjualan serta mengolah data pelanggan yang masih dikerjakan dengan aplikasi perkantoran yaitu Microsoft Office sehingga tidak dapat melihat secara rinci sisa obat sehingga tidak dapat diketahui persediaan obat minimum di gudang. 2. Laporan persediaan yang dihasilkan kurang terperinci sehingga menyulitkan pihak manajemen dalam mengambil keputusan tentang persediaan obat.
Dari uraian di atas, maka yang menjadi masalah adalah bagaimana merancang suatu sistem informasi yang mampu mengolah data dengan cepat, tepat dan akurat sehingga mendukung kelancaran operasional dengan lebih terkomputerisasi.
1.3. Batasan Masalah
Dalam penulisan tugas akhir ini, penulis mambatasi masalah hanya pada kegiatan persediaan obat , pembelian dan penjualan obat serta pengelolaan data pelanggan pada Apotik Dunia. Hal tesebut dilakukan agar pembahasan tidak menyimpang dari tujuannya serta keterbatasan waktu dan kemampuan penulis.
Dari permasalahan tersebut, penulis berusaha mengatasinya dengan membuat suatu sistem informasi untuk mengontrol persediaan obat di Apotik Dunia dengan manggunakan bahasa pemrograman Visual Basic 6.0.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
1.4. Maksud dan Tujuan
Maksud dari penyusunan Tugas Akhir ini adalah sistem informasi persediaan yang dirancang penulis dapat membantu dalam menyajikan laporan persediaan dengan cepat dan akurat sehingga dapat mencegah terjadinya penimbunan barang yang berlebihan di gudang maupun barang yang sudah habis tidak di order kembali.
Adapun tujuan dari penyusunan Tugas Akhir ini adalah untuk merancang suatu sistem informasi persediaan obat yang lebih efektif dan efisien untuk dapat dipergunakan pada Apotik Dunia.
1.5. Metodologi Penelitian
Dalam penyusunan tugas akhir, penulis menggunakan beberapa metode dalam mengumpulkan data. Metode-metode tersebut adalah: 1. Field Research Melakukan penelitian langsung ke lapangan yaitu di Apotik Dunia dan menganalisa secara langsung sistem yang ada serta data-data yang dibutuhkan dalam merancang sistem informasi tersebut. 2. Library Research Mengadakan penelitian dengan mencari pendukung sumber data tersebut guna mengumpulkan data yang bersifat teoritis yang berkaitan dengan penelitian dan penyusunan tugas akhir. 3. Merancang aplikasi program sistem informasi. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
4. Menguji program yang telah dirancang dan melakukan perbaikan jika masih ditemukan kesalahan.
1.6. Sistematika Penulisan
Adapun tujuan pembuatan sistematika penulisan Tugas Akhir ini adalah untuk lebih memudahkan penulis dalam menyelesaikan permasalahan yang dianalisis sehingga lebih terfokus dan terarah sekaligus memudahkan dalam penyajiannya ke dalam bentuk yang terstruktur.
Adapun sistematika penulisan Tugas Akhir ini adalah sebagai berikut: BAB 1
: PENDAHULUAN Dalam bab ini diuraikan tentang penjelasan umum dari permasalahan yang dibahas sehubungan dengan penyusunan Tugas Akhir ini yang meliputi latar belakang masalah, identifikasi masalah, batasan masalah, maksud dan tujuan penelitian, metode penelitian dan sistematika penulisan.
BAB 2
: LANDASAN TEORI Dalam bab ini diuraikan beberapa teori yang mendukung dalam pembahasan Tugas Akhir ini yang terdiri dari pengertian sistem dan informasi, pengenalan aplikasi database dan bahasa pemrograman Visual Basic 6.0 dan Oracle 10 XE.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BAB 3
:
PERANCANGAN SISTEM Dalam bab ini diuraikan tentang perancangan system yang dimulai dengan analisa perancangan sistem, perancangan database, diagram alir data (DFD), dan algoritma program.
BAB 4
:
IMPLEMENTASI SISTEM Dalam bab ini diuraikan tentang defenisi implementasi sistem, tujuan implementasi sistem, komponen utama implementasi sistem, tampilan output program, pengujian dan pemeliharaan sistem.
BAB 5
:
KESIMPULAN DAN SARAN Dalam bab ini diuraikan tentang kesimpulan dan saran mengenai penyusunan tugas akhir.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BAB 2
LANDASAN TEORI
2.1. Sistem dan Informasi
2.1.1 Sistem
Sistem
merupakan
serangkaian
prosedur
yang
saling
berhubungan
dalam
melaksanakan suatu pekerjaan tertentu. Sistem terdiri dari unsur yang dapat dikenal, saling melengkapi karena satu maksud, tujuan dan sasaran. Suatu sistem dapat terdiri dari beberapa sub sistem dan sub sistem dapat pula terdiri dari beberapa sub sistem.
Ada beberapa defenisi mengenai sistem yaitu: 1. David (1985) mendefinisikan sistem sebagai bagian yang saling berkaitan yang beroperasi bersama untuk mencapai beberapa saran atau maksud. 2. Lucas (1989) mendefinisikan sistem sebagai suatu komponen atau variabel yang terorganisasi , saling tergantung satu dengan yang lainnya dan terpadu serta mempunyai sasaran. 3. Mulyadi (2001) mendefinisikan sistem sebagai suatu jaringan
prosedur yang
dibuat menurut pola yang terpadu untuk melaksanakan kegitan pokok perusahaan.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
4. Robert G.Murdick (1993) mendefinisikan sistem sebagai seperangkat elemenelemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan bersama.
Jadi sistem dapat diartikan juga sebagai sekelompok komponen yang saling berhubungan, bekerja bersama untuk mencapai tujuan bersama dengan menerima input serta menghasilkan output dalam proses transformasi yang teratur.
Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu , yaitu : 1. Komponen Sistem Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya saling bekerja sama membentuk suatu kesatuan. Komponen-komponen sistem atau elemen-elemen sistem dapat berupa suatu subsistem atau bagian-bagian dari sistem. 2. Batas Sistem Batas sistem merupakan daerah yang membatasi antara satu sistem dengan sistem lainnya atau dengan lingkungan luarnya. Batas ini memungkinkan suatu sistem dipandang sebagai satu kesatuan. 3. Lingkungan Luar Sistem Lingkungan luar dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi
operasi
sistem.
Lingkungan
luar
sistem
menguntungkan dan dapat bersifat merugikan sistem tersebut. 4.
Penghubung Sistem
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
dapat
bersifat
Penghubung merupakan media penghubung antara satu subsistem dengan subsistem lainnya. Dengan penghubung satu subsistem dapat berintegrasi dengan subsistem lainnya membentuk satu kesatuan. 5.
Masukan Sistem Masukan adalah energi yang diimasukkan ke dalam sistem. Masukan dapat berupa masukan perawatan dan masukan sinyal. Masukan perawatan adalah energi yang dimasukkan supaya sistem tersebut dapat beroperasi. Masukan sinyal adalah energi yang diproses untuk mendapatkan keluaran.
6.
Keluaran Sistem Keluaran adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan sisa pembuangan. Keluaran dapat merupakan masukan untuk subsistem yang lain.
7.
Pengolah Sistem Suatu sistem dapat mempunyai suatu bagian pengolah yang akan merubah masukan menjadi keluaran.
8. Sasaran Sistem Sasaran dari sistem sangat menentukan sekali masukan yang dibutuhkan dari sistem dan keluaran yang akan dihasilkan dari sistem. Suatu sistem dikatakan berhasil bila mengenai sasaran yang telah ditetapkannya.
2.1.2
Informasi
Istilah informasi berasal dari bahasa Inggris “to inform “ yang dalam bahasa Indonesia diartikan sebagai “memberitahukan”. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Pada dasarnya informasi merupakan hal yang sangat penting bagi berbagai pihak dalam perusahaan terutama bagi pihak manajemen perusahaaan di dalam pengambilan suatu keputusan yang dapat diperoleh dari suatu sistem yaitu processing system atau information generating system.
Defenisi umum mengartikan informasi sebagai data yang telah diolah menjadi suatu bentuk yang berguna bagi pihak yang menerimanya dan bermanfaat di dalam pengambilan suatu keputusan pada saat ini maupun saat mendatang.
Menurut Davis (1999), informasi adalah data yang telah diolah menjadi sebuah bentuk yang berarti bagi penerimanya dan bermanfaat dalam pengambilan keputusan saat ini atau saat mendatang.
Menurut Mardick Et Al (1984) menyatakan informasi terdiri dari data yang telah diambil kembali, diolah atau digunakan untuk memberi dukungan keterangan bagi pengambilan kesimpulan, argumentasi, atau sebagai dasar untuk pengambilan keputusan.
Informasi dihasilkan oleh suatu sistem informasi perusahaan untuk dimanfaatkan oleh pengguna intern atau ekstern. Pengguna intern terdiri dari para manajer dan karyawan perusahaan. Pengguna ekstern terdiri dari pihak-pihak yang berkepentingan di luar perusahaan, seperti kreditor, badan-badan pemerintah dan serikat pekerja.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Berdasarkan pengertian sistem dan informasi di atas, maka dapat disimpulkan pengertian dari sistem informasi yaitu sekumpulan prosedur organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambilan keputusan atau untuk pengendalian organisasi.
Menurut Joseph W.Wilkinson (2000), sistem informasi adalah suatu kerangka kerja dengan sumber daya (manusia dan komputer) dikoordinasikan untuk mengubah masukan (data) menjadi keluaran (informasi), guna mencapai sasaran-sasaran perusahaan.
2.1.3
Komponen Sistem Informasi
John Burch dan Gary Grudnitski mengemukakan bahwa sistem informasi terdiri dari komponen-komponen yang disebutnya dengan istilah blok bangunan (building block), yaitu sebagai berikut:
1.
Blok masukan (input block), inputnya berupa metode-metode dan media untuk menangkap data yang akan dimasukkan, yang dapat berupa dokumen-dokumen dasar.
2. Blok model (model block), terdiri dari kombinasi prosedur, logika dan model metematik yang akan memanipulasi data input dan data yang tersimpan di basis data dengan cara tertentu untuk menghasilkan suatu keluaran.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
3.
Blok keluaran (output block), menghasilkan keluaran yang merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem.
4. Blok teknologi (technology block), digunakan untuk menerima input, menjalankan model, menyimpan dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem secara keseluruhan. 5. Blok basis data (database block), merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. 6. Blok kendali (controls block), untuk meyakinkan bahwa hal-hal yang dapat merusak sistem dapat dicegah ataupun bila terlanjur terjadi kesalahan-kesalahan dapat langsung cepat diatasi.
2.2. Data dan Database Management System (DBMS)
2.2.1
Data
Data berasal dari bahasa Latin yaitu “datum” yang berarti fakta, kenyataan, kejadian atau peristiwa. Jadi, data atau fakta adalah kenyataan dari suatu kejadian atau peristiwa. Menurut Murdick,dkk (1984) merumuskan bahwa : “Data adalah fakta yang tidak sedang digunakan pada proses keputusan, biasanya dicatat dan diarsipkan tanpa maksud untuk segera diambil kembali untuk pengambilan keputusan.”
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Data merupakan komponen dasar dari informasi yang akan diproses lebih lanjut untuk menghasilkan informasi. Himpunan data akan memiliki sifat yang unik, antara lain sebagai berikut:
1.
Saling berkaitan (Interreted), data-data tersebut akan saling berkaitan/ terintegrasi dan tersimpan secara terorganisir di dalam suatu media penyimpanan.
2.
Kebersamaan (Shared), data yang terintegrasi tersebut dapat diakses oleh berbagai macam pengguna / orang tetapi hanya satu yang dapat merubahnya yaitu Database Administrator (DBA). Sifat kebersamaan (Shared) dalam himpunan data tersebut akan membutuhkan perubahan berupa cara berfikir pengguna yang terbiasa dengan pola pemilikan data sendiri dan cara penanganan dan manajemen data dalam organisasi. Data bersama (Sharing Data) merupakan data yang dapat digunakan secara bersama oleh beberapa pemakai pada lokasi yang sama ataupun berbeda. Data bersama memiliki tiga tipe, yaitu: 1. Data bersama di antara unit fungsional 2. Data bersama pada berbagai tingkatan pengguna 3. Data bersama yang tersebar secara geografis
3.
Terkendali (Controlled), data yang terintegrasi tersebut hanya dapat diubah oleh seorang Database Administrator (DBA).
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
2.2.2
Database Management System (DBMS)
Database adalah sekumpulan data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat komputer dan digunakan perangkat lunak untuk memanipulasi data.
Database merupakan salah satu komponen utama dalam sistem informasi karena merupakan basis dalam menyediakan informasi bagi pemakai. Penerapan database di dalam informasi disebut Database System. Sistem Database (Database System) adalah suatu sistem informasi yang mengintegrasikan kumpulan dari data yang berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi.
Jadi, dapat disimpulkan bahwa Database Management System (DBMS) merupakan suatu alat komputer yang digunakan untuk menyimpan dan mengolah data yang bertujuan untuk menciptakan keadaan yang mudah dan efisien dalam pemakaian dan penyimpanan data. Adapun tujuan dari konsep database adalah meminimumkan pengulangan data mencapai independensi data.
Pengulangan data (redundancy data) adalah aplikasi data yang disimpan di dalam beberapa file. Independensi data adalah kemampuan untuk membuat suatu struktur data tanpa membuat perubahan pada program yang memproses dalam table dan kamus data yang terpisah secara fisik dari program.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Database adalah kumpulan file-file yang saling berelasi. Relasi tersebut bisa ditunjukkan dengan kunci dari file yang ada. Satu database menunjukkan satu kumpulan data yang dipakai dalam suatu lingkup perusahaan atau instansi.
Dalam satu file terdapat record-record yang sejenis, sama besar,sama bentuk merupakan satu kumpulan entri yang seragam. Satu record terdiri dari field-field yang saling berhubungan untuk menunjukkan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record. Untuk menyebut isi dari field tersebut maka digunakan atribut atau merupakan judul dari satu kelompok entity tertentu. Entity adalah suatu objek yang nyata dan akan direkam.
Set program pengelola merupakan satu paket program yang dibuat agar memudahkan dan mengefesiensikan pemasukan atau perekaman informasi dan pengambilan atau pembacaan informasi ke dalam database.
2.2.3
Komponen Utama DBMS
Komponen utama DBMS dapat dibagi dalam 4 macam yaitu: 1. Perangkat keras, berupa komputer dan bagian-bagian di dalamnya seperti processor, memori dan harddisk. 2. Data, mempunyai sifat terpadu yang berarti bahwa berkas data yang ada pada basis data saling terkait, namun kemubajiran data tidak akan terjadi dan sifat berbagi (share) yang berarti bahwa data dapat diakses oleh sejumlah pengguna dalam waktu yang bersamaan.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
3. Perangkat lunak, berkedudukan di antara basis data (data yang disimpan dalam harddisk) dan pengguna. 4. Pengguna, dapat dikategorikan menjadi tiga yaitu: a. Pengguna akhir b. Pemrogram aplikasi c. Administrator basis data
2.3. Bahasa Pemrograman Visual Basic 6.0
2.3.1
Sekilas tentang Bahasa Pemrograman Visual Basic 6.0
Visual Basic 6.0 berawal dari bahasa pemrograman BASIC (Beginners All-purpose Symbolic Instruction Code). Microsoft Visual Basic pertama kali dikeluarkan pada tahun 1991 dengan nama “Thunder” yang merupakan development pertama yang berbasis visual yang dibuat oleh Microsoft untuk menandingi bahasa pemrograman lainnya, seperti bahasa pemrograman C,C++, dan bahasa pemrograman lainnya.
Aplikasi Visual Basic mulai diproduksi pertama kali pada tahun 1991. Pada tahun 1993 Microsoft mengeluarkan Visual Basic versi 2.0 yang memulai menarik perhatian pengembang dan ketika Visual Basic versi 3.0 dikeluarkan, versi ini menjadi bahasa pemrograman yang paling pesat berkembang dan banyak diminati oleh para programmer.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Pada tahun 1997 Microsoft mengeluarkan Visual Basic versi 5.0 yang memiliki kemampuan untuk menciptakan ActiveX Control yang mampu ditempatkan di internet dan membuat bahasa HTML lebih dinamis. Pada tahun 1998 Microsoft mengeluarkan Visual Basic versi 6.0 yang merupakan salah satu bahasa pemrograman aplikasi yang sangat dikenal di dunia.
Visual Basic versi 6.0 dapat digunakan dalam tiga edisi, yang setiap edisinya menunjukkan fasilitas dan kemampuannya, yaitu: 1. Edition Learning ( Standard Edition), yang berisi berbagai sarana dasar dari Visual Basic 6.0 untuk mengembangkan aplikasi. 2. Professional Edition, yang berisi tambahan sarana yang dibutuhkan oleh para programmer profesional, misalnya tambahan kontrol program, pemrograman internet, compiler untuk membuat file help dan sarana pengembangan database yang lebih baik. 3. Enterprise edition, yang memungkinkan profesional programmer untuk membuat aplikasi client-server yang dapat terhubung ke internet.
2.3.2
Struktur Bahasa Pemrograman Visual Basic 6.0
Visual Basic merupakan bahasa pemrograman yang terstruktur. Struktur aplikasi Visual Basic terdiri dari:
1. Form, yaitu jendela desain dari sebuah program aplikasi dan juga merupakan tempat untuk merancang user interface. Programmer dapat mendesain sebuah Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
program aplikasi dengan menempatkan kontrol-kontrol yang ada di bagian toolbox pada area form. 2. Toolbox, merupakan kotak perangkat yang berisi kumpulan tombol objek atau kontrol untuk mengatur desain dari aplikasi yang akan dibuat. 3. Properties, yaitu nilai atau karakter yang dimiliki oleh sabuah objek Visual Basic. Contoh : name, size,colour, position, text dan lain sebagainya. Property dapat diubah saat mendesain program atau run time ketika program dijalankan. 4. Method, yaitu suatu kumpulan perintah yang memiliki kegunaan yang hampir sama dengan suatu fungsi atau prosedur, tetapi perintah tersebut sudah disediakan dalam suatu objek. Suatu method dapat dipanggil dengan cara menyebutkan nama objek dan diikuti dengan tanda titik dan nama methodnya. 5. Event, yaitu suatu kejadian yang akan diterima oleh suatu objek. Event yang diterima oleh objek berfungsi untuk menjalankan kode program yang ada di dalam objek tersebut. 6. Code Window, merupakan suatu jendela yang digunakan untuk menuliskan kode program dari kontrol ytang telah dipasang pada jendela form dengan cara memilih terlebih dahulu kontrol tersebut pada kotak objek. 7. Module, berisi kode program atau prosedur yang dapat digunakan oleh program aplikasi dan juga merupakan kumpulan dari prosedur umum, deklarasi variabel dan defenisi konstanta yang digunakan di dalam aplikasi.
Tampilan layar Visual Basic adalah sebagai berikut:
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 2.1 Layar Interface Visual Basic 6. 0 Secara rinci, tampilan layar Visual Basic terdiri dari : 1. Menu bar, merupakan batang menu yang terletak di bawah title bar yang berfungsi
untuk
menampilkan
pilihan
menu
atau
perintah
untuk
mengoperasikan program Visual Basic. Menu bar digunakan untuk memilih tugas-tugas tertentu seperti menyimpan project, membuka project dan lain sebagainya.
Gambar 2.2 Tampilan Menu Bar
2. Toolbar, merupakan sbuah batang yang berisi kumpulan tombol yang terletak di bagian bawah menu bar yang dapat digunakan untuk menjalankan suatu
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
perintah dan mengendalikan tampilan seperti mengatur pemunculan jendela properties, project dan form layout.
Gambar 2.3 Tampilan Toolbar
3. Form, merupakan tempat untuk merancang user interface dari aplikasi. Form dapat disebut juga sebagai objek, yang befungsi sebagai latar belakang dari suatu program aplikasi. Pada waktu membuat program aplikasi yang baru, akan secara otomatis tersedia form yang baru dengan nama Form 1.
Gambar 2.4 Tampilan Form
4. Properties Window, berisi daftar properti untuk objek (form atau kontrol) yang dipilih dan berfungsi untuk mengatur karakteristiknya, seperti warna, ukuran dan lain-lain. Properties window dapat dibuka dengan cara mengklik tombol
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
properties window yang berada pada toolbar atau dengan cara mengklik kanan pada objek.
Gambar 2.5 Tampilan Properties Window
5. Form Layout Window, merupakan sebuah jendela yang digunakan untuk mengatur posisi dari form pada form saat program dijalankan. Untuk memindahkan posisi form pada layar monitor dapat dilakukan melalui proses drag and drop.
Gambar 2.6 Tampilan Form Layout Window
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
6. Toolbox, yaitu sebuah jendela yang mengandung semua objek atau kontrol yang akan digunakan untuk membuat suatu program aplikasi. Toolbox dapat ditampilkan dengan menggunakan prosedur: 1. Klik tombol Toolbox di bagian Toolbar Standard. 2. Pilih perintah View-Toolbox.
Gambar 2.7 Tampilan Toolbox
7. Project Window, yaitu jendela yang menampilkan semua file di dalam aplikasi Visual Basic yang sedang aktif. Project merupakan suatu kumpulan module atau merupakan program aplikasi itu sendiri.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 2.8 Tampilan Project Window
8. Code Window, yaitu jendela yang berisi kode program yang merupakan instruksi (perintah) untuk aplikasi Visual Basic.
Gambar 2.9 Tampilan Code Window
9. Immediate Window, merupakan sebuah jendela yang digunakan untuk mencoba beberapa perintah dengan mengetikkan baris program dan dapat secara langsung dilihat hasilnya. Hal tersebut dilakukan untuk membantu proses pengujian suatu perintah sebelum dipasang di dalam program.
Gambar 2.10 Tampilan Immediate Window
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
2.4. Oracle 10 XE
Oracle adalah sebuah DBMS untuk level menengah ke atas. Kelebihan Oracle dibanding dengan Access / SQL Server adalah :
1. Multi platform artinya bisa dijalankan di berbagai OS, misalnya Unix, Linux, Sun, OS/2, Apple, Windows. 2. Memiliki homepage / layanan berbasis web sehingga data dapat disebar / data dapat diakses secara remote / jarak jauh. 3. Memiliki software khusus kllien mulia versi 10 ke atas sehingga dengan menggunakan command line / SQL Plus di Oracle, sehingga kita bisa mengerjakan semua operasi SQL dari jarak jauh seolah-olah kita berada di localhost. 4. Hasil Query di layanan web service atau Application Express dapat diekspor ke dalam Excel.
Salah satu kelebihan utama Oracle adalah kemampuannya yang sangat baik untuk mendistribusikan database. Mendistribusikan database berarti datanya dapat dipakai oleh banyak user / multi user. Itu berarti user dapat tersebar di berbagai tempat bahkan di berbagai negara sehingga databasenya memiliki kemampuan diakses secara Remote. Atau lebih dikenal dengan sebutan Remote Query. Untuk bisa merealisasikan database tersebar / multi user, tentu saja server dan klien dapat berkomunikasi melalui jaringan komputer / network. Karena itu penulis ingin menambahkan sedikit penjelasan tentang network. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Secara umum topologi jaringan komputer terbagi 4 : 1.Bus 2.Star 3.Ring 4.Pear to Pear 5.FDDI
Untuk tugas akhir ini, penulis menggunakan topologi Pear to Pear dapat digambarkan sebagai berikut. Client Oracle IP : 192.168.01
Stop Database
Server Database Oracle IP : 192.168.02 Start Database
Gambar 2.11 Topologi Pear to Pear
Terlihat dari dua komputer tersebut database Oracle berlokasi di alamat / IP : 192.168.02 , itu berarti tabel-tabel yang menjadi tugas akhir saya ini: 1.Tabel Master 2.Tabel Kartu_Stok 3.Tabel Kode_Master 4.Tabel Pembelian
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Semua tabel tersebut berada dalam sebuah database default yang bernama XE. singkatan dari Ekspress Edition. Karena penulis menggunakan Oracle versi 10.0.2 XE. Tabel-tabel tersebut hanya bisa diakses dengan menggunakan user Id milik penulis yaitu : User Id
: Linda
Password
:a
Gambar skemanya sebagai berikut. SYSTEM
LINDA
Tabel Kode
Tabel Kartu Stok
Tabel Kode Master
Tabel Pembelian
Gambar 2.12 Skema Rancangan Database Oracle
Agar client bisa mengakses database server, penulis menggunakan media kabel bertipe Belden menggunakan port RG-45. Sedangkan client untuk mengakses database server digunakan dengan 2 cara yaitu : 1. Berbasis web service yaitu dengan menggunakan browser internet seperti Internet Explorer atau Mozilla Firefox. Caranya, di bagian address, ketikkanlah http:// [IP server] : port default / service name misalnya : http : // 192.168.02 : 8080 / XE 2. Menggunakan command line berbasis DOS. Untuk melakukan ini harus Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
terlebih dahulu diinstal di komputer client yaitu OracleXEClient. File ini cukup kecil hanya 29.5 MB.
Langkah-langkah menjalankan komputer client dengan menggunakan web service / application express yaitu: 1. Start database di database server 2. Di database server tersebut setting application express dengan langkah-langkah sebagai berikut: a. Jalankan application express (bukalah database home page). b. Loginlah dengan nama system(password:123).
Gambar 2.13 Tampilan home page Oracle
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
c.Kliklah administration
Gambar 2.14 Tampilan Halaman administration d. Kliklah Manage HTTP Access. e. Klik Access dan pilihlah Available from local server and remote clients.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 2.15 Tampilan Halaman Access f. Klik apply changes.
Gambar 2.16 Tampilan Halaman Access Updated 3. Maka ketikkanlah di komputer client di bagian addressnya yaitu : http://192.168.1.102 : 1521/XE.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BAB 3
PERANCANGAN SISTEM
3.1. Perancangan Sistem
Perancangan sistem merupakan salah satu unsur atau tahapan dari keseluruhan pembangunan sistem komputerisasi. Perancangan sistem untuk pengembangan sistem informasi biasanya memerlukan jangka waktu yang lebih lama daripada pemecahan masalah pada umumnya. Salah satu unsur pokok yang harus dipertimbangkan dalam pembangunan sistem komputerisasi yaitu masalah perangkat lunak, karena perangkat lunak yang digunakan haruslah sesuai dengan masalah yang akan diselesaikan, disamping masalah perangkat itu sendiri.
Inti dari perancangan sistem adalah berusaha memandang seluruh pengolahan secara terpadu serta untuk menilai pilihan-pilihan dalam melaksanakan studi kelayakan.
Adapun tujuan dari perancangan sistem, yaitu: a. Menentukan tujuan dari sistem yang dibuat
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
b. Menentukan gambaran dari rancang bangun yang lengkap kepada pemakai komputer tersebut.
3.2. Perancangan Database Dalam pembuatan suatu sistem yang baik diperlukan perancangan database yang baik. Database sebagai tempat penyimpanan data merupakan salah satu aspek penting yang akan menentukan mutu kerja data program yang dibuat.
Perancangan sebuah database berdasarkan bagaimana cara merancang dari sistematika proses dari sistem tersebut. Pada umumnya database telah disiapkan untuk menghasilkan sebuah laporan informasi tertentu yang dikehendaki.
Pada Sistem Informasi Persediaan Obat ini menggunakan software database Oracle 10 XE. Secara garis besar Sistem Informasi Persediaan Obat pada Apotik Dunia menggunakan struktur database sebagai berikut: a. Struktur Tabel Pembelian
Tabel 3.1. Table Pembelian Nama Field
Tipe Data
Ukuran
Index
Keterangan
Tanggal
Date
8
-
Tgl Masuk Pembelian
Nama_Per
Varchar
30
-
Nama Perusahaan
Jenis
Varchar
30
-
Jenis Obat
Nama
Varchar
25
-
Nama Obat
No_Batch
Varchar
35
-
No Produk
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Harga
Number
10
-
Harga Pembelian
Banyak
Number
8
-
Banyak Obat
Diskon
Number
5
-
Jumlah Barang yang Dibeli
Total
Number
20
-
Total Pembelian
b. Struktur Tabel Master
Tabel 3.2. Tabel Master Nama Field
Tipe Data
Ukuran
Index
Keterangan
Kode
Varchar
10
-
Kode
untuk
Obat Jenis
Varchar
30
-
Jenis Obat
Banyak
Number
8
-
Banyak Obat
c. Struktur Tabel Kode
Tabel 3.3. Tabel Kode Nama Field
Tipe Data
Ukuran
Index
Keterangan
No
Number
8
-
No Kode
Kode
Varchar
10
-
Kode Untuk Obat
Jenis
Varchar
30
-
Jenis Obat
Tanggal
Date
8
-
Tanggal Masuk
Nama
Varchar
25
-
Nama Obat
No_Batch
Varchar
35
-
No Produk
Exp_Date
Date
8
-
Tanggal Kaduwarsa
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Harga_Pokok
Number
10
-
Harga Penjualan
Harga
Number
10
-
Harga_Pembelian
Rata-Rata
Number
8
-
Rata-Rata Harga
Banyak
Number
8
-
Banyak Obat
Nama_Per
Varchar
30
-
Nama_Perusahaan
Jumlah
Number
8
-
Total Banyak Obat
Total
Number
20
-
Total Pembelian
Laba
Number
8
-
Keuntungan Penjualan
d. Tabel Kartu Stok
Tabel 3.4. Tabel Kartu_Stok Nama Field
Tipe Data
Ukuran
Index
Keterangan
Nama
Varchar
25
-
Nama Obat
Tanggal
Date
8
-
Tgl Masuk Pembelian
No_Batch
Varchar
35
-
No Produk
Exp_Date
Date
8
-
Tanggal Kaduwarsa
Masuk
Number
10
-
Jumlah Obat yang masuk
Keluar
Number
10
-
Jumlah Obat yang keluar
Sisa
Number
10
-
Sisa Obat
e.Hasil Perancangan database 1. Pembelian
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 3.1 Tampilan tabel pembelian
2. Kode
Gambar 3.2 Tampilan tabel kode
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
3. Master
Gambar 3.3 Tampilan tabel master
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Hubungan antar Tabel
Master
Kode
Kode Jenis Banyak
No Kode_Brg Jenis Tanggal Nama No_Batch Exp_Date Harga_Pokok Harga Rata-rata Banyak Nama_Per Jumlah Total Laba
Pembelian Kode_Fak Tanggal Nama_Per Jenis Nama No_batch Harga Banyak Diskon Total
Kartu_Stok
Penjualan Nama Banyak Harga Diskon Jumlah Rata-rata Total
Gambar 3.4 Relasi antar Tabel
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Kode_Fak Nama Tanggal No_Batch Exp_Date Masuk Keluar Sisa
3.3. Diagram Konteks
Diagram konteks merupakan alat bantu dalam perancangan global bagi program aplikasi yang dibuat. Tujuannya adalah untuk mencerminkan keadaan sistem yang akan dibangun secara umum. Adapun diagram konteks untuk Sistem Informasi Persediaan Obat pada Apotik Dunia adalah:
Laporan Pembelian
Data Obat Sistem Persediaan Obat
PEMASOK
Stok Obat
Data Obat
Data Obat
Laporan Stok Obat
Laporan Penjualan PELANGGAN
Gambar 3.5 Diagram Konteks
Berikut penjelasan mengenai diagram konteks di atas : Sistem menyerahkan data obat kepada pemasok berupa data obat yang akan dipesan, setelah itu pemasok akan menyerahkan laporan obat yang dibeli kepada sistem dan menghasilkan laporan pembelian. Sistem akan menyerahkan data obat yang ada (menyediakan obat yang akan dijual) dan jika pelanggan berminat maka sistem akan menyerahkan data obat yang diinginkan pelanggan dan akan menghasilkan laporan penjualan. Sistem akan memberikan keseluruhan data obat (obat yang telah dijual dan dibeli) untuk diproses dalam bagian stok obat. Bagian stok obat akan memeriksa Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
apakah obat tersebut masih ada atau sudah habis, setelah diperiksa maka bagian stok barang akan membuat laporan stok barang untuk dikirim ke sistem.
3.4. Diagram Alir Data (Data Flow Diagram)
Diagram Arus Data digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari pemasukan data hingga keluaran. Keuntungan penggunaan DFD adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau dikembangkan. Berikut
Data Flow
Diagram dari Sistem Persediaan Obat pada Apotik Dunia.
DFD Level 0
DFD Level 0 merupakan awal dari aliran data. Pada DFD Level 0 menggambarkan aliran data secara umum. Pada DFD Level 0 ini menggambarkan bagian stok barang memberikan laporan stok barang kepada sistem dari data obat yang telah diproses. Bagian Penjualan akan memberikan laporan penjualan mengenai obat yang telah terjual kepada sistem setelah sistem memberikan data obat yang telah terjual kepada bagian penjualan. Sistem akan memberikan data barang yang telah dibeli dari pemasok kepada bagian pembelian untuk diproses lebih lanjut sehingga bagian pembelian akan menghasilkan laporan pembelian untuk dikirimkan ke sistem. Laporan yang telah diproses dalam sistem yang berupa laporan pembelian, laporan penjualan dan laporan stok obat akan dikirm ke pimpinan. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
PENJUALAN
Laporan Penjualan
Data Obat yang terjual
Laporan Stok Obat Sistem Persediaan Obat
Stok Obat
Laporan
PIMPINAN
Data Obat
Laporan Pembelian
Data Obat yang dibeli
PEMBELIAN
Gambar 3.6 DFD Level 0
DFD Level 1 Bagian Stok barang memberikan laporan stok obat yang kemudian diproses dalam pembuatan laporan data obat (proses 1). Pada proses ini akan menghasilkan data obat dan data pemasok. Jika stok obat habis, maka bagian ini akan memberikan laporan tentang stok barang yang habis yang akan diproses dalam transaksi pembelian (proses 2). Pada proses 2 akan menghasilkan data pembelian untuk melaksanakan pembelian barang yang akan dilakukan oleh bagian pembelian. Data pembelian juga diperlukan untuk membuat proses laporan pembelian (proses 5). Setelah itu akan menghasilkan laporan jumlah pembelian yang akan diberikan kepada pimpinan. Bagian penjualan melakukan transaksi penjualan (proses 3) yang akan menghasilkan data pelanggan dan Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
data penjualan. Setelah melakukan transaksi, data penjualan akan diproses untuk pembuatan laporan penjualan. Setelah laporan jumlah
penjualan selesai akan
diberikan kepada pimpinan sebagaimana yang ditunjukkan pada gambar 3.7.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Bag.Stok
Bag.Penjualan
Laporan stok obat akhir
Data Pelanggan F4 Pelanggan
Data Obat
1.Pembuatan laporan data obat
3. Transaksi Penjualan
Data penjualan F5 Penjualan
F1 Obat Data pemasok F2 Pemasok
Bag.Pem belian
Laporan Stok
Laporan obat
obat yang habis
yang terjual
2. Transaksi Pembelian
4. Laporan Penjualan
Data Pembelian F3 Pembelian
Laporan Jumlah Penjualan 5. Laporan Pembelian
Laporan Jumlah Pembelian
Laporan Pimpinan
Gambar 3.7 DFD Level 1 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
3.5. Algoritma
Algoritma adalah langkah-langkah penyelesaian dari suatu permasalahan dengan menggunakan kalimat logika yang diterima dalam membuat program. Algoritma Sistem Informasi Persediaan Obat pada Apotik Dunia adalah : 1. Algoritma Untuk Menampilkan Menu Utama Langkah 1
: Tampilkan Menu Utama, yang terdiri atas : a. Entry b. Penjualan c. Pembelian d. About e. Help f. Keluar
Langkah 2
2.
: Selesai.
Algortima Untuk Menu Entry
Langkah 1
: Tampilkan data Entry.
Langkah 2
: Jika dipilih Tambah maka pengisian data bisa dikerjakan.
Langkah 3
: Jika diklik Simpan maka data yang diinput akan masuk ke dalam tabel.
Langkah 4
: Jika diklik Menu, maka akan kembali ke menu utama.
Langkah 5
: Jika diklik Batal, maka akan membatalkan semua penginputan data yang akan dilakukan.
Langkah 6
: Jika diklik Refresh
maka akan merefresh data entry secara
keseluruhan. Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Langkah 7
: Jika diklik tombol Nama, maka akan mendaftarkan seluruh nama obat yang ada pada sistem.
Langkah 8
: Jika diklik tombol Tanggal Masuk, maka akan mendaftarkan seluruh tanggal masuk obat yang ada pada sistem.
Langkah 9
: Jika diklik tombol Jenis Barang, maka akan mendaftarkan seluruh jenis obat yang ada pada sistem.
Langkah 10
: Jika diklik tombol Expired Date, maka akan mendaftarkan seluruh expire date obat yang ada pada sistem.
Langkah 11
: Jika diklik tombol No_Batch, maka akan mendaftarkan seluruh no batch obat yang ada pada sistem.
Langkah 12 : Jika dipilih Cari maka akan menampilkan data dari obat yang dicari. Langkah 13 : Selesai.
3.
Algoritma Untuk Menu Penjualan
Langkah 1
: Tampilkan data Penjualan.
Langkah 2
: Jika dipilih Tambah maka pengisian data bisa dikerjakan.
Langkah 3
: Jika dipilih Cari maka akan menampilkan data dari obat yang dicari.
Langkah 4
:Jika diklik Refresh maka akan merefresh data entry secara keseluruhan.
Langkah 5
: Jika diklik Batal, maka akan membatalkan semua penginputan data yang akan dilakukan.
Langkah 6
: Jika diklik Menu, maka akan kembali ke menu utama.
Langkah 7
: Jika diklik Tambah Item, maka preose penginputan data obat akan dikerjakan.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Langkah 8
4.
: Selesai.
Algoritma Untuk Menu Pembelian
Langkah 1
: Tampilkan data Pembelian.
Langkah 2
: Jika dipilih Tambah maka pengisian data bisa dikerjakan.
Langkah 3
: Jika diklik Simpan maka data yang diinput akan masuk ke dalam tabel.
Langkah 4
: Jika diklik Menu, maka akan kembali ke menu utama.
Langkah 5
: Jika diklik Batal, maka akan membatalkan semua penginputan data yang akan dilakukan.
Langkah 6
: Jika diklik Refresh
maka akan merefresh data entry secara
keseluruhan. Langkah 7
5.
: Selesai.
Algoritma Untuk Menu About
Langkah 1
: Tampilkan data About.
Langkah 2
: Jika dipilih Tambah maka pengisian data bisa dikerjakan.
Langkah 3
: Jika diklik Menu, maka akan kembali ke tampilan Menu Utama.
Langkah 4
: Selesai.
6. Algoritma Untuk Menu Help Langkah 1
: Tampilkan data Help.
Langkah 2
: Jika diklik Scroll bar atas maka text akan diulang.
Langkah 3
: Jika diklik Menu, maka akan kembali ke tampilan Menu Utama.
Langkah 4
: Selesai.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BAB 4
IMPLEMENTASI SISTEM
4.1 Defenisi Implementasi Sistem
Implementasi Sistem adalah langkah-langkah atau prosedur sistem yang dilakukan untuk menyelesaikan perancangan sistem yang telah disetujui seperti menguji, menginstal dan memulai menggunakan sistem yang baru atau sistem yang diperbaiki.
Pada tahap implementasi, terlebih dahulu dilakukan pengujian sistem. Setelah terlihat ada kesalahan yang ditemukan di dalam pengujian maka sistem tersebut akan diperbaiki dan pengujian sistem dilanjutkan ke tahap operasi yang nyata.
4.2 Tujuan Implementasi Sistem
Tujuan Implementasi Sistem adalah : 1. Menyelesaikan desain sistem yang ada dalam dokumen desain sistem . 2. Menguji dan mendokumentasikan program dan prosedur sistem. 3. Memastikan bahwa user dapat mengoperasikan sistem baru dengan mempersiapkan manual pemakaian dan melatih user.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
4. Memperhitungkan bahwa sistem memenuhi permintaan user yaitu dengan menguji sistem secara menyeluruh. 5. Memastikan bahwa konversi ke sistem baru berjalan dengan benar yaitu dengan membuat rencana, mengontrol dan melakukan instalasi sistem baru dengan benar.
Langkah-langkah dalam mengimplementasikan sistem adalah sebagai berikut : 1. Pemilihan dan pelatihan user. 2. Menyelesaikan desain sistem. 3. Pemilihan tempat dan instalasi software dan hardware. 4. Menulis, menguji dan mengontrol dan mendokumentasikan program. 5. Menyelesaikan manual pemakai. 6. Konversi sistem.
4.3
Komponen Utama Implementasi Sistem
Untuk mewujudkan sistem yang telah dirancang memerlukan beberapa sarana pendukung utama yaitu komponen-komponen yang berperan penting dalam menunjang sistem yang telah dirancang terhadap pengolahan data.
1. Hardware Hardware (Perangkat Keras) adalah komponen atau mesin yang secara fisik bekerja sama dalam melaksanakan pengolahan data. Untuk memperoleh hasil yang baik, maka perlu diperhatikan beberapa hal yaitu : Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
1. Satu unit personal komputer. 2. Memori minimal 256 MB. 3. Harddisk sesuai dengan kebutuhan. 4. Printer, mouse, keyboard.
2. Software
Software (Perangkat Lunak) adalah susunan instruksi yang dibuat secara sistem dalam bentuk program agar dapat dilaksanakan oleh komputer. Untuk sistem ini diperlukan perangkat lunak yaitu: 1. Sistem Operasi Windows 98 atau versi yang lebih tinggi. 2. Aplikasi Oracle 10 XE. 3. Microsoft Visual Basic 6.0.
3. Brainware
Brainware merupakan faktor sumber daya manusia yang sangat diperlukan dalam mengolah sebuah program maupun menangani fasilitas komputer. Faktor brainware yang dibutuhkan yaitu : 1. Sistem analis yaitu orang yang bergerak dalam bidang pengembangan sistem yang akan membentuk dan membangun fasilitas desain sistem. 2. Programmer yaitu orang yang akan menyusun instruksi bagi komputer dan merancang antar muka pemakai (interface) pada program agar dapat digunakan oleh pemakai (user). Programmer terdiri dari : Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
a. Pemrogram aplikasi yaitu programmer yang membuat aplikasi perangkat lunak untuk memenuhi kebutuhan para pemakai. b. Pemrogram pemeliharaan yaitu programmer yang bertangg ng jawab dalam memelihara, memodifikasi, memperbaiki dan menjaga agar program dapat dipakai selama mungkin atau dalam kurun waktu yang lama. c. Pemrogram sistem yaitu programmer yang membuat perangkat lunak sistem untuk mengontrol operasi perangkat keras komputer dan dapat menjalankan program aplikasi. 3. Personalia Operasi Komputer terdiri dari : a. Operator komputer yaitu orang yang menangani pengolahan data, mulai dari mempersiapkan data, tampilan sampai dengan pengentrian data ke dalam komputer. b. Manajer operasi komputer yaitu orang yang bertanggung jawab atas seluruh aktifitas pengoperasian komputer. c. Personalia pemasukan data yaitu orang yang bertugas memasukkan data ke sistem komputer dan memastikan data yang masuk terjamin kebenarannya, akurat dan kelengkapannya. d. Pustakawan sistem yaitu orang yang bertugas mengelola penyimpanan data pada peralatan perekam.
4.4 Pengujian Sistem
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Tahap pengujian bertujuan untuk memastikan sistem yang telah dibuat sesuai dengan keinginan pemakai dan dapat digunakan oleh pemakai dan dioperasikan oleh operator sistem.
Beberapa tingkat pengujian sebelum mengimplementasikan sistem yaitu : a. Pengujian Bagian Pengujian tingkat ini dilakukan pada setiap modul program untuk mengetahui bahwa setiap modul program tersebut telah memenuhi spesifikasinya. b. Pengujian Integrasi Pada tingkat ini akan diuji setiap kelompok logika modul program untuk mengetahui bahwa setiap kelompok tersebut sudah memenuhi spesifikasi logika. c. Pengujian Sistem Menguji sistem yang telah dibuat untuk memperhitungkan bahwa sistem baru tersebut telah memenuhi spesifikasinya. d. Pengujian Penerimaan Pengujian ini bertujuan untuk memastikan bahwa semua komponen dalam sistem baru dalam keadaan siap pakai. e. Pengujian Operasi dan Pengujian Lingkungan Sistem Sistem yang telah dibuat akan dicoba ke lingkungan yang sesungguhnya untuk memastikan bahwa semua peralatan sistem baru dapat berjalan dengan baik.
4.5 Pemeliharaan Sistem
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Sebuah kegiatan pengolahan data akan terus berlangsung dengan melibatkan sejumlah fungsi yang terlibat atau tidak terlibat, dengan pemanfaatan sistem tersebut secara maksimal sangat diperlukan. Kegiatan pengolahan data yang akan melibatkan penyelenggaraan data yang berkualitas baik dalam pengolahan atau menampilkan laporan tersebut sebagai sajian informasi.
Dengan demikian diperlukan adanya pemeliharaan sistem agar sistem tersebut dapat berjalan dengan baik dan dapat digunakan semaksimal mungkin.
Adapun tujuan dari pemeliharaan sistem adalah sebagai berikut : 1. Mencegah modifikasi sistem yang akan menyebabkan masalah-masalah yang lain. 2. Membuat modifikasi sistem yang sesuai dengan kebutuhan organisasi. 3. Menyempurnakan proses penyusunan sistem dan proses pemeliharaan sistem dengan menganalisa informasi tentang modifikasi sistem. 4. Mengganti pemeliharaan sistem dengan survei sistem jika modifikasi yang diminta relatif besar. 5. Meminimalkan gangguan kontrol dari gangguan operasi yang disebabkan oleh pemeliharaan sistem.
4.6 Tampilan
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Tampilan suatu program aplikasi sangat penting untuk pengguna aplikasi tersebut. bila tampilan suatu aplikasi menarik akan menambah nilai dari program tersebut. Berikut tampilan output dari Sistem Informasi Persediaan Obat pada Apotik Dunia : a.Tampilan Form Utama
Gambar 4.1 Tampilan Form Utama
b.Tampilan Form Entry
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 4.2 Tampilan Form Entry
c.Tampilan Form Penjualan
Gambar 4.3 Tampilan Form Penjualan d.Tampilan Form Pembelian
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Gambar 4.4 Tampilan Form Pembelian
g.Tampilan Help
Gambar 4.5 Tampilan Form Help
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan
Melalui pembahasan yang telah diuraikan pada bab sebelumnya, maka dapat ditarik beberapa kesimpulan yaitu: 1. Informasi
memegang
peranan
penting
dalam
perkembangan
sistem
komputerisasi. 2. Dalam kegiatan operasional, perusahaan maupun organisasi membutuhkan suatu sistem informasi
yang dapat mengatur sistem persediaan barang
sehingga proses produksi dan distribusi dapat berjalan dengan lancar. 3. Sistem Informasi sangat diperlukan dalam pengolahan data ke dalam bentuk yang lebih berarti dan berguna bagi pemakainya untuk pengambilan keputusan pada masa kini maupun yang akan datang.
5.2 Saran
Saran yang dapat penulis kemukakan adalah sebagai berikut: 1.
Adanya pelatihan khusus kepada karyawan untuk meningkatkan skill (keahlian/keterampilan) dalam penggunaan aplikasi program komputer agar pengolahan data menjadi lebih cepat dan akurat.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
2.
Diharapkan dengan program ini dapat membantu pengolahan data persediaan obat.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
DAFTAR PUSTAKA
Hartano , Jogianto. 1999. Analisis & Disain. Yogyakarta: Penerbit Andi. Kurniadi, Andi. 2000. Pemrograman Microsoft Visual Basic 6. Yogyakarta:Penerbit Andi. Malik, Jaja Jamaludin. 2006. Animasi Form pada Visual Basic. Yogyakarta: Penerbit Andi. Imbar, Radiant Victor. 2006. Oracle&Asp. Bandung: Informatika Bandung. Ladjumudin,
A.B.
2005.
Analisis
dan
Desain
Pertama.Yogyakarta:Graha.
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Sistem
Informasi.Edisi
L A M P I R A N
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
LISTING PROGRAM
Form Utama : Private Sub AB_Click() ABOUT.Show vbModal End Sub Private Sub BELI_Click() PEMBELIAN.Show vbModal End Sub Private Sub EN_Click() Form1.Show vbModal End Sub Private Sub Form_Activate() StatusBar1.Panels(1).Text = WeekdayName(Weekday(Date)) & ", " & Format(Date, "DD-MMM-YYYY") xnama = "relasi.rtf" 'trelasi.LoadFile (App.Path & "\" & xnama) 'PANGGIL FILE *.RTF 'DESIGN RELASI TABEL MENGGUNAKAN WORD 'SIMPAN DENGAN *.RTF ' trelasi.Enabled = False End Sub Private Sub Form_Unload(Cancel As Integer) Cancel = 1 End Sub Private Sub HE_Click() HELP.Show vbModal End Sub Private Sub KAR_Click() KARTU_STOK.Show vbModal End Sub Private Sub KEL_Click() koneksi.Close End End Sub Private Sub PEN_Click() PENJUALAN.Show vbModal Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
End Sub Private Sub Timer1_Timer() Timer1.Enabled = True StatusBar1.Panels(10).Text = Format(Time, "hh:mm:ss") End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "ENTRY": Form1.Show vbModal 'MENGUNCI FORM DIBAWAHNYA rtabel1.Close 'rtabel2.Close Case "PENJUALAN": PENJUALAN.Show vbModal rtabel1.Close Case "PEMBELIAN": PEMBELIAN.Show vbModal 'rtabel2.Close Case "ABOUT": ABOUT.Show vbModal Case "HELP": HELP.Show vbModal Case "KELUAR": End End Select End Sub Form Penjualan : Private Sub batal_Click() tkode = "" tnama = "" tbanyak = "" tharga = "" xcari = "" xcari.SetFocus batal.Enabled = False tambah.Enabled = True End Sub Private Sub cash_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then kembali = Val(cash) - Val(TOTAL) tambah.Enabled = True tambah.SetFocus batal.Enabled = False End If End Sub Private Sub Form_Activate() DataGrid1.Columns(0).Visible = False SQL1 = "SELECT * FROM kode order by no asc" rtabel1.Open SQL1, koneksi Set DataGrid1.DataSource = rtabel1 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
rtabel1.Requery rtabel1.Clone tgl = Format(Date, "dd-mmm-yyyy") batal.Enabled = False tambah.Enabled = True tambah.SetFocus End Sub Private Sub Form_Unload(Cancel As Integer) Cancel = 1 End Sub Private Sub KEMENU_Click() PENJUALAN.Hide End Sub
Private Sub tambah_Click() xcari = "" tnama = "" tbanyak = "" tharga = "" tdisc = "" tjumlah = "" tsub = "" TOTAL = "" cash = "" kembali = "" xcari.SetFocus tambah.Enabled = False batal.Enabled = True End Sub Private Sub tbanyak_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Dim rubah As New ADODB.Recordset SQL = "update kode set banyak = banyak - '" & tbanyak & "' where nama = '" & tnama & "' " rubah.Open SQL, koneksi rtabel1.Requery tdisc.SetFocus End If End Sub Private Sub tdisc_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tjumlah = Val(tbanyak) * Val(tharga) Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
tsub = Val(tjumlah) - (Val(tbanyak) * Val(tharga) * (Val(tdisc) / 100)) TOTAL = tsub + TOTAL cash.SetFocus End If End Sub Private Sub xcari_KeyPress(KeyAscii As Integer) Dim RCARI As New ADODB.Recordset 'On Error GoTo SALAHSQL If KeyAscii = 13 Then If xcari = "" Then MsgBox "SORRY TEXT BELUM ADA...ULANGI" KeyAscii = 0 Exit Sub End If Adodc1.RecordSource = xcari 'Adodc1.RecordSource = "SELECT HARGA FROM KODE IN 'C:nyak\STOKKASIR\UTAMA.MDB' ORDER BY HARGA ASC" 'SQL_BEBAS = Adodc1.RecordSource SQL = "SELECT * FROM KODE WHERE NAMA = '" & xcari & "'" RCARI.Open SQL, koneksi If RCARI.EOF Or RCARI.BOF Then MsgBox "SORRY DATA TIDAK ADA..." xcari = "" Exit Sub End If ' SQL1 = "SELECT * FROM kode" ' rtabel1.Open SQL1, koneksi 'Set DataGrid1.DataSource = rtabel1 'rtabel1.Requery ' rtabel1.Clone tnama = RCARI!nama tharga = RCARI!harga tbanyak.SetFocus 'xbanyak = Data1.Recordset!banyak 'xpokok = Data1.Recordset!harga_pokok End If End Sub Form Pembelian : Private Sub Form_Unload(Cancel As Integer) Cancel = 1 End Sub Private Sub KEMENU_Click() Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
PEMBELIAN.Hide End Sub Private Sub m_DateClick(ByVal DateClicked As Date) tgl = m.Value End Sub Private Sub simpan_Click() Dim RSIMPAN As New ADODB.Recordset SQL = "INSERT INTO KARTU_BELI_X VALUES ('" & Format(tgl, "yyyy,mm,dd") & "','" & tper & "','" & tjenis & "','" & tnama & "','" & tbatch & "', '" & tharga & "','" & tbanyak & "','" & tdisc & "','" & total & "') " '(NO,JENIS_BARANG,Tgl_masuk,nama,no_batch,exp_date,harga_pokok,harga,rata_ rata,banyak,asal,jumlah,total,laba) 'SQL = "INSERT INTO kode (NO,JENIS_BARANG,TGL_MASUK,NAMA) VALUES (2,'BOTOL','2008,09,25','SUSI')" RSIMPAN.Open SQL, koneksi Set DataGrid1.DataSource = RSIMPAN SQL1 = "SELECT * FROM kartu_beli_x" rtabel2.Open SQL1, koneksi Set DataGrid1.DataSource = rtabel2 End Sub Private Sub tdisc_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then total = Val(tharga) * Val(tbanyak) - (Val(tharga) * Val(tbanyak) * (Val(tdisc) / 100)) End If End Sub Private Sub tgl_GotFocus() m.Visible = True End Sub Form Help : Private Sub Form_Unload(Cancel As Integer) Cancel = 1 End Sub Private Sub KEMENU_Click() HELP.Hide End Sub Private Sub Timer1_Timer() Frame1.Top = Frame1.Top - 20 If Frame1.Top <= -1000 Then Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Frame1.Top = 200 End If End Sub Private Sub VScroll1_Change() Frame1.Top = Frame1.Top - 100 If Frame1.Top <= -1000 Then Frame1.Top = 200 End If End Sub Form Entry : Dim XKODE, JENIS, KATEGORI, XXKODE, kate As String Dim n, PPN, laba As Long Public XNO, i Private Sub batal_Click() tbatch = "" sqlcepat.Enabled = True sqlbebas.Enabled = True DataGrid1.Enabled = True DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = True DataGrid1.AllowDelete = True DataGrid1.AllowArrows = True MonthView1.Visible = False MonthView3.Visible = False simpan.Enabled = False batal.Enabled = False tambah.Enabled = True Command1.Enabled = True End Sub Private Sub Command1_Click() 'On Error GoTo SALAH If Adodc1.Recordset.RecordCount = 0 Then Exit Sub Else If Adodc1.Recordset.BOF = True Or Adodc1.Recordset.EOF = True Then Exit Sub Else 'Adodc1.Recordset.Update 'Adodc1.Refresh 'Adodc1.RecordSource = "SELECT * FROM KODE IN 'C:\STOK\UTAMA.MDB' " Adodc1.RecordSource = "select * from KODE ORDER BY NO" Adodc1.Refresh Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
BYK = Adodc1.Recordset.RecordCount DataGrid1.Font.Strikethrough = False MsgBox "DATA BISA DI EDIT...!" End If End If SALAH: Select Case Err Case 0: Exit Sub Case -2147217864: MsgBox "RECORD GAGAL UNTUK UPADATE....COBA LAGI" Exit Sub Case Else: MsgBox "ADA KESALAHAN " & Err.Number & ": " & Err.Description Exit Sub End Select End Sub Private Sub HARIAN_Click() CrystalReport1.WindowState = crptMaximized CrystalReport1.RetrieveDataFiles CrystalReport1.Action = 1 End Sub Private Sub Command2_Click() On Error GoTo SALAH Calculator.Show Exit Sub SALAH: MsgBox "ADA KESALAHAN " & Err.Number & ": " & Err.Description End Sub Private Sub DataGrid1_AfterColEdit(ByVal ColIndex As Integer) On Error GoTo SALAH If DataGrid1.Col = 0 Then 'kolom nomor Adodc1.Recordset.Update DataGrid1.Col = 2 Exit Sub End If If DataGrid1.Col = 1 Then 'kolom kode Adodc1.Recordset.Update DataGrid1.Col = 2 Exit Sub End If If DataGrid1.Col = 2 Then
'KATEGORI
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Adodc1.Recordset.Update DataGrid1.Col = 4 Exit Sub End If If DataGrid1.Col = 3 Then 'TANGGAL MASUK 'DataGrid1.Columns(3) = MonthView2.SelStart DataGrid1.Col = 4 Adodc1.Recordset.Update Exit Sub End If If DataGrid1.Col = 4 Then
'NAMA
'If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then ' MsgBox "MASUKKAN ANGKA SAJA" ' KeyAscii = 0 ' DataGrid1.Columns(4) = "" ' Exit Sub 'End If DataGrid1.Col = 5 Adodc1.Recordset.Update Exit Sub End If If DataGrid1.Col = 5 Then 'NO BATCH DataGrid1.Columns(6) = Format(Date, "dd-mmm-yyyy") DataGrid1.Col = 7 Adodc1.Recordset.Update Exit Sub End If If DataGrid1.Col = 6 Then 'EXPIRED DATE 'DataGrid1.Columns(6) = MonthView2.SelEnd DataGrid1.Col = 7 Adodc1.Recordset.Update 'DataGrid1.Col = 7 'Adodc1.Recordset.Update Exit Sub End If If DataGrid1.Col = 7 Then 'HARGA POKOK 'DataGrid1.Columns(5) = UCase(DataGrid1.Columns(5)) 'If Not (KeyAscii >= Asc("A") And KeyAscii <= Asc("Z") Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = vbKeySpace) Then ' MsgBox ("data wajib huruf besar ") ' KeyAscii = 0 ' DataGrid1.Columns(5) = "" Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
'Exit Sub 'End If DataGrid1.Columns(12) = DataGrid1.Columns(7) * DataGrid1.Columns(10) 'HARGA POKOK X BANYAK 'DataGrid1.Columns(8) = (DataGrid1.Columns(7) + 0.1 * DataGrid1.Columns(7)) DataGrid1.Columns(8) = DataGrid1.Columns(7) Adodc1.Recordset.Update DataGrid1.Col = 9 Exit Sub End If If DataGrid1.Col = 8 Then ' HARGA = HARGA JUAL DataGrid1.Col = 9 'Adodc1.Recordset.Update Exit Sub End If If DataGrid1.Col = 10 Then 'BANYAK DataGrid1.Col = 11 Exit Sub AKHIR = DataGrid1.Columns(9) SELISIH = AKHIR - AWAL stok.Recordset.Index = "kodex" 'jangan menggunakan adodc XKODE = Left(DataGrid1.Columns(1), 2) 'ambil jenis barang BUKAN KATEGORI stok.Recordset.Seek "=", XKODE 'gunakan control data If stok.Recordset.NoMatch Then MsgBox ("DATA TIDAK DITEMUKAN...!") DataGrid1.Columns(9) = AWAL DataGrid1.Col = 9 Exit Sub End If 'JIKA DITEMUKAN DataGrid1.Columns(11) = DataGrid1.Columns(7) * DataGrid1.Columns(9) Adodc1.Recordset.Update stok.Recordset.Edit If stok.Recordset!banyak <= 0 Then stok.Recordset!banyak = 0 Else stok.Recordset!banyak = stok.Recordset!banyak + SELISIH 'DataGrid1.Columns(11) = DataGrid1.Columns(7) * DataGrid1.Columns(9) End If stok.Recordset.Update Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
stok.Refresh 'End If '---------DataGrid1.Col = 10 Exit Sub End If If DataGrid1.Col = 10 Then 'ASAL Adodc1.Recordset.Update DataGrid1.Col = 11 Exit Sub End If 'If DataGrid1.Col = 9 Then 'JUMLAH ' DataGrid1.Col = 10 'Adodc1.Recordset.Update ' Exit Sub 'End If 'If DataGrid1.Col = 10 Then ' DataGrid1.Col = 11 ' Exit Sub
'TOTAL disembunyikan
'End If SALAH: Select Case Err Case 0: Exit Sub Case -2147217864: MsgBox "RECORD GAGAL UNTUK UPADATE....COBA LAGI" Adodc1.RecordSource = "SELECT * FROM KODE IN 'C:\STOK\UTAMA.MDB' " Adodc1.Refresh Exit Sub Case Else: MsgBox "ADA KESALAHAN AFTER COLEDIT" & Err.Number & ": " & Err.Description Exit Sub End Select End Sub Private Sub DataGrid1_AfterDelete() stok.Recordset.Index = "kodex" 'jangan menggunakan adodc stok.Recordset.Seek "=", XKODE 'gunakan control data If stok.Recordset.NoMatch Then Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
MsgBox ("Data tidak ditemukan!, kode tersebut tidak ada !") Exit Sub End If stok.Recordset.Edit If stok.Recordset!banyak <= 0 Then stok.Recordset!banyak = 0 'TIDAK BOLEH NEGATIP Else stok.Recordset!banyak = stok.Recordset!banyak - AWAL End If stok.Recordset.Update stok.Refresh MsgBox "TABEL DAN RECORD SUDAH DIHAPUS...!" End Sub Private Sub DataGrid1_BeforeColEdit(ByVal ColIndex As Integer, ByVal KeyAscii As Integer, Cancel As Integer) If DataGrid1.Col = 3 Then 'TANGGAL MASUK If Adodc1.Recordset.BOF = True Then Adodc1.BOFAction = adDoMoveFirst Else MonthView2.Visible = True End If Exit Sub End If If DataGrid1.Col = 6 Then 'EXPIRED DATE MonthView4.Visible = True Exit Sub End If If DataGrid1.Col = 9 Then 'BANYAK 'AWAL = DataGrid1.Columns(9) AWAL = Adodc1.Recordset!banyak XKODE = Left(DataGrid1.Columns(1), 2) Exit Sub End If
End Sub Private Sub DataGrid1_BeforeDelete(Cancel As Integer) On Error GoTo SALAH XKODE = Left(DataGrid1.Columns(1), 2) AWAL = Adodc1.Recordset!banyak Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Set DBTOKO = OpenDatabase(App.Path & "\utama.mdb") DBTOKO.TableDefs.Delete (Adodc1.Recordset!nama) Exit Sub SALAH: MsgBox "ADA KESALAHAN :" & Err.Number & " : " & Err.Description Exit Sub End Sub Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer) On Error GoTo SALAH Exit Sub SALAH: MsgBox "ADA KESALAHAN :" & Err.Number & ": " & Err.Description End Sub Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer) Dim RSORTIR As ADODB.Recordset Set RSORTIR = Adodc1.Recordset If RSORTIR.Sort <> DataGrid1.Columns(ColIndex).DataField & " ASC" Then RSORTIR.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC" Else RSORTIR.Sort = DataGrid1.Columns(ColIndex).DataField & " DESC" End If End Sub Private Sub DataGrid1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = VK_ESCAPE Then MonthView4.Visible = False MonthView2.Visible = False End If End Sub Private Sub Form_Activate() List1.Visible = True MonthView1.Visible = False MonthView3.Visible = False MonthView1.Value = Date MonthView3.Value = Date tambah.Enabled = True simpan.Enabled = False batal.Enabled = False tambah.SetFocus sqlcepat.Enabled = True BYK = Adodc1.Recordset.RecordCount DataGrid1.Font.Strikethrough = False klikmenu = 0 i=1 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
' If rtabel1.BOF = True Or rtabel1.EOF = True Then ' Exit Sub 'Else SQL1 = "SELECT * FROM kode" rtabel1.Open SQL1, koneksi Set DataGrid1.DataSource = rtabel1 rtabel1.Requery rtabel1.Clone ' SQL2 = "SELECT * FROM master " ' rtabel2.Open SQL2, koneksi ' Set DataGrid2.DataSource = rtabel2 'rtabel2.Requery 'rtabel2.Clone 'End If End Sub Public Sub FORM_ERROR(DATAERR As Integer, Response As Integer) MsgBox DATAERR End Sub Private Sub KELUAR_Click() Form2.Hide Form3.Show End Sub Private Sub Form_Unload(Cancel As Integer) If klikmenu = 1 Then Cancel = 0 Else Cancel = 1 End If End Sub Private Sub KEMENU_Click() Form1.Hide End Sub Private Sub List1_Click() On Error GoTo SALAH If optkate.Value = True Then 'perhatian....untuk '" & List1 & "'" Adodc1.RecordSource = "select * from kode WHERE JENIS_BARANG = '" & List1 & "'" Adodc1.Refresh Exit Sub End If Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
If opttgl.Value = True Then Adodc1.RecordSource = "select * from kode WHERE tgl_masuk = # " & List1 & " #" Adodc1.Refresh Exit Sub End If If optnama.Value = True Then Adodc1.RecordSource = "select * from kode WHERE nama = '" & List1 & "'" Adodc1.Refresh Exit Sub End If If Optexp.Value = True Then Adodc1.RecordSource = "select * from kode WHERE exp_date = # " & List1 & " #" Adodc1.Refresh Exit Sub End If If optbatch.Value = True Then 'perhatian....untuk '" & List1 & "'" Adodc1.RecordSource = "select * from kode WHERE no_batch = '" & List1 & "'" Adodc1.Refresh Exit Sub End If SALAH: MsgBox "ada kesalahan :" & Err.Number & " " & Err.Description Exit Sub End Sub Private Sub tasal_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tjumlah.SetFocus End If End Sub Private Sub tbanyak_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tjumlah = Val(tharga_pokok) * Val(tbanyak) tasal.SetFocus End If End Sub Private Sub texp_GotFocus() MonthView3.Visible = True texp.SetFocus Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
End Sub Private Sub tgl_GotFocus() MonthView1.Visible = True tgl.SetFocus End Sub Private Sub tgl_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tgl = MonthView1.SelStart tgl.SetFocus tnama.SetFocus MonthView1.Visible = False End If End Sub Private Sub MaskEdBox2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then MonthView3.Visible = True MaskEdBox2 = MonthView3.SelStart Text5.SetFocus End If End Sub Private Sub MonthView1_DateClick(ByVal DateClicked As Date) tgl = MonthView1.SelStart MonthView1.Visible = False tgl.SetFocus End Sub Private Sub MonthView2_DateClick(ByVal DateClicked As Date) DataGrid1.Columns(3) = MonthView2.SelStart Exit Sub End Sub Private Sub MonthView2_DateDblClick(ByVal DateDblClicked As Date) On Error Resume Next DataGrid1.Col = 4 Adodc1.Recordset.Update Exit Sub End Sub Private Sub MonthView2_DblClick() MonthView2.Visible = False 'DataGrid1.Col = 4 'Adodc1.Recordset.Update Exit Sub End Sub
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Private Sub MonthView3_DateClick(ByVal DateClicked As Date) texp = MonthView3.SelStart MonthView3.Visible = False texp.SetFocus End Sub Private Sub MonthView4_DateClick(ByVal DateClicked As Date) DataGrid1.Columns(6) = MonthView4.SelStart 'DataGrid1.Col = 7 Exit Sub End Sub Private Sub MonthView4_DateDblClick(ByVal DateDblClicked As Date) On Error Resume Next DataGrid1.Col = 7 Adodc1.Recordset.Update Exit Sub End Sub Private Sub MonthView4_DblClick() MonthView4.Visible = False Exit Sub End Sub Private Sub optbatch_Click() Dim i List1.Visible = True List1.Clear Adodc1.RecordSource = "select * from KODE ORDER BY no_batch" Adodc1.Refresh i=0 Do While Not Adodc1.Recordset.EOF List1.AddItem Adodc1.Recordset!No_batch Adodc1.Recordset.MoveNext i=i+1 Loop End Sub Private Sub Optexp_Click() Dim i List1.Visible = True List1.Clear Adodc1.RecordSource = "select * from KODE ORDER BY exp_date" Adodc1.Refresh i=0 Do While Not Adodc1.Recordset.EOF List1.AddItem Format(Adodc1.Recordset!exp_date, "dd-mmm-yyyy") Adodc1.Recordset.MoveNext i=i+1 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Loop End Sub Private Sub optkate_Click() Dim i List1.Visible = True List1.Clear Adodc1.RecordSource = "select * from KODE ORDER BY JENIS_BARANG" Adodc1.Refresh i=0 Do While Not Adodc1.Recordset.EOF List1.AddItem Adodc1.Recordset!JENIS_BARANG Adodc1.Recordset.MoveNext i=i+1 Loop End Sub Private Sub optnama_Click() List1.Visible = True List1.Clear Adodc1.RecordSource = "select * from KODE ORDER BY NAMA" Adodc1.Refresh Do While Not Adodc1.Recordset.EOF ' sama(0) = Adodc1.Recordset!nama ' If sama(0) <> sama(1) Then List1.AddItem Adodc1.Recordset!nama Adodc1.Recordset.MoveNext ' If Adodc1.Recordset.EOF Then ' Exit Sub ' Else ' sama(1) = Adodc1.Recordset!nama ' End If 'Else ' Adodc1.Recordset.MoveNext 'End If Loop End Sub Private Sub opttgl_Click() Dim i List1.Visible = True List1.Clear Adodc1.RecordSource = "select * from KODE ORDER BY TGL_MASUK" Adodc1.Refresh i=0 Do While Not Adodc1.Recordset.EOF List1.AddItem Format(Adodc1.Recordset!tgl_MASUK, "dd-mmm-yyyy") Adodc1.Recordset.MoveNext Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
i=i+1 Loop End Sub Private Sub simpan_Click() Dim RSIMPAN As New ADODB.Recordset XNO = Adodc1.Recordset.RecordCount + 1 SQL = "INSERT INTO KODE VALUES ('" & XNO & "','" & tjenis & "','" & Format(tgl, "yyyy,mm,dd") & "','" & tnama & "','" & tbatch & "', '" & Format(texp, "yyyy,mm,dd") & "','" & tharga_pokok & "','" & tharga_jual & "',1000,'" & tbanyak & "','" & tasal & "','" & tjumlah & "',10000) " '(NO,JENIS_BARANG,Tgl_masuk,nama,no_batch,exp_date,harga_pokok,harga,rata_ rata,banyak,asal,jumlah,total,laba) 'SQL = "INSERT INTO kode (NO,JENIS_BARANG,TGL_MASUK,NAMA) VALUES (2,'BOTOL','2008,09,25','SUSI')" RSIMPAN.Open SQL, koneksi Set DataGrid1.DataSource = RSIMPAN rtabel.Requery End Sub Private Sub SQL_BEBAS_Click() SQL_BEBAS = "" End Sub Private Sub SQL_BEBAS_DblClick() Select Case i Case 1: SQL_BEBAS = "SELECT * FROM KODE WHERE TANGGAL_MASUK = DATE()" i=i+1 Case 2: SQL_BEBAS = "SELECT HARGA FROM KODE WHERE HARGA >= 1000 and harga <= 10000" i=i+1 Case 3: SQL_BEBAS = "SELECT * FROM KODE WHERE NO_BATCH = '123' " i=i+1 Case 4: SQL_BEBAS = "SELECT exp_date FROM KODE WHERE HARGA <= 20000 order by exp_date" i=i+1 Case 5: SQL_BEBAS = "SELECT NAMA,NO_BATCH,EXP_DATE FROM KODE WHERE EXP_DATE < DATE()" i=i+1 Case 6: SQL_BEBAS = "SELECT NAMA,NO_BATCH,EXP_DATE FROM KODE WHERE EXP_DATE = DATE()+ 90" 'OBAT EXPIRED 3 BULAN LAGI i=i+1 Case 7: SQL_BEBAS = "SELECT NAMA,NO_BATCH,EXP_DATE FROM KODE WHERE EXP_DATE - DATE()=3" 'OBAT EXPIRED 3 HARI LAGI i=i+1 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Case 8: SQL_BEBAS = "SELECT * FROM KODE WHERE TANGGAL_MASUK = DATE()-14" 'OBAT MASUK 2 MINGGU LALU i=i+1 Case 9: SQL_BEBAS = "SELECT * FROM KODE WHERE TANGGAL_MASUK = DATE()-30" 'OBAT MASUK 1 BULAN LALU i=i+1 Case 10: SQL_BEBAS = "SELECT * FROM KODE WHERE TANGGAL_MASUK = DATE()-365" 'OBAT MASUK TAHUN LALU i=1 End Select End Sub Private Sub SQL_BEBAS_KeyPress(KeyAscii As Integer) 'Dim SQL1, SQL2, SQL3 As String Set DBTOKO = OpenDatabase(App.Path & "\utama.mdb") On Error GoTo SALAHSQL If KeyAscii = 13 Then If SQL_BEBAS = "" Then MsgBox "SORRY TEXT BELUM ADA...ULANGI" KeyAscii = 0 Exit Sub End If Adodc1.RecordSource = SQL_BEBAS 'Adodc1.RecordSource = "SELECT HARGA FROM KODE IN 'C:\STOKKASIR\UTAMA.MDB' ORDER BY HARGA ASC" If i = 6 Then DataGrid1.Font.Strikethrough = True Else DataGrid1.Font.Strikethrough = False End If Adodc1.Refresh 'SQL_BEBAS = Adodc1.RecordSource SQL.Text = "" End If
Adodc1.Refresh Exit Sub SALAHSQL: MsgBox "SALAH STATEMEN SQL :" & " " & Err.Number & ", " & Err.Description 'Exit Sub End Sub Private Sub sql_DblClick() SQL = "SELECT *" DataGrid1.Font.Strikethrough = False End Sub
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Private Sub sql_KeyPress(KeyAscii As Integer) Dim SQL1, SQL2, SQL3 As String Set DBTOKO = OpenDatabase("C:\STOK\UTAMA.MDB") On Error GoTo SALAHSQL SQL1 = UCase(SQL.Text) SQL2 = " FROM KODE IN" SQL3 = "'C:\STOK\UTAMA.MDB'" 'SQL3 = "'C:\ANUGERAH\UTAMA.MDB' ORDER BY HARGA DESC" If Not (KeyAscii >= Asc("A") And KeyAscii <= Asc("Z") Or KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = vbKeySpace Or KeyAscii = Asc(",") Or KeyAscii = Asc("*") Or KeyAscii = Asc("_")) Then MsgBox "ISI DENGAN TEKS" KeyAscii = 0 Exit Sub End If 'On Error GoTo A If KeyAscii = 13 Then If SQL = "" Then MsgBox "SORRY TEXT BELUM ADA...ULANGI" KeyAscii = 0 Exit Sub End If Adodc1.RecordSource = SQL1 + SQL2 + SQL3 'Adodc1.RecordSource = "SELECT HARGA FROM KODE IN 'C:\WIDURI BAN\UTAMA.MDB' ORDER BY HARGA DESC" Adodc1.Refresh 'SQL.Text = Adodc1.RecordSource SQL.Text = "" End If Adodc1.Refresh Exit Sub SALAHSQL: MsgBox "SALAH STATEMEN SQL :" & " " & Err.Number & ", " & Err.Description End Sub Private Sub tambah_Click() ' On Error GoTo SALAH tkod.SetFocus ' XNO = Adodc1.Recordset.RecordCount() 'hitung banyak record ' If XNO <> 0 Then 'Bila isi tabel tidak kosong ' Adodc1.Recordset.MoveFirst 'pindah ke baris 1 ' XNO = XNO + 1 'End If DataGrid1.Enabled = False Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False DataGrid1.AllowDelete = False DataGrid1.AllowArrows = True simpan.Enabled = False batal.Enabled = True tambah.Enabled = False sqlcepat.Enabled = False sqlbebas.Enabled = False Command1.Enabled = False Exit Sub SALAH: Select Case Err Case -2147217842: MsgBox "OPERASI TAMBAH DATA TIDAK DIIJINKAN...!" Exit Sub Case Else MsgBox "ADA KESALAHAN :" & " " & Err.Number & ", " & Err.Description Exit Sub End Select End Sub
Private Sub Text10_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Text10 = "" Then Text10 = "X" End If Text5.SetFocus End If End Sub Private Sub tbatch_KeyPress(KeyAscii As Integer) 'If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = vbKeySpace Or KeyAscii = Asc(".") Or KeyAscii = Asc("-")) Then ' MsgBox "MASUKKAN ANGKA SAJA" ' KeyAscii = 0 ' tbatch.SetFocus 'Exit Sub 'End If If KeyAscii = 13 Then If tbatch = "" Then MsgBox "MASIH KOSONG ULANGI...!" tbatch.SetFocus Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Exit Sub Else texp.SetFocus End If End If End Sub Private Sub tdisc_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",") Or KeyAscii = Asc(".")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text5.SetFocus Exit Sub End If If KeyAscii = 13 Then PPN = Val(tharga_jual.Text) 'text2 = harga jual 'PPN = 0 'text5 = harga pokok 'Text2 = PPN + Val(Text5) * (Val(tdisc) / 100) 'tbanyak = (Val(Text5) + (Val(Text5) * Val(tppn) / 100)) 'tbanyak = Val(Text2) + (Val(Text2) * Val(tdisc) / 100) tharga_jual = PPN + Val(tharga_pokok.Text) * (Val(tdisc) / 100) tbanyak.SetFocus End If End Sub Private Sub Text11_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text12.SetFocus End If End Sub
Private Sub Text12_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text12.SetFocus Exit Sub End If If KeyAscii = 13 Then If Text12 = "" Then Text12 = "00" MaskEdBox1.SetFocus Exit Sub Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Else MaskEdBox1.SetFocus Exit Sub End If End If End Sub Private Sub Text13_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text13.SetFocus Exit Sub End If If KeyAscii = 13 Then If Text13 = "" Then Text13 = "000" Text7.SetFocus Exit Sub End If If Len(Text13) <> 3 Then MsgBox "KODE ASAL BARANG TERLALU PANJANG ATAU TERLALU PENDEK...ULANGI !!" KeyAscii = 0 Text13.Text = "" Text13.SetFocus Exit Sub Else Text7.SetFocus Exit Sub End If End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text2.SetFocus Exit Sub End If
If KeyAscii = 13 Then If Val(Text2.Text) <= Val(Text5.Text) Then Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
MsgBox "HARGA JUAL SALAH...ULANGI" KeyAscii = 0 Text2 = "" Exit Sub Else 'simpan.Enabled = True 'simpan.SetFocus Text6.SetFocus End If End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) 'KODE JENIS BARANG If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text1.SetFocus Exit Sub End If If KeyAscii = 13 Then ' stok.Recordset.Index = "kodex" 'jangan menggunakan adodc ' XKODE = Left(Text1.Text, 2) 'ambil jenis barang BUKAN KATEGORI ' stok.Recordset.Seek "=", XKODE 'gunakan control data ' If stok.Recordset.NoMatch Then ' MsgBox ("Data tidak ditemukan!, kode tersebut tidak ada !") ' KeyAscii = 0 ' Text1.Text = "" ' Text1.SetFocus ' Exit Sub ' End If If Len(Text1) <> 2 Then MsgBox "KODE BARANG TERLALU PANJANG ATAU TERLALU PENDEK...ULANGI !!" KeyAscii = 0 Text1.Text = "" Text1.SetFocus Exit Sub Else 'Text11 = stok.Recordset!JENIS_BARANG SQL = "SELECT JENIS_BARANG FROM MASTER WHERE KODE ='" & Text1 & "' " RCARI.Open SQL, koneksi Text11 = RCARI.GetString RCARI.Close Exit Sub End If End If Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text3.SetFocus Exit Sub End If If KeyAscii = 13 Then If Text3 = "" Then Text3.Text = "000" MonthView1.Visible = False Text4.SetFocus Exit Sub End If If Len(Text3) <> 3 Then MsgBox "KODE NAMA BARANG TERLALU PANJANG ATAU TERLALU PENDEK ...ULANGI !!" KeyAscii = 0 Text3.Text = "" Text3.SetFocus Exit Sub Else Text4.SetFocus Exit Sub End If End If End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(Text4) > 50 Then MsgBox "SORRY MAKSIMUM NAMA OBAT 50 KARAKTER...!" KeyAscii = 0 Text4 = "" Exit Sub End If pertama = 0 buat_baru = 0 If Adodc1.Recordset.RecordCount <> 0 Then Adodc1.Recordset.MoveFirst Adodc1.Recordset.Find "NAMA = '" & Text4 & "' " If Adodc1.Recordset.EOF Then MsgBox "DATA TIDAK DITEMUKAN...!" Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
'buat tabel yang baru U KARTU STOK harga program + Rp. 1.000.000 'apotik central BUAT = MsgBox("BUAT TABEL YANG BARU..??", vbYesNo) If BUAT = vbYes Then buat_baru = 1 Else buat_baru = 0 End If tbatch.SetFocus Else LANJUT = MsgBox("ADA NAMA YANG SAMA..LANJUTKAN...?", vbYesNo) If LANJUT = vbYes Then 'PINDAH KE KARTU STOK 'Text4 = "" 'Form2.Hide 'KARTU_STOK.Show 'Exit Sub If Text4 = "" Then Text4 = "X" tbatch.SetFocus Else tbatch.SetFocus End If Else batal.SetFocus End If End If Else 'BUAT TABEL BARU SEJAK 0 RECORD buat_baru = 1 pertama = 1 tbatch.SetFocus If Text4 = "" Then Text4 = "X" tbatch.SetFocus Else tbatch.SetFocus End If End If End If End Sub Private Sub Text5_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
KeyAscii = 0 Text5.SetFocus Exit Sub End If If KeyAscii = 13 Then If Text5 = "" Then MsgBox "HARGA MASIH KOSONG ULANGI !" KeyAscii = 0 Text5.SetFocus Exit Sub Else 'Text5.Text = Format(Val(Text5.Text), "#,###,'###,###") MonthView3.Visible = False 'PPN = Val(Text5) + 0.1 * Val(Text5) 'Text2 = PPN + 0.2 * Val(Text5) 'Text2.SetFocus tppn.SetFocus End If End If End Sub Private Sub Text6_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 Text6.SetFocus GoTo AKHIR End If If KeyAscii = 13 Then If Text6 = "" Then MsgBox "BANYAK BARANG MASIH KOSONG ULANGI !" KeyAscii = 0 Text6.SetFocus Exit Sub Else 'Text6.Text = Format(Val(Text6.Text), "#,###,###,###") Text13.SetFocus End If End If AKHIR: End Sub Private Sub Text7_KeyPress(KeyAscii As Integer) 'If Not (KeyAscii >= Asc("A") And KeyAscii <= Asc("Z") Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = vbKeySpace Or KeyAscii = Asc(".") Or KeyAscii = Asc(",")) Then Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
' MsgBox ("DATA WAJIB HURUF BESAR ") ' KeyAscii = 0 ' Text7.SetFocus 'Exit Sub 'End If If KeyAscii = 13 Then If Text7 = "" Then Text7 = "X" End If Text8.Text = Val(Text5.Text) * Val(Text6.Text) 'Text8.Text = Format(Val(Text5.Text) * Val(Text6.Text), "#,###,###,###,###") simpan.Enabled = True simpan.SetFocus End If End Sub Private Sub texp_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then texp = MonthView3.SelStart tharga_pokok.SetFocus MonthView3.Visible = False End If End Sub Private Sub tharga_jual_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tbanyak.SetFocus End If End Sub Private Sub tharga_pokok_Click() MonthView1.Visible = False End Sub Private Sub tharga_pokok_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tppn.SetFocus End If End Sub Private Sub tjenis_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then tgl.SetFocus End If End Sub Private Sub tjumlah_KeyPress(KeyAscii As Integer) tjumlah = Val(tharga_jual) * Val(tbanyak) Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
If KeyAscii = 13 Then simpan.Enabled = True simpan.SetFocus End If End Sub Private Sub tkod_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 tkod.SetFocus Exit Sub End If
If KeyAscii = 13 Then SQL = "SELECT JENIS_BARANG FROM MASTER WHERE KODE ='" & tkod & "' " RCARI.Open SQL, koneksi tjenis = RCARI.GetString RCARI.Close tjenis.SetFocus Exit Sub End If End Sub Private Sub tlaba_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",") Or KeyAscii = Asc(".")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 tppn.SetFocus Exit Sub End If If KeyAscii = 13 Then PPN = Val(tharga_pokok) + Val(tharga_pokok) * (Val(tppn) / 100) tharga_jual = PPN + Val(tharga_pokok) * (Val(tlaba) / 100) laba = Val(tharga_jual) - Val(tharga_pokok) tbanyak.SetFocus End If End Sub Private Sub tnama_Click() MonthView1.Visible = False End Sub Private Sub tnama_KeyPress(KeyAscii As Integer) Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
If KeyAscii = 13 Then tbatch.SetFocus End If End Sub Private Sub tppn_KeyPress(KeyAscii As Integer) If Not (KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Or KeyAscii = Asc(",") Or KeyAscii = Asc(".")) Then MsgBox "MASUKKAN ANGKA SAJA" KeyAscii = 0 tppn.SetFocus Exit Sub End If If KeyAscii = 13 Then tlaba.SetFocus End If End Sub
'tppn = ppn
Private Sub transaksi_Click() On Error GoTo SALAH Adodc1.Refresh Data2.Refresh stok.Refresh SALAH: klikmenu = 1 Unload Me Form3.Show End Sub Sub RATA() n=0 NJUAL = 0 If Adodc1.Recordset.RecordCount = 0 Then NJUAL = NJUAL + Val(Text2) n=n+1 Else Adodc1.Recordset.MoveFirst Do Until Adodc1.Recordset.EOF If Adodc1.Recordset!nama = Text4 Then NJUAL = NJUAL + Adodc1.Recordset!harga n=n+1 End If Adodc1.Recordset.MoveNext Loop End If End Sub Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Module : Public koneksi As New ADODB.Connection Public rtabel As New ADODB.Recordset Public rtabel1 As New ADODB.Recordset Public rtabel2 As New ADODB.Recordset Public RCARI As New ADODB.Recordset Public SQL, SQL1, SQL2 As String Sub Main() rtabel1.CursorLocation = adUseClient rtabel2.CursorLocation = adUseClient 'koneksi.Open "Provider = Microsoft.jet.oledb.4.0;Data Source = " & App.Path & "\KANTOR.mdb" koneksi.Open "Provider=OraOLEDB.Oracle.1;Password=a;User ID=LINDA;Data Source=acer:1521/XE" If koneksi.State = 1 Then UTAMA.Show End If End Sub Public Sub Buat_tabel(urut, xtabel) Set DBS = OpenDatabase(App.Path & "\utama.mdb") 'urut = Date + Time urut = Format(Now(), "dd-mm-yyyy hh:mm:ss") Set td = DBS.CreateTableDef(urut) With td .Fields.Append .CreateField("no", dbLong, 7) .Fields.Append .CreateField("kode", dbText, 10) .Fields.Append .CreateField("nama", dbText, 50) .Fields.Append .CreateField("harga_pokok", dbDouble) .Fields.Append .CreateField("harga", dbDouble) .Fields.Append .CreateField("banyak", dbDouble, 20) .Fields.Append .CreateField("diskon", dbDouble, 100) .Fields.Append .CreateField("jumlah", dbDouble, 20) .Fields.Append .CreateField("total", dbDouble, 20) .Fields.Append .CreateField("cash", dbDouble, 20) .Fields.Append .CreateField("kembali", dbDouble, 20) End With DBS.TableDefs.Append td DBS.Close End Sub
SURAT KETERANGAN TUGAS AKHIR Hasil Uji Program Tugas Akhir
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Yang bertanda tangan di bawah ini, menerangkan bahwa Mahasiswa Tugas Akhir program Diploma III Ilmu Komputer :
Nama
: Lindawaty
Nim
: 052406183
Prog. Studi
: Ilmu Komputer
Judul T.A
: Sistem Informasi Persediaan Obat pada Apotik Dunia
Telah melaksanakan test program tugas akhir Mahasiswa tersebut diatas pada tanggal …31…/ …05.../ 2008
Dengan Hasil : Sukses / Gagal
Demikian diterangkan untuk digunakan melengkapi syarat pendaftaran Ujian Meja Hijau Tugas Akhir Mahasiswa bersangkutan di Jurusan Matematika FMIPA USU Medan.
Medan, 31 /05 / 2008 Dosen Pembimbing Program D3 Ilmu Komputer
Dra. Elly Rosmaini, M.Si Nip : 131459475
DEPARTEMEN PENDIDIKAN NASIONAL UNIVERSITAS SUMATERA UTARA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM PROGRAM STUDI D-3 ILMU KOMPUTER/STATISTIKA Jl. Bioteknologi No. 1 Kampus USU Telp. (061) 8211050 Fax. (061) 8214290 Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008
Medan – 20155
KARTU BIMBINGAN TUGAS AKHIR MAHASISWA Nama Mahasiswa
: LINDAWATY
Nomor Induk Mahasiswa
: 052406183
Judul Tugas Akhir
: SISTEM INFORMASI PERSEDIAAN OBAT PADA APOTIK DUNIA
Dosen Pembimbing I
: Dra. Elly Rosmaini, M. Si
Tanggal Mulai Bimbingan : 25 Maret 2008 Tanggal Selesai Bimbingan : 2 Juni 2008
NO
TANGGAL ASISTEN BIMBINGAN
PEMBAHASAN PADA ASISTENSI MENGENAI PADA BAB
1
25 Maret 2008
Proposal Tugas Akhir
2
2 Juni 2008
PARAF DOSEN PEMBIMBING
KETERANGAN
ACC Bab 1
3
ACC Bab 2
4
ACC Bab 3
5
ACC Bab 4
6
ACC Bab 5
7 8 Diketahui Ketua Jurusan Matematika
Disetujui Pembimbing Utama/ Penanggung Jawab
Dr. Saib Suwilo, M. Sc Nip : 131796149
Dra.Elly Rosmaini, M. Si Nip : 131459475
Lindawaty : Sistem Informasi Persediaan Obat Pada Apotik Dunia, 2008 USU Repository © 2008