SISTEM INFORMASI GROSIR
BERBASIS
CLIENT- SERVER
Studi Kasus : Grosir “Wijaya” Indramayu
Tugas Akhir
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh :
Stephanus Kridho Budi Wibowo
NIM : 025314050
PROGRAM STUDI TEKNIK INORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
WHOLESALE INFORMATION SYSTEM
BASED ON CLIENT- SERVER
Case Study :
Grosir
“Wijaya” Indramayu
A Thesis
Presented as Partial Fulfillment of the Requirements
to Obtain the
Sarjana Teknik
Degree
in Informatic Engineering
by :
Stephanus Kridho Budi Wibowo
NIM : 025314050
DEPARTEMENT OF INFORMATIC ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
iv
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan
dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 08 Oktober 2007
Penulis
v
Junjungan saya Bunda Maria dan Putranya
Terkasih Tuhan Saya Yesus Kristus.
Bapak dan Ibu tercinta atas semangat,
doa dan dukungan secara moril dan
materil.
Saudaraku terkasih Leonardus Danu L.
Almamaterku Teknik Informatika,
vi
HALAMAN MOTTO
Jangan pernah takut menghadapi berbagai macam resiko dalam
mewujudkan sebuah impian. Tak pernah ada sebuah harapan dan
keinginan yang begitu mudah dicapai. Guru pengalaman selalu
memberikan ujian terlebih dahulu baru kemudian pemahaman.
Teruslah berusaha tapi jangan lupa untuk selalu mengasah
gergaji.
“Sejatine wong urip iku angger’e ora wedi urip rekoso”.
Siapapun yang menentang ketidak-adilan adalah temanku
(Che Guevara)
vii
pembelian, penjualan, kasir, inventori dan manajer. Pengelolaan data dan
informasi pada suatu grosir biasanya dikerjakan secara manual. Tanpa
penggunaan sistem informasi, maka pendataan transaksi jual beli dicatat dalam
buku. Kelemahan-kelemahan pada pendataan informasi yang dikerjakan secara
manual pada umumnya adalah : Membutuhkan waktu lebih lama dalam melayani
transaksi jual-beli karena harus dihitung secara manual atau dengan kalkulator.
Memerlukan waktu yang lebih lama untuk memantau dan mengetahui data jumlah
stok barang yang ada dan Kemungkinan adanya data-data yang hilang karena
tidak tercatat.
Teknologi yang digunakan adalah Java dan MySQL. Sistem ini
dikembangkan dengan menggunakan metodologi rekayasa perangkat lunak
terstruktur.
viii
ABSTRACT
Wholesale is a kind of business in buying and selling goods. In a
wholesale process involves the processing division, selling division, cashier,
inventory and manager. Data management and information in a wholesale is
usually done manually. Without the usage of information system, the record of
transaction is booked. The weakness of manual data collection are : it takes more
time in doing buying and selling transaction because it need to be counted
manually or with calculator. It takes more time to observe and to know the
inventory of goods and there’s a possibility of lost data because they are not
recorded.
The author uses Java and MySQL technology. This system is developed
using structurized software methodology.
ix
Puteranya Terkasih Tuhan Yesus, karena atas limpahan anugerah dan cobaan-nya
saya dapat menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini saya meyadari bahwa ada begitu
banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya
masing-masing sehingga tugas akhir ini dapat selesai tepat waktu dan lancar. Oleh
karena itu saya ingin mengucapkan terima kasih antara lain kepada :
1.
Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma sekaligus Dosen Pembimbing I,
yang telah memberikan bimbingan, dukungan, dan fasilitas yang
mendukung, sehingga saya dapat menyelesaikan tugas akhir ini dengan baik.
2.
Bapak Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc selaku Dekan
Fakultas Teknik Universitas Sanata Dharma.
3.
Bapak JB. Budi Darmawan, S.T., M.Sc dan Bapak St. Wisnu Wijaya, S.T.,
M.T. selaku panitia penguji yang telah memberikan banyak kritik dan saran
demi sempurnanya tugas akhir saya.
4.
Bapak dan Ibu tercinta. Terima kasih atas doa, semangat, dukungan dan
cintanya sehingga saya bisa menyelesaikan studi dengan lancar. Semoga
saya bisa membalas cinta kalian
x
6.
Anak-anak Kost wisma Rajawali Paingan II periode 2002-2007 dan
perserikatannya : Hari, Kristian, Andre, Deni, Wisnu “lepeg”, Yosep, Iman,
Billy, Sukur, Pak Wid, Daniel Martobu, Hira, Aris Wijaya, Ari Purwadi,
Andex, dan Alam. atas dukungan dan semangat serta rasa kesetiakawanan
yang kalian tunjukkan selama kita bersama. Terima kasih atas caci-maki dan
canda-tawa selama kita bersama. Maboes Bebak !
7.
Teman-teman Teknik Informatika angkatan 2002 khususnya Pristo, Andhika
dan Tjaya Budi, terima kasih atas bantuan ide dan pemikirannya. Terima
kasih juga kepada Pram, Ase, Mc.D, Nico, Kristi dan Kuncunx atas bantuan
sarana dan akomodasi. Buat teman-teman ku yang lain, Hasto, Albert, Widi,
Ika, Gwendy, Tere, Afu, Yohana, Dedik, Andik dan yang lainnya, Selamat
Berjuang !
8.
Teman-teman di kesebelasan ANILOP FC, baik pemain inti, cadangan
maupun suporter.
9.
Inspirasi dan penyemangat saya Oom Bob Marley, Kurt Cobain, James
Hetfield, dan Sid Vicious. Kreatif sampai mati !
10.
Melodi-melodi
blues
yang selalu setia menemani malam-malam kesendirian
saya ketika saya merasa sedih (maupun senang).
11.
Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas
akhir ini yang tidak bisa saya sebutkan satu per satu.
xi
Yogyakarta, 08 Oktober 2005
xii
DAFTAR ISI
JUDUL ...
HALAMAN PERSETUJUAN ...
HALAMAN PENGESAHAN ...
PERNYATAAN KEASLIAN KARYA ...
HALAMAN PERSEMBAHAN...
HALAMAN MOTTO...
INTISARI ...
ABSTRACT ...
KATA PENGANTAR ...
DAFTAR ISI ...
DAFTAR GAMBAR ...
DAFTAR TABEL ...
i
ii
iii
iv
v
vi
vii
viii
ix
xii
xv
xviii
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah ...
1.2
Rumusan Masalah ...
1.3
Batasan Masalah...
1.4
Tujuan Penulisan ...
1.5
Metodologi Pengembangan Sistem...
1.6
Sistematika Penulisan ...
xiii
2.3
Basisdata MySQL...
2.4
Arstektur Client-Server...
BAB III. ANALISA DAN PERANCANGAN SISTEM
3.1
Analisa Sistem ...
3.2
Analisa Pengguna Sistem…...
3.3
Gambaran Umum Sistem...
3.4
Pemodelan Use-Case ………...
3.5
Konteks Diagram….. ………...
3.6
Diagram Aliran Data ………...
3.6.1
Diagram Berjenjang...
3.6.2
DAD Level 0 (Top Level) ...
3.6.3
DAD Level 1 Proses 1...
3.6.4
DAD Level 1 Proses 2...
3.6.5
DAD Level 1 Proses 3...
3.6.6
DAD Level 1 Proses 4...
3.6.7
DAD Level 1 Proses 5...
3.6.8
DAD Level 1 Proses 6...
3.6.9
DAD Level 1 Proses 7...
3.6.10
DAD Level 1 Proses 8...
3.6.11
DAD Level 1 Proses 9...
xiv
3.6.12
DAD Level 1 Proses 10...
3.7
Perancangan Basidata………...
3.7.1
ER Diagram…………...
3.8
Desain Database………...
3.8.1
Desain Logikal………...
3.8.2
Desain Fisikal ………...
3.9
Desain Input-Output…..………...
BAB IV. IMPLEMENTASI SISTEM
4.1
Pembuatan Database...
4.2
Koneksi Database...
4.3
Pembuatan Antar Muka Pemakai (User Interface)...
BAB V. ANALISA HASIL IMPLEMENTASI
5.1
Kelebihan Dan Kekurangan Sistem...
5.1.1
Kelebihan Sistem…...
5.1.2
Kekurangan Sistem…...
BAB VI. KESIMPULAN DAN SARAN
6.1
Kesimpulan...
6.2
Saran...
DAFTAR PUSTAKA
25
25
25
26
26
26
28
36
37
39
39
97
97
97
97
98
98
98
99
xv
DAFTAR GAMBAR
Gambar
Keterangan
Halaman
2.1
Arsitektur Two Tier
12
2.2
Arsitektur Three Tier
13
3.1
Konigurasi Jaringan
17
3.2
Diagram Use-Case
18
3.3
Konteks Diagram
19
3.4
Diagram Berjenjang
20
3.5
DAD Level 0
21
3.6
DAD Level 1 Proses 1
22
3.7
DAD Level 1 Proses 2
22
3.8
DAD Level 1 Proses 3
22
3.9
DAD Level 1 Proses 4
23
3.10
DAD Level 1 Proses 5
23
3.11
DAD Level 1 Proses 6
23
3.12
DAD Level 1 Proses 7
24
3.13
DAD Level 1 Proses 8
24
3.14
DAD Level 1 Proses 9
24
3.15
DAD Level 1 Proses 20
25
3.16
Fully Attributd Data Model
25
3.17
Desain Logikal
26
3.18
Form Login
28
3.19
Form Manajer
29
xvi
xvi
3.21
Form Memasukkan Data Penjualan
30
3.22
Form Memasukkan Data Barang
30
3.23
Form Memasukkan Data Supplier
30
3.24
Form Menampilkan Data Barang
31
3.25
Form MenampilkanData Supplier
31
3.26
Form Mengubah Data Supplier
31
3.27
Form Pencarian Data Barang
32
3.28
Form Pencarian Data Supplier
32
3.29
Form Menampilkan Data Pembelian
32
3.30
Form Menampilkan Data Penjualan
33
3.31
Form Rancangan Nota Penjualan
33
3.32
Form Laporan Pembelian Barang
34
3.33
Form Laporan Penjualan Barang
34
3.34
Form Data Karyawan
35
3.35
Form Mengubah Harga Barang
35
4.1
Form Login
40
4.2
Form Manajer
44
4.3
Form Memasukkan Data Pembelian
47
4.4
Form Memasukkan Data Penjualan
50
4.5
Form Memasukkan Data Barang
53
4.6
Form Memasukkan Data Supplier
56
4.7
Form Menampilkan Data Barang
60
4.8
Form Menampilkan Data Supplier
64
xvii
4.10
Form Pencarian Data Barang
73
4.11
Form Pencarian Data Supplier
76
4.12
Form Laporan Data Pembelian Barang
81
4.13
Form Laporan Data Penjualan Barang
84
4.14
Form Data Karyawan
88
xviii
DAFTAR TABEL
Tabel 3.1 Tabel karyawan ...
26
Tabel 3.2 Tabel barang
...
27
Tabel 3.3 Tabel supplier...
27
Tabel 3.4 Tabel beli...
27
Tabel 3.5 Tabel jual...
27
Tabel 3.6 Tabel detil_beli ...
28
1
1.1
Latar Belakang Masalah
Grosir merupakan sebuah usaha yang bergerak dalam bidang jual beli
barang. Proses bisnis yang ada di dalam sebuah grosir melibatkan bagian
pembelian, penjualan, kasir, inventori dan manajer. Pengelolaan data dan
informasi pada suatu grosir biasanya dikerjakan secara manual. Tanpa
penggunaan sistem informasi, maka pendataan transaksi jual beli dicatat
dalam buku. Kelemahan-kelemahan pada pendataan informasi yang
dikerjakan secara manual pada umumnya adalah :
1.
Membutuhkan waktu lebih lama dalam melayani transaksi jual-beli
karena harus dihitung secara manual atau dengan kalkulator.
2.
Memerlukan waktu yang lebih lama untuk memantau dan mengetahui
data jumlah stok barang yang ada.
3.
Kemungkinan adanya data-data yang hilang karena tidak tercatat.
1.2
Rumusan Masalah
Dari latar belakang tersebut diatas, penulis tertarik untuk
mengembangkan sistem informasi untuk menangani proses pembelian dan
2
1.3
Batasan Masalah
1.
Proses bisnis dan data contoh yang diambil adalah data dari grosir
”Wijaya” yang beralamat di Blok Sukajadi, No. 30, RT 06/03,
Tukdana, Tukdana, Indramayu, Jawa Barat – 45272.
2.
Tidak membahas masalah keamanan jaringan komputer dan keamanan
sistem yang dibuat.
3.
Tidak menyertakan sistem informasi akuntansi.
4.
Hanya menangani masalah pembelian dan penjualan.
5.
Sistem ini tidak menangani order barang. Barang dagangan yang
dimiliki diasumsikan sudah dibeli.
6.
Tidak membahas masalah
transaction
management
dalam pengaksesan
basisdata.
7.
Tidak membuat dan mencetak laporan akuntansi yang sifatnya berkala
dan terjadwal. Hasil dari proses transaksi penjualan dan pembelian,
dan proses bisnis yang ada hanya ditampilkan dalam bentuk data-data
yang tidak berbentuk laporan. Data-data yang ada ada dapat dilihat
pada rentang waktu yang fleksibel dan bisa ditentukan sendiri.
8.
Sistem informasi yang dibuat menggunakan sistem basisdata terpusat
atau
centralized database
dengan arsitektur
client-server
menggunakan
model
two tier
.
9.
Sistem
informasi
ini
dibuat
dengan
menggunakan
bahasa
1.4
Tujuan Dan Manfaat Penelitian
Tujuan penelitian dalam tugas akhir ini adalah membuat sistem
informasi yang dapat diterapkan pada sebuah grosir dengan memakai
tahap-tahap rekayasa perangkat lunak terstruktur. Sedangkan manfaat penelitian
dalam tugas akhir ini adalah meningkatkan kinerja sistem dalam menangani
proses pembelian dan penjualan yang ada dalam sebuah grosir dengan
memanfaatkan teknologi informasi.
1.5
Metodologi Penelitian
Metodologi penelitian yang digunakan adalah studi kasus dengan
langkah-langkah sebagai berikut :
1.
Survei dan pengambilan data contoh
Melakukan survei ke Grosir ”Wijaya” Indramayu, mengambil
data contoh barang dagangan, dan melakukan wawancara dengan
karyawan maupun pemilik usaha grosir.
2.
Studi literatur
a.
Mempelajari tahapan rekayasa perangkat lunak terstruktur yaitu :
1.
Analisa kebutuhan sistem, pendefinisian dan pemodelan sistem
dalam bentuk
use case,
konteks diagram, dan diagram aliran
data.
2.
Pembuatan diagram relasi antar entitas (
ER diagram
),
perancangan tabel basisdata, pendefinisian modul-modul
4
3.
Pengujian atas hasil pengkodean dari rancangan yang dibuat.
b.
Mempelajari bahasa pemrograman dan basisdata yang akan
digunakan dalam membangun sistem.
3.
Pembuatan perangkat lunak dengan tahap-tahap :
a.
Analisa sistem
b.
Desain sistem
c.
Implementasi sistem
1.6
Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I
PENDAHULUAN
Menjelaskan tentang latar belakang masalah, batasan masalah, tujuan
dan manfaat penelitian, rumusan masalah, metodologi penelitian dan
sistematika penulisan tugas akhir.
BAB II
LANDASAN TEORI
Menjelaskan dasar teori yang digunakan dalam penulisan tugas akhir.
Dasar teori tersebut meliputi pembahasan tentang pengertian sistem, informasi
dan sistem informasi, pemrograman GUI dengan Java,
basisdata MySQL dan
arsitektur
client-server
.
BAB III ANALISA DAN PERANCANGAN SISTEM
Menjelaskan tentang rancangan sistem, rancangan proses, rancangan
BAB IV IMPLEMENTASI SISTEM
Menjelaskan tentang implementasi rancangan sistem ke dalam suatu
program atau pembahasan program.
BAB V
ANALISA HASIL
Menjelaskan tentang analisa dari hasil penelitian dan pembuatan
sistem yang telah dilakukan.
BAB VI KESIMPULAN DAN SARAN
Menjelaskan tentang kesimpulan yang diambil dari penulisan tugas
6
BAB II
LANDASAN TEORI
2.1
Sistem, Informasi, dan Sistem Informasi
a.
Sistem
Sistem adalah kumpulan dari elemen-elemen yang berinteraksi
untuk mencapai suatu tujuan tertentu. Definisi tersebut lebih dapat
diterima, karena pada kenyataannya suatu sistem terdiri dari beberapa
elemen atau subsistem. Elemen-elemen tersebut tidak dapat berdiri
sendiri-sendiri dalam suatu sistem tetapi harus saling berinteraksi dan
saling berhubungan untuk membentuk satu kesatuan sehingga tujuan
sistem dapat tercapai. Maka suatu sistem harus mempunyai tujuan tertentu
agar elemen masukan, elemen pengolah dan elemen keluaran dapat
ditentukan dengan tepat.
b.
Informasi
Informasi adalah data yang diolah menjadi bentuk yang lebih
berguna dan lebih berarti bagi yang menerimanya. Informasi sangat
penting dalam suatu organisasi. Suatu sistem yang kurang mendapatkan
informasi akan menjadi kecil dan akhirnya akan habis.
Informasi-informasi yang diperoleh dari suatu sistem dapat digunakan dalam
pengambilan sebuah keputusan serta dalam melakukan tindakan
selanjutnya, sehingga dibutuhkan informasi yang akurat, tepat pada
informasi harus memiliki nilai informasi yang dapat ditentukan oleh dua
hal yaitu manfaat dan biaya mendapatkannya. Suatu informasi dikatakan
bernilai jika manfaatnya lebih efektif dibandingkan dengan biaya untuk
mendapatkan informasi tersebut. Suatu informasi yang diperoleh mungkin
memiliki beberapa kegunaaan sehingga digunakan tidak hanya oleh satu
pihak saja di dalam suatu organisasi melainkan digunakan bersama-sama.
c.
Sistem Informasi
Definisi sistem informasi menurut Robert A. Leitch dan K. Roscoe
Davis dalam buku “Accounting Information Systems” (1993), adalah suatu
sistem di dalam suatu organisasi yang mempertemukan kebutuhan
pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan
kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu
dengan laporan-laporan yang diperlukan.
2.2
Java
Graphical User Interface
(Java GUI)
Java menyediakan API untuk membuat aplikasi berbasis grafis atau
yang lebih dikenal dengan
Graphical User Interface (GUI). Ada dua
package untuk membuat GUI yaitu AWT (Abstract Windowing Toolkit) dan
Swing.
AWT menyediakan beberapa fasilitas yang bisa digunakan untuk
8
1.
Pengaturan tata letak (layout management) komponen.
2.
Event handling, yaitu pendeteksian setiap
event dan penentuan
respon yang akan diberikan ketika pengguna menekan atau mengklik
komponen, untuk kemudian melakukan proses yang diinginkan.
3.
Manipulasi grafis komponen, meliputi teks, warna, ukuran, dan
lain-lain. AWT juga memiliki beberapa komponen untuk aplikasi GUI
yaitu
button,
canvas,
cheskbox,
choice,
label,
list,
scroolbar,
textfield, dan textarea. Setiap komponen ini memiliki fungsi dan cara
pembuatan yang berbeda-beda.
Swing memiliki komponen yang lebih banyak dibandingkan dengan
AWT, selain itu Swing juga memiliki fasilitas
Look and Feel yaitu
metal,
windows, dan CDE/motif. Dengan
Look and Feel, GUI akan terlihat lebih
menarik. Swing memiliki beberapa komponen untuk aplikasi GUI yaitu
button,
combo box, check box,
label, list,
scroolbar, textfield,
radio button,
option pane, slider, progress bar, tabel, menu, dan textarea.
Graphical User Interface merupakan salah satu fasilitas yang
disediakan untuk membuat user lebih nyaman dalam melakukan interaksi
dengan program.
Graphical User Interface (GUI) merupakan suatu teknik
atau mekanisme untuk berinteraksi dengan sebuah program. GUI dibangun
menggunakan suatu komponen GUI. Komponen GUI merupakan objek yang
dapat menerima masukan dari pengguna melalui mouse atau keyboard. Ada
Interface seperti
Component dan
Container.
Component dan
Container
merupakan dua item yang cukup penting dalam Graphical User Interface.
Component adalah
item yang dapat ditampilkan pada sebuah
graphcis screen seperti button (tombol), textfields, scrollbars dan drop-down
list.
Sedangkan Container adalah sebuah
item yang digunakan untuk
menampung beberapa set komponen sehingga menjadi suatu grup.
Container bisa diasumsikan sebagai wadah dan Component sebagai
barang-barang yang terdapat dalam wadah itu. Di dalam suatu
Container bisa
terdapat Container yang lain (Container dalam Container).
GUI Component yang biasa digunakan pada Java 2 sudah
distandarkan dalam package javax.swing. GUI Component ini sering dikenal
pula sebagai Swing GUI Component. Diagram
Inheritance dari Swing GUI
adalah class JComponent, yang terletak dalam package javax.swing yang
merupakan superclass dari beberapa component Swing GUI seperti JLabel
dan JButton. Komponen Swing merupakan bagian dari
Java Foundation
Class (JFC).
Setiap komponen GUI, seperti button (tombol), textfield dan lain-lain
biasa digunakan untuk keperluan input data maupun memproses data yang
di-input-kan. Dengan demikian, masing-masing komponen GUI perlu
memiliki kemampuan untuk mendengarkan (listen) terjadinya suatu
event
pada komponen tersebut dan kemudian kode yang bersesuaian perlu
10
a.
Event source
Komponen GUI di mana user berinteraksi.
b.
Event object
Object yang berisi informasi tentang event yang terjadi.
c.
Event listener
Object yang menerima (mendengarkan)
event object dan kemudian
menyiapkan respon yang bersesuaian.
2.3
Basisdata MySQL
MySQL adalah salah satu jenis server basisdata yang sangat terkenal,
disebabkan MySQL menggunakan SQL sebagai bahasa dasar untuk
mengakses basisdata. MySQL bersifat free atau gratis (tidak perlu membayar
dalam menggunakannya). MySQL dapat digunakan pada berbagai
platform
sistem operasi.
MySQL mempunyai kelebihan dapat diakses oleh banyak bahasa
pemrograman sebagai
“frontend”. MySQL merupakan
server basisdata yang
ideal untuk data segala ukuran dengan kemampuan mempunyai kecepatan
yang sangat tinggi dalam melakukan proses data,
multi-threaded,
multi user
dan query.
SQL (Structure Query Language) bukan merupakan suatu perangkat
lunak atau bahasa pemrograman. Namun, SQL adalah bahasa standar yang
digunakan untuk mengolah sebuah basisdata. Perintah SQL dikelompokkan
1.
DDL (Data Definition Language)
DDL merupakan perintah yang digunakan untuk membuat dan
mendefinisikan basisdata dan struktur tabelnya. Seperti CREATE
DATABASE, CREATE TABLE, DROP VIEW, DROP TABLE,
ALTER TABLE.
2.
DML (Data Manipulation Language)
DML adalah perintah yang digunakan untuk melakukan proses
manipulasi atau pengelolaan data yang ada dalam basisdata atau tabel.
Seperti INSERT, SELECT, UPDATE, dan DELETE.
3.
DCL (Data Control Language)
DCL adalah kelompok perintah yang digunakan untuk melakukan
otorisasi terhadap hak akses suatu data dan pengalokasian ruang.
Seperti REVOKE, GRANT, COMMIT, dan ROLLBACK.
2.4
Arsitektur
Client-Server
Dasar sederhana dari arsitektur
client-server adalah komputer yang
berbeda melakukan tugas yang berbeda dan setiap komputer dapat
dioptimalkan untuk tugas tertentu. Untuk dapat membentuk sebuah arsitektur
client-server
diperlukan file server, PC workstation, Network Interface Card
(NIC), media transmisi dan topologi jaringan.
DBMS diletakkan di dalam sebuah komputer yang disebut dengan
database server. Aplikasi yang berjalan pada komputer
client dapat
12
sama. Aplikasi
client tidak mengetahui bagaimana data disimpan dalam
server basisdata.
Terdapat dua macam model implementasi pada arsitektur client-server
yaitu model dua tingkat atau
two tier dan model tiga tingkat atau
three tier.
Model yang digunakan dalam pembuatan implementasi sistem informasi ini
adalah model dua tingkat. Pada arsitektur dua tingkat ini,
client berbicara
langsung kepada server basisdata. Setiap aplikasi yang terhubung ke database
dan mengambil informasi adalah
client-server. Database
server berperan
mengakses dan meng-update data, yang lainnya diserahkan kepada client.
Dalam hal ini
client bertanggung jawab menampilkan data kepada
user, mengirimkan input dari user dan mempersiapkan permintaan yang sesuai
untuk
server
basisdata. Arsitektur model
two tier ini memiliki kelemahan
yaitu apabila terjadi perubahan atau perbaikan aplikasi basisdata maka harus
dilakukan setting ulang dan instalasi di semua mesin client.
Untuk mengatasi kelemahan pada model two tier maka dikembangkan
arsitektur jaringan dengan model three tier. Pada model ini proses dipecah ke
dalam tiga lapisan yaitu :
1.
Lapisan
client yang merupakan tempat dimana program aplikasi
dijalankan.
2.
Lapisan bisnis/menengah yang bertanggung jawab terhadap proses,
prosedur dan fungsi yang dilakukan oleh aplikasi, memproses data dan
mengolah transaksi. Proses ini pada sistem
two tier terjadi pada sisi
client
namun pada model
three tier dipindahkan di lapisan
bisnis/menengah.
3.
Lapisan data tempat memproses data dan tempat sumber data berada.
Lapisan ini memberi layanan terhadap satu atau lebih permintaan data
dari lapisan bisnis/menengah.
14
BAB III
ANALISA DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas tentang analisa perangkat lunak yang dipakai
untuk menangani proses pembelian dan penjualan grosir. Pada tahap ini dilakukan
pendefinisian dan pemodelan sistem yang dibangun. Analisa dan perancangan
yang dilakukan meliputi rancangan sistem, rancangan proses, rancangan basisdata
dan rancangan antarmuka sistem.
3.1
Analisa Sistem
Sistem informasi yang dibangun adalah sistem informasi pembelian
dan penjualan pada sebuah grosir berbasis
client-server
. Perancangan sistem
ini dilakukan dengan metode rekayasa perangkat lunak terstruktur. Sistem
informasi yang dibuat digunakan untuk mengelola data pembelian, data
penjualan, data
supplier
, dan data barang pada sebuah grosir. Program yang
dibuat digunakan untuk menampilkan informasi-informasi yang datanya
disimpan dalam suatu basisdata.
Sistem informasi ini dibuat berdasarkan contoh kasus yang ada pada
grosir ”Wijaya” yang beralamat di Blok Sukajadi, No. 30, RT 06/03, Tukdana,
Tukdana, Indramayu, Jawa Barat – 45272. Barang dagangan yang
diperjual-belikan diantaranya adalah beras, tepung terigu, minyak goreng, gula pasir dan
dagangan dari
supplier
yang menjadi langganannya. Meskipun begitu tidak
tertutup kemungkinan mereka membeli barang dari
supplier-supplier
lainnya.
3.2
Analisa Pengguna Sistem
Proses bisnis yang ada pada grosir ”Wijaya” melibatkan bagian-bagian
sebagai berikut : bagian pembelian, bagian penjualan dan pemilik usaha.
Sistem yang dibuat berbasis
multi-user
, dimana terdapat sebuah komputer
pada ruangan tiap-tiap bagian yang terhubung ke
server
basisdata. Berikut ini
akan dijelaskan fungsionalitas dari tiap-tiap bagian.
1.
Bagian Pembelian
Bagian pembelian bertanggung jawab untuk mencatat data
pembelian atas barang dan melakukan pembayaran kepada pihak
supplier
. Bagian pembelian mengetahui tentang jumlah dan jenis
barang yang harus dibeli lewat informasi-informasi yang didapat dari
pemilik usaha. Hanya pemilik usaha saja yang memiliki wewenang
penuh untuk menentukan jumlah dan jenis barang yang harus dibeli.
Pada saat melakukan transaksi pembelian barang dari
supplier
,
karyawan bagian pembelian selalu meminta nota pembelian kepada
16
2.
Bagian Penjualan
Bagian penjualan bertanggung jawab untuk menangani
transaksi penjualan kepada
customer
. Termasuk di dalam bagian ini
adalah petugas kasir. Bagian penjualan bertugas untuk menyimpan
data penjualan barang kepada
customer
dan bertugas membuat nota
penjualan sebagai bukti transaksi penjualan.
3.
Pemilik Usaha
Pemilik usaha bertugas untuk mengatur jalannya proses
bisnis dari segi perencanaan, pengorganisasian, pelaksanaan maupun
pengendalian. Pemilik usaha juga-lah yang berhak menentukan harga
jual suatu barang dagangan. Dengan kata lain pemilik grosir ini
merangkap sebagai manajer pada grosir yang dimilikinya.
Pengendalian yang dilakukan oleh manajemen salah satunya adalah
dengan melihat data-data yang disimpan dari transaksi jual-beli yang
ada. Untuk selanjutnya, pemilik usaha ini akan disebut sebagai
manajer.
Pemilik usaha grosir tersebut memiliki kebijakan untuk
melakukan transaksi pembelian dan penjualan secara tunai.
Alasannya adalah jika ia melakukan transaksi penjualan dan
pembelian secara kredit, ia akan terlalu kesulitan dalam membuat
kebijakan untuk menentukan harga jual barang. Hal itu dikarenakan
barang yang diperjual-belikan pada grosir miliknya adalah
stabil. Dan menurutnya akan terlalu beresiko jika ia melakukan
transaksi secara kredit.
3.3
Gambaran Umum Sistem
Gbr. 3.1 Konfigurasi Jaringan
Sistem yang akan dibuat menggunakan tiga buah komputer dengan
konfigurasi jaringan seperti gambar diatas. Komputer-komputer yang ada
digunakan oleh manajer, operator bagian penjualan dan operator bagian
pembelian. Komputer
server
digunakan sebagai tempat penyimpanan
basisdata. Sedangkan komputer bagian penjualan dan bagian pembelian
merupakan komputer
client
yang mengakses basisdata.
3.4
Pemodelan
Use
Case
(
Use Case Modeling
)
Diagram
Use Case
merupakan pemodelan fungsi sistem dalam konteks
peristiwa bisnis, siapa yang mengawalinya dan bagaimana sistem itu
18
3.5
Konteks Diagram
Konteks
diagram merupakan sebuah gambaran model proses untuk
mendokumentasikan lingkup sistem.
Gbr. 3.3 Konteks Diagram
3.6
Diagram Aliran Data (DAD)
Diagram aliran data merupakan gambaran dari sistem yang
menekankan pada logika dari kebutuhan sistem, yaitu proses yang secara
20
3.6.1
Diagram Berjenjang
Diagram berjenjang merupakan gambaran dari
tingkatan-tingkatan proses yang ada di dalam sistem. Diagram berjenjang
merupakan awal garis besar penggambaran diagram aliran data yang
ada di dalam sistem.
Gbr. 3.4 Diagram Berjenjang
3.6.2
DAD
Level
0 (
Top Level
)
Diagram aliran data pada level 0 menggambarkan aliran data
yang terjadi pada proses ke 0 atau proses sistem secara keseluruhan.
Diagram ini merupakan gabungan dari aliran-aliran data dari sub-sub
22
3.6.3
DAD
Level
1 Proses 1
Gbr 3.6 DAD Level 1 Proses 1
3.6.4
DAD
Level
1 Proses 2
Gbr 3.7 DAD Level 1 Proses 2
3.6.5
DAD
Level
1 Proses 3
3.6.6
DAD
Level
1 Proses 4
Gbr 3.9 DAD Level 1 Proses 4
3.6.7
DAD
Level
1 Proses 5
Gbr 3.10 DAD Level 1 Proses 5
3.6.8
DAD
Level
1 Proses 6
24
3.6.9
DAD
Level
1 Proses 7
Gbr 3.12 DAD Level 1 Proses 7
3.6.10
DAD
Level
1 Proses 8
Gbr 3.13 DAD Level 1 Proses 8
3.6.11
DAD
Level
1 Proses 9
3.6.12
DAD
Level
1 Proses 10
Gbr. 3.15 DAD Level 1 Proses 10
3.7
Perancangan Basisdata
3.7.1
E-R Diagram (
Entity Relationship
Diagram)
26
3.8
Disain Database
3.8.1
Disain Logikal
Sistem ini menggunakan 5 tabel yaitu tabel karyawan, barang,
supplier, order_beli dan order_jual. Relasi antar tabel dalam disain database
dapat dilihat pada gambar berikut.
Gbr. 3.17 Gambar Disain Logikal
3.8.2
Disain Fisikal
Nama
Field
Tipe Data
Ukuran
Field
id_kary
varchar
5
nama
varchar
10
sandi
varchar
10
divisi
varchar
10
Nama
Field
Tipe Data
Ukuran
Field
id_brg
varchar
5
nama
varchar
100
nama_satuan
varchar
50
jml_satuan
double
hrg_satuan
double
Tabel 3.2 Tabel barang
Nama
Field
Tipe Data
Ukuran
Field
id_supl
varchar
5
nama
varchar
100
alamat
varchar
100
telp
varchar
15
kategori
varchar
10
Tabel 3.3 Tabel supplier
Nama
Field
Tipe Data
Ukuran
Field
id_beli
int
5
id_supl
varchar
5
no_nota_pembelian
varchar
5
no_urut_nota
int
5
tgl
date
Tabel 3.4 Tabel beli
Nama
Field
Tipe Data
Ukuran
Field
id_jual
int
5
no_nota
int
5
nama_cust
varchar
50
tgl
date
28
Nama
Field
Tipe Data
Ukuran
Field
id_beli
int
5
id_brg
varchar
5
jml_satuan
double
hrg_beli_per_satuan
double
Tabel 3.4 Tabel detil_beli
Nama
Field
Tipe Data
Ukuran
Field
id_jual
int
5
id_brg
varchar
5
jml_satuan
double
hrg_jual_per_satuan
double
Tabel 3.4 Tabel detil_jual
3.9
Desain
Input-Output
Desain
input-output
menggambarkan rancangan form yang digunakan
untuk memasukkan dan menampilkan data. Berikut ini merupakan desain
input-output dari sistem yang dibuat.
Gbr 3.19 Form Manajer
30
Gbr 3.21 Form Memasukkan Data Penjualan
Gbr 3.22 Form Memasukkan Data Barang
Gbr 3.24 Form Menampilkan Data Barang
Gbr 3.25 Form Menampilkan Data Supplier
32
Gbr 3.27 Form Pencarian Data Barang
Gbr 3.28 Form Pencarian Data Supplier
Gbr 3.30 Form Menampilkan Data Penjualan
34
Gbr 3.32 Form Laporan Pembelian Barang
Gbr 3.34 Form Data Karyawan
36
BAB IV
IMPLEMENTASI SISTEM
Sistem ini dibuat dan diuji coba dengan menggunakan spesifikasi
Software
dan
Hardware
sebagai berikut :
1.
Server
Perangkat keras meliputi :
-
Prosesor AMD Sempron 2800 64 Bit
-
Harddisk 80 Gigabyte
-
RAM 256 MB
-
LAN Card 100 Mbps
-
Printer Canon IP.1000
Perangkat lunak meliputi :
-
Microsoft Windows XP
-
Java j2sdk versi 1.4.2_04
-
Basisdata
MySQL 5.0.15
2.
Client
Perangkat Keras meliputi :
-
Prosesor Intel Celeron
-
Harddisk 20 Gigabyte
-
LAN Card 100 Mbps
-
Printer Canon IP.1000
Perangkat lunak meliputi :
-
Microsoft Windows XP
-
Java j2sdk versi 1.4.2_04
4.1
Pembuatan Database
Database
terdiri dari lima tabel. Adapun langkah pembuatan
database
Sistem Informasi Grosir adalah sebagai berikut :
1.
Tabel karyawan, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `karyawan` (
`id_kary` varchar(5) NOT NULL,
`nama` varchar(10) default NULL,
`sandi` varchar(10) default NULL,
`divisi` varchar(10) default NULL,
PRIMARY KEY (`id_kary`)
)
2.
Tabel barang, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `barang` (
`id_brg` varchar(5) NOT NULL,
`nama` varchar(100) default NULL,
`nama_satuan` varchar(50) default NULL,
`jml_satuan` double default NULL,
`hrg_satuan` double default NULL,
PRIMARY KEY (`id_brg`)
)
3.
Tabel supplier, dibuat dengan sintak SQL sebagai berikut:
38
37
`nama` varchar(100) default NULL,
`alamat` varchar(100) default NULL,
`telp` varchar(15) default NULL,
`kategori` varchar(10) default NULL,
PRIMARY KEY (`id_supl`)
)
4.
Tabel beli, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `beli` (
`id_beli` int(5) NOT NULL auto_increment,
`id_supl` varchar(5) default NULL,
`no_nota_pembelian` varchar(5) default NULL,
`no_urut_nota` int(5) default NULL,
`tgl` date default NULL,
PRIMARY KEY (`id_beli`)
)
5.
Tabel jual, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `jual` (
`id_jual` int(5) NOT NULL auto_increment,
`no_nota` int(5) default NULL,
`nama_cust` varchar(50) default NULL,
`tgl` date default NULL,
PRIMARY KEY (`id_jual`)
)
6.
Tabel detil_beli, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `detil_beli` (
`id_beli` int(5) NOT NULL,
`id_brg` varchar(5) default NULL,
`jml_satuan` double default NULL,
`hrg_beli_per_satuan` double default NULL,
)
7.
Tabel detil_jual, dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE `detil_jual` (
`id_jual` int(5) NOT NULL,
`hrg_jual_per_satuan` double default NULL,
)
4.2
Koneksi Database
Pada pembuatan sistem informasi ini penulis menggunakan program
aplikasi pendukung yaitu
Connector/J
sebagai
driver
koneksi antara
database
MySQL dengan Java. Kemudian untuk menghubungkan
database
dengan sistem,
digunakan sintak sebagai berikut :
...
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost/grosir?use
r=root&password=root");
...
4.3
Pembuatan User Interface
Pembuatan
user interface
untuk Sistem Informasi Grosir dibagi menjadi 3
bagian yaitu pembuatan
user interface
untuk karyawan bagian penjualan,
karyawan bagian pembelian dan manajer. Berikut ini merupakan bentuk-bentuk
40
37
1.
Form Login Pengguna Sistem
Gbr. 4.1
Form
Login
Melalui
form
ini
user
dapat melakukan proses login untuk dapat
menggunakan sistem. Apabila
user
berhasil melakukan login dan
account
user
adalah sebagai manajer maka sistem akan menampilkan
form
manajer kepada
user
. Apabila
user
berhasil melakukan login dan
account
user
adalah sebagai karyawan bagian pembelian maka sistem akan
menampilkan
form
memasukkan data order pembelian kepada
user
.
Apabila
user
berhasil melakukan login dan
account
user
adalah sebagai
karyawan bagian penjualan maka sistem akan menampilkan
form
memasukkan data order penjualan kepada
user
.
Form
ini dibentuk dengan file bernama
Login.java dimana
sintaknya adalah sebagai berikut :
import java.sql.*; import java.awt.event.*; import javax.swing.*; import manajer.FormManajer; import penjualan.MemasukkanDataOrderPenjualan; import pembelian.MemasukkanDataOrderPembelian;
public class Login extends javax.swing.JFrame implements ActionListener { private javax.swing.JButton jButtonLogin;
private javax.swing.JComboBox jComboBoxDivisi; private javax.swing.JLabel jLabelDivisi; private javax.swing.JLabel jLabelNamaKaryawan; private javax.swing.JLabel jLabelPassword; private javax.swing.JPanel jPanelLogin;
private javax.swing.JPasswordField jPasswordFieldPassword; private javax.swing.JTextField jTextFieldNamaKaryawan;
public Login() { initComponents(); }
private void initComponents() {
jPanelLogin = new javax.swing.JPanel(); jLabelNamaKaryawan = new javax.swing.JLabel();
jTextFieldNamaKaryawan = new javax.swing.JTextField(); jLabelPassword = new javax.swing.JLabel();
jPasswordFieldPassword = new javax.swing.JPasswordField(); jLabelDivisi = new javax.swing.JLabel();
jComboBoxDivisi = new javax.swing.JComboBox(); jButtonLogin = new javax.swing.JButton();
getContentPane().setLayout(null);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jPanelLogin.setLayout(null); jPanelLogin.setBorder(new javax.swing.border.TitledBorder("")); jLabelNamaKaryawan.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabelNamaKaryawan.setText("nama karyawan"); jPanelLogin.add(jLabelNamaKaryawan);
jLabelNamaKaryawan.setBounds(10, 10, 100, 20);
jPanelLogin.add(jTextFieldNamaKaryawan);
jTextFieldNamaKaryawan.setBounds(130, 10, 140, 20);
jLabelPassword.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabelPassword.setText("sandi");
jPanelLogin.add(jLabelPassword);
jLabelPassword.setBounds(10, 40, 100, 20);
jPanelLogin.add(jPasswordFieldPassword);
jPasswordFieldPassword.setBounds(130, 40, 140, 20);
jLabelDivisi.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabelDivisi.setText("divisi");
jPanelLogin.add(jLabelDivisi);
42
37
jPanelLogin.add(jComboBoxDivisi);
jComboBoxDivisi.setBounds(130, 70, 140, 20);
getContentPane().add(jPanelLogin); jPanelLogin.setBounds(10, 10, 280, 110);
jButtonLogin.setText("login"); getContentPane().add(jButtonLogin); jButtonLogin.setBounds(90, 140, 120, 20);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.10:3306/grosir?user=root&p assword=root");
Statement statement = conn.createStatement(); String sql = "select divisi from karyawan"; ResultSet rs = statement.executeQuery(sql); rs.last();
int numberOfRow = rs.getRow(); rs.beforeFirst(); while(rs.next()) { jComboBoxDivisi.addItem(rs.getString(1)); } statement.close(); conn.close(); }
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada database ! hubungi administrator !\n" +
"tekan 'ok' atau tutup form dialog ini keluar dari sistem","peringatan",2); System.exit(0); } jButtonLogin.addActionListener(this); pack(); setTitle("login"); setSize(307,205); setResizable(false); setLocation(200,100); }
private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0);
}
public static void main(String args[]) { new Login().show();
}
public void actionPerformed(ActionEvent e) { try {
Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.10:3306/grosir?user=root&p assword=root");
Statement statement = conn.createStatement();
String sql = "select nama, sandi, divisi from karyawan"; ResultSet rs = statement.executeQuery(sql);
if((jTextFieldNamaKaryawan.getText().compareTo(rs.getString(1)) == 0 &&
String.valueOf(jPasswordFieldPassword.getPassword()).compareTo(rs.getString(2) ) == 0) &&
String.valueOf(jComboBoxDivisi.getSelectedItem()).compareTo(rs.getString(3)) == 0) {
this.dispose();
if(String.valueOf(jComboBoxDivisi.getSelectedItem()).compareTo("manajer") == 0)
new FormManajer().show();
if(String.valueOf(jComboBoxDivisi.getSelectedItem()).compareTo("pembelian") == 0)
new MemasukkanDataOrderPembelian().show();
if(String.valueOf(jComboBoxDivisi.getSelectedItem()).compareTo("penjualan") == 0)
new MemasukkanDataOrderPenjualan().show(); break;
}
if(rs.isLast()) {
JOptionPane.showMessageDialog(null,"proses login anda tidak berhasil.","pesan",1);
} }
statement.close(); conn.close(); }
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada database ! hubungi administrator !\n" +
"tekan 'ok' atau tutup form dialog ini keluar dari sistem","peringatan",2);
System.exit(0); }
44
37
2.
Form Manajer
Gbr. 4.2
Form
Manajer
Form
ini menyediakan pilihan menu yang dapat diakses oleh
manajer. Menu pilihan yang ada adalah menampilkan data pembelian,
menampilkan data penjualan, menampilkan data barang, menampilkan
data
supplier
dan menampilkan data karyawan.
Form
ini dibentuk dengan
file bernama
FormManajer.java sintak dari program ini adalah sebagai
berikut :
package manajer;
import java.awt.event.*; import javax.swing.*;
public class FormManajer extends javax.swing.JFrame implements ActionListener {
private javax.swing.JTextArea jTextAreaHeader;
String arrayMenu[] = {"menampilkan data pembelian","menampilkan data penjualan","menampilkan data barang",
"menampilkan data supplier","menampilkan data karyawan"};
public FormManajer() { initComponents(); }
private void initComponents() {
jPanelHeader = new javax.swing.JPanel(); jLabelHeader = new javax.swing.JLabel(); jTextAreaHeader = new javax.swing.JTextArea(); jPanelMenu = new javax.swing.JPanel();
jComboBoxMenu = new javax.swing.JComboBox(); jButtonSetuju = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("form manajer");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt);
} });
jPanelHeader.setLayout(null);
jPanelHeader.setBorder(new javax.swing.border.TitledBorder("")); jLabelHeader.setFont(new java.awt.Font("Bookman Old Style", 1, 24));
jLabelHeader.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabelHeader.setText("selamat datang.");
jPanelHeader.add(jLabelHeader);
jLabelHeader.setBounds(10, 10, 330, 30);
jTextAreaHeader.setBackground(new java.awt.Color(224, 223, 227)); jTextAreaHeader.setEditable(false);
jTextAreaHeader.setFont(new java.awt.Font("Bookman Old Style", 0, 12));
jTextAreaHeader.setText("anda telah berhasil melakukan proses login. saat ini \n'account' login anda adalah sebagai manajer. " +
"silakan \nmemilih menu yang ada dibawah ini.\n\nthx..."); jPanelHeader.add(jTextAreaHeader);
jTextAreaHeader.setBounds(10, 50, 330, 80);
getContentPane().add(jPanelHeader); jPanelHeader.setBounds(10, 10, 350, 140);
jPanelMenu.setLayout(null);
jPanelMenu.setBorder(new javax.swing.border.TitledBorder("")); jPanelMenu.add(jComboBoxMenu);
jComboBoxMenu.setBounds(10, 10, 330, 20);
jButtonSetuju.setText("setuju"); jPanelMenu.add(jButtonSetuju);
jButtonSetuju.setBounds(10, 40, 330, 20);
46
37
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-377)/2, (screenSize.height-278)/2, 377, 278);
for(int i=0; i<5; i++) {
jComboBoxMenu.addItem(arrayMenu[i]); }
jButtonSetuju.addActionListener(this); }
private void exitForm(java.awt.event.WindowEvent evt) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin akan keluar dari sistem ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) System.exit(0); else
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); }
public void actionPerformed(ActionEvent e) { this.dispose();
if(String.valueOf(jComboBoxMenu.getSelectedItem()).compareTo("menampilkan data pembelian") == 0)
new MenampilkanDataOrderPembelian().show(); else
if(String.valueOf(jComboBoxMenu.getSelectedItem()).compareTo("menampilkan data penjualan") == 0)
new MenampilkanDataOrderPenjualan().show(); else
if(String.valueOf(jComboBoxMenu.getSelectedItem()).compareTo("menampilkan data barang") == 0)
new MenampilkanDataBarang().show(); else
if(String.valueOf(jComboBoxMenu.getSelectedItem()).compareTo("menampilkan data supplier") == 0)
new MenampilkanDataSupplier().show(); else if
(String.valueOf(jComboBoxMenu.getSelectedItem()).compareTo("menampilkan data karyawan") == 0)
new MenampilkanDataKaryawan().show(); }
3.
Form Memasukkan Data Pembelian
Gbr. 4.3
Form
Memasukkan data Pembelian
Melalui
form
ini karyawan bagian pembelian dapat memasukkan
data pembelian yang dilakukan ke dalam sistem.
Form
ini dibentuk
dengan
file
bernama
MemasukkanDataPembelian.java
dimana
sintaknya adalah sebagai berikut :
package pembelian;
public class MemasukkanDataPembelian extends javax.swing.Jframe {
public MemasukkanDataPembelian() { initComponents();
48
37
private void initComponents() {
jPanelData = new javax.swing.Jpanel();
jLabelIdPembelian = new javax.swing.Jlabel();
jTextFieldIdPembelian = new javax.swing.JtextField(); jLabelTgl = new javax.swing.Jlabel();
jTextFieldTgl = new javax.swing.JtextField();
jLabelNoUrutNotaPembelian = new javax.swing.Jlabel();
jTextFieldNoUrutNotaPembelian = new javax.swing.JtextField(); jLabelNoNota = new javax.swing.Jlabel();
jTextFieldNoNota = new javax.swing.JtextField(); jLabelNamaSupplier = new javax.swing.Jlabel(); jComboBoxNamaSupplier = new javax.swing.JcomboBox(); jLabelKategoriSupplier = new javax.swing.Jlabel();
jTextFieldKategoriSupplier = new javax.swing.JtextField(); jLabelNamaBarang = new javax.swing.Jlabel();
jComboBoxNamaBarang = new javax.swing.JcomboBox(); jLabelNamaSatuan = new javax.swing.Jlabel();
jTextFieldNamaSatuan = new javax.swing.JtextField(); jLabelJmlBarangYgDibeli = new javax.swing.Jlabel();
jTextFieldJmlBarangYgDibeli = new javax.swing.JtextField(); jLabelHargaSatuan = new javax.swing.Jlabel();
jTextFieldHargaSatuan = new javax.swing.JtextField(); jButtonMasukkanData = new javax.swing.Jbutton();
getContentPane().setLayout(null);
setTitle(“memasukkan data pembelian”);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jPanelData.setLayout(null); jPanelData.setBorder(new javax.swing.border.TitledBorder(“”)); jLabelIdPembelian.setText(“id pembelian”); jPanelData.add(jLabelIdPembelian);
jLabelIdPembelian.setBounds(10, 10, 120, 20);
jTextFieldIdPembelian.setEditable(false); jPanelData.add(jTextFieldIdPembelian);
jTextFieldIdPembelian.setBounds(150, 10, 40, 20);
jLabelTgl.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabelTgl.setText(“tgl”);
jPanelData.add(jLabelTgl);
jLabelTgl.setBounds(370, 10, 30, 20);
jTextFieldTgl.setEditable(false); jPanelData.add(jTextFieldTgl);
jTextFieldTgl.setBounds(410, 10, 80, 20);
jLabelNoUrutNotaPembelian.setText(“no urut nota pembelian”); jPanelData.add(jLabelNoUrutNotaPembelian);
jLabelNoUrutNotaPembelian.setBounds(10, 40, 130, 20);
jPanelData.add(jTextFieldNoUrutNotaPembelian);
jTextFieldNoUrutNotaPembelian.setBounds(150, 40, 40, 20);
jLabelNoNota.setText(“no nota”); jPanelData.add(jLabelNoNota);
jPanelData.add(jTextFieldNoNota);
jTextFieldNoNota.setBounds(150, 70, 40, 20);
jLabelNamaSupplier.setText(“nama supplier”); jPanelData.add(jLabelNamaSupplier);
jLabelNamaSupplier.setBounds(10, 100, 120, 20);
jPanelData.add(jComboBoxNamaSupplier);
jComboBoxNamaSupplier.setBounds(150, 100, 340, 20);
jLabelKategoriSupplier.setText(“kategori supplier”); jPanelData.add(jLabelKategoriSupplier);
jLabelKategoriSupplier.setBounds(10, 130, 120, 20);
jTextFieldKategoriSupplier.setEditable(false); jPanelData.add(jTextFieldKategoriSupplier);
jTextFieldKategoriSupplier.setBounds(150, 130, 100, 20);
jLabelNamaBarang.setText(“nama barang”); jPanelData.add(jLabelNamaBarang);
jLabelNamaBarang.setBounds(10, 160, 120, 20);
jPanelData.add(jComboBoxNamaBarang);
jComboBoxNamaBarang.setBounds(150, 160, 340, 20);
jLabelNamaSatuan.setText(“nama satuan”); jPanelData.add(jLabelNamaSatuan);
jLabelNamaSatuan.setBounds(10, 190, 120, 20);
jTextFieldNamaSatuan.setEditable(false); jPanelData.add(jTextFieldNamaSatuan);
jTextFieldNamaSatuan.setBounds(150, 190, 100, 20);
jLabelJmlBarangYgDibeli.setText(”jml barang yg dibeli”); jPanelData.add(jLabelJmlBarangYgDibeli);
jLabelJmlBarangYgDibeli.setBounds(10, 220, 120, 20);
jPanelData.add(jTextFieldJmlBarangYgDibeli);
jTextFieldJmlBarangYgDibeli.setBounds(150, 220, 100, 20);
jLabelHargaSatuan.setText(”harga satuan”); jPanelData.add(jLabelHargaSatuan);
jLabelHargaSatuan.setBounds(10, 250, 120, 20);
jPanelData.add(jTextFieldHargaSatuan);
jTextFieldHargaSatuan.setBounds(150, 250, 100, 20);
getContentPane().add(jPanelData); jPanelData.setBounds(10, 10, 500, 280);
jButtonMasukkanData.setText(“masukkan data”); getContentPane().add(jButtonMasukkanData);
jButtonMasukkanData.setBounds(381, 300, 130, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-529)/2, (screenSize.height-367)/2, 529, 367);
}
private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0);
50
37
public static void main(String args[]) { new MemasukkanDataPembelian().show(); }
private javax.swing.Jbutton jButtonMasukkanData; private javax.swing.JcomboBox jComboBoxNamaBarang; private javax.swing.JcomboBox jComboBoxNamaSupplier; private javax.swing.Jlabel jLabelHargaSatuan; private javax.swing.Jlabel jLabelIdPembelian; private javax.swing.Jlabel jLabelJmlBarangYgDibeli; private javax.swing.Jlabel jLabelKategoriSupplier; private javax.swing.Jlabel jLabelNamaBarang; private javax.swing.Jlabel jLabelNamaSatuan; private javax.swing.Jlabel jLabelNamaSupplier; private javax.swing.Jlabel jLabelNoNota;
private javax.swing.Jlabel jLabelNoUrutNotaPembelian; private javax.swing.Jlabel jLabelTgl;
private javax.swing.Jpanel jPanelData;
private javax.swing.JtextField jTextFieldHargaSatuan; private javax.swing.JtextField jTextFieldIdPembelian; private javax.swing.JtextField jTextFieldJmlBarangYgDibeli; private javax.swing.JtextField jTextFieldKategoriSupplier; private javax.swing.JtextField jTextFieldNamaSatuan; private javax.swing.JtextField jTextFieldNoNota;
private javax.swing.JtextField jTextFieldNoUrutNotaPembelian; private javax.swing.JtextField jTextFieldTgl;
}
4.
Form Memasukkan Data Penjualan
Melalui
form
ini karyawan bagian penjualan dapat memasukkan
data penjualan yang dilakukan. Form ini dibentuk dengan file bernama
MemasukkanDataPenjualan.java dimana sintaknya adalah sebagai
berikut :
package penjualan;
public class MemasukkanDataPenjualan extends javax.swing.JFrame {
public MemasukkanDataPenjualan() { initComponents();
}
private void initComponents() {
jPanelData = new javax.swing.JPanel();
jLabelIdPenjualan = new javax.swing.JLabel();
jTextFieldNoNotaPenjualan = new javax.swing.JTextField(); jLabelTgl = new javax.swing.JLabel();
jTextFieldTgl = new javax.swing.JTextField(); jLabelNoNotaPenjualan = new javax.swing.JLabel(); jTextFieldIdPenjualan = new javax.swing.JTextField(); jLabelNamaCustomer = new javax.swing.JLabel(); jLabelNamaBarang = new javax.swing.JLabel(); jComboBoxNamaBarang = new javax.swing.JComboBox(); jLabelJmlBarang = new javax.swing.JLabel();
jTextFieldJmlBarang = new javax.swing.JTextField(); jLabelHarga = new javax.swing.JLabel();
jTextFieldHarga = new javax.swing.JTextField();
jTextFieldNamaCustomer = new javax.swing.JTextField(); jLabelPer = new javax.swing.JLabel();
jTextFieldNamaSatuan = new javax.swing.JTextField(); jButtonSetuju = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("memasukkan data penjualan");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jPanelData.setLayout(null); jPanelData.setBorder(new javax.swing.border.TitledBorder("")); jLabelIdPenjualan.setText("id penjualan"); jPanelData.add(jLabelIdPenjualan);
jLabelIdPenjualan.setBounds(10, 40, 120, 20);
jTextFieldNoNotaPenjualan.setEditable(false); jPanelData.add(jTextFieldNoNotaPenjualan);
jTextFieldNoNotaPenjualan.setBounds(150, 10, 40, 20);
jLabelTgl.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabelTgl.setText("tgl");
52
37
jLabelTgl.setBounds(370, 10, 30, 20);
jTextFieldTgl.setEditable(false); jPanelData.add(jTextFieldTgl);
jTextFieldTgl.setBounds(410, 10, 80, 20);
jLabelNoNotaPenjualan.setText("no nota penjualan"); jPanelData.add(jLabelNoNotaPenjualan);
jLabelNoNotaPenjualan.setBounds(10, 10, 120, 20);
jTextFieldIdPenjualan.setEditable(false); jPanelData.add(jTextFieldIdPenjualan);
jTextFieldIdPenjualan.setBounds(150, 40, 40, 20);
jLabelNamaCustomer.setText("nama customer"); jPanelData.add(jLabelNamaCustomer);
jLabelNamaCustomer.setBounds(10, 70, 120, 20);
jLabelNamaBarang.setText("nama barang"); jPanelData.add(jLabelNamaBarang);
jLabelNamaBarang.setBounds(10, 100, 120, 20);
jPanelData.add(jComboBoxNamaBarang);
jComboBoxNamaBarang.setBounds(150, 100, 340, 20);
jLabelJmlBarang.setText("jml barang"); jPanelData.add(jLabelJmlBarang);
jLabelJmlBarang.setBounds(10, 160, 120, 20);
jPanelData.add(jTextFieldJmlBarang);
jTextFieldJmlBarang.setBounds(150, 160, 100, 20);
jLabelHarga.setText("harga"); jPanelData.add(jLabelHarga);
jLabelHarga.setBounds(10, 130, 120, 20);
jTextFieldHarga.setEditable(false); jPanelData.add(jTextFieldHarga);
jTextFieldHarga.setBounds(150, 130, 100, 20);
jPanelData.add(jTextFieldNamaCustomer);
jTextFieldNamaCustomer.setBounds(150, 70, 180, 20);
jLabelPer.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabelPer.setText("per");
jPanelData.add(jLabelPer);
jLabelPer.setBounds(260, 130, 30, 20);
jTextFieldNamaSatuan.setEditable(false); jPanelData.add(jTextFieldNamaSatuan);
jTextFieldNamaSatuan.setBounds(300, 130, 100, 20);
getContentPane().add(jPanelData); jPanelData.setBounds(10, 10, 5