Anda di halaman 1dari 160

PROGRAM APLIKASI PERSEDIAAN CARTRIDGE

MENGGUNAKAN VISUAL BASIC 6.0 PADA


PT. INDONESIA EPSON INDUSTRY

TUGAS AKHIR
Diajukan Sebagai Salah Satu Syarat Untuk Kelulusan Program Diploma III
Jurusan Manajemen Informatika
Tahun Akademik 2009

Disusun Oleh:

Nama : Chaidir Fadil


NPM : 109062630229

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER


PRANATA INDONESIA
BEKASI
2009
LEMBAR PERSETUJUAN PEMBIMBING

Nama Mahasiswa : Chaidir Fadil


NPM : 1090 6263 0229
Program / Jurusan : Diploma 3 / Manajemen Informatika
Tempat Penelitian : PT. Indonesia Epson Industry
Judul Tugas Akhir : Program Aplikasi Persediaan Cartridge
Menggunakan Visual Basic 6.0 Pada PT. Indonesia
Epson Industry

Dinyatakan telah SELESAI / BELUM SELESAI * melaksanakan penulisan tugas

akhir, sehingga yang bersangkutan DIIJINKAN / TIDAK DI IJINKAN *

mengikuti sidang yudisium Tugas Akhir.

Cikarang, 30 Oktober 2009

Dosen Pembimbing I Dosen Pembimbing II

Rasim, ST Drs. Sabarudin R, M.Kom


NIK: 05.03.01.1.3.0119 NIK: 96.03.01.1.1.0001

Mengetahui,
Ketua Jurusan Manajemen Informatika

Wiludjeng Pontjo Driyani, SPd


NIK: 02.03.01.1.1.0054

ii
PENGESAHAN SIDANG YUDISIUM

Tugas Akhir ini telah diujikan dihadapan Dewan Penguji pada tanggal

……………….................................Bulan…………………………………………

………..………………….. Tahun……..……………….…………………………

dan dinyatakan : LULUS / TIDAK LULUS / LULUS BERSYARAT

Disahkan pada tanggal………….…………………………………………………

Penguji 1 Penguji 2

Ir. M. Khaerudin Sutan Faisal, M.Kom


NIK: 00.03.01.1.1.0027 NIK: 01.03.01.1.3.0053

Mengetahui

Ketua STMIK Pranata Indonesia Ketua Sidang Yudisium

Drs. Yusrodi CHP, M.Si Drs. Harry Subagyo, MM


NIK: 96.05.00.1 NIK: 96.03.01.1.1.0002

iii
KATA PENGANTAR

Puji dan syukur penulis panjatkan kehadirat Allah SWT, yang telah

memberikan rahmat dan karuniaNya, sehingga pada akhirnya penulis dapat

menyelesaikan penulisan tugas akhir ini dengan baik. Adapun judul dari tugas

akhir ini adalah : “Program Aplikasi Persediaan Cartridge Menggunakan Visual

Basic 6.0 Pada PT. Indonesia Epson Industry “.

Tujuan dari penulisan tugas akhir ini dibuat adalah sebagai salah satu syarat

kelulusan program diploma III pada Sekolah Tinggi Manajemen Informatika dan

Komputer (STMIK) Pranata Indonesia. Selama penulisan tugas akhir ini, banyak

bantuan moril maupun materil dari berbagai pihak, maka dengan ini penulis ingin

mengucapkan terima kasih kepada:

1. Bapak Drs. Yusrodi CHP, M.Si selaku Ketua Yayasan YMII dan Ketua

STMIK Pranata Indonesia

2. Ibu Wiludjeng Pontjo Driyani, S.Pd selaku Ketua Jurusan Manajemen

Informatika STMIK Pranata Indonesia

3. Bapak M. Saifudin, S.Pd, M.Kom selaku Kepala BAAK STMIK Pranata

Indonesia Kampus Cikarang

4. Bapak Rasim, ST selaku pembimbing I yang telah memberikan bimbingan

dalam hal materi penulisan tugas akhir ini

5. Bapak Drs. Sabaruddin Rangkuti, M.Kom selaku pembimbing II yang telah

memberikan bimbingan dalam hal materi penulisan tugas akhir ini

v
6. Bapak dan Ibu Staff Dosen Pengajar STMIK Pranata Indonesia yang telah

memberikan ilmu pengetahuan selama penulis mengikuti perkuliahan

7. Rekan-rekan Mahasiswa STMIK Pranata Indonesia

8. Staff dan Karyawan IJP CSQA PT. Indonesia Epson Industry

9. Semua pihak baik langsung maupun tidak langsung memberikan bantuannya

sehingga penulisan tugas akhir ini dapat terselesaikan dengan baik.

Akhirnya penulis berharap semoga tugas akhir ini bermanfaat bagi penulis

dan PT. Indonesia Epson Indonesia khususnya, serta para pembaca pada

umumnya.

Cikarang, September 2009

Penulis

vi
DAFTAR ISI

HALAMAN JUDUL ……………………………………………………………i

LEMBAR PERSETUJUAN ……………………………………………………ii

LEMBAR PENGESAHAN .................................................................................iii

MOTTO DAN PERSEMBAHAN ……………………………………………..iv

KATA PENGANTAR ………………………………………………………….v

DAFTAR ISI …………………………………………………………………..vii

BAB I PENDAHULUAN ………………………………..................................1

1.1 Latar Belakang Masalah ………………………………………….1

1.2 Perumusan Masalah ……………………………………………...3

1.3 Pembatasan Masalah …………………………………………….3

1.4 Tujuan dan Manfaat Penelitian ……………………………………4

1.4.1 Tujuan Penelitian ………………………….........................4

1.4.2 Manfaat Penelitian …………………………………............4

1.5 Metodologi Penelitian …………………………………………...5

1.6 Sistematika Penulisan ……………………………………………6

BAB II LANDASAN TEORI ………………………………………………… 8

2.1 Pengertian Program ….…………………………………………... 8

2.2 Pengertian Aplikasi ………………………………………….......8

2.3 Pengertian Persediaan ………………………………....................8

vii
2.4 Alat Bantu Perancangan Sistem ……........................................ ..10

2.4.1 DFD (Data Flow Diagram)……………………………….10

2.4.2 Flowcart …………………………………………………11

2.5 Alat Bantu Perancangan Database ……………………………...14

2.5.1 Entity Relationship Diagram (ERD) ……………….......14

2.5.2 Normalisasi …………………………………….………17

2.6 Aplikasi yang Digunakan ……………………………….............19

2.6.1 Gambaran Umum Microsoft Visual Basic 6.0 ………….19

2.6.2 Lingkungan Visual Basic 6.0 …………………………..20

2.7 Konfigurasi Komputer ………………………………………….26

2.7.1 Hardware (Perangkat Keras) ………………………........26

2.7.2 Software (Perangkat Lunak) ………………………........28

2.7.3 Brainware (Pengguna) …………………………….........28

BAB III TINJAUAN UMUM PERUSAHAAN ……………………………..30

3.1 Sejarah Perusahaan ………………..………………………........30

3.2 Struktur Organisasi ………………………………………….......32

3.3 Wewenang dan Tanggung Jawab …………………....................34

3.4 Analisa Sistem yang Berjalan …………………………………..36

3.4.1 Urutan Prosedur Sistem …………………………………36

3.4.2 Spesifikasi Proses ……………………………………….38

3.5 Flowchart Program ……………………………………………..45

3.6 Analisa Basis Data ………………………………………............66

viii
3.6.1 Entity Relational Diagram………………………………..66

3.7 Struktur Database ……………………………………………….67

BAB IV PEMBAHASAN MASALAH ...........................................................70

4.1 Spesifikasi Program …………………………………….............70

4.2 Struktur Program HIPO(Hierarchical Input Proses Output)......…70

4.3 Tampilan Program ………………………………………….......75

4.3.1 Tampilan Input …………………………………………..75

4.3.2 Tampilan Output ………………………………………...81

4.4 Listing Program ……………………………………………........83

BAB V PENUTUP …………………………………………………………...150

5.1 Kesimpulan ……………………………………………………150

5.2 Saran saran …………………………………………………......151

DAFTAR PUSTAKA ………………………………………………………...152

LAMPIRAN

ix
BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan ilmu dan teknologi yang cukup pesat dewasa ini sangat

mempengaruhi keberadaan dunia industri. Penggunaan mesin-mesin produksi

semakin meningkat dengan tujuan efisiensi dan produktivitas yang tinggi,

sehingga dapat diperoleh keuntungan yang sebesar-besarnya. Untuk menjaga

keseimbangan laju produksi agar terus berjalan dengan lancar, maka

kecepatan penyampaian informasi dan akses data diperlukan sebuah sistem

yang baik. Kecepatan penyampaian informasi dan akses data merupakan

salah satu kunci dalam memenangkan persaingan. PT. Indonesia Epson

Industry merupakan salah satu perusahaan yang menginginkan pembenahan

terus-menerus (continuous improvement) dan meningkatkan kinerjanya. Salah

satu cara peningkatan kerja di PT. Indonesia Epson Industry adalah dengan

membuat sistem informasi yang tepat dan optimal.

PT. Indonesia Epson Industry adalah sebuah perusahaan swasta yang

bergerak dalam bidang manufaktur elektronik yang memproduksi printer

epson, dengan pemasaran produk berorientasi ekspor dengan tujuan ke pasar

Eropa, Asia dan Amerika.

Sekarang ini PT. Indonesia Epson Industry dalam beberapa tahun

terakhir sedang mengalami perkembangan produksi yang cukup pesat. Oleh

karena itu dibutuhkan serangkaian kegiatan untuk menunjang sistem yang

1
2

ada, sehingga sistem yang terkomputerisasi sangat dibutuhkan. Dengan

sistem ini pengolahan data dan informasi dapat dengan mudah dan cepat

diproses secara rutin, memeriksa keakuratan data dan membuat laporan

secara otomatis.

Namun pengelolaan data mengenai keluar masuknya cartridge pada

bagian consumable di departemen OQC (Outgoing Quality Control) masih

belum maksimal, hal ini disebabkan oleh beberapa masalah yang ditemui

yaitu:

a. Pencatatan data keluar masuknya cartridge masih menggunakan cara

manual, sehingga sering terjadi kesalahan dalam melakukan pencatatan

data.

b. Proses pembuatan laporan data stok cartridge yang ada di consumable

sering mengalami keterlambatan.

Ditinjau dari kebutuhan sehari-hari yang semakin berkembang. Untuk

memperbaiki kelemahan-kelemahan tersebut maka diperlukan pengembangan

sistem informasi khususnya dalam menangani informasi mengenai data stok

cartridge pada consumable OQC. Sehingga mendorong penulis mengambil

judul ”Aplikasi Program Persediaan Cartridge Menggunakan Visual

Basic 6.0 pada PT. Indonesia Epson Industry” dalam pembuatan tugas

akhir ini.
3

1.2 Perumusan Masalah

Masalah yang diangkat dalam tugas akhir ini adalah pembuatan program

database dengan menggunakan Visual Basic 6.0 untuk memudahkan user

dalam menggunakan, mengolah dan mendapatkan hasil informasi tentang

persediaan cartridge pada consumable OQC di PT. Indonesia Epson Industry.

Hal ini dimaksudkan untuk memudahkan operator melakukan input data dan

pihak-pihak yang bersangkutan yang ingin mengetahui pemakaian dan

persediaan cartridge.

Berdasarkan latar belakang yang telah dijelaskan tersebut di atas maka

perumusan masalah dalam tugas akhir ini meliputi beberapa hal, yaitu:

1. Bagaimana merancang program aplikasi persediaaan cartridge pada

consumable Departemen OQC di PT. Indonesia Epson Industry untuk

mengatasi penggunaan sistem manual, sehingga dapat diperoleh

kemudahan dalam penyediaan informasi secara cepat dan akurat.

2. Bagaimana merancang suatu program aplikasi yang dapat mengontrol

penggunaan cartridge dan persediaan cartridge.

3. Bagaimana membuat laporan sesuai dengan yang dibutuhkan oleh

pengguna secara mudah cepat dan akurat.

1.3 Pembatasan Masalah

Karena begitu banyak faktor yang harus diidentifikasi dan dilibatkan

untuk bisa membuat suatu program aplikasi mengenai persediaan cartridge

ini, maka penulis membatasi masalah yang akan diangkat pada:


4

1. Penelitian dilakukan hanya terhadap hal-hal yang berhubungan dengan

proses keluar masuknya cartridge pada consumable OQC di PT.Indonesia

Epson Industry.

2. Penelitian hanya sampai pembuatan program dengan menggunakan Visual

Basic 6 sebagai bahasa pemrogramannya, dan Microsoft Access sebagai

sistem basis datanya.

3. Pembuatan laporan pada program aplikasi terdiri dari laporan stok secara

aktual, laporan cartridge masuk per bulan, laporan request cartridge per

tanggal, dan laporan pemakaian cartidge per hari.

1.4 Tujuan dan Manfaat Penelitian

1.4.1 Tujuan Penelitian

Tujuan yang hendak dicapai oleh penulis dari penulisan tugas akhir

ini antara lain:

1. Memenuhi salah satu syarat kelulusan pendidikan program

Diploma Tiga di STMIK Pranata Indonesia.

2. Membangun sebuah program aplikasi mengenai persediaan

cartridge pada Consumable OQC PT. Indonesia Epson Industry.

1.4.2 Manfaat Penelitian

Adapun manfaat yang nantinya diharapkan dapat dicapai dengan

melakukan penelitian ini adalah terciptanya sebuah program aplikasi

yang bermanfaat bagi perusahaan dan menambah wawasan dan


5

pengalaman penulis dalam mengaplikasikan teori yang didapat selama

masa kuliah dalam suatu kasus nyata.

1.5 Metodologi Penelitian

Dalam pembuatan tugas akhir ini, penulis mengadakan pengumpulan

data-data serta keterangan-keterangan yang dibutuhkan dengan beberapa

tahapan, yaitu sebagai berikut:

a. Studi kepustakaan

Yaitu teknik pengumpulan data atau keterangan melalui buku-buku serta

tulisan ilmiah lainnya yang berhubungan dengan permasalahan yang

sedang dibahas.

a. Studi lapangan

Yaitu teknik pengumpulan data melalui penelitian yang dilakukan secara

langsung pada perusahaan yang bersangkutan, diantaranya dapat dilakukan

dengan cara antara lain:

1. Interview (wawancara)

Penulis mengumpulkan data melalui wawancara dengan karyawan

PT. Indonesia Epson Industry yang terlibat langsung dalam

permasalahan yang sedang diteliti.

2. Observasi

Penulis dalam mengumpulkan data melalui pengamatan langsung di

lapangan serta mempelajari prosedur kerja pada permasalahan

tersebut.
6

1.6 Sistematika Penulisan

Untuk lebih memahami penulisan pada tugas akhir ini, penulis membagi

penulisan tugas akhir ini menjadi 5 (lima) bab, dimana tiap-tiap bab terdiri

atas beberapa sub-sub bab untuk menerangkan secara jelas isi dari tugas akhir

ini, sehingga dapat dimengerti. Yang secara garis besar diterangkan sebagai

berikut:

BAB I PENDAHULUAN

Pada bab ini berisi tentang latar belakang permasalahan, ruang

lingkup permasalahan, maksud dan tujuan penelitian, metode

penelitian dan sistematika penulisan yang digunakan penulis untuk

menguraikan tugas akhir ini.

BAB II LANDASAN TEORI

Pada bab ini penulis menguraikan tentang landasan teori yang

menjabarkan pengertian program, dan perancangan program aplikasi

serta teori-teori dasar sistem informasi, Data Flow Diagram(DFD),

Entity Relationship Diagram (ERD), pengertian normalisasi,

bentuk-bentuk normalisasi dan relationship, serta jenis aplikasi yang

digunakan dan konfigurasi komputer.

BAB III TINJAUAN UMUM PERUSAHAAN

Pada bab ini penulis menjelaskan tentang sejarah dan struktur

organisasi perusahaan, wewenang dan tanggung jawab, analisa


7

sistem berjalan, flowchart program, analisa basis data dan struktur

database.

BAB IV PEMBAHASAN MASALAH

Pada bab ini penulis menjelaskan spesifikasi program, struktur

program aplikasi, rancangan tampilan input output program, dan

listing program.

BAB V PENUTUP

Pada bab ini berisi kesimpulan yang diperoleh dari penelitian serta

saran bagi PT. Indonesia Epson Industry yang akan menggunakan

porgram aplikasi ini.


BAB II

LANDASAN TEORI

2.1 Pengertian Aplikasi

“Aplikasi adalah sekumpulan objek yang terdiri dari beberapa form,

report, close dan bitmap yang disusun sedemikian rupa sehingga dapat

mengakses data” (Kasusita Sita, 2002:70).

Sedangkan menurut Sugiyono, “Aplikasi adalah suatu program atau

rangkaian instruksi yang disusun oleh para penguna komputer ataupun

programer untuk mengolah data pada jenis pekerjaan tertentu” (Sugiyono,

2005:5).

2.2 Pengertian Program

“Program adalah sekelompok instruksi yang dijalankan oleh komputer

untuk melakukan tugas-tugas tertentu” (Adi Kurniadi, 2000:346).

Sedangkan menurut Sugiyono dalam bukunya yang berjudul

Pemrograman Terstruktur, mendefinisikan pemrograman sebagai berikut

“Pemrograman adalah rangkaian instruksi-instruksi dalam bahasa komputer

yang disusun secara logis dan sistematis” (Sugiyono, 2005:21).

2.3 Pengertian Persediaan

Menurut Soemarso SR dalam bukunya yang berjudul Akuntansi Suatu

Pengantar menyatakan bahwa “Persediaan adalah barang yang dimiliki

untuk dijual atau diproses selanjutnya dijual”(Soemarso SR, 2004:384).

8
9

Berdasarkan pengertian di atas maka perusahaan jasa tidak memiliki

persediaan, perusahaan dagang hanya memiliki persediaan barang dagang,

sedangkan perusahaan industri memiliki 3 jenis persediaan yaitu persediaan

bahan baku, persediaan barang dalam proses dan persediaan barang jadi (siap

untuk dijual).

Dari gambaran diatas maka disimpulkan persediaan untuk perusahaan-

perusahaan manufaktur pada umumnya mempunyai tiga jenis persediaan

yaitu:

a. Bahan baku (direct material)

b. Barang dalam proses ( work in proses)

c. Barang jadi (finished goods)

Dalam perusahaan dagang, persediaan merupakan barang-barang yang

dibeli oleh perusahaan dengan tujuan untuk dijual kembali dengan tanpa

mengubah bentuk dan kualitas barang, atau dapat dikatakan tidak ada proses

produksi sejak barang dibeli sampai dijual kembali oleh perusahaan.

Sedangkan pengertian persediaan untuk perusahaan industri adalah

barang-barang atau bahan yang dibeli oleh perusahaan dengan tujuan untuk

diproses lebih lanjut menjadi barang jadi atau setengah jadi atau mungkin

menjadi bahan baku bagi perusahaan lain, hal ini tergantung dari jenis dan

proses usaha utama perusahaan.


10

2.4 Alat Bantu Perancangan Sistem

2.4.1 DFD / Data Flow Diagram

Definisi Data Flow Diagram adalah sebagai berikut “DFD adalah

gambaran grafis yang memperlihatkan aliran data dari sumbernya

dalam objek kemudian melewati suatu proses yang mentransformasinya

ke tujuan yang lain, yang ada pada objek lain” (Adi Nugroho,

2005:106). Berikut simbol-simbol DFD:

Entitas
Entitas adalah objek aktif yang mengendalikan
aliran data dengan memproduksi serta
mengkonsumsi data. Entitas dilampirkan ke
masukan atau keluaran pada Data Flow Diagram.
Entitas digambarkan dengan empat persegi panjang
yang memperlihatkan bahwa sebenarnya ia adalah
objek.

Proses
Proses adalah sesuatu yang melakukan transformasi
terhadap data. Proses digambarkan dengan elips
yang memuat deskripsi singkat tentang transformasi
yang terjadi.

Data Store
Data Store adalah objek pasif dalam DFD yang
menyimpan data untuk penggunaan lebih lanjut.
Data Store digambarkan dengan dua garis paralel
yang memuat nama dari penyimpanan.

Aliran Data
Aliran data menghubungkan keluaran dari objek
atau proses yang terjadi pada suatu masukan. Aliran
data digambarkan sebagai tanda panah antara
penyedia serta pengguna data.
11

Gambar Diagram Konteks

2.4.2 Flowchart

“Flowchart adalah gambar simbol-simbol yang digunakan untuk

menggambarkan urutan proses atau instruksi-instruksi yang terjadi di

dalam suatu program komputer secara sistematis dan logis”(Sugiyono,

2005:29).

Simbol-simbol Flowchart:

TERMINAL

Simbol ini digunakan untuk mengawali

dan mengakhiri suatu proses atau kegiatan


12

PREPARATION / PERSIAPAN

Simbol ini digunakan untuk mempersiapkan

harga awal atau nilai awal dari suatu variabel

yang akan diproses dan juga untuk

penggunaan proses loop.

DECISION / KEPUTUSAN

Simbol ini digunakan untuk mengambil

keputusan dalam pengujian suatu kondisi

yang sedang diproses.

PROSES

Simbol ini digunakan untuk melakukan

kegiatan proses instruksi di dalam suatu

program.

INPUT / OUTPUT

Simbol ini digunakan untuk menggambarkan

proses Input dan Output program.

SUB ROUTIN / PROSES TERDEFINISI

Simbol ini digunakan untuk menggambarkan

proses pemanggilan (Call System) pada

Sub Program dari Main Program.

FLOW LINE

Simbol ini digunakan untuk menggambarkan

arus atau jalur proses dari suatu kegiatan


13

yang menuju pada kegiatan lain.

CONNECTOR

Simbol ini digunakan untuk penghubung

antara suatu proses dengan proses lainnya

yang berada pada posisi halaman yang sama.

PAGE CONNECTOR

Simbol ini digunakan untuk penghubung

antara suatu proses dengan proses lainnya

yang berada pada posisi halaman yang

berbeda.

PRINTER

Simbol ini digunakan untuk menggambarkan

suatu dokumen atau untuk kegiatan

mencetak.

CONSOLE

Simbol ini digunakan untuk menggambarkan

kegiatan dalam menampilkan data atau

informasi dengan Media Visual Display Unit

(VDU) atau disebut juga monitor.

MANUAL INPUT

Simbol ini digunakan untuk menggambarkan

kegiatan pemasukan data dengan media

keyboard.
14

DISK

Simbol ini digunakan untuk menggambarkan

kegiatan dalam membaca atau menulis data

dengan media magnetic disk.

TAPE / PITA

Simbol ini digunakan untuk menggambarkan

kegiatan dalam membaca atau menulis data

dengan media kertas pita (Tape).

TAPE DRIVE

Simbol ini digunakan untuk menggambarkan

kegiatan dalam membaca atau menulis data

dengan media magnetic tape (Pita Magnet).

PUNCHED CARD

Simbol ini digunakan untuk menggambarkan

kegiatan dalam membaca atau menulis

data dengan media kartu Punch.

2.5 Alat Bantu Perancangan Database

2.5.1 Entity Relationship Diagram / ERD

“ERD / Entity Relationship Diagram pada dasarnya adalah

diagram yang memperlihatkan entitas-entitas yang terlibat dalam suatu

sistem serta hubungan-hubungan (relasi) antar entitas tersebut” (Adi

Nugroho, 2005:192).
15

Sedangkan menurut Sugiyono “ERD adalah diagram yang

menggambarkan hubungan yang menjelaskan antar Entity atau Atribut

dengan Entity (Atribut) lainnya pada suatu sistem database”(Sugiyono,

2005:85).

Notasi dasar dari ERD terdiri dari:

Entitas
Entitas adalah suatu objek yang dapat di
identifikasikan dalam lingkungan pemakai, dan
sesuatu yang penting bagi pemakai dalam konteks
sistem yang akan dibuat.

Atribut
Atribut (field) adalah bagian dari suatu entitas
yang berfungsi mendeskripsikan karakter entitas ,
sehingga atribut bisa digunakan sebagai identifier
(key) untuk menentukan entitas secara unik. Dan
descriptor (non key) untuk menentukan entitas
secara tidak unik.

Link
Garis penghubung antara himpunan relasi dengan
himpunan entitas dan himpunan dengan
atributnya.

Relasi
Relasi adalah suatu objek yang menghubungkan
antara suatu entitas dengan entitas yang lain.

Konsep ERD mudah dimengerti untuk digunakan

dalam menspesifikasikan mengenai basis data berasosiasi.

Dalam mengatur operasi terhadap sebuah database terkadang

dibutuhkan hubungan antara satu tabel dengan tabel lainnya.


16

"Hubungan antara satu tabel dengan tabel lain dalam istilah relasional

disebut juga dengan Relationship " (Yuswanto,2002:6).

Terdapat tiga jenis hubungan antara satu database dengan database

lainnya dalam proses pengolahan data, yaitu :

a. Hubungan Satu-ke-Satu (One-to-One)

Hubungan ini menunjukan bahwa setiap baris data pada tabel

pertama dapat dikoneksikan hanya ke satu baris data pada tabel

kedua. Hubungan ini akan berlangsung dengan baik bila field-field

yang bersesuaian di kedua tabel tersebut merupakan kunci primer.

Data user
1 1 Username
User Memiliki Password
Posisi

b. Hubungan Satu-ke-Banyak (One-to-Many)

Hubungan ini merupakan hubungan yang paling umum dimana

pada hubungan ini ditunjukan pada setiap baris data pada tabel

pertama dapat dikoneksikan ke satu atau lebih baris data pada tabel

kedua. Tetapi sebuah baris data pada tabel kedua hanya bisa

dihubungkan dengan satu baris data pada tabel pertama. Hubungan

Satu-ke-Banyak ini hanya bisa terjadi bila hanya salah satu

field yang terkait merupakan kunci primer.

Data inspector
NIK 1 M
Request Cartridge
Nama Inspector
17

c. Hubungan Banyak-ke-Banyak (Many-to-Many)

Hubungan ini menunjukkan bahwa satu atau lebih baris data

pada tabel pertama dapat dikoneksikan ke satu atau lebih baris data

pada tabel kedua. Hubungan Banyak-ke-Banyak terjadi jika

ditampilkan dari perspektifnya sendiri, masing-masing sisi dari

hubungan banyak-ke-banyak muncul sebagai hubungan satu-ke-

banyak. Hubungan banyak-ke-banyak menjadi jelas ketika hubungan

seperti ini di tampilkan dari kedua sisi.

M M
Inspector Request Cartridge

2.5.2 Normalisasi

“Normalisasi adalah proses penyusunan tabel-tabel yang tidak

redundan (dobel), yang dapat menyebabkan anomali pada saat terjadi

operasi manipulasi data seperti tambah, ubah, dan hapus” (Yuswanto,

2002: 9). Sebuah tabel dapat dikategorikan efisien atau normal, jika

telah memenuhi tiga kriteria yaitu :

a. Jika ada dekomposisi tabel dimana dekomposisinya harus dijamin

aman (Lossless-Join Decomposition). Dekomposisi adalah proses

pemisahan satu tabel menjadi dua atau lebih tabel baru.

b. Terpeliharanya ketergantungan fungsional pada saat perubahaan data

(Dependency Preservation).
18

c. Tidak melanggar Boyce-Codd Normal Form (BCNF).

Ketiga kriteria diatas merupakan kriteria minimal untuk mendapatkan

predikat efisien atau normal bagi sebuah tabel.

Beberapa kriteria lain yang juga tercakup dalam kerangka

Normalisasi, walaupun bukan merupakan kriteria utama adalah :

a. Bentuk Normalisasi tahap Pertama (1st Normal Form /1 NF).

Sebuah tabel di sebut 1NF jika tidak ada baris yang duplikat dalam

tabel tersebut dan masing-masing cell bernilai tungggal.

b. Bentuk Normalisasi tahap Kedua (2nd Normal Form / 2NF).

Bentuk Normal Kedua (2NF) terpenuhi jika pada sebuah tabel semua

atribut yang tidak termasuk dalam primary key memiliki

ketergantungan fungsional pada primary key secara utuh.

c. Bentuk Normalisasi tahap Ketiga (3rd Normal Form / 3NF).

Sebuah tabel dikatakan memenuhi Bentuk Normal Ketiga (3NF),

jika untuk setiap ketergantungan fungsional dengan notasi X –>A,

dimana A mewakili semua atribut tunggal di dalam tabel yang tidak

ada di dalam X, maka X haruslah superkey pada tabel tersebut atau

A merupakan bagian dari primary key pada tabel tersebut.


19

2.6 Aplikasi yang Digunakan

2.6.1 Gambaran Umum Microsoft Visual basic 6.0

Microsoft Visual Basic 6.0 merupakan salah satu aplikasi

pemrograman yang dikeluarkan oleh Microsoft. Microsoft Visual Basic

6.0 menggunakan pendekatan Graphical User interface (GUI) yang

lebih nyaman dan lebih mudah digunakan oleh pengguna. Visual basic

6.0 juga menyediakan banyak fasilitas yang dapat digunakan oleh

pemrogram untuk membuat program aplikasi. Baik itu program aplikasi

sederhana yang berupa aplikasi desktop, sampai aplikasi client server

aplikasi web yang kompleks. Kelebihan yang dimiliki Visual Basic 6.0

telah menarik banyak orang untuk mempelajarinya.

Microsoft Visual Basic 6.0 adalah bahasa program yang bekerja

dalam lingkup MS-Windows. Microsoft Visual Basic berasal dari bahasa

pemrograman yang populer yang disebut Basic (Beginner’s All Purpose

Symbol Instruction Code). Bahasa Basic diperkenalkan pertama kali

oleh Dartmouth College pada tahun 1960. Kemudian beberapa

pengembang software mempopulerkan bahasa Basic dengan membuat

berbagai macam aplikasi seperti GW-Basic, Qbasic dan Quick Basic.

Visual Basic berbasis DOS untuk Windows diperkenalkan pada tahun

1991.

Visual Basic 6.0 memiliki kelebihan-kelebihan yang tidak dimiliki

oleh versi sebelumnya. Kelebihannya antara lain seperti:


20

a. Menggunakan platform pembuatan program yang diberi nama

Developer Studio, yang memiliki tampilan dan sarana yang sama

dengan Visual C++ dan Visual J++.

b. Memiliki compiler handal yang dapat menghasilkan file

executable yang lebih cepat dan lebih efisien dari sebelumnya.

c. Memiliki beberapa tambahan sarana wizard yang baru. Wizard

adalah sarana yang mempermudah di dalam pembuatan aplikasi

dengan mengotomatisasi tugas-tugas tertentu.

d. Tambahan kontrol-kontrol baru yang canggih serta peningkatan

kaidah struktur bahasa visual basic.

e. Kemampuan membuat ActiveX dan fasilitas internet yang lebih

banyak.

f. Sarana akses data yang lebih cepat dan handal untuk membuat

aplikasi database yang berkemampuan tinggi.

2.6.2 Lingkungan Visual Basic 6.0

Lingkungan microsoft Visual Basic 6.0 terdiri dari beberapa

komponen yang masing masing mempunyai fungsi tersendiri. Saat

program Visual Basic dijalankan, akan muncul sebuah layar seperti di

bawah ini:
21

Gambar Lingkungan Visual Basic 6.0

Berikut penjelasan mengenai lingkungan visual basic 6.0

a. Control Menu

Control Menu merupakan sebuah elemen yang terletak pada bagian

sudut kiri atas jendela Visual Basic 6.0. Dalam sistem operasi

Windows, elemen ini tampil dalam bentuk ikon program, yang jika

anda klik akan tampil daftar menu perintah yang digunakan untuk

mengubah ukuran jendela, memindah letak jendela, dan juga keluar

dari program Microsoft Visual Basic 6.0.

Gambar Control Menu


22

b. Menu Bar

Menu Bar merupakan batang menu yang terletak di bawah titlebar,

berfungsi untuk menampilkan pilihan menu atau perintah untuk

mengoperasikan program Visual Basic.

Gambar Menu standar Visual Basic

c. Toolbar

Toolbar merupakan sebuah batang yang berisi kumpulan tombol

yang terletak di bagian bawah menu bar yang dapat digunakan

untuk menjalankan suatu perintah.

Gambar Toolbar standar Visual Basic

d. Form Window

Form window merupakan jendela desain atau area kerja utama dari

sebuah program aplikasi, tempat menempatkan kontrol-kontrol yang

ada di bagian toolbox. Pada form window juga terdapat beberapa

elemen yang dapat digunakan untuk mengatur tampilan.


23

Gambar Jendela Form Visual Basic

e. Toolbox

Toolbox merupakan kotak perangkat yang berisi kumpulan tombol

objek atau kontrol untuk mengatur desain dari aplikasi yang akan

dibuat.

Gambar Toolbox Visual Basic 6.0


24

f. Project Explorer

Project Explorer adalah jendela yang mengandung semua file yang

ada di dalam aplikasi Visual Basic. Project Explorer digunakan

untuk melihat bagian-bagian proyek pembuatan aplikasi. Bagian-

bagian tersebut dapat berupa project, form, data environment dan

data report. Project Explorer ini berbentuk menu tree sehingga

mempermudah dalam pengaksesannya. Pada jendela explorer

terdapat tiga tombol kontrol tampilan antara lain Window Code

untuk menampilkan kode, Window Project untuk menampilkan

dalam bentuk visual dan toggle folder untuk pengelompokan jenis

objek.

Gambar jendela Project Explorer

g. Jendela Properties

Jendela Properties adalah jendela yang mengandung semua

informasi mengenai objek yang terdapat pada aplikasi visual basic.


25

Properti adalah sifat dari sebuah objek, misalnya nama, warna,

ukuran, posisi dan sebagainya.

Gambar Jendela Properties

h. Form Layout Window

Form Layout window adalah jendela yang memgambarkan posisi

dari form yang ditampilkan pada layar monitor.

Gambar Form Layout Window


26

i. Jendela Code

Jendela Code merupakan sebuah jendela yang digunakan untuk

menuliskan kode program dan kontrol yang anda pasang pada

jendela form dengan cara memilih terlebih dahulu kontrol pada

kotak objek.

Gambar Jendela Code

2.7 Konfigurasi Komputer

Sejak awal pembuatan komputer, sebuah komputer tidak lepas dari

konfigurasi dasar yang terdiri dari Hardware, Software, dan Brainware.

2.7.1 Hardware (perangkat keras).

Hardware yaitu peralatan dalam bentuk fisik yang menjalankan

sistem komputer. Hardware digunakan sebagai media untuk

menjalankan software (perangkat lunak) dan peralatan ini berfungsi

untuk menjalankan instruksi-instruksi yang diberikan dan


27

mengeluarkannya dalam bentuk informasi yang digunakan oleh

manusia untuk laporan. Hardware terdiri dari:

a. Input Device

Merupakan alat yang digunakan untuk memasukan data atau

instruksi kedalam komputer. Input device sesuai dengan namanya

hanya digunakan untuk memasukan data atau instruksi ke dalam

CPU (process device).

Contoh : keyboard, mouse, scanner, lightpen, dan joystick.

b. Process Device

Merupakan alat yang digunakan untuk melaksanakan kumpulan

instruksi yang akan ditujukan untuk menghasilkan suatu hasil

tertentu yang dikehendaki. Process device dapat melakukan tugasnya

jika ada masukan dari input device baik berupa data atau instruksi.

Alat ini disebut CPU (Central Processing Unit).

c. Output Device

Merupakan alat yang digunakan untuk menampilkan laporan

atau informasi hasil pengolahan dari input baik ditampilkan pada

layar monitor maupun dicetak pada media lain.

Contoh : monitor, printer, dan plotter.


28

Adapun spesifikasi komputer yang penulis gunakan untuk

membuat program aplikasi pada Consumable PT. Indonesia Epson

Industry adalah sebagai berikut:

Microprocessor : Intel Celeron 2.26 GHz

Motherboard : ASUS P4S8X-MX

RAM : DDR 512 MB

Harddisk : Maxtor 80 GB

Monitor : Maxlink 15”

Keyboard : Komic PS 2

Mouse : Optik Komic

Printer : Epson Stylus CX5500

2.7.2 Software (perangkat lunak).

Dalam pembuatan program aplikasi ini penulis menggunakan

berbagai macam software dintaranya:

1. Windows XP Service Pack 2 sebagai sistem operasi komputer.

2. Microsoft Visual Basic 6.0 sebagai bahasa pemrograman.

3. Crystal Report 4.7.1 untuk mendesign laporan program.

4. Microsoft Office 2007 untuk penulisan tugas akhir.

2.7.3 Brainware (Pengguna).

Brainware yaitu orang-orang yang bekerja dengan menggunakan

komputer. Brainware merupakan otak terpenting dari semua kegiatan

komputer karena tanpa brainware, komputer tersebut tidak akan dapat


29

berfungsi sebagaimana yang kita harapkan. Pengguna yang akan

menggunakan aplikasi ini adalah:

1. Sistem maintenance yang akan melakukan perawatan dan perbaikan

terhadap program aplikasi.

2. Administrator yang mempunyai akses penuh terhadap program aplikasi.

3. Operator yang melakukan transaksi dengan program aplikasi.


BAB III

TINJAUAN UMUM PERUSAHAAN

3.1 Sejarah Perusahaan

PT. Indonesia Epson Industry adalah perusahaan yang bergerak di bidang

industri manufaktur yang memproduksi printer dan beralamatkan di kawasan

East Jakarta Industrial Park(EJIP) plot 4E Lemah Abang, Bekasi17550.

PT.Indonesia Epson Industry adalah anak cabang dari Seiko Epson

Group (SEC) yang berada di Indonesia, sedangkan pusat SEC berada di

Jepang. SEC ini sendiri didirikan pada bulan Mei tepatnya tahun 1942 dan

SEC digabung pada bulan November 1985 dengan jumlah modal US$ 12.530

Juta. SEC tidak hanya memproduksi printer juga melakukan pengembangan

pabrik komputer, LCD, Proyektor, LCD Proyektor, TV dan semikonduktor.

Nama EPSON diambil dari nama mini printer EP (Electric Printer) - 101

yaitu mini printer pertama yang di buat oleh EPSON dan sukses. Kata

EPSON mengekspresikan bahwa setelah sukses dengan EP – 101, perusahaan

membuat banyak printer yang merupakan pengembangan dari EP - 101

sehingga diambilah nama EP "Sons" atau turunan EP atau EPSON.

PT. Indonesia Epson Industry (IEI) didirikan pada 27 Juli 1994, dan

mulai beroperasi pada April1995. Dengan Luas Tanah 138.000 m2, dan luas

bangunan ±64.000 m2.

30
31

IEI adalah perusahaan yang memproduksi printer SIDM (Serial Impact

Dot Metric) dan InkJet, serta komponen pendukungnya yang utama seperti

plastik, scanner dan print head.

Berikut adalah rangkaian perkembangan PT. Indonesia Epson Industry:

No Tahun Bulan Sejarah PT.Indonesia Epson Industry

1 1994 Juli PT.Indonesia Epson Industry didirikan

2 1995 Maret Peresmian SIDM printer berproduksi di

PT.Indonesia Epson Industry, Plastic 1 mulai

Beroperasi

3 1995 Maret Peresmian SIDM printer berproduksi di

PT.Indonesia Epson Industry, Plastic 1 mulai

beroperasi.

4 1996 September Perusahaan mendapatkan sertifikat ISO 9002

5 1997 Januari PT.Indonesia Epson Industry 2 mulai beroperasi

dan INK JET printer mulai produksi.

6 1997 Febuari Plastic 2 beroperasi

7 1997 Agustus Press Part dan motor berproduksi, memproduksi

printer 400.000/bulan
32

8 1997 Oktober ISF (Industrial Suppoting family) beroperasi

9 1998 Agustus Memproduksi printer 400.000/bulan

10 1999 Januari Plating dan Shaft mulai beroperasi

11 1999 Maret PT.IEI mendapatkan ISO 14001

12 1999 April Memproduksi printer 600.000 / bulan

13 1999 Mei PCB berproduksi

14 1999 November Print Head berproduksi

15 2001 Maret Mulai produksi Seat Pipe.

3.2 Struktur Organisasi

Manajemen dan organisasi yang baik merupakan suatu elemen dasar

yang sangat berpengaruh besar dalam perkembangan suatu perusahaan

kedepan. Karena organisasi mempunyai peranan penting dalam pengaturan

hubungan kerja antar komponen-komponen yang ada dalam perusahaan yang

meliputi pembagian tugas, penempatan wewenang dan tanggung jawab

sehingga pekerjaan dapat diselesaikan sebaik mungkin.

PT.IEI dipegang oleh seorang Presiden direktur yang membawahi

beberapa Divisi yang dikepalai oleh seorang General Manager. Masing-

masing Divisi membawahi beberapa Departemen yang dikepalai oleh seorang

Manajer. Setiap departemen membawahi beberapa Sub Departemen yang


33

masing-masing dikepalai oleh seorang supervisor. Kemudian dari supervisor

ini langsung membawahi beberapa Section Head (Leader). Sedangkan

Section Head membawahi para operator.

IJP Production
TP Production
SIDM
Production

Maintenance

Factory Manufacture
Engineering Facility Control
Machine &
Tools

President Mold Design


Director
Part Mold
Production Production
IQC
Vice President
Head
Production

IJP CSQA
CSQA
SIDM CSQA

IJP Design

TP Design SIDM Design

PCB Design

HRM & GA
Corporate
Management Accounting
Control
Facility Control
& Safety

Gambar Struktur Organisasi PT. Indonesia Epson Industry


34

3.3 Wewenang dan Tanggung Jawab

Masing-masing posisi dan jabatan memiliki wewenang dan tanggung

jawab tersendiri, yang harus mereka jalankan dengan penuh tanggung jawab

demi kemajuan perusahaan.

1. President Director

a. Mengatur tugas masing-masing divisi agar tujuan perusahaan tercapai.

b. Mengevaluasi hasil kerja masing-masing divisi.

c. Bertanggung jawab langsung dengan SEC.

2. Vice President

a. Membantu President Director dalam melakukan tugas.

b. Menggantikan posisi President Director apabila dibutuhkan.

c. Bersama President director bertanggung jawab kepada SEC.

3. TP Production

a. Mengontrol dan mengawasi proses produksi.

b. Merencanakan proses produksi.

c. Bertanggung jawab atas kelancaran produksi.

4. Factory Engineering

a. Mengontrol dan merawat fasititas produksi dan lingkungan kerja.

b. Mengontrol pengadaan jig dan tool produksi.

c. Bertanggung jawab atas fasilitas yang menunjang proses produksi.

5. Part Production

a. Merancang dan memproduksi molding part.

b. Mengontrol produksi part dan pengadaan bahan baku.


35

c. Bertanggung jawab atas ketersediaan part-part pendukung produksi.

6. Customer Satisfaction Quality Assurance (CSQA)

a. Menentukan kelayakan hasil produksi sebelum diekspor.

b. Mengawasi proses produksi untuk menjaga kualitas produk.

c. Bertanggung jawab atas kualitas produk yang diterima oleh customer.

7. TP Design

a. Mendesign produk yang inovatif dan kompetitif.

b. Melakukan evaluasi dan perbaikan terhadap produk yang telah

diproduksi.

c. Bertanggung jawab atas design printer yang diproduksi

8. HRM dan GA

a. Merekrut dan memberhentikan karyawan, mengatur kesejahteraan

karyawan.

b. Melakukan evaluasi terhadap kinerja karyawan.

c. Bertanggung jawab terhadap pengaturan gaji karyawan dan

ketersediaan man power.

9. Accounting

a. Melakukan penelitian, penilaian dan melaporkan secara berkala posisi

keuangan perusahaan.

b. Mengkaji kebijaksaan pengolahan dana untuk disesuaikan denagn

perubahan dan penyempurnaan bidang usaha.


36

c. Membina pelaksaan administrasi, penerimaan, pengeluaran serta

pengolahan dana termasuk memberikan laporan secara berkala maupun

sewaktu-waktu dibutuhkan.

3.4 Analisa Sistem yang Berjalan

3.4.1 Urutan Prosedur Sistem

Dalam menunjang kelancaran proses penyediaan barang-barang

consumable yang dipakai dalam proses inspeksi produk seperti

cartridge, maka bagian consumable membuat urutan proses persediaan

consumable agar proses keluar masuknya cartridge bisa lebih teratur

dan kegiatan inspeksi berjalan dengan lancar. Berikut akan dijelaskan

prosedur proses penyediaan dan keluarnya cartridge pada consumable

OQC IJP PT. Indonesia Epson Industry.

Prosedur ini menjelaskan hal-hal yang berkaitan dengan proses

penyediaan cartridge, request cartridge sampai dengan proses

pengembalian cartridge (return). Urutan prosesnya adalah sebagai

berikut:

a. Proses Penyediaan Cartridge

Operator consumable melihat rencana produksi besok untuk

mengecek part-part apa saja yang akan dipakai untuk inspeksi

besok. Lalu mengecek stok yang ada di consumable apakah masih

cukup atau kurang dari rencana pemakaian besok, apabila kurang

operator akan mengisi request form untuk meminta cartridge yang

akan akan dipakai besok. Setelah diisi form request part harus
37

disetujui oleh Supervisor dan Manajer OQC, setelah itu baru

diberikan kepada Gudang Berikat. Gudang Berikat akan

memberikan cartridge yang diminta sesuai dengan form yang

diberikan beserta dengan transfer slip yang merupakan bukti

dokumen request consumable. Bukti transfer slip tersebut akan di

input oleh staf consumable dan akan dilaporkan secara periodik

kepada manajer OQC.

b. Proses Request Cartridge

Leader inspector membuat rencana sampling berdasarkan rencana

produksi, kemudian inspector mengisi form request cartridge sesuai

dengan rencana sampling yang dibuat leader. Form request dicek

oleh operator consumable apakah sesuai dengan rencana produksi

hari ini, apabila sesuai maka operator akan menyiapkan cartridge

yang dibutuhkan sesuai dengan form request dan menginputnya

secara manual disebuah kertas yang disebut daily plan ink

cartridge. Setelah selesai proses inspeksi produk, inspector akan

mengembalikan cartridge yang tidak terpakai dalam proses inspeksi,

hal ini biasa terjadi karena perubahan produksi atau terjadinya

masalah pada bagian produksi. Cartridge yang kembali tersebut

akan diinput kembali oleh operator consumable untuk dimasukkan

kembali ke dalam stok consumable. Kemudian lembar daily plan

ink cartridge akan diberikan kepada staff consumable untuk diinput

dan dilaporkan secara periodik kepada manajer OQC.


38

3.4.2 Spesifikasi Proses

A. Proses Input

Proses ini dilakukan untuk memasukkan data-data seperti data

inspector, data barang, data login, data cartridge masuk dan data

request cartridge. Pada setiap proses terdapat proses yang

diantaranya adalah sebagai berikut:

1. Proses Input Data

a. Proses Input Data Login

Proses ini digunakan untuk memasukkan data user yang bisa

menggunakan program persediaan cartridge consumable, field

yang akan di input meliputi:

Username

Password

Posisi

b. Proses Input Data Inspector

Proses ini digunakan untuk memasukkan data-data inspector

yang merupakan anggota IJP OQC. Field yang di input

meliputi:

NIK

Nama Inspector

Status

c. Proses Input Data Barang

Proses ini digunakan untuk memasukkan data-data cartridge


39

yang ada di consumable dan yang baru masuk consumable.

Field yang akan di input meliputi:

Kode barang

Nama barang

Jenis

Stok

Limit stok

d. Proses Input Data Barang Masuk

Setiap barang atau cartridge yang baru di request dari gudang

berikat harus didata agar stok cartridge di consumable bisa

dikontrol dan diperbarui. Berikut field-field yang akan diinput

meliputi:

Tanggal masuk

Shift

Kode transfer

Kode barang

Nama barang

Jumlah

e. Proses Input Data Barang Keluar

Proses ini dimaksudkan agar barang atau cartridge yang keluar

atau direquest oleh inspector bisa dikontrol dan diawasi

penggunaannya. Field-field yang akan diinput meliputi:

Tanggal keluar
40

Shift

Kode request

NIK

Nama Inspector

Model

Kode barang

Nama barang

Jumlah

f. Proses Input Data Barang Return

Proses ini dilakukan apabila ada barang atau cartridge yang

tidak terpakai setelah proses inspeksi selesai, sehingga stok

cartridge di consumable bisa diperbarui kembali. Field yang

akan diinput meliputi:

Kode request

Kode barang

Nama barang

Jumlah

Return

Total

2. Proses Simpan

Setelah semua data dalam form diisi dengan lengkap kemudian

dilakukan proses penyimpanan data dengan menekan tombol

simpan.
41

3. Proses Batal

User ingin membatalkan data yang sudah dimasukkan ke dalam

form, yaitu dengan menekan tombol batal.

4. Proses Edit

User ingin merubah data atau ada kesalahan dalam memasukkan

data, maka user tinggal memilih data tersebut dalam form edit

lalu mengubahnya sesuai dengan yang diinginkan lalu tekan

tombol simpan.

5. Proses Hapus

Proses ini digunakan untuk menghapus data-data yang sudah ada

di dalam database.

6. Proses Cari Data

Apabila user ingin mencari data yang telah tersimpan dalam

database, user tinggal memasukkan kode atau nama yang dicari

dalam textbox cari.

7. Proses Keluar

Apabila user sudah selesai, maka user dapat menekan tombol

keluar untuk keluar dari aplikasi atau form yang sedang aktif.

B. Proses Pembuatan Laporan

Yaitu merancang pembuatan laporan berdasarkan kebutuhan dan

masukan atau input dari program. Jenis-jenis laporan yang akan

dicetak oleh aplikasi persediaan cartridge consumable yaitu:

1. Laporan Data Stok Cartridge


42

2. Laporan Data Barang Masuk per Bulan

3. Laporan Data Request Cartridge per Tanggal

4. Laporan Data Pemakaian Cartridge harian

C. Struktur Pengkodean

Untuk mempermudah dalam pencatatan dan pencarian data,

maka penulis memberikan pengkodean pada setiap data, misalnya:

1. Kode Request

1 2 3 4 5 6 7 8 9

Panjang : 9 Karakter

Type : Text

2 1 0 7 0 9 1 0 7

a. Enam digit awal menjelaskan tanggal keluar

210709 : Tanggal 21 Bulan 07 Tahun 2009

b. Satu digit selanjutnya merupakan shift kerja

1 : shift 1

c. Dua digit terakhir merupakan urutan request

2. Kode Transfer

1 2 3 4 5 6 7 8 9 10 11

Panjang : 11 Karakter

Type : Text
43

1 2 5 0 8 0 9 1 0 0 5

a. Satu digit awal menunjukkan shift kerja

1 = Shift 1

b. Enam digit berikutnya menjelaskan tanggal transfer.

250809 = 25 Agustus 2009

c. Satu digit berikutnya menjelaskan departemen yang

melakukan request.

1 = Departement OQC

d. Tiga digit terakhir menjelaskan urutan request.

005 = urutan ke 5

3. NIK

1 2 3 4 5 6 7 8

Panjang : 8 Karakter

Type : Text

1 0 8 0 4 7 7 8

a. Satu digit awal menunjukkan kode departement

1 = departement OQC

b. Empat digit berikutnya menunjukkan tahun dan bulan masuk

0804 = tahun 2008 bulan April

c. Tiga digit terakhir menunjukkan urutan masuk


44

778 = urutan ke 778

4. Username

1 2 3 4 5 6 7 8 9 10

Panjang : maksimal 10 Karakter

Type : Text

Isi : Bebas menggunakan huruf dan angka

5. Password

1 2 3 4 5 6

Panjang : maksimal 6 Karakter

Type : Text

Isi : Bebas menggunakan huruf dan angka


45

3.5 Flow Chart Program

Mulai

Input
username

Input
password

cek T

cek
posisi

operator administrator

2 1

Gambar Flow Chart Login


46

1
4
Input

Y
Setting data A
pengguna

Tambah data Y B
barang
T

Edit data Y
C
barang
T

Y
hapus data D
barang

Tambah data Y
E
inspector
T

Y
Edit data
F
inspector

Input cartridge Y
G
masuk
T

3
Gambar Flow Chart Menu Utama Administrator
47

Input request Y H
cartridge
T

Input return Y
I
cartridge
T

Laporan stok Y
J
cartridge
T

Laporan Y
K
request
T

Laporan Y L
pemakaian
T

T Laporan
M
cartridge masuk

4 Keluar

selesai

Gambar Flow Chart Menu Utama Administrator


48

Input

Y
Input G
cartridge
T

Y
Input request
H
cartridge
T

Input return Y
I
cartridge
T

T keluar

selesai

Gambar Flow Chart Menu Utama Operator


49

Setting data
pengguna

Y
Pilih
A.1
Baru

Pilih Y
A.2
Ubah

Pilih Y
A.3
Hapus

T Pilih
Keluar
Y

Selesai

Gambar Flow Chart Menu Setting Data Pengguna


50

A.1

Input
Username,
Password, Posisi

simpan

Cek Y
Username

Selesai

Gambar Flow Chart Input Data Pengguna


51

A.2

Cari data
pengguna

Tampilkan
Username,
Password, Posisi

Ubah

Input
perubahan

simpan

Selesai

Gambar Flow Chart Ubah Data Pengguna


52

A.3

Cari data
pengguna

Tampilkan
Username,
Password, Posisi

T
Hapus
Data
Y

Hapus
Username,
Password, Posisi

Selesai

Gambar Flow Chart Hapus Data Pengguna


53

Input kode_barang,
nama_barang, jenis,
stok, limit_stok

Simpan

Cek Y
kode_barang

Selesai

Gambar Flow Chart Tambah Data Barang


54

Pilihan
Cari
kode_barang nama_barang

Input Input
kode_barang nama_barang

T T
Ada Ada

Y Y

Tampilkan kode_barang,
nama_barang, jenis, limit_stok

Input perubahan

Simpan

Cek Y
kode_barang

Selesai

Gambar Flow Chart Edit Data Barang


55

Pilihan
Cari
kode_barang nama_barang

Input Input
kode_barang nama_barang

T T
Ada Ada

Y Y

Tampilkan kode_barang,
nama_barang, jenis, limit_stok

T
Hapus
data
Y

Hapus kode_barang,
nama_barang, jenis, limit_stok

Selesai

Gambar Flow Chart Hapus Data Barang


56

Input NIK,
nama_inspector,
status

Simpan

Cek Y
NIK

Selesai

Gambar Flow Chart Tambah Data Inspector


57

Input NIK

T
Ada

Tampilkan NIK,
nama_inspector, status

Y
Hapus F.1

Input
perbaikan

Simpan

Cek Y
NIK
T

Selesai

Gambar Flow Chart Ubah Data Inspector


58

F.1

Hapus T F
Data

Hapus NIK,
nama_inspector, status

Selesai

Gambar Flow Chart Hapus Data Inspector


59

Input tanggal_masuk,
shift, kode_transfer

Pilih Barang

Tampilkan kode_barang,
nama_barang, jenis

Input jumlah

Y
Batal

Simpan

Selesai

Gambar Flow Chart Input Cartridge Masuk


60

Input tanggal_request,
shift, kode_request

Input NIK

Tampilkan
nama_inspector

Input model_printer

Pilih Barang

Tampilkan kode_barang,
nama_barang, jenis_cartridge

Input jumlah

Y
Batal
T

Simpan

Selesai

Gambar Flow Chart Input Request Cartridge


61

Input kode_request

Ada T

Tampilkan tanggal_request, kode_request,


shift, nik, nama_inspector, model_printer,
kode_barang, nama_barang,
jenis_cartridge, jumlah, return, total

Pilih barang

Tampilkan kode_request,
kode_barang, nama_barang,
jenis_cartridge, jumlah, return,

Input return

Total=jumlah-return

Simpan

Selesai

Gambar Flow Chart Cartridge Return


62

Tampilkan tanggal, kode_barang,


nama_barang, jenis_cartridge, stok

Cetak T

Cetak

Selesai

Gambar Flow Chart Laporan Stok Cartridge


63

Input tanggal_keluar

T
Ada

Tampilkan tanggal_keluar, shift, kode_request,


nama_inspector, model_printer, nama_barang,
jumlah, return, total

Cetak T

Y
Cetak

Selesai

Gambar Flow Chart Laporan Request Cartridge per tanggal


64

Input tanggal_keluar

T
Ada
Y

Tampilkan tanggal_keluar, kode_barang,


nama_barang, jenis_cartridge, jumlah

T
Cetak

Cetak

Selesai

Gambar Flow Chart Laporan Pemakaian Cartridge Harian


65

Input bulan, tahun

T
Ada

Tampilkan tanggal_masuk, shift,


Y
kode_transfer, kode_barang,
nama_barang, jumlah

Cetak T

Y
Cetak

Selesai

Gambar Flow Chart Laporan Barang Masuk per bulan


66

3.6 Analisa Basis Data

3.6.1 Entity Relational Diagram (ERD)

Tanggal_Keluar
Request Shift
1 Login 1 M M
Kode_Request
NIK
Nama_Inspector
Username Model_Printer
Password Kode_Barang
Nama_barang
Jenis_Cartridge
Jumlah
Return
Total
User Cartridge Inspector

Username Kode_Barang NIK


Password Nama_Barang Nama_Inspector
Posisi Jenis_Cartridge Status
Limit_Stok
Stok

1 Input M M Return M
barang
masuk
Tanggal_Keluar
Shift
Tanggal_Masuk Kode_Request
Shift NIK
Kode_Transfer Nama_Inspector
Kode_Barang Model_Printer
Nama_barang Kode_Barang
Jenis_Cartridge Nama_barang
Jumlah Jenis_Cartridge
Jumlah
Return
Total

Gambar Entity Relational Diagram


67

3.7 Struktur Data Base

Table Data Inspector

Nama File : Data_Inspector

Key Field : NIK

No Nama Type Size

1 NIK Text 8

2 Nama_Inspector Text 25

3 Status Text 8

Table Data Barang

Nama File : Data_Barang

Key Field : Kode_Barang

No Nama Type Size

1 Kode_Barang Text 8

2 Nama_Barang Text 25

3 Jenis_Cartridge Text 6

4 Stok Number -

5 Limit_Stok Number -
68

Table Barang Masuk

Nama File : Data_Barang_Masuk

Key Field : Kode_Transfer

No Nama Type Size

1 Tanggal_Masuk Date Long Date

2 Shift Text 1

3 Kode_Transfer Text 11

4 Kode_Barang Text 9

5 Nama_Barang Text 25

6 Jenis_Cartridge Text 6

7 Jumlah Number -

Table Barang Keluar

Nama File : Data_Barang_Keluar

Key Field : Kode_Request

No Nama Type Size

1 Tanggal_Keluar Date Long Date

2 Shift Text 1

3 Kode_Request Text 9
69

4 NIK Text 8

5 Nama_Inspector Text 25

6 Model_Printer Text 15

7 Kode_Barang Text 9

8 Nama_Barang Text 25

9 Jenis_Cartridge Text 6

10 Jumlah Number -

11 Return Number -

12 Total Number -

Table Login

Nama file : Data_Login

Key Field : Username

No Nama Type Size

1 Username Text 10

2 Password Text 6

3 Posisi Text 13
BAB IV

PEMBAHASAN MASALAH

4.1 Spesifikasi Program

Dalam pembuatan program aplikasi persediaan cartridge pada

Consumable PT. Indonesia Epson Industry penulis menggunakan Microsoft

Visual Basic 6.0 sebagai bahasa pemrograman dan Microsoft Access sebagai

databasenya. Sedangkan untuk laporan penulis menggunakan Crystal Report.

Adapun spesifikasi program yang penulis buat adalah sebagai berikut:

1. Menu Login, gunanya sebagai pengaman aplikasi.

2. Menu Utama, yaitu menu yang menjadi inti dari program aplikasi yang

terdiri dari sub menu Setting Data Pengguna, Data Barang, Data Inspector,

Data Transaksi, dan Laporan.

4.2 Struktur Program HIPO (Hierarchical plus Input Proses Output)

Menu Utama terdiri dari 5 sub menu, yaitu: File, Data Barang, Data

Inspector, Data Transaksi, dan Laporan.

1. Sub Menu File terdiri dari 1 form yaitu Setting Data Pengguna, yang

didalamnya terdapat 6 pilihan proses yaitu cari data, input data baru, ubah

data, hapus data, simpan data, dan keluar. Dalam form ini user dapat

mengatur data user yang dapat mengakses program ini.

70
71

2. Sub Menu Data Barang terdiri dari 3 form yaitu:

a. Tambah Data Cartridge

User dapat memasukkan data cartridge baru yang belum terdapat dalam

database. Dalam form ini terdapat 2 pilihan proses yaitu simpan dan

keluar.

b. Edit Data Cartridge

User dapat merubah data cartridge yang ada dalam database. Dalam

form ini terdapat 3 pilihan proses yaitu cari data, simpan dan keluar.

c. Hapus Data Cartridge

User dapat menghapus data cartridge yang terdapat dalam database.

Dalam form ini terdapat 3 pilihan proses yaitu cari data, hapus dan

keluar.

3. Sub Menu Data Inspector terdiri dari 2 form yaitu:

a. Tambah Data Inspector

User dapat menambah data inspector yang dapat melakukan request

cartridge pada consumable. Dalam form ini ada 2 pilihan proses yaitu

simpan dan keluar.

b. Edit Data Inspector

User dapat mengubah dan menghapus data inspector yang ada dalam

database. Dalam form ini terdapat 4 pilihan proses yaitu cari data,

simpan, hapus dan keluar.

4. Sub Menu Data Transaksi terdiri dari 3 form yaitu:

a. Input Cartridge Masuk


72

User menginput data cartridge yang baru masuk ke dalam stok

consumable. Dalam form ini terdapat 5 pilihan proses yaitu tambah,

kurang, simpan, batal dan keluar.

b. Input Request Cartridge

User menginput data request cartridge yang dilakukan oleh inspector

OQC untuk inspeksi produk. Dalam form ini terdapat 5 pilihan proses

yaitu tambah, kurang, simpan, batal dan keluar.

c. Input Return Cartridge

User menginput data cartridge yang dikembalikan atau tidak terpakai

oleh inspector. Dalam form ini terdapat 5 pilihan proses yaitu tambah,

kurang, simpan, batal dan keluar.

5. Sub Menu Laporan terdiri dari 4 form yaitu:

a. Laporan Stok Cartridge

User dapat melihat dan mencetak laporan stok cartridge yang terdapat

dalam consumable. Dalam form ini terdapat 2 pilihan proses yaitu ok

dan batal.

b. Laporan Cartridge Masuk per Bulan

User dapat melihat dan mencetak detail laporan cartridge masuk dalam

periode perbulan. Dalam form ini terdapat 2 pilihan proses yaitu cetak

dan batal.
73

c. Laporan Request Cartridge per Tanggal

User dapat melihat dan mencetak detail laporan request cartridge yang

dilakukan oleh inspector OQC setiap tanggal. Dalam form ini terdapat 2

pilihan proses yaitu cetak dan batal.

d. Laporan Pemakaian Cartridge Harian

User dapat melihat dan mencetak laporan pemakaian cartridge

perharinya. Dalam form ini terdapat 2 pilihan proses yaitu cetak dan

batal.
74

PROGRAM APLIKASI PERSEDIAAN CARTRIDGE


CONSUMABLE OQC
75

4.3 Tampilan Program

4.3.1 Tampilan Input

a. Form Login

Gambar Form Login

b. Menu Utama

Gambar Menu Utama


76

c. Form Setting Data Pengguna

Gambar Form Setting Data Pengguna

d. Form Tambah Data Cartridge

Gambar Form Tambah Data Cartridge


77

e. Form Edit Data Cartridge

Gambar Form Edit Data Cartridge

f. Form Hapus Data Cartridge

Gambar Form Hapus Data Cartridge


78

g. Form Tambah Data Inspector

Gambar Form Tambah Data Inspector

h. Form Edit Data Inspector

Gambar Form Edit Data Inspector


79

i. Form Input Cartridge Masuk

Gambar Form Input Cartridge Masuk

j. Form Input Request Cartridge

Gambar Form Input Request Cartridge


80

k. Form Input Return Cartridge

Gambar Form Input Return Cartridge


81

4.3.2 Tampilan Output

a. Laporan Stok Cartridge

Gambar Laporan Stok Cartridge

b. Laporan Cartridge Masuk per Bulan

Gambar Laporan Cartridge Masuk per Bulan


82

c. Laporan Request Cartridge per Tanggal

Gambar Laporan Request Cartridge per Tanggal

d. Laporan Pemakaian Cartridge Harian

Gambar Laporan Pemakaian Cartridge Harian


83

4.4 Listing Program

Form Login

Private Sub cmdbatal_Click()

End

End Sub

Private Sub cmdok_Click()

If txtuser.Text <> "" And txtpass.Text <> "" Then

Set rsLogin = New ADODB.Recordset

rsLogin.LockType = adLockOptimistic

rsLogin.CursorType = adOpenDynamic

rsLogin.Open "SELECT * FROM data_login WHERE username = '"

& txtuser.Text & "' AND password = '" & txtpass.Text & "'", conn, , ,

adCmdText

If Not rsLogin.EOF Then

If rsLogin!posisi = "Administrator" Then

'load menu utk admin

MDIForm1.fileLogin.Enabled = True

MDIForm1.mnuBarang.Enabled = True

MDIForm1.mnuInspector.Enabled = True

MDIForm1.mnuTransaksi.Enabled = True

MDIForm1.mnuLaporan.Enabled = True

MDIForm1.Show
84

Unload Me

Else

'load menu utk operator

MDIForm1.fileLogin.Enabled = False

MDIForm1.mnuBarang.Enabled = False

MDIForm1.mnuInspector.Enabled = False

MDIForm1.mnuTransaksi.Enabled = True

MDIForm1.mnuLaporan.Enabled = False

MDIForm1.Show

Unload Me

End If

Else

MsgBox "Username dan Password Salah", vbCritical

Exit Sub

End If

End If

End Sub

Private Sub Form_Load()

koneksi

End Sub
85

Memu Utama

Private Sub fileBarangMasuk_Click()

frmbarangmasuk.Show

End Sub

Private Sub fileEdit_Click()

frmeditbrg.Show

End Sub

Private Sub fileEditInspector_Click()

frmeditinspector.Show

End Sub

Private Sub fileExit_Click()

End

End Sub

Private Sub fileHapus_Click()

frmhapusbrg.Show

End Sub

Private Sub fileLogin_Click()

frmdatalogin.Show
86

End Sub

Private Sub fileRequestCartridge_Click()

frmrequestbarang.Show

End Sub

Private Sub fileReturn_Click()

frmreturn.Show

End Sub

Private Sub fileTambah_Click()

frmtambahbrg.Show

End Sub

Private Sub fileTambahInspector_Click()

frmtambahinspector.Show

End Sub

Private Sub lap_masuk_Click()

frmlaporanbarangmasuk.Show

End Sub

Private Sub lap_request_Click()


87

frmlapbarangkeluarperhari.Show

End Sub

Private Sub lap_stok_Click()

frmlapstok.Show

End Sub

Private Sub lappemakaian_Click()

frmlappemakaian.Show

End Sub

Form Setting Data Pengguna

Public dataIndex As Integer

Public tmpUser As String

Public tmpPass As String

Private Sub cmdhapus_Click()

Dim tanya

tmpUser = txtusername.Text

tmpPass = txtpassword.Text

tanya = MsgBox("Hapus Data Pengguna ?", vbQuestion + vbYesNo)

If tanya = vbYes Then

Do Until rsLogin.EOF
88

If rsLogin!UserName = tmpUser And rsLogin!Password =

tmpPass Then

With rsLogin

.Delete

.UpdateBatch

End With

MsgBox "Data Terhapus", vbInformation

Kondisi Normal

Exit Do

End If

rsLogin.MoveNext

Loop

Else

Kondisi Normal

End If

cmdbaru.Enabled = True

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub cmdubah_Click()


89

cmdbaru.Enabled = False

cmdhapus.Enabled = False

Select Case cmdubah.Caption

Case "Ubah":

cmdubah.Caption = "Simpan"

cmbposisi.Locked = False

txtusername.Locked = False

txtpassword.Locked = False

txtpassword2.Locked = False

txtusername.SetFocus

tmpUser = txtusername.Text

tmpPass = txtpassword.Text

Case "Simpan":

cmdubah.Caption = "Ubah"

rsLogin.MoveFirst

Do Until rsLogin.EOF

If rsLogin!UserName = tmpUser And rsLogin!Password =

tmpPass Then

With rsLogin

!UserName = txtusername.Text

!Password = txtpassword.Text

!posisi = cmbposisi.Text

.Update
90

End With

MsgBox "Data Tersimpan", vbInformation

kondisiNormal

Exit Do

End If

rsLogin.MoveNext

Loop

End Select

End Sub

Private Sub cmdfirst_Click()

If Not rsLogin.EOF Then

rsLogin.MoveFirst

txtusername.Text = rsLogin!UserName

txtpassword.Text = rsLogin!Password

cmbposisi.Text = rsLogin!posisi

dataIndex = 0

End If

End Sub

Private Sub cmdlast_Click()

If Not rsLogin.EOF Then

rsLogin.MoveLast

txtusername.Text = rsLogin!UserName
91

txtpassword.Text = rsLogin!Password

cmbposisi.Text = rsLogin!posisi

dataIndex = rsLogin.RecordCount - 1

End If

End Sub

Private Sub cmdbaru_Click()

Dim statuspass As Boolean

cmdubah.Enabled = False

cmdhapus.Enabled = False

statuspass = False

Select Case cmdbaru.Caption

Case "Baru":

cmbposisi.ListIndex = 0

txtusername.Text = ""

txtpassword.Text = ""

txtpassword2.Text = ""

cmbposisi.Locked = False

txtusername.Locked = False

txtpassword.Locked = False

txtpassword2.Locked = False

txtusername.SetFocus

cmdbaru.Caption = "Simpan"
92

Case "Simpan":

If txtpassword.Text <> txtpassword2.Text Then

MsgBox "Penulisan kembali Password Salah", vbInformation

txtpassword.SetFocus

Else

'cek apa username sudah terdaftar

rsLogin.MoveFirst

Do Until rsLogin.EOF

If rsLogin!UserName = txtusername.Text Then

statuspass = True

Else

statuspass = False

End If

rsLogin.MoveNext

Loop

If statuspass = False Then

With rsLogin

.AddNew

!UserName = txtusername.Text

!Password = txtpassword.Text

!posisi = cmbposisi.Text

.Update

End With
93

MsgBox "Data Tersimpan", vbInformation

kondisiNormal

Else

MsgBox "Data dengan Username tersebut sudah ada",

vbInformation

kondisiNormal

End If

End If

End Select

End Sub

Private Sub cmdnext_Click()

On Error GoTo pesan

If Not rsLogin.EOF And dataIndex < rsLogin.RecordCount - 1 Then

rsLogin.MoveNext

txtusername.Text = rsLogin!UserName

txtpassword.Text = rsLogin!Password

cmbposisi.Text = rsLogin!posisi

dataIndex = dataIndex + 1

End If

Exit Sub

pesan: cmdlast_Click

End Sub
94

Private Sub cmdprev_Click()

On Error GoTo pesan

If Not rsLogin.EOF And dataIndex > 0 Then

rsLogin.MovePrevious

txtusername.Text = rsLogin!UserName

txtpassword.Text = rsLogin!Password

cmbposisi.Text = rsLogin!posisi

dataIndex = dataIndex - 1

End If

Exit Sub

pesan: cmdfirst_Click

End Sub

Private Sub Form_Load()

koneksi

kondisiNormal

End Sub

Sub refreshData()

Set rsLogin = New ADODB.Recordset

rsLogin.LockType = adLockOptimistic

rsLogin.CursorType = adOpenDynamic
95

rsLogin.Open "SELECT * FROM data_login", conn, , , adCmdText

End Sub

Sub kondisiNormal()

cmbposisi.ListIndex = 0

txtusername.Text = ""

txtpassword.Text = ""

txtpassword2.Text = ""

cmbposisi.Locked = True

txtusername.Locked = True

txtpassword.Locked = True

txtpassword2.Locked = True

cmdbaru.Enabled = True

cmdubah.Enabled = True

cmdhapus.Enabled = True

refreshData

End Sub

Private Sub txtpassword_KeyPress(KeyAscii As Integer)

If txtpassword.SelStart >= 6 Then

MsgBox ("Max password 6 Karakter!")

End If

End Sub
96

Form Tambah Data Cartridge

Sub refreshDG()

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang", conn, , ,

adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Sub clearTxt()

txtkodebarang.SetFocus

txtkodebarang.Text = ""

txtnamabarang.Text = ""

cmbjenis.Locked = False

txtstok.Text = ""

txtlimitstok.Text = ""

End Sub

Private Sub cmdkeluar_Click()

Unload Me
97

End Sub

Private Sub cmdsimpan_Click()

On Error GoTo pesan

Dim tanya

tanya = MsgBox("Apakah Data Barang Telah Diisi Lengkap?", vbQuestion +

vbYesNo)

If tanya = vbYes Then

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE kode_barang =

'" & txtkodebarang.Text & "'", conn, , , adCmdText

If rsBarang.EOF Then

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang", conn, , ,

adCmdText

With rsBarang

.AddNew

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text
98

!jenis_cartridge = cmbjenis.Text

!stok = txtstok.Text

!limit_stok = Val(txtlimitstok.Text)

.Update

End With

MsgBox "Data Barang Tersimpan", vbInformation

refreshDG

clearTxt

Else

MsgBox "Barang dengan kode " & txtkodebarang.Text & " telah

terdaftar." & vbCrLf & _"Mohon Ganti Kode Barang...", vbInformation

txtkodebarang.SetFocus

Exit Sub

End If

Else

clearTxt

Exit Sub

End If

Exit Sub

pesan: MsgBox "Pengisian Data Belum Lengkap", vbInformation

clearTxt

Exit Sub

End Sub
99

Private Sub Form_Load()

koneksi

refreshDG

End Sub

Private Sub txtlimitstok_KeyPress(KeyAscii As Integer)

If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii

= vbKeyBack) Then

KeyAscii = 0

End If

End Sub

Form Edit Data Cartridge

Public tmpKodeBarang As String

Sub clearTxt()

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtlimitstok.Text = ""

txtcari.Text = ""

End Sub

Sub kondisiNormal()
100

cmbcari.ListIndex = 0

tmpKodeBarang = ""

clearTxt

refreshDG

End Sub

Sub refreshDG()

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang", conn, , ,

adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Private Sub cmbcari_KeyPress(KeyAscii As Integer)

KeyAscii = 0

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub
101

Private Sub cmdsimpan_Click()

On Error GoTo pesan

Dim tanya

tanya = MsgBox("Apakah Data Barang Telah Diisi Lengkap?", vbQuestion +

vbYesNo)

If tanya = vbYes Then

'cek apakah kode ubahan sudah terdaftar (jika kode diubah)

If txtkodebarang.Text <> tmpKodeBarang Then

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE kode_barang =

'" & txtkodebarang.Text & "'", conn, , , adCmdText

If rsBarang.EOF Then

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE

kode_barang = '" & tmpKodeBarang & "'", conn, , , adCmdText

With rsBarang

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text

!jenis_cartridge = cmbjenis.Text
102

!limit_stok = Val(txtlimitstok.Text)

.Update

End With

MsgBox "Data Barang Tersimpan", vbInformation

kondisiNormal

txtcari.SetFocus

Else

MsgBox "Barang dengan kode " & txtkodebarang.Text & " telah

terdaftar." & vbCrLf & _ "Mohon Ganti Kode Barang...", vbInformation

txtkodebarang.SetFocus

Exit Sub

End If

Else 'jika kode barang tidak diubah

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE

kode_barang = '" & tmpKodeBarang & "'", conn, , , adCmdText

With rsBarang

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text

!jenis_cartridge = cmbjenis.Text

!limit_stok = Val(txtlimitstok.Text)
103

.Update

End With

MsgBox "Data Barang Tersimpan", vbInformation

kondisiNormal

txtcari.SetFocus

End If

Else

kondisiNormal

Exit Sub

End If

Exit Sub

pesan: MsgBox "Pengisian Data Belum Lengkap", vbInformation

kondisiNormal

txtcari.SetFocus

Exit Sub

End Sub

Private Sub DGbarang_DblClick()

On Error GoTo pesan

tmpKodeBarang = dgbarang.Columns(0).Text

txtkodebarang.Text = dgbarang.Columns(0).Text

txtnamabarang.Text = dgbarang.Columns(1).Text

cmbjenis.Text = dgbarang.Columns(2).Text
104

txtlimitstok.Text = dgbarang.Columns(4).Text

Exit Sub

pesan:

kondisiNormal

Exit Sub

End Sub

Private Sub Form_Load()

koneksi

kondisiNormal

txtkodebarang.MaxLength = 9

End Sub

Private Sub txtCari_Change()

Dim kriteria As String

kriteria = ""

Select Case cmbcari.Text

Case "Kode Barang": kriteria = "kode_barang"

Case "Nama Barang": kriteria = "nama_barang"

End Select

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic
105

rsBarang.Open "SELECT * FROM data_barang WHERE " &

kriteria & " like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Private Sub txtlimitstok_KeyPress(KeyAscii As Integer)

If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii

= vbKeyBack) Then

KeyAscii = 0

End If

End Sub

Form Hapus Data Cartridge

Public tmpKodeBarang As String

Sub clearTxt()

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtlimitstok.Text = ""

txtcari.Text = ""

End Sub

Sub kondisiNormal()

cmbcari.ListIndex = 0
106

tmpKodeBarang = ""

clearTxt

refreshDG

End Sub

Sub refreshDG()

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang", conn, , ,

adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Private Sub cmbcari_KeyPress(KeyAscii As Integer)

KeyAscii = 0

End Sub

Private Sub cmdhapus_Click()

Dim tanya

tanya = MsgBox("Hapus Barang dengan Kode " & tmpKodeBarang & " ?",

vbQuestion + vbYesNo)

If tanya = vbYes Then


107

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE

kode_barang = '" & tmpKodeBarang & "'", conn, , , adCmdText

rsBarang.Delete

rsBarang.UpdateBatch

kondisiNormal

txtcari.SetFocus

Else

kondisiNormal

txtcari.SetFocus

Exit Sub

End If

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub DGbarang_DblClick()

On Error GoTo pesan

tmpKodeBarang = dgbarang.Columns(0).Text
108

txtkodebarang.Text = dgbarang.Columns(0).Text

txtnamabarang.Text = dgbarang.Columns(1).Text

txtjenis.Text = dgbarang.Columns(2).Text

txtlimitstok.Text = dgbarang.Columns(4).Text

Exit Sub

pesan:

kondisiNormal

Exit Sub

End Sub

Private Sub Form_Load()

koneksi

kondisiNormal

End Sub

Private Sub txtCari_Change()

Dim kriteria As String

kriteria = ""

Select Case cmbcari.Text

Case "Kode Barang": kriteria = "kode_barang"

Case "Nama Barang": kriteria = "nama_barang"

End Select

Set rsBarang = New ADODB.Recordset


109

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE " &

kriteria & " like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Private Sub txtlimitstok_KeyPress(KeyAscii As Integer)

If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii

= vbKeyBack) Then

KeyAscii = 0

End If

End Sub

Form Tambah Data Inspector

Sub refreshDG()

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector", conn, , ,

adCmdText

Set dginspector.DataSource = rsInspector

End Sub
110

Sub clearTxt()

txtnik.Text = ""

txtnamainspector.Text = ""

cmbstatus.Locked = False

txtnik.SetFocus

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub cmdsimpan_Click()

On Error GoTo pesan

Dim tanya

tanya = MsgBox("Apakah Data Inspector Telah Diisi Lengkap?", vbQuestion

+ vbYesNo)

If tanya = vbYes Then

'cek apakah nik inspector sudah terdaftar

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic
111

rsInspector.Open "SELECT * FROM data_inspector WHERE nik = '" &

txtnik.Text & "'", conn, , , adCmdText

If rsInspector.EOF Then

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector", conn, , ,

adCmdText

With rsInspector

.AddNew

!nik = txtnik.Text

!nama_inspector = txtnamainspector.Text

!Status = cmbstatus.Text

.Update

End With

MsgBox "Data inspector Tersimpan", vbInformation

refreshDG

clearTxt

Else

MsgBox "inspector dengan NIK " & txtnik.Text & " telah terdaftar."

& vbCrLf & _

"Mohon Ganti NIK inspector..!", vbInformation

txtnik.SetFocus
112

Exit Sub

End If

Else

clearTxt

Exit Sub

End If

Exit Sub

pesan: MsgBox "Pengisian Data Belum Lengkap", vbInformation

clearTxt

Exit Sub

End Sub

Private Sub Form_Load()

koneksi

refreshDG

End Sub

Form Edit Data Inspector

Public tmpNik As String

Sub clearTxt()

txtnik.Text = ""

txtnamainspector.Text = ""

txtcari.Text = ""
113

End Sub

Sub kondisiNormal()

tmpNik = ""

clearTxt

refreshDG

End Sub

Sub refreshDG()

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector", conn, , ,

adCmdText

Set dginspector.DataSource = rsInspector

End Sub

Private Sub cmdhapus_Click()

Dim tanya

tanya = MsgBox("Hapus Inspector dengan NIK " & tmpNik & " ?",

vbQuestion + vbYesNo)

If tanya = vbYes And txtnik.Text <> "" Then

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic
114

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik =

'" & tmpNik & "'", conn, , , adCmdText

rsInspector.Delete

rsInspector.UpdateBatch

kondisiNormal

txtcari.SetFocus

Else

kondisiNormal

txtcari.SetFocus

Exit Sub

End If

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub cmdsimpan_Click()

On Error GoTo pesan

Dim tanya

tanya = MsgBox("Apakah Data Inspector Telah Diisi Lengkap?", vbQuestion

+ vbYesNo)
115

If tanya = vbYes Then

'cek apakah nik ubahan sudah terdaftar (jika nik diubah)

If txtnik.Text <> tmpNik Then

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik = '" &

txtnik.Text & "'", conn, , , adCmdText

If rsInspector.EOF Then

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik =

'" & tmpNik & "'", conn, , , adCmdText

With rsInspector

!nik = txtnik.Text

!nama_inspector = txtnamainspector.Text

!Status = cmbkaryawan.Text

.Update

End With

MsgBox "Data Inspector Tersimpan", vbInformation

kondisiNormal

txtcari.SetFocus
116

Else

MsgBox "Inspector dengan NIK " & txtnik.Text & " telah terdaftar."

& vbCrLf & _

"Mohon Ganti NIK Inspector...!", vbInformation

txtnik.SetFocus

Exit Sub

End If

Else 'jika kode Inspector tidak diubah

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik =

'" & tmpNik & "'", conn, , , adCmdText

With rsInspector

!nik = txtnik.Text

!nama_inspector = txtnamainspector.Text

!Status = cmbkaryawan.Text

.Update

End With

MsgBox "Data Inspector Tersimpan", vbInformation

kondisiNormal

txtcari.SetFocus

End If
117

Else

kondisiNormal

Exit Sub

End If

Exit Sub

pesan: MsgBox "Pengisian Data Belum Lengkap", vbInformation

kondisiNormal

txtcari.SetFocus

Exit Sub

End Sub

Private Sub dginspector_DblClick()

On Error GoTo pesan

tmpNik = dginspector.Columns(0).Text

txtnik.Text = dginspector.Columns(0).Text

txtnamainspector.Text = dginspector.Columns(1).Text

cmbkaryawan.Text = dginspector.Columns(2).Text

Exit Sub

pesan:

kondisiNormal

Exit Sub

End Sub
118

Private Sub Form_Load()

koneksi

kondisiNormal

End Sub

Private Sub txtCari_Change()

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik

like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dginspector.DataSource = rsInspector

End Sub

Form Input Cartridge Masuk

Public tmpkode As String

Sub loadBarang()

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang where val(stok)<

val(limit_stok)", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang


119

End Sub

Sub kondisiNormal()

loadBarang

tglmasuk.Value = Date

tmpkode = ""

txtkodetransfer.Text = ""

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtcari.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

End Sub

Sub refreshDGSementara()

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara", conn, , , adCmdText

If Not rsBarang_masuk.EOF Then

rsBarang_masuk.MoveFirst

Do Until rsBarang_masuk.EOF
120

rsBarang_masuk.MoveNext

Loop

Set dgmasuksementara.DataSource = rsBarang_masuk

Else

Set dgmasuksementara.DataSource = rsBarang_masuk

End If

End Sub

Private Sub cmd_keluar_Click()

Unload Me

End Sub

Private Sub cmdtambah_Click()

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara where kode_barang = '" & txtkodebarang.Text &

"'", conn, , , adCmdText

If rsBarang_masuk.EOF Then

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic
121

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara", conn, , , adCmdText

With rsBarang_masuk

.AddNew

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text

!jenis_cartridge = txtjenis.Text

!jumlah = txtjumlah.Text

.Update

End With

Else

With rsBarang_masuk

.Update

End With

End If

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

refreshDGSementara

End Sub
122

Sub hapusDGSementara()

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara", conn, , , adCmdText

If Not rsBarang_masuk.EOF Then

rsBarang_masuk.MoveFirst

Do Until rsBarang_masuk.EOF

rsBarang_masuk.Delete

rsBarang_masuk.UpdateBatch

rsBarang_masuk.MoveNext

Loop

refreshDGSementara

End If

End Sub

Private Sub cmdbatal_Click()

Dim tanya

tanya = MsgBox("Batalkan Input Barang Masuk?", vbQuestion + vbYesNo)

If tanya = vbYes Then

hapusDGSementara

kondisiNormal
123

Else

Exit Sub

End If

End Sub

Private Sub cmdsimpan_Click()

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara", conn, , , adCmdText

If Not rsBarang_masuk.EOF Then

rsBarang_masuk.MoveFirst

Do Until rsBarang_masuk.EOF

Set rsBarang_masuk2 = New ADODB.Recordset

rsBarang_masuk2.LockType = adLockOptimistic

rsBarang_masuk2.CursorType = adOpenDynamic

rsBarang_masuk2.Open "SELECT * FROM barang_masuk",

conn, , , adCmdText

With rsBarang_masuk2

.AddNew

!tanggal_masuk = tglmasuk.Value

!Shift = cmbshift.Text
124

!kode_transfer = txtkodetransfer.Text

!kode_barang = rsBarang_masuk!kode_barang

!nama_barang = rsBarang_masuk!nama_barang

!jenis_cartridge = rsBarang_masuk!jenis_cartridge

!jumlah = rsBarang_masuk!jumlah

.Update

End With

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang where

kode_barang = '" & rsBarang_masuk!kode_barang & "'", conn, , , adCmdText

With rsBarang

!stok = Val(rsBarang!stok) + Val(rsBarang_masuk!jumlah)

.Update

End With

rsBarang_masuk.MoveNext

Loop

MsgBox "Data Barang Masuk Tersimpan", vbInformation

kondisiNormal

hapusDGSementara

End If

End Sub
125

Private Sub cmdhapus_Click()

Set rsBarang_masuk = New ADODB.Recordset

rsBarang_masuk.LockType = adLockOptimistic

rsBarang_masuk.CursorType = adOpenDynamic

rsBarang_masuk.Open "SELECT * FROM

barang_masuk_sementara where kode_barang = '" & tmpkode & "'", conn, , ,

adCmdText

If rsBarang_masuk.EOF Then

MsgBox "Barang tersebut tidak ada", vbInformation

Exit Sub

Else

rsBarang_masuk.Delete

rsBarang_masuk.UpdateBatch

refreshDGSementara

End If

End Sub

Private Sub DGbarang_DblClick()

txtkodebarang.Text = dgbarang.Columns(0).Text

txtnamabarang.Text = dgbarang.Columns(1).Text

txtjenis.Text = dgbarang.Columns(2).Text

txtjumlah.SetFocus
126

End Sub

Private Sub DGmasuksementara_Click()

tmpkode = dgmasuksementara.Columns(0).Text

End Sub

Private Sub Form_Load()

koneksi

loadBarang

tglmasuk.Value = Date

End Sub

Private Sub txtCari_Change()

Dim kriteria As String

kriteria = ""

Select Case cmbcari.Text

Case "Kode Barang": kriteria = "kode_barang"

Case "Nama Barang": kriteria = "nama_barang"

End Select

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic
127

rsBarang.Open "SELECT * FROM data_barang WHERE " &

kriteria & " like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Private Sub txtjumlah_KeyPress(KeyAscii As Integer)

If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii

= vbKeyBack) Then

KeyAscii = 0

End If

End Sub

Form Input Request Cartridge

Public tmpkode As String

Sub loadBarang()

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE val(stok) >

0", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Sub kondisiNormal()
128

loadBarang

tglkeluar.Value = Date

tmpkode = ""

txtkoderequest.Text = ""

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

txtnik.Text = ""

txtnamainspector.Text = ""

cmbmodel.Text = ""

txtcari.Text = ""

End Sub

Sub refreshDGSementara()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF
129

rsRequest.MoveNext

Loop

Set dgrequestsementara.DataSource = rsRequest

Else

Set dgrequestsementara.DataSource = rsRequest

End If

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub cmdtambah_Click()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara where

kode_barang = '" & txtkodebarang.Text & "'", conn, , , adCmdText

If rsRequest.EOF Then

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic
130

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

With rsRequest

.AddNew

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text

!jenis_cartridge = txtjenis.Text

!jumlah = txtjumlah.Text

!return = 0

!total = txtjumlah.Text

.Update

End With

Else

With rsRequest

.Update

End With

End If

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

refreshDGSementara

End Sub
131

Sub hapusDGSementara()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF

rsRequest.Delete

rsRequest.UpdateBatch

rsRequest.MoveNext

Loop

refreshDGSementara

End If

End Sub

Private Sub cmdbatal_Click()

Dim tanya

tanya = MsgBox("Batalkan Input Request Cartridge?", vbQuestion +

vbYesNo)

If tanya = vbYes Then


132

hapusDGSementara

kondisiNormal

Else

Exit Sub

End If

End Sub

Private Sub cmdsimpan_Click()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF

Set rsRequest2 = New ADODB.Recordset

rsRequest2.LockType = adLockOptimistic

rsRequest2.CursorType = adOpenDynamic

rsRequest2.Open "SELECT * FROM barang_keluar", conn, , ,

adCmdText

With rsRequest2

.AddNew
133

!tanggal_keluar = tglkeluar.Value

!Shift = cmbshift.Text

!kode_request = txtkoderequest.Text

!nama_inspector = txtnamainspector.Text

!model_printer = cmbmodel.Text

!kode_barang = rsRequest!kode_barang

!nama_barang = rsRequest!nama_barang

!jenis_cartridge = rsRequest!jenis_cartridge

!jumlah = rsRequest!jumlah

!return = 0

!total = rsRequest!jumlah

.Update

End With

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang where

kode_barang = '" & rsRequest!kode_barang & "'", conn, , , adCmdText

With rsBarang

!stok = Val(rsBarang!stok) - Val(rsRequest!jumlah)

.Update

End With

rsRequest.MoveNext
134

Loop

MsgBox "Data Request Cartridge Tersimpan", vbInformation

kondisiNormal

hapusDGSementara

End If

End Sub

Private Sub cmdhapus_Click()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara where

kode_barang = '" & tmpkode & "'", conn, , , adCmdText

If rsRequest.EOF Then

MsgBox "Barang tersebut tidak ada", vbInformation

Exit Sub

Else

rsRequest.Delete

rsRequest.UpdateBatch

refreshDGSementara

End If

End Sub
135

Private Sub DGbarang_DblClick()

txtkodebarang.Text = dgbarang.Columns(0).Text

txtnamabarang.Text = dgbarang.Columns(1).Text

txtjenis.Text = dgbarang.Columns(2).Text

txtjumlah.SetFocus

End Sub

Private Sub DGrequestsementara_Click()

tmpkode = dgrequestsementara.Columns(0).Text

End Sub

Private Sub Form_Load()

koneksi

loadBarang

tglkeluar.Value = Date

End Sub

Private Sub txtjumlah_KeyPress(KeyAscii As Integer)

If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii

= vbKeyBack) Then

KeyAscii = 0

End If

End Sub
136

Private Sub txtnik_Change()

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector WHERE nik

like '" & txtnik.Text & "%'", conn, , , adCmdText

If rsInspector.EOF Then

Set rsInspector = New ADODB.Recordset

rsInspector.LockType = adLockOptimistic

rsInspector.CursorType = adOpenDynamic

rsInspector.Open "SELECT * FROM data_inspector", conn, , ,

adCmdText

MsgBox ("Inspector tidak terdaftar!")

txtnik.SetFocus

Else

txtnamainspector.Text = rsInspector!nama_inspector

End If

End Sub

Private Sub txtCari_Change()

Dim kriteria As String

kriteria = ""
137

Select Case cmbcari.Text

Case "Kode Barang": kriteria = "kode_barang"

Case "Nama Barang": kriteria = "nama_barang"

End Select

Set rsBarang = New ADODB.Recordset

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang WHERE " &

kriteria & " like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dgbarang.DataSource = rsBarang

End Sub

Form Input Return Cartridge

Public tmpkode As String

Sub clearTxt()

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

txtreturn.Text = ""

txttotal.Text = ""

txtcari.Text = ""

End Sub
138

Sub kondisiNormal()

tmpkode = ""

clearTxt

refreshDG

txtkodebarang.Locked = True

txtnamabarang.Locked = True

txtjenis.Locked = True

txtjumlah.Locked = True

txttotal.Locked = True

End Sub

Sub refreshDG()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar", conn, , ,

adCmdText

Set dgrequest.DataSource = rsRequest

End Sub

Private Sub cmdbatal_Click()

Dim tanya
139

tanya = MsgBox("Batalkan Input Return Cartridge?", vbQuestion +

vbYesNo)

If tanya = vbYes Then

hapusDGSementara

kondisiNormal

Else

Exit Sub

End If

End Sub

Private Sub cmdkeluar_Click()

Unload Me

End Sub

Private Sub txtCari_Change()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar WHERE

kode_request like '" & txtcari.Text & "%'", conn, , , adCmdText

Set dgrequest.DataSource = rsRequest

End Sub
140

Private Sub dgrequest_DblClick()

On Error GoTo pesan

tmpkode = dgrequest.Columns(2).Text

txtkodebarang.Text = dgrequest.Columns(5).Text

txtnamabarang.Text = dgrequest.Columns(6).Text

txtjenis.Text = dgrequest.Columns(7).Text

txtjumlah.Text = dgrequest.Columns(8).Text

txtreturn.Text = dgrequest.Columns(9).Text

txtreturn.SetFocus

Exit Sub

pesan:

kondisiNormal

Exit Sub

End Sub

Private Sub Form_Load()

koneksi

kondisiNormal

End Sub

Private Sub txtreturn_Change()

txttotal.Text = Val(txtjumlah.Text) - Val(txtreturn.Text)

End Sub
141

Sub refreshDGSementara()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF

rsRequest.MoveNext

Loop

Set dgsementara.DataSource = rsRequest

Else

Set dgsementara.DataSource = rsRequest

End If

End Sub

Private Sub cmdtambah_Click()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic
142

rsRequest.Open "SELECT * FROM barang_keluar_sementara where

kode_barang = '" & txtkodebarang.Text & "'", conn, , , adCmdText

If rsRequest.EOF Then

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

With rsRequest

.AddNew

!kode_barang = txtkodebarang.Text

!nama_barang = txtnamabarang.Text

!jenis_cartridge = txtjenis.Text

!jumlah = txtjumlah.Text

!return = txtreturn.Text

!total = txttotal.Text

.Update

End With

Else

With rsRequest

.Update

End With

End If
143

txtkodebarang.Text = ""

txtnamabarang.Text = ""

txtjenis.Text = ""

txtjumlah.Text = ""

txtreturn.Text = ""

txttotal.Text = ""

refreshDGSementara

End Sub

Sub hapusDGSementara()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF

rsRequest.Delete

rsRequest.UpdateBatch

rsRequest.MoveNext

Loop

refreshDGSementara
144

End If

End Sub

Private Sub cmdsimpan_Click()

Set rsRequest = New ADODB.Recordset

rsRequest.LockType = adLockOptimistic

rsRequest.CursorType = adOpenDynamic

rsRequest.Open "SELECT * FROM barang_keluar_sementara",

conn, , , adCmdText

If Not rsRequest.EOF Then

rsRequest.MoveFirst

Do Until rsRequest.EOF

Set rsRequest2 = New ADODB.Recordset

rsRequest2.LockType = adLockOptimistic

rsRequest2.CursorType = adOpenDynamic

rsRequest2.Open "SELECT * FROM barang_keluar where

kode_barang = '" & rsRequest!kode_barang & "'", conn, , , adCmdText

With rsRequest2

!return = Val(rsRequest!return)

!total = Val(rsRequest!total)

.Update

End With

Set rsBarang = New ADODB.Recordset


145

rsBarang.LockType = adLockOptimistic

rsBarang.CursorType = adOpenDynamic

rsBarang.Open "SELECT * FROM data_barang where

kode_barang = '" & rsRequest!kode_barang & "'", conn, , , adCmdText

With rsBarang

!stok = Val(rsBarang!stok) + Val(rsRequest!return)

.Update

End With

rsRequest.MoveNext

Loop

MsgBox "Data Return Cartridge Tersimpan", vbInformation

kondisiNormal

hapusDGSementara

End If

End Sub

Form Laporan Cartridge Masuk

Private Sub cmd_cetak_Click()

cr.Formulas(0) = "Bulan = '" & cmbbln.Text & " " & cmbthn.Text & "'"

cr.SelectionFormula = "(month({barang_masuk.tanggal_masuk})= " &

cmbbln.ListIndex + 1 & ")and (year({barang_masuk.tanggal_masuk}) = " &

cmbthn.Text & ")"

cr.Action = 1
146

End Sub

Private Sub cmd_keluar_Click()

Unload Me

End Sub

Private Sub Form_Load()

For i = 1 To 12

Me.cmbbln.AddItem Bulan(i)

Next i

Me.cmbbln.ListIndex = Month(Date)

Me.cmbthn.AddItem Year(Date) - 1

Me.cmbthn.AddItem Year(Date)

Me.cmbthn.ListIndex = 1

End Sub

Form Laporan Request Cartridge

Private Sub cmdbatal_Click()

Unload Me

End Sub

Private Sub cmdcetak_Click()

Dim Tgl As String

On Error Resume Next


147

If IsDate(txttanggal) Then

Tgl = "date(" & Year(txttanggal.Text) & "," & Month(txttanggal.Text) &

"," & Day(txttanggal.Text) & ")"

cr.Formulas(0) = "tanggal = '" & txttanggal.Text & "'"

cr.SelectionFormula = "({barang_keluar.tanggal_keluar} = " & Tgl & ")"

cr.Action = 1

Else

MsgBox "Penulisan Tanggal salah !!!", vbInformation, "Consumable"

txttanggal.SetFocus

End If

End Sub

Private Sub Form_Load()

Me.Width = 3750

Me.Height = 2325

Me.Top = 250

Me.Left = 3500

txttanggal.Text = Format(Date, "dd/mm/yyyy")

End Sub

Private Sub txttanggal_GotFocus()

txttanggal.SelStart = 0

txttanggal.SelLength = 10
148

End Sub

Private Sub txttanggal_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then cmdcetak.SetFocus

End Sub

Form Laporan Stok Cartridge

Private Sub cmdbatal_Click()

Unload Me

End Sub

Private Sub cmdok_Click()

cr.Action = 1

End Sub

Form Laporan Pemakaian Cartridge Harian

Private Sub cmdbatal_Click()

Unload Me

End Sub

Private Sub cmdcetak_Click()

Dim Tgl As String

On Error Resume Next


149

If IsDate(txttanggal) Then

Tgl = "date(" & Year(txttanggal.Text) & "," & Month(txttanggal.Text) &

"," & Day(txttanggal.Text) & ")"

cr.Formulas(0) = "tanggal = '" & txttanggal.Text & "'"

cr.SelectionFormula = "({barang_keluar.tanggal_keluar} = " & Tgl & ")"

cr.Action = 1

Else

MsgBox "Penulisan Tanggal salah !!!", vbInformation, "Consumable"

txttanggal.SetFocus

End If

End Sub

Private Sub Form_Load()

Me.Width = 3750

Me.Height = 2325

Me.Top = 250

Me.Left = 3500

txttanggal.Text = Format(Date, "dd/mm/yyyy")

End Sub

Private Sub txttanggal_GotFocus()

txttanggal.SelStart = 0

txttanggal.SelLength = 10

End Sub
BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan uraian bab 1 sampai bab 4 pada program aplikasi

persediaan cartridge pada PT. Indonesia Epson Industry dapat disimpulkan

bahwa proses keluar masuknya cartridge pada consumable OQC masih

dilakukan secara manual dalam pengolahan datanya, sehingga menimbulkan

adanya kemungkinan kesalahan dan keterlambatan dalam hal pengolahan data

cartridge dan pembuatan laporan stok cartridge yang bisa mengganggu

kelancaran proses inspeksi.

Dengan perkembangan teknologi yang sangat cepat penggunaan

komputer di dalam berbagai aspek sangat diperlukan. Selain membantu

pemrosesan data yang cepat dan akurat, dengan komputer segalanya menjadi

lebih mudah dibandingkan dengan operasi manual. Dari pembuatan program

aplikasi ini penulis mendapat beberapa kesimpulan, yaitu sebagai berikut:

1. File-file data pemasukan dan pemakaian cartridge lebih aman dan

terkontrol dengan baik.

2. Pembuatan laporan menjadi lebih mudah, cepat, dan akurat.

3. Stok cartridge yang ada dapat terkontrol dengan baik.

4. Dengan adanya program ini proses masuk dan keluarnya cartridge menjadi

lebih mudah dan efisien.

150
151

5.2 Saran

Setelah mengamati proses yang berjalan pada consumable OQC PT.

Indonesia Epson Industry, penulis ingin sedikit memberikan saran yang

diharapkan dapat mempermudah proses keluar masuknya cartridge atau pun

proses pengolahan data lainnya.

1. Penulis harapkan untuk disediakan satu unit komputer berikut dengan

program aplikasinya dalam ruangan consumable untuk membantu kinerja

operator consumable.

2. Lebih meningkatkan lagi penggunaan aplikasi pengolahan data pada

komputer, agar data-data yang ada dapat diolah dengan baik.

3. Lebih meningkatkan kemampuan operator consumable agar dapat

mengoperasikan komputer dengan baik, sehingga penggunaan program

aplikasi dapat berjalan dengan maksimal.

4. Operator consumable harus lebih teliti dalam proses request yang

dilakukan oleh inspector, agar tidak terjadi kesalahan dalam menyediakan

cartridge yang dibutuhkan.


DAFTAR PUSTAKA

Jamaludin Malik, Jaja. 2007. Kumpulan Tip Trik Pemrograman Visual Basic.
Andi, Yogyakarta.

Kurniadi, Adi. 2000. Pemrograman Microsoft Visual Basic 6. Elex Media


Komputindo, Jakarta.

Madcoms. 2005. Mahir Dalam 7 Hari Pemrograman Visual Basic 6.0. Andi,
Yogyakarta.

Nugroho, Adi. 2005. Analisis dan Perancangan Sistem Informasi dengan


Metodologi Berorientasi Objek. Informatika, Bandung.

Ramadhan, Arief. 2004. Seri Penuntun Praktis Microsoft Visual Basic 6.0. Elex
Media Komputindo, Jakarta.

Razaq, Abdul. 2004. Kupas Tuntas Microsoft Office Access 2003. Indah,
Surabaya.

Sita, Kasusita. 2002. Basis Data. Informatika, Bandung.

SR, Soemarso. 2004. Akuntansi Suatu Pengantar. Salemba, Jakarta.

Sugiyono. 2005. Pemrograman Terstruktur. Panji Gumilang, Kuningan.

Yuswanto, 2001. Panduan Belajar SQL Microsoft Access 2002. Prestasi Pustaka,
Surabaya.

152

Anda mungkin juga menyukai