sistem informasi grosir berbasis client- server · 2018. 11. 15. · grosir merupakan sebuah usaha...
TRANSCRIPT
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
2007
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
2007
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
Stephanus Kridho Budi Wibowo
v
HALAMAN PERSEMBAHAN
Kupersembahkan karya tulis ini kepada :
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,
khususnya angkatan 2002
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)
”Sejatine wong urip iku mung ibarat mampir ngombe”
vii
INTISARI
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 : 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.
Hasil akhir dari sistem yang dibuat adalah : aplikasi yang dibangun dapat
membantu manajer dalam memperoleh informasi pembelian, penjualan dan stok
barang pada grosir yang dimilikinya. Aplikasi yang dibangun memudahkan
bagian pembelian dan penjualan dalam melakukan pencatatan data pembelian dan
penjualan.
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.
The final result of this system are : this application can help manager in
obtaining information of purchasing, selling and inventory and this application
makes the recording in purchasing and selling easier.
ix
KATA PENGANTAR
Puji serta syukur saya panjatkan kepada junjungan saya Bunda Maria dan
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
5. Saudaraku terkasih : Leonardus Danu Laksono, terima kasih atas doanya dan
rasa persaudaraan yang tetap hangat walaupun kita saling berjauhan.
Selamat Bertugas !
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.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir
xi
ini sangat saya harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi
semua pihak. Terima kasih.
Yogyakarta, 08 Oktober 2005
Penulis
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 ........................................................................
1
1
2
3
3
4
xiii
BAB II. LANDASAN TEORI
2.1 Sistem, Informasi dan sistem informasi .............................................
2.2 Java GUI ..................…....................................................................
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.......................................................
6
7
10
11
14
14
15
17
17
19
19
20
20
22
22
22
23
23
23
24
24
25
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
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
3.20 Form Memasukkan Data Pembelian 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
4.9 Form Mengubah Data Supplier 68
xvii
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
4.15 Form Mengubah Harga Barang 92
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
Tabel 3.7 Tabel detil_jual ............................................................................... 28
1
BAB I
PENDAHULUAN
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
penjualan pada sebuah grosir.
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
pemrograman Java dan basisdata MySQL 5.0.15
3
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
program dan antarmuka sistem.
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
basisdata dan rancangan antarmuka sistem.
5
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
akhir ini dan saran yang diberikan oleh penulis.
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
waktunya dan relevan atau bermanfaat bagi penggunanya. Selain itu
7
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
keperluan grafis, yaitu :
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
beberapa item yang cukup penting dalam pembuatan Graphical User
9
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
dieksekusi. Event-handling ini terdiri atas 3 bagian utama yaitu :
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
menjadi :
11
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
mengaksesnya dan semuanya melakukan permintaan dari basisdata yang
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.
Gbr 2.1 Arsitektur Two Tier
13
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.
Gbr. 2.2 Arsitektur Three Tier
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
barang kebutuhan lainnya. Pada umumnya grosir tersebut membeli barang
15
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
supplier dan memberikan nomor urut pada setiap nota pembelian
yang didapatkan.
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 barang-
barang kebutuhan pokok sehari-hari yang harganya relatif tidak
17
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
merespon hal-hal tesebut. (Whitten, 2004).
18
Gbr. 3.2 Diagram Use Case
19
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
logika dibutuhkan oleh sistem.
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
proses yang ada di dalam sistem
21
Gbr. 3.5 DAD Level 0
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
Gbr 3.8 DAD Level 1 Proses 3
23
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
Gbr 3.11 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
Gbr 3.14 DAD Level 1 Proses 9
25
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)
Gbr. 3.16 Fully Atributed Data Model
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
Tabel 3.1 Tabel karyawan
27
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
Tabel 3.5 Tabel jual
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.18 Form Login
29
Gbr 3.19 Form Manajer
Gbr 3.20 Form Memasukkan Data Pembelian
30
Gbr 3.21 Form Memasukkan Data Penjualan
Gbr 3.22 Form Memasukkan Data Barang
Gbr 3.23 Form Memasukkan Data Supplier
31
Gbr 3.24 Form Menampilkan Data Barang
menampilkan data supplier urut berdasarkan :
id supplier alamat kategorino.telpnama
id supplier nama supplier kategori supplier
Gbr 3.25 Form Menampilkan Data Supplier
Gbr 3.26 Form Mengubah Data Supplier
32
Gbr 3.27 Form Pencarian Data Barang
Gbr 3.28 Form Pencarian Data Supplier
Gbr 3.29 Form Menampilkan Data Pembelian
33
Gbr 3.30 Form Menampilkan Data Penjualan
nama jumlah harga satuan
kepada
tgl
no nota
total
Gbr 3.31 Form Rancangan Nota Penjualan
34
Gbr 3.32 Form Laporan Pembelian Barang
Gbr 3.33 Form Laporan Penjualan Barang
35
Gbr 3.34 Form Data Karyawan
Gbr 3.35 Form Mengubah Harga Barang
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
- RAM 128 MB
37 37
- 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:
CREATE TABLE `supplier` (
`id_supl` varchar(5) NOT NULL,
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,
`id_brg` varchar(5) default NULL,
`jml_satuan` double default NULL,
39 37
`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
form yang dipakai di dalam Sistem Informasi Grosir.
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.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
41 37
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);
jLabelDivisi.setBounds(10, 70, 100, 20);
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);
rs.beforeFirst();
while(rs.next()) {
43 37
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.JButton jButtonSetuju;
private javax.swing.JComboBox jComboBoxMenu;
private javax.swing.JLabel jLabelHeader;
private javax.swing.JPanel jPanelHeader;
private javax.swing.JPanel jPanelMenu;
45 37
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);
getContentPane().add(jPanelMenu);
jPanelMenu.setBounds(10, 160, 350, 70);
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();
}
}
47 37
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);
jLabelNoNota.setBounds(10, 70, 120, 20);
49 37
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
Gbr. 4.4 Memasukkan Data Penjualan
51 37
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");
jPanelData.add(jLabelTgl);
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, 500, 190);
jButtonSetuju.setText("setuju");
getContentPane().add(jButtonSetuju);
jButtonSetuju.setBounds(380, 210, 130, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-529)/2, (screenSize.height-273)/2, 529,
273);
}
53 37
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new MemasukkanDataPenjualan().show();
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonSetuju;
private javax.swing.JComboBox jComboBoxNamaBarang;
private javax.swing.JLabel jLabelHarga;
private javax.swing.JLabel jLabelIdPenjualan;
private javax.swing.JLabel jLabelJmlBarang;
private javax.swing.JLabel jLabelNamaBarang;
private javax.swing.JLabel jLabelNamaCustomer;
private javax.swing.JLabel jLabelNoNotaPenjualan;
private javax.swing.JLabel jLabelPer;
private javax.swing.JLabel jLabelTgl;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldHarga;
private javax.swing.JTextField jTextFieldIdPenjualan;
private javax.swing.JTextField jTextFieldJmlBarang;
private javax.swing.JTextField jTextFieldNamaCustomer;
private javax.swing.JTextField jTextFieldNamaSatuan;
private javax.swing.JTextField jTextFieldNoNotaPenjualan;
private javax.swing.JTextField jTextFieldTgl;
// End of variables declaration
}
5. Form Memasukkan data barang
Gbr. 4.5 Form Memasukkan Data Barang
54 37
Melalui form ini karyawan bagian pembelian dapat
memasukkan data barang baru yang dibeli dan belum dimiliki oleh grosir.
Form ini dibentuk dengan file bernama MemasukkanDataBarang.java
dimana sintaknya adalah sebagai berikut :
package pembelian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MemasukkanDataBarang extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonBersihkan;
private javax.swing.JButton jButtonSetuju;
private javax.swing.JLabel jLabelIdBarang;
private javax.swing.JLabel jLabelNama;
private javax.swing.JLabel jLabelNamaSatuan;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldIdBarang;
private javax.swing.JTextField jTextFieldNama;
private javax.swing.JTextField jTextFieldNamaSatuan;
public MemasukkanDataBarang() {
initComponents();
}
private void initComponents() {
jPanelData = new javax.swing.JPanel();
jLabelIdBarang = new javax.swing.JLabel();
jTextFieldIdBarang = new javax.swing.JTextField();
jLabelNama = new javax.swing.JLabel();
jTextFieldNama = new javax.swing.JTextField();
jLabelNamaSatuan = new javax.swing.JLabel();
jTextFieldNamaSatuan = new javax.swing.JTextField();
jButtonSetuju = new javax.swing.JButton();
jButtonBersihkan = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("memasukkan data barang");
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(""));
jLabelIdBarang.setText("id barang");
jPanelData.add(jLabelIdBarang);
jLabelIdBarang.setBounds(10, 10, 90, 20);
55 37
jPanelData.add(jTextFieldIdBarang);
jTextFieldIdBarang.setBounds(110, 10, 40, 20);
jLabelNama.setText("nama");
jPanelData.add(jLabelNama);
jLabelNama.setBounds(10, 40, 90, 20);
jPanelData.add(jTextFieldNama);
jTextFieldNama.setBounds(110, 40, 340, 20);
jLabelNamaSatuan.setText("nama satuan");
jPanelData.add(jLabelNamaSatuan);
jLabelNamaSatuan.setBounds(10, 70, 90, 20);
jPanelData.add(jTextFieldNamaSatuan);
jTextFieldNamaSatuan.setBounds(110, 70, 150, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 10, 460, 100);
jButtonSetuju.setText("setuju");
getContentPane().add(jButtonSetuju);
jButtonSetuju.setBounds(240, 120, 110, 20);
jButtonBersihkan.setText("bersihkan");
getContentPane().add(jButtonBersihkan);
jButtonBersihkan.setBounds(360, 120, 110, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-487)/2, (screenSize.height-182)/2, 487,
182);
jButtonSetuju.addActionListener(this);
jButtonBersihkan.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jButtonSetuju) {
if(jTextFieldIdBarang.getText().compareTo("") != 0 &&
jTextFieldNama.getText().compareTo("") != 0 &&
jTextFieldNamaSatuan.getText().compareTo("") != 0) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin
data sudah benar ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
String idBarang, namaBarang, satuanBarang;
idBarang = jTextFieldIdBarang.getText();
if(idBarang.length() < 5)
idBarang = idBarang.substring(0,idBarang.length());
else
idBarang = idBarang.substring(0,5);
namaBarang = jTextFieldNama.getText();
if(namaBarang.length() < 100)
namaBarang =
namaBarang.substring(0,namaBarang.length());
else
namaBarang = namaBarang.substring(0,100);
56 37
satuanBarang = jTextFieldNamaSatuan.getText();
if(satuanBarang.length() < 20)
satuanBarang =
satuanBarang.substring(0,satuanBarang.length());
else
satuanBarang = satuanBarang.substring(0,20);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "insert into barang values('" + idBarang
+ "','" + namaBarang + "','" + satuanBarang + "',0,0);";
statement.execute(sql);
statement.close();
conn.close();
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"sudah ada barang
dengan id " + jTextFieldIdBarang.getText() + " pada tabel supplier
!","peringatan",2);
}
}
}
else
JOptionPane.showMessageDialog(null,"kolom id barang, nama dan
nama satuan tidak boleh kosong !","peringatan",2);
}
if(e.getSource() == jButtonBersihkan) {
jTextFieldIdBarang.setText("");
jTextFieldNama.setText("");
jTextFieldNamaSatuan.setText("");
}
}
}
6. Form Memasukkan Data Supplier
57 37
Gbr. 4.6 Form Memasukkan Data Supplier
Melalui form ini karyawan bagian pembelian dapat memasukkan
data supplier. Form ini dibentuk dengan file bernama
MemasukkanDataSupplier.java dimana sintaknya adalah sebagai
berikut :
package pembelian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MemasukkanDataSupplier extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonBersihkan;
private javax.swing.JButton jButtonSetuju;
private javax.swing.JLabel jLabelAlamat;
private javax.swing.JLabel jLabelIdSupplier;
private javax.swing.JLabel jLabelNama;
private javax.swing.JLabel jLabelNoTelp;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldAlamat;
private javax.swing.JTextField jTextFieldIdSupplier;
private javax.swing.JTextField jTextFieldNama;
private javax.swing.JTextField jTextFieldNoTelp;
58 37
public MemasukkanDataSupplier() {
initComponents();
}
private void initComponents() {
jPanelData = new javax.swing.JPanel();
jLabelIdSupplier = new javax.swing.JLabel();
jTextFieldIdSupplier = new javax.swing.JTextField();
jLabelNama = new javax.swing.JLabel();
jTextFieldNama = new javax.swing.JTextField();
jLabelAlamat = new javax.swing.JLabel();
jTextFieldAlamat = new javax.swing.JTextField();
jLabelNoTelp = new javax.swing.JLabel();
jTextFieldNoTelp = new javax.swing.JTextField();
jButtonSetuju = new javax.swing.JButton();
jButtonBersihkan = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("memasukkan data supplier");
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(""));
jLabelIdSupplier.setText("id supplier");
jPanelData.add(jLabelIdSupplier);
jLabelIdSupplier.setBounds(10, 10, 80, 20);
jPanelData.add(jTextFieldIdSupplier);
jTextFieldIdSupplier.setBounds(100, 10, 40, 20);
jLabelNama.setText("nama");
jPanelData.add(jLabelNama);
jLabelNama.setBounds(10, 40, 80, 20);
jPanelData.add(jTextFieldNama);
jTextFieldNama.setBounds(100, 40, 330, 20);
jLabelAlamat.setText("alamat");
jPanelData.add(jLabelAlamat);
jLabelAlamat.setBounds(10, 70, 80, 20);
jPanelData.add(jTextFieldAlamat);
jTextFieldAlamat.setBounds(100, 70, 330, 20);
jLabelNoTelp.setText("no telp");
jPanelData.add(jLabelNoTelp);
jLabelNoTelp.setBounds(10, 100, 80, 20);
jPanelData.add(jTextFieldNoTelp);
jTextFieldNoTelp.setBounds(100, 100, 90, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 10, 440, 130);
jButtonSetuju.setText("setuju");
getContentPane().add(jButtonSetuju);
jButtonSetuju.setBounds(240, 150, 100, 20);
59 37
jButtonBersihkan.setText("bersihkan");
getContentPane().add(jButtonBersihkan);
jButtonBersihkan.setBounds(350, 150, 100, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-468)/2, (screenSize.height-214)/2, 468,
214);
jButtonSetuju.addActionListener(this);
jButtonBersihkan.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jButtonSetuju) {
if(jTextFieldIdSupplier.getText().compareTo("") != 0 &&
jTextFieldNama.getText().compareTo("") != 0) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin
data sudah benar ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
String idSupplier, namaSupplier, alamatSupplier,
noTelpSupplier;
idSupplier = jTextFieldIdSupplier.getText();
if(idSupplier.length() < 5)
idSupplier =
idSupplier.substring(0,idSupplier.length());
else
idSupplier = idSupplier.substring(0,5);
namaSupplier = jTextFieldNama.getText();
if(namaSupplier.length() < 100)
namaSupplier =
namaSupplier.substring(0,namaSupplier.length());
else
namaSupplier = namaSupplier.substring(0,100);
alamatSupplier = jTextFieldAlamat.getText();
if(alamatSupplier.length() < 100)
alamatSupplier =
alamatSupplier.substring(0,alamatSupplier.length());
else
alamatSupplier = alamatSupplier.substring(0,100);
noTelpSupplier = jTextFieldNoTelp.getText();
if(noTelpSupplier.length() < 20)
noTelpSupplier =
noTelpSupplier.substring(0,noTelpSupplier.length());
else
noTelpSupplier = noTelpSupplier.substring(0,20);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
60 37
String sql = "insert into supplier values('" +
idSupplier + "','" + namaSupplier + "','" + alamatSupplier + "','" +
noTelpSupplier + "','biasa');";
statement.execute(sql);
statement.close();
conn.close();
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"sudah ada
supplier dengan id " + jTextFieldIdSupplier.getText() + " pada tabel supplier
!","peringatan",2);
}
}
}
else
JOptionPane.showMessageDialog(null,"kolom id supplier dan
nama supplier tidak boleh kosong !","peringatan",2);
}
if(e.getSource() == jButtonBersihkan) {
jTextFieldIdSupplier.setText("");
jTextFieldNama.setText("");
jTextFieldAlamat.setText("");
jTextFieldNoTelp.setText("");
}
}
}
7. Form Menampilkan Data Barang
61 37
Gbr. 4.7 Form Menampilkan Data Barang
Melalui form ini karyawan bagian pembelian, penjualan dan
manajer dapat mengetahui data mengenai jumlah stok barang yang ada.
Form ini dibentuk dengan file bernama MenampilkanDataBarang.java
dimana sintaknya adalah sebagai berikut :
package penjualan;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MenampilkanDataBarang extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JLabel jLabelPengurutan;
private javax.swing.JPanel jPanelData;
private javax.swing.JPanel jPanelKriteria;
private javax.swing.JRadioButton jRadioButtonHargaBarang;
62 37
private javax.swing.JRadioButton jRadioButtonIdBarang;
private javax.swing.JRadioButton jRadioButtonJumlahStok;
private javax.swing.JRadioButton jRadioButtonNamaBarang;
int numberOfRow;
Object[][] data = new Object[0][0];
public MenampilkanDataBarang() {
initComponents();
}
private void initComponents() {
jPanelKriteria = new javax.swing.JPanel();
jLabelPengurutan = new javax.swing.JLabel();
jRadioButtonIdBarang = new javax.swing.JRadioButton();
jRadioButtonNamaBarang = new javax.swing.JRadioButton();
jRadioButtonJumlahStok = new javax.swing.JRadioButton();
jRadioButtonHargaBarang = new javax.swing.JRadioButton();
jPanelData = new javax.swing.JPanel();
getContentPane().setLayout(null);
setTitle("menampilkan data barang");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanelKriteria.setLayout(null);
jPanelKriteria.setBorder(new javax.swing.border.TitledBorder(""));
jLabelPengurutan.setText("pengurutan data berdasarkan :");
jPanelKriteria.add(jLabelPengurutan);
jLabelPengurutan.setBounds(10, 10, 190, 20);
jRadioButtonIdBarang.setText("id barang");
jPanelKriteria.add(jRadioButtonIdBarang);
jRadioButtonIdBarang.setBounds(210, 10, 120, 20);
jRadioButtonNamaBarang.setText("nama barang");
jPanelKriteria.add(jRadioButtonNamaBarang);
jRadioButtonNamaBarang.setBounds(340, 10, 120, 20);
jRadioButtonJumlahStok.setText("jumlah stok");
jPanelKriteria.add(jRadioButtonJumlahStok);
jRadioButtonJumlahStok.setBounds(470, 10, 120, 20);
jRadioButtonHargaBarang.setText("harga barang");
jPanelKriteria.add(jRadioButtonHargaBarang);
jRadioButtonHargaBarang.setBounds(600, 10, 120, 20);
getContentPane().add(jPanelKriteria);
jPanelKriteria.setBounds(10, 10, 740, 40);
jPanelData.setLayout(null);
jPanelData.setBorder(new javax.swing.border.TitledBorder(""));
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 60, 740, 390);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
63 37
setBounds((screenSize.width-768)/2, (screenSize.height-499)/2, 768,
499);
jRadioButtonIdBarang.setSelected(true);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.12:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "select * from barang order by id_brg";
ResultSet rs = statement.executeQuery(sql);
rs.last();
numberOfRow = rs.getRow();
data = new Object[numberOfRow][5];
int currentRow = 0;
rs.beforeFirst();
final String[] headers = {"id barang", "nama", "nama satuan",
"jumlah satuan", "harga satuan"};
while (rs.next()) {
data[currentRow][0] = rs.getString(1);
data[currentRow][1] = rs.getString(2);
data[currentRow][2] = rs.getString(3);
data[currentRow][3] = rs.getString(4);
data[currentRow][4] = rs.getString(5);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
jPanelData.add(jScrollPaneData);
jScrollPaneData.setBounds(10, 10, 720, 370);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
jRadioButtonIdBarang.addActionListener(this);
jRadioButtonNamaBarang.addActionListener(this);
jRadioButtonJumlahStok.addActionListener(this);
jRadioButtonHargaBarang.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPenjualan().show();
}
public void actionPerformed(ActionEvent e) {
jPanelData.removeAll();
String sql = "";
if(e.getSource() == jRadioButtonIdBarang) {
if(jRadioButtonIdBarang.isSelected()) {
64 37
jRadioButtonNamaBarang.setSelected(false);
jRadioButtonJumlahStok.setSelected(false);
jRadioButtonHargaBarang.setSelected(false);
}
jRadioButtonIdBarang.setSelected(true);
sql = "select * from barang order by id_brg";
}
else if(e.getSource() == jRadioButtonNamaBarang) {
if(jRadioButtonNamaBarang.isSelected()) {
jRadioButtonIdBarang.setSelected(false);
jRadioButtonJumlahStok.setSelected(false);
jRadioButtonHargaBarang.setSelected(false);
}
jRadioButtonNamaBarang.setSelected(true);
sql = "select * from barang order by nama";
}
else if(e.getSource() == jRadioButtonJumlahStok) {
if(jRadioButtonJumlahStok.isSelected()) {
jRadioButtonNamaBarang.setSelected(false);
jRadioButtonIdBarang.setSelected(false);
jRadioButtonHargaBarang.setSelected(false);
}
jRadioButtonJumlahStok.setSelected(true);
sql = "select * from barang order by jml_satuan";
}
else if(e.getSource() == jRadioButtonHargaBarang) {
if(jRadioButtonHargaBarang.isSelected()) {
jRadioButtonNamaBarang.setSelected(false);
jRadioButtonJumlahStok.setSelected(false);
jRadioButtonIdBarang.setSelected(false);
}
jRadioButtonHargaBarang.setSelected(true);
sql = "select * from barang order by hrg_satuan";
}
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.12:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
rs.last();
numberOfRow = rs.getRow();
data = new Object[numberOfRow][5];
int currentRow = 0;
rs.beforeFirst();
final String[] headers = {"id barang", "nama", "nama satuan",
"jumlah satuan", "harga satuan"};
while (rs.next()) {
data[currentRow][0] = rs.getString(1);
data[currentRow][1] = rs.getString(2);
data[currentRow][2] = rs.getString(3);
data[currentRow][3] = rs.getString(4);
data[currentRow][4] = rs.getString(5);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
65 37
jPanelData.add(jScrollPaneData);
jScrollPaneData.setBounds(10, 10, 720, 370);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
}
8. Form Menampilkan Data Supplier
Gbr. 4.8 Form Menampilkan Data Supplier
Melalui form ini karyawan bagian pembelian dan manajer dapat
mengetahui data mengenai supplier. Form ini dibentuk dengan file
66 37
bernama MenampilkanDataSupplier.java dimana sintaknya adalah
sebagai berikut :
package pembelian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MemasukkanDataSupplier extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonBersihkan;
private javax.swing.JButton jButtonSetuju;
private javax.swing.JLabel jLabelAlamat;
private javax.swing.JLabel jLabelIdSupplier;
private javax.swing.JLabel jLabelNama;
private javax.swing.JLabel jLabelNoTelp;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldAlamat;
private javax.swing.JTextField jTextFieldIdSupplier;
private javax.swing.JTextField jTextFieldNama;
private javax.swing.JTextField jTextFieldNoTelp;
public MemasukkanDataSupplier() {
initComponents();
}
private void initComponents() {
jPanelData = new javax.swing.JPanel();
jLabelIdSupplier = new javax.swing.JLabel();
jTextFieldIdSupplier = new javax.swing.JTextField();
jLabelNama = new javax.swing.JLabel();
jTextFieldNama = new javax.swing.JTextField();
jLabelAlamat = new javax.swing.JLabel();
jTextFieldAlamat = new javax.swing.JTextField();
jLabelNoTelp = new javax.swing.JLabel();
jTextFieldNoTelp = new javax.swing.JTextField();
jButtonSetuju = new javax.swing.JButton();
jButtonBersihkan = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("memasukkan data supplier");
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(""));
jLabelIdSupplier.setText("id supplier");
jPanelData.add(jLabelIdSupplier);
jLabelIdSupplier.setBounds(10, 10, 80, 20);
jPanelData.add(jTextFieldIdSupplier);
67 37
jTextFieldIdSupplier.setBounds(100, 10, 40, 20);
jLabelNama.setText("nama");
jPanelData.add(jLabelNama);
jLabelNama.setBounds(10, 40, 80, 20);
jPanelData.add(jTextFieldNama);
jTextFieldNama.setBounds(100, 40, 330, 20);
jLabelAlamat.setText("alamat");
jPanelData.add(jLabelAlamat);
jLabelAlamat.setBounds(10, 70, 80, 20);
jPanelData.add(jTextFieldAlamat);
jTextFieldAlamat.setBounds(100, 70, 330, 20);
jLabelNoTelp.setText("no telp");
jPanelData.add(jLabelNoTelp);
jLabelNoTelp.setBounds(10, 100, 80, 20);
jPanelData.add(jTextFieldNoTelp);
jTextFieldNoTelp.setBounds(100, 100, 90, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 10, 440, 130);
jButtonSetuju.setText("setuju");
getContentPane().add(jButtonSetuju);
jButtonSetuju.setBounds(240, 150, 100, 20);
jButtonBersihkan.setText("bersihkan");
getContentPane().add(jButtonBersihkan);
jButtonBersihkan.setBounds(350, 150, 100, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-468)/2, (screenSize.height-214)/2, 468,
214);
jButtonSetuju.addActionListener(this);
jButtonBersihkan.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jButtonSetuju) {
if(jTextFieldIdSupplier.getText().compareTo("") != 0 &&
jTextFieldNama.getText().compareTo("") != 0) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin
data sudah benar ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
String idSupplier, namaSupplier, alamatSupplier,
noTelpSupplier;
idSupplier = jTextFieldIdSupplier.getText();
if(idSupplier.length() < 5)
idSupplier =
idSupplier.substring(0,idSupplier.length());
else
idSupplier = idSupplier.substring(0,5);
68 37
namaSupplier = jTextFieldNama.getText();
if(namaSupplier.length() < 100)
namaSupplier =
namaSupplier.substring(0,namaSupplier.length());
else
namaSupplier = namaSupplier.substring(0,100);
alamatSupplier = jTextFieldAlamat.getText();
if(alamatSupplier.length() < 100)
alamatSupplier =
alamatSupplier.substring(0,alamatSupplier.length());
else
alamatSupplier = alamatSupplier.substring(0,100);
noTelpSupplier = jTextFieldNoTelp.getText();
if(noTelpSupplier.length() < 20)
noTelpSupplier =
noTelpSupplier.substring(0,noTelpSupplier.length());
else
noTelpSupplier = noTelpSupplier.substring(0,20);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "insert into supplier values('" +
idSupplier + "','" + namaSupplier + "','" + alamatSupplier + "','" +
noTelpSupplier + "','biasa');";
statement.execute(sql);
statement.close();
conn.close();
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"sudah ada
supplier dengan id " + jTextFieldIdSupplier.getText() + " pada tabel supplier
!","peringatan",2);
}
}
}
else
JOptionPane.showMessageDialog(null,"kolom id supplier dan
nama supplier tidak boleh kosong !","peringatan",2);
}
if(e.getSource() == jButtonBersihkan) {
jTextFieldIdSupplier.setText("");
jTextFieldNama.setText("");
jTextFieldAlamat.setText("");
jTextFieldNoTelp.setText("");
}
}
}
69 37
9. Form Mengubah Data Supplier
Gbr. 4.9 Form Mengubah Data Supplier
Melalui form ini karyawan bagian pembelian dapat mengubah data
supplier. Data supplier yang dapat diubah adalah alamat, no telepon dan
kategori. Form ini dibentuk dengan file bernama
MengubahDataSupplier.java dimana sintaknya adalah sebagai berikut :
package pembelian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MengubahDataSupplier extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonSetuju;
private javax.swing.JComboBox jComboBoxIdSupplier;
private javax.swing.JComboBox jComboBoxKategori;
private javax.swing.JLabel jLabelAlamat;
private javax.swing.JLabel jLabelIdSupplier;
private javax.swing.JLabel jLabelKategori;
private javax.swing.JLabel jLabelNama;
private javax.swing.JLabel jLabelNoTelp;
70 37
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldAlamat;
private javax.swing.JTextField jTextFieldNama;
private javax.swing.JTextField jTextFieldNoTelp;
int numberOfRow;
String kategori[] = {"biasa","langganan"};
public MengubahDataSupplier() {
initComponents();
}
private void initComponents() {
jLabelIdSupplier = new javax.swing.JLabel();
jComboBoxIdSupplier = new javax.swing.JComboBox();
jPanelData = new javax.swing.JPanel();
jLabelNama = new javax.swing.JLabel();
jTextFieldNama = new javax.swing.JTextField();
jLabelAlamat = new javax.swing.JLabel();
jTextFieldAlamat = new javax.swing.JTextField();
jLabelNoTelp = new javax.swing.JLabel();
jTextFieldNoTelp = new javax.swing.JTextField();
jLabelKategori = new javax.swing.JLabel();
jComboBoxKategori = new javax.swing.JComboBox();
jButtonSetuju = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("mengubah data supplier");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jLabelIdSupplier.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelIdSupplier.setText("id supplier");
getContentPane().add(jLabelIdSupplier);
jLabelIdSupplier.setBounds(260, 10, 80, 20);
getContentPane().add(jComboBoxIdSupplier);
jComboBoxIdSupplier.setBounds(350, 10, 100, 20);
jPanelData.setLayout(null);
jPanelData.setBorder(new javax.swing.border.TitledBorder(""));
jLabelNama.setText("nama");
jPanelData.add(jLabelNama);
jLabelNama.setBounds(10, 10, 80, 20);
jTextFieldNama.setEditable(false);
jPanelData.add(jTextFieldNama);
jTextFieldNama.setBounds(100, 10, 330, 20);
jLabelAlamat.setText("alamat");
jPanelData.add(jLabelAlamat);
jLabelAlamat.setBounds(10, 40, 80, 20);
jPanelData.add(jTextFieldAlamat);
jTextFieldAlamat.setBounds(100, 40, 330, 20);
jLabelNoTelp.setText("no telp");
jPanelData.add(jLabelNoTelp);
71 37
jLabelNoTelp.setBounds(10, 70, 80, 20);
jPanelData.add(jTextFieldNoTelp);
jTextFieldNoTelp.setBounds(100, 70, 90, 20);
jLabelKategori.setText("kategori");
jPanelData.add(jLabelKategori);
jLabelKategori.setBounds(10, 100, 80, 20);
jPanelData.add(jComboBoxKategori);
jComboBoxKategori.setBounds(100, 100, 90, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 40, 440, 130);
jButtonSetuju.setText("setuju");
getContentPane().add(jButtonSetuju);
jButtonSetuju.setBounds(350, 180, 100, 20);
for(int i=0; i<2; i++) {
jComboBoxKategori.addItem(kategori[i]);
}
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-468)/2, (screenSize.height-244)/2, 468,
244);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "select id_supl from supplier";
ResultSet rs = statement.executeQuery(sql);
if(rs.first() == false) {
JOptionPane.showMessageDialog(null,"data supplier masih
kosong.","pesan",1);
jComboBoxIdSupplier.setEnabled(false);
jComboBoxKategori.setEnabled(false);
jTextFieldAlamat.setEditable(false);
jTextFieldNoTelp.setEditable(false);
jButtonSetuju.setEnabled(false);
}
else {
rs.beforeFirst();
while(rs.next()) {
jComboBoxIdSupplier.addItem(rs.getString(1));
}
sql = "select nama, alamat, telp, kategori from supplier where
id_supl = '" + String.valueOf(jComboBoxIdSupplier.getSelectedItem()) + "';";
rs = statement.executeQuery(sql);
rs.first();
jTextFieldNama.setText(rs.getString(1));
jTextFieldAlamat.setText(rs.getString(2));
jTextFieldNoTelp.setText(rs.getString(3));
if(rs.getString(4).compareTo("biasa") == 0) {
jComboBoxKategori.setSelectedIndex(0);
}
else
jComboBoxKategori.setSelectedIndex(1);
statement.close();
conn.close();
72 37
jTextFieldAlamat.setEditable(true);
jTextFieldNoTelp.setEditable(true);
jComboBoxKategori.setEnabled(true);
}
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
jComboBoxIdSupplier.addActionListener(this);
jButtonSetuju.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jComboBoxIdSupplier) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "select nama, alamat, telp, kategori from
supplier where id_supl = '" +
String.valueOf(jComboBoxIdSupplier.getSelectedItem()) + "';";
ResultSet rs = statement.executeQuery(sql);
rs.first();
jTextFieldNama.setText(rs.getString(1));
jTextFieldAlamat.setText(rs.getString(2));
jTextFieldNoTelp.setText(rs.getString(3));
if(rs.getString(4).compareTo("biasa") == 0) {
jComboBoxKategori.setSelectedIndex(0);
}
else
jComboBoxKategori.setSelectedIndex(1);
statement.close();
conn.close();
jTextFieldAlamat.setEditable(true);
jTextFieldNoTelp.setEditable(true);
jComboBoxKategori.setEnabled(true);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
if(e.getSource() == jButtonSetuju) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin data
sudah benar ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
73 37
if(String.valueOf(jComboBoxKategori.getSelectedItem()).compareTo("langganan")
== 0 && jTextFieldAlamat.getText().compareTo("") == 0) {
JOptionPane.showMessageDialog(null,"untuk kategori
supplier langganan, alamat supplier harus diisi !","peringatan",2);
}
else {
String alamatSupplier, telpSupplier;
alamatSupplier = jTextFieldAlamat.getText();
if(alamatSupplier.length() < 100)
alamatSupplier =
alamatSupplier.substring(0,alamatSupplier.length());
else
alamatSupplier = alamatSupplier.substring(0,100);
telpSupplier = jTextFieldNoTelp.getText();
if(telpSupplier.length() < 20)
telpSupplier =
telpSupplier.substring(0,telpSupplier.length());
else
telpSupplier = telpSupplier.substring(0,20);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "update supplier set alamat = '" +
alamatSupplier + "', telp = '" + telpSupplier + "', kategori = '" +
String.valueOf(jComboBoxKategori.getSelectedItem()) + "' where id_supl = '" +
String.valueOf(jComboBoxIdSupplier.getSelectedItem()) + "';";
statement.execute(sql);
statement.close();
conn.close();
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan
pada database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk
keluar dari sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
}
}
}
}
74 37
10. Form Pencarian Data Barang
Gbr. 4.10 Form Pencarian Data Barang
Melalui form ini karyawan bagian pembelian, penjualan dan
manajer dapat melakukan pencarian data stok barang yang dimiliki. Proses
pencarian data dilakukan berdasarkan nama barang. Form ini dibentuk
75 37
dengan file bernama PencarianDataBarang.java dimana sintaknya
adalah sebagai berikut :
package penjualan;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class PencarianDataBarang extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonCari;
private javax.swing.JLabel jLabelNamaBarangYangDicari;
private javax.swing.JPanel jPanelHasilPencarian;
private javax.swing.JPanel jPanelKriteriaPencarian;
private javax.swing.JTextField jTextFieldNamaBarangYangDicari;
int numberOfRow;
Object[][] data = new Object[0][0];
public PencarianDataBarang() {
initComponents();
}
private void initComponents() {
jPanelKriteriaPencarian = new javax.swing.JPanel();
jLabelNamaBarangYangDicari = new javax.swing.JLabel();
jTextFieldNamaBarangYangDicari = new javax.swing.JTextField();
jButtonCari = new javax.swing.JButton();
jPanelHasilPencarian = new javax.swing.JPanel();
getContentPane().setLayout(null);
setTitle("pencarian data barang");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanelKriteriaPencarian.setLayout(null);
jPanelKriteriaPencarian.setBorder(new
javax.swing.border.TitledBorder(""));
jLabelNamaBarangYangDicari.setText("nama barang yang dicari");
jPanelKriteriaPencarian.add(jLabelNamaBarangYangDicari);
jLabelNamaBarangYangDicari.setBounds(10, 10, 160, 20);
jPanelKriteriaPencarian.add(jTextFieldNamaBarangYangDicari);
jTextFieldNamaBarangYangDicari.setBounds(180, 10, 350, 20);
jButtonCari.setText("cari");
jPanelKriteriaPencarian.add(jButtonCari);
jButtonCari.setBounds(540, 10, 150, 20);
getContentPane().add(jPanelKriteriaPencarian);
jPanelKriteriaPencarian.setBounds(10, 10, 700, 40);
76 37
jPanelHasilPencarian.setLayout(null);
jPanelHasilPencarian.setBorder(new
javax.swing.border.TitledBorder(""));
getContentPane().add(jPanelHasilPencarian);
jPanelHasilPencarian.setBounds(10, 60, 700, 350);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-728)/2, (screenSize.height-454)/2, 728,
454);
jButtonCari.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPenjualan().show();
}
public void actionPerformed(ActionEvent e) {
jPanelHasilPencarian.removeAll();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.12:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "select * from barang where nama like '%" +
jTextFieldNamaBarangYangDicari.getText() + "%';";
ResultSet rs = statement.executeQuery(sql);
rs.last();
numberOfRow = rs.getRow();
data = new Object[numberOfRow][5];
int currentRow = 0;
rs.beforeFirst();
final String[] headers = {"id barang", "nama", "nama satuan",
"jumlah satuan", "harga satuan"};
while (rs.next()) {
data[currentRow][0] = rs.getString(1);
data[currentRow][1] = rs.getString(2);
data[currentRow][2] = rs.getString(3);
data[currentRow][3] = rs.getString(4);
data[currentRow][4] = rs.getString(5);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
jPanelHasilPencarian.add(jScrollPaneData);
jScrollPaneData.setBounds(10, 10, 680, 330);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
77 37
System.exit(0);
}
}
}
11. Form Pencarian Data Supplier
Gbr. 4.11 Form Pencarian Data Supplier
Melalui form ini karyawan bagian pembelian dan manajer dapat
melakukan pencarian data supplier. Proses pencarian data bisa dilakukan
berdasarkan nama supplier, alamat dan kategori supplier. Form ini
78 37
dibentuk dengan file bernama PencarianDataSupplier.java dimana
sintaknya adalah sebagai berikut :
package pembelian;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class PencarianDataSupplier extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonCari;
private javax.swing.JCheckBox jCheckBoxPencarianBerdasarkanAlamat;
private javax.swing.JCheckBox jCheckBoxPencarianBerdasarkanKategori;
private javax.swing.JCheckBox jCheckBoxPencarianBerdasarkanNama;
private javax.swing.JComboBox jComboBoxPencarianBerdasarkanKategori;
private javax.swing.JPanel jPanelHasilPencarian;
private javax.swing.JPanel jPanelKriteriaPencarian;
private javax.swing.JTextField jTextFieldPencarianBerdasarkanAlamat;
private javax.swing.JTextField jTextFieldPencarianBerdasarkanNama;
int numberOfRow;
Object[][] data = new Object[0][0];
String arrayKategori[] = {"biasa","langganan"};
public PencarianDataSupplier() {
initComponents();
}
private void initComponents() {
jPanelKriteriaPencarian = new javax.swing.JPanel();
jCheckBoxPencarianBerdasarkanNama = new javax.swing.JCheckBox();
jTextFieldPencarianBerdasarkanNama = new javax.swing.JTextField();
jCheckBoxPencarianBerdasarkanKategori = new javax.swing.JCheckBox();
jComboBoxPencarianBerdasarkanKategori = new javax.swing.JComboBox();
jCheckBoxPencarianBerdasarkanAlamat = new javax.swing.JCheckBox();
jTextFieldPencarianBerdasarkanAlamat = new javax.swing.JTextField();
jButtonCari = new javax.swing.JButton();
jPanelHasilPencarian = new javax.swing.JPanel();
getContentPane().setLayout(null);
setTitle("pencarian data supplier");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanelKriteriaPencarian.setLayout(null);
jPanelKriteriaPencarian.setBorder(new
javax.swing.border.TitledBorder(""));
jCheckBoxPencarianBerdasarkanNama.setText("pencarian berdasarkan
nama");
jPanelKriteriaPencarian.add(jCheckBoxPencarianBerdasarkanNama);
jCheckBoxPencarianBerdasarkanNama.setBounds(10, 10, 200, 20);
79 37
jPanelKriteriaPencarian.add(jTextFieldPencarianBerdasarkanNama);
jTextFieldPencarianBerdasarkanNama.setBounds(220, 10, 150, 20);
jCheckBoxPencarianBerdasarkanKategori.setText("pencarian berdasarkan
kategori");
jPanelKriteriaPencarian.add(jCheckBoxPencarianBerdasarkanKategori);
jCheckBoxPencarianBerdasarkanKategori.setBounds(380, 10, 210, 20);
jPanelKriteriaPencarian.add(jComboBoxPencarianBerdasarkanKategori);
jComboBoxPencarianBerdasarkanKategori.setBounds(600, 10, 120, 20);
jCheckBoxPencarianBerdasarkanAlamat.setText("pencarian berdasarkan
alamat");
jPanelKriteriaPencarian.add(jCheckBoxPencarianBerdasarkanAlamat);
jCheckBoxPencarianBerdasarkanAlamat.setBounds(10, 40, 200, 20);
jPanelKriteriaPencarian.add(jTextFieldPencarianBerdasarkanAlamat);
jTextFieldPencarianBerdasarkanAlamat.setBounds(220, 40, 150, 20);
jButtonCari.setText("cari");
jPanelKriteriaPencarian.add(jButtonCari);
jButtonCari.setBounds(380, 40, 340, 20);
getContentPane().add(jPanelKriteriaPencarian);
jPanelKriteriaPencarian.setBounds(10, 10, 730, 70);
jPanelHasilPencarian.setLayout(null);
jPanelHasilPencarian.setBorder(new
javax.swing.border.TitledBorder(""));
getContentPane().add(jPanelHasilPencarian);
jPanelHasilPencarian.setBounds(10, 90, 730, 360);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-760)/2, (screenSize.height-496)/2, 760,
496);
for(int i=0; i<2; i++) {
jComboBoxPencarianBerdasarkanKategori.addItem(arrayKategori[i]);
}
jTextFieldPencarianBerdasarkanAlamat.setEditable(false);
jTextFieldPencarianBerdasarkanNama.setEditable(false);
jComboBoxPencarianBerdasarkanKategori.setEnabled(false);
jButtonCari.setEnabled(false);
jCheckBoxPencarianBerdasarkanNama.addActionListener(this);
jCheckBoxPencarianBerdasarkanAlamat.addActionListener(this);
jCheckBoxPencarianBerdasarkanKategori.addActionListener(this);
jButtonCari.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MemasukkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
jPanelHasilPencarian.removeAll();
if(e.getSource() == jCheckBoxPencarianBerdasarkanNama) {
jTextFieldPencarianBerdasarkanNama.setText("");
if(jCheckBoxPencarianBerdasarkanNama.isSelected())
80 37
jTextFieldPencarianBerdasarkanNama.setEditable(true);
else
jTextFieldPencarianBerdasarkanNama.setEditable(false);
}
if(e.getSource() == jCheckBoxPencarianBerdasarkanAlamat) {
jTextFieldPencarianBerdasarkanAlamat.setText("");
if(jCheckBoxPencarianBerdasarkanAlamat.isSelected())
jTextFieldPencarianBerdasarkanAlamat.setEditable(true);
else
jTextFieldPencarianBerdasarkanAlamat.setEditable(false);
}
if(e.getSource() == jCheckBoxPencarianBerdasarkanKategori) {
if(jCheckBoxPencarianBerdasarkanKategori.isSelected())
jComboBoxPencarianBerdasarkanKategori.setEnabled(true);
else
jComboBoxPencarianBerdasarkanKategori.setEnabled(false);
}
if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() ||
jCheckBoxPencarianBerdasarkanNama.isSelected() ||
jCheckBoxPencarianBerdasarkanKategori.isSelected()) {
jButtonCari.setEnabled(true);
}
else
jButtonCari.setEnabled(false);
if(e.getSource() == jButtonCari) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection("jdbc:mysql://192.168.0.11:3306/grosir?user=root&p
assword=root");
Statement statement = conn.createStatement();
String sql = "";
if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() &&
jCheckBoxPencarianBerdasarkanNama.isSelected() == false &&
jCheckBoxPencarianBerdasarkanKategori.isSelected() == false) {
sql = "select * from supplier where alamat like '%" +
jTextFieldPencarianBerdasarkanAlamat.getText() + "%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() ==
false && jCheckBoxPencarianBerdasarkanNama.isSelected() &&
jCheckBoxPencarianBerdasarkanKategori.isSelected() == false) {
sql = "select * from supplier where nama like '%" +
jTextFieldPencarianBerdasarkanNama.getText() + "%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() ==
false && jCheckBoxPencarianBerdasarkanNama.isSelected() == false &&
jCheckBoxPencarianBerdasarkanKategori.isSelected()) {
sql = "select * from supplier where kategori like '%" +
String.valueOf(jComboBoxPencarianBerdasarkanKategori.getSelectedItem()) +
"%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() &&
jCheckBoxPencarianBerdasarkanNama.isSelected() &&
jCheckBoxPencarianBerdasarkanKategori.isSelected() == false) {
sql = "select * from supplier where alamat like '%" +
jTextFieldPencarianBerdasarkanAlamat.getText() + "%' and nama like '%" +
jTextFieldPencarianBerdasarkanNama.getText() + "%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() &&
jCheckBoxPencarianBerdasarkanNama.isSelected() == false &&
jCheckBoxPencarianBerdasarkanKategori.isSelected()) {
sql = "select * from supplier where alamat like '%" +
jTextFieldPencarianBerdasarkanAlamat.getText() + "%' and kategori like '%" +
81 37
String.valueOf(jComboBoxPencarianBerdasarkanKategori.getSelectedItem()) +
"%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() ==
false && jCheckBoxPencarianBerdasarkanNama.isSelected() &&
jCheckBoxPencarianBerdasarkanKategori.isSelected()) {
sql = "select * from supplier where nama like '%" +
jTextFieldPencarianBerdasarkanNama.getText() + "%' and kategori like '%" +
String.valueOf(jComboBoxPencarianBerdasarkanKategori.getSelectedItem()) +
"%';";
}
else if(jCheckBoxPencarianBerdasarkanAlamat.isSelected() &&
jCheckBoxPencarianBerdasarkanNama.isSelected() &&
jCheckBoxPencarianBerdasarkanKategori.isSelected()) {
sql = "select * from supplier where alamat like '%" +
jTextFieldPencarianBerdasarkanAlamat.getText() + "%' and nama like '%" +
jTextFieldPencarianBerdasarkanNama.getText() + "%' and kategori like '%" +
String.valueOf(jComboBoxPencarianBerdasarkanKategori.getSelectedItem()) +
"%';";
}
ResultSet rs = statement.executeQuery(sql);
rs.last();
numberOfRow = rs.getRow();
data = new Object[numberOfRow][5];
int currentRow = 0;
rs.beforeFirst();
final String[] headers = {"id supplier", "nama", "alamat",
"telp", "kategori"};
while (rs.next()) {
data[currentRow][0] = rs.getString(1);
data[currentRow][1] = rs.getString(2);
data[currentRow][2] = rs.getString(3);
data[currentRow][3] = rs.getString(4);
data[currentRow][4] = rs.getString(5);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
jPanelHasilPencarian.add(jScrollPaneData);
jScrollPaneData.setBounds(10, 10, 710, 340);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
}
}
82 37
12. Form Laporan Data Pembelian Barang
Gbr. 4.12 Form Laporan Data Pembelian Barang
Melalui form ini manajer dapat melihat data order pembelian atas
barang dagangan selama periode tertentu. Form ini dibentuk dengan file
83 37
bernama LaporanPembelian.java dimana sintaknya adalah sebagai
berikut :
package manajer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class LaporanPembelian extends javax.swing.JFrame implements
ActionListener {
//private javax.swing.JButton jButtonCetak;
private javax.swing.JLabel jLabelJenisBarangDibeli;
private javax.swing.JLabel jLabelTglLaporan;
private javax.swing.JLabel jLabelTotalKasKeluar;
private javax.swing.JPanel jPanelData;
private javax.swing.JPanel jPanelLaporan;
Object[][] data = new Object[0][0];
int numberOfRow;
String tglMulai, tglSelesai;
public LaporanPembelian(String inTglMulai, String inTglSelesai) {
tglMulai = inTglMulai;
tglSelesai = inTglSelesai;
initComponents();
}
private void initComponents() {
jPanelLaporan = new javax.swing.JPanel();
jLabelTglLaporan = new javax.swing.JLabel();
jLabelJenisBarangDibeli = new javax.swing.JLabel();
jPanelData = new javax.swing.JPanel();
jLabelTotalKasKeluar = new javax.swing.JLabel();
//jButtonCetak = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("laporan pembelian barang");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanelLaporan.setLayout(null);
jPanelLaporan.setBorder(new javax.swing.border.TitledBorder(""));
jLabelTglLaporan.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelTglLaporan.setText("laporan pembelian pada (thn-bln-tgl) : ");
jPanelLaporan.add(jLabelTglLaporan);
jLabelTglLaporan.setBounds(10, 10, 510, 20);
jLabelJenisBarangDibeli.setHorizontalAlignment(javax.swing.SwingConstants.RIGH
T);
84 37
jLabelJenisBarangDibeli.setText("jenis barang yang dibeli :");
jPanelLaporan.add(jLabelJenisBarangDibeli);
jLabelJenisBarangDibeli.setBounds(10, 40, 510, 20);
jPanelData.setLayout(null);
jPanelData.setBorder(new javax.swing.border.TitledBorder(""));
jPanelLaporan.add(jPanelData);
jPanelData.setBounds(10, 70, 510, 160);
jLabelTotalKasKeluar.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelTotalKasKeluar.setText("total jumlah kas keluar untuk pembelian
barang :");
jPanelLaporan.add(jLabelTotalKasKeluar);
jLabelTotalKasKeluar.setBounds(10, 240, 510, 20);
getContentPane().add(jPanelLaporan);
jPanelLaporan.setBounds(10, 10, 530, 270);
//jButtonCetak.setText("cetak");
//getContentPane().add(jButtonCetak);
//jButtonCetak.setBounds(390, 290, 150, 20);
//java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
//setBounds((screenSize.width-557)/2, (screenSize.height-355)/2, 557,
355);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-557)/2, (screenSize.height-325)/2, 557,
325);
jLabelTglLaporan.setText(jLabelTglLaporan.getText() + tglMulai + " s/d
" + tglSelesai + ".");
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 sqlTotalBiaya = "select jml_satuan, hrg_beli_per_satuan,
jml_satuan * hrg_beli_per_satuan as total from order_beli where tgl between '"
+ tglMulai + "' and '" + tglSelesai + "';";
ResultSet rsTotalBiaya = statement.executeQuery(sqlTotalBiaya);
double totalBiaya = 0;
while(rsTotalBiaya.next()) {
totalBiaya = totalBiaya + rsTotalBiaya.getDouble(3);
}
jLabelTotalKasKeluar.setText(jLabelTotalKasKeluar.getText() + " "
+ String.valueOf(totalBiaya));
String sqlJenisBrg = "select id_brg, nama from barang where id_brg
= any (select id_brg from order_beli where tgl between '" + tglMulai + "' and
'" + tglSelesai + "');";
ResultSet rsJenisBrg = statement.executeQuery(sqlJenisBrg);
if(rsJenisBrg.next() == false) {
jLabelJenisBarangDibeli.setText(jLabelJenisBarangDibeli.getText() + " 0");
}
else {
85 37
rsJenisBrg.last();
numberOfRow = rsJenisBrg.getRow();
jLabelJenisBarangDibeli.setText(jLabelJenisBarangDibeli.getText() + " " +
String.valueOf(numberOfRow));
}
Object[][] data = new Object[numberOfRow][2];
rsJenisBrg.beforeFirst();
int currentRow = 0;
final String[] headers = {"id barang", "nama barang"};
while(rsJenisBrg.next()) {
data[currentRow][0] = rsJenisBrg.getString(1);
data[currentRow][1] = rsJenisBrg.getString(2);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
jPanelData.add(jScrollPaneData);
jScrollPaneData.setBounds(0, 0, 510, 160);
}
catch(Exception exc) {
System.out.print(exc);
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MenampilkanDataOrderPembelian().show();
}
public void actionPerformed(ActionEvent e) {
}
}
13. Form Laporan Data Penjualan Barang
86 37
Gbr. 4.13 Form Laporan Data Penjualan Barang
Melalui form ini manajer dapat melihat data order penjualan atas
barang dagangan selama periode tertentu. Form ini dibentuk dengan file
bernama LaporanPenjualan.java dimana sintaknya adalah sebagai
berikut :
package manajer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class LaporanPenjualan extends javax.swing.JFrame implements
ActionListener {
//private javax.swing.JButton jButtonCetak;
private javax.swing.JLabel jLabelJenisBarangDijual;
private javax.swing.JLabel jLabelTglLaporan;
private javax.swing.JLabel jLabelTotalKasMasuk;
private javax.swing.JPanel jPanelData;
private javax.swing.JPanel jPanelLaporan;
87 37
Object[][] data = new Object[0][0];
int numberOfRow;
String tglMulai, tglSelesai;
public LaporanPenjualan(String inTglMulai, String inTglSelesai) {
tglMulai = inTglMulai;
tglSelesai = inTglSelesai;
initComponents();
}
private void initComponents() {
jPanelLaporan = new javax.swing.JPanel();
jLabelTglLaporan = new javax.swing.JLabel();
jLabelJenisBarangDijual = new javax.swing.JLabel();
jPanelData = new javax.swing.JPanel();
jLabelTotalKasMasuk = new javax.swing.JLabel();
//jButtonCetak = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("laporan penjualan barang");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jPanelLaporan.setLayout(null);
jPanelLaporan.setBorder(new javax.swing.border.TitledBorder(""));
jLabelTglLaporan.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelTglLaporan.setText("laporan penjualan pada (thn-bln-tgl) : ");
jPanelLaporan.add(jLabelTglLaporan);
jLabelTglLaporan.setBounds(10, 10, 510, 20);
jLabelJenisBarangDijual.setHorizontalAlignment(javax.swing.SwingConstants.RIGH
T);
jLabelJenisBarangDijual.setText("jenis barang yang terjual :");
jPanelLaporan.add(jLabelJenisBarangDijual);
jLabelJenisBarangDijual.setBounds(10, 40, 510, 20);
jPanelData.setLayout(null);
jPanelData.setBorder(new javax.swing.border.TitledBorder(""));
jPanelLaporan.add(jPanelData);
jPanelData.setBounds(10, 70, 510, 160);
jLabelTotalKasMasuk.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelTotalKasMasuk.setText("total jumlah kas diterima atas penjualan
barang :");
jPanelLaporan.add(jLabelTotalKasMasuk);
jLabelTotalKasMasuk.setBounds(10, 240, 510, 20);
getContentPane().add(jPanelLaporan);
jPanelLaporan.setBounds(10, 10, 530, 270);
//jButtonCetak.setText("cetak");
//getContentPane().add(jButtonCetak);
//jButtonCetak.setBounds(390, 290, 150, 20);
88 37
//java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
//setBounds((screenSize.width-557)/2, (screenSize.height-355)/2, 557,
355);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-557)/2, (screenSize.height-325)/2, 557,
325);
jLabelTglLaporan.setText(jLabelTglLaporan.getText() + tglMulai + " s/d
" + tglSelesai + ".");
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 sqlTotalBiaya = "select jml_satuan, hrg_jual_per_satuan,
jml_satuan * hrg_jual_per_satuan as total from order_jual where tgl between '"
+ tglMulai + "' and '" + tglSelesai + "';";
ResultSet rsTotalBiaya = statement.executeQuery(sqlTotalBiaya);
double totalBiaya = 0;
while(rsTotalBiaya.next()) {
totalBiaya = totalBiaya + rsTotalBiaya.getDouble(3);
}
jLabelTotalKasMasuk.setText(jLabelTotalKasMasuk.getText() + " " +
String.valueOf(totalBiaya));
String sqlJenisBrg = "select id_brg, nama from barang where id_brg
= any (select id_brg from order_jual where tgl between '" + tglMulai + "' and
'" + tglSelesai + "');";
ResultSet rsJenisBrg = statement.executeQuery(sqlJenisBrg);
if(rsJenisBrg.next() == false) {
jLabelJenisBarangDijual.setText(jLabelJenisBarangDijual.getText() + " 0");
}
else {
rsJenisBrg.last();
numberOfRow = rsJenisBrg.getRow();
jLabelJenisBarangDijual.setText(jLabelJenisBarangDijual.getText() + " " +
String.valueOf(numberOfRow));
}
Object[][] data = new Object[numberOfRow][2];
rsJenisBrg.beforeFirst();
int currentRow = 0;
final String[] headers = {"id barang", "nama barang"};
while(rsJenisBrg.next()) {
data[currentRow][0] = rsJenisBrg.getString(1);
data[currentRow][1] = rsJenisBrg.getString(2);
currentRow++;
}
statement.close();
conn.close();
JTable jTableData = new JTable(data, headers);
jTableData.setEnabled(false);
JScrollPane jScrollPaneData = new JScrollPane(jTableData);
jPanelData.add(jScrollPaneData);
89 37
jScrollPaneData.setBounds(0, 0, 510, 160);
}
catch(Exception exc) {
System.out.print(exc);
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MenampilkanDataOrderPenjualan().show();
}
public void actionPerformed(ActionEvent e) {
}
}
14. Form Data Karyawan
Gbr. 4.14 Form Data Karyawan
90 37
Melalui form ini manajer dapat melihat data karyawan dan
merubah nama dan kata sandi karyawan operator komputer. Data
karyawan ditampilkan record per record. Form ini dibentuk dengan file
bernama PencarianDataSupplier.java dimana sintaknya adalah sebagai
berikut :
package manajer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MenampilkanDataKaryawan extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonNext;
private javax.swing.JButton jButtonPrev;
private javax.swing.JButton jButtonUbahData;
private javax.swing.JLabel jLabelDivisi;
private javax.swing.JLabel jLabelIdKaryawan;
private javax.swing.JLabel jLabelNamaKaryawan;
private javax.swing.JLabel jLabelSandi;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldDivisi;
private javax.swing.JTextField jTextFieldIdKaryawan;
private javax.swing.JTextField jTextFieldNamaKaryawan;
private javax.swing.JTextField jTextFieldSandi;
int numberOfRow;
int currentRow = 1;
public MenampilkanDataKaryawan() {
initComponents();
}
private void initComponents() {
jPanelData = new javax.swing.JPanel();
jLabelIdKaryawan = new javax.swing.JLabel();
jTextFieldIdKaryawan = new javax.swing.JTextField();
jLabelNamaKaryawan = new javax.swing.JLabel();
jTextFieldNamaKaryawan = new javax.swing.JTextField();
jLabelSandi = new javax.swing.JLabel();
jTextFieldSandi = new javax.swing.JTextField();
jLabelDivisi = new javax.swing.JLabel();
jTextFieldDivisi = new javax.swing.JTextField();
jButtonPrev = new javax.swing.JButton();
jButtonUbahData = new javax.swing.JButton();
jButtonNext = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("data karyawan");
91 37
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(""));
jLabelIdKaryawan.setText("id karyawan");
jPanelData.add(jLabelIdKaryawan);
jLabelIdKaryawan.setBounds(10, 10, 80, 20);
jTextFieldIdKaryawan.setEditable(false);
jPanelData.add(jTextFieldIdKaryawan);
jTextFieldIdKaryawan.setBounds(110, 10, 40, 20);
jLabelNamaKaryawan.setText("nama");
jPanelData.add(jLabelNamaKaryawan);
jLabelNamaKaryawan.setBounds(10, 40, 80, 20);
jPanelData.add(jTextFieldNamaKaryawan);
jTextFieldNamaKaryawan.setBounds(110, 40, 130, 20);
jLabelSandi.setText("sandi");
jPanelData.add(jLabelSandi);
jLabelSandi.setBounds(10, 70, 80, 20);
jPanelData.add(jTextFieldSandi);
jTextFieldSandi.setBounds(110, 70, 130, 20);
jLabelDivisi.setText("divisi");
jPanelData.add(jLabelDivisi);
jLabelDivisi.setBounds(10, 100, 80, 20);
jTextFieldDivisi.setEditable(false);
jPanelData.add(jTextFieldDivisi);
jTextFieldDivisi.setBounds(110, 100, 130, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 10, 250, 130);
jButtonPrev.setText("<<");
getContentPane().add(jButtonPrev);
jButtonPrev.setBounds(30, 150, 50, 20);
jButtonUbahData.setText("ubah data");
getContentPane().add(jButtonUbahData);
jButtonUbahData.setBounds(90, 150, 90, 20);
jButtonNext.setText(">>");
getContentPane().add(jButtonNext);
jButtonNext.setBounds(190, 150, 50, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-278)/2, (screenSize.height-216)/2, 278,
216);
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");
92 37
Statement statement = conn.createStatement();
String sql = "select * from karyawan;";
ResultSet rs = statement.executeQuery(sql);
rs.first();
jTextFieldIdKaryawan.setText(rs.getString(1));
jTextFieldNamaKaryawan.setText(rs.getString(2));
jTextFieldSandi.setText(rs.getString(3));
jTextFieldDivisi.setText(rs.getString(4));
statement.close();
conn.close();
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
jButtonPrev.setEnabled(false);
jButtonPrev.addActionListener(this);
jButtonUbahData.addActionListener(this);
jButtonNext.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new FormManajer().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jButtonPrev || e.getSource() == jButtonNext) {
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 * from karyawan;";
ResultSet rs = statement.executeQuery(sql);
if(e.getSource() == jButtonNext) {
currentRow++;
rs.absolute(currentRow);
jButtonPrev.setEnabled(true);
if(rs.isLast())
jButtonNext.setEnabled(false);
}
if(e.getSource() == jButtonPrev) {
currentRow--;
rs.absolute(currentRow);
jButtonNext.setEnabled(true);
if(rs.isFirst())
jButtonPrev.setEnabled(false);
}
rs.absolute(currentRow);
jTextFieldIdKaryawan.setText(rs.getString(1));
jTextFieldNamaKaryawan.setText(rs.getString(2));
jTextFieldSandi.setText(rs.getString(3));
jTextFieldDivisi.setText(rs.getString(4));
statement.close();
conn.close();
93 37
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
if(e.getSource() == jButtonUbahData) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin akan
mengubah data ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
try {
String namaKary, sandi;
namaKary = jTextFieldNamaKaryawan.getText();
if(namaKary.length() < 20)
namaKary = namaKary.substring(0,namaKary.length());
else
namaKary = namaKary.substring(0,20);
sandi = jTextFieldSandi.getText();
if(sandi.length() < 20)
sandi = sandi.substring(0,sandi.length());
else
sandi = sandi.substring(0,20);
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 = "update karyawan set nama = '" + namaKary +
"', sandi = '" + sandi + "' where id_kary = '" +
jTextFieldIdKaryawan.getText() + "';";
statement.execute(sql);
statement.close();
conn.close();
JOptionPane.showMessageDialog(null,"anda telah merubah
data karyawan yang mempunyai id " + jTextFieldIdKaryawan.getText() + ",\n" +
"dengan username " + namaKary + " dan kata sandi " +
sandi + ".","pesan",1);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar
dari sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
}
}
}
15. Form Mengubah Harga Barang
94 37
Gbr. 4.15 Form Mengubah Harga Barang
Melalui form ini manajer dapat mengubah harga jual
barangdagangan. Form ini dibentuk dengan file bernama
MengubahHargaBarang.java dimana sintaknya adalah sebagai berikut :
package manajer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class MengubahHargaBarang extends javax.swing.JFrame implements
ActionListener {
private javax.swing.JButton jButtonUbah;
private javax.swing.JComboBox jComboBoxIdBarang;
private javax.swing.JLabel jLabelHargaSatuan;
private javax.swing.JLabel jLabelIdBarang;
private javax.swing.JLabel jLabelJumlahStok;
private javax.swing.JLabel jLabelNamaBarang;
private javax.swing.JLabel jLabelSatuan;
private javax.swing.JPanel jPanelData;
private javax.swing.JTextField jTextFieldHargaSatuan;
private javax.swing.JTextField jTextFieldJumlahStok;
private javax.swing.JTextField jTextFieldNamaBarang;
private javax.swing.JTextField jTextFieldSatuan;
95 37
public MengubahHargaBarang() {
initComponents();
}
private void initComponents() {
jLabelIdBarang = new javax.swing.JLabel();
jComboBoxIdBarang = new javax.swing.JComboBox();
jPanelData = new javax.swing.JPanel();
jLabelNamaBarang = new javax.swing.JLabel();
jTextFieldNamaBarang = new javax.swing.JTextField();
jLabelJumlahStok = new javax.swing.JLabel();
jTextFieldJumlahStok = new javax.swing.JTextField();
jLabelSatuan = new javax.swing.JLabel();
jTextFieldSatuan = new javax.swing.JTextField();
jLabelHargaSatuan = new javax.swing.JLabel();
jTextFieldHargaSatuan = new javax.swing.JTextField();
jButtonUbah = new javax.swing.JButton();
getContentPane().setLayout(null);
setTitle("mengubah harga barang");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jLabelIdBarang.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
jLabelIdBarang.setText("id barang");
getContentPane().add(jLabelIdBarang);
jLabelIdBarang.setBounds(310, 10, 60, 20);
getContentPane().add(jComboBoxIdBarang);
jComboBoxIdBarang.setBounds(380, 10, 80, 20);
jPanelData.setLayout(null);
jPanelData.setBorder(new javax.swing.border.TitledBorder(""));
jLabelNamaBarang.setText("nama barang");
jPanelData.add(jLabelNamaBarang);
jLabelNamaBarang.setBounds(10, 10, 90, 20);
jTextFieldNamaBarang.setEditable(false);
jPanelData.add(jTextFieldNamaBarang);
jTextFieldNamaBarang.setBounds(110, 10, 330, 20);
jLabelJumlahStok.setText("jumlah stok");
jPanelData.add(jLabelJumlahStok);
jLabelJumlahStok.setBounds(10, 40, 90, 20);
jTextFieldJumlahStok.setEditable(false);
jPanelData.add(jTextFieldJumlahStok);
jTextFieldJumlahStok.setBounds(110, 40, 80, 20);
jLabelSatuan.setText("satuan");
jPanelData.add(jLabelSatuan);
jLabelSatuan.setBounds(10, 70, 90, 20);
jTextFieldSatuan.setEditable(false);
jPanelData.add(jTextFieldSatuan);
jTextFieldSatuan.setBounds(110, 70, 80, 20);
96 37
jLabelHargaSatuan.setText("harga satuan");
jPanelData.add(jLabelHargaSatuan);
jLabelHargaSatuan.setBounds(10, 100, 90, 20);
jPanelData.add(jTextFieldHargaSatuan);
jTextFieldHargaSatuan.setBounds(110, 100, 80, 20);
getContentPane().add(jPanelData);
jPanelData.setBounds(10, 40, 450, 130);
jButtonUbah.setText("ubah");
getContentPane().add(jButtonUbah);
jButtonUbah.setBounds(380, 180, 80, 20);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-478)/2, (screenSize.height-247)/2, 478,
247);
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 id_brg from barang";
ResultSet rs = statement.executeQuery(sql);
if(rs.first() == false) {
JOptionPane.showMessageDialog(null,"data barang masih
kosong.","pesan",1);
jComboBoxIdBarang.setEnabled(false);
jTextFieldNamaBarang.setEditable(false);
jTextFieldJumlahStok.setEditable(false);
jTextFieldSatuan.setEditable(false);
jTextFieldHargaSatuan.setEditable(false);
jButtonUbah.setEnabled(false);
}
else {
rs.beforeFirst();
while(rs.next()) {
jComboBoxIdBarang.addItem(rs.getString(1));
}
sql = "select nama, nama_satuan, jml_satuan, hrg_satuan from
barang where id_brg = '" + String.valueOf(jComboBoxIdBarang.getSelectedItem())
+ "';";
rs = statement.executeQuery(sql);
rs.first();
jTextFieldNamaBarang.setText(rs.getString(1));
jTextFieldSatuan.setText(rs.getString(2));
jTextFieldJumlahStok.setText(rs.getString(3));
jTextFieldHargaSatuan.setText(rs.getString(4));
statement.close();
conn.close();
jTextFieldHargaSatuan.setEditable(true);
}
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
97 37
jComboBoxIdBarang.addActionListener(this);
jButtonUbah.addActionListener(this);
}
private void exitForm(java.awt.event.WindowEvent evt) {
this.dispose();
new MenampilkanDataBarang().show();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jComboBoxIdBarang) {
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, nama_satuan, jml_satuan, hrg_satuan
from barang where id_brg = '" +
String.valueOf(jComboBoxIdBarang.getSelectedItem()) + "';";
ResultSet rs = statement.executeQuery(sql);
rs.first();
jTextFieldNamaBarang.setText(rs.getString(1));
jTextFieldSatuan.setText(rs.getString(2));
jTextFieldJumlahStok.setText(rs.getString(3));
jTextFieldHargaSatuan.setText(rs.getString(4));
statement.close();
conn.close();
jTextFieldHargaSatuan.setEditable(true);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"terjadi kesalahan pada
database ! \n" +
"tekan 'ok' atau tutup form dialog ini untuk keluar dari
sistem.\n" +
"segera hubungi administrator !","peringatan",2);
System.exit(0);
}
}
if(e.getSource() == jButtonUbah) {
if(jTextFieldHargaSatuan.getText().compareTo("") != 0) {
int pilihan = JOptionPane.showConfirmDialog(null,"anda yakin
data sudah benar ?","konfirmasi",JOptionPane.YES_NO_OPTION);
if(pilihan == 0) {
try {
double hrgBaru =
Double.parseDouble(jTextFieldHargaSatuan.getText());
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 = "update barang set hrg_satuan = '" +
String.valueOf(hrgBaru) + "' where id_brg = '" +
String.valueOf(jComboBoxIdBarang.getSelectedItem()) + "';";
statement.execute(sql);
statement.close();
JOptionPane.showMessageDialog(null,"harga barang telah
diubah.","pesan",1);
}
catch(Exception exc) {
JOptionPane.showMessageDialog(null,"kolom harga barang
harus diisi dengan data numerik !","peringatan",2);
98 37
}
}
}
else
JOptionPane.showMessageDialog(null,"kolom harga satuan tidak
boleh kosong !","peringatan",2);
}
}
}
97
BAB V
ANALISA HASIL IMPLEMENTASI
Implementasi program client server ini dilakukan melalui tiga perangkat
komputer yang saling terhubung, dimana sebuah komputer menjadi server dan
komputer yang lain menjadi client.
5.1. Kelebihan dan Kekurangan Sistem
Aplikasi program ini memiliki beberapa kekurangan baik dalam
perancangan, pengkodean maupun dalam hal teknis pelaksanaan.
5.1.1. Kelebihan Sistem
Adanya fasilitas searching pada form menu barang dan supplier.
5.1.2. Kekurangan Sistem
1. Tidak adanya program auto refresh pada menu menampilkan
data barang baru bagi manajer, sehingga manajer harus
melakukan action kepada sistem agar data yang di update bisa
ditampilkan dalam menu.
2. Sistem yang ada belum dapat melakukan pencetakan laporan
pembelian dan penjualan..
98
BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Berdasarkan hasil dari implementasi yang telah dilakukan, dapat
disimpulkan:
1. Aplikasi yang dibangun dapat membantu manajer dalam
memperoleh informasi pembelian, penjualan dan stok barang pada
grosir yang dimilikinya.
2. Aplikasi yang dibangun memudahkan bagian pembelian dan
penjualan dalam melakukan pencatatan data pembelian dan
penjualan.
6.2. Saran
Beberapa saran yang perlu dipertimbangkan untuk pengembangan
sistem ini ke depan antara lain:
1. Aplikasi ini dapat dikembangkan menjadi sistem informasi
akuntansi sehingga dapat menangani pencatatan transaksi secara
lebih detil.
2. Aplikasi ini dapat dikembangkan untuk menangani transaksi
pembelian dan penjualan yang dilakukan secara kredit, sehingga
bisa menangani proses utang dagang dalam transaksi jual beli
barang.
99
DAFTAR PUSTAKA
Panca, Budi Pria, Tujuh Kriteria Dasar Informasi, http://www.sony-ak.com, 2006 [15
September 2006].
Whitten, Bentley Dittman, System Analysis and Design Method 6th
Edition,
Irwin/McGraw-Hill, New York, 2004.
Jogiyanto, Sistem Teknologi Informasi – Edisi III, Andi, Yogyakarta, 2005.
Gunawan, Ridowati, Diktat Kuliah Rekayasa Perangkat Lunak II Teknik Informatika
Universitas Sanata Dharma, Yogyakarta, 2004.
Polina, A.M, Diktat Kuliah Basis Data I Teknik informatika Universitas Sanata Dharma,
Yogyakarta, 2003.