Oleh:
NIM NAMA
1. 1211511637 MUHAMMAD ANGGA N. F.
2. 1211511652 DENIS SATIO
3. 1211511710 FRENDY TRISNO BARUS
SEMESTER GASAL
2015/2016
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BUDI LUHUR
LEMBAR PENGESAHAN
NIM NAMA
Penguji,
Purwanto, S.Si, M.Kom ……………………………..........
Pembimbing,
............................................
Muhammad Ainur Rony, S.Kom, M.T.I
ii
ABSTRAKSI
Judul : Implementasi SMS Gateway Pemesanan Jasa Servis Mobil Pada PT.
Istana Kebon Jeruk - Jakarta
PT. Istana Kebon Jeruk merupakan authorized Honda dealer, perusahaan ini bergerak di
bidang penjualan, jasa perawatan, dan perbaikan kendaraan beroda empat, dengan standar
mutu dealer, penyediaan suku cadang asli Honda. Sistem pemesanan jasa servis mobil pada
PT. Istana Kebon Jeruk masih dilakukan secara manual sehingga untuk meningkatkan
kepuasan pelanggan dan meningkatkan layanan diperlukan adanya aplikasi SMS gateway
sebagai sarana pemesanan melalui SMS. Aplikasi yang dibuat menggunakan metode
pengembang waterfall, bahasa pemrograman Java dan database MySQL. Pada aplikasi ini
pelanggan dapat memesan jasa servis melalui SMS, sebelum melakukan pemesanan
pelanggan dapat mengecek pemesanan pada jam yang diinginkan pada hari yang sama atau
satu hari sebelum servis. Pelanggan juga dapat mengecek harga paket yang tersedia, selain
itu pelanggan dapat mengubah jam dan tanggal pesanan yang telah dipesan sebelumnya,
pelanggan dapat melakukan pembatalan pesanan sebelum melakukan konfirmasi
pembayaran. Aplikasi ini juga dapat menerima kritik dan saran yang dikirimkan pelanggan
melalui pesan SMS, selain dari sisi pelanggan aplikasi ini dapat mengirimkan pesan dari pihak
PT. Istana Kebon Jeruk melalui pesan broadcast sebagai sarana informasi kepada pelanggan.
Kesimpulan dari penelitian ini adalah dengan adanya aplikasi SMS gateway sebagai sarana
pemesanan jasa servis di PT. Istana Kebon Jeruk, maka dapat mempercepat proses
pemesanan jasa servis lebih realtime dan pelanggan bisa melakukan pemesanan pada hari
yang sama atau satu hari sebelum servis dan dimanapun tempat pengirim SMS berada.
Kata Kunci : servis mobil, pemesanan jasa, PT. Istana Kebon Jeruk, SMS Gateway
iii
SURAT KETERANGAN SELESAI RISET DARI PT. ISTANA KEBON JERUK
iv
KATA PENGANTAR
Alhamdulillah, segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang
telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Kuliah
Kerja Praktik (KKP) dengan judul “Implementasi SMS Gateway Pemesanan Jasa Servis Mobil
pada PT. Istana Kebon Jeruk – Jakarta” ini dengan semestinya.
Adapun laporan Kuliah Kerja Praktik (KKP) ini disusun untuk memenuhi syarat
kelulusan jenjang Strata Satu (S-1) pada program studi Teknik Informatika Fakultas
Teknologi Informasi Universitas Budi Luhur. Dalam pengerjaannya banyak yang bisa penulis
jadikan pelajaran untuk bekal yang berguna untuk masa yang akan datang, sebuah
pengalaman yang sangat banyak memberi arti kepada diri penulis untuk menghadapi
tantangan yang telah ada dan menunggu.
Selesainya Kuliah Kerja Praktik (KKP) ini juga tidak lepas dari berbagai pihak yang
telah banyak membantu dan memberikan dorongan baik secara moril dan materiil yang
sangat besar sehingga penulis dapat menyelesaikan Kuliah Kerja Praktik (KKP) ini. Dan tidak
lupa pada kesempatan ini penulis ingin mengucapkan terima kasih kepada :
1. Allah SWT atas Limpahan Rahmat dan Hidayah-Nya.
2. Ayah dan Ibu serta keluarga tercinta, yang telah memberikan dukungan baik secara
moril maupun materiil.
3. Bapak Prof. Ir. Suryo Hapsoro Tri Utomo, Ph.D. selaku Rektor Universitas Budi Luhur
Jakarta.
4. Bapak Goenawan Brotosaputro, S.Kom., M.Sc. selaku Dekan Fakultas Teknologi
Informasi Universitas Budi Luhur.
5. Bapak Muhammad Ainur Rony, S.Kom., M.T.I. selaku Ketua Program Studi Teknik
Informatika, Fakultas Teknologi Informasi Universitas Budi Luhur.
6. Ibu Safitri Juanita, M.T.I., selaku Dosen Pembimbing Penyusunan Kuliah Kerja Praktik
(KKP) ini.
7. Bapak Muhammad Arsyad selaku General Manager PT. Istana Kebon Jeruk
8. Teman – teman yang berada di Universitas Budi Luhur yang telah banyak membantu dan
saling memberi semangat. Semoga persahabatan kita tidak hanya sebatas di kampus
saja, tetapi untuk selamanya. Selamanya kita adalah keluarga.
Seluruh Karyawan PT Istana Kebon Jeruk - Jakarta yang telah meluangkan waktunya
untuk memberikan keterangan yang dibutuhkan. Penulis paham dan mengerti bahwa masih
banyak kekurangan dalam penulisan Kuliah Kerja Praktik (KKP) ini. Akan tetapi penulis
mengharapkan laporan Kuliah Kerja Praktik (KKP) ini dapat memberikan manfaat bagi
seluruh pembaca secara umum, kritik dan saran yang membangun sangat diperlukan untuk
memperbaiki karya – karya ilmiah berikutnya.
Akhir kata kepada semua pihak yang telah membantu terwujudnya laporan Kuliah
Kerja Praktik (KKP) ini semoga Tuhan selalu melimpahkan Rahmat dan Karunia-Nya. Amin.
Penulis
v
DAFTAR TABEL
Halaman
Tabel 2.1 : Tabel AT Command .......................................... .................................9
Tabel 2.2 : Daftar SMSC ………………………………………………….................................10
Tabel 2.3 : Skema Format SMS Submit PDU……………………...................................12
Tabel 2.4 : Servis Center Address ....................................................................... 12
Tabel 2.5 : PDU Type ................................... .....................................................12
Tabel 2.6 : Destination Address .......................................................................... 13
Tabel 2.7 : Validity Period ................................................................................... 13
Tabel 2.8 : User Data ......................................................................................... 14
Tabel 2.9 : Skema format SMS PDU Penerima ..................................................... 14
Tabel 2.10 : Service Center Address ...................................................................... 15
Tabel 2.11 : PDU Type ......................................................................................... 15
Tabel 2.12 : Originated Address ............................................................................ 15
Tabel 2.13 : Format Penulisan OA ......................................................................... 16
Tabel 2.14 : Penentuan Message class .................................................................. 16
Tabel 2.15 : Service Center Time Stamp................................................................ 16
Tabel 2.16 : User Data ......................................................................................... 17
Tabel 2.17 : Kode ASCII ....................................................................................... 17
Tabel 2.18 : Tabel Default Alphabet 7 bit (septet).................................................. 18
Tabel 3.1 : Format SMS ...................................................................................... 24
Tabel 3.2 : Spesifikasi Tabel Adminitrator ............................................................ 27
Tabel 3.3 : Spesifikasi Tabel Kwitansi .................................................................. 27
Tabel 3.4 : Spesifikasi Tabel Mobil ...................................................................... 27
Tabel 3.5 : Spesifikasi Tabel Paket_Service .......................................................... 28
Tabel 3.6 : Spesifikasi Tabel Pelanggan ............................................................... 28
Tabel 3.7 : Spesifikasi Tabel Saran ...................................................................... 28
Tabel 3.8 : Spesifikasi Tabel Service .................................................................... 28
Tabel 3.9 : Spesifikasi Tabel Service_detil............................................................ 29
Tabel 3.10 : Spesifikasi Tabel Inbox ...................................................................... 29
Tabel 3.11 : Spesifikasi Tabel Outbox.................................................................... 30
vi
DAFTAR GAMBAR
Halaman
Gambar 1.1 : Model Waterfall ..................................................................... 3
Gambar 2.1 : Alur SMS antara dua MS (Talukder, 2010) .............................. 6
Gambar 2.2 : Mekanisme pengiriman SMS (Store and Forward) .................... 8
Gambar 2.3 : Pengecekan Mode Menggunakan Hyper Terminal .................... 10
Gambar 2.4 : Diagram SMS Gateway .......................................................... 19
Gambar 3.1 : Pola Pikir Penelitian ............................................................... 21
Gambar 3.2 : Skema Pengiriman dan Penerimaan ........................................ 23
Gambar 3.3 : ERD (Entity Relationship Diagram) ......................................... 25
Gambar 3.4 : Transformasi ER-Diagram ke LRS (Logic Record Structure) ...... 26
Gambar 3.5 : LRS (Logic Record Struture) ................................................... 26
Gambar 3.6 : Rancangan Layar Form Login ................................................. 30
Gambar 3.7 : Rancangan Layar form Menu Utama Server ............................ 31
Gambar 3.8 : Rancangan Layar Form Master Admin ..................................... 31
Gambar 3.9 : Rancangan Layar Form Master Lihat Data Administrator .......... 32
Gambar 3.10 : Rancangan Layar Form Master Pelanggan ............................... 32
Gambar 3.11 : Rancangan Layar Form Master Pelanggan Lihat data ............... 33
Gambar 3.12 : Rancangan Layar Form Master Data Mobil .............................. 33
Gambar 3.13 : Rancangan Layar Form Master Lihat Data Mobil ...................... 34
Gambar 3.14 : Rancangan Layar Form Master Jenis Paket Servis .................... 34
Gambar 3.15 : Rancangan Layar From Master Lihat Data Jenis Paket Servis .... 35
Gambar 3.16 : Rancangan Layar Form Master Transaksi Pemesanan Servis .... 35
Gambar 3.17 : Rancangan Layar Form Lihat Data Transaksi Pemesanan Servis 36
Gambar 3.18 : Rancangan Layar Form Cetak Kwitansi ................................... 36
Gambar 3.19 : Rancangan Layar Form Lihat Data Transaksi Kwitansi .............. 37
Gambar 3.20 : Rancangan Layar Form Cetak Laporan Pelanggan ................... 37
Gambar 3.21 : Rancangan Layar Form Cetak Laporan Pemesanan .................. 38
Gambar 3.22 : Rancangan Layar Form Broadcast SMS ................................... 38
Gambar 3.23 : Rancangan Layar Form Inbox ................................................ 39
Gambar 3.24 : Rancangan Layar Form Outbox .............................................. 39
Gambar 3.25 : Rancangan Layar Form Saran ................................................ 40
Gambar 3.26 : Flowchart Tampilan Form Login ............................................. 41
Gambar 3.27 : Flowchart Tampilan Form Menu Utama ................................... 42
Gambar 3.38 : Flowchart Tampilan Form Administrator ................................. 44
Gambar 3.29 : Flowchart Master Pelanggan .................................................. 45
Gambar 3.30 : Flowchart Paket Servis ........................................................... 46
Gambar 3.31 : Flowchart SMS Cek Tempat Servis .......................................... 47
Gambar 3.32 : Flowchart Master Mobil .......................................................... 48
Gambar 3.33 : Flowchart Transaksi Kwitansi ................................................. 49
Gambar 3.34 : Flowchart Laporan Pelanggan ................................................ 50
Gambar 3.35 : Flowchart Laporan Pemesanan ............................................... 51
Gambar 3.36 : Flowchart Transaksi Servis ..................................................... 52
Gambar 3.37 : Flowchart Pesan Servis Melalui SMS ....................................... 53
Gambar 3.38 : Flowchart SMS Kirim Saran .................................................... 54
Gambar 3.39 : Flowchart SMS Batal Pesan Servis .......................................... 55
Gambar 3.40 : Flowchart SMS Cek Harga paket Servis ................................... 56
Gambar 3.41 : Flowchart SMS Konfirmasi Pembayaran .................................. 56
vii
Gambar 4.1 : Koneksi Handphone ke Komputer Melalui Bluetooth ................ 59
Gambar 4.2 : Tampilan Layar Form Login .................................................... 59
Gambar 4.3 : Tampilan Layar Form Menu Utama ......................................... 60
Gambar 4.4 : Tampilan Layar Form Master Entry Data Pelanggan ................. 60
Gambar 4.5 : Tampilan Layar Form Master Lihat Data Pelanggan ................. 61
Gambar 4.6 : Tampilan Layar Form Entry Data Mobil ................................... 61
Gambar 4.7 : Tampilan Layar Form Lihat Data Mobil .................................... 62
Gambar 4.8 : Tampilan Layar Form Master Entry Data Paket Servis .............. 62
Gambar 4.9 : Tampilan Layar Form Master Lihat Data Paket Servis ............... 63
Gambar 4.10 : Tampilan Layar Form Master Entry Data Admin ...................... 63
Gambar 4.11 : Tampilan Layar Form Master Lihat Data Admin ....................... 64
Gambar 4.12 : Tampilan Layar Form Entry Data Pesan Servis Mobil ................ 64
Gambar 4.13 : Tampilan Layar Form Lihat Data Pesan Servis Mobil ................ 65
Gambar 4.14 : Tampilan Layar Form Entry Data Kwitansi ............................... 65
Gambar 4.15 : Tampilan Layar Form Lihat Data Kwitansi ............................... 66
Gambar 4.16 : Tampilan Layar Form Report Pelanggan.................................. 66
Gambar 4.17 : Tampilan Layar Form Report Pesanan .................................... 67
Gambar 4.18 : Tampilan Layar Form Broadcast ............................................. 67
Gambar 4.19 : Tampilan Layar Form Saran ................................................... 68
Gambar 4.20 : Tampilan Form Data Inbox .................................................... 68
Gambar 4.21 : Tampilan Form Data Outbox .................................................. 69
Gambar 4.22 : Tampilan Form Panduan ........................................................ 69
Gambar 4.23 : Tampilan Layar Balasan Request Layanan SMS ....................... 70
Gambar 4.24 : Tampilan Layar Balasan Request Layanan SMS ....................... 70
Gambar 4.25 : Tampilan Layar Balasan Request Layanan SMS ....................... 71
Gambar 4.26 : Tampilan Layar Balasan Request Layanan SMS ....................... 71
Gambar 4.27 : Tampilan Layar Balasan Request Cek Tempat dan Waktu ........ 72
Gambar 4.28 : Tampilan Layar Balasan Request Cek Harga ............................ 72
Gambar 4.29 : Tampilan Layar Balasan Request Pemesanan Servis Tanpa Bonus 73
Gambar 4.30 : Tampilan Layar Balasan Request Pemesanan Servis Bonus ...... 73
Gambar 4.31 : Tampilan Layar Balasan Request Batal …………..… ................... 74
Gambar 4.32 : Tampilan Layar Balasan Request Ubah Pesanan Servis ….......... 74
Gambar 4.33 : Tampilan Layar Balasan Request Konfirmasi Pembayaran............. 75
Gambar 4.34 : Tampilan Layar Balasan Request Saran ………………….….…........... 75
viii
DAFTAR SIMBOL
1. Flowchart
ix
Document, simbol yang menyatakan input berasal
dari dokumen dalam bentuk kertas atau output dicetak
ke kertas
Entity Set
Merupakan sekumpulan objek, tempat
yang menunjukkan dimana data dicatat atau
disimpan.
Relationship
Menggambarkan hubungan yang terjadi
Cardinality
Menggambarkan tingkat hubungan yang terjadi
pada dua buah entitas.
Garis
Menunjukkan garis penghubung
x
DAFTAR ISI
Halaman
LEMBAR JUDUL ...................................................................................................... i
LEMBAR PENGESAHAN ........................................................................................... ii
ABSTRAKSI ............................................................................................................ iii
LEMBAR SURAT SELESAI RISET .............................................................................. iv
KATA PENGANTAR ................................................................................................. v
DAFTAR TABEL ...................................................................................................... vi
DAFTAR GAMBAR ................................................................................................... vii
DAFTAR SIMBOL .................................................................................................... ix
DAFTAR ISI ........................................................................................................... xi
xi
j. Simpulan Hasil Riset ................................................................ 22
2. Program Aplikasi ............................................................................ 22
a. Analisa Aplikasi Usulan ............................................................. 22
b. Metode Kerja Aplikasi Usulan.................................................... 23
3. Rancangan Basis Data .................................................................... 25
a. ER-Diagram ............................................................................. 25
b. Transformasi ER-Diagram ke Logika Record Structure ................ 26
c. Logical Record Structure. .......................................................... 26
d. Spesifikasi Basis Data. ............................................................. 27
1) Tabel Administrator ........................................................ 27
2) Tabel Kwitansi ............................................................... 27
3) Tabel Mobil .................................................................... 27
4) Tabel Paket Service ........................................................ 27
5) Tabel Pelanggan ............................................................ 28
6) Tabel Saran ................................................................. 28
7) Tabel Service ................................................................. 28
8) Tabel Service Detil ......................................................... 29
9) Tabel SMS Inbox ............................................................ 29
10) Tabel SMS Outbox.......................................................... 29
4. Rancangan Layar ............................................................................ 30
a. Rancangan Layar Form Login ................................................... 30
b. Rancangan Layar Form Menu Utama Server .............................. 30
c. Rancangan Layar Form Master Administrator.............. . ............. 31
d. Rancangan Layar Form Master Lihat Data Administrator ............ 31
e. Rancangan Layar Form Master Pelanggan ................................. 32
f. Rancangan Layar Form Master Lihat Data Pelanggan ................. 32
g. Rancangan Layar Form Master Data Mobil ................................ 33
h. Rancangan Layar Form Master Lihat Data Mobil ........................ 33
i. Rancangan Layar Form Master Jenis Paket Servis ...................... 34
j. Rancangan Layar Form Master Lihat Data Jenis Paket Servis ...... 35
k. Rancangan Layar Form Master Transaksi Pemesanan Servis ....... 35
l. Rancangan Layar Form Master Lihat Data Transaksi Pemesanan
Servis .................................................................................... 36
m. Rancangan Layar Form Transaksi Kwitansi ................................ 36
n. Rancangan Layar Form Lihat Data Transaksi Kwitansi ................ 37
o. Rancangan Layar Form Cetak Laporan Pelanggan...................... 37
p. Rancangan Layar Form Cetak Laporan Pemesanan .................... 38
q. Rancangan Layar Form Broadcast SMS ..................................... 38
r. Rancangan Layar Form Inbox ................................................... 39
s. Rancangan Layar Form Outbox ................................................ 39
t. Rancangan Layar Form Saran ................................................... 40
5. Flowchart ....................................................................................... 40
a. Flowchart Form Login .............................................................. 40
b. Flowchart Form Menu Utama ................................................... 41
c. Flowchart Tampilan Form Master Administrator ......................... 43
d. Flowchart Tampilan Form Master Pelanggan.............................. 45
e. Flowchart Form Paket Servis .................................................... 46
f. Flowchart SMS Cek Tempat Servis Kosong ................................ 47
g. Flowchart Form Master Mobil ................................................... 48
xii
h. Flowchart Transaksi Kwitansi .................................................... 49
i. Flowchart Laporan Pelanggan. .................................................. 50
j. Flowchart Laporan Pemesanan..... ............................................ 51
k. Flowchart Transaksi Servis ....................................................... 52
l. Flowchart Pesan Servis Melalui SMS .......................................... 53
m. Flowchart Kirim Saran .............................................................. 54
n. Flowchart Batal Pesan Servis................................. .................. . 55
o. Flowchart Cek Harga Servis................ ..................................... . 55
p. Flowchart Konfirmasi Pembayaran ......................................... ... 56
xiii
2. Saran ............................................................................................ 77
xiv
BAB I
PENDAHULUAN
1. Latar Belakang
PT. Istana Kebon Jeruk yang berlokasi di Jl.Panjang nomor 200, Kebon Jeruk –
Jakarta Barat, merupakan authorized Honda dealer atau perwakilan resmi Honda dealer,
perusahaan yang bergerak di bidang penjualan, jasa perawatan, dan perbaikan
kendaraan bermotor, khususnya mobil Honda, dengan standar mutu dealer, penyediaan
suku cadang asli, dan penjualan unit kendaraan baru Honda.
PT. Istana Kebon Jeruk sangat mengutamakan kepuasan pelanggan. Paradigma
sistem pelayanan yang semula berbasis konvensional kini mulai beralih ke Teknologi
Informasi dan Komunikasi (TIK) seiring dengan berkembangnya kemajuan TIK
ditengah-tengah kehidupan dan aktivitas masyarakat. Melalui TIK, pencatatan data
pelanggan dan info dapat dilaksanakan dengan mudah, lebih sitematik, efektif dan
efisien. Dengan teknologi yang terkomputerisasi, kita dapat melakukan penghematan
waktu dan tenaga untuk melakukan suatu pekerjaan.
PT. Istana Kebon Jeruk memiliki calon pelanggan yang menghubungi untuk melihat
informasi antrian servis, untuk mencegah terjadinya ketidakakuratan data, redudansi
data dan data terisolasi maka sangat diperlukan sebuah sistem yang terorganisir dan
suatu basis data, namun PT. Istana Kebon Jeruk masih menggunakan sistem
pemesanan jasa servis mobil manual dan sehingga diperlukan layanan pemesanan jasa
servis yang dapat membantu pelanggan memesan jasa servis lebih realtime.
Berhubungan dengan masalah diatas, Kuliah Kerja Praktek (KKP) ini membuat
Implementasi SMS Gateway Pemesanan Jasa Servis Mobil pada PT. Istana Kebon Jeruk
– Jakarta.
2. Rumusan Masalah
Berdasarkan latar belakang yang telah dijabarkan, KKP ini membahas mengenai
pemesanan jasa servis mobil pada PT. Istana Kebon Jeruk yang masih menggunakan
sistem pemesanan manual, untuk mencegah terjadinya ketidak akuratan data,
redudansi data dan data terisolasi, maka dapat disimpulkan rumusan permasalahan
sebagai berikut, yaitu :
a. Bagaimana cara pelanggan dapat memesan jasa servis yang realtime?
b. Bagaimana cara untuk mencegah terjadinya ketidakakuratan data, redudansi data
dan data terisolasi?
c. Bagaimana membuat dan merancang sistem pemesanan jasa servis mobil pada PT.
Istana Kebon Jeruk?
d. Bagaimana cara pembuatan laporan data pemesan jasa servis dengan waktu yang
efisien dan akurat?
3. Tujuan Penulisan
Berdasarkan latar belakang dan masalah yang telah dijabarkan di atas, maka
tujuan penulisan Kuliah Kerja Praktek (KKP) ini adalah:
a. Menyediakan sistem informasi layanan interaktif secara langsung kepada pelanggan
dan karyawan PT. Istana Kebon Jeruk.
b. Meningkatkan kualitas pelayanan yang terjangkau dan fleksibel.
c. Menghemat waktu dan tenaga pelanggan dalam melakukan pemesanan jasa servis.
d. Memperkenalkan fasilitas SMS gateway untuk meningkatkan kinerja karyawan.
1
2
Requirements
Definition
System and
Software Design
Implementation
and Unit Testing
Integration and
System Testing
Operation and
Maintenance
6. Sistematika Penulisan
Pembahasan Kuliah Kerja Praktek (KKP) ini dibagi ke dalam bab per bab untuk
mempermudah di dalam pembahasan sistem. Tiap bab masih merupakan satu kesatuan,
dengan beberapa perincian sebagai berikut :
4
BAB I : PENDAHULUAN
Dalam Bab ini dibahas mengenai latar belakang pembuatan Kuliah Kerja Praktek
(KKP), permasalahan yang dihadapi, tujuan yang diharapkan untuk mengatasi
permasalahan batasan-batasan dari masalah yang dibahas, metode perancangan
dan sistematika penulisan Kuliah Kerja Praktek (KKP).
Bab ini membahas tentang teori - teori dasar yang berkaitan dengan pembuatan
aplikasi ini, mulai dari teori yang bersifat umum sampai teori yang membahas
tentang perangkat lunak yang digunakan untuk membuat aplikasi SMS.
Pada bab ini berisikan tentang uraian permasalahan yang dihadapi, penyelesaian
masalah, jenis perangkat lunak, sistem operasi, dan jenis komputer yang
digunakan, termasuk di dalamnya rancangan layar, flowchart, algoritma program,
dan struktur data yang digunakan.
Dalam bab ini pembahasannya adalah mengenai implementasi, cara kerja program
yang di kembangkan, evaluasi terhadap sistem yang diusulkan serta
pengembangan lebih lanjut dari program yang ada.
BAB V : PENUTUP
Bab ini menuliskan mengenai kesimpulan yang didapat dari hasil analisa bab – bab
sebelumnya serta saran yang dapat berguna bagi pengembangan aplikasi ini
selanjutnya.
BAB II
LANDASAN TEORI
5
6
g) Jika diminta oleh SME, maka SMSC akan mengirimkan laporan status SME yang
mengindikasikan terkirimnya message.
2) SM MO (Short Message Mobile Originate Point to Point )
Adalah kemampuan sistem GSM untuk mentransfer pesan singkat dari suatu
MS ke SME (Short Message Entity) melalui SC, serta meengirimkan kembali
inormasi pengiriman baik itu berhasil ataupun tidak. Proses routing pengiriman
SMS-MO sebagai berikut:
a) MS akan membangkitkan data berupa message yang akan dikirimkan ke MSC.
b) MSC akan mengintrogasi VLR apakah MS yang bersangkutan memiliki layanan
SMS atau tidak dalam proses autentifikasi.
c) MSC akan mengirimkan SM ke SMSC melalui SMS melalui SMS-IWMSC dengan
format forward short message.
d) SMSC akan mengirimkan message ke SME.
e) SMSC akan memberikan SMSC Aknowledgment ke MSC bahwa pengiriman
forward short message telah berlangsung sukses.
f) MSC akan memberikan laporan pengiriman kepada MS yang bersangkutan.
c. Karakteristik SMS
Karakteristik utama SMS adalah SMS merupakan sebuah sistem pengiriman data
dalam paket yang bersifat out-of-band dengan bandwith kecil. Dengan karakteristik ini,
pengiriman suatu burst data yang sangat pendek dapat dilakukan dengan efisiensi
yang sangat tinggi.(Wiharto, 2011).
Selain itu SMS memiliki beberapa karakteristik penting, antara lain :
1) Sebuah pesan singkat yang umumnya terdiri dari 160 karakter (encoding huruf
latin) termasuk spasi.
7
2) SMS dapat dikirimkan ke perangkat stasiun seluler digital lainnya hanya dalam
beberapa detik selama berada pada jangkauan pelayanan GSM (Global System for
Mobile Communication).
3) Perinsip kerjanya adalah menyimpan dan manyampaikan pesan (Store and Forward
Massage). Pesan tidak langsung dikirimkan ke penerima melainkan disimpan
terlebih dahulu di SMSC.
4) Setiap pesan yang berhasil dikirimkan oleh pengirim maka SC ( Service Center) akan
mengirimkan laporan keberhasilan atau kegagalan ke pengirim.
d. Keuntungan SMS
Pada tingkat minimum, keuntungan yang dapat diberikan SMS bagi pemakai
meliputi: pengiriman notifikasi dan peringatan (alert), penyampaian pesan yang
terjamin, handal, mekanisme komunikasi dengan biaya rendah, kemampuan untuk
menyaring pesan dan menanggapi panggilan secara selektif, meningkatnya
produktifitas pelanggan.(Wiharto, 2011)
Pada dasarnya SMS mempunyai manfaat sebagai berikut :
1) Menerima dan mengirim pesan.
2) Memiliki tingkat kegagalan kirim yang sangat kecil sehingga pesan kemungkinan
besar akan sampai tujuan meskipun perangkat yang dituju sedang tidak aktif yang
di sebabkan karena sedang dalam kondisi mati atau berada di luar jangkauan
layanan GSM.
3) Merupakan sebuah mekanisme komunikasi yang tergolong membutuhkan biaya
sangat murah.
Untuk fungsionalitas yang canggih, SMS memberikan beberapa keuntungan
tambahan bagi pelanggan yaitu pengiriman pesan kebeberapa pelanggan sekaligus,
kemampuan menerima informasi yang beragam, integrasi dengan aplikasi data dan
aplikasi berbasis internet lainnya.
Jadi secara umum keuntungan SMS bagi pelanggan adalah kenyamanan,
fleksibilitas, dan integrasi yang tak ketara antar pesan dan akses data.
Keberhasilan dan popularitas SMS antara lain disebabkan oleh :
1) Harga per kiriman tetap/konstan. Apabila beban biaya telepon bervariasi maka
beban biaya kiriman SMS tetap/konstan. Hal ini berpengaruh terutama kepada
pelanggan yang menggunakan kartu GSM pra-bayar yang mempunyai kredit pulsa
terbatas pasa telepon selulernya.
2) Keamanan dan kesopanan. Apabila kita hendak menggunakan telepon seluler
ditempat umum, maka berbicara menggunakannya dirasakan kurang sopan dan
kurang aman, namun sebaliknya mengirim pesan menggunakan SMS adalah lebih
sopan dan privacy lebih terjaga
3) Tidak mengganggu penerima. Seperti halnya e-mail, SMS sebagai alat komunikasi
tidak mengganggu penerima, karena penerima bisa kapan saja dan dimana saja
selama masih mendapat sinyal.
4) Handal (reliable). Jaringan GSM secara umum diakui kehandalannya dalam
transmisi data, dan SMS mewarisi kehandalan tersebut.
tujuan (mobile terminated), akan tetapi terlebih dahulu ke SMSC, baru kemudian
pesan tersebut dikirimkan ke handphone tujuan. SMSC merupakan sebuah perangkat
yang melakukan tugas store and forward trafik short message.(Wiharto, 2011) seperti
pada Gambar 2.2:
Pengiriman pesan SMS secara store and forward yaitu pengiriman SMS
memasukkan pesan SMS dan nomor tujuan dan kemudian mengirimkannya (store) ke
server SMS (SMS Center) yang kemudian bertanggung jawab mengirimkan pesan SMS
tersebut (forward) ke nomor telepon tujuan. Didalamnya termasuk penentuan atau
pencarian rute tujuan akhir dari short message dari berbagai sumber seperti Voice Mail
System (VMS), Web-based messaging, E-mail Integration, External Short Messaging
Entities (ESME), dan lain-lain.
Hal ini berarti bahwa pengiriman dan penerima SMS tidak perlu dalam status
berhubungan (connected/online) satu sama lain ketika akan saling bertukar pesan
SMS. Pengiriman pesan SMS secara store and forward berarti pengiriman pesan SMS
menuliskan pesan dan nomor telepon tujuan dan kemudian mengirimkannya (store) ke
server SMS (SMS-Center) yang kemudian bertanggung jawab untuk mengirimkan
pesan tersebut (forward) ke nomor telepon tujuan. Hal ini mirip dengan mekanisme
store and forward pada protokol SMTP yang digunakan dalam pengiriman e-mail
internet. Keuntungan mekanisme store and forward pada SMS adalah, penerima tidak
perlu dalam status online ketika ada pengiriman yang bermaksud mengirimkan pesan
kepadanya. Karena pesan akan dikirim oleh pengirim ke SMSC yang kemudian dapat
menunggu untuk meneruskan pesan tersebut ke penerima ketika ia siap dan dalam
status online di lain waktu. Ketika pesan SMS telah terkirim dan diterima oleh SMSC,
pengirim akan menerima pesan singkat (konfirmasi) bahwa pesan telah terkirim
(message sent). Hal-hal inilah yang menjadi kelebihan SMS dan dikenal sebagai
layanan praktis dari sistem telekomunikasi bergerak.
9
1) AT Command
Dibalik teks SMS yang diterima dan dikirim pada sebuah telepon seluler
sebenarnya adalah sebuah perintah AT Command yang bertugas mengirim atau
menerima data dari dan ke SMS Center. Perintah AT Command tiap-tiap SMS
device bisa berbeda-beda, setiap vendor biasanya memberikan referensi tentang
daftar perintah AT yang tersedia atau bisa di download di internet. AT Command
digunakan untuk berkomunikasi dengan terminal melalui serial port pada
komputer.Dengan menggunakan perintah AT, kita dapat mengetahui kekuatan
sinyal dari terminal, mengirim pesan, menambahkan item pada buku alamat,
mematikan terminal dan banyak fungsi lainnya. Salah satu software yang
digunakan untuk mengetes perintah AT Command adalah windows HyperTerminal
yang biasanya telah tersedia bersama windows installer, sehingga hanya perlu
menambahkan software tersebut dari control panel.
AT Command bisa juga digunakan untuk fungsi lain dari phone, kebanyakan
dari fungsi bisa digunakan sebagai bagian dari MMI (Man Machine Interface), yaitu
tersedia melalui AT Command. Contohnya bisa mengirim sms, membaca sms, cek
kekuatan baterai, atau menulis daftar buku telpon, mengikuti daftar dari AT
Command yang mendukung sms (Talukder, 2010). Tidak semua perintah AT
digunakan pada program, yang diambil hanya yang diperlukan saja, misal untuk
mengirim, membaca, menghapus dan menerima pesan dari terminal. AT Command
yang umum digunakan adalah :
Perintah AT Kegunaan
AT Mengecek apakah handphone
telah terhubung
AT+CMGF Menetapkan format mode
dan terminal
AT+CSCS Menetapkan jenis encoding
AT+CNMI Mendeteksi pesan SMS baru
masuk secara otomatis
AT+CMGL Membuka daftar SMS yang
ada pada SIM Card
AT+CMGS Mengirim pesan SMS
AT+CMGR Membaca pesan SMS
AT+CMGD Menghapus pesan SMS
Data yang mengalir kea tau dari SMSC harus dalam bentuk PDU (Protocol Data
Unit) PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O.
PDU terdiri dari beberapa header yang berbeda pada saat kirim dari SMS ke SMSC
dengan saat SMS diterima dari SNSC.
PDU untuk mengirim SMS terdiri dari delapan header, yaitu sebagai berikut :
a) Nomor SMSC
Header pertama ini terdiri dari tiga subHeader :
(1) Jumlah pasangan heksadesimal SMSC dalam bilangan heksa.
(2) Nasional atau Internasional code.
(3) Nomor SMSC dalam pasangan heksa dibalik-balik, jika tertinggal satu angka
yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan
huruf F di depannya.
Berikut ini adalah daftar SMSC pada beberapa operator di Indonesia dan cara
penulisannya.
b) Tipe SMS
Untuk send type SMS = 1. Jadi bilangan heksanya adalah 01.
Sebenarnya terdapat dua mode pengiriman SMS, yaitu mode teks dan mode
PDU (Protocol Data Unit).Akan tetapi, sistem mode teks tidak didukung oleh semua
operator GSM maupun terminal. Pada terminal kita dapat mengecek menggunakan
perintah “AT+CMGF=1”. Jika hasilnya error, dapat dipastikan bahwa terminal anda
tidak mendukung mode teks.
A. Text Mode
Mode ini adalah cara termudah untuk mengirim pesan. Pada mode teks
pesan yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam
bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140
(8 bit) karakter. Sebenarnya mode teks adalah hasil encode yang
direpresentasikan dalam bentuk format PDU. Kelemahannya, kita tidak dapat
menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta
terbatasnya tipe encoding.
B. PDU (Protocol Data Unit)
PDU mode adalah format message dalam heksa desimal octet dan semi-
desimal octet dengan panjang mencapai 160 (7 bit default alphabet) atau 140
(8 bit) karakter. Kelebihan menggunakan mode PDU adalah kita dapat
melakukan encoding sendiri tentunya harus pula didukung oleh hardware dan
operator GSM, melakukan kompresi data, menambahkan nada dering dan
gambar pada pesan yang akan dikirim. Beberapa tipe encoding yang umum
digunakan adalah “PCCP437”, “PCDN”, “8859-1”, “IRA” dan “GSM”. Anda dapat
12
SMS Submit PDU ialah pesan yang dikirim dari handphone ke terminal yang
kemudian dikirimkan ke SMSC (Wesołowski, 2002). Pada prinsipnya apabila kita
mengirim pesan ke nomor tujuan pesan itu akan melalui SMSC.
Pesan yang akan dikirimkan oleh terminal masih dalam bentuk teks,
sedangkan dalam pengiriman ke SMSC harus dalam bentuk PDU. Untuk itu sebelum
dikirim terminal atau handphone akan melakukan perubahan dari format teks
menjadi format PDU, proses ini disebut proses encodec. Adapun skema dari format
SMS Submit PDU telah diatur dan ditetapkan oleh ETSI sebagai berikut :
b) PDU Type
Nilai default dari PDU Type untuk SMS Submit adalah 10 heksa. Pada contoh di
atas, PDU Type adalah 10 yang memiliki arti :
Keterangan :
Pada contoh diatas, waktu VP-nya 4 hari, maka nilai VP adalah 166 + 4 = 170 d =
AA h. Jadi pada Validity Period hasilnya adalah AA.
Dari tabel diatas terlihat bahwa hasil dari pengkodean adalah AOC4E610527
Selanjutnya kode tersebut akan dikirimkan ke SMSC dan SMSC kembali
mengirimkan ke HP pengguna, lalu HP pengguna akan melakukan penkodean
kembali menjadi bentuk teks.
Dari penjelasan diatas diperoleh hasil untuk pengiriman SMS dalam format PDU
untuk contoh tersebut adalah :
A0BAOC4E610527
SMS Deliver PDU ialah terminal menerima pesan yang datang atau masuk dari
SMSC dalam format PDU.
Dibawah ini merupakan penjelasan masing-masing format dari gambar yaitu sebagai
berikut:
15
b) PDU Type
Nilai default dari PDU Type untuk menerima SMS adalah 04 heksa, yang
memiliki arti 04 heksa = 00000100
Tanggal 70 07
Jam 11 11
Menit 00 00
Detik 00 00
Zona 82 28, dimana 1 unit = 15 menit. Jadi (15x28)/60=7
Waktu jam. Sehingga menjadi GMT + 07.00 = WIB
Dari tabel diatas terlihat bahwa pesan diterima oleh SMSC pada tanggal 07
januari 2008 pukul 11:00:00 WIB
Tabel diatas adalah tabel ASCII (American Standard Code for Information
Interchange).
18
Berdasarkan mekanisme distribusi pesan SMS oleh aplikasi SMS, terdapat empat
macam mekanisme pengiriman pesan, yaitu :
2. SMS Gateway
a. Pengertian Gateway
Istilah gateway, bila dilihat pada kamus Inggris-Indonesia diartikan sebagai pintu
gerbang. Namun pada dunia komputer, gateway dapat berarti juga sebagai jembatan
penghubung antar satu sistem dengan sistem lain yang berbeda, sehingga dapat terjadi
suatu pertukaran data antar sistem tersebut. Gateway adalah sebuah perangkat yang
digunakan untuk menghubungkan satu jaringan komputer dengan satu atau lebih
19
1) Auto-Reply, SMS Gateway secara otomatis akan membalas SMS yang masuk. (Barri
et al., 2015)
2) Pengiriman masal, disebut juga dengan istilah SMS Broadcast. Bertujuan untuk
mengirim SMS ke banyak tujuan secara bersamaan. (Barri et al., 2015)
3. Study Literatur
Pada penelitian ini dibahas mengenai layanan SMS berbasis desktop untuk
pemesanan jasa servis mobil. Sistem yang dibuat dapat memesanan jasa servis, mengecek
pemesanan, memberi masukan kapanpun dan dimanapun. Aplikasi yang dibuat bertujuan
untuk menyediakan sistem informasi layanan interaktif secara langsung kepada pelanggan
atau sebaliknya, meningkatkan kualitas pelayanan yang terjangkau dan fleksibel, dan
memberikan kontribusi dibidang ilmu komputer.
BAB III
DESAIN PENELITIAN DAN RANCANGAN PROGRAM
Design Penelitian
Mulai Pembuatan program
rancangan program
Pelaksanaan(observ
Pengecekan
asi, inteview dan Simpulan hasil riset
Keabsahan data
dokumen)
Mempertajam fokus
Tahapan
dan perumusan Selesai
perencanaan
masalah
a. Penentuan Tempat
Pada tahap ini ditentukan PT Istana Kebon Jeruk yang beralamat di Jalan Kebon
Jeruk No.200, Jakarta Barat sebagai tempat riset.
b. Pelaksanaan
Pada tahap pelaksanaan, dilakukan metode wawancara, metode
kepustakaandan metode analisis dokumen. Berikut yang dilakukan pada metode ini:
a) Pada metode wawancara penulis mewawancarai Bapak Harry Suryadikara, S.E.
selaku kepala bengkel PT Istana Kebon Jeruk.
b) Pada metode kepustakaan penulis mendatangi perpustakaan Universitas Budi
Luhur.
21
22
Jaringan
GSM/CDMA
Connector
Modem/ Komputer
Client/Pengirim
Handphone Server
terminal
4. Dan apabila nomor handphone pengirim sudah terdaftar, maka server akan
melakukan proses selanjutnya, yaitu pengolahan pesan yang telah dikirim untuk
menghasilkan Informasi yang dibutuhkan baik oleh pengirim untuk dikirim
sebagai balasan.
Dalam aplikasi usulan ini, untuk mendukung tahapan-tahapan atau proses yang
diiakukan di atas memanfaatkan database berisikan informasi yang dibutuhkan. Dan
semua hasil dari proses yang diiakukan disimpan ke dalam database ini sebagai data
yang dapat dilaporkan kepada pihak pengelola jika dibutuhkan.
Seperti halnya SMS yang masuk atau keluar disimpan ke dalam tabel
inbox/outbox dan isi pesan disimpan di tabel yang sesuai dengan pesan tersebut.
Kemudian dalam penggunaan aplikasi ini, terdapat beberapa ketentuan yaitu :
1. Semua proses akan berjalan jika server sudah terkoneksi dengan handphone
GSM.
2. Semua fasilitas yang terdapat di aplikasi ini dapat di request oleh pelanggan
yang sudah terdaftar. Semua SMS yang dianggap valid adalah SMS yang memiiiki
format yang benar sesuai yang ditentukan dan dikirimkan oleh pengirim yang
berhak saja, yaitu pelanggan yang nomor handphone-nya telah terdaftar.
M Id_inbox* No_kwitansi*
Sms_outbox Terima Sms_Inbox Kwitansi
No_hp Tgl_kwitansi
isi_sms
Id_outbox* waktu_sms
Id_outbox* id_pelanggan* M 1
No_hp
isi_sms
waktu_sms Dapat id_pelanggan* Ada
no_inbox*
No_kwitansi* No_service*
Id_saran* No_service* No_service* Tgl_transaksi
Id_pelanggan* 1
id_pelanggan* 1 1 id_pelanggan
Area_service
M 1 M N Tgl_service
Saran Kirim Pelanggan Bisa Service Jam_service
Jam_akhir
Uang_muka
id_pelanggan* 1 M Total_biaya
id_saran* Status
Isi_saran nama_pelanggan
no_hp Keterangan_pembayaran
Waktu_sms
alamat
Punya id_pelanggan* No_service*
Detail_service
Plat_no* id_paket*
M
N
id_admin* plat_no*
Nm_admin id_paket*
Administrator mobil merk Jenis_paket
No_hp Bonus_service Paket_Service
Username Keterangan
password biaya
Id_inbox*
No_hp No_kwitansi*
Sms_Inbox isi_sms Tgl_kwitansi Kwitansi
Sms_outbox
waktu_sms No_service
Id_Pelanggan*
Id_Outbox* M
Id_outbox* M N
No_hp id_pelanggan*
Dapat
isi_sms Terima no_inbox* No_kwitansi* Ada
waktu_sms No_service*
No_service*
Tgl_transaksi
Id_saran*
1 1 M Area_service
id_pelanggan*
Tgl_service
Jam_service
M 1 M N
Saran Kirim Pelanggan Bisa Service Jam_akhir
Uang_muka
No_service* Total_biaya
Id_pelanggan* Status
1 id_pelanggan* 1
id_saran* nama_pelanggan Keterangan_pembayaran
Isi_saran no_hp
Waktu_sms alamat
No_service*
id_paket* Detail_service
id_pelanggan*
Punya
plat_no*
1
id_admin*
Nm_admin plat_no* id_paket*
Administrator M
No_hp merk Paket_Service Jenis_paket
Username Bonus_service Keterangan
password biaya
mobil
Administrator Mobil
No_service
id_admin* plat_no*
Nm_admin Id_pelanggan* Paket_Service
No_hp merk Service_detil
Id_paket
Username Bonus_service id_paket*
password No_service* Jenis_paket
Id_paket* Keterangan
biaya
5) Tabel Pelanggan
Nama Tabel : Pelanggan
Isi : Data Master Pelanggan
Media : Harddisk
Primary key : Id_pelanggan
6) Tabel Saran
Nama Tabel : Saran
Isi : Data Saran
Media : Harddisk
Primary Key : Id_saran
Foreign Key : Id_Pelanggan
7) Tabel Service
Nama Tabel : Service
Isi : Data Service
Media : Harddisk
Primary Key : No_service
Foreign Key : Id_pelanggan
4. Rancangan Layar
Suatu aplikasi dapat dikategorikan baik apabila memenuhi beberapa kriteria
tentang pemrograman, yang salah satunya adalah memiliki struktur tampilan yang baik.
Karena dengan baik akan membuat pengguna aplikasi merasa nyaman dan tidak cepat
jenuh dalam menjalankannya.
a) Rancangan Layar Form Login
Pada Gambar 3.6 ini adalah tampilan dari Form Login. Pada aplikasi ini seseorang
yang ingin menggunakan aplikasi ini harus mengisi field username dan password
secara benar untuk digunakan sebagai validasi pengguna sistem. Dan apabila berhasil
maka akan muncul Form Menu Utama dari aplikasi ini, namun apabila login gagal akan
keluar pesan “Username atau Password salah” dan Form Menu Utama tidak akan
tampil.
Username X-10-X
Password X-10-X
Masuk Keluar
hh:mm:ss
dd:mm:yyy
Admin
Entry Data Lihat Data
Id Administrator X-6-X
Username X-10-X
Password X-10-X
Admin
Entry Data Lihat Data
Z Z Z Z
Pelanggan
Entry Data Lihat Data
Alamat
X-65535-X
PELANGGAN
Entry Data Lihat Data
Z Z Z Z
Mobil
Entry Data Lihat Data
Mobil
Entry Data Lihat Data
Z Z Z Z
Jenis Paket
Entry Data Lihat Data
Id Paket X-4-X
Jenis Paket Pilih
Keterangan X-25-X
Harga X-11-XX
Jenis Paket
Entry Data Lihat Data
Z Z Z Z
Gambar 3.15: Rancangan Layar From Master Lihat Data Jenis Paket Servis
dd-mm-yyyy
1 2 3 4 5 6
1 1 1 1
7 8 9
1 1 1 0
1 1
1 2
1 3
2
4
2 5
2 6
2 7
2 8
2 9
2 0
2
1
2 2
2 3
3 4
3 5 6 7
8 9 0 1
Cari
Harga X-11-x Tambah Hapus
Id Pelanggan X-6-X
Id Paket Keterangan Harga
Nama Lengkap X-35-X
Tampil
Tampil Tampil
Tampil Tampil
Tampil
Nomor Plat
Z Z Z
X-11-X Cek Bonus
Status Belum
Belum Lunas
Lunas Konfirmasi
Konfirmasi
Area Service Pilih
Uang Muka X-11-x Sisa
December 15
M T W T F S S
Sisa X-11-x
8 9 0 1
No Service Tanggal Service Id Pelanggan No Plat Id Paket Harga Area Pesan Tanggal Servis Jam Servis Servis Paket Total Biaya Uang Muka Status Keterangan
Z Z Z Z Z Z Z Z Z Z Z ZZZ
Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil
Gambar 3.17 : Rancangan Layar Form Lihat Data Transaksi Pemesanan Servis
Transaksi Kwitansi
Lihat Data Entry Data
7
1
4
2
1
2
1
8
1
5
2
2
2
W T
2
9
1
6
2
3
3
3
1
0
1
7
2
4
3
F
4
1
1
1
8
2
5
S
5
1
2
1
9
2
6
S
6
1
3
2
0
2
7
Jam Servis Hh:mm:ss
8 9 0 1
Transaksi Kwitansi
Entry Data Lihat Data
No Kwitansi Tanggal Kwitansi No Service Tanggal Transaksi Id Pelanggan Plat No Area Service Tanggal Service Jam Service Uang Muka Sisa Biaya Total Biaya Status Keterangan
Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil Tampil
Z Z Z Z Z Z Z Z Z Z Z ZZZ
Laporan Pelanggan
Cetak Keluar
Laporan Pemesanan
December 15
December 15 December 15
M T W T F S S
M T W T F S S M T W T F S S
S/D
1 2 3 4 5 6
18 29 13 14 15 16 1 2 3 4 5 6
dd-mm-yyyy dd-mm-yyyy
7
1 1 1 101 111 121 231 1 1 1 1
472 582 692 027 128 29 320
7 8 9
0 1 2 3
11 12 13 14 15 16 27 1 1 1 1 1 1 2
42 52 63 73 8 9 0 4 5 6 7 8 9 0
28 29 20 21 2 2 2 2 2 2 2 2 2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
2 2 3 3 2 2 3 3
8 9 0 1 8 9 0 1
Cetak Keluar
Broadcast
Isi SMS
X-160-X
Proses SMS
Sms Inbox Sms Outbox
Z Z Z Z Z
Proses SMS
Sms Inbox Sms Outbox
Z Z Z Z Z
Saran
Z Z Z Z
5. FLOWCHART
Untuk menggambarkan urutan proses pada aplikasi ini, akan digunakan flowchart
untuk memperjelas alur proses program. Di bawah ini akan digambarkan beberapa
flowchart untuk masing-masing proses.
a. Flowchart Form Login
Flowchart berikut merupakan gambaran alur proses awal dari aplikasi server.
Admin sebelumnya harus melakukan login terlebih dahulu dengan memasukkan
username dan password. Apabila login benar, maka akan tampil menu utama, namun
apabila login gagal akan tampil sebuah pesan yang menyatakan bahwa username atau
password salah.
41
Mulai
LN LN1
Tampil
form login
Input
pilih
cek tabel
LN1 T Pilih = login Login
administrator
Tampil
pesan
kesalahan
MU
LN1
1 Mulai
2 Tampil Form Login
3 Input pilih
4 If pilih = login then
5 Proses login
6 Proses cek tabel administrator
7 If username dan password = benar then
8 Tampil pesan pesan berhasil
9 Menuju ke menu utama
10 Else
11 Tampil pesan kesalahan
12 Kembali baris ke 1
13 End if
menu yang tersedia, seperti misalnya apabila admin ingin melakukan input data, hal
itu dapat dilakukan dengan membuka form-form yang ada pada menu Master, menu
server untuk melakukan proses SMS, dan sebagainya. Selain itu, admin juga dapat
keluar dari menu utama melalui menu file – logout.
MU
MU1
Tampil from
menu
utama
Input Pilih
Y Y Y Y Y Y
Pilih = Pilih =
LN Pilih = Master MP Transaksi TS Laporan
LP Pilih = Inbox Pilih = PD
Keluar Y Y Y Y Y IO Y
Pelanggan Service Pelanggan Dan Outbox Panduan
T T
T T T
Pilih = SR
Pilih = LB Saran Y
Pilih =Master MM KW Laporan Y MU1
MU1 Y Transaksi Y Pemesanan
Mobil
kwitansi
T
T T
Broadcast Y BC
MU1
Pilih = Paket PS MU1
Y
service
T
T
MU1
Pilih= AD
Y
Administrator
MU1
AD
Pilih =
Tambah
AD1
Data sudah
T
benar
Input
pilih
T T
AD1
Pilih=Batal Y AD1
MU Y Pilih=Keluar T AD1
MM
Pilih =
Tambah
MP1
Data sudah
T
benar
Input
pilih
T T
MP1
Pilih=Batal Y MM1
MU Y Pilih=Keluar T MP1
Pilih =
Tambah
PS1
Data sudah
T
benar
Input
pilih
T T
PS1
Pilih=Batal Y PS1
MU Y Pilih=Keluar T PS1
Mulai
Kirim
Tampil
Tempat= laporan
T
kosong Tempat
penuh
Y
Tampil
laporan
Tempat
kosong
END
1 Mulai
2 Proses kirim SMS
3 If Tempat= kosong then
4 Tampil laporan tempat kosong
5 Else
6 Tampil laporan tempat kosong
7 End if
MM
Pilih =
Tambah
MM1
Data sudah
T
benar
Input
pilih
Tampil pesan
Simpan data
MM1 “data sudah Y Pilih=simpan
ke tabel mobil
disimpan”
T
T T
MM1
Pilih=Batal Y MM1
MU Y Pilih=Keluar T MM1
Pilih =
Tambah
KW1
Data sudah
T
benar
Input pilih
KW1
Tampil
Tampil Laporan
KW1 Cetak “data akan Y Pilih=Cetak
diprint?”
KW1 T
MU Y Pilih=keluar T KW1
LP1
Pilih =
T LP1
Cetak
Tampil Input
CETAK Laporan Pilih
Keluar
Pilih = MU1
Y
Keluar
LP1
LB
LB1
Pilih
tanggal
awal
Pilih
Pilih =
Y tanggal
Cetak
akhir
Cetak
Tampil laporan
Pilih =
Keluar
MU
TS
Pilih =
Tambah
TS1
Data sudah
T
benar
Input pilih
Tampil pesan
Ubah data di Pilih ubah = Pilih data di
TS1 “data sudah Y Y
tabel Service Ya tabel service
diubah”
T
T
T
T
TS1
MU Y Pilih=keluar T TS1
Mulai
Kirim
Sms =
Pesan
Simpan ke
tabel
T
Tampil Data
Berhasil
Disimpan
Selesai
1 Mulai
2 Proses kirim
3 If Format SMS= pesanthen
4 Proses Simpan ke tabel
5 Tampil data berhasil di simpan
6 Else
End if
Mulai
Kirim
Sms =
Saran
Simpan
Ke tabel
saran
T
Tampil
Data
berhasil
disimpan
Selesai
1 Mulai
2 Proses Kirim
3 If SMS = benarthen
4 Proses Simpan ke tabel saran
5 Tampil pesan data berhasil di simpan
6 Else
7 End if
55
Mulai
Kirim
Sms= batal
Hapus data di
tabel
T
Tampil
Data
berhasil
dihapus
Selesai
1 Mulai
2 Proses kirim
3 If SMS = batal then
4 Proses Hapus data di tabel
5 Tampil data berhasil di hapus
6 Else
7 End if
Mulai
Kirim
Sms = cek
harga
Tampil
laporan T
Harga
END
1 Mulai
2 Proses Kirim
3 If SMS= Cek Harga then
4 Tampil laporan harga
5 Else
6 End if
Mulai
Kirim
Sms =
Konfirmasi
Tampil
laporan T
Konfirmasi
END
1 Mulai
2 Proses Kirim
3 If SMS= Konfirmasi then
4 Tampil laporan konfirmasi
5 Else
6 End if
BAB IV
IMPLEMENTASI DAN EVALUASI PROGRAM
2. Implementasi Program
Implementasi sistem berguna untuk mengetahui apakah yang telah dibuat dapat
berjalan secara maksimal, untuk itu maka program tersebut harus diuji terlebih dahulu
mengenai kemampuan agar dapat berjalan dengan yang diharapkan pada saat implentasi
progam.
Pada aplikasi yang dibuat penulis ini terdapat satu tahap implementasi program, yaitu
program pada aplikasi server yang terpasang pada komputer server untuk digunakan
sebagai pengolahan data yang dikirimkan oleh pelanggan servis.
a. Implementasi Pada Aplikasi Server
Pada server, aplikasi akan berjalan dan siap digunakan untuk mengirim maupun
menerima SMS jika admin yang berhasil login telah melakukan koneksi antara
komputer dengan handphone sebagai modem GSM Bluetooth dan memilih port virtual
yang dihasilkan ketika handphone sudah terhubung komputer dengan benar. Dibawah
ini akan diberikan gambaran mengenai proses koneksi tersebut.
58
59
Gambar 4.8 : Tampilan Layar Form Master Entry Data Paket Servis
63
Gambar 4.9 : Tampilan Layar Form Master Lihat Data Paket Servis
Gambar 4.12 : Tampilan Layar Form Entry Data Pesan Servis Mobil
65
Gambar 4.13 : Tampilan Layar Form Lihat Data Pesan Servis Mobil
Gambar 4.27 : Tampilan Layar Balasan Request Cek Tempat dan Waktu
Gambar 4.29 : Tampilan Layar Balasan Request Pemesanan Servis Tanpa Bonus
h) Request Saran
SMS untuk memberikan saran, kritik, dan komplain. Berikut ini adalah hasil balasan
dari server jika seorang pelanggan mengirimkan SMS dengan isi : Saran dealer bagus
cepat dan bersih.
5. Evaluasi Program
Evaluasi program merupakan salah satu hal yang perlu dilakukan dalam setiap
pengembangan aplikasi untuk menganalisa dan mengetahui hasil yang telah dicapai oleh
aplikasi yang dikembangkan tersebut. Demikian juga pada aplikasi SMS Gateway yang
dikembangkan ini, maka dilakukan evaluasi program unutuk menganalisa hasil yang
dicapai pada kedua aplikasi ini. Dan dalam evaluasi tersebut ditemukan beberapa
kelebihan dan kekurangan program yang dilihat dari beberapa kondisi dan situasi. Adapun
kelebihan dan kekurangan pada aplikasi yang dikembangkan adalah sebagai berikut :
a. Kelebihan Program
1) Pada Aplikasi SMS Gateway Server
a) Program dapat dengan mudah dioperasikan oleh admin, karena memiliki
tampilan yang baik.
b) Dapat menerima pesan dan otomatis membalasnya sesuai dengan apa yang di
request.
b. Kekurangan Program
1) Pada Aplikasi SMS Gateway Server
a) Kelancaran proses terkirim dan diterimanya suatu SMS dari/ke server
tergantung pada layanan jaringan operator yang digunakan.
b) Penerimaan SMS yang terus menerus dengan jeda waktu yang sangat cepat
dapat membuat server menjadi down.
c) Aplikasi harus aktif untuk mendapatkan layanan SMS gateway.
BAB V
PENUTUP
77
DAFTAR PUSTAKA
Barri, M. W. H., Lumenta, A. S. M., & Wowor, A. 2015. Perancangan Aplikasi SMS GATEWAY
Untuk Pembuatan Kartu Perpustakaan di Fakultas Teknik Unsrat. E-journal Teknik Elektro
Dan Komputer, 23–28. Available at:
http://ejournal.unsrat.ac.id/index.php/elekdankom/article/view/6522.
Hestiningsih, I., Sulistiyo, W., & Cahyanti, I. A. 2014. PERALATAN BENGKEL BERBASIS WEB
DENGAN SMS. JURNAL INFORMATIKA, 8(2), 921–932.
Nurlaela, Fetty 2013. Aplikasi SMS Gateway Sebagai Sarana Penunjang Informasi
Perpustakaan Pada Sekolah Menengah Pertama Negeri 1 Arjosari. Indonesian Journal on
Networking and Security, 2(4), 20–25.
Park, Jhon, Steve, Mackay, Edwin, Wright 2003, Practical data communications for
instrumentation and control, Burlington, Newnes.
Rossy W, C., Utomo, W. H., & Wellem, T. 2006. Perancangan dan Implementasi Sistem
Informasi Layanan Short Messaging Service ( SMS ). Jurnal Informatika, 2(2), 155–166.
Talukder, Asoke K 2010, Mobile Computing, New Delhi: Tata McGraw Hill Education Private
Limited.
Wesołowski, Krzysztof 2002, Mobile communcation system, New York, Jhon Wiley.
Wiharto, Yudi 2011. Sistem Informasi Akademik Berbasis SMS Gateway. Jurnal Teknologi Dan
Informatika (TEKNOMATIKA), 1(1), 1–28.
78
79
c) Laporan Pelanggan
82
d) Laporan Pesanan
83
84
LISTING PROGRAM
Package booking_service
1. Broadcast.java
package booking_services;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
import koneksi.Koneksi_MySQL;
setUndecorated(true);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel6)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Broadcast"));
txt_isi_sms.setColumns(20);
txt_isi_sms.setRows(5);
jScrollPane1.setViewportView(txt_isi_sms);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(btn_kirim,
javax.swing.GroupLayout.PREFERRED_SIZE, 76,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(46, 46, 46)
.addComponent(btn_batal,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(46, 46, 46)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 306,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(62, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(31, 31, 31)
.addComponent(jLabel3))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 115,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btn_batal,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_kirim,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(52, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
String data_sms[][];
private void btn_kirimActionPerformed(java.awt.event.ActionEvent evt) {
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
int row = 0;
ResultSet count_pel = stat.executeQuery("SELECT COUNT(id_pelanggan)
FROM pelanggan ");
if (count_pel.next()) {
data_sms = new String[count_pel.getInt(1)][2];
}
res = stat.executeQuery("SELECT * FROM pelanggan ");
while (res.next()) {
data_sms[row][0] = res.getString("id_pelanggan");
data_sms[row][1] = res.getString("no_hp");
row++;
}
res.close();
stat.close();
con.close();
2. Inbox_Outbox.java
package booking_services;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
public Inbox_Outbox() {
initComponents();
tabel_inbox.setModel(tblModel);
Tabel(tabel_inbox, new int[]{110, 160, 120, 160, 120});
tabel_outbox.setModel(tblModel1);
Tabel(tabel_outbox, new int[]{110, 160, 120, 160, 120});
tampilkan_data_inbox();
tampilkan_data_outbox();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_proses.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
132, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
tabel_inbox.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane3.setViewportView(tabel_inbox);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane3)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(cmb_inbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_inbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari_inbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btn_keluar_inbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 82, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_inbox, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(txt_cari_inbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari_inbox,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(btn_keluar_inbox,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.PREFERRED_SIZE, 265,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
tab_sms_outbox.addTab("Sms Inbox", jPanel4);
tabel_outbox.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane2.setViewportView(tabel_outbox);
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btn_keluar_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 82, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_outbox,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(txt_cari_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari_outbox,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(btn_keluar_outbox,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 265,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 645, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
356, Short.MAX_VALUE))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 354,
Short.MAX_VALUE)
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tab_sms_outbox,
javax.swing.GroupLayout.PREFERRED_SIZE, 382,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM sms_inbox WHERE " + strKey + " like '%" +
txt_cari_inbox.getText() + "%' ORDER BY id_inbox DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
data[3] = res.getString(4);
data[4] = res.getString(5);
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
private void btn_cari_outboxActionPerformed(java.awt.event.ActionEvent evt) {
hapusTabelOutbox();
String strKey = "";
if (txt_cari_outbox.equals(strKey)) {
tampilkan_data_outbox();
} else if (cmb_outbox.getSelectedItem().toString().equals("Id Outbox")) {
strKey = "id_outbox";
} else if (cmb_outbox.getSelectedItem().toString().equals("Id Pelanggan")) {
strKey = "id_pelanggan";
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM sms_outbox WHERE " + strKey + " like '%" +
txt_cari_outbox.getText() + "%' ORDER BY id_outbox DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data1[0] = res.getString(1);
data1[1] = res.getString(2);
data1[2] = res.getString(3);
data1[3] = res.getString(4);
data1[4] = res.getString(5);
tblModel1.addRow(data1);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
};
};
3. Laporan_Pelanggan.java
package booking_services;
import java.awt.Component;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import koneksi.Koneksi_MySQL;
JasperDesign jasperDesign;
JasperPrint jasperPrint;
JasperReport jasperReport;
Map<String, Object> param = new HashMap<String, Object>();
public Laporan_Pelanggan() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_laporan.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel6)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 17, Short.MAX_VALUE))
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(177, 177, 177)
.addComponent(btn_cetak, javax.swing.GroupLayout.PREFERRED_SIZE,
74, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(36, 36, 36)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(181, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(59, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(btn_cetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(60, 60, 60))
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
4. Laporan_Service.java
package booking_services;
import koneksi.Koneksi_MySQL;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public Laporan_Service() {
initComponents();
dc_tanggal_awal.setDate(Now);
dc_tanggal_akhir.setDate(Now);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_laporan.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(464, Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel6)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 17, Short.MAX_VALUE))
);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(175, 175, 175)
.addComponent(btn_cetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(48, 48, 48))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(dc_tanggal_awal,
javax.swing.GroupLayout.PREFERRED_SIZE, 132,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addComponent(jLabel1)
.addGap(8, 8, 8)))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(dc_tanggal_akhir,
javax.swing.GroupLayout.PREFERRED_SIZE, 132,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(jLabel1)
.addGap(39, 39, 39))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addGap(44, 44, 44)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(dc_tanggal_akhir,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(dc_tanggal_awal,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(31, 31, 31)))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(btn_cetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 36,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(53, Short.MAX_VALUE))
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
}
}
5. Main.java
package booking_services;
import com.jtattoo.plaf.noire.NoireLookAndFeel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
6. Master_Administrator.java
package booking_services;
import koneksi.Koneksi_MySQL;
import fungsi.Validasi;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
txt_id_admin.setEditable(false);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap(49, Short.MAX_VALUE)
.addComponent(btn_simpan)
.addGap(25, 25, 25)
.addComponent(btn_ubah, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_hapus, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(35, 35, 35)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btn_keluar, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)
.addComponent(btn_batal, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_hapus, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_simpan, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_ubah, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(44, 44, 44)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(jLabel7)
.addComponent(jLabel8,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(34, 34, 34)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(txt_id_admin)
.addComponent(txt_nm_lengkap)
.addComponent(txt_password)
.addComponent(txt_no_telp)
.addComponent(txt_ulangipassword,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34)
.addComponent(txt_username,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(25, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_id_admin,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(9, 9, 9)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_username,
javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_password,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 22,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_ulangipassword,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jLabel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 22,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(14, 14, 14)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_nm_lengkap,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(14, 14, 14)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_telp,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addGap(18, 18, 18)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(40, 40, 40))
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(24, 24, 24))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
337, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
tabel_admin.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabel_admin.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_adminMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_admin);
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_admin,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_admin,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82,
Short.MAX_VALUE)
.addComponent(btn_tambah)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_admin, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(txt_cari_admin,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_tambah,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 265,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 645, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
356, Short.MAX_VALUE))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 354,
Short.MAX_VALUE)
);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(32, 32, 32))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tb_lihat_data,
javax.swing.GroupLayout.PREFERRED_SIZE, 382,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "INSERT INTO administrator VALUES("
+ "'" + txt_id_admin.getText() + "',"
+ "'" + txt_nm_lengkap.getText() + "',"
+ "'" + txt_no_telp.getText() + "',"
+ "'" + txt_username.getText() + "',"
+ "'" + txt_password.getText() + "')";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
data[0] = txt_id_admin.getText();
data[1] = txt_username.getText();
data[2] = txt_nm_lengkap.getText();
data[3] = txt_no_telp.getText();
tblModel.insertRow(0, data);
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data ");
kosongform();
autonumber();
awal();
}
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, "Gagal Menyimpan data " + error,
"Peringatan", JOptionPane.WARNING_MESSAGE);
System.err.print(error);
}
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM administrator WHERE " + strKey + " like '%" +
txt_cari_admin.getText() + "%' ORDER BY id_admin DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString("id_admin");
data[1] = res.getString("username");
data[2] = res.getString("nm_admin");
data[3] = res.getString("no_hp");
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
7. Master_Jenis_Paket.java
apackage booking_services;
import fungsi.Validasi;
import koneksi.Koneksi_MySQL;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
Connection con;
Statement stat;
ResultSet res;
String sql;
String data[] = new String[4];
String dataPopup[];
private int row;
Koneksi_MySQL objkoneksi = new Koneksi_MySQL();
public Master_Jenis_Paket() {
initComponents();
table_jenis_paket.setModel(tblModel);
Tabel(table_jenis_paket, new int[]{150, 150, 150, 150});//membuat tabel
dengan satu kolom berukuran 100 pixel
Validasi();
awal();
autonumber();
setIsiTabel();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_master.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
117, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
txt_id_paket.setEditable(false);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(btn_simpan)
.addGap(24, 24, 24)
.addComponent(btn_ubah, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)
.addComponent(btn_hapus, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(35, 35, 35)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(40, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(btn_ubah, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_simpan,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_hapus, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_batal, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_keluar, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18))
);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(35, 35, 35)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(34, 34, 34)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(txt_harga,
javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addComponent(txt_keterangan,
javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addComponent(txt_id_paket)
.addComponent(txt_jenis,
javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE))))
.addContainerGap(26, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_id_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel3)
.addComponent(txt_jenis, javax.swing.GroupLayout.PREFERRED_SIZE,
29, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(11, 11, 11)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel4)
.addComponent(txt_keterangan,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_harga,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9,
Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(15, 15, 15))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(38, Short.MAX_VALUE))
);
table_jenis_paket.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
table_jenis_paket.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
table_jenis_paketMouseClicked(evt);
}
});
jScrollPane2.setViewportView(table_jenis_paket);
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82,
Short.MAX_VALUE)
.addComponent(btn_tambah)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(txt_cari, javax.swing.GroupLayout.PREFERRED_SIZE,
28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_tambah,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 212,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(20, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 648, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 338, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tb_jenispaket,
javax.swing.GroupLayout.PREFERRED_SIZE, 365,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM paket_service WHERE " + strKey + " like '%" +
txt_cari.getText() + "%' ORDER BY id_paket DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString("id_paket");
data[1] = res.getString("jenis_paket");
data[2] = res.getString("keterangan");
data[3] = res.getString("biaya");
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "UPDATE paket_service SET "
+ "jenis_paket='" + txt_jenis.getText() + "',"
+ "keterangan='" + txt_keterangan.getText() + "',"
+ "biaya='" + txt_harga.getText() + "' "
+ "WHERE id_paket='" + txt_id_paket.getText() + "'";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
data[0] = txt_id_paket.getText();
data[1] = txt_jenis.getText();
data[2] = txt_keterangan.getText();
data[3] = txt_harga.getText();
tblModel.removeRow(row);
tblModel.insertRow(row, data);
JOptionPane.showMessageDialog(null, "Data diubah");
awal();
kosongform();
}
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, "Gagal diubah" + error, "Peringatan",
JOptionPane.WARNING_MESSAGE);
}
}
// ^^ POPUP
public void setDataPopup(String[] dataPopup) {
this.dataPopup = dataPopup;
}
8. Master_Mobil.java
package booking_services;
import fungsi.Validasi;
import koneksi.Koneksi_MySQL;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
Connection con;
Statement stat;
ResultSet res;
String sql;
String data[] = new String[4];
String dataPopup[];
private int row;
Koneksi_MySQL objkoneksi = new Koneksi_MySQL();
public Master_Mobil() {
initComponents();
tabel_mobil.setModel(tblModel);
Tabel(tabel_mobil, new int[]{150, 150, 150, 150});//membuat tabel dengan
satu kolom berukuran 100 pixel
Validasi();
awal();
setIsiTabel();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_master.png"))); //
NOI18N
jPanel4.setBackground(new java.awt.Color(204, 204, 204));
txt_kd_pelanggan.setEditable(false);
txt_nm_pelanggan.setEditable(false);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(btn_simpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_ubah, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_hapus, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(38, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(btn_ubah, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_simpan,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_hapus, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_batal, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_keluar, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(21, 21, 21))
);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(29, 29, 29)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel2,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(txt_kd_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 173,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 76,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txt_nm_pelanggan)
.addComponent(txt_no_plat,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_merk_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(20, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel2)
.addComponent(txt_kd_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 34,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel3)
.addComponent(txt_nm_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_plat,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16,
Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel5)
.addComponent(txt_merk_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(37, Short.MAX_VALUE))
);
tabel_mobil.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabel_mobil.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_mobilMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_mobil);
cmb_mobil.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
"Nama Pelanggan", "Nomor Polisi" }));
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 128,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 112,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_cari_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_tambah)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, false)
.addComponent(btn_cari_mobil,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 32,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_cari_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(btn_tambah,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 250,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 2, Short.MAX_VALUE))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(32, 32, 32))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(23, Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 9, Short.MAX_VALUE))
);
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(tb_lihat_data,
javax.swing.GroupLayout.PREFERRED_SIZE, 523,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(1, 1, 1))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tb_lihat_data,
javax.swing.GroupLayout.PREFERRED_SIZE, 370,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
txt_kd_pelanggan.setText(dialog.getData()[0]);
txt_nm_pelanggan.setText(dialog.getData()[1]);
}
});
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "INSERT INTO mobil VALUES("
+ "'" + txt_kd_pelanggan.getText() + "',"
+ "'" + txt_no_plat.getText().replaceAll(" ","") + "',"
+ "'" + txt_merk_mobil.getText() + "',"
+ "'" + 1 + "')";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
data[0] = txt_kd_pelanggan.getText();
data[1] = txt_nm_pelanggan.getText();
data[2] = txt_no_plat.getText().replaceAll(" ","");
data[3] = txt_merk_mobil.getText();
tblModel.insertRow(0, data);
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data " +
txt_nm_pelanggan.getText().toUpperCase() + " dengan plat no " +
txt_no_plat.getText().toUpperCase());
kosongform();
awal();
}
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, "Gagal Menyimpan data " + error,
"Peringatan", JOptionPane.WARNING_MESSAGE);
System.err.print(error);
}
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM mobil m, pelanggan p WHERE m.id_pelanggan =
p.id_pelanggan AND "
+ "" + strKey + " LIKE '%" + txt_cari_mobil.getText() + "%' ORDER
BY m.id_pelanggan DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString("m.id_pelanggan");
data[1] = res.getString("p.nm_pelanggan");
data[2] = res.getString("m.plat_no");
data[3] = res.getString("m.merk");
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
// ^^ POPUP Pelanggan
public void setDataPopup(String[] dataPopup) {
this.dataPopup = dataPopup;
}
import koneksi.Koneksi_MySQL;
import fungsi.Validasi;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
public class Master_Pelanggan extends javax.swing.JDialog {
Connection con;
Statement stat;
ResultSet res;
String sql;
String data[] = new String[4];
Koneksi_MySQL objkoneksi = new Koneksi_MySQL();
Menu menu = null;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setIconImage(null);
txt_kd_pelanggan.setEditable(false);
txt_alamat.setColumns(20);
txt_alamat.setLineWrap(true);
txt_alamat.setRows(5);
jScrollPane1.setViewportView(txt_alamat);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(btn_simpan)
.addGap(25, 25, 25)
.addComponent(btn_ubah, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_hapus, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(35, 35, 35)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(40, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(btn_simpan,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(btn_ubah, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_hapus, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_batal, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_keluar, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE))
.addGap(21, 21, 21))
);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(35, 35, 35)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel5))
.addGap(34, 34, 34)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jScrollPane1)
.addComponent(txt_nm_pelanggan)
.addComponent(txt_kd_pelanggan)
.addComponent(txt_no_hp,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addContainerGap(34, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(34, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_kd_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_nm_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(14, 14, 14)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_hp,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(23, Short.MAX_VALUE))
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
tabel_pelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabel_pelanggan.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_pelangganMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_pelanggan);
cmb_pelanggan.setModel(new javax.swing.DefaultComboBoxModel(new
String[] { "Kode Pelanggan", "Nama Pelanggan", "Alamat" }));
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 601, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82,
Short.MAX_VALUE)
.addComponent(btn_tambah)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_pelanggan,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(txt_cari_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE)
.addComponent(btn_tambah,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 285,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
javax.swing.GroupLayout jPanel6Layout = new
javax.swing.GroupLayout(jPanel6);
jPanel6.setLayout(jPanel6Layout);
jPanel6Layout.setHorizontalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(18, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 383, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
117, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(tab_form, javax.swing.GroupLayout.PREFERRED_SIZE,
411, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM pelanggan WHERE " + strKey + " like '%" +
txt_cari_pelanggan.getText() + "%' ORDER BY id_pelanggan DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
data[3] = res.getString(4);
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
10. Menu.java
package booking_services;
import koneksi.Koneksi_MySQL;
import fungsi.DateTime;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import koneksi.Connect_Sms;
// ^^ MYSQL
Connect_Sms sms = new Connect_Sms(this); // panggil fungsi dari class
ConnectSmsGw
Connection con; // conection untuk database mysql
Statement stat; // untuk perintah insert, update, delete dll
ResultSet res; // Untuk mencari hasil dari data pada tabel sql
String sql; // AKHIR STRING STATEMENT SQL
Master_Pelanggan pelanggan = new Master_Pelanggan(this);
Broadcast broadcast = new Broadcast(this);
jalankanjam();
sebelum_login();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
btn_on_sms.setText("On");
btn_on_sms.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_on_smsActionPerformed(evt);
}
});
btn_off_sms.setText("Off");
btn_off_sms.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_off_smsActionPerformed(evt);
}
});
panel_status.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_status_off.png"))); //
NOI18N
javax.swing.GroupLayout panel_portLayout = new
javax.swing.GroupLayout(panel_port);
panel_port.setLayout(panel_portLayout);
panel_portLayout.setHorizontalGroup(
panel_portLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel_portLayout.createSequentialGroup()
.addGap(13, 13, 13)
.addGroup(panel_portLayout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING, false)
.addComponent(loading, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panel_portLayout.createSequentialGroup()
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 62,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(panel_status,
javax.swing.GroupLayout.PREFERRED_SIZE, 39,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cb_port_sms,
javax.swing.GroupLayout.PREFERRED_SIZE, 140,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_on_sms,
javax.swing.GroupLayout.PREFERRED_SIZE, 50,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_off_sms,
javax.swing.GroupLayout.PREFERRED_SIZE, 50,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(16, Short.MAX_VALUE))
);
panel_portLayout.setVerticalGroup(
panel_portLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel_portLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panel_portLayout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.TRAILING)
.addGroup(panel_portLayout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.BASELINE)
.addComponent(btn_on_sms)
.addComponent(btn_off_sms)
.addComponent(cb_port_sms,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel1)
.addComponent(panel_status,
javax.swing.GroupLayout.PREFERRED_SIZE, 20,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(loading, javax.swing.GroupLayout.PREFERRED_SIZE, 21,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(14, 14, 14))
);
desktop.add(panel_port);
panel_port.setBounds(20, 20, 410, 80);
btnlogin.setText("Masuk");
btnlogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnloginActionPerformed(evt);
}
});
btnkeluar.setText("Keluar");
btnkeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnkeluarActionPerformed(evt);
}
});
panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(panel_loginLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 72,
Short.MAX_VALUE)
.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING, false)
.addGroup(panel_loginLayout.createSequentialGroup()
.addComponent(btnlogin,
javax.swing.GroupLayout.PREFERRED_SIZE, 79,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btnkeluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 79,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txt_username)
.addComponent(txt_password))
.addContainerGap(72, Short.MAX_VALUE))
);
panel_loginLayout.setVerticalGroup(
panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(panel_loginLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(jLabel2)
.addComponent(txt_username,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(jLabel3)
.addComponent(txt_password,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panel_loginLayout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.BASELINE)
.addComponent(btnlogin)
.addComponent(btnkeluar))
.addContainerGap(24, Short.MAX_VALUE))
);
desktop.add(panel_login);
panel_login.setBounds(200, 160, 340, 110);
panel_jamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel_jamLayout.createSequentialGroup()
.addContainerGap(46, Short.MAX_VALUE)
.addComponent(lbl_tanggal, javax.swing.GroupLayout.PREFERRED_SIZE,
206, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18))
.addGroup(panel_jamLayout.createSequentialGroup()
.addGap(57, 57, 57)
.addComponent(lbl_jam)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
panel_jamLayout.setVerticalGroup(
panel_jamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel_jamLayout.createSequentialGroup()
.addContainerGap()
.addComponent(lbl_jam, javax.swing.GroupLayout.PREFERRED_SIZE, 38,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lbl_tanggal)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
desktop.add(panel_jam);
panel_jam.setBounds(40, 340, 270, 95);
menufile.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_file.png"))); // NOI18N
menufile.setText("File");
menufile.setPreferredSize(new java.awt.Dimension(100, 26));
m_keluar.setText("Keluar");
m_keluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_keluarActionPerformed(evt);
}
});
menufile.add(m_keluar);
jMenuBar1.add(menufile);
menumaster.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_master.png"))); //
NOI18N
menumaster.setText("Master");
menumaster.setPreferredSize(new java.awt.Dimension(100, 26));
m_pelanggan.setText("Master Pelanggan");
m_pelanggan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_pelangganActionPerformed(evt);
}
});
menumaster.add(m_pelanggan);
m_mobil.setText("Master Mobil");
m_mobil.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_mobilActionPerformed(evt);
}
});
menumaster.add(m_mobil);
m_paket_servis.setText("Paket Servis");
m_paket_servis.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_paket_servisActionPerformed(evt);
}
});
menumaster.add(m_paket_servis);
m_admin.setText("Administrator");
m_admin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_adminActionPerformed(evt);
}
});
menumaster.add(m_admin);
jMenuBar1.add(menumaster);
menutransaksi.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_transaksi.png"))); //
NOI18N
menutransaksi.setText("Transaksi");
menutransaksi.setPreferredSize(new java.awt.Dimension(100, 26));
m_sevice.setText("Transaksi Servis");
m_sevice.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_seviceActionPerformed(evt);
}
});
menutransaksi.add(m_sevice);
m_kwitansi.setText("Transaksi Kwitansi");
m_kwitansi.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_kwitansiActionPerformed(evt);
}
});
menutransaksi.add(m_kwitansi);
jMenuBar1.add(menutransaksi);
menulaporan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_laporan.png"))); //
NOI18N
menulaporan.setText("Laporan");
menulaporan.setPreferredSize(new java.awt.Dimension(100, 26));
m_laporan_pelanggan.setText("Laporan Pelanggan");
m_laporan_pelanggan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_laporan_pelangganActionPerformed(evt);
}
});
menulaporan.add(m_laporan_pelanggan);
m_laporan_pemesanan.setText("Laporan Servis");
m_laporan_pemesanan.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_laporan_pemesananActionPerformed(evt);
}
});
menulaporan.add(m_laporan_pemesanan);
jMenuBar1.add(menulaporan);
menuproses.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_proses.png"))); //
NOI18N
menuproses.setText("Proses");
menuproses.setPreferredSize(new java.awt.Dimension(100, 26));
m_saran.setText("Saran");
m_saran.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_saranActionPerformed(evt);
}
});
menuproses.add(m_saran);
m_braodcast.setText("Broadcast");
m_braodcast.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_braodcastActionPerformed(evt);
}
});
menuproses.add(m_braodcast);
jMenuBar1.add(menuproses);
menubantuan.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_help.png"))); //
NOI18N
menubantuan.setText("Bantuan");
m_panduan.setText("Panduan Sms");
m_panduan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
m_panduanActionPerformed(evt);
}
});
menubantuan.add(m_panduan);
jMenuBar1.add(menubantuan);
setJMenuBar(jMenuBar1);
pack();
}// </editor-fold>
JInternalFrame mobil;
private void m_mobilActionPerformed(java.awt.event.ActionEvent evt) {
mobil = new Master_Mobil();
desktop.add(mobil);
mobil.setVisible(true);
mobil.setLocation(this.getWidth() / 2 - mobil.getWidth() / 2, this.getHeight() /
4 - mobil.getHeight() / 4);
JInternalFrame service ;
private void m_paket_servisActionPerformed(java.awt.event.ActionEvent evt) {
service = new Master_Jenis_Paket();
desktop.add(service);
service.setVisible(true);
service.setLocation(this.getWidth() / 2 - service.getWidth() / 2, this.getHeight()
/ 4 - service.getHeight() / 4);
}
JInternalFrame admin ;
private void m_adminActionPerformed(java.awt.event.ActionEvent evt) {
admin = new Master_Administrator();
desktop.add(admin);
admin.setVisible(true);
admin.setLocation(this.getWidth() / 2 - admin.getWidth() / 2, this.getHeight() /
4 - admin.getHeight() / 4);
}
JInternalFrame booking ;
private void m_seviceActionPerformed(java.awt.event.ActionEvent evt) {
booking = new Transaksi_Service(nmuser);
desktop.add(booking);
booking.setVisible(true);
booking.setLocation(this.getWidth() / 2 - booking.getWidth() / 2,
this.getHeight() / 4 - booking.getHeight() / 4);
}
JInternalFrame inbox ;
private void m_smsActionPerformed(java.awt.event.ActionEvent evt) {
inbox = new Inbox_Outbox();
desktop.add(inbox);
inbox.setVisible(true);
inbox.setLocation(this.getWidth() / 2 - inbox.getWidth() / 2, this.getHeight() /
4 - inbox.getHeight() / 4);
}
}
if (iduser != null) {
txt_username.setText("");
txt_password.setText("");
JOptionPane.showMessageDialog(null, " Selamat datang "+ nmuser , null,
JOptionPane.INFORMATION_MESSAGE);
sesudah_login();
} else {
JOptionPane.showMessageDialog(null, "Username dan Password Salah!",
null, JOptionPane.WARNING_MESSAGE);
}
} catch (SQLException err) {
System.err.println(err);
}
}
JInternalFrame saran_pelanggan ;
private void m_saranActionPerformed(java.awt.event.ActionEvent evt) {
saran_pelanggan = new Saran();
desktop.add(saran_pelanggan );
saran_pelanggan.setVisible(true);
saran_pelanggan.setLocation(this.getWidth() / 2 - saran_pelanggan.getWidth()
/ 2, this.getHeight() / 3 - saran_pelanggan.getHeight() / 3);
}
JInternalFrame laporan_pelanggan ;
private void m_laporan_pelangganActionPerformed(java.awt.event.ActionEvent
evt) {
laporan_pelanggan = new Laporan_Pelanggan();
desktop.add(laporan_pelanggan);
laporan_pelanggan.setVisible(true);
laporan_pelanggan.setLocation(this.getWidth() / 2 -
laporan_pelanggan.getWidth() / 2, this.getHeight() / 3 -
laporan_pelanggan.getHeight() / 3);
}
JInternalFrame laporan_booking ;
private void m_laporan_pemesananActionPerformed(java.awt.event.ActionEvent
evt) {
laporan_booking = new Laporan_Service();
desktop.add(laporan_booking);
laporan_booking.setVisible(true);
laporan_booking.setLocation(this.getWidth() / 2 - laporan_booking.getWidth() /
2, this.getHeight() / 4 - laporan_booking.getHeight() / 4);
}
// ========================= //
// ==== SMS GATEWAY==== //
// ========================= //
// ===================== //
// ======= LAYANAN ===== //
// ===================== //
if (layanan.equalsIgnoreCase("layanan")) {
System.out.println("cek info via sms");
layanan_sms_format(no_hp, pesan, id_pelanggan);
// ================ //
// ===== CEK ===== //
// ================ //
} else if (layanan.equalsIgnoreCase("cek")) {
System.out.println("cek layanan via sms");
// =============================== //
// ===== CEK SERVICES KOSONG ===== //
// =============================== //
if(layanan_cek.equalsIgnoreCase("servis")){
System.out.println("cek servis kosong via sms");
layanan_sms_cek_kosong(no_hp, pesan, id_pelanggan);
// =========================== //
// ===== CEK HARGA PAKET ===== //
// =========================== //
}else if (layanan_cek.equalsIgnoreCase("harga")) {
System.out.println("cek paket harga via sms");
layanan_sms_cek_harga(no_hp, pesan, id_pelanggan);
// =========================== //
// ===== CEK STATUS SERVIS === //
// =========================== //
}else if (layanan_cek.equalsIgnoreCase("status")) {
System.out.println("cek status pesanan via sms");
layanan_sms_cek_status_servis(no_hp, pesan, id_pelanggan);
}
// ================================ //
// ===== PESAN SERVICES MOBIL ===== //
// ================================ //
} else if (layanan.equalsIgnoreCase("servis")) {
System.out.println("pesan servis mobil via sms");
layanan_sms_pesan_service(no_hp, pesan, id_pelanggan);
// ====================== //
// ==== BATAL PESAN ===== //
// ====================== //
} else if (layanan.equalsIgnoreCase("batal")) {
System.out.println("batal pesan servis mobil via sms");
layanan_sms_batal_pesan_service(no_hp, pesan, id_pelanggan);
// ================================= //
// ===== KONFIRMASI PEMBAYARAN ===== //
// ================================= //
} else if (layanan.equalsIgnoreCase("konfirmasi")) {
System.out.println("konfirmasi pemabayaran via sms");
layanan_sms_konfirmasi_pembayaran(no_hp, pesan, id_pelanggan);
// ===================== //
// ======= SARAN ======= //
// ===================== //
} else if (layanan.equalsIgnoreCase("saran")) {
System.out.println("saran pelanggan via sms");
layanan_sms_saran_pelanggan(no_hp, pesan, id_pelanggan);
// ==================== //
// ======= UBAH ======= //
// ==================== //
} else if (layanan.equalsIgnoreCase("ubah")) {
System.out.println("ubah pesan servis via sms");
layanan_sms_ubah_pesan_service(no_hp, pesan, id_pelanggan);
// ==================== //
// ======= UBAH ======= //
// ==================== //
} else if (layanan.equalsIgnoreCase("ubah")) {
System.out.println("ubah pesan servis via sms");
layanan_sms_ubah_pesan_service(no_hp, pesan, id_pelanggan);
}
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.println(error);
}
}
public void layanan_sms_format(String no_pelanggan,String isi_sms,String
id_pelanggan) {
String pesan1 = "FORMAT LAYANAN VIA SMS\n"
+ "1.LAYANAN FORMAT SMS: layanan<spasi>sms\n"
+ "Contoh : Layanan Sms";
String pesan2 = "2.CEK SERVIS KOSONG: cek<spasi>servis<spasi>jam-
servis<spasi>tanggal-servis\n"
+ "Contoh : cek servis 10 10";
String pesan3 = "3.CEK PAKET SERVIS HARGA: cek<spasi>harga\n"
+ "Contoh : Cek Harga";
String pesan4 = "4.PESAN SERVIS MOBIL: servis<spasi>pilih-paket1<->pilih-
paket2<spasi>jam-pesan<spasi>tgl-pesan<spasi>no-plat\n"
+ "Contoh : servis p1 10 10 B1234VIT";
String pesan5 = "5.UBAH PESAN SERVIS MOBIL: ubah<spasi>no-
servis<spasi>jam-pesan<spasi>tgl-pesan\n"
+ "Contoh : Ubah SRV0001 10 10";
String pesan6 = "6.BATAL PESAN SERVIS MOBIL: batal<spasi>no-servis\n"
+ "Contoh : Batal SRV0001";
String pesan7 = "7.KONFIRMASI PEMBAYARAN: konfirmasi<spasi>no-
servis<spasi>total<spasi>n/r-atm<spasi>a/n-atm<spasi>bank\n"
+ "Contoh : konfirmasi SRV0001 100000 123456 Angga BCA";
String pesan8 = "8.Status konfirmasi: status<spasi>pesan<spasi>no-
service\n"
+ "Contoh : cek pesan SRV00001";
String pesan9 = "9.KIRIM SARAN: saran<spasi>isi-saran\n"
+ "Contoh : saran kurang bagus layanan servisnya";
// ~~ VALIDASI TANGGAL
// validasi tanggal pesan tidak boleh lebih dari satu hari dari tanggal sekarang
dan kurang dari tanggal sekarang
int date_now = Integer.valueOf(new SimpleDateFormat("dd").format(new
Date()));
int date_max = date_now + 1;
if (Integer.parseInt(tgl_service) > date_max | Integer.parseInt(tgl_service) <
date_now) {
kirim_sms(no_pelanggan, "Maaf, tanggal servis tidak boleh lebih dari satu
hari dari tanggal sekarang dan kurang dari tanggal sekarang");
return;
}
// ~~ VALIDASI JAM
// validasi jam pesan services mobil tidak boleh kurang dari jam 8 pagi dan
tidak boleh lebih dari jam 5 sore
if (Integer.parseInt(jam_service) < 8 | Integer.parseInt(jam_service) > 17) {
// 17 sore maks
kirim_sms(no_pelanggan, "Maaf, jam servis mobil tidak boleh kurang dari
jam 8 pagi dan tidak boleh lebih dari jam 5 sore");
return;
}
// validasi jam pesanan service mobil sudah lewat dihari ini
int jamsekarang = Integer.parseInt(new SimpleDateFormat("HH").format(new
Date()));
if (date_now == Integer.valueOf(tgl_service)) {
if (Integer.parseInt(jam_service) <= jamsekarang) {
kirim_sms(no_pelanggan, "Maaf, jam pesanan servis mobil sudah lewat
dihari ini");
System.err.println("jam pesanan servis mobil sudah lewat dihari ini");
return;
}
}
} else {
// KIRIM SMS
String pesan_balasan = "Maaf, servis mobil tidak tersedia dikarenakan
area penuh pada jam "+jam_service+":00 pada "+tgl_service+" "+month_name+"
"+year_now;
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX DAN OUTBOX
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
}
stat.close();
con.close();
} catch (SQLException error) {
System.err.println(error);
}
}
// ~~ VALIDASI TANGGAL
// validasi tanggal pesan tidak boleh lebih dari satu hari dari tanggal sekarang
dan kurang dari tanggal sekarang
int date_now = Integer.valueOf(new SimpleDateFormat("dd").format(new
Date()));
int date_max = date_now + 1;
if (Integer.parseInt(tgl_service) > date_max | Integer.parseInt(tgl_service) <
date_now) {
kirim_sms(no_pelanggan, "Maaf, tanggal servis tidak boleh lebih dari satu
hari dari tanggal sekarang dan kurang dari tanggal sekarang");
return;
}
// ~~ VALIDASI JAM
// validasi jam pesan services mobil tidak boleh kurang dari jam 8 pagi dan
tidak boleh lebih dari jam 5 sore
if (Integer.parseInt(jam_service) < 1 | Integer.parseInt(jam_service) > 17) {
// 17 sore maks
kirim_sms(no_pelanggan, "Maaf, jam servis mobil tidak boleh kurang dari
jam 8 pagi dan tidak boleh lebih dari jam 5 sore");
return;
}
// validasi jam pesanan service mobil sudah lewat dihari ini
int jamsekarang = Integer.parseInt(new SimpleDateFormat("HH").format(new
Date()));
if (date_now == Integer.valueOf(tgl_service)) {
if (Integer.parseInt(jam_service) <= jamsekarang) {
kirim_sms(no_pelanggan, "Maaf, jam pesanan servis mobil sudah lewat
dihari ini");
System.err.println("jam pesanan servis mobil sudah lewat dihari ini");
return;
}
}
if(paket_service.length()>5){
kirim_sms(no_pelanggan, "Maaf pesanan tidak boleh lebih dari 2 paket");
System.err.println("Maaf pesanan tidak boleh lebih dari 2 paket");
return;
}
if(paket_service.split("-")[0].equalsIgnoreCase(paket_service.split("-")[1])){
kirim_sms(no_pelanggan, "Maaf kode paket tidak boleh sama");
System.err.println("Maaf kode paket tidak boleh sama");
return;
}
if(plat_mobil_tersimpan==null){
// KIRIM SMS
String pesan_balasan = "Maaf, no plat mobil anda tidak terdaftar silahkan
regitrasi mobil baru di bengkel kami";
kirim_sms(no_pelanggan, pesan_balasan);
return;
}
cari_mobil.close();
// SIMPAN SERVICES
sql = "INSERT INTO service VALUES('" + no_service + "',"
+ "'" + new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss").format(new Date()) + "',"
+ "'" + id_pelanggan + "',"
+ "'" + no_plat + "',"
+ "'" + area_service_terpesan +"',"
+ "'" + year_now + "-" + month_now + "-" +
tgl_service + "',"
+ "'" + jam_service + ":00:00" + "',"
+ "'" + jam_service + ":59:00" + "',"
+ "'0',"
+ "'0',"
+ "'Belum Konfirmasi',"
+ "'')";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
System.out.println("sukses simpan servis");
// SIMPAN SERVICES DETAIL
//////////////////////////////////////////////
// cek pesanan banyak paket atau satu paket //
//////////////////////////////////////////////
}else{
////////////////////////
// pesanan satu paket //
////////////////////////
kirim_sms(no_pelanggan, pesan_booking);
// SIMPAN INBOX OUTBOX
simpan_outbox(no_pelanggan, pesan_booking, id_pelanggan);
simpan_inbox(no_pelanggan, isi_sms,id_pelanggan);
}
stat.close();
con.close();
res.close();
} catch (SQLException error) {
System.err.println("simpan servis error detail: " + error);
}
}
// ~~ VALIDASI TANGGAL
// validasi tanggal pesan tidak boleh lebih dari satu hari dari tanggal sekarang
dan kurang dari tanggal sekarang
int date_now = Integer.valueOf(new SimpleDateFormat("dd").format(new
Date()));
int date_max = date_now + 1;
if (Integer.parseInt(tgl_service) > date_max | Integer.parseInt(tgl_service) <
date_now) {
kirim_sms(no_pelanggan, "Maaf, tanggal servis tidak boleh lebih dari satu
hari dari tanggal sekarang dan kurang dari tanggal sekarang");
return;
}
// ~~ VALIDASI JAM
//validasi jam pesan services mobil tidak boleh kurang dari jam 8 pagi dan
tidak boleh lebih dari jam 5 sore
if (Integer.parseInt(jam_service) < 1 | Integer.parseInt(jam_service) > 17) {
// 17 sore maks
kirim_sms(no_pelanggan, "Maaf, jam servis mobil tidak boleh kurang dari
jam 8 pagi dan tidak boleh lebih dari jam 5 sore");
return;
}
// validasi jam pesanan service mobil sudah lewat dihari ini
int jamsekarang = Integer.parseInt(new SimpleDateFormat("HH").format(new
Date()));
if (date_now == Integer.valueOf(tgl_service)) {
if (Integer.parseInt(jam_service) <= jamsekarang) {
kirim_sms(no_pelanggan, "Maaf, jam pesanan servis mobil sudah lewat
dihari ini");
System.err.println("jam pesanan servis mobil sudah lewat dihari ini");
return;
}
}
// UPDATE SERVICES
sql = "UPDATE service SET area_service='" + area_service_terpesan +"',"
+ "tgl_service='" + year_now + "-" + month_now +
"-" + tgl_service + "',"
+ "jam_service='" + jam_service + ":00:00" + "',"
+ "jam_akhir='" + jam_service + ":59:00" + "' "
+ "WHERE no_service='" + no_service + "'";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
System.out.println("sukses ubah servis");
// KIRIM SMS
String pesan_booking = "servis dgn no servis "+no_service+" berhasil
diubah tanggal "+tgl_service+" "+month_name+" "+year_now+" jam
"+jam_service+":00 diarea "+ area_service_terpesan ;
kirim_sms(no_pelanggan, pesan_booking);
// SIMPAN INBOX OUTBOX
simpan_outbox(no_pelanggan, pesan_booking, id_pelanggan);
simpan_inbox(no_pelanggan, isi_sms,id_pelanggan);
}
stat.close();
con.close();
res.close();
} catch (SQLException error) {
System.err.println("ubah servis error detail: " + error);
}
}
try {
// CARI PESANAN SERVICE
String no_service_tersimpan = null;
con = objKoneksi.open_a_Connection();
stat = con.createStatement();
res = stat.executeQuery("SELECT * FROM service WHERE
no_service='"+no_service+"' AND status='Belum Konfirmasi' ");
if (res.next()) {
no_service_tersimpan = res.getString("no_service");
}
res.close();
if(no_service_tersimpan!=null){
// HAPUS PESANAN SERVICES
sql = "DELETE FROM service WHERE no_service='"+no_service+"'";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
System.out.println("sukses hapus pesanan servis");
int sukses_detil = stat.executeUpdate("DELETE FROM service_detil
WHERE no_service='"+no_service+"' ");
if(sukses_detil==1){
System.out.println("sukses hapus pesanan servis detil");
}
}
// KIRIM SMS
String pesan_balasan = "pesanan servis anda dengan nomor servis
"+no_service+" berhasil dibatalkan";
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX OUTBOX
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
}else{
// KIRIM SMS
String pesan_balasan = "Mohon Maaf, anda tidak bisa membatalkan
pesanan dikarenakan status anda sudah konfirmasi, anda hanya bisa mengubah
pesan servis";
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX OUTBOX
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
}
con.close();
stat.close();
} catch (SQLException error) {
System.err.println(error);
}
}
if(no_service_tersimpan!=null){
// HAPUS PESANAN SERVICES
sql = "UPDATE service SET keterangan_pembayaran='"+
"Rp."+total_pembayaran+ " " +info_rek+"' WHERE no_service='"+no_service+"'";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
System.out.println("sukses update kondirmasi pesanan servis");
}
// KIRIM SMS
String pesan_balasan = "konfirmasi pembayaran no servis
"+no_service+" Rp "+new
DecimalFormat("###,###.##").format(Integer.parseInt(total_pembayaran))+" via
transfer detail "+info_rek+" silahkan cek status servis beberapa saat lagi ";
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX OUTBOX
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
}else{
// KIRIM SMS
String pesan_balasan = "Maaf, Anda tidak bisa membatalkan pesanan,
dikarenakan statusnya sudah konfirmasi, Anda hanya bisa mengubah pesanan";
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX OUTBOX
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
}
con.close();
stat.close();
} catch (SQLException error) {
System.err.println(error);
}
}
System.out.println(id_pelanggan);
System.out.println(no_service);
System.out.println(no_servis_tersimpan);
if(no_servis_tersimpan!=null){
kirim_sms(no_pelanggan, pesan_balasan);
// SIMPAN INBOX OUTBOX
simpan_inbox(no_pelanggan, isi_sms, id_pelanggan);
simpan_outbox(no_pelanggan, pesan_balasan, id_pelanggan);
}else{
// KIRIM SMS
pesan_balasan = "Maaf, no servis anda tidak ada";
kirim_sms(no_pelanggan, pesan_balasan);
}
res.close();
con.close();
stat.close();
// SIMPAN INBOX
sql = "INSERT INTO sms_inbox
VALUES('"+String.valueOf(autonumber)+"','"+id_pelanggan+"','"+nomor+"','"+pesa
n+"','"+new SimpleDateFormat("yyyyy-MM-dd hh:mm:ss").format(new Date())+"')";
int sukses = stat.executeUpdate(sql);
if (sukses == 1) {
System.out.println("sukses simpan inbox");
}
stat.close();
con.close();
} catch (SQLException error) {
System.err.println(error);
}
}
package booking_services;
public Panduan_sms() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_help.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 72,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(32, 32, 32))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 14, Short.MAX_VALUE))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(297, 297, 297)
.addComponent(jLabel1)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(28, 28, 28)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel5,
javax.swing.GroupLayout.DEFAULT_SIZE, 783, Short.MAX_VALUE)
.addComponent(jLabel8,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 696,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11)
.addComponent(jLabel14)
.addComponent(jLabel16,
javax.swing.GroupLayout.PREFERRED_SIZE, 684,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, Short.MAX_VALUE)))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE,
31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE,
31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16,
Short.MAX_VALUE)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE,
32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE,
32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE,
32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(4, 4, 4)
.addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE,
32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.B
evelBorder.RAISED));
tabelpelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title
8", "Title 9", "Title 10", "Title 11", "Title 12"
}
));
jScrollPane1.setViewportView(tabelpelanggan);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(btnpilihpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 537, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 94,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcaribooking,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txtcaribooking,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncaripelanggan))
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnpilihpelanggan)
.addContainerGap(15, Short.MAX_VALUE))
);
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM service s, service_detil d, paket_service p "
+ "WHERE status = 'Konfirmasi' "
+ "AND s.no_service=d.no_service AND d.id_paket=p.id_paket "
+ "AND " + strKey + " LIKE '%" + txtcaribooking.getText() + "%'
ORDER BY s.no_service DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString("no_service");
data[1] = res.getString("tgl_transaksi");
data[2] = res.getString("id_pelanggan");
data[3] = res.getString("no_plat");
data[4] = res.getString("id_paket");
data[5] = res.getString("biaya");
data[6] = res.getString("area_service");
data[7] = res.getString("tgl_service");
data[8] = res.getString("jam_service");
data[9] = res.getString("uang_muka");
data[10] = res.getString("total_biaya");
data[11] = res.getString("status");
data[12] = res.getString("keterangan_pembayaran");
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
java.util.logging.Logger.getLogger(Popup_Booking.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Popup_Booking.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Popup_Booking.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Popup_Booking.class.getName()).log(java.util.log
ging.Level.SEVERE, null, ex);
}
//</editor-fold>
// ^^ TABEL
private void hapus_tabel() {
int rowCount = tabelpelanggan.getRowCount();
for (int i = 0; i < rowCount; i++) {
tblModel.removeRow(0);
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.B
evelBorder.RAISED));
tabelpelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(tabelpelanggan);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btnpilihpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 94,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(70, 70, 70)
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(12, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncaripelanggan))
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnpilihpelanggan)
.addContainerGap(15, Short.MAX_VALUE))
);
java.util.logging.Logger.getLogger(Popup_Mobil.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Popup_Mobil.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Popup_Mobil.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Popup_Mobil.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
}
//</editor-fold>
// ^^ TABEL
private void hapus_tabel() {
int rowCount = tabelpelanggan.getRowCount();
for (int i = 0; i < rowCount; i++) {
tblModel.removeRow(0);
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.B
evelBorder.RAISED));
tabelpelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(tabelpelanggan);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btnpilihpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 119,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(45, 45, 45)
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(12, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncaripelanggan))
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnpilihpelanggan)
.addContainerGap(15, Short.MAX_VALUE))
);
java.util.logging.Logger.getLogger(Popup_Paket.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Popup_Paket.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Popup_Paket.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Popup_Paket.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
}
//</editor-fold>
// ^^ TABEL
private void hapus_tabel() {
int rowCount = tabelpelanggan.getRowCount();
for (int i = 0; i < rowCount; i++) {
tblModel.removeRow(0);
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.B
evelBorder.RAISED));
tabelpelanggan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3"
}
));
jScrollPane1.setViewportView(tabelpelanggan);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 365,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 94,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btncaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btnpilihpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 68,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txtcaripelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbpelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btncaripelanggan))
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnpilihpelanggan)
.addContainerGap(15, Short.MAX_VALUE))
);
java.util.logging.Logger.getLogger(Popup_Pelanggan.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Popup_Pelanggan.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Popup_Pelanggan.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Popup_Pelanggan.class.getName()).log(java.util.lo
gging.Level.SEVERE, null, ex);
}
//</editor-fold>
// ^^ TABEL
private void hapus_tabel() {
int rowCount = tabelpelanggan.getRowCount();
for (int i = 0; i < rowCount; i++) {
tblModel.removeRow(0);
}
}
private void Tabel(javax.swing.JTable tb, int lebar[]) {
tb.setAutoResizeMode(tb.AUTO_RESIZE_OFF);
int kolom = tb.getColumnCount();
for (int i = 0; i < kolom; i++) {
javax.swing.table.TableColumn tbc = tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}
package booking_services;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
Connection con;
Statement stat;
ResultSet res;
String sql;
String data[] = new String[4];//MEMBUAT STRING DATA UNTUK MENGISI
KOLOM DITABEL
Koneksi_MySQL objkoneksi = new Koneksi_MySQL();
public Saran() {
initComponents();
Tabel(tabel_saran, new int[]{140, 250, 250, 200});
tabel_saran.setModel(tblModel);
tampilkan_data_saran();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_proses.png"))); //
NOI18N
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(577, Short.MAX_VALUE)
.addComponent(jLabel6)
.addGap(32, 32, 32))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(23, Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 9, Short.MAX_VALUE))
);
tabel_saran.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane3.setViewportView(tabel_saran);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane3)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(cmb_saran,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_saran,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari_saran,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_cari_saran,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_keluar,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))
.addComponent(cmb_saran,
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(btn_cari_saran,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.PREFERRED_SIZE, 202,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE))
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
sql = "SELECT * FROM saran WHERE " + strKey + " like '%" +
txt_cari_saran.getText() + "%' ORDER BY id_saran DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
data[3] = res.getString(4);
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
};
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import koneksi.Koneksi_MySQL;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_transaksi.png"))); //
NOI18N
jPanel4.setBackground(new java.awt.Color(204, 204, 204));
txt_no_kwitansi.setEditable(false);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(92, 92, 92)
.addComponent(btn_simpan)
.addGap(49, 49, 49)
.addComponent(btn_cetak, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(54, 54, 54)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(60, 60, 60)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(116, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(btn_batal,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 38,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(btn_cetak,
javax.swing.GroupLayout.PREFERRED_SIZE, 38,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_simpan,
javax.swing.GroupLayout.PREFERRED_SIZE, 38,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 38,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
txt_no_service.setEditable(false);
dc_tgl_kwitansi.setEnabled(false);
txt_id_pelanggan.setEditable(false);
txt_area_service.setEditable(false);
txt_sisa.setEditable(false);
txt_jam_service.setEditable(false);
txt_tgl_transaksi.setEditable(false);
txt_platno.setEditable(false);
txt_total.setEditable(false);
txt_tgl_service.setEditable(false);
txt_uang_muka.setEditable(false);
txt_ketbayar.setEditable(false);
txt_status.setEditable(false);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(43, 43, 43)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jLabel2,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel4,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel5))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, false)
.addComponent(dc_tgl_kwitansi,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE)
.addComponent(txt_no_service,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_tgl_transaksi,
javax.swing.GroupLayout.Alignment.LEADING)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jLabel12)
.addGap(117, 117, 117))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel8Layout.createSequentialGroup()
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 100,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jLabel10,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGap(18, 18, 18))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel9,
javax.swing.GroupLayout.PREFERRED_SIZE, 94,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel8,
javax.swing.GroupLayout.PREFERRED_SIZE, 104,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(22, 22, 22)))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(txt_id_pelanggan)
.addComponent(txt_no_kwitansi,
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txt_area_service,
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(txt_platno,
javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE))))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(btntambahkwitansi,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_cari_transaksi,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel18,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(37, 37, 37)
.addComponent(txt_status,
javax.swing.GroupLayout.PREFERRED_SIZE, 162,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, false)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel15,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txt_total,
javax.swing.GroupLayout.PREFERRED_SIZE, 162,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 92,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)
.addComponent(txt_jam_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 162,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel11,
javax.swing.GroupLayout.PREFERRED_SIZE, 103,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(txt_tgl_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 92,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel14,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(txt_sisa)
.addComponent(txt_uang_muka,
javax.swing.GroupLayout.PREFERRED_SIZE, 162,
javax.swing.GroupLayout.PREFERRED_SIZE)))))))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel17,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(37, 37, 37)
.addComponent(txt_ketbayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 162,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(46, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_kwitansi,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btntambahkwitansi,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(dc_tgl_kwitansi,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 15,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jLabel4))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari_transaksi,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(txt_tgl_transaksi,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(24, 24, 24)
.addComponent(jLabel8)
.addGap(10, 10, 10))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addComponent(txt_id_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
.addComponent(jLabel12)
.addGap(2, 2, 2)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel10)
.addComponent(txt_platno,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(txt_tgl_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(txt_jam_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(txt_uang_muka,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_sisa,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel14))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_total,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel15))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_status,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel18))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_ketbayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel17))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_area_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9)))
.addGap(20, 20, 20)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel4Layout = new
javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
tabel_kwitansi.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title
8", "Title 9", "Title 10", "Title 11", "Title 12", "Title 13", "Title 14"
}
));
tabel_kwitansi.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_kwitansiMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_kwitansi);
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 759, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_booking,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_kwitansi,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_booking)
.addComponent(txt_cari_kwitansi,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 213,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(150, 150, 150))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 793, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 447, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(115, 115, 115))
);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
144, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(20, 20, 20))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(23, Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tb_form_kwitansi,
javax.swing.GroupLayout.PREFERRED_SIZE, 460, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
//update bonus
Statement updatebonus = con.createStatement();
updatebonus.executeUpdate("UPDATE mobil SET bonus_service
='"+sisabonus+"' "
+ "WHERE id_pelanggan='"+txt_id_pelanggan.getText()+"' AND
plat_no = '"+txt_platno.getText()+"'");
updatebonus.close();
}
//update status
Statement updatestatus = con.createStatement();
updatestatus.executeUpdate("UPDATE service SET status ='Lunas'
WHERE no_service='"+txt_no_service.getText()+"'");
updatestatus.close();
resbonus.close();
statcaribonus.close();
JOptionPane.showMessageDialog(null, "Berhasil menyimpan data");
kosongform();
autonumber();
awal();
tb_form_kwitansi.setSelectedIndex(1);
hapusTabel();
setisitabel();
}
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, "Gagal Menyimpan data " + error,
"Peringatan", JOptionPane.WARNING_MESSAGE);
System.err.print(error);
}
}
btn_cari_transaksi.setEnabled(false);
}
});
}
txt_sisa.setText(String.valueOf(Integer.parseInt(res.getString("total_biaya")) -
Integer.parseInt(res.getString("uang_muka"))));
txt_total.setText(res.getString("total_biaya"));
txt_status.setText(res.getString("status"));
txt_ketbayar.setText(res.getString("keterangan_pembayaran"));
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.println(error);
}
}
// ^^ POPUP
public void setDataPopup(String[] dataPopup) {
this.dataPopup = dataPopup;
}
import fungsi.Sesi_User;
import fungsi.Validasi;
import java.io.File;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import koneksi.Koneksi_MySQL;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
setClosable(true);
setFrameIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_transaksi.png"))); //
NOI18N
txt_no_service.setEditable(false);
txt_nm_lengkap.setEditable(false);
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_simpan, javax.swing.GroupLayout.PREFERRED_SIZE,
98, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(29, 29, 29)
.addComponent(btn_ubah)
.addGap(28, 28, 28)
.addComponent(btn_batal_service)
.addGap(32, 32, 32)
.addComponent(btn_cetak, javax.swing.GroupLayout.PREFERRED_SIZE,
105, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(33, 33, 33)
.addComponent(btn_keluar, javax.swing.GroupLayout.PREFERRED_SIZE,
108, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(btn_batal, javax.swing.GroupLayout.PREFERRED_SIZE,
99, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(btn_keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 40,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_ubah, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_simpan,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_cetak,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(btn_batal_service,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 39,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_batal,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 39,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
txt_id_pelanggan.setEditable(false);
dc_tgl_transaksi.setEnabled(false);
dc_tanggal_pesan.addPropertyChangeListener(new
java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
dc_tanggal_pesanPropertyChange(evt);
}
});
cmb_jam_pesan.setModel(new javax.swing.DefaultComboBoxModel(new
String[] { "08", "09", "10", "11", "12", "13", "14", "15", "16", "17" }));
bgstatus.add(rb_belum_konfirmasi);
rb_belum_konfirmasi.setText("Belum Konfirmasi");
txt_harga_paket.setEditable(false);
txt_total_biaya.setEditable(false);
cmb_menit_pesan.setModel(new javax.swing.DefaultComboBoxModel(new
String[] { ": 00" }));
cmb_menit_pesan.setEnabled(false);
bgstatus.add(rb_konfirmasi);
rb_konfirmasi.setText("Konfirmasi");
tabel_detil.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Title 1", "Title 2", "Title 3"
}
));
jScrollPane1.setViewportView(tabel_detil);
txt_jenis_paket.setEditable(false);
jLabel15.setBackground(new java.awt.Color(255, 255, 255));
jLabel15.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
jLabel15.setText("Ket Bayar");
cmb_plat.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cmb_platItemStateChanged(evt);
}
});
txt_merk_mobil.setEditable(false);
txt_sisa.setEditable(false);
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(22, 22, 22)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jLabel2,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel8)
.addComponent(jLabel5)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel18)
.addComponent(jLabel9))
.addComponent(jLabel4,
javax.swing.GroupLayout.PREFERRED_SIZE, 117,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(btn_cek_area)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, false)
.addComponent(txt_no_service,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(dc_tgl_transaksi,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE)
.addComponent(txt_id_pelanggan,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_nm_lengkap,
javax.swing.GroupLayout.Alignment.LEADING))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(btn_cari_pelanggan,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_tambah_service,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)))
.addComponent(cmb_area,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 63,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_merk_mobil,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmb_plat,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(37, 37, 37)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(dc_tanggal_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(cmb_jam_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 64,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cmb_menit_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 63,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGap(47, 47, 47))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel10,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbl_sesi_user,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.PREFERRED_SIZE, 172,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jLabel16)
.addComponent(jLabel12,
javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)
.addComponent(jLabel17,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_jenis_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_id_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_harga_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 165,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(btn_cari_paket,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(btn_tambah_paket,
javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_hapus_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 86,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 412,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel11,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txt_total_biaya,
javax.swing.GroupLayout.PREFERRED_SIZE, 169,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_hitung_total,
javax.swing.GroupLayout.PREFERRED_SIZE, 84,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(19, 19, 19)
.addComponent(rb_belum_konfirmasi,
javax.swing.GroupLayout.PREFERRED_SIZE, 160,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING)
.addComponent(jLabel14,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel19,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel15,
javax.swing.GroupLayout.PREFERRED_SIZE, 106,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(txt_uang_muka,
javax.swing.GroupLayout.PREFERRED_SIZE, 169,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_sisa,
javax.swing.GroupLayout.PREFERRED_SIZE, 84,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txt_sisa,
javax.swing.GroupLayout.PREFERRED_SIZE, 169,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_ket_bayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 259,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(175, 175, 175)
.addComponent(rb_konfirmasi,
javax.swing.GroupLayout.PREFERRED_SIZE, 115,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(90, 90, 90)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(90, Short.MAX_VALUE))
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_no_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_tambah_service,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel16)
.addComponent(jLabel3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(dc_tgl_transaksi,
javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE)
.addComponent(jLabel2,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel4)
.addComponent(txt_id_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari_pelanggan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(14, 14, 14)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_nm_lengkap,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_plat,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel8Layout.createSequentialGroup()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(txt_id_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_jenis_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(jLabel17)
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(btn_tambah_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txt_harga_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12)
.addComponent(btn_hapus_paket,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 89,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel18)
.addComponent(txt_merk_mobil,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_area,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(dc_tanggal_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(cmb_jam_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel10)
.addComponent(cmb_menit_pesan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addComponent(lbl_sesi_user,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(8, 8, 8)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(jLabel13,
javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_total_biaya,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_hitung_total,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(rb_konfirmasi)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel11)
.addComponent(rb_belum_konfirmasi)))
.addGap(11, 11, 11)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel14)
.addComponent(txt_uang_muka,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_sisa,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(13, 13, 13)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel19)
.addComponent(txt_sisa,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cek_area,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16,
Short.MAX_VALUE)
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(txt_ket_bayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel15))))
.addGap(12, 12, 12)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(25, Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(30, 30, 30))
);
tabel_pesanan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null, null, null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title
8", "Title 9", "Title 10", "Title 11", "Title 12", "Title 13"
}
));
tabel_pesanan.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabel_pesananMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabel_pesanan);
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 963, Short.MAX_VALUE)
.addGroup(jPanel7Layout.createSequentialGroup()
.addComponent(cmb_booking,
javax.swing.GroupLayout.PREFERRED_SIZE, 176,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_cari_pesanan,
javax.swing.GroupLayout.PREFERRED_SIZE, 171,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btn_cari,
javax.swing.GroupLayout.PREFERRED_SIZE, 69,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel7Layout.setVerticalGroup(
jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel7Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(cmb_booking,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
.addComponent(txt_cari_pesanan,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari, javax.swing.GroupLayout.DEFAULT_SIZE,
31, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 412,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26))
);
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel6Layout.setVerticalGroup(
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel6Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(757, Short.MAX_VALUE))
);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 1007, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 1271, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
1271, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
);
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE,
144, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(20, 20, 20))
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel12Layout.createSequentialGroup()
.addContainerGap(23, Short.MAX_VALUE)
.addComponent(jLabel6)
.addContainerGap())
);
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tabpane_form,
javax.swing.GroupLayout.PREFERRED_SIZE, 589,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
dc_tanggal_pesan.setDate(new Date());
plat_no();
dc_tanggal_pesan.setEnabled(true);
btn_cari_pelanggan.setEnabled(false);
btn_cek_area.setEnabled(true);
cmb_plat.setEnabled(true);
cmb_area.setEnabled(true);
cmb_jam_pesan.setEnabled(true);
}
});
}
}
statdetil.close();
}
JOptionPane.showMessageDialog(null, "Data telah disimpan");
hapusTabeldetil();
hapusTabel();
setIsiTabel();
kosongform();
awal();
autonumber();
}
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, "Data gagal disimpan" + " Tidak
boleh memasukan paket yang sama " + txt_id_paket.getText(), "Peringatan",
JOptionPane.WARNING_MESSAGE);
}
}
int a;
private void btn_hitung_totalActionPerformed(java.awt.event.ActionEvent evt) {
// ^^ HITUNG TOTAL BIAYA
if (txt_uang_muka.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Silakan isi uang muka",
"Peringatan", JOptionPane.WARNING_MESSAGE);
}
int i;
int total = 0;
int rowCount = tabel_detil.getRowCount();
for (i = 0; i < rowCount; i++) {
total = total;
int Amount = Integer.parseInt(tblModeldetil.getValueAt(i, 2) + "");
total = Amount + total;
}
int uangmuka = Integer.valueOf(txt_uang_muka.getText());
int totalbiaya = total - uangmuka;
txt_total_biaya.setText(String.valueOf(totalbiaya));
rb_belum_konfirmasi.setSelected(true);
txt_uang_muka.setEnabled(true);
txt_ket_bayar.setEnabled(true);
btn_hitung_total.setEnabled(false);
btn_cari_paket.setEnabled(false);
btn_tambah_paket.setEnabled(false);
btn_hapus_paket.setEnabled(false);
btn_sisa.setEnabled(true);
btn_simpan.setEnabled(true);
datadetil[0] = txt_id_paket.getText();
datadetil[1] = txt_jenis_paket.getText();
datadetil[2] = txt_harga_paket.getText();
tblModeldetil.insertRow(0, datadetil);
int rowdetil = tblModeldetil.getRowCount();
System.err.println(rowdetil);
if (rowdetil == 2) {
cek_paket = tblModeldetil.getValueAt(1,0).toString();
System.err.println(cek_paket);
System.err.println(txt_id_paket.getText() + " paket");
//cek id paket sama atau tidak
if (txt_id_paket.getText().equals(cek_paket)) {
JOptionPane.showMessageDialog(null, "Id Paket Sudah di Pilih",
"Peringatan", JOptionPane.WARNING_MESSAGE);
tblModeldetil.removeRow(0);
txt_id_paket.setText("");
txt_jenis_paket.setText("");
txt_harga_paket.setText("");
btn_cari_paket.setEnabled(true);
return;
};
}
txt_id_paket.setText("");
txt_jenis_paket.setText("");
txt_harga_paket.setText("");
txt_uang_muka.setText("0");
rb_belum_konfirmasi.setEnabled(true);
rb_konfirmasi.setEnabled(true);
dc_tanggal_pesan.setEnabled(false);
txt_uang_muka.setEnabled(true);
txt_uang_muka.setEnabled(true);
cmb_jam_pesan.setEnabled(false);
cmb_area.setEnabled(false);
btn_tambah_paket.setEnabled(false);
btn_hitung_total.setEnabled(true);
btn_cari_paket.setEnabled(true);
try {
sql = "SELECT s.no_service AS no, "
+ "s.*,c.*,"
+ "(SELECT GROUP_CONCAT(CONCAT(p.id_paket,' | ',p.jenis_paket,' |
',p.biaya) SEPARATOR ' - ') AS srv FROM service_detil d, paket_service p WHERE
d.no_service=no AND d.id_paket=p.id_paket) AS paket "
+ "FROM service s, pelanggan c "
+ "WHERE s.id_pelanggan = c.id_pelanggan "
+ strKey + " LIKE '%" + txt_cari_pesanan.getText() + "%'"
+ "ORDER BY s.no_service DESC";
res = stat.executeQuery(sql);
while (res.next()) {
data[0] = res.getString("no");
data[1] = res.getString("tgl_transaksi");
data[2] = res.getString("nm_pelanggan");
data[3] = res.getString("no_plat");
data[4] = res.getString("area_service");
data[5] = res.getString("tgl_service");
data[6] = res.getString("jam_service");
data[7] = res.getString("paket");
data[8] = res.getString("total_biaya");
data[9] = res.getString("uang_muka");
data[10] = res.getString("status");
data[11] = res.getString("keterangan_pembayaran");
tblModel.addRow(data);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, error);
}
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
if (penuh == null) {
cmb_area.setEnabled(false);
cmb_plat.setEnabled(false);
dc_tanggal_pesan.setEnabled(false);
cmb_jam_pesan.setEnabled(false);
btn_cek_area.setEnabled(false);
btn_cari_paket.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "Booking penuh, silakan pilih
area/tanggal/jam yang lain!", "Peringatan", JOptionPane.WARNING_MESSAGE);
return;
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.println(error);
}
try {
con = objkoneksi.open_a_Connection();
stat = con.createStatement();
if (penuh != null) {
JOptionPane.showMessageDialog(null, "Booking penuh, silakan pilih
area/tanggal/jam yang lain!", "Peringatan", JOptionPane.WARNING_MESSAGE);
return;
}
hapusTabeldetil();
hapusTabel();
setIsiTabel();
kosongform();
awal();
autonumber();
}
} catch (SQLException error) {
System.err.print(error);
JOptionPane.showMessageDialog(null, "Gagal diubah" + error, "Peringatan",
JOptionPane.WARNING_MESSAGE);
}
}
private void btn_cetakActionPerformed(java.awt.event.ActionEvent evt) {
try {
File file = new File("./src/laporan/Cetak_Servis.jrxml");
jasperDesign = JRXmlLoader.load(file);
param.put("no_servis", txt_no_service.getText());
param.put("nm_user",nm_user);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
jasperPrint = JasperFillManager.fillReport(jasperReport, param,
objkoneksi.open_a_Connection());
JOptionPane.showMessageDialog(null, " Data telah di print '" +
txt_no_service.getText() + "'");
JasperViewer.viewReport(jasperPrint, false);
} catch (JRException | SQLException error) {
JOptionPane.showMessageDialog(null, "Gagal mencetak", "Peringatan",
JOptionPane.WARNING_MESSAGE);
System.out.println(error);
}
}
dc_tgl_transaksi.setDate(java.sql.Date.valueOf(res.getString("tgl_transaksi").split("
")[0]));
txt_id_pelanggan.setText(res.getString("id_pelanggan"));
txt_nm_lengkap.setText(res.getString("nm_pelanggan"));
txt_merk_mobil.setText(res.getString("merk"));
cmb_plat.addItem(res.getString("no_plat") + " " +
res.getString("merk"));
cmb_area.setSelectedItem(res.getString("area_service"));
dc_tanggal_pesan.setDate(java.sql.Date.valueOf(res.getString("tgl_service")));
cmb_jam_pesan.setSelectedItem(res.getString("jam_service").split(":")[0]);
txt_uang_muka.setText(res.getString("uang_muka"));
txt_total_biaya.setText(res.getString("total_biaya"));
if (tblModel.getValueAt(row, 10).toString().equals("Belum Konfirmasi"))
{
rb_belum_konfirmasi.setSelected(true);
btn_batal_service.setEnabled(true);
} else {
rb_konfirmasi.setSelected(true);
}
txt_ket_bayar.setText(res.getString("keterangan_pembayaran"));
rb_belum_konfirmasi.setEnabled(true);
rb_konfirmasi.setEnabled(true);
cmb_jam_pesan.setEnabled(true);
dc_tanggal_pesan.setEnabled(true);
txt_uang_muka.setEnabled(true);
txt_ket_bayar.setEnabled(true);
btn_tambah_service.setEnabled(false);
btn_sisa.setEnabled(true);
btn_simpan.setEnabled(false);
btn_ubah.setEnabled(true);
btn_cetak.setEnabled(true);
btn_batal.setEnabled(true);
tabpane_form.setSelectedIndex(0);
}
res.close();
stat.close();
con.close();
} catch (SQLException error) {
System.err.print("tampil ubah: " + error);
}
}
}
//tabel detil
public void hapusTabeldetil() {
int rowCount = tabel_detil.getRowCount();
for (int i = 0; i < rowCount; i++) {
tblModeldetil.removeRow(0);
}
}
// ^^ POPUP
public void setDataPopup(String[] dataPopup) {
this.dataPopup = dataPopup;
}
// VALIDASI
private void Validasi() {
txt_uang_muka.setDocument(new Validasi(11, "0123456789"));
}
}
Package Fungsi
1. DateTime.java
package fungsi;
import java.text.SimpleDateFormat;
import java.util.Calendar;
package fungsi;
@Override
public void insertString(int offset, String str, AttributeSet attr) throws
BadLocationException {
if (str == null) {
return;
}
if ((getLength() + str.length()) <= limit) {
masukinString(offset, str, attr);
}
}
Package Koneksi
1. Connect_sms.java
package koneksi;
import booking_services.Menu;
import java.awt.HeadlessException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.StringTokenizer;
import java.util.TooManyListenersException;
import java.util.regex.Pattern;
import javax.comm.CommPortIdentifier;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
import javax.comm.UnsupportedCommOperationException;
import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
@Override
public void done() {
menu.loading.setIndeterminate(false);
menu.loading.setStringPainted(true);
menu.loading.setString("running application...");
status_port = true;
menu.cb_port_sms.setEnabled(true);
menu.btn_on_sms.setEnabled(true);
menu.btn_off_sms.setEnabled(false);
}
}
@Override
public void done(){
menu.loading.setIndeterminate(false);
menu.loading.setStringPainted(true);
menu.loading.setString("running application...");
}
}
public void closePortSMS() {
try {
port.close();
status = 0;
menu.btn_on_sms.setEnabled(true);
menu.cb_port_sms.setEnabled(true);
System.out.println("Port SMS berhasil diputuskan");
menu.panel_status.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/icon_status_off.png
")));
menu.loading.setString("");
JOptionPane.showMessageDialog(null, "Port SMS berhasil
diputuskan");
} catch (HeadlessException error) {
System.out.println(error);
}
}
// =======================//
// ====PROSES KIRIM SMS===//
// =======================//
public void kirim_sms(String no_hp, String isi_sms) {
if (status == 0) {
System.out.println("SMS Gateway belum aktif");
return;
}
System.err.println(isi_sms);
dapatNotlp = no_hp;
pesan = isi_sms;
try {
String pesanPDUKirim = PduKirimSms(no_hp.trim(), isi_sms.trim());
System.out.println ("Pesan PDU kirim : "+pesanPDUKirim);
kirimAT("AT+CMGS=" +(pesanPDUKirim.length() / 2) + "\15", 500);
kirimAT("00" + pesanPDUKirim, 2500);
kirimAT("\032", 100);
System.out.println("nomor telepon : "+no_hp+" | pesan :
"+isi_sms);
Thread.currentThread().sleep(10000); // 10000
}catch (InterruptedException error) {
System.out.println(error);
}
}
// FUNCTION SMS //
String kata = "";
String config = "";
int i = 0;
public int status = 0;
private String dapatNotlp;
private String pesan;
c = gsmToAsciiMap[c];
msg.append(c);
charcnt++;
if (rlen >= 7) {
c = (char) (r & 127);
r >>>= 7;
rlen -= 7;
msg.append(c);
charcnt++;
}
}
if ((rlen > 0) && (charcnt < msglen)) {
msg.append((char) r);
}
return msg.toString();
}
static {
final int lastindex = 255;
gsmToAsciiMap = new char[lastindex + 1];
asciiToGsmMap = new char[lastindex + 1];
int i;
//SET-TERMINAL-PENGATURAN PORT//
SerialPort port = null;
Enumeration portList = null;
CommPortIdentifier portId = null;
InputStream input;
OutputStream output;
String portName = null; // Nama Port
int nilaiBaud = 19200; // Nilai Baud Rate
int nilaiData = SerialPort.DATABITS_8; // Nilai DATABITS
int nilaiStop = SerialPort.STOPBITS_1; // Nilai STOPBITS
int nilaiParity = SerialPort.PARITY_NONE; // Nilai PARITY
int nilaiFlow = SerialPort.FLOWCONTROL_NONE; // Nilai FLOWCONTROL
try {
output = port.getOutputStream();
input = port.getInputStream();
} catch (IOException ioe) {
System.out.println("Gagal membuka Stream");
System.out.println("Terjadi kesalahan pada : " + ioe);
}
try {
port.setSerialPortParams(nilaiBaud, nilaiData, nilaiStop, nilaiParity);
port.setFlowControlMode(nilaiFlow);
port.notifyOnDataAvailable(true);
System.out.println("Server Melakukan Hubungan ke Port : " +
portName);
System.out.println("Server Berhasil Tehubung ke Port : " +
portName);
System.out.println("Server Sedang melakukan Pengaturan
Terminal");
System.out.println("PORT AND SMS SERVER READY");
kirimAT("AT" + "\15", 1250); // Apakah terminal telah siap
kirimAT("AT+CMGF=0" + "\15", 1250); // Menetapkan Format PDU
Mode
kirimAT("AT+CSCS=\"GSM\"" + "\15", 1250); // Menetapkan
Encoding
kirimAT("AT+CPMS=\"ME\"" + "\15", 1250); // Mendengarkan
pesan secara Otomatis
kirimAT("AT+CNMI=2,3,2,1,0" + "\15", 1250); // Mendengarkan
pesan secara Otomatis
kirimAT("AT+CMGL=0" + "\15", 1250); // Membaca pesan yang
belum dibaca yang ada di dalam Inbox
JOptionPane.showMessageDialog(null, "Berhasil menghubungkan
sms server");
menu.panel_status.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/icon_status_on.png"
)));
status++;
menu.cb_port_sms.setEnabled(false);
menu.btn_on_sms.setEnabled(false);
menu.btn_off_sms.setEnabled(true);
} catch (UnsupportedCommOperationException ucoe) {
System.out.println("Pengaturan Data Serial Port Gagal");
System.out.println("Kesalahan terjadi pada : " + ucoe);
}
try {
port.addEventListener(this);
} catch (TooManyListenersException tmle) {
System.out.println("Terjadi kesalahan pada : " + tmle);
}
}
1. Desktop.java
package style;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JDesktopPane;
public Desktop() {
}
@Override
protected void paintComponent(Graphics g) {
try {
image = new
javax.swing.ImageIcon(getClass().getResource("/image/Menu.png")).getImage();
if (g != null) {
g.drawImage(image,
(this.getSize().width - image.getWidth(null)) / 2,
(this.getSize().height - image.getHeight(null)) / 2 - 30,
null);
}
} catch (NullPointerException npe) {
System.out.println("Can't find images !!");
}
}
}
2. PanelTransparan.java
package style;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public PanelTransparan() {
setOpaque(false);
color = new
Color(getBackground().getRed(),getBackground().getGreen(),getBackground().getBl
ue(),80);
}
@Override
public void setBackground(Color bg) {
super.setBackground(bg);
color = new
Color(getBackground().getRed(),getBackground().getGreen(),getBackground().getBl
ue(),80);
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D graphic = (Graphics2D)g.create();
graphic.setColor(color);
graphic.fillRect(0, 0, getWidth(), getHeight());
graphic.dispose();
}
}