aplikasi network monitoring berbasis sms...
TRANSCRIPT
SKRIPSI
APLIKASI NETWORK MONITORING BERBASIS SMS
(Studi Kasus Layanan Kesehatan Cuma-Cuma)
Oleh:
Thoyyibah. T
107091002947
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
1432 H / 2011 M
vi
ABSTRAK
Thoyyibah. T, Aplikasi Network Monitoring Berbasis SMS (Studi Kasus: Layanan Kesehatan Cuma-Cuma), di bimbing oleh Fitri Mintarsih, M.Kom dan Arimi, MT
Layanan Kesehatan Cuma-Cuma (LKC) adalah lembaga nirlaba yang memberikan pelayanan kesehatan gratis kepada masyarakat tidak mampu yang didirikan pada tanggal 6 November 2001 dan diresmikan oleh Wakil Presiden RI Bapak DR. Hamzah Haz. Pelayanan kesehatn diberikan melalui berbagai program seperti Gerai Sehat (klinik gratis), Aksi Layan Sehat (layanan kesehatan mobile di daerah kumuh), dan SIGAP Bencana (layanan kesehatan di daerah bencana dan konflik). Agar tepat sasaran, seluruh pelayanan dijalankan menggunakan sistem kepesertaan berbasis keluarga oleh anggota pasien. Namun dengan jumlah anggota pasien LKC sekitar 53.850 orang dan keterbatasan karyawan berjumlah 50 orangkhususnya karyawan IT hanya 2 orang menjadi kendala besar untuk staff IT jika tidak berada di tempat. Melihat permasalahan yang terjadi maka perlu dibuat aplikasi yang dapat mengatasi permasalahan tersebut guna mempermudah staff IT khususnya network administrator yang mengalami masalah jarak dalam mengecek koneksi jaringan yang ada. Dalam penelitian ini aplikasi dibuat dengan berbasis SMS. Aplikasi sendiri dikembangkan dengan menggunakan metode pengembangan extreme programming. Dalam aplikasi ini terdapat empat fitur utama yaitu berkas, database, sms request dan system. Hasil yang dicapai dalam penelitian ini adalah perancangan sistem network monitoring baru dengan notifikasi SMS, yang dapat digunakan oleh network administrator untuk melihat koneksi jaringan sehingga ketika network administrator tidak berada di tempat akan membantu admin untuk mengetahui keadaan komputer pada jaringan dengan cepat dan pada akhirnya dapat meningkatkan pelayanan dengan mengambil tindakan pada komputer client yang bermasalah.
Kata Kunci: Network Monitoring, SMSJumlah Daftar Pustaka : 15 Sumber (11 Buku + 4 Sumber Internet)Jumlah Halaman : 237 Halaman (49 Gambar + 12 Tabel + 4 Lampiran)
vii
KATA PENGANTAR
Bismillahirrahmannirrahiim………
Puji dan syukur penulis panjatkan kehadirat Allah SWT, yang telah
memberikan rahmat, taufik dan hidayah-Nya, sehingga penulis dapat
menyelesaikan penyusunan skripsi ini. Shalawat serta salam semoga Allah
limpahkan kepada Nabi besar Muhammad SAW yang telah membawa pertunjuk
dan pedoman hidup bagi manusia, juga kepada keluarga dan sahabat yang telah
mewariskan nilai Islam kepada kita semua.
Skripsi ini penulis buat sebagai syarat kelulusan dalam menempuh
pendidikan jenjang Strata-1 (S1) di Universitas Islam Negeri Syarif Hidayatullah
Jakarta. Selain itu juga penulis berharap penelitian ini dapat bermanfaat sehingga
perkembangan ilmu pengetahuan dan teknologi di UIN Syarif Hidayatullah
Jakarta dapat lebih maju dan lulusannya dapat bekerja secara kooperatif dengan
semua elemen informatika dari seluruh dunia.
Mengingat jasa dan bantuan dari semua pihak maka dalam kesempatan ini
penulis menghaturkan terima kasih yang sedalam - dalamnya :
1. Bapak Dr. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains
dan Teknologi UIN Syarif Hidayatullah Jakarta.
2. Bapak Yusuf Durrachman, M.Sc, MIT, Ketua Program Studi Teknik
Informatika UI Syarif Hidayatullah Jakarta.
3. Ibu Fitri Mintarsih, dosen pembimbing 1 yang telah banyak meluangkan
waktu dalam memberikan bimbingan.
viii
4. Ibu Arini, MT selaku Pembimbing 2 yang telah pengarahan dan petunjuk -
petunjuk yang berharga kepada penulis sehingga skripsi dapat
diselesaikan.
5. Tim IT Layanan Kesehatan Cuma-Cuma, yang telah bekerja sama dalam
penyelesaian skripsi ini.
6. Bapak dan Ibu penguji yang memberikan kritik dan saran pada skripsi ini.
7. Dosen-Dosen Fakultas Sains dan Teknologi yang telah mengajarkan
kepada penulis berbagai macam ilmu yang dapat penulis terapkan dalam
penulisan skripsi ini.
8. Kedua orang tua penulis, yang telah mendidik, membimbing serta
memberikan motivasi dalam penyusunan skripsi ini.
9. Teman-Teman seperjuangan TI UIN 2007 yang telah membantu
memberikan support dan motivasi kepada penulis, baik selama perkuliahan
terlebih selama menyelesaikan skripsi ini. Semoga segala bantuan dan
amal baik yang telah diberikan kepada penulis akan dibalas oleh Allah
SWT dengan pahala yang berlipat ganda.
Penulis menyadari masih jauh dari sempurna dalam penelitian ini,
baik penulisan maupun aplikasinya sendiri. Oleh karena itu penulis
mengharapkan saran dan kritik yang dapat membangun skripsi ini lebih
baik lagi.
Jakarta, Juni 2011
Penulis
ix
DAFTAR ISI
Halaman Judul ............................................................................................ ii
Persetujuan Pembimbing ............................................................................ iii
Halaman Pengesahan ................................................................................. iv
Halaman Pernyataan ................................................................................... v
Abstrak ....................................................................................................... vi
Kata Pengantar ........................................................................................... vii
Daftar Isi...................................................................................................... ix
Daftar Gambar ............................................................................................ xiv
Daftar Tabel ............................................................................................... xvii
Daftar Lampiran ......................................................................................... xviii
BAB I PENDAHULUAN
1.1. Latar Belakang ............................................................................ 1
1.2. Rumusan Masalah ........................................................................ 3
1.3. Batasan Masalah .......................................................................... 3
1.4. Tujuan dan Manfaat Penelitian .................................................... 4
1.4.1. Tujuan Penelitian ................................................................ 4
1.4.2. Manfaat Penelitian ............................................................. 4
1.5. Metodologi Penelitian .................................................................. 5
1.6. Sistematika Penulisan .................................................................. 6
Halaman
x
BAB II LANDASAN TEORI
2.1. Aplikasi Network Monitoring ..................................................... 8
2.1.1. Pengertian Network Monitoring ...................................... 8
2.1.2. Tujuan Network Monitoring ............................................ 9
2.2. Topologi Jaringan ........................................................................ 10
2.3. UML (Unified Modelling Language) ......................................... 10
2.3.1. Definisi ............................................................................ 10
2.4. Java............................................................................................... 12
2.4.1. Sinkronisasi .................................................................... 12
2.5. Jenis-Jenis Protocol ..................................................................... 13
2.6. Model-Model Referensi .............................................................. 17
2.7. Perangkat Keras Jaringan ........................................................... 22
2.7.1. Kabel .................................................................................. 22
2.7.2. Modem ............................................................................... 24
2.8. Teknologi SMS ........................................................................... 26
2.8.1. Kelebihan SMS .................................................................. 28
2.8.2. Kekurangan SMS ............................................................... 29
2.9. Sms Gateway.................................................................................. 30
2.9.1. Pengenalan Sms Gateway .................................................. 30
2.9.2. Perangkat Komunikasi Yang Digunakan........................... 31
2.10 Metode Pengembangan Sistem Extreme Programming .............. 32
2.10.1. Extreme Programming Software Development Process .. 32
2.10.2. Nilai-nilai Dasar XP......................................................... 33
xi
2.10.3. Aspek Dasar XP ............................................................... 35
2.11. AT Command ............................................................................... 41
2.12. Perlengkapan Pemrograman Penunjang ....................................... 42
2.12.1. NetBeans IDE 6.7.1 ........................................................ 42
2.12.2. MySQL ........................................................................... 43
2.13. Metode Pengumpulan Data .......................................................... 44
2.13.1. Metode Observasi .......................................................... 44
2.13.2. Metode Studi Pustaka ..................................................... 44
2.13.3. Wawancara ..................................................................... 44
2.13.4. Studi Literatur ................................................................ 44
BAB III METODOLOGI PENELITIAN
3.1. Tempat dan Waktu Penelitian ..................................................... 47
3.2. Metode Pengumpulan Data ......................................................... 47
3.2.1. Metode Observasi............................................................. 47
3.2.2. Metode Studi Pustaka....................................................... 47
3.3.3. Wawancara ...................................................................... 48
3.3.4. Studi Literatur .................................................................. 48
3.3. Metode Pengembangan Sistem ................................................... 49
3.3.1. Planning ........................................................................... 49
3.3.2. Design ............................................................................ 50
3.3.3. Coding ............................................................................. 51
3.3.4. Testing ............................................................................. 52
xii
3.5. Kerangka Berpikir ....................................................................... 53
BAB IV IMPLEMENTASI DAN EVALUASI
4.1. Tentang Layanan Kesehatan Cuma-Cuma................................... 54
4.1.1. Sejarah LKC .................................................................... 54
4.1.2. Visi dan Misi LKC .......................................................... 55
4.1.3. Wewenang........................................................................ 56
4.1.4. Strategi ............................................................................. 57
4.1.5. Staff IT LKC ................................................................... 57
4.1.6. Tugas dan Wewenang ...................................................... 58
4.2. Perencanaan (Planning) ............................................................... 60
4.2.1. Pengumpulan Permintaan User ....................................... 60
4.2.2. Pengamatan terhadap sistem yang berjalan ..................... 61
4.2.3. Identifikasi Masalah ......................................................... 64
4.2.4. Usulan Alur Bisnis ........................................................... 64
4.3. Desain........................................................................................... 67
4.3.1. Perancangan Aplikasi....................................................... 67
4.3.2. Perancangan Basisdata (Database) .................................. 73
4.4.3. Perancangan Tampilan ..................................................... 79
4.4. Coding .......................................................................................... 84
4.4.1. Penyiapan Unit Testing .................................................... 84
4.4.2. Implementasi Coding ....................................................... 84
4.5. Pengujian (Testing) ...................................................................... 85
xiii
4.5.1. Analisa Pengujian............................................................. 86
4.5.2. Hasil Pengujian Mandiri .................................................. 87
4.5.3. Hasil Pengujian Lapangan (User) .................................... 90
4.5.4. Screenshot Hasil Pengujian.............................................. 92
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan ................................................................................. 97
5.2. Saran ............................................................................................ 97
DAFTAR PUSTAKA ............................................................................... 98
LAMPIRAN-LAMPIRAN
xiv
DAFTAR GAMBAR
Halaman
Gambar 2.1 Topologi Star .............................................................................. 10
Gambar 2.2 Arsitektur TCP/IP........................................................................ 18
Gambar 2.3 Arsitektur OSI ............................................................................. 20
Gambar 2.4 Kabel UTP................................................................................... 24
Gambar 2.5 Modem Huawei K3565 ............................................................... 26
Gambar 2.6 Kedudukan SMS dalam jaringan................................................. 27
Gambar 2.7 Xp Practices................................................................................. 35
Gambar 3.1 Kerangka Berpikir ....................................................................... 53
Gambar 4.1 Struktur Organisasi Bagian IT LKC............................................ 58
Gambar 4.2 Proses Network Monitoring ........................................................ 62
Gambar 4.3 Pemecahan Network Monitoring yang Disarankan..................... 66
Gambar 4.4 Activity Diagram Sistem Monitoring Berbasis SMS .................. 69
Gambar 4.5 Activity Diagram Saat SMS Function Aktif ............................... 70
Gambar 4.6 STD Fitur Ping ............................................................................ 71
Gambar 4.7 STD Fitur Netstat ........................................................................ 71
Gambar 4.8 STD Fitur Telnet.......................................................................... 71
Gambar 4.9 STD Fitur Nbtstat ........................................................................ 71
Gambar 4.10 STD Fitur Ipconfig ...................................................................... 72
Gambar 4.11 STD Fitur Net Share.................................................................... 72
Gambar 4.12 STD Fitur Tracert ........................................................................ 72
xv
Gambar 4.13 STD Fitur Nslookup .................................................................... 72
Gambar 4.14 STD Fitur FTP............................................................................. 73
Gambar 4.15 STD Fitur Hostname.................................................................... 73
Gambar 4.16 STD Fitur Pathping...................................................................... 73
Gambar 4.17 Halaman Login ............................................................................ 79
Gambar 4.18 Halaman Utama........................................................................... 79
Gambar 4.19 Halaman Koneksi/Berkas ............................................................ 80
Gambar 4.20 Halaman Koneksi Terminal......................................................... 80
Gambar 4.21 Halaman Putus Terminal ............................................................. 80
Gambar 4.22 Halaman Kirim SMS ................................................................... 81
Gambar 4.23 Halaman Keluar........................................................................... 81
Gambar 4.24 Halaman Database ....................................................................... 81
Gambar 4.25 Halaman SMS Masuk.................................................................. 82
Gambar 4.26 Halaman SMS Keluar.................................................................. 82
Gambar 4.27 Halaman Buku Telepon............................................................... 82
Gambar 4.28 Halaman SMS Request/Monitoring Jaringan.............................. 82
Gambar 4.29 Halaman Konfigurasi Perangkat.................................................. 83
Gambar 4.30 Halaman Aktivitas System .......................................................... 83
Gambar 4.31 Halaman Login ............................................................................ 92
Gambar 4.32 Menu pada Berkas ....................................................................... 93
Gambar 4.33 Koneksi Terminal ........................................................................ 93
Gambar 4.34 Putus Terminal............................................................................. 94
Gambar 4.35 Kirim SMS................................................................................... 94
xvi
Gambar 4.36 Data SMS Masuk......................................................................... 94
Gambar 4.37 Data SMS Keluar......................................................................... 95
Gambar 4.38 Data Buku Telepon...................................................................... 95
Gambar 4.39 Monitoring Jaringan .................................................................... 95
Gambar 4.40 Konfigurasi Perangka .................................................................. 96
Gambar 4.41 Aktivitas System SMS Server ..................................................... 96
xvii
DAFTAR TABEL
Halaman
Tabel 2.1 Spesifikasi Nexian G922.................................................................. 31
Tabel 2.2 Studi Literatur .................................................................................. 45
Tabel 4.1 Index card untuk pengusulan riset.................................................... 61
Tabel 4.2 Fungsi Fiture Monitoring Jaringan................................................... 66
Tabel 4.3 Normalisasi Tahap awal Database ................................................... 74
Tabel 4.4 Normalisasi II Buku Telepon dan Sms keluar ................................. 75
Tabel 4.5 Normalisasi II Buku Telepon dan Sms Masuk................................. 76
Tabel 4.6 Tabel Data Telepon. ......................................................................... 77
Tabel 4.7 Tabel Sms Keluar ............................................................................. 78
Tabel 4.8 Tabel Sms Masuk............................................................................. 78
Tabel 4.12 Hasil pengujian aplikasi monitoring jaringan .................................. 87
Tabel 4.13 Hasil pengujian Aplikasi Monitoring oleh User .............................. 90
xviii
DAFTAR LAMPIRAN
LAMPIRAN A (Surat Keterangan Izin Riset)
LAMPIRAN B (Wawancara)
LAMPIRAN C (Hasil Pengujian)
LAMPIRAN D (Source Code Program)
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di zaman sekarang ini ilmu pengetahuan semakin berkembang. Terutama
dalam bidang teknologi dan informasi. Perkembangan teknologi dan informasi ini
berpengaruh terhadap kehidupan manusia sekarang. Banyak kegiatan yang dilakukan
mengikutsertakan kemajuan teknologi itu sendiri. Sama halnya pada teknologi
jaringan computer yang terus bergerak maju seiring dengan perkembangan teknologi.
Jaringan computer saat ini merupakan suatu hal yang penting dalam sebuah
perusahaan atau lembaga, dengan adanya jaringan computer kegiatan komunikasi
yang dilakukan menjadi lebih mudah, efektif, hemat waktu dan masih banyak lagi
keuntungan lain yang di dapat dengan adanya jaringan computer dalam lembaga, agar
semua kegiatan yang dilakukan melalui jaringan computer selalu berjalan dengan
lancar tanpa adanya gangguan.
Jaringan tersebut harus senantiasa dipantau atau dimonitor. Memanfaatkan
pemantauan jaringan ini dikenal juga sebagai network monitoring. Di dalam network
monitoring ini kegiatan yang biasa dilakukan adalah memantau komponen-
komponen jaringan seperti server dan client. Monitoring ini dilakukan untuk
mengukur, mencatat, mengumpulkan dan memanfaatkan informasi yang berhubungan
dengan jaringan computer lembaga khususnya lembaga LKC (Layanan Kesehatan
Cuma-Cuma) untuk kemudian ditindak lanjuti.
2
Monitoring pada jaringan ini umumnya dilakukan dengan menggunakan sebuah
perangkat computer atau PC (Personal Computer) yang bertindak sebagai server dan
terhubung ke dalam jaringan local lembaga LKC. Monitoring ini mengharuskan
network administrator untuk terus berada di depan layar dan melakukan pemantauan
terhadap berbagai situasi yang terjadi dalam jaringan agar kinerja jaringan tetap
terjaga. Ada saatnya network administrator tidak berada di depan layar untuk
memantau jaringan, hal seperti ini menyebabkan monitoring sedikit terhambat dan
hal-hal yang terjadi dalam jaringan tidak diketahui secara langsung oleh network
administrator. Pada saat seperti ini jika terjadi gangguan pada jaringan, penanganan
di network administrator akan tertunda.
Mengatasi masalah seperti ini, jalan keluarnya adalah menghubungi network
administrator sesaat setelah gangguan pada jaringan terdeteksi, sehingga diperlukan
aplikasi untuk menghubungi network administrator adalah dengan mengirim pesan
ke handphone yang dimiliki oleh network administrator dengan SMS (Short Message
Service). Aplikasi yang dibuat ini berdasarkan dengan studi literatur dengan
membandingkan aplikasi yang satu dengan yang lain baik yang berbayar ataupun
tidak berbayar sehingga muncullah berbagai fitur seperti mengecek IP, Nslookup,
Netstat, Telnet, Ping, Netstat, Nbstat, Ipconfig, Tracert, Net Share, FTP, Hostname
serta Pathping.
Sistem yang akan dibuat dalam model network monitoring ini dengan
mengunakan bahasa pemrograman java di sistem operasi Microsoft windows xp
professional. Sistem network monitoring ditanamkan pada computer network
3
administrator dan melakukan monitoring terhadap konektivititas jaringan local
perusaan ke server. Dimana computer network administrator terhubung dengan
sebuah modem sebagai gatewaynya.
1.2 Rumusan Masalah
Setelah mengetahui system yang sedang berjalan di LKC dengan melakukan
wawancara dengan pihak-pihak yang terkait, maka didapat beberapa poin mengenai
masalah yang dihadapai oleh LKC Adalah sebagai berikut:
1) Bagaimana merancang aplikasi monitoring jaringan berbasis SMS.
2) Bagaimana hasil uiji coba monitoring jaringan berbasis SMS.
3) Bagaimana aplikasi dapat menyimpan pesan dari client ke database.
1.3 Batasan Masalah
Mengetahui begitu luasnya bidang jaringan computer maka ruang lingkup
penelitian difokuskan pada:
a. Aplikasi monitoring jaringan menggunakan AT-Command untuk mengirim dan
menerima SMS.
b. Aplikasi monitoring jaringan dilengkapi database untuk SMS masuk dan SMS
keluar serta data buku telepon .
c. Aplikasi menggunakan modem sebagai gateway.
4
d. Monitoring jaringan yang ada dalam aplikasi ini hanya berupa perintah IP,
Nslookup, Netstat, Telnet, Ping, Netstat, Nbstat, Ipconfig, Tracert, Net Share,
FTP, Hostname serta Pathping.
e. Sistem komunikasi selular tidak dibahas.
1.4 Tujuan dan manfaat
1.4.1 Tujuan dari penelitian
1. Merancang sebuah system yang dapat digunakan oleh network administrator
untuk memantau jaringan.
2. Merancang system yang dapat mengirimkan sms notifikasi kepada nework
administrator jika terjadi gangguan dalam jaringan.
3. Mempercepat notifikasi, menghemat waktu dan biaya dalam melakukan
pemantauan jaringan.
14.2 Manfaat dari penelitian
A. Bagi Penulis
1. Menambah wawasan penulis tentang teknologi SMS gateway dan
menerapkan langsung dengan mengembangkan aplikasi monitoring
jaringan.
B. Bagi Lembaga
1. Hasil Penelitian diharapkan dapat meningkatkan fungsi sistem yang
sedang berjalan sehingga dapat meningkatkan kerja monitoring
dalam jaringan komputer LKC.
5
C. Bagi Universitas
1. Mengetahui kemampuan mahasiswa dalam menguasai materi
pelajaran yang diperoleh dibangku kuliah.
2. Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan
sebagai bahan evaluasi.
3. Sebagai bahan referensi untuk penelitian yang akan datang.
1.5 Metodologi Penelitian
Metode penelitian yang penulis lakukan dalam penulisan skripsi ini yaitu:
1.5.1 Metode Pengumpulan Data
Pada penelitian ini penulis menggunakan metode pengumpulan data
berupa observasi, studi pustaka, wawancara / interview, studi literatur .
1.5.2 Metode Pengembangan Sistem
Metode pengembangan sistem yang digunakan pada penulisan ini
adalah Agile Software Development dengan Extreme Programming.
Tahapannya adalah sebagai berikut:
a. Planning
Planning merupakan perencanaan dari aplikasi yang akan dibuat dengan
menjelaskan fitur dan kegunaan dari aplikasi.
b. Design
Design merupakan kelanjutan dari tahap planning dengan mendisain
perencanaan sebelumnya.
6
b. Coding
Coding merupakan pembuatan unit test untuk kemudian digunakan sebagai
pengujian pada fitur yang akan digunakan.
c. Testing
Testing merupakan pengujian terhadap kode dengan unit test yang
sebelumnya telah dibuat.
d. Release
Release merupakan tahap akhir aplikasi siap diuji atau digunakan oleh
pengguna, setelah sebelumnya dipastikan sudah melawati tahap testing.
1.6 Sistematika Penulisan
Dalam skripsi ini, penulis menjabarkan penelitian dalam merancang
dan menguji Network Monitoring berbasis SMS sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini menguraikan latar belakang penelitian, ruang lingkup
penelitian, tujuan dan manfat penelitian, metodologi dan sistematika
penelitian.
BAB II LANDASAN TEORI
Bab ini membahas secara singkat teori yang diperlukan dalam
penelitian skripsi ini.
7
BAB III METODOLOGI PENELITIAN
Bab ini menjelaskan tentang metode yang digunakan penulis dalam
pengumpulan data maupun metode untuk perancangan sistem
BAB IV PENGUJIAN DAN EVALUASI
Bab ini berisi tentang hasil uji sistem network monitoring berbasis
SMS yang telah dibuat ke dalam jaringan LKC. Bab ini juga berisi
hasil evaluasi dari pengujian network monitoring berbasis SMS
tersebut.
BAB 5 PENUTUP
Bab ini berisi tentang kesimpulan atas sistem yang telah dibuat,
teknologi dan sistem yang sudah ditanamkan ke dalam jaringan LKC,
dan juga saran-saran yang dapat digunakan untuk pengembangan dan
penyampaian lebih lanjut.
8
8
BAB II
LANDASAN TEORI
2.1 Aplikasi network monitoring
2.1.1 Pengertian network monitoring
Monitoring jaringan adalah salah satu fungsi dari manajemen jaringan.
Monitoring ini berguna untuk menganalisis apakah jaringan kita masih cukup
layak untuk digunakan atau perlu tambahan kapasitas. Hasil monitoring ini juga
dapat membantu kita untuk mendesain ulang jaringan yang ada. Banyak hal dalam
jaringan yang bisa dimonitor melalui interface komputer. Dengan adanya aplikasi
monitoring memberikan kemampuan kepada pengguna untuk memonitor dan
mengatur jaringan komputer secara sistematis dari jarak jauh atau dalam suatu
pusat kontrol saja. Pengelolaan ini dijalankan dengan mengumpulkan data dan
melakukan penetapan terhadap variabel-variabel dalam elemen jaringan yang di
kelola. Kondisi jaringan pun dapat dimonitor misalkan stus up/down dari sebuah
peralatan jaringan. Hal ini dapat dilakukan dengan berbagai fitur jaringan.
(Kusaeri, 2010:35)
9
2.1.2 Tujuan network monitoring
Tujuan dari network monitoring yaitu untuk mengumpulkan informasi
yang berguna dari berbagai bagian jaringan sehinga jaringan dapat diatur dan
dikontrol dengan mengunakan informasi yang telah terkumpul tersebut. Beberapa
alasan dilakukan network monitoring.
a) Untuk mengawasi kejadian yang sedang terjadi di dalam jaringan yang
memiliki sejumlah besar mesin (host) tanpa alat pengawas yang baik.
b) Untuk mengetahui masalah pada jaringan sebelum manager menanyakan
kepada administrator dan sebelum pelanggan menelepon. Tanpa kemampuan
monitoring jaringan, seorang administrator hanya dapat breaksi terhadap
masalah jika masalah tersebut muncul dibandingkan mencegah masalah ini
sebelumnya.
c) Untuk menjaga agar jaringan selalu dalam keadan sehat.
d) Untuk mendeteksi kesalahan pada jaringan, gateway dan server yang penting.
e) Untuk memberitahukan masalah kegagalan jaringan kepada administrator
secepatnya.
f) Mendokumentasikan jaringan.
10
2.2 Topologi Jaringan
Topologi menggambarkan sebuah metode yang digunakan untuk melakukan
pengkabelan secara fisik (physical topologi) dari suatu jaringan. Physical topologi
merupakan topologi suatu jaringan yang didasarkan pada cara penghubung sejumlah
node atau sentral dalam membentuk suatu sistem jaringan. Topologi jaringan yang
umum dipakai adalah : Mesh, Bintang (Star), Bus, Tree, dan Cincin (Ring). Pada
LKC menggunakan topologi star, topologi dimana setiap komputer dihubungkan
secara langsung melalui media perantara berupa hub/switch. Dalam prakteknya,
pembangunan sebuah jaringan biasanya tidak menggunakan satu topologi saja,
melainkan gabungan dari beberapa topologi yang ada.
Gambar 2.1 Topologi Star (Bintang)
Sumber: (Infokomputer, 2008)
2.3 UML (Unified Modelling Language)
2.3.1 Definisi
11
UML adalah bahasa grafis untuk mendokumentasikan,
menspesifikasikan dan membangun sistem perangkat lunak. UML berorientasi objek
menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak
tergantung pada bahasa dan teknologi, pemaduan beberapa notasi di beragam
metodologi, usaha bersama dari banyak pihak. Standar UML dikelola oleh OMG
(Object Management Group). (Heriyanto, 2004:54)
UML merupakan bahasa permodelan untuk menspesifikasikan,
memvisualisasikan, membangun sistem. Kelebihan UML diantaranya:
1) Di dalam (system intensive process), metode diterapkan sebagai proses
untuk menurutkan atau mengevolusikan sistem.
2) Sebagai bahasa UML digunakan untuk komunikasi, yaitu alat untuk
menangkap pengetahuan (semantik) mengenai suatu subjek dan
mengapresiasikan yang memperdulikan subjek sebagai suatu komunikasi.
Subjek merupakan sistem yang dibahas.
3) Sebagai bahasa permodelan, UML fokus pada pemahaman subjek melalui
formulasi (model dari subyek dan konsep yang terhubung).
4) Berkaitan dengan unifikasi, UML memadukan praktek rekayasa terbaik
sistem informasi dan industry, meliputi beragam tipe sistem (perangkat
lunak dan non lunak), domain (bisnis, perangkat lunak) dan proses siklus
hidup.
12
5) Ketika diterapkan untuk menspesifikasikan sistem,UML dapat digunakan
untuk mengkomunikasikan “apa” yang diperlukan dari sistem dan
“bagaimana” sistem dapat direalisasikan.
6) Ketika diterapkan untuk memvisualisasikan sistem, UML dapat
digunakan untuk menjelaskan sistem secara visual sebelum direalisasikan.
7) Ketika diterapkan untuk membangun sistem, UML dapat digunakan
untuk memandu realisasi sistem.
8) Ketika diterapkan untuk mendokumentasikan sistem, UML dapat
digunakan untuk menangkap pengetahuan mengenai sistem pada seluruh
siklus hidup. ( Bambang Heriyanto, 2004)
Diagram-diagram yang digunakan dalam skripsi ini sebagai berikut:
1) State transmition diagram untuk memodelkan perilaku objects di dalam
sistem.
2) Activity diagram untuk memodelkan perilaku use cases dan objects di
dalam system.
2.4Java
2.4.1 Sinkronisasi
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada
saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya
inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda serta
13
untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan
lancar dan terhindar dari deadlock atau starvation. (Wells, Don: 2010)
Sinkronisasi merupakan suatu proses pengendalian akses dari sumber
daya yang pemakaiannya terbagi (shared resource) oleh banyak thread
sedemikian sehingga hanya satu thread yang dapat mengakses sumber daya
tertentu pada satu waktu. Dalam aplikasi multithreaded yang tidak
tersinkronisasi, sangat mungkin terjadi adanya satu thread memodifikasi suatu
objek yang dipakai bersama pada saat thread lain sedangkan dalam proses
menggunakan atau mengubah nilai obyek tersebut. Sinkronisasi mencegah jenis
kerusakan data demikian, jika tidak disinkronkan maka dapat mengakibatkan
pembacaan yang buruk dan kesalahan yang signifikan. Secara umum bagian
kritis (critical sections) dari kode biasanya ditandai dengan kata kunci
synchronized. Suatu lock (kunci) digunakan untuk mengsinkronkan akses ke
sumber daya yang terbagi-pakai.
2.5 Jenis-Jenis Protocol
a. IP (Inernet Protocol)
Internet Protocol didesain untuk interkoneksi sistem komunikasi
komputer pada jaringan packet-switched. Pada jaringan TCP/IP, sebuah
komputer diidentifikasi dengan alamat IP. Tiap-tiap komputer memiliki alamat
IP yang unik, masing-masing berbeda satu sama lainnya. Hal ini dilakukan untuk
14
mencegah kesalahan pada transfer data. Terakhir, protokol data akses
berhubungan langsung dengan media fisik. Secara umum protokol ini bertugas
untuk menangani pendeteksian kesalahan pada saat transfer data, untuk
komunikasi datanya. Internet Protokol mengimplementasikan dua fungsi dasar
yaitu addressing dan fragmentasi.
Salah satu hal penting dalam IP dalam pengiriman informasi dengan
metode pengalamatan pengirim dan penerima. Saat ini terdapat standar
pengalamatan yang sudah digunakan yaitu IPv4 dengan alamat terdiri dari 32 bit.
Jumlah alamat yang diciptakan dengan IPv4 diperkirakan tidak dapat mencukupi
kebutuhan pengalamatan IP sehingga kedepan akan diimplementasikan sistem
pengalamatan yang baru yaitu IPv6 yang menggunakan sistim pengalamatan 128
bit.
b. UDP (User Diagram Protocol)
Pada dasarnya UDP merupakan layer transport yang lebih sederhana
daripada TCP. UDP tidak mengurutkan segmen seperti apa yang dilakukan TCP.
Selain itu juga UDP tidak membuat virtual circuit dan tidak menghubungi tujuan
dalam mengirimkan informasi.
c. TCP (Transmission Control Protocol)
TCP merupakan protokol untuk mengatur jenis komunikasi connection
oriented, dimana didalamnya terdapat virtual ciruit selama proses komunikasi
15
berlangsung. TCP menerima pesan lalu memecahnya kedalam segmen yang
dinomori kemudian diurutkan kembali ketika sampai tujuan.
Pada saat segmen dikirim dilakukan proses sinkronisasi permintaan dari
sumber ke tujuan. Antara sumber dengan tujuan melakukan negosiasi dari
permintaas koneksi, TCP tujuan akan memberikan tanda acknowledgement ke
TCP sumber atas permintaan koneksi. Setelah koneki tercipta maka kedua belah
pihak dapat saling bertukar informasi sesuai dengan kesepakatan yang disetujui
dan koneksi akan terputus jika komunikasi selesai.
d. DHCP (Dynamic Host Configuration Protocol)
DHCP (Dynamic Host Configuration Protocol) adalah protokol yang
berbasis arsitektur client/server yang dipakai untuk memudahkan pengalokasian
alamat IP dalam satu jaringan.
e. Hypertext Transfer Protocol (HTTP)
Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan
lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif,
dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan
sumber daya yang saling terhubung dengan tautan, yang disebut dengan
dokumen hiperteks, yang kemudian membentuk World Wide Web pada tahun
1990 oleh fisikawan Inggris, Tim Berners-Lee. Hingga kini, ada dua versi mayor
16
dari protokol HTTP, yakni HTTP/1.0 yang menggunakan koneksi terpisah untuk
setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama
untuk melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena
memang tidak usah membuang waktu untuk pembuatan koneksi berulang-ulang.
f. FTP (File Transfer Protocol)
FTP merupakan sebuah protokol Internet yang berjalan di dalam lapisan
aplikasi yang merupakan standar untuk pentransferan berkas komputer antar
mesin-mesin dalam sebuah internetwork.
g. TELNET
TELNET adalah singkatan dari teletype network adalah sebuah protokol
jaringan yang digunakan di koneksi Internet atau local area network.
h. SNMP (Simple Network Management Protocol)
SNMP (Simple Network Management Protocol) adalah suatu suatu sistem
Protokol yang mengatur sistem network yang ada dengan aplikasi-aplikasi
terdistribusi. Fungsi Protokol ini adalah menyederhanakan sistem network yang
kompleks menjadi sederhana. Tugas SNMP secara umum adalah:
a. Restruktur network kearah yang mudah dikontrol dengan membagi atas
bagian-bagian.
17
b. Semua informasi disimpan pada Management Information Base (MIB).
c. Memiliki Security.
d. Memiliki Privacy di masing-masing kelompok maupun antar kelompok.
e. Mempunyai access control.
Sistem network managemen Protokol adalah suatu komponen yang
memegang peranan penting di dalam System Management Network. Suatu
System Management Network merupakan suatu kumpulan tools yang digunakan
untuk memonitor dan mengontrol network yang memiki sifat-sifat antara lain
sebagai berikut:
a. Seorang operator interface mampu memberikan perintah-perintah jaringan
pada aplikasi untuk melengkapi sebagian atau seluruh kerja managemen
network.
b. Sebagian hardware yang digunakan dan software yang dibutuhkan untuk
managemen network dalam jaringan dapat digabungkan ke dalam peralatan
yang ada.
Komponen-komponen yang digunakan pada suatu system management network
adalah:
a) Manager terminal kerja atau manager.
18
b) Agen
c) Basic Information Management.
d) Protokol management network.
2.6 Model-Model Referensi
2.6.1 TCP/IP
TCP/IP adalah sekumpulan Protokol yang terdapat di dalam jaringan computer
(network) yang digunakan untuk berkomunikasi atau bertukar data antar komputer.
TCP/IP merupakan Protokol standar pada jaringan internet yang menghubungkan
banyak komputer yang berbeda jenis mesin maupun sistem operasi agar dapat
berinteraksi satu sama lain. (Syafrizal, Melwin : 96)
Dalam arsitektur jaringan komputer, terdapat suatu lapisan-lapisan (layer) yang
memiliki tugas spesifik serta memiliki Protokol tersendiri. ISO (International
Standard Organization) telah mengeluarkan suatu standard untuk arsitektur jaringan
komputer yang dikenal dengan nama Open Sistem Interconnection (OSI). Standard
ini terdiri dari 7 lapisan Protocol yang menjalankan fungsi komunikasi antara 2
komputer. Dalam TCP/IP hanya terdapat 5 lapisan sebagai berikut :
Gambar 2.2 Arsitektur TCP/IP
19
Sumber: (Sofana, 2011)
Arsitektur OSI telah tercakup oleh arsitektur TCP/IP adapun rincian fungsi
masing-masing layer arsitektur TCP/IP adalah sebagai berikut :
a) Physical layer (lapisan fisik) merupakan lapisan terbawah yang mendefinisikan
besaran fisik seperti media komunikasi, tegangan, arus, dan sebagainya. Lapisan
ini dapat bervariasi bergantung pada media komunikasi pada jaringan yang
bersangkutan.
b) Network Access layer mempunyai fungsi yang mirip dengan Data Link layer
pada OSI. Lapisan ini mengatur penyaluran data data pada media fisik yang
digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi
dan koreksi kesalahan dari data yang ditransmisikan.
c) Internet layer mendefinisikan bagaimana hubungan dapat terjadi antara dua
pihak yang berada pada jaringan yang berbeda seperti Network Layer pada OSI.
Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus
diambil selama perjalanan, dan menjaga antrian di jaringan. Data pada layer ini
berbentuk paket.
d) Transport layer mendefinisikan cara-cara untuk melakukan pengiriman data
antara end to end host secara handal. Menyediakan penanganan kesalahan dan
flow control. Lapisan ini menjamin bahwa informasi yang diterima pada sisi
penerima adalah sama dengan informasi yang dikirimkan pada pengirim.
20
e) Aplication layer mendefinisikan aplikasi yang dijalankan di jaringan, karena itu
banyak terdapat Protocol-protokol pada lapisan ini. Sesuai dengan banyaknya
aplikasi TCP/IP yang dijalankan. Contohnya adalah SMTP untuk pengiriman
email, FTP untuk transfer file, HTTP untuk aplikasi web dan lain-lainnya.
2.6.2 Model OSI (Open System Interconnection)
Model referensi ini disebut OSI (Open System Interconnection) Reference
Model, karena model ini ditujukan untuk pengkoneksian open sistem, yang
dikembangkan oleh International Organization for Standardization (ISO) pada tahun
1984. OSI menggambarkan bagimana informasi dari satu software aplikasi pada
sebuah komputer berpindah melewati sebuah media jaringan ke suatu software
aplikasi dikomputer lain. OSI secara konseptual terbagi kedalam 7 lapisan dimana
masing-masing lapisan memiliki fungsi jaringan yang spesifik. Model ini diciptakan
berdasarkan sebuah proposal yang dibuat oleh the International Standards
Organization (ISO) sebagai langkah awal menuju standarisasi Protocol internasional
yang digunakan pada berbagai layer. (Syafrizal Melwin : 87)
21
Gambar 2.3 Arsitektur OSI
Sumber: (Sofana, 2011)OSI reference model memiliki tujuh lapis, yakni sebagai berikut:
a) Application Layer : Berfungsi sebagai antarmuka dengan aplikasi
dengan fungsionalitas jaringan, mengatur bagaimana aplikasi dapat
mengakses jaringan, dan kemudian membuat pesan-pesan kesalahan.
Protokol yang berada dalam lapisan ini adalah HTTP, FTP, SMTP,
dan NFS.
b) Presentation layer : Berfungsi untuk mentranslasikan data yang
hendak ditransmisikan oleh aplikasi ke dalam format yang dapat
ditransmisikan melalui jaringan. Protokol yang berada dalam level ini
adalah perangkat lunak redirektor (redirector software), seperti
layanan Workstation (dalam Windows NT) dan juga Network shell
(semacam Virtual Network Computing (VNC) atau Remote Desktop
Protokol (RDP)).
c) Session layer : Berfungsi untuk mendefinisikan bagaimana koneksi
dapat dibuat, dipelihara, atau dihancurkan. Selain itu, di level ini juga
dilakukan resolusi nama.
d) Transport layer : Berfungsi untuk memecah data ke dalam paket-
paket data serta memberikan nomor urut ke paket-paket tersebut
sehingga dapat disusun kembali pada sisi tujuan setelah diterima.
22
Selain itu, pada level ini juga membuat sebuah tanda bahwa paket
diterima dengan sukses (acknowledgement), dan mentransmisikan
ulang terhadap paket-paket yang hilang di tengah jalan.
e) Network layer : Berfungsi untuk mendefinisikan alamat-alamat IP,
membuat header untuk paket-paket, dan kemudian melakukan
routing melalui internetworking dengan menggunakan router dan
switch layer-3.
f) Data-link layer : Befungsi untuk menentukan bagaimana bit-bit data
dikelompokkan menjadi format yang disebut sebagai frame. Selain
itu, pada level ini terjadi koreksi kesalahan, flow control,
pengalamatan perangkat keras (seperti halnya Media Access Control
Address (MAC Address)), dan menentukan bagaimana perangkat-
perangkat jaringan seperti hub, bridge, repeater, dan switch layer 2
beroperasi.
g) Physical layer : Berfungsi untuk mendefinisikan media transmisi
jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan
(seperti halnya Ethernet atau Token Ring), topologi jaringan dan
pengabelan. Selain itu, level ini juga mendefinisikan bagaimana
Network Interface Card (NIC) dapat berinteraksi dengan media kabel
atau radio. (Sofana: 2011)
23
2.7 Perangkat keras jaringan
2.7.1 Kabel
Kebanyakan jaringan LAN dalam media komunikasi menggunakan kabel,
meskipun sudah tersedia media komunikasi lainnya tanpa kabel atau yang lebih
dikenal Wireless Local Area Network (WLAN). Hal ini dikarenakan biaya yang
dibutuhkan untuk membangun jaringan LAN dengan menggunakan media kabel jauh
lebih murah dan dapat lebih menghemat biaya dibandingkan dengan jaringan tanpa
kabel (wireless). Adapun beberapa tipe kabel yang banyak digunakan dan menjadi
standard dalam penggunaan untuk komunikasi data dalam jaringan komputer. Kabel-
kabel ini sebelumya harus diuji kelayakan sebelum dipasarkan dan digunakan pada
jaringan. Setiap jenis kabel mempunyai kemampuan dan spesifikasi yang berbeda,
jenis kabel yang dikenal secara umum dan sering dipakai untuk jaringan LAN antara
lain:
a) Kabel Koaksial (Coaxial Cable)
b) Twisted Pair Cable
Selain kabel koaksial , ethernet juga dapat menggunakan jenis kabel lain,
yakni UTP (Unshielded Twisted Pair) dan STP (Shielded Twisted Pair). Kabel UTP
atau STP yang biasa digunakan adalah kabel yang terdiri dari 4 pasang kabel yang
24
terpilin. Dari 8 buah kabel yang ada, hanya 4 buah saja yang digunakan untuk
mengirim dan menerima data. Perangkat-parangkat yang berkenaan dengan
penggunakan jenis kabel ini adalah konektor RJ-45 dan HUB. Ada dua cara untuk
memasang kabel UTP ke konektor RJ-45, cara ini harus disesuaikan dengan
tujuannya, yaitu straight digunakan untuk menghubungkan 2 komputer.
Adapun cirri-ciri kabel UTP adalah:
1) Kabel ini terbagi dua, yaitu Sheilded Twisted dan Unshielded Twisted
Pair(UTP)
2) Lebih banyak dikenal karena merupakan kabel telepon
3) Relatif murah
4) Jarak yang pendek
5) Mudah terpengaruh oleh gangguan
6) Kecepatan data yang dapat didukung terbatas, 10-16 Mbps
Ada beberapa jenis kabel yang digunakan dalam jaringan network, namun
yang paling banyak dipakai pada private network/ Local Area Network saat ini adalah
kabel UTP.
Gambar 2.4 Kabel UTP
25
Sumber: (Sofana, 2011)
Ada dua jenis pemasangan kabel UTP yang umum digunakan untuk jaringan
lokal, ditambah pada satu jenis pemasangan khusus untuk cisco router, yakni:
1) Pemasangan lurus (Straight Through Cable)
2) Pemasangan Menyilang (Cross Over Cable)
3) Pemasangan roll/melingkar (Roll Over Cable)
2.7.2 Modem
Modem adalah singkatan dari modulator-demodulator. Dalam melakukan
tugasnya, modem akan merubah data digital kedalam data analog yang bisa dipahami
oleh kita masing-masing ataupun sebaliknya. Proses penggambarannya adalah
sebagai berikut: modem pertama menerima data dari sumber dalam bentuk digital,
kemudian data tersebut diubah kedalam bentuk analog. Data yang diubah ke bentuk
analog kemudian ditransmisikan ke modem kedua. Lalu modem kedua
mengambilnya dari bentuk analog ke dalam bentuk digital. Jadi modem pertama yang
berada pada sumber pengirim berfungsi sebagai pengubah dari bentuk digital ke
bentuk analog, sedang modem kedua yang berada pada pihak penerima berfungsi
untuk mengembalikan dari bentuk analog ke dalam bentuk digital. Modem
merupakan salah satu komponen utama yang dapat membuat suatu jaringan computer
26
menjadi optimal. Dalam hal ini modem digunakan untuk menghubungkan jaringan ke
internet dan juga digunakan untuk sarana hubungan jarak jauh dengan computer
lainnya melalui media transmisi telepon. Modem ini memiliki kecepatan transfer data
yang berkisar antara 300 bit perdetik sampai dengan 56.000 bit per detik. Kecepatan
sebuah modem dapat menentukan waktu yang dibutuhkan untuk mentransfer data,
lebih tinggi kecepatan transmisinya maka akan lebih cepat pula waktu yang
diperlukan. Modem digunakan sebagai penghubung jaringan LAN dengan internet.
(Wahidin: 7)
2.7.2.1 Modem Huawei K3565
Huawei K3565 ini merupakan modem USB berukuran mini. Modem ini
support USB 2.0 dengan interfacenya 480 Mbps sehingga compatibel dengan semua
jenis komputer. Modem ini built-in dengan Micro SD card slot sehingga modem ini
juga dapat digunakan menyimpan data sama halnya dengan Flash Disk. Modem ini
juga unlock version sehingga dapat mengunakan seluruh GSM Indonesia. Modem
yang digunakan ini mempunyai spesifikasi plug & play, Micro-SD card slot Up to
8G, Support up to 7.2 Mbps HSUPA services, Support voice-enabled and SMS
services, Support data statistics through Huawei Mobile Partner,
Support Windows 2000/XP/Vista, Win 7 and Mac operating systems.
27
Gambar 2.5 Modem Huawei K3565
Sumber: (Kim, 2011)
2.8 Teknologi sms
Semenjak SMS (Short Message Service) lintas operator secara resmi
beroperasi di Indonesia, lalu lintas pengiriman pesan pendek melalui handphone di
negeri ini pun mencapai angka rata-rata empat juta pesan perhari. Ini tergolong luar
biasa. SMS adalah layanan untuk mengirim dan menerima pesan tertulis (teks) dari
maupun kepada MS (mobile station). Pesan teks yang dimaksud tersusun dari huruf,
angka atau karakter alfanumerik. Pesan teks dikemas dalam satu packet/frame yang
berkapasitas maksimum 160 byte yang dapat direpresentasikan dalam 160 karakter.
Pada proses pengiriman pesan diterima SMSC (Short Message Service Center),
dimana tujuan pesan harus sesuai dengan MS yang dituju. Untuk melakukan hal
tersebut, SMSC mengirimkan permintan SMS ke HLR (home location register) untuk
menemukan roaming (kemampuan device dalam menerima sinyal walaupun di
daerah luar) dari nomor yang dituju. (Supardi, Yuniar.2009)
28
Lalu HLR akan menerima respon kepada SMSC berupa:
a) Aktif atau tidak aktif
b) Posisi dari roaming
Jika status tidak aktif, maka SMSC akan menyimpan pesan tersebut dalam
jangka waktu tertentu. Ketika pesan berhasil terkirim maka HLR akan memberitahu
SMSC, dan SMSC akan memberitahu si pengirim pesan. Dibawah ini dapat adalah
gambar kedudukan SMS dalam jaringan.
Gambar 2.6 Kedudukan SMS dalam jaringan
Sumber: (Endinos, 2011)
Dari gambar diatas terlihat bahwa SMS gateway berfungsi sebagai penghubung
yang melakukan relay SMS antara ESME (External Short Message Entitiy) dan
SMSC dan sebaliknya. Komunikasi antara ESME dan SMS Gateway dapat
menggunakan protokol SMPP atau dengan HTTP, sementara ke SMSC menggunakan
29
SMPP. ESME merupakan entitas luar yang dapat berupa server aplikasi penyedia
layanan (Application Service Provider) yang dimiliki oleh Content Provider, aplikasi
dapat menerima pesan, memproses pesan dan mengirim respons atas pesan yang
masuk , serta perangkat lain seperti email gateway, WAP proxy server , Voice mail
server.
2.8.1 Kelebihan Sms
Berbagai keunggulan layanan SMS ini, sehinga dapat bertahan di era
teknologi GPRS Ssekarang ini, setidaknya ada beberapa alasan. Alasan yang pertama,
hal itu kembali pada platform SMS yang menjadi awal lahirnya GPRS. Di dalam
kerjanya, SMS muncul dalam format berbentuk teks sehingga dapat menghemat kanal
atau bandwith. Sebagai perbandingan, misalnya 160 karakter pesan yang kita
ketikkan dalam satu kali SMS, itu sama dengan satu detik dering nada panggilan
dalam mode percakapan biasa antar pengguna handphone. Selain menghemat
bandwith, SMS juga dapat tersimpan secara aman di dalam perangkat handphone.
Alasan yang kedua, yang membuat SMS dapat menyatu dalam fasilitas GPRS
adalah karena dari penggunaan keeping elektronik yang disebut sebagai kartu SIM
(Subscriber Identification Module) yang biasanya terletak di bagian belakang
perangkat handphone. Dengan kehadiran kartu SIM ini pula, maka kita akan bisa
mengirim SMS kapan saja dan kepada siapa saja. Bukan cuma itu saja, kehandalan
SMS sebagai sarana komunikasi juga telah teruji oleh keleluasaannya dalam
30
menerima pengembangan teknologi baru. Kemampuannya untuk muncul dalam
bentuk unified messaging misalnya, telah memungkinkan seorang pengguna
handphone menggunakan satu piranti perantara atau interface saja di dalam
mengakses kiriman data berupa suara, email dan juga faksimili melalui SMS.
Kemampuan dan daya tarik SMS juga semakin meningkat seiring dengan
pengembangan teknologi EMS (Enhanched Message Service) di dalam perangkat
handphone. EMS merupakan bentuk pengembangan lebih lanjut dari SMS
memungkinkan pemakai handphone untuk mengirimkan grafis atau gambar-gambar
animasi, nada dering atau ringtone samapai pada penggalan headline surat kabar.
Kelebihan lain dari SMS antara lain:
a) Harga per kiriman tetap/konstan. Apabila beban biaya telepon bervariasi maka
beban biaya kiriman SMS adalah tetap. Hal ini berpengaruh terutama pada
pelangan yang mengunakan kartu prabayar yang mempunyai kredit pulsa
terbatas pada telepon selularnya.
b) Praktis, pesan dapat dikirim ke penerima tanpa harus si penerima standbay di
tempat
c) Handal, ketika pesan SMS terkirim dan masuk gateway, dan gateway telah
berhasil mengirimkanya ke nomor tujuan, maka gateway akan mengirim
pasan acknowledgement ke pengirim bahwa pesan telah terkirim.
31
2.8.2 kekurangan SMS
Kekurangan SMS antara lain:
1) Tergantung pada traffic, jika traffic pada jaringan SMS padat maka
pesan yang dikirim menjadi lebih lambat sampai di tujuan dan jika
jaringan SMS sangat padat maka ada kemungkinan pesan yang dikirim
tidak bisa sampai ke penerima.
2) Tergantung sinyal, jika telepon selular pengirim atau penerima tidak
bisa mendapatkan sinyal, maka pesan SMS tidak dapat dikirim atau
diterima.
2.9 SMS Gateway
2.9.1 Pengenalan SMS gateway
Gateway dapat diartikan sebagai pintu gerbang. Namun pada dunia komputer
gateway berarti jembatan penghubung antara satu system dengan system lain yang
berbeda, sehinga dapat terjadi pertukaran data antar 2 sistem, dengan demikian SMS
gateway dapat diartikan sebagai suatu penghubung untuk lalu lintas data-data SMS,
baik yang dikirim maupun yang diterima.
SMS gateway ini ditempatkan diantara kedua SMSC (SMS Center) yang
berfungsi sebagai relay bagi keduanya yang kemudian akan menerjemahkan data dari
32
protokol satu ke protokol SMSC lainya yang di tuju. Namun seiring perkembangan
teknologi komputer, baik software maupun hardware dan perkembangan teknologi
komunikasi, SMS gateway tidak lagi dimaksudkan sebagai ilustrasi di atas.
Saat ini masyarakat lebih mengartikan SMS gateway sebagai suatu jembatan
komunikasi yang menghubungkan perangkat komunikasi (handphone) dengan
perangkat computer, yang menjadikan aktifitas SMS menjadi lebih mudah dan
menyenangkan, dan pengertian SMS gateway saat ini adalah sebuah program yang
mengkomunikasikan antar sistem operasi komputer, dengan perangkat komunikasi
yang terpasang untuk mengirim atau menerima SMS.
Pada proses di atas network admin akan menerima SMS request monitoring
jaringan dari client phone, aplikasi akan me-reply SMS dari client melalui modem
sebagai gatewaynya.
2.9.2 Perangkat komunikasi yang digunakan
Perangkat komunikasi yang dimaksudkan disini adalah perangkat yang dapat
digunakan untuk mengirim dan menerima SMS Adapun tipe handphone yang
digunakan, mengunakan teknologi GSM maupun CDMA Telkomsel meluncurkan
Nexian G922, handphone ini penulis gunakan sebagai perangkat komunikasi pada
aplikasi monitoring jaringan dengan spesifikasi sebagai berikut:
33
Tabel 2.1 Spesifikasi Nexian G92
2.10 Metode Pengembangan Extreme Programming
2.10.1 Extreme Programming Software Development Process
Permasalahan utama yang sering muncul dalam sebuah proyek pengembangan
perangkat lunak adalah perubahan requirement yang begitu cepat. Hal ini terjadi
sebagai akibat perubahan-perubahan yang muncul baik pada aspek bisnis maupun
teknologi yang berlangsung lebih cepat daripada proses pengembangan perangkat
lunak itu sendiri. Extreme Programming (XP) adalah sebuah pendekatan
pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan
fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan
mengkombinasikan berbagai ide sederhana.
Bayangkan diri anda seorang project leader pada sebuah proyek
pengembangan perangkat lunak. Setelah berbulan-bulan mengembangkan perangkat
lunak dan proyek hampir selesai tiba-tiba saja di perusahaan klien anda terjadi
Spesifikasi NX- G922 Spesifikasi NX- G922
Dual Gsm 900/1800, colour Lcd, Mp3 player,
fm radio, voice recorder, stereo speaker,
support external memory, waranty 12 month
Gprs, camera, support chatting,
facebook, audio Speaker,
bluetooth, handfree, language
indonesia-english
34
perubahan kebijakan yang berimplikasi pada perangkat lunak anda. Betapa
frustrasinya anda dan tim karena anda tidak bisa menolak perubahan-perubahan yang
diajukan klien tersebut karena kontrak anda mengakomodasi adanya perubahan-
perubahan tersebut. Hal tersebut seringkali terjadi disebabkan lamanya proses
pengembangan perangkat lunak. Proses pengembangan perangkat lunak yang
kompleks dapat menghabiskan waktu berbulan-bulan bahkan bertahun-tahun sebelum
perangkat lunak dapat digunakan, padahal seringkali dalam waktu tersebut terjadi
perubahan besar pada situasi bisnis maupun teknologi yang bisa membuat perangkat
lunak menjadi tidak relevan lagi.
Extreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah
pendekatan atau model pengembangan perangkat lunak yang mencoba
menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga
menjadi lebih adaptif dan fleksibel. Walaupun menggunakan kata programming, XP
bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan
perangkat lunak.
2.10.2 Nilai-nilai Dasar XP
Berikut adalah nilai-nilai mendasar yang menjadi roh dari XP pada setiap
tahapan proses pengembangan perangkat lunak:
35
1. Communication
XP mengfokuskan pada hubungan komunikasi yang baik antar anggota
tim. Para anggota tim harus membangun saling pengertian, mereka juga wajib
saling berbagi pengetahuan dan keterampilan dalam mengembangkan perangkat
lunak. Ego dari para programer yang biasanya cukup tinggi harus ditekan dan
mereka harus membuka diri untuk bekerjasama dengan programer lain dalam
menuliskan kode program.
2. Courage
Para anggota tim dan penanggungjawab pengembangan perangkat
lunak harus selalu memiliki keyakinan dan integritas dalam melakukan
tugasnya. Integritas ini harus selalu dijaga bahkan dalam kondisi adanya
tekanan dari situasi sekitar (misalnya oleh klien atau pemilik perusahaan).
Untuk dapat melakukan sesuatu dengan penuh integritas terlebih dahulu para
anggota tim harus terlebih dahulu memiliki rasa saling percaya. Rasa saling
percaya inilah yang coba dibangun dan ditanamkan oleh XP pada berbagai
aspeknya.
3. Simplicity
Lakukan semua dengan sederhana. Hal tersebut adalah salah satu nilai
dasar dari XP. Gunakan method yang pendek dan simpel, jangan terlalu rumit
36
dalam membuat desain, hilangkan fitur yang tidak ada gunanya, dan berbagai
proses penyederhanaan lain akan selalu menjadi nilai utama dari setiap aspek
XP.
4. Feedback
Berikan selalu feedback kepada sesama anggota tim maupun pihak-
pihak lain yang terlibat dalam pengembangan perangkat lunak. Utarakan selalu
pikiran anda dan diskusikan kesalahan-kesalahan yang muncul selama proses
pengembangan. Dengarkan selalu pendapat rekan yang lain, dengan adanya
feedback inilah seringkali kita menyadari bagian mana yang salah atau bisa
ditingkatkan lagi dari perangkat lunak yang dikembangkan.
5. Quality Work
Semua nilai di atas berujung pada sebuah kondisi di mana kita
melakukan pekerjaan dengan berkualitas. Dengan proses yang berkualitas maka
implikasinya akan muncul pula perangkat lunak yang berkualitas sebagai hasil
akhirnya.
2.10.3 Aspek Dasar XP
Aspek dasar XP terdiri dari berbagai teknik atau metode yang diterapkan Beck
dan Jeffries pada C3 Project. Teknik-teknik tersebut dapat diamati pada gambar 2.8.
37
Gambar 2.8 Xp Practices
Sumber: (Wells, 2011)
1. The Planning Game
Pendekatan XP dalam perencanaan sangat mirip dengan metode yang
diterapkan pada RAD (Rapid Application Development). Proses pendek dan
cepat, mengutamakan aspek teknik, memisahkan unsur bisnis dengan unsur
teknis dan pertemuan intensif antara klien dengan developer. Pada XP proses ini
menggunakan terminologi “game” karena Beck menyarankan untuk
menggunakan teknik score card dalam menentukan requirements. Semakin sulit
aspek teknis yang dibutuhkan semakin tinggi pula skor pada kartu rencana
tersebut.
38
2. Small Releases
Setiap release dilakukan dalam lingkup sekecil mungkin pada XP. Setiap
developer menyelesaikan sebuah unit atau bagian dari perangkat lunak maka
hasil tersebut harus segera dipresentasikan dan didiskusikan dengan klien. Jika
memungkinkan untuk menerapkan unit tersebut pada perusahaan, hal itu juga
dapat dilakukan sekaligus sebagai tes awal dari penerapan keseluruhan sistem.
Kendati demikian hal ini tidak selalu perlu dilakukan karena harus dihitung
terlebih dahulu sumberdaya yang dibutuhkan. Apakah lebih menguntungkan
langsung melakukan tes terhadap unit tersebut atau melakukan tes setelah unit
tersebut terintegrasi secara sempurna pada sistem.
3. Metaphor
Metaphor pada dasarnya sama dengan arsitektur perangkat lunak.
Keduanya menggambarkan visi yang luas terhadap tujuan dari pengembangan
perangkat lunak. Beck sendiri seperti para penandatangan Agile Manifesto
lainnya bercita-cita menyederhanakan proses pengembangan perangkat lunak
yang saat ini sudah dianggap terlalu rumit. Arsitektur yang saat ini banyak berisi
diagram dan kode semacam UML dianggap terlalu rumit untuk dimengerti,
terutama oleh klien. Metaphor, walaupun mirip dengan arsitektur lebih bersifat
naratif dan deskriptif. Dengan demikian diharapkan komunikasi antara klien
dengan developer akan berlangsung lebih baik dan lancar dengan penggunaan
metaphor.
39
4. Simple Design
Sebagai salah seorang penandatangan Agile Manifesto, Beck adalah
seorang yang tidak menyukai desain yang rumit dalam sebuah pengembangan
perangkat lunak. Tidak heran jika dia memasukkan Simple Design sebagai salah
satu unsur XP. Pada XP desain dibuat dalam lingkup kecil dan sederhana. Tidak
perlu melakukan antisipasi terhadap berbagai perubahan di kemudian hari.
Dengan desain yang simpel apabila terjadi perubahan maka membuat desain baru
untuk mengatasi perubahan tersebut dapat dengan mudah dilakukan dan resiko
kegagalan desain dapat diperkecil.
5. Refactoring
Refactoring adalah salah satu aspek paling khas dari XP. Refactoring
sendiri sangat sesuai untuk menjadi bagian XP karena Refactoring mengusung
konsep penyederhanaan dari proses desain maupun struktur baris kode program.
Dengan Refactoring tim pengembang dapat melakukan berbagai usaha untuk
meningkatkan kualitas program tanpa kembali mengulang-ulang proses desain.
Fowler adalah salah satu kolega dekat dari Kent Beck karena itu tidak
mengherankan bahwa cara berpikir mereka terhadap proses pengembangan
perangkat lunak sangat mirip satu dengan lainnya.
40
6. Testing
XP menganut paradigma berbeda dalam hal tes dengan model
pengembangan perangkat lunak lainnya. Jika pada pengembangan perangkat
lunak lainnya tes baru dikembangkan setelah perangkat lunak selesai menjalani
proses coding maka pada XP tim pengembang harus membuat terlebih dahulu tes
yang hendak dijalani oleh perangkat lunak. Berbagai model tes yang
mengantisipasi penerapan perangkat lunak pada sistem dikembangkan terlebih
dahulu. Saat proses coding selesai dilakukan maka perangkat lunak diuji dengan
model tes yang telah dibuat tersebut. Pengetesan akan jauh lebih baik apabila
dilakukan pada setiap unit perangkat lunak dalam lingkup sekecil mungkin
daripada menunggu sampai seluruh perangkat lunak selesai dibuat. Dengan
memahami tahap ini kita dapat melihat bahwa siklus pada XP adalah requirement
analysis test code design. Sekilas terlihat hal ini tidak mungkin
dilakukan tetapi pada kenyataannya memang gambaran inilah yang paling dapat
menjelaskan tentang XP.
7. Pair Programming
Pair programming adalah melakukan proses menulis program dengan
berpasangan. Dua orang programer saling bekerjasama di komputer yang sama
untuk menyelesaikan sebuah unit. Dengan melakukan ini maka keduanya selalu
dapat berdiskusi dan saling melakukan koreksi apabila ada kesalahan dalam
penulisan program. Aspek ini mungkin akan sulit dijalankan oleh para programer
41
yang memiliki ego tinggi dan sering tidak nyaman untuk berbagi komputer
bersama rekannnya.
8. Collective Ownership
Tidak ada satupun baris kode program yang hanya dipahami oleh satu
orang programer. XP menuntut para programer untuk berbagi pengetahuan untuk
tiap baris program bahkan beserta hak untuk mengubahnya. Dengan pemahaman
yang sama terhadap keseluruhan program, ketergantungan pada programer
tertentu ataupun berbagai hambatan akibat perbedaan gaya menulis program
dapat diperkecil. Pada level yang lebih tinggi bahkan dimungkinkan para
programer dapat bertukar unit yang dibangunnya.
9. Coding Standards
Pair programming dan collective ownership hanya akan dapat berjalan
dengan baik apabila para programer memiliki pemahaman yang sama terhadap
penulisan kode program. Dengan adanya coding standards yang telah disepakati
terlebih dahulu maka pemahaman terhadap program akan menjadi mudah untuk
semua programer dalam tim. Hal ini dapat diterapkan sebagai contoh pada
penamaan variabel dan penggunaan tipe data yang sama untuk tiap elemen semua
record atau array pada program.
42
10. Continous Integration
Melakukan build setiap hari kerja menjadi sebuah model yang disukai
oleh berbagai tim pengembang perangkat lunak. Hal ini terutama didorong oleh
keberhasilan penerapan sistem ini oleh Microsoft dan telah sering dipublikasikan.
Dengan melakukan build sesering mungkin berbagai kesalahan pada program
dapat dideteksi dan diperbaiki secepat mungkin. Apabila banyak tim
pengembang perangkat lunak meyakini bahwa build sekali sehari adalah
minimum maka pada XP hal tersebut adalah maksimum. Pada XP tim disarankan
untuk melakukan build sesering mungkin misalnya setiap 4 jam atau bahkan
lebih cepat lagi.
11. 40-hours Week
Beck berpendapat bekerja 8 jam sehari dan 5 hari seminggu adalah
maksimal untuk tiap programer. Lebih dari itu programer akan cenderung
membuat berbagai kesalahan pada baris-baris kode programnya karena
kelelahan.
12. On-Site Customer
Sebuah pendekatan klasik, di mana XP menganjurkan bahwa ada anggota
dari klien yang terlibat pada proses pengembangan perangkat lunak, yang lebih
penting lagi ia harus ada di tempat pemrogaman dan turut serta dalam proses
build dan test yang dilakukan. Apabila ada kesalahan dalam pengembangan
43
diharapkan klien dapat segera memberikan masukan untuk koreksinya.
(Pressman, 2005)
2.11 AT Command
At-command adalah perintah yang dapat diberikan kepada handphone atau
GSM/CDMA modem untuk melakukan sesuatu hal, termasuk untuk mengirim dan
menerima SMS. Dengan memprogram pemberian perintah ini di dalam
komputer/mikrokontroler maka perangkat kita dapat melakukan pengirima atau
penerimaan SMS secara otomatis untuk mencapai tujuan tertentu. Komputer ataupun
mikrokontroler dapat memberikan perintah At-command melalui hubungan kabel data
serial ataupun bluetooth. At-command ini sebenarnya adalah pengembangan dari
perintah yang dapat diberikan kepada modem Hayes yang sudah ada sejak dulu.
Dinamakan At-command karena semua perintah diawali dengan karakter A dan T.
Antar perangkat handphone dan GSM/CDMA modem bisa memiliki At-command
yang berbeda-beda, namun biasanya mirip antara satu perangkat dengan perangkat
lain. Untuk dapat mengetahui secara persis maka kita harus mendapatkan
dokumentasi teknis dari produsen pembuat handphone atau GSM/CDMA modem
tersebut. Berikut beberapa contoh perintah At-command untuk handphone:
a) Perintah Kirim SMS
AT+CMGS=x
44
Dimana x adalah jumlah pasang karakter data yang ingin dikirimkan.
Handphone atau GSM/CDMA modem kemudian akan merespon untuk
mempersilakan memasukkan data yang harus diakhiri dengan karakter CTR-Z.
b) Perintah Terima SMS
AT+CMGR=x
Dimana x adalah nomor index SMS yang ingin dibaca dalam memori tempat
penyimpanan (SIM card atau handphone/modem). Handphone atau GSM/CDMA
modem akan merespon dan diterjemahkan oleh komputer/mikrokontroler sehingga
didapatkan informasi yang ingin diketahui.
2.12 Perlengkapan Pemrograman Penunjang
2.12.1 NetBeans IDE 6.7.1
IDE NetBeans adalah suatu modul, standar dasar IDE (Integrated
Development Environment), ditulis dalam bahasa pemrograman java. NetBeans
memfokuskan pada open source IDE, artinya bersifat terbuka untuk pengembangan
dengan bahasa pemrograman dan platform aplikasi java, yang juga dapat
dipergunakan sebagai satu kerangka umum untuk membangun berbagai macam
aplikasi sejenis.
NetBeans IDE 6.7.1 mendukung teknologi dan telah diuji dengan server
aplikasi. NetBeans IDE dapat berjalan pada sistem operasi OpenSolaris 2008.11, java
45
desktop sistem 2, Microsoft Windows 2000 Professional SP4, Mac OS X 10.4.1 1
Intel/Power PC, bervariasi dengan Linux, seperti Red Hat Enterprise Linux yang
telah mendukung Java Virtual Machine (VM) dan telah teruji pada daftar dibawah ini
dengan catatan resolusi minimum layar adalah 1024x768 piksel. (Walles:2011)
2.12.2 MySQL
MySQL merupakan database open source yang popular saai ini dan
digunakan pada banyak website di internet sebagai bank data. MySQL menggunakan
SQL dan bersifat free. Selain itu MySQL dapat berjalan di berbagai platform, antara
lain Linux, Windows dan lain sebagainya. (Basofi, Arif:2010)
Tahap pengolahan database menggunakan normalisasi
1) Normalisasi
Normalisasi database biasanya jarang dilakukan dalam database skala kecil,
dan dianggap tidak diperlukan pada penggunaan personal. Namun seiring dengan
berkembangnya informasi yang dikandung dalam sebuah database, proses normalisasi
akan sangat membantu proses permintaan data. (Basofi, Arif:2010)
1. Bentuk Normal Pertama (1NF)
Bentuk normal pertama apabila memiliki satu dan hanya satu nilai.
46
2. Bentuk Normal Kedua (2NF)
Bentuk normal kedua apabila telah memenuhi kriteria normal pertama dan
memiliki ketergantuan pada primary key.
3. Bentuk Normal Ketiga (3NF)
Normal ketiga terjadi jika memenuhi normal kedua dan memiliki ketergantuan
terhadap atribut bukan kunci serta memiliki ketergantungan primary key.
2.13 Metode Pengumpulan Data
2.13.1 Metode Observasi
Observasi adalah cara pengambilan data dengan menggunakan mata tanpa ada
pertolongan alat standar lain untuk keperlua tersebut (Moh.Nazir,2005:175)
2.13.2 Metode Studi Pustaka
Pengumpulan data yang bersumber dari berbagai karya ilmiah baik dari media
cetak maupun media elektronik yang berkaitan dengan Network Monitoring berbasis
SMS.
2.13.3 Wawancara
Wawancara adalah proses memperoleh data untuk tujuan penelitian dengan
cara tanya jawab, sambil bertatap muka kepada penanya atau pewawancara dengan si
47
penjawab atau responden dengan alat yang dinamakan interview guide (panduan
wawancara) (Moh.Nazir,2005:195)
2.13.4 Studi Literatur
Adapun Studi literatur yang akan penulis teliti, sebelumnya terdapat korelasi
satu sama lainnya yang berkesinambungan dengan judul Monitoring Jaringan,
diantaranya adalah Network Monitoring Berbasis SMS pada Universitas Bina
Nusantara (Kinadi, Andre 2010) dan Sistem Monitoring Client Jaringan Komputer
Menggunakan Short Message Service (SMS) (Mardiyani, Endah 2009) dan studi pada
Open Source Nagios. Dalam literatur ini diidentifikasi perbandingan dari beberapa
system yaitu:
Tabel 2.1 Studi literatur
No Judul skripsi/Paper
Kelebihan Kekurangan
1. Sistem
Monitoring
Client Jaringan
Komputer
Menggunakan
Short Message
Service (SMS)
Monitoring Service
seperti POP3, SMTP
dan lain-lain,
Monitoring MySQL
Metode perancangan NDLC
(Network Development Life
Cycle), berbasis web jadi
menuntut client server selalu
online, dari segi fiture hanya
difokuskan pada monitoring
servuce jaringan berupa ping,
48
(Studi kasus:
IPTEKNET
BPPT).
(Mardiyani,
Endah:2009)
pengujian email notification,
pengujian SMS server tool,
hanya menggunakan Hanphone
GSM
2. Network
Monitoring
Berbasis SMS
pada PT.
Mandala
Airlines.(Kinadi,
Andre: 20101)
Berbasis java dengan
input 2 nomor,
mempunyai 8 Fiture
yaitu, ip, host look up,
netstat dan lain-lain
Tidak menggunakan metode
pengembangan sistem, hanya
menginput 2 nomer yang
berbasis JAVA, tidak
menggunakan database, ari Segi
Fiture, fokus hanya 8 fiture.
3 Monitoring
Open Source
dengan Nagios
(Tool Nagios)
Open Source, status
jaringan dengan warna,
fokus pada perangkat
jaringan
Berbasis web sehingga
menuntut untuk selalu dalam
kondisi online, hanya
monitoring perangkat jaringan
dengan melihat host &service
yang terkonfigurasi
49
BAB III
METODOLOGI PENELITIAN
3.1. Tempat dan Waktu Penelitian
Penelitian ini dilakukan di Layanan Kesehatan Cuma-Cuma LKC
(Khususnya Bidang IT). Waktu penelitian ini dimulai pada bulan Februari 2011
sampai dengan Maret 2011.
3.2. Metode Pengumpulan Data
3.2.1 Metode Observasi
Mengumpulkan informasi mengenai kebutuhan sistem (system
requirements) penulis melakukan pengumpulan data dengan cara observasi di
tempat penelitian, yang dalam hal ini adalah pengambilan data dan informasi serta
pengamatan langsung terhadap fasilitas dan perangkat jaringan di Layanan
Kesehatan Cuma-Cuma pada bagian jaringan komputer.
1.2.2 Studi Pustaka
Pengumpulan data yang bersumber dari 11 buku dan 4 sumber dari internet
yang berkaitan dengan Aplikasi Network Monitoring berbasis SMS.
1.2.3 Wawancara
Wawancara dengan melakukan konsultasi tanya jawab langsung dengan
sekretaris dan staf bagian Layanan Kesehatan Cuma-Cuma (LKC) untuk
mendapatkan penjelasan mengenai sistem informasi yang sedang berjalan. Proses
50
tanya jawab secara lisan dilakukan dengan harapan dapat mengungkapkan data
yang ingin digali mengenai sistem yang dibutuhkan user. Wawancaranya
dilakukan sebelum dan sesudah pembuatan aplikasi, dari hasil wawancara
diperoleh sistem yang sedang berjalan dan data-data dari hasil wawancara
digunakan untuk mengidentifikasi kebutuhan- kebutuhan pengguna akan aplikasi
monitoring jaringan . Hasil wawancara disajikan pada bagian Lampiran B.
1.2.4 Studi Literatur
Studi literatur ini dilakukan dengan mencari dan membandingkan sistem
sejenis. Dari beberapa literatur maka penulis membuat aplikasi monitoring
jaringan ini dengan beberapa kelebihan dan kekurangan yaitu:
a. Kelebihan aplikasi penulis yaitu:
1. SMS tidak asal dengan kata lain tidak random, berdasarkan dengan
anggota yang terdaftar
2. Menggunakan Program JAVA, artinya JAVA support terhadap OOP
3. Konfigurasi dinamis terhadap hardware, misalnya pembuatan aplikasi
dengan menggunakan VB hanya bisa menggunakan HP jenis yang
lama.
4. Berbasis SMS, dengan menggunkan SMS semua orang bisa langsung
bisa membaca tapi jika berbasis WEB untuk terkoneksi terhadap
internet terlebih dahulu.
5. Monitoring jaringan ini menggunakan modem sebagai gatewaynya.
51
b. Kekurangan: Aplikasi sistem network monitoring ini hanya bisa dijalankan
pada sistem operasi Windows.
3.3. Metode Pengembangan Sistem
Tahapan-tahapan yang dilakukan oleh penulis dalam melakukan
penelitian pengembangan aplikasi ini dengan menggunakan metode XP
(Extreme Programming) yaitu:
1.3.1 Planning
Tahapan ini adalah tahapan perencanaan pada sistem yang akan
dikembangkan. Pada tahapan ini secara detail dapat dilihat pada sub bab 4.2.1.
a. Pengumpulan permintaan user (user stories), sehingga output yang
dihasilkan dari sistem sesuai dengan keinginan user.
b. Pengamatan terhadap sistem yang sedang berjalan di Layanan
Kesehatan Cuma-Cuma Jakarta.
c. Melakukan identifikasi masalah yang terjadi pada sistem yang sedang
berjalan.
d. Usulan alur bisnis dan aplikasi serta wilayah persoalan data yang akan
didukung oleh sistem yang akan dikembangkan serta ditentukan pula
jangkauan atau batasan sistem.
1.3.2 Design
Setelah mengetahui definisi aplikasi yang akan dikembangkan maka
tahapan berikutnya adalah melakukan perancangan (design). Perancangan di sini
52
dimaksudkan untuk membuat pemodelan terhadap aplikasi baru yang dapat
mewakili sistem yang berjalan saat ini di Layanan Kesehatan Cuma-Cuma (LKC).
Desain yang dimaksud meliputi perancangan aplikasi yaitu activity diagram, state
transsition diagram dan 3 perancangan database yaitu database SMS masuk, SMS
keluar dan buku telepon untuk tampilan antarmuka (interface) aplikasi sendiri,
penulis melakukan perancangan Graphical User Interface (GUI) dari aplikasi ini
menggunakan java tool NetBeans IDE 6.7.1.
a. Perancangan Aplikasi
Pada perancangan aplikasi ini, penulis menggunakan alat bantu (tools)
yaitu JCreator Pro, NetBeans IDE 6.7.1, Mysql, JDK 6.u18, JRE 6.u18. Selain itu,
aplikasi juga didesain menggunakan Unified Modelling Language (UML) yang
mengambil model Activity Diagram dan STD (State Transmission Diagram). Hal
ini dilakukan untuk memudahkan memberikan sketsa awal aplikasi, selain itu
penggunaan UML lebih cocok digunakan dalam perancangan aplikasi yang
bersifat object oriented. Perancangan aplikasi yang penulis lakukan dengan
menggunakan tools UML ini meliputi:
1. Spesifikasi proses yang diusulkan berupa activity diagram sistem
monitoring usulan dan activity diagram SMS function aktif dapat
dilihat secara lengkap pada sub bab 4.3.1.
2. STD proses monitoring yang berupa perintah jaringan yang terdiri dari
11 STD dapat dilihat secara lengkap pada sub bab 4.3.1
b. Perancangan Basis Data
53
Data - data yang digunakan dalam suatu aplikasi akan disimpan ke dalam
database. Namun, dalam implementasinya, pada aplikasi yang dibuat dengan
menggunakan akses ke database secara langsung, melainkan melalui tahapan
normalisasi pada database. Implementasi perancangan database dapat dilihat di
sub bab 4.3.2.
c. Perancangan Tampilan
Pada tahap ini, penulis melakukan perancangan terhadap user interface
dari aplikasi ini. Perancangan yang dilakukan adalah perancangan user interface
yang ada di dalam sistem dapat dilihat pada sub bab 4.3.3..
1.3.3 Coding
Pada tahapan coding, dilakukan unit testing dan implementasi coding,
sebelum dilakukan developing aplikasi berdasarkan tahapan - tahapan
sebelumnya, unit test untuk setiap user stories disiapkan penulis untuk melakukan
deployment terhadap aplikasi yang telah dikembangkan ke target server tertentu.
Setelah unit test disiapkan, kemudian baru dilakukan pembangunan aplikasi
berdasarkan design yang sebelumnya telah dilakukan. Pada implementasi aplikasi,
penulis melakukan pengembangan aplikasi dengan mengacu pada design aplikasi
yang telah dilakukan. Pada coding karena sistem dikerjakan secara tim maka
diterapkan konsep pair programming yaitu konsep dimana programmer duduk
bersama untuk saling membantu.
54
1.3.4 Testing
Pada tahapan testing, testing dilakukan pada unit test yang sebelumnya
telah disiapkan, yaitu dengan menguji source code yang digunakan. Pengujian
meliputi penginputan database dan testing monitoring ke server, yang dalam hal
ini apache, serta pengujian fungsional aplikasi yang meliputi tampilan data,
pemasukan, perubahan, serta penghapusan data. Untuk pengujian ini, penulis
menerapkan 2 (dua) macam pengujian yaitu pengujian mandiri dan pengujian oleh
user dengan metode blackbox. Pada pengujian tahap awal berupa pengujian
mandiri oleh programmer yaitu penulis dan Bpk. Adi dan tahap kedua berupa
pengujian user oleh staf IT LKC Bpk. Suratman dan hasilnya dapat dilihat pada
sub bab 4.5.2.
3.4. Kerangka Berpikir
Dalam melakukan penelitian ini, penulis melakukan tahapan-tahapan
kegiatan dengan mengikuti rencana kegiatan yang tertuang dalam model
konseptual penelitian ini.
55
Gambar 3.1. Kerangka Berpikir
56
BAB IV
IMPLEMENTASI DAN EVALUASI
4.1 Tentang Layanan Kesehatan Cuma-Cuma
4.1.1 Sejarah LKC
Layanan Kesehatan Cuma-Cuma (LKC) adalah lembaga nirlaba yang
memberikan pelayanan kesehatan gratis kepada masyarakat tidak mampu yang
didirikan pada tanggal 6 November 2001 dan diresmikan oleh Wakil Presiden RI
Bapak DR. Hamzah Haz. Pelayanan diberikan melalui berbagai program seperti
Gerai Sehat (klinik gratis), Aksi Layan Sehat (layanan kesehatan mobile di daerah
kumuh), dan SIGAP Bencana (layanan kesehatan di daerah bencana dan konflik).
Agar tepat sasaran, seluruh pelayanan dijalankan menggunakan sistem
kepesertaan berbasis keluarga.
Sejak enam tahun berkiprah, LKC sudah meng-cover sekitar 53.850 jiwa
sebagai peserta dari tiga lokasi Gerai Sehat dan puluhan daerah binaan yang
dilayani melalui program Aksi Layan Sehat. Selain itu, LKC juga membantu
kesehatan ribuan jiwa korban bencana alam dan konflik, seperti bencana banjir
nasional 2002 dan 2007, konflik Ambon, bencana tanah longsor Bandung dan
bencana tsunami Aceh dan gempa Nias. Serta tsunami Yogya dan Pangandaran.
LKC merupakan alternatif solusi atas permasalahan kaum miskin.
57
Dasar pemikirannya adalah memecahkan masalah tanpa menimbulkan
masalah baru. LKC telah berevolusi menjadi sebuah model yang melibatkan
partisipasi aktif seluruh masyarakat. Gambarannya, kaum miskin dapat berobat
gratis sementara pembiayaan kesehatannya didanai oleh seluruh elemen
masyarakat, mulai dari individu sampai perusahaan. Selain dana, masyarakat juga
membantu dari berbagai sisi, seperti tenaga dengan menjadi relawan LKC.
Dengan model ini, besar biaya kesehatan per keluarga miskin yang ditanggung
pun menjadi murah.
Keberadaan LKC sebagai mitra masyarakat tidak mampu di daerah
Jadebotabek dapat menjadi pilihan pelaksana kegiatan Corporate Social
Responsibility. Bidang garapan yang jelas dan fokus, jumlah cakupan masyarakat
tidak mampu yang besar dan luas, dan program-program unggulan yang strategis,
efektif, efisien dan terukur, serta pengelolaan lembaga yang akuntabel dan
profesional merupakan faktor pendukung LKC. Selain itu, afiliasi LKC pada
Yayasan Dompet Dhuafa yang telah berkiprah selama 14 tahun di kancah lembaga
nirlaba di Indonesia menjadi kekuatan tersendiri yang unik. Dan puluhan
perusahaan lokal maupun multinasional besar yang telah menaruh kepercayaan
pada LKC untuk bekerja sama menjadi sebuah bukti nyata.
4.1.2 Visi dan Misi LKC
Sebagai suatu lembaga kesehatan, Layanan Kesehatan Cuma-Cuma (LKC)
ini memiliki visi dan misi untuk menjalankan tugasnya. Berikut visi dan misi dari
LKC yaitu:
58
1. Terwujudnya Keluarga Sehat Mandiri
2. Mengoptimalkan upaya promosi kesehatan bagi keluarga dhuafa
3. Menjalankan pelayanan kesehatan keluarga dhuafa yang ramah,
amanah dan professional
4. Membina model pelayanan kesehatan masyarakat dhuafa yang
terpadu
5. Mengembangkan sistem pelayanan kesehatan yang berbasis ilmu
pengetahuan dan teknologi (IPTEK)
6. Mengembangkan kualitas Sumber Daya Manusia (SDM)
7. Mengembangkan kemitraan dengan sesama jejaring Dompet
Dhuafa (DD) dan di luar jejaring DD, baik Nasional maupun
Internasional
8. Mengembangkan metode pemberdayaan yang berbasis komunitas
kesehatan dan menganut pendekatan promotif-kuratif secara
holistic
4.1.3 Wewenang
Dalam menyelenggarakan fungsinya, relawan (karena yang terlibat di
LKC ini mayoritas relawan) mempunyai kewenangan:
1. Relawan berhak mensosialisasian keberadaan LKC kepada pihak
luar
2. Relawan berwenang untuk mengikuti semua kegiatan yang
diadakan LKC
59
3. Relawan berwenang untuk menerima informasi perkembangan
LKC secara global
4.1.4 Strategi
Layanan kesehatan ini menjunjung tingi keberpihakan pada rakyat melalui
kerjasama tim yang cepat dan integritas yang tinggi, transparan untuk itu
diperlukan strategi dalam menjalankan tuganya, berikut ini akan diurankan
beberapa startegi LKC yaitu:
1. Optimalisasi Promosi kesehatan keluarga
2. Pemberdayaan kesehatan keluarga mandiri
3. Pelayanan kesehatan bermutu dan terpadu
4. Pembinaan Kampung sehat
5. Pembentukan Masyarakat siaga bencana
6. Bermitra dengan Pemerintah dan Swasta, NGO nasional dan
internasional dlm program kesehatan masyarakat
7. Memiliki budaya organisasi unggul
8. Membentuk karyawan yg berkarakter social enterpreneur
4.1.5 Staff IT LKC
Staff IT LKC adalah orang-orang yang terlibat dalam pemantauan
komputer termasuk pemantauan jaringan.
60
Gambar 4.1 Struktur Organisasi bagian IT di
LKC
4.1.6 Tugas dan wewenang
Berikut tugas dan wewenang dari masing-masing jabatan yang ada di
bagian IT pada LKC:
1. Head of it
a) Mengarahkan dan mengembangkan strategi dan rencana IT
lembaga
b) Mengkoordinasikan dan mengontrol implementasi layanan IT baik
secara korporat maupun operasional
c) Memastikan tersedianya dukungan teknologi informasi yang
handal, efektif dan efisien bagi kelancaran operasional perusahaan
dalam mencapai sasaran sesuai dengan strategi perusahaan.
2. IT network manager
61
a) Memantau kegiatan IT yang dilakukan setiap hari
b) Mengatur fungsi-fungsi pelayanan IT dan kinerjanya.
c) Me-maintain system pada server dan mengatasi troubleshooting
yang terjadi
3. Callcenter supervisor
a) Memantau jalannya operasional call center
b) Memastikan proses kerja berjalan sesuai dengan management mutu
yang diterapkan
c) Membuat laporan terhadap kinerja call center
4. Staff of online business
a) Melakukan pengembangan terhadap website LKC
5. Staff of it support
a) Melakukan pengecekan terhadap perangkat computer yang rusak
b) Melakukan perbaikan apabila ada laporan tentang computer yang
rusak
c) Melakukan back-up data lembaga
6. Staff of call center
62
a) Melakukan komunikasi dengan customer
b) Menjawab pertanyaan-pertanyaan mengenai pelayanan lembaga
yang masuk melalui telepon
c) Memberikan informasi kepada customer
4.2 Perencanaan (Planning)
Pada tahapan planning dilakukan perencanaan untuk mulai membangun
sistem. Berikut adalah uraiannya :
1. Sistem informasi riset dikerjakan secara tim yang beranggotakan
tiga orang di LKC.
2. Aplikasi yang dibuat menggunakan bahasa pemrograman Java dan
basisdata XAMPP.
3. Pembuatan aplikasi dibutuhkan waktu kurang lebih 3 bulan.
4.2.1 Pengumpulan permintaan user (user stories)
Pada tahap ini penulis melakukan pengumpulan cerita user/user stories
dengan mewawancarai pengguna utama dari sistem yang ada, yaitu Bapak
Suratman sebagai sebagai staf IT LKC.
1. Penelitian
Tabel 4.1 Index card untuk pengusulan riset
63
Project : Pengajuan Riset
Tanggal wawancara : 20 Januari 2011
Interviewer : Thoyyibah. T
Interviewee : Staf IT, Bapak Suratman.
Summary : “Pada sistem diharapkan peneliti dapat mengajukan
proposal riset dan dapat mengupload file-file yang
mendukung penelitian serta mengajukan usulan
monitoring jaringan .”
4.2.2 Pengamatan Terhadap Sistem Yang Sedang Bejalan
a. Aplikasi yang sedang berjalan
Layanan Kesehatan Cuma-Cuma menggunakan OP manager dalam
memantau jaringan komputer yanga ada. OP Manager ini merupakan aplikasi
berbasis web (Web-based Monitor) yang digunakan untuk melakukan pemantauan
terhadap jaringan. OP manager ini diakses melalui browser dengan pengetikan url
tertentu yang terhubung ke OP Manager, selanjutnya network administrator akan
diminta untuk memasukkan username dan password untuk dapat masuk ke
64
halaman administrator. Setelah itu, network administrator dapat melihat status
koneksi dari server ke jaringan komputer.
b. Server monitoring
Pada umumnya monitoring merupakan kumpulan dari kegiatan-kegiatan
dalam melakukan proses pemantauan terhadap satu atau beberapa proses yang
telah direncanakan, dimana diperlukan suatu tindak lanjut jika ternyata terjadi
kesalahan pada satu atau beberapa bagian dari proses tersebut. Pada jaringan
komputer, monitoring biasanya dilakuakn untuk mengetahui konektivitas
jaringan.
Gambar 4.2 Proses network monitoring
Network adminisrator yang bekerja pada LKC mengandalkan OP Manager
untuk memantau jaringan LKC. OP Manager yang digunakan ini akan melakukan
proses ping ke server yang ada setiap 1 jam selama 24 jam. Tujuan dari
dilakukannya proses ping secara terus menerus adalah untuk mengetahui status
konektivitas jaringan dan mengetahui apakah ada gangguan yang terjadi. Bila
terjadi gangguan, OP Manager akan mengirimkan notifikasi berupa e-mail ke
alamat e-mail network administrator.
Notifikasi email akan muncul seperti biasa, saat network administrator
mengetahui adanya email notifikasi yang dikirimkan OP Manager masuk ke
65
account yang dimilikinya, maka network administrator akan segera memeriksa isi
email tersebut. Melalui email yang dikirimkan, network administrator akan
menentukan tindakan yang harus dilakukan berikutnya. Bila e-mail yang
dikirimkan oleh OP manager berisi peringatan bahwa server terputus atau (down)
maka network administrator akan segera mengatasi ganguan tersebut.
c. Networking Device
Networking device yang digunakan pada jaringan komputer di LKC adalah:
a. 6 Switch
b. 3 Access Point
c. Kabel UTP
Spesifikasi hardware yang digunakan oleh server untuk terhubung dengan
OP manager adalah sebagai berikut:
a) Server Name :Windows Server 2003
b) Processor : Intel Pentium 4, 1,7 GHz
c) Hard disk : 40 Gb, ATA
d) RAM : 256 MB
e) Sistem Operasi : Microsoft Windows XP Professional
4.2.3 Identifikasi Masalah
66
Setelah mengetahui sistem yag sedang berjalan pada LKC dengan
melakukan wawancara dengan pihak-pihak yang terkait, maka didapat beberapa
point mengenai masalah yang dihadapi oleh LKC adalah sebagai berikut:
1. Notifikasi gangguan hanya dapat dilakuakan melalui e-mail,
pemberitahuan terjadinya gangguan pada jaringan haya dilakukan
melalui e-mail yang dikirimkan ke network administrator. Hal
seperti ini menyebabkan penanganan dari network administrator
menjadi terlambat karena tidak setiap saat network administrator
berada di depan komputer untuk memeriksa e-mail. Hal lainnya
adalah saat koneksi ke jaringan internet terputus, maka notifikasi
gangguan tidak akan terima oleh network administrator.
2. Penggunaan OP manager yang harus melalui website, karena OP
manager merupakan aplikasi network monitoring berbasis web
(web-based), network administrator harus membuaka halaman web
tersebut untuk bisa memantau jaringan yang ada. Hal seperti ini
menambah pekerjaan network administrator dan juga menyita
waktu.
4.2.4 Usulan Alur Bisnis
Ada banyak aplikasin network monitoring yang bisa digunakan untuk
memantau jaringan komputer dan memiliki fitur-fitur yang dapat memberikan
informasi mengenai keadaan suatu jaringan dengan cepat dan akurat, namun
hanya sedikit aplikasi network monitoring yang dapat memberikan informasi
67
mengenai kondisi sustu jaringan yang dapat diakses dimana saja. Hal seperti ini
memungkinkan network administrator untuk tidak terus berada di depan
perangkat komputer secara terus menerus untuk memantau jaringan.
Setelah menganalisis sisitem yang berjalan di LKC serta mengetahui
permasalahan yang terjadi, maka pemecahan masalah yang baik untuk dilakukan
pada saat ini adalah dengan membuat suatu sistem yang dapat memantau jaringan
sekaligus mengirim notifikasi berupa SMS (Short Message Service) ke handphone
yang dimiliki network administrator. Dengan adanya sistem seperti ini, apabila
terjadi gangguan pada jaringan perusahaan, maka sistem tersebut akan mengirim
notifikasi berupa SMS ke handphone yang dimiliki oleh network administrator.
Network administrator juga dapat melakukan proses ping ke jaringan LKC
melalui handphone yang dimilikinya dengan mengirim SMS dengan format
tertentu ke modem yang terhubung ke server, kemudian network administrator
juga akan mendapatkan SMS balasan (reply) mengenai status konektivitas.
Dengan bantuan sistem ini, diharapkan tugas network administrator untuk
memantau jaringan menjadi lebih mudah. Penanganan terhadap gangguan pada
jaringan pun menjadi lebih cepat karena notifikasi dikirim melalui SMS. Dengan
adanya sistem ini, diharapkan network administrator tidak harus terus menerus
berada di depan perangkat komputer untuk memantau jaringan. Solusi untuk
network monitoring melalui modem lebih jelasnya dapat dilihat dari gambar 4.3.
68
Gambar 4.3 Pemecahan network monitoring yang disarankan
Fiture-fiture yang digunakan dalam monitoring jaringan adalah ping,
netstat, telnet, netstat, ipconfig, netshare, tracert, nslookup, ftp, hostname,
pathping. Berikut penjelasan dari fungsi-fungsi fiture jaringan yang akan dibuat:
Tabel 4.2 Fungsi Fiture monitoring Jaringan
No Perintah
ke
Fiture Fungsi
1 0 Ping Digunakan untuk koneksi jaringan, apakah sudah
terkoneksi jaringan atau tidak
2 1 Netstat Menempilkan koneksi jaringan, tabel routing dan
statistik interface.
3 2 Telnet Perintah untuk melakukan login ke remote host.
4 3 Nbstat Perintah yang digunakan untuk melihat sistem
komputer yang digunakan.
5 4 Ipconfig Perintah yang digunakan untuk memperlihatkan
69
status kartu jaringan yang sedak aktif dan mengetahui
berapa IP yang dimiliki
6 5 Netshare Perintah yang digunkana untuk sharing data.
7 6 Tracert Untuk memeriksa berapa lama suatu paket melewati
masing-masing hop ke host yang dituju, tracert host
tujuan
8 7 Nslookup Server lookup mengetahui berbagai macam hal teknis
mengenai domain
9 8 Ftp Memulai koneksi file transfer protokol
10 9 Hostname Menampilkan nama komputer
11 10 Pathping Untuk melihat statika paket yang hilang
4.3 Desain
4.3.1 Perancangan Aplikasi
a. Activity Diagram
Activity diagram menggambarkan secara grafis aliran proses bisnis dan
langkah-langkah sebuah metode objek. Berikut ini adalah gambar Activity
Diagram pada saat network administrator melakukan permintaan informasi pada
sistem. Disini network administrator mengirimkan SMS ke nomor yang dipakai
70
oleh modem. Setelah diterima oleh modem maka akan dilakukan periksaan format
SMS, jika format SMS yang dikirimkan oleh network administrator sesuai dengan
format yang sudah ditentukan maka SMS akan dieksekusi. Jika SMS yang
dikirimkan oleh network administrator tidak sesuai, maka SMS yang dikirimkan
tersebut diabaikan. Setelah SMS dieksekusi, maka sistem akan mengirimkan SMS
balasan ke nomor handphone network administrator. SMS balasan ini berisi hasil
dari eksekusi SMS yang telah dikirimkan sebelumnya.
71
Gambar 4.4 Activity Diagram Sistem monitoring Berbasis SMS
Berikut ini adalah gambar Activity Diagram pada saat fitur SMS function
dijalankan. Sistem akan melakukan ping yang ditujukan ke server. Server akan
merespon, kemuadian respon tersebut akan dikirimkan kembali ke sistem. Sistem
akan melakukan pengecekan respon, jika respon yang diterima menunjukkan
perubahan status konektivitas pada jaringan , misalnya dari status Connection is
Down berubah menjadi Connection is UP, sistem akan mengirimkan respon yang
diperoleh dari server network administrator melalui SMS. Tetapi jika respon yang
diterima tidak mengalami perubahan, sistem tidak akan mengirimkan respon
tersebut ke network administrator.
Gambar 4.5 Activity Diagram Saat SMS function Aktif
72
b. State Transsition Diagram
State Taransition Diagram (STD) merupakan alat yang digunakan untuk
menggambarkan urutan variasi layar yang dapat terjadi selama satu sesi
pengguna yang mana STD yang digunakan sebagai berikut:
1. STD Fitur Ping
Gambar 4.6 STD Fitur Ping
2. STD Fitur Netstat
Gambar 4.7 STD Fitur Netstat
3. STD Fitur Telnet
Gambar 4.8 STD Fitur Telnet
73
4. STD Fitur Nbtstat
Gambar 4.9 STD Fitur Nbtstat
5. STD Fitur Ipconfig
Gambar 4.10 STD Fitur IPconfig
6. STD Fitur Net Share
Gambar 4.11 STD Fitur Net Share
7. STD Fitur Tracert
Gambar 4.12 STD Fitur Tracert
74
8. STD Fitur Nslookup
Gambar 4.13 STD Fitur NSlookup
9. STD Fitur Ftp
Gambar 4.14 STD Fitur Ftp
10. STD Fitur Hostname
Gambar 4.15 STD Fitur Hostname
11. STD Fitur Pathping
Gambar 4.16 STD Fitur Pathping
75
4.3.2 Perancangan Basisdata (Database)
Sebelum melakukan perancangan database, dilakukan normalisasi pada
tabel yang akan dibuat setelah itu dibuat kelengkapan tabel atribut. Berikut
merupakan tabel yang belum normal, karena masih terdapat data yang bernilai
ganda, yaitu : id_data_buku_telepon, nomor_telepon, nama_kontak, alamat,
id_sms_keluar, no_telepon_keluar, isi_pesan_keluar, status_keluar,
tanggal_keluar, jam_keluar, id_sms_masuk, no_telepon_masuk, isi_pesan_masuk,
status_masuk, tanggal_masuk, jam_masuk. Primary key dari tabel di bawah ini
adalah, id_data_buku_telepon, id_sms_keluar, id_sms_masuk melalui tahap
normalisasi sebagai berikut:
4.3.2.1 Normalisasi Tahap I
Langkah pertama dalam normalisasi adalah menghilangkan data yang
bernilai ganda. Tabel 4.3 merupakan tabel yang sudah melalui normalisasi
tahap I. Setelah terjadi dekomposisi data, maka terlihat tidak ada data yang
bernilai ganda.
Tabel 4.3 Normalisasi Tahap awal Database
Nama Field Tipe Data Keterangan
Id_keluar Int (8) Id sms keluar
No_telepon_keluar Text No telepon sms terkirim
Isi_pesan_keluar Varchar (20) Isi pesan sms
76
Status_keluar Varchar (20) Status notifikasi
Tanggal_keluar Varchar (20) Tanggal sms yang keluar
Jam_keluar Varchar (20) Waktu pengiriman sms
Id_masuk Int (8) Id sms masuk
No_telepon_masuk Text No telepon sms yang diterima
Isi_pesan_masuk Varchar (20) Isi pesan sms
Status_masuk Varchar (20) Notifikasi sms masuk
Tanggal_masuk Varchar (20) Tanggal penerimaan sms
Jam_masuk Varchar (20) Waktu sms diterima
4.3.2.2 Normalisasi Tahap II
Pada normalisasi tahap II terdapat dependensi parsial, yaitu semua
atribut bukan kunci bergantung pada primary key. Normalisasi tahap II ini
tabel pertama data buku telepon dan data sms keluar serta tabel kedua buku
telepon dan SMS masuk.
Tabel 4.4 Normalisasi II Buku Telepon dan sms keluar
Nama Field Tipe Data Keterangan
Id Int (8) Id data dalam buku telepon
77
Nomor_telepon Varchar (20) Nomor telepon yang di input
Nama_kontak Varchar (20) Nama kontak yang di input
Alamat Text Alamat yang diinput jika perlu
Id_keluar Int (8) Id sms keluar
No_telepon_keluar Text No telepon sms terkirim
Isi_pesan_keluar Varchar (20) Isi pesan sms
Status_keluar Varchar (20) Status notifikasi
Tanggal_keluar Varchar (20) Tanggal sms yang keluar
Jam_keluar Varchar (20) Waktu pengiriman sms
Tabel 4.5 Normalisasi II Buku Telepon dan SMS Masuk
Nama Field Tipe Data Keterangan
Id Int (8) Id data dalam buku telepon
Nomor_telepon Varchar (20) Nomor telepon yang di input
Nama_kontak Varchar (20) Nama kontak yang di input
Alamat Text Alamat yang perlu diinput
78
Id_masuk Int (8) Id sms masuk
No_telepon_masuk Text No telepon sms yang diterima
Isi_pesan_masuk Varchar (20) Isi pesan sms
Status_masuk Varchar (20) Notifikasi sms masuk
Tanggal_masuk Varchar (20) Tanggal penerimaan sms
Jam_masuk Varchar (20) Waktu sms diterima
79
4.3.2.3 Normalisasi Tahap III
Pada normalisasi tahap II masih terdapat dependensi transitif, maka
pada tahap III dependensi transitif harus dihilangkan. Dependensi transitif
yaitu ada beberapa atribut bukan kunci yang tidak sepenuhnya bergantung
pada atribut bukan kunci. Dikarenakan hal tersebut, maka tabel harus dipisah
lagi menjadi tabel buku telepon, tabel SMS keluar, tabel SMS masuk.
Normalisasi tahap III menjadi 3 tabel yaitu tabel data telepon, tabel SMS
keluar dan tabel sms masuk.
Tabel 4.6 Tabel Data Telepon
Nama Field Tipe Data Keterangan
Id Int (8) Id data dalam buku telepon
Nomor_telepon Varchar (20) Nomor telepon yang di input
Nama_kontak Varchar (20) Nama kontak yang di input
80
Alamat Text Alamat yang diinput jika perlu
Tabel 4.7 Tabel SMS Keluar
Nama Field Tipe Data Keterangan
Id_keluar Int (8) Id sms keluar
No_telepon_keluar Text No telepon sms terkirim
Isi_pesan_keluar Varchar (20) Isi pesan sms
Status_keluar Varchar (20) Status notifikasi
Tanggal_keluar Varchar (20) Tanggal sms yang keluar
Jam_keluar Varchar (20) Waktu pengiriman sms
Tabel 4.8 Tabel SMS Masuk
Nama Field Tipe Data Keterangan
Id_masuk Int (8) Id sms masuk
No_telepon_masuk Text No telepon sms yang
diterima
Isi_pesan_masuk Varchar (20) Isi pesan sms
81
Status_masuk Varchar (20) Notifikasi sms masuk
Tanggal_masuk Varchar (20) Tanggal penerimaan sms
Jam_masuk Varchar (20) Waktu sms diterima
4.3.3 Perancangan Tampilan
1.Perancangan User Interface
a) Halaman login
Gambar 4.17 Halaman login
b) Halaman Utama
Gambar 4.18 Halaman Utama
c) Halaman koneksi / berkas
Gambar 4.19 Halaman koneksi / berkas
82
d) Halaman Koneksi terminal
Gambar 4.20 Halaman koneksi Terminal
e) Halaman Putus terminal
Gambar 4.21 Halaman Putus terminal
f) Halaman kirim SMS
Gambar 4.22 Halaman Kirim SMS
83
g) Halaman Keluar
Gambar 4.23 Halaman Keluar
h) Halaman Database
Gambar 4.24 Halaman Database
i) Halaman SMS Masuk
Gambar 4.25 Halaman SMS Masuk
84
j) Halaman SMS Keluar
Gambar 4.26 Halaman SMS Keluar
k) Halaman Buku Telepon
Gambar 4.27 Halaman Buku Telepon
l) Halaman SMS Request/ monitoring Jaringan
Gambar 4.28 Halaman SMS Request/ monitoring Jaringan
85
m) Halaman Konfigurasi Perangkat System
Gambar 4.29 Halaman Konfigurasi Perangkat System
n) Halaman Aktivitas System
Gambar 4.30 Halaman Aktivitas System
4.4 Coding
Pada tahap ini dilaksanakan implementasi dari rancangan-rancangan, baik
rancangan basis data, rancangan aplikasi, maupun rancangan tampilan.
4.4.1 Penyiapan Unit Testing
Bahasa pemrograman yang digunakan pada pengembangan aplikasi ini
adalah menggunakan java 6.18, yang diantaranya terdiri dari java development kit
86
dan java runtime environment 6.18, MYSQL sebagai database dan tool Editor
XAMPP, tool lain yang digunakan adalah Jcreator Pro 4.50 dan NetBeans IDE
6.7.1 serta menggunakan Modem Huawei K3565.
Program jaringan yang dijalankan pada awalnya menggunakan tool
Jcreator Pro 4.50, perintah jaringan yang digunakan adalah ping, netstat, telnet,
nbtstat, ipconfig, net share, tracert, nslookup, ftp, hostname, pathping kemudian
setelah itu pembuatan design aplikasi menggunakan tool NetBeans IDE 6.7.1,
Untuk menggunakan fitur sms maka dibuatlah database menggunakan MYSQL.
Modem yang digunakan dengan memanfaatkan port yang ada dan bit rate yang
ada pada modem.
4.4.2 Implementasi Coding
Pada implementasi coding terdapat beberapa package yang dibuat
diantaranya adalah:
a. Package Action
Package action ini digunakan untuk menerima request dari user.
Package action ini juga berfungsi sebagai pengontrol proses login.
b. Package Common
Package ini digunakan untuk method-method cara pehitungan
misalnya pada perhitungan tanggal, hari dan lainnya. Untuk source code
lengkap pada package common terdapat di lampiran.
c. Package DB
87
Package db adalah package yang digunakan sebagai representasi dari
database. Pada package ini terbagi atas tiga bagian yaitu data buku
telepon, data SMS keluar dan data SMS masuk. Pada bagian model
merupakan representasi dari tabel.
d. Package UI
Package UI adalah package yang digunakan sebagai tampilan dari
aplikasi.
4.5 Pengujian (Testing)
Setelah selesai melakukan pengembangan, maka aplikasi ini harus diuji
coba yang bertujuan untuk mengetahui sejauh mana aplikasi ini dapat bekerja
dengan baik dan apakah aplikasi ini dapat memenuhi tujuan yang ingin diperoleh
sebelum diserahkan kepada end user. Pengujian dilakukan dengan deployment
terhadap aplikasi yang telah dikembangkan ke target server pada LKC. Pengujian
dilakukan dalam 2 (dua) tahap yaitu pengujian mandiri dan pengujian oleh user
secara black box.
4.5.1 Analisa Pengujian
Pengujian black box merupakan teknik pengujian sistem yang digunakan
untuk menguji fungsi-fungsi khusus dari perangkat lunak yang dirancang. Pada
teknik ini, kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan
keluaran yang dihasilkan dari data Jaringan.
a) Analisa Pengujian
88
Pengujian black box adalah teknik pengujian sistem yang
digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang
dirancang. Pada teknik ini, kebenaran perangkat lunak yang diuji hanya
dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi
masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana
proses untuk mendapatkan keluaran tersebut. Dari keluaran yang
dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai
dapat diukur sekaligus dapat diiketahui kesalahan-kesalahannya. Beberapa
jenis kesalahan yang dapat diidentifikasi:
1) Kesalahan antar muka, contohnya pada saat aplikasi dibuka terjadi
error, dalam artian tidak mengakses dan membuka halaman
selanjutnya.
2) Kesalahan pada struktur data (pengaksesan basis data) ketika data
di input, hasil inputan tidak tampil atau tidak masuk ke dalam
databasenya.
4.5.2 Hasil Pengujian Mandiri
a. Kompetisi Riset
Tabel 4.12 Hasil pengujian aplikasi
No Modul Prasyarat Hasil yang
diharapkan
Hasil uji coba
1 Mengaktifkan Install database Mysql Database Apache Berjalan dengan
89
database
MYSQL
menggunakan
tool XAMPP
dan XAMPP, running
Apache dan Mysql
dan Mysql
Running
baik lihat pada
lampiran C, gambar
1 (Database)
2 Masuk ke
halaman
sebelum login
Port sudah terdeteksi
sehingga bisa
melakukan proses
koneksi ke terminal
Masukkan port
yang digunakan
setelah itu cek
rate per bite yang
digunakan
kemuadian cek
nama database
yang digunakan
Berjalan dengan
baik lihat pada
lampiran C, gambar
3 (Berkas)
3 Konfigurasi
Terminal
Serial port, bit per
second, data bit, nama
host, nama database,
nama pegguna
Peneliti dapat
menginput dan
mengecek
konfigurasi
terminal
Berjalan dengan
baik lihat pada
lampiran C, gambar
3 (Berkas)
4 Koneksi
terminal
Server membuka port,
malkukan hubungan
ke port setelah
terhubung maka
Peneliti bisa
melakukan
koneksi terhadap
terminal dan
Berjalan dengan
baik lihat pada
lampiran C, gambar
90
dilakukan pengaturan
terminal
menunggu
sebentar karena
server sedang
mengenali port
3 (Berkas)
5 Kirim SMS No telp dan pencarian
no telp, Kirim SMS
Peneliti dapat
melakukan input
no telp, mengirim
SMS dan hapus
SMS
Berjalan dengan
baik lihat pada
lampiran C, gambar
3 (Berkas)
6 Keluar
aplikasi
Pemutusan terhadap
terminal
Peneliti dapat
melakukan
pemutusan
terhadap terminal
dan keluar dari
aplikasi
Berjalan dengan
baik lihat pada
lampiran C, gambar
3 (Berkas)
7 SMS Masuk No telp yang dipilih,
balas SMS, hapus
pesan atau hapus
semua SMS
Peneliti bisa
melakukan hapus
pesan dan
memilih no telp
Berjalan dengan
baik lihat pada
lampiran C, gambar
1 (Database)
91
8 SMS keluar Teruskan Kiriman,
Hapus pesan
Peneliti bisa
meneruskan pesan
setelah itu
menghapus pesan
yang ada
Berjalan dengan
baik lihat pada
lampiran C, gambar
1 (Database)
9 Buku telepon Tambah data baru,
pilih 1 no telp, hapus
data dari nama kontak
Peneliti bisa
menambah data
baru dan
menghapus data
dari nama kontak
Berjalan dengan
baik lihat pada
lampiran C, gambar
1 (Database)
10 Monitoring
jaringan
Memasukkan no
perintah sehingga
keluar hasil dari
perintah jaringan
yang telah di format
Bisa melakukan
monitoring
jaringan
Berjalan dengan
baik lihat pada
lampiran C, gambar
4 (Monitoring
Jaringan)
11 Konfigurasi
perangkat
system
Mendeteksi
penggunaaan port,
tipe SIM card dan
serial perangkat
Peneliti bisa
mendeteksi port
dari modem yang
digunakan
Berjalan dengan
baik lihat pada
lampiran C, gambar
3 (Berkas)
12 Aktivitas
system
Penyegaran File
dengan me refresh At-
Peneliti bisa
melakukan
Berjalan dengan
baik lihat pada
92
command penyegaran file
dan merefresh At-
Command
lampiran C, gambar
2 (System)
4.5.3 Hasil Pengujian lapangan (User)
Tabel 4.13 Hasil pengujian Aplikasi monitoring oleh User
No Pengujian Penilaian
1. Fitur Konfigurasi terminal Berjalan dengan baik lihat pada lampiran C, gambar 3 (Berkas)
2. Fitur Koneksi terminal Berjalan dengan baik lihat pada lampiran C, gambar 3 (Berkas)
3. Fitur Kirim SMS Berjalan dengan baik lihat pada lampiran C, gambar 3 (Berkas)
4. Fitur Keluar aplikasi Berjalan dengan baik lihat pada lampiran C, gambar 3 (Berkas)
5. Fitur SMS masuk Berjalan dengan baik lihat pada lampiran C, gambar 1 (Database)
6. Fitur SMS keluar Berjalan dengan baik lihat pada lampiran C, gambar 1 (Database)
7. Fitur buku telepon Berjalan dengan baik lihat pada lampiran C, gambar 1 (Database)
8. Fitur monitoring Jaringan Berjalan dengan baik lihat pada lampiran C, gambar 4 (SMS Request)
9. Fitur Konfigurasi perangkat system
Berjalan dengan baik lihat pada lampiran C, gambar 2 (System)
93
Pada pengujian kedua ini dilakukan pengujian oleh user, bukti hasil uji
coba terdapat pada lampiran C.
4.5.4 Screenshot hasil pengujian
1. Proses Konfigurasi Perangkat
Pada penggunakan aplilkasi ini, pengguna dalam hal ini yaitu user
harus melakukan proses login terleebih dahulu seperti terlihat pada gambar
ini.
Gambar 4.31 Halaman login
Pengguna memasukkan serial port, bits per Second yang telah dimiliki,
kemudian klik tombol untuk proses otentifikasi. Jika otentifikasi
pengguna telah berhasil, akan ditampilkan menu SMS monitoring dengan
database. Menu pada koordinator riset ini berisi pengaturan berkas, database,
SMS request, system. Sebelum memasuki aplikasi ini user harus mengecek
terlebih dahulu port yang digunakan oleh modem dengan cara klik kanan menu
10. Fitur aktivitas sistem Berjalan dengan baik lihat pada lampiran C, gambar 2 (System)
94
Computer->Manage-> Computer Management->Device Manager->Ports
(COM&LPT) -> huawei Mobile Connect->klik kanan->properties->Port Settings.
2. Berkas
1. Aturan
Disini user dapat melakukan konfigurasi role-role apa saja yang
terlibat pada Network monitoring Berbasis SMS LKC pada fiture berkas
ini kita dapat melakukan pengaturan koneksi terminal, putus terminal,
kirim SMS, pengaturan terminal, keluar aplikasi dengan form
konfigurasi ikuti pada gambar 4.32.
Gambar 4.32 Menu pada berkas
Maka akan tampil halaman seperti berikut ini :
a. Koneksi terminal
Gambar 4.33 koneksi Terminal
User masuk ke koneksi terminal, kemudian klik tombol untuk proses
otentifikasi. Jika otentifikasi pengguna telah berhasil, akan ditampilkan menu
SMS monitoring dengan database.
95
b. Putus Terminal
Gambar 4.34 Putus Terminal
Gambar 4.34 merupakan notifikasi apabila kita akan keluar dari aplikasi.
c. Kirim SMS
Gambar 4.35 Kirim SMS
3. Database
Pada halaman ini user dapat melakukan input terhadap database
Tampilan halaman seperti berikut ini :
a. Data SMS Masuk
Gambar 4.36 Data SMS Masuk
96
b. Data SMS Keluar
Gambar 4.37 Data SMS Keluar
c. Data Buku Telepon
Gambar 4.38 Data Buku Telepon
4. SMS Request
Pada halaman ini user dapat melakukan input SMS Request terhadap
monitoring jaringan, Tampilan halaman seperti berikut ini :
97
Gambar 4.39 monitoring Jaringan
5. System
Pada halaman ini user dapat melihat konfigurasi perangkat dan AT-
Command pada sistem, tampilan halaman seperti pada gambar 4.40.
a. Data Konfigurasi Perangkat
Gambar 4.40 Konfigurasi Perangkat
b. Info AT Command System
Gambar 4.41 Aktivitas System SMS Server
101
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dengan adanya aplikasi monitoring jaringan dengan notifikasi melalui
SMS ini akan membantu admin mengetahui keadaan komputer pada jaringan
LKC dengan cepat, dan dapat meningkatkan pelayanan dengan mengambil
tindakan pada komputer client yang bermasalah.
5.2 Saran
Setelah melakukan analisis dan perancangan sistem network monitoring
berbasis SMS, ada beberapa saran yang dapat digunakan sebagai acuan untuk
mengembangkan sistem ini dimasa mendatang, antara lain:
1. Sebaiknya aplikasi dapat dijalankan dengan OS berbasis Open Source
karena aplikasi ini hanya bisa dijalankan pada sistem operasi Windows.
2. Monitoring jaringan yang ada dalam aplikasi ini hanya berupa perintah IP,
Nslookup, Netstat, Telnet, Ping, Netstat, Nbstat, Ipconfig, Tracert, Net
Share, FTP, Hostname serta Pathping dapat dikembangkan dengan
menambahkan perintah jaringan yang lain seperti monitoring router,
switch atau monitoring service berupa POP3, SMTP.
102
DAFTAR PUSTAKA
Basofi, Arif. 2010. Normalisasi Database. Information Technology ITS.
Surabaya.
Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Objek. Bandung:
Informatika.
Kinadi, Andre. 2010. Network Monitoring Berbasis SMS pada PT. Mandala
Airlines. Bina Nusantara. Jakarta.
Kusaeri, Ahmad.2010.Monitoring Jaringan .Andi.Yogyakarta
Mardiyani, Endah. 2009. Sistem Monitoring Client Jaringan Komputer
Menggunakan Short Message Service (SMS). UIN Syarifhidayatullah.
Jakarta.
Melwin, Safrizal.2005, Pengantar Jaringan Komputer. Andi.Yogyakarta.
Nazir, Moh. 2005. Metode Penelitian. Jakarta: Ghalia Indonesia.
Redaksi Infokomputer,2008, Panduan Praktis Membangun Lan, Prima
Infosarana Media, Jakarta.
Pressman, Roger. S.2005.Software Engineering.6th edition.Mc GrawHill.
Sofana, Iwan.2011. Teori & Modul Praktikum Jaringan Komputer.Bandung.
Modula.
Wahidin,2007, Jaringan Komputer untuk Orang Awam. Maximom.
Palembang.
103
Endino.2011.SMS [Online] Tersedia:www.Cara kerja SMS pada
GSM/CDMA.htm [13 Mei 2011]
Kim.2011.Huawei K3565 [Online] Tersedia: www.modem/ Huawei
K3565.html [13 Mei 2011]
Wells, Don. 2011. Extreme Programming. [Online] Tersedia:
www.extremeprogramming.org.[13 Mei 2010]
Welas. 2011.Netbeans[Online] Tersedia: www.netbeans.org.[13 Mei 2010]
LAMPIRAN
1. Database
Data SMS Masuk
Data SMS Keluar
Buku Telepon
2. SYSTEM
Konfigurasi Perangkat
Aktivitas System
3. BERKAS
Keluar Aplikasi
Kirim sms
Koneksi Terminal
Konfigurasi Terminal
4. SMS REQUEST(Monitoring Jaringan)
Proses ipconfig
Proses Netstat
Proses Telnet
Proses Hostname
Proses Tracert
Proses Ping
Proses Nslookup
Proses Netshare
Proses Pathping
Proses Nbtstat
Proses Ftp
HASIL TESTING APLIKASI10 April 2011, 13.00 wib, ruang rapat IT STAFF
Peserta :
NO. Unit Organisasi
1. Lembaga Penelitian
a. Hasil Pengujian Monitoring Jaringan
No Modul Prasyarat Hasil yang diharapkan Hasil uji
coba
1 Mengaktifkan
database
MYSQL
menggunakan
tool XAMPP
Install database Mysql
dan XAMPP, running
Apache dan Mysql
Database Apache dan
Mysql Running
Baik
2 Masuk ke
halaman
sebelum login
Port sudah terdeteksi
sehingga bisa
melakukan proses
Masukkan port yang
digunakan setelah itu cek
rate per bite yang
digunakan kemuadian cek
Baik
koneksi ke terminal nama database yang
digunakan
3 Konfigurasi
Terminal
Serial port, bit per
second, data bit, nama
host, nama database,
nama pegguna
Peneliti dapat menginput
dan mengecek
konfigurasi terminal
Baik
4 Koneksi
terminal
Server membuka port,
malkukan hubungan ke
port setelah terhubung
maka dilakukan
pengaturan terminal
Peneliti bisa melakukan
koneksi terhadap
terminal dan menunggu
sebentar karena server
sedang mengenali port
Baik
5 Kirim SMS No telp dan pencarian
no telp, Kirim SMS
Peneliti dapat melakukan
input no telp, mengirim
SMS dan hapus SMS
Baik
6 Keluar aplikasi Pemutusan terhadap
terminal
Peneliti dapat melakukan
pemutusan terhadap
terminal dan keluar dari
aplikasi
Baik
7 SMS Masuk No telp yang dipilih,
balas SMS, hapus pesan
Peneliti bisa
melakukan hapus
Baik
atau hapus semua SMS pesan dan memilih no
telp
8 SMS keluar Teruskan Kiriman,
Hapus pesan
Peneliti bisa meneruskan
pesan setelah itu
menghapus pesan yang
ada
Baik
9 Buku telepon Tambah data baru, pilih
1 no telp, hapus data
dari nama kontak
Peneliti bisa menambah
data baru dan
menghapus data dari
nama kontak
Baik
10 Monitoring
jaringan
Memasukkan no
perintah sehingga
keluar hasil dari
perintah jaringan yang
telah di format
Bisa melakukan
monitoring jaringan
Baik
11 Konfigurasi
perangkat
system
Mendeteksi
penggunaaan port, tipe
SIM card dan serial
perangkat
Peneliti bisa mendeteksi
port dari modem yang
digunakan
Baik
12 Aktivitas
sistem
Penyegaran File dengan
me refresh At-command
Peneliti bisa melakukan
penyegaran file dan
Baik
merefresh At-Command
HASIL SOSIALISASI APLIKASI10 April 2011, 13.00 wib, ruang rapat IT STAFF
Peserta :
NO. Unit Organisasi
1. Lembaga Penelitian
Kesimpulan Hasil Sosialisasi Sistem :
No Pengujian Penilaian
1. Fitur aplikasi secara keseluruhan Baik
2. Fitur Konfigurasi terminal Baik
3. Fitur Koneksi terminal Baik
4. Fitur Kirim SMS Baik
5. Fitur Keluar aplikasi Baik
6. Fitur SMS masuk Baik
7. Fitur SMS keluar Baik
8. Fitur buku telepon Baik
9. Fitur Monitoring Jaringan Baik
10. Fitur Konfigurasi perangkat sistem Baik
11. Fitur aktivitas sistem Baik
12. Kesesuaian dengan Kebutuhan Baik
WAWANCARA
Lampiran 1
Tanggal wawancara : 20 Januari 2011
Interviewee : Staf IT, Bapak Suratman A. Md
Hasil Wawancara Sistem Yang Sedang Berjalan
Wawancara ini dilakukan untuk mengetahiu sistem pemantau jaringan
yang dilakukan oleh Layanan Kesehatan Cuma-Cuma. Pertanyaan-Pertanyaan
dalam wawancara ini diajukan kepada network administrator, berikut adalah
pertanyaanya:
1. Dalam memantau jaringan komputer yang ada, apa yang umumnya
dilakukan?
Dalam memantau jaringan komputer yang ada di perusahaan ini, network
administrator menggunkan OP Manager yang merupakan aplikasi pematau
jaringan yang berbasis web (web-based).
2. Sistem yang dimiliki pemantau jaringan tersebut?
OP Manager yang digunakan untuk memantau jaringan Layanan
Kesehatan Cuma-Cuma memiliki fungsi ping. Fungsi ping ini digunakan
oleh network administrator untuk memantau jaringan komputer terhadap
server.
3. Apakah ada keluhan dari sistem jaringan tersebut?
Selama ini network admnistrator menggunakan OP Manager untuk
memantau jaringan komputer yang ada. Keluhan yang dirasakaan adalah
tidak adanya fasilitas/fitur yang dapat digunakan untuk mengetahui status
konektivitas jaringan terhadap server secara realtime.
Network administrator tidak bisa meninggalkan kantor terlalu lama
karekna harus segera kembali ke kantor untuk memantau jaringan.
4. Dari sisi kebutuha hardware(perangkat keras) komputer yang dibutuhkan
untuk menjalankan sistem pemantau jaringan tersebut. Apakah ada
kebutuhan hardware khusus?
OP Manager ini tergolong ringan dan tidak memerlukan perangkat keras
khusus.
5. Fasilitas atau fitur lain yang diharapkan dari sistem pemantau jaringan
yang sudah ada?
Untuk saat ini, fasilitas atau fitur yang diharapkan ada pada sistem yang
sedang berjalan adalah fasilitas atau fitur SMS sehingga network
administrator dapat mengetahui kkonektivitas jaringan komputer yang ada
terhadap server secara realtime.
6. Mengapa fasilitas atau fitur tersebut penting?
Fasilitas atau fitur tersebut penting agar network administrator dapat
mengetahui status konektivitas jaringan meski tidak berada di kantor atau
di depan komputer untuk memantau jaringan.
Lampiran 2
Tanggal wawancara : 18 April 2011
Interviewee : Staf IT, Bapak Suratman A. Md
Hasil Wawancara Setelah Ujicoba Implementasi Sistem
Berikut ini adalah hasil wawancara setelah ujicoba implementasi
sistem yang dilakuakan. Pertanyaan-pertanyaan dala wawancara ini
diajukan kepada network administrator:
1. Setelah melakukan uji coba dengan sistem yang baru ini, apakah cara
penggunaanya menyulitkan?
Tidak sulit, karena sisitem yang baru ini mempunyai interface yang user
friendly.
2. Apakah setelah implememtasi ini akan dapat mengatasi masalah yang
sebelumnya dirasakan?
Ya, menurut saya dengan adanya sistem yang baru ini, masalah yanga ada
sebelumnya menjadi terpecahkan. Selama ini, kendalanya adalah saya
harus berada di depan komputer untuk memantau jaringan. Dengan adanya
sistem yang baru ini, saya dapat mengetahui status jaringan saat saya tidak
berada di depan komputer.
3. Apakah dengan adanya fasilitas SMS pada sistem yang baru membantu
network administrator dalam prose pemantauan jaringan?
Ya, sangat membantu dengan adanya fasilitas atau fitur SMS pada sistem
yang baru, karena saya dapat mengetahui status konktifitas jaringan melalui
SMS saat saya tidak berada di depan komputer. Sedangkan pada sisitem
yang lama, saya harus selalu memeriksa e-mail saya untuk mengetahui
status konektivitasnya.
4. Apa keuntungan yang diperoleh dari solusi sistem pemantau jaringan
berbasis SMS ini?
Keuntungannya adalah saya dapat mengetahui konektivitas jaringan dengan
cepat walaupun saya tidak berada di komputer.
SOURCE CODE
import java.io.*;
public class tecCmd {
private static String getPrintOut(String
cmd) {
StringBuffer sb = new StringBuffer();
Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec(cmd);
// Mendapatkan InputStream dan
menciptakan
// objek BufferedReader
BufferedReader in = new
BufferedReader
(new
InputStreamReader(p.getInputStream()));
String s;
// Membaca input dan simpan ke
StringBuffer
while ((s = in.readLine()) != null) {
sb.append(s);
sb.append("\n");
}
in.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return sb.toString();
}
public String baca(String cmd) {
//String cmd = "netstat -an";
//System.out.println("Output: " + cmd);
//System.out.println(getPrintOut(cmd));
return getPrintOut(cmd);
}
}
public class pengaturan_Terminal extends
javax.swing.JDialog {
public pengaturan_Terminal(boolean
modal) {
super(new java.awt.Frame(), modal);
}
public pengaturan_Terminal() {
}
public void tampilanGUI(){
initComponents();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
dataSerial = new
javax.swing.JComboBox();
jPanel7 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
dataBps = new
javax.swing.JComboBox();
jPanel8 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
dataBits = new
javax.swing.JComboBox();
jPanel9 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
dataParity = new
javax.swing.JComboBox();
jPanel10 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
dataStop = new
javax.swing.JComboBox();
jPanel11 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
dataFlowControl = new
javax.swing.JComboBox();
jPanel5 = new javax.swing.JPanel();
jPanel12 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
dataNamaHost = new
javax.swing.JTextField();
jPanel13 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
dataNamaPort = new
javax.swing.JTextField();
jPanel14 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
dataNamaDatabase = new
javax.swing.JTextField();
jPanel16 = new javax.swing.JPanel();
jPanel15 = new javax.swing.JPanel();
jLabel10 = new javax.swing.JLabel();
dataNamaPengguna = new
javax.swing.JTextField();
jPanel17 = new javax.swing.JPanel();
jLabel11 = new javax.swing.JLabel();
dataPassword = new
javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Pengaturan Terminal SMS
Server");
setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_
CURSOR));
jPanel1.setLayout(new
javax.swing.BoxLayout(jPanel1,
javax.swing.BoxLayout.Y_AXIS));
jPanel4.setLayout(new
javax.swing.BoxLayout(jPanel4,
javax.swing.BoxLayout.Y_AXIS));
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), "
Konfigurasi Terminal ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jPanel6.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jLabel1.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel1.setText("Serial Port :");
jLabel1.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel6.add(jLabel1);
dataSerial =
SmitDev.SmsServer.Port.daftarSerialPort();
dataSerial.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel6.add(dataSerial);
jPanel4.add(jPanel6);
jPanel7.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jLabel2.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel2.setText("Bits per Second :");
jLabel2.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel7.add(jLabel2);
dataBps =
SmitDev.SmsServer.Port.BitsPerSecond();
dataBps.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel7.add(dataBps);
jPanel4.add(jPanel7);
jPanel8.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Data bits :");
jLabel3.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel8.add(jLabel3);
dataBits =
SmitDev.SmsServer.Port.DataBits();
dataBits.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel8.add(dataBits);
jPanel4.add(jPanel8);
jPanel9.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
jPanel9.setBackground(new
java.awt.Color(255, 255, 255));
jLabel4.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel4.setText("Parity :");
jLabel4.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel9.add(jLabel4);
dataParity =
SmitDev.SmsServer.Port.Parity();
dataParity.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel9.add(dataParity);
jPanel4.add(jPanel9);
jPanel10.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel10.setBackground(new
java.awt.Color(255, 255, 255));
jLabel5.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel5.setText("Stop bits :");
jLabel5.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel10.add(jLabel5);
dataStop =
SmitDev.SmsServer.Port.StopBits();
dataStop.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel10.add(dataStop);
jPanel4.add(jPanel10);
jPanel11.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
jPanel11.setBackground(new
java.awt.Color(255, 255, 255));
jLabel6.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel6.setText("Flow control :");
jLabel6.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel11.add(jLabel6);
dataFlowControl =
SmitDev.SmsServer.Port.FlowControl();
dataFlowControl.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel11.add(dataFlowControl);
jPanel4.add(jPanel11);
jPanel1.add(jPanel4);
jPanel5.setLayout(new
javax.swing.BoxLayout(jPanel5,
javax.swing.BoxLayout.Y_AXIS));
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), "
Konfigurasi Database (MySQL Database
Server) ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jPanel12.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel12.setBackground(new
java.awt.Color(255, 255, 255));
jLabel7.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel7.setText("Nama Host :");
jLabel7.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel12.add(jLabel7);
dataNamaHost.setText("localhost");
dataNamaHost.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel12.add(dataNamaHost);
jPanel5.add(jPanel12);
jPanel13.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
jPanel13.setBackground(new
java.awt.Color(255, 255, 255));
jLabel8.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel8.setText("Nama Port :");
jLabel8.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel13.add(jLabel8);
dataNamaPort.setText("3306");
dataNamaPort.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel13.add(dataNamaPort);
jPanel5.add(jPanel13);
jPanel14.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel14.setBackground(new
java.awt.Color(255, 255, 255));
jLabel9.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel9.setText("Nama Database :");
jLabel9.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel14.add(jLabel9);
dataNamaDatabase.setPreferredSize(new
java.awt.Dimension(150, 22));
dataNamaDatabase.setText("db_thoyyibah")
;
jPanel14.add(dataNamaDatabase);
jPanel5.add(jPanel14);
jPanel16.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.add(jPanel16);
jPanel15.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
jPanel15.setBackground(new
java.awt.Color(255, 255, 255));
jLabel10.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel10.setText("Nama Pengguna :");
jLabel10.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel15.add(jLabel10);
dataNamaPengguna.setText("root");
dataNamaPengguna.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel15.add(dataNamaPengguna);
jPanel5.add(jPanel15);
jPanel17.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel17.setBackground(new
java.awt.Color(255, 255, 255));
jLabel11.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel11.setText("Password :");
jLabel11.setPreferredSize(new
java.awt.Dimension(160, 16));
jPanel17.add(jLabel11);
dataPassword.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel17.add(dataPassword);
jPanel5.add(jPanel17);
jPanel1.add(jPanel5);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel3.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.R
IGHT, 5, 10));
jButton1.setText("Setuju");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
jButton2.setText("Tidak");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel3.add(jButton2);
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-400)/2,
(screenSize.height-500)/2, 400, 500);
}
// </editor-fold>
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
String serialPort =
this.dataSerial.getSelectedItem().toString();
String bps =
this.dataBps.getSelectedItem().toString();
String bits =
this.dataBits.getSelectedItem().toString();
String parity =
this.dataParity.getSelectedItem().toString()
;
String stopBit =
this.dataStop.getSelectedItem().toString();
String flowControl =
this.dataFlowControl.getSelectedItem().toSt
ring();
String driverJDBC
="com.mysql.jdbc.Driver";
String url = "jdbc:mysql://" +
this.dataNamaHost.getText() + ":"
+ this.dataNamaPort.getText() +
"/" + this.dataNamaDatabase.getText();
String user =
this.dataNamaPengguna.getText();
String password =
this.dataPassword.getText();
if(this.dataNamaDatabase.getText().length(
)<= 0 ){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Melakukan Pengaturan Terminal",
"Nama Database Belum di Masukkan");
this.dataNamaDatabase.requestFocus();
} else {
this.dispose();
Utama_SMS utama = new
Utama_SMS(serialPort,
bps,
bits,
parity,
stopBit,
flowControl,
driverJDBC,
url,
user,
password);
utama.setVisible(true);
}
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
System.exit(0);
}
/**
* @param args the command line
arguments
*/
// Variables declaration - do not modify
private javax.swing.JComboBox dataBits;
private javax.swing.JComboBox dataBps;
private javax.swing.JComboBox
dataFlowControl;
private javax.swing.JTextField
dataNamaDatabase;
private javax.swing.JTextField
dataNamaHost;
private javax.swing.JTextField
dataNamaPengguna;
private javax.swing.JTextField
dataNamaPort;
private javax.swing.JComboBox
dataParity;
private javax.swing.JTextField
dataPassword;
private javax.swing.JComboBox
dataSerial;
private javax.swing.JComboBox
dataStop;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel13;
private javax.swing.JPanel jPanel14;
private javax.swing.JPanel jPanel15;
private javax.swing.JPanel jPanel16;
private javax.swing.JPanel jPanel17;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
// End of variables declaration
}
public class jendelaAktivitasSystem extends
javax.swing.JFrame {
public jendelaAktivitasSystem() {
initComponents();
bacaFile();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
jTextArea1 = new
javax.swing.JTextArea();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Aktivitas System SMS
Server");
jPanel1.setLayout(new
java.awt.GridLayout());
jScrollPane1.setHorizontalScrollBarPolicy(jav
ax.swing.ScrollPaneConstants.HORIZONTAL
_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(javax
.swing.ScrollPaneConstants.VERTICAL_SCR
OLLBAR_ALWAYS);
jTextArea1.setEditable(false);
jTextArea1.setDragEnabled(true);
jScrollPane1.setViewportView(jTextArea1);
jPanel1.add(jScrollPane1);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(java.awt.Color.black
);
jLabel1.setBackground(java.awt.Color.green
);
jLabel1.setFont(new
java.awt.Font("Tahoma", 1, 12));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("jLabel1");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jPanel3.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jButton1.setText("Penyegaran File");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
jButton2.setText("Tutup Jendela");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel3.add(jButton2);
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel4,
java.awt.BorderLayout.EAST);
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel5,
java.awt.BorderLayout.WEST);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-550)/2,
(screenSize.height-400)/2, 550, 400);
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
jTextArea1.setText("");
bacaFile();
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
new
jendelaAktivitasSystem().setVisible(true);
}
});
}
String data;
private void bacaFile(){
java.util.Calendar dt =
java.util.Calendar.getInstance();
int tgl =
dt.get(java.util.Calendar.DAY_OF_MONTH);
int bln =
dt.get(java.util.Calendar.MONTH) + 1;
int thn =
dt.get(java.util.Calendar.YEAR);
String tgl_nol = "";
String bln_nol = "";
if (tgl < 10) {
tgl_nol = "0";
}
if (bln < 10) {
bln_nol = "0";
}
String tanggal = tgl_nol +
Integer.toString(tgl);
String bulan = bln_nol +
Integer.toString(bln);
String ddmmyy = tanggal + bulan +
Integer.toString(thn);
java.io.File file = new
java.io.File(ddmmyy +
".SmitDevSmsServer");
jTextArea1.setDocument(new
javax.swing.text.PlainDocument());
this.jLabel1.setText("Aktivitas System
" + tanggal + "-" + bulan + "-" + thn);
try{
java.io.BufferedReader read = new
java.io.BufferedReader(new
java.io.FileReader(file));
StringBuffer textBuffer = new
StringBuffer();
String tempText = "";
while(true){
tempText = read.readLine();
if(tempText != null){
textBuffer.append(tempText +
"\n");
} else {
break;
}
}
String text = textBuffer.toString();
jTextArea1.setText(text);
} catch (java.io.IOException e){}
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTextArea
jTextArea1;
} class AplikasiUji extends
javax.swing.JFrame {
// String [] perintah={"request ping
192.168.0.1 ","request netstat","request
telnet 192.168.0.1","request nbtstat
192.168.0.3","request ipconfig","request net
share 192.168.0.3","request tracert
192.168.0.1","request nslookup
192.168.0.1","request ftp","request
hostname","request pahtping"};
public AplikasiUji() {
initComponents();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jPanel7 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jPanel8 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
jPanel9 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
jPanel10 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
jPanel12 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Monitoring");
jPanel1.setLayout(new
javax.swing.BoxLayout(jPanel1,
javax.swing.BoxLayout.Y_AXIS));
jPanel1.setBackground(new
java.awt.Color(255, 255, 255));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel6);
jPanel7.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jLabel2.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel2.setText("Perintah :");
jLabel2.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel7.add(jLabel2);
jPanel1.add(jPanel7);
jPanel8.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Hasil :");
jLabel3.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel8.add(jLabel3);
jPanel1.add(jPanel8);
jPanel10.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel1.add(jPanel10);
jPanel12.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel12);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Tahoma", 1, 18));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Monitoring SMS");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jButton1.setText("Tutup Jendela");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
btnTest.setText("Test");
btnTest.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
btnTestActionPerformed(evt);
}
});
jPanel3.add(btnTest);
//getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel4,
java.awt.BorderLayout.EAST);
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel5,
java.awt.BorderLayout.WEST);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-300)/2,
(screenSize.height-300)/2, 300, 300);
}
// </editor-fold>//GEN-
END:initComponents
public static void main(String args[]) {
try {
javax.swing.UIManager.setLookAndFeel("co
m.stefankrause.xplookandfeel.XPLookAndFe
el");
} catch (Exception e) {
e.printStackTrace();
}
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
new
AplikasiUji().setVisible(true);
}
});
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {//GEN-
FIRST:event_jButton1ActionPerformed
dispose();
}
private void
btnTestActionPerformed(java.awt.event.Acti
onEvent evt) {
// int
pil=Integer.parseInt(txtPerintah.getText());
// String hsl= new
mydata().splitMe(perintah[pil],' ',pil);
// txtHasil.setText(hsl);
}
// Variables declaration - do not
modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JLabel lblPerintah;
private javax.swing.JLabel lblHasil;
private javax.swing.JTextField
txtPerintah;
private javax.swing.JTextField txtHasil;
private javax.swing.JButton btnTest;
}
public class jendelaKonfigurasiPerangkat
extends javax.swing.JFrame {
public jendelaKonfigurasiPerangkat(String
merek, String seri, String imei, String
operator) {
initComponents();
this.nilaiMerek.setText(merek);
this.nilaiSeri.setText(seri);
this.nilaiImei.setText(imei);
this.nilaiOperator.setText(operator);
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jPanel7 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
nilaiMerek = new
javax.swing.JLabel();
jPanel8 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
nilaiSeri = new javax.swing.JLabel();
jPanel9 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
nilaiImei = new javax.swing.JLabel();
jPanel10 = new javax.swing.JPanel();
jLabel8 = new javax.swing.JLabel();
nilaiOperator = new
javax.swing.JLabel();
jPanel12 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jPanel4 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Monitoring SMS");
jPanel1.setLayout(new
javax.swing.BoxLayout(jPanel1,
javax.swing.BoxLayout.Y_AXIS));
jPanel1.setBackground(new
java.awt.Color(255, 255, 255));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel6);
jPanel7.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jLabel2.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel2.setText("Tipe :");
jLabel2.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel7.add(jLabel2);
nilaiMerek.setFont(new
java.awt.Font("Tahoma", 1, 11));
nilaiMerek.setText("jLabel5");
jPanel7.add(nilaiMerek);
jPanel1.add(jPanel7);
jPanel8.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Hasil :");
jLabel3.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel8.add(jLabel3);
nilaiSeri.setFont(new
java.awt.Font("Tahoma", 1, 11));
nilaiSeri.setText("jLabel6");
jPanel8.add(nilaiSeri);
jPanel1.add(jPanel8);
jPanel9.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel9.setBackground(new
java.awt.Color(255, 255, 255));
jLabel4.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel4.setText("IMEI Perangkat :");
jLabel4.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel9.add(jLabel4);
nilaiImei.setFont(new
java.awt.Font("Tahoma", 1, 11));
nilaiImei.setText("jLabel7");
jPanel9.add(nilaiImei);
jPanel1.add(jPanel9);
jPanel10.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel10.setBackground(new
java.awt.Color(255, 255, 255));
jLabel8.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel8.setText("Operator SIM Card
:");
jLabel8.setPreferredSize(new
java.awt.Dimension(100, 14));
jPanel10.add(jLabel8);
nilaiOperator.setFont(new
java.awt.Font("Tahoma", 1, 11));
nilaiOperator.setText("jLabel9");
jPanel10.add(nilaiOperator);
jPanel1.add(jPanel10);
jPanel12.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel12);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Tahoma", 1, 18));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Konfigurasi
Perangkat");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jButton1.setText("Tutup Jendela");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel4,
java.awt.BorderLayout.EAST);
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel5,
java.awt.BorderLayout.WEST);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-300)/2,
(screenSize.height-300)/2, 300, 300);
}
// </editor-fold>
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JLabel nilaiImei;
private javax.swing.JLabel nilaiMerek;
private javax.swing.JLabel nilaiOperator;
private javax.swing.JLabel nilaiSeri;
// End of variables declaration
} import
java.net.InetAddress;
public class bacaLan {
public static void main(String[] args) {
try {
/*
String ip = "167.205.3.133";
// Mendapatkan nama host dari IP terkait
System.out.println("Nama host: " +
InetAddress.getByName(ip).getHostName())
;
String host = "www.gmail.com";
// Mendapatkan alamat IP dari nama host
terkait
System.out.println("Alamat IP: " +
InetAddress.getByName(host).getHostAddre
ss());
// Mendapatkan nama host dan alamat IP
System.out.println("Host/IP: " +
InetAddress.getByName(host));
*/
InetAddress ia =
InetAddress.getLocalHost();
// Mendapatkan nama host lokal
System.out.println(ia.getHostName());
// Mendapatkan alamat IP lokal
System.out.println(ia.getHostAddress());
// Mendapatkan nama host dan alamat IP
lokal
System.out.println(ia);
} catch(Exception ex) {
System.out.println(ex);
}
}
}
import java.sql.*;
import javax.swing.*;
class Koneksi {
public Koneksi(){}
public Connection bakso()throws
SQLException{
Connection cery=null;
try{
Class.forName("com.mysql.jdbc.Dri
ver");
cery=DriverManager.getConnection
("jdbc:mysql://localhost/dbsms","root","");
//Class.forName("sun.jdbc.odbc.Jd
bcOdbcDriver");
//cery=DriverManager.getConnecti
on("jdbc:odbc:KoneksiAcces","","");
}
catch(Exception e){
JOptionPane.showMessageDialog(n
ull,"Driver Nya Belum Ketemu!!!");
System.out.println("Terjadi
Kesalahan,mungkin database atau tabelnya
belum ada");}
return cery;
}
}
public class Konfigurasi extends
javax.swing.JFrame {
/** Creates new form Konfigurasi */
public Konfigurasi() {
initComponents();
}
/** This method is called from within the
constructor to
* initialize the form.
* WARNING: Do NOT modify this code.
The content of this method is
* always regenerated by the Form
Editor.
*/
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new
javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jScrollPane1 = new
javax.swing.JScrollPane();
jTextArea1 = new
javax.swing.JTextArea();
jPanel2 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.EXIT_ON_CLOSE);
jLabel1.setText("Perintah");
jLabel2.setText(":");
jTextField1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField1ActionPerformed(evt);
}
});
jButton1.setText("Test");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jLabel3.setText("Hasil ");
jLabel4.setText(":");
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel5.setFont(new
java.awt.Font("Tahoma", 1, 18));
jLabel5.setForeground(java.awt.Color.green
);
jLabel5.setText("Monitoring
Jaringan");
jPanel2.add(jLabel5);
jLabel6.setText("0. ping");
jLabel7.setText("1. Netstat");
jLabel8.setText("2. Telnet");
jLabel9.setText("3. Nbtstat");
jLabel10.setText("4. Ipconfig");
jLabel11.setText("5. Net Share");
jLabel12.setText("6. Tracert");
jLabel13.setText("7. Nslookup");
jLabel14.setText("8. Ftp");
jLabel15.setText("9. Hostname");
jLabel16.setText("10. Pathping");
javax.swing.GroupLayout layout =
new
javax.swing.GroupLayout(getContentPane()
);
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(jPanel2,
javax.swing.GroupLayout.DEFAULT_SIZE,
499, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
307,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18,
18)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel16)
.addComponent(jLabel15)
.addComponent(jLabel13)
.addComponent(jLabel14)
.addComponent(jLabel12)
.addComponent(jLabel11)
.addComponent(jLabel10)
.addComponent(jLabel9)
.addComponent(jLabel8)
.addComponent(jLabel7)
.addComponent(jLabel6,
javax.swing.GroupLayout.PREFERRED_SIZE,
55,
javax.swing.GroupLayout.PREFERRED_SIZE)
))
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
395,
javax.swing.GroupLayout.PREFERRED_SIZE)
))
.addComponent(jLabel4))
.addContainerGap(34,
Short.MAX_VALUE))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED, 29,
Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(65, 65, 65)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel4)))
.addGroup(layout.createSequentialGroup()
.addGap(41, 41, 41)
.addGroup(layout.createParallelGroup(javax
.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
225,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel12)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel15)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(jLabel16)))))
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED))
.addGroup(layout.createSequentialGroup()
.addGap(91, 91, 91)
.addComponent(jButton1)
.addGap(211, 211, 211)))
.addGap(49, 49, 49))
);
pack();
}// </editor-fold>
private void
jTextField1ActionPerformed(java.awt.event.
ActionEvent evt) {
// TODO add your handling code here:
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
// TODO add your handling code here:
// TODO add your handling code here:
String [] perintah={"request ping
192.168.0.1 ","request netstat","request
telnet 192.168.0.1","request nbtstat
192.168.0.3","request ipconfig","request net
share 192.168.0.3","request tracert
192.168.0.1","request nslookup
192.168.0.1","request ftp","request
hostname","request pahtping"};
int
pil=Integer.parseInt(jTextField1.getText());
String hsl= new
mydata().splitMe(perintah[pil],' ',pil);
jTextArea1.setText(hsl);
}
/**
* @param args the command line
arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
new
Konfigurasi().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTextArea
jTextArea1;
private javax.swing.JTextField
jTextField1;
// End of variables declaration
}
public class mydata {
public String splitMe(String s, char c,int n)
{
System.out.println("String : "+s);
System.out.println("Separator : "+c);
String [] tmp = null;
tmp = s.split("\\"+c, -1);
for (int i = 0 ; i < tmp.length-1 ; i++) {
System.out.println("tmp["+i+"] =
"+tmp[i]);
}
System.out.println("");
return CekPerintah(n,tmp);
}
//==========================
===========================
============
public String CekPerintah(int n,String
[]result) {
String smsbalik="";
smsbalik+=("HASIL:");
if(result[0].equalsIgnoreCase("request")){
if(n==0){
ping tesPing =new ping();
if(result[1].equalsIgnoreCase("ping
")){
try{
String running=result[1]+"
"+result[2];
if(result[2].equals("192.168.0.1"))
{smsbalik+="Proses Ping 192.168.0.1
=>";smsbalik+=(tesPing.myping(result[2]))
;}
else
if(result[2].equals("192.168.0.2")){smsbalik
+="Proses Ping 192.168.0.2
=>";smsbalik+=(tesPing.myping(result[2]))
;}
else
if(result[2].equals("192.168.0.3")){smsbalik
+="Proses Ping 192.168.0.3
=>";smsbalik+=(tesPing.myping(result[2]))
;}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: PING";}
}
else if(n==1){
String running=result[1];
if(result[1].equalsIgnoreCase("nets
tat")){smsbalik+="Proses
Netstat...=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else{smsbalik+="Gunakan
perintah kedua: NETSTAT";}
}
else if(n==2){
if(result[1].equalsIgnoreCase("teln
et")){
try{
String running=result[1]+"
"+result[2];
if(result[2].equals("192.168.0.1"))
{smsbalik+="Proses telnet 192.168.0.1
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.2")){smsbalik
+="Proses telnet 192.168.0.2 =>";tecCmd
call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.3")){smsbalik
+="Proses telnet 192.168.0.3 =>";tecCmd
call=new
tecCmd();smsbalik+=(call.baca(running));}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: TELNET";}
}
else if(n==3){
if(result[1].equalsIgnoreCase("nbts
tat")){
try{
String running=result[1]+"
"+result[2];
if(result[2].equals("192.168.0.1"))
{smsbalik+="Proses nbtstat 192.168.0.1
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.2")){smsbalik
+="Proses nbtstat 192.168.0.2
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.3")){smsbalik
+="Proses nbtstat 192.168.0.3
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: NBTSTAT";}
}
else if(n==4){
String running=result[1];
if(result[1].equalsIgnoreCase("ipco
nfig")){smsbalik+="Proses
ipconfig...=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else{smsbalik+="Gunakan
perintah kedua: IPCONFIG";}
}
else if(n==5){
if(result[1].equalsIgnoreCase("net"
) && result[2].equalsIgnoreCase("share")){
try{
String running=result[1]+"
"+result[2]+" "+result[3];
if(result[3].equals("192.168.0.1"))
{smsbalik+="Proses netshare 192.168.0.1
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[3].equals("192.168.0.2")){smsbalik
+="Proses netshare192.168.0.2
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[3].equals("192.168.0.3")){smsbalik
+="Proses netshare 192.168.0.3
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: NET SHARE";}
}
else if(n==6){
if(result[1].equalsIgnoreCase("trac
ert")){
try{
String running=result[1]+"
"+result[2];
if(result[2].equals("192.168.0.1"))
{smsbalik+="Proses tracert 192.168.0.1
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.2")){smsbalik
+="Proses tracert 192.168.0.2
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.3")){smsbalik
+="Proses tracert 192.168.0.3
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: TRACERT";}
}
else if(n==7){
if(result[1].equalsIgnoreCase("nslo
okup")){
try{
String running=result[1]+"
"+result[2];
if(result[2].equals("192.168.0.1"))
{smsbalik+="Proses nslookup 192.168.0.1
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.2")){smsbalik
+="Proses nslookup 192.168.0.2
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else
if(result[2].equals("192.168.0.3")){smsbalik
+="Proses nslookup 192.168.0.3
=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else {smsbalik+="Anda salah tulis
kode tujuan...";}
}
catch(Exception e){
smsbalik+="Silakan tulis IP tujuan
terlebih dahulu"; }
}
else{smsbalik+="Gunakan
perintah kedua: NSLOOKUP";}
}
else if(n==8){
String running=result[1];
if(result[1].equalsIgnoreCase("ftp")
){smsbalik+="Proses ftp...=>";tecCmd
call=new
tecCmd();smsbalik+=(call.baca(running));}
else{smsbalik+="Gunakan
perintah kedua: FTP";}
}
else if(n==9){
String running=result[1];
if(result[1].equalsIgnoreCase("host
name")){smsbalik+="Proses
hostname...=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else{smsbalik+="Gunakan
perintah kedua: HOSTNAME";}
}
else
if(n==10){
String running=result[1];
if(result[1].equalsIgnoreCase("path
ping")){smsbalik+="Proses
pathping...=>";tecCmd call=new
tecCmd();smsbalik+=(call.baca(running));}
else{smsbalik+="Gunakan
perintah kedua: PATHPING";}
}
}//result0
else{smsbalik+="Gunakan kata
pertama='REQUEST'";}
smsbalik+=(smsbalik);
return smsbalik;
} //CekPerintah
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class calc implements ActionListener{
public JLabel lblPerintah,lblHasil;
public JTextField txtPerintah,txtHasil;
public JButton btnTest;
String [] perintah={"request ping
192.168.0.1 ","request netstat","request
telnet 192.168.0.1","request nbtstat
192.168.0.1","request ipconfig","request net
share 192.168.0.1","request tracert
192.168.0.1","request nslookup
192.168.0.1","request ftp","request
hostname","request pahtping"};
public calc (){
//untuk membuat label
lblPerintah=new JLabel("Perintah");
lblPerintah.setLocation(20,20);
lblPerintah.setSize(lblPerintah.getPreferredS
ize());
lblHasil=new JLabel("Hasil");
lblHasil.setLocation(20,50);
lblHasil.setSize(lblHasil.getPreferredSize());
//untuk pembuatan textfield
txtPerintah=new JTextField(10);
txtPerintah.setLocation(100,20);
txtPerintah.setSize(txtPerintah.getPreferred
Size());
txtHasil=new JTextField(15);
txtHasil.setLocation(100,50);
txtHasil.setSize(txtHasil.getPreferredSize());
txtHasil.setEditable(false);
//untuk pembuatan button
btnTest=new JButton ("Test");
btnTest.setLocation(20,85);
btnTest.setSize(btnTest.getPreferredSize());
btnTest.addActionListener(this);
btnTest.setMnemonic('T');
}
//-----------------------------------------------
-------
public void tampilanFrame(){
JFrame.setDefaultLookAndFeelDecorated(tru
e);
JFrame frm=new JFrame("calc");
frm.setLayout(null);
frm.setDefaultCloseOperation(JFrame.EXIT_
ON_CLOSE);
frm.getContentPane().add(lblPerintah);
frm.getContentPane().add(lblHasil);
frm.getContentPane().add(txtPerintah);
frm.getContentPane().add(txtHasil);
frm.getContentPane().add(btnTest);
frm.setBounds(0, 0, 300, 260);
frm.setLocationRelativeTo(null);
frm.setVisible(true);
}
//-----------------------------------------------
-------
public void actionPerformed(ActionEvent
event){
String hasil="";
JButton btn=(JButton)
event.getSource();
if(btn==btnTest){
int
pil=Integer.parseInt(txtPerintah.getText());
String hsl= new
mydata().splitMe(perintah[pil],' ',pil);
txtHasil.setText(hsl);
}
else{
if
(JOptionPane.showConfirmDialog(null,
"Apakah Anda Yakin akan Mengakhiri
Aplikasi ini??",
"Konfirmasi",JOptionPane.YES_NO_
OPTION,JOptionPane.QUESTION_MESSAGE)
==JOptionPane.YES_OPTION){
JOptionPane.showMessageDialog(n
ull, "Bye Bye...");
System.exit(0);
}
}
}
//-----------------------------------------------
-------
public static void main (String args []){
javax.swing.SwingUtilities.invokeLa
ter(new Runnable (){
public void run(){
calc app=new
calc();
app.tampilanFrame();
}
});
}
}
public class prosesSmsRequest {
java.sql.Connection koneksi;
public
prosesSmsRequest(java.sql.Connection
koneksi, String notlp, String kode2, String
kode3) {
this.koneksi = koneksi;
prosesValidasiKode(notlp, kode2,
kode3);
}
private void prosesValidasiKode(String
notlp, String kode2, String kode3){
if (kode2.equalsIgnoreCase("DATA"))
{
prosesRequestDataPelanggan(notlp,
kode3);
} else if
(kode2.equalsIgnoreCase("PAJAK")) {
prosesRequestPajakPelanggan(notlp,
kode3);
} else if
(kode2.equalsIgnoreCase("null")) {
String kode_1_salah = "Format
SMS yang Anda Masukkan Salah.";
String kode_1_format =
"\nFORMAT SMS adalah
REQUEST DATA <IdPelang> atau REQUEST
PAJAK <IdPelang>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
} else {
String kode_1_salah = "Kode2 yang
Anda Masukkan Salah" + "\nkode : " +
kode2 + "\nTidak terdaftar";
String kode_1_format = "\nKode2
yang diijinkan adalah DATA atau PAJAK.
\nFORMAT SMS adalah REQUEST DATA
<ID> atau REQUEST PAJAK <ID>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
}
}
private void
prosesRequestDataPelanggan(String notlp,
String kode3){
boolean status_cari = false;
if(kode3.equalsIgnoreCase("null")){
String kode_1_salah = "Format
SMS yang Anda Masukkan Salah.";
String kode_1_format =
"\nFORMAT SMS adalah
REQUEST DATA <IdPelang> atau REQUEST
PAJAK <IdPelang>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
} else {
String sql = "SELECT * FROM
data_pelanggan WHERE id_pelanggan =
'"+kode3+"'";
try{
java.sql.Statement stat =
koneksi.createStatement();
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while(rSet.next()){
String nama =
rSet.getString("nama_pelanggan");
String alamat =
rSet.getString("alamat_pelanggan");
String daya =
rSet.getString("daya");
String dataPesan = "ID
Pelanggan : "+kode3+"\nNama :
"+nama+"\nAlamat : "+alamat+"\nDaya :
"+daya;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp, dataPesan);
status_cari = true;
}
if(!status_cari){
String kode_1_salah = "Data
Pelanggan dengan ID : "+kode3+"\nTidak
Ditemukan.";
String kode_1_format =
"\nKetik REQUEST DATA
<IdPelang> atau REQUEST PAJAK
<IdPelang>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
}
} catch(Exception e){}
}
}
private void
prosesRequestPajakPelanggan(String notlp,
String kode3){
prosesDatabaseSmsServer pd = new
prosesDatabaseSmsServer(koneksi);
pd.getWaktu();
String tahun = pd.tahun;
String bulan = pd.bulan;
String namaBulan =
SmitDev.SmsServer.Jam.konversiBulan(Inte
ger.parseInt(bulan)-1);
String kode =
kode3+namaBulan+tahun;
System.out.println(kode);
boolean status_cari = false;
if(kode3.equalsIgnoreCase("null")){
String kode_1_salah = "Format
SMS yang Anda Masukkan Salah.";
String kode_1_format =
"\nFORMAT SMS adalah
REQUEST DATA <IdPelang> atau REQUEST
PAJAK <IdPelang>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
} else {
String sql = "SELECT * FROM
data_pajak_listrik WHERE kode =
'"+kode+"'";
try{
java.sql.Statement stat =
koneksi.createStatement();
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while(rSet.next()){
String beban =
rSet.getString("biaya_beban");
String pakai =
rSet.getString("biaya_pemakaian");
String terlambat =
rSet.getString("biaya_keterlambatan");
String lain =
rSet.getString("biaya_lain");
String jml =
rSet.getString("jumlah");
String ppj =
rSet.getString("ppj");
String total_bayar =
rSet.getString("total_pembayaran");
String dataPesan =
kode3+"\nBulan:"+namaBulan+tahun+"\nB
bn:"+beban+"\nPkai:"+pakai+"\nDenda:"+
terlambat+"\nLain:"+lain+"\nJml:"+jml+"\n
PPJ:"+ppj+"\n\nTotalPajak:"+total_bayar;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp, dataPesan);
status_cari = true;
}
if(!status_cari){
String kode_1_salah = "Data
Pajak Listrik dengan ID pelanggan :
"+kode3+"\nTidak Ditemukan.";
String kode_1_format =
"\nFORMAT SMS adalah
REQUEST DATA <IdPelang> atau REQUEST
PAJAK <IdPelang>";
String pesanSalahKode_1 =
kode_1_salah + kode_1_format;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(notlp,
pesanSalahKode_1);
}
} catch(Exception e){}
}
}
}
public class prosesDatabaseSmsServer {
java.sql.Connection koneksi;
public
prosesDatabaseSmsServer(java.sql.Connect
ion koneksi) {
this.koneksi = koneksi;
}
String tahun;
String bulan;
String tanggal;
String jam;
String menit;
String detik;
public void getWaktu(){
String tgl_nol = "";
String bln_nol = "";
java.util.Calendar dt =
java.util.Calendar.getInstance();
int tgl =
dt.get(java.util.Calendar.DAY_OF_MONTH);
int bln =
dt.get(java.util.Calendar.MONTH)+1;
int thn =
dt.get(java.util.Calendar.YEAR);
if (tgl < 10) {
tgl_nol = "0";
}
if (bln < 10) {
bln_nol = "0";
}
tanggal = tgl_nol +
Integer.toString(tgl);
bulan = bln_nol +
Integer.toString(bln);
tahun = Integer.toString(thn);
//**********************************
**********
String nol_jam = "";
String nol_menit = "";
String nol_detik = "";
// Membuat Date
// Mengambil nilaj JAM, MENIT, dan
DETIK Sekarang
int nilai_jam =
dt.get(java.util.Calendar.HOUR_OF_DAY);
int nilai_menit =
dt.get(java.util.Calendar.MINUTE);
int nilai_detik =
dt.get(java.util.Calendar.SECOND);
// Jika nilai JAM lebih kecil dari 10
(hanya 1 digit)
if (nilai_jam <= 9) {
// Tambahkan "0" didepannya
nol_jam = "0";
}
// Jika nilai MENIT lebih kecil dari 10
(hanya 1 digit)
if (nilai_menit <= 9) {
// Tambahkan "0" didepannya
nol_menit = "0";
}
// Jika nilai DETIK lebih kecil dari 10
(hanya 1 digit)
if (nilai_detik <= 9) {
// Tambahkan "0" didepannya
nol_detik = "0";
}
// Keadaan Waktu Sekarang
// Membuat String JAM, MENIT, DETIK
jam = nol_jam +
Integer.toString(nilai_jam);
menit = nol_menit +
Integer.toString(nilai_menit);
detik = nol_detik +
Integer.toString(nilai_detik);
}
//**********************************
***********************************
*******************************
public void prosesTabelMasuk(String id,
String notlp, String pesan){
int pil=Integer.parseInt(pesan);
String [] perintah={"request ping
192.168.0.1 ","request netstat","request
telnet 192.168.0.1","request nbtstat
192.168.0.3","request ipconfig","request net
share 192.168.0.3","request tracert
192.168.0.1","request nslookup
192.168.0.1","request ftp","request
hostname","request pahtping"};
String hsl= new
mydata().splitMe(perintah[pil],' ',pil);
System.out.println("Hasil: "+hsl);
if(hsl.length()>160){hsl=hsl.substr
ing(0,160);}
inputDataTabelSmsKeluar(notlp, hsl);
}
//**********************************
***********************************
*******************************
boolean statusInputSmsKeluar = false;
public boolean
inputDataTabelSmsKeluar(String notlp,
String pesan){
getWaktu();
String tanggalHari = tanggal + "-" +
bulan + "-" + tahun;
String jamHari = jam + ":" + menit +
":" + detik;
try {
// SQL (Masukkan ke tabel TERIMA)
java.sql.PreparedStatement
pStatement = koneksi.prepareStatement(
"Insert Into
SMS_KELUAR(NO_TELEPON_KELUAR,ISI_PE
SAN_KELUAR,STATUS_KELUAR,TANGGAL_K
ELUAR, JAM_KELUAR) Values (?,?,?,?,?)");
try {
pStatement.setString(1, notlp);
pStatement.setString(2, pesan);
pStatement.setString(3,
"WAIT");
pStatement.setString(4,
tanggalHari);
pStatement.setString(5,
jamHari);
pStatement.executeUpdate();
statusInputSmsKeluar = true;
} // Akhir try
catch (Exception ei) {}
// Menutup Statement
pStatement.close();
} // Akhir try
catch (Exception e)
{System.out.println("GAGAL KIRIM
BALIK"+e);}
return statusInputSmsKeluar;
}
public void
inputDataTabelSmsMasuk(String notlp,
String pesan){
getWaktu();
String tanggalHari = tanggal + "-" +
bulan + "-" + tahun;
String jamHari = jam + ":" + menit +
":" + detik;
try {
java.sql.PreparedStatement
pStatement = koneksi.prepareStatement(
"Insert Into
SMS_MASUK(NO_TELEPON_MASUK,ISI_PES
AN_MASUK,STATUS_MASUK,TANGGAL_MAS
UK, JAM_MASUK) Values (?,?,?,?,?)");
try {
pStatement.setString(1, notlp);
pStatement.setString(2, pesan);
pStatement.setString(3,
"WAIT");
pStatement.setString(4,
tanggalHari);
pStatement.setString(5,
jamHari);
pStatement.executeUpdate();
} // Akhir try
catch (Exception ei) {}
// Menutup Statement
pStatement.close();
} // Akhir try
catch (Exception e) {}
}
public void updateStatusData(String id,
String status) {
String tulisStatus = "";
try {
if (status.equals("SEND")) {
tulisStatus = "Update
SMS_KELUAR Set STATUS_KELUAR='SEND'
Where ID_KELUAR=?";
} else if (status.equals("NO")) {
tulisStatus = "Update
SMS_KELUAR Set STATUS_KELUAR='NO'
Where ID_KELUAR=?";
}else if (status.equals("PROCESS"))
{
tulisStatus = "Update
SMS_KELUAR Set
STATUS_KELUAR='PROCESS' Where
ID_KELUAR=?";
} else if (status.equals("OK")) {
tulisStatus = "Update
SMS_MASUK Set STATUS_MASUK='OK'
Where ID_MASUK=?";
}
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(tulisStatus);
try {
pStatement.setString(1, id);
pStatement.executeUpdate();
} // Akhir try
catch (Exception e) {}
pStatement.close();
} // Akhir try
catch (Exception e) {}
}
}
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.sql.Statement;
import javax.swing.table.DefaultTableModel;
public class Anggota implements
ActionListener{
Connection cery;
Koneksi somay;
String SQLt;
Statement sawo;
String
skode,snama,stelepon,semail,salamat,suser
name,spassword,sstatus;
public JLabel
lblkode,lblnama,lbltelepon,lblemail,lblalamat
,lblusername,lblpassword,lblstatus;
public JTextField
txtkode,txtnama,txttelepon,txtemail,txtalam
at,txtusername,txtpassword,txtstatus;
public JButton
btnNew,btnSave,btnDelete,btnUpdate,btnEx
it,btnCari;
String[]judul={"No","kode","nama","telepon
","email","alamat","username","password","
status"};
DefaultTableModel
modelnya=new
DefaultTableModel(null,judul);
JTable tabelnya=new JTable();
JScrollPane scrollnya=new
JScrollPane();
JOptionPane jpane=new
JOptionPane();
//---------------------------------------
--------------------
public Anggota(){
tabelnya.setModel(modelnya);
scrollnya.getViewport().add(tabelnya);
tabelnya.setEnabled(true);
scrollnya.setBounds(10,350,520,300);
lblkode=new JLabel("kode:");
lblkode.setLocation(10,10);
lblkode.setSize(lblkode.getPreferredSize());
txtkode=new JTextField(20);
txtkode.setLocation(10,25);
txtkode.setSize(txtkode.getPreferredSize());
lblnama=new JLabel("nama:");
lblnama.setLocation(10,45);
lblnama.setSize(lblnama.getPreferredSize())
;
txtnama=new JTextField(20);
txtnama.setLocation(10,60);
txtnama.setSize(txtnama.getPreferredSize()
);
lbltelepon=new
JLabel("telepon:");
lbltelepon.setLocation(10,80);
lbltelepon.setSize(lbltelepon.getPreferredSiz
e());
txttelepon=new JTextField(20);
txttelepon.setLocation(10,95);
txttelepon.setSize(txttelepon.getPreferredSi
ze());
lblemail=new JLabel("email:");
lblemail.setLocation(10,115);
lblemail.setSize(lblemail.getPreferredSize())
;
txtemail=new JTextField(20);
txtemail.setLocation(10,130);
txtemail.setSize(txtemail.getPreferredSize()
);
lblalamat=new
JLabel("alamat:");
lblalamat.setLocation(10,150);
lblalamat.setSize(lblalamat.getPreferredSize
());
txtalamat=new JTextField(20);
txtalamat.setLocation(10,165);
txtalamat.setSize(txtalamat.getPreferredSiz
e());
lblusername=new
JLabel("username:");
lblusername.setLocation(10,185);
lblusername.setSize(lblusername.getPreferr
edSize());
txtusername=new
JTextField(20);
txtusername.setLocation(10,200);
txtusername.setSize(txtusername.getPreferr
edSize());
lblpassword=new
JLabel("password:");
lblpassword.setLocation(10,220);
lblpassword.setSize(lblpassword.getPreferre
dSize());
txtpassword=new
JTextField(20);
txtpassword.setLocation(10,235);
txtpassword.setSize(txtpassword.getPreferr
edSize());
lblstatus=new
JLabel("status:");
lblstatus.setLocation(10,255);
lblstatus.setSize(lblusername.getPreferredSi
ze());
txtstatus=new JTextField(20);
txtstatus.setLocation(10,270);
txtstatus.setSize(txtusername.getPreferredS
ize());
btnNew=new JButton("New");
btnNew.setLocation(10,300);
btnNew.setSize(btnNew.getPreferredSize());
btnNew.addActionListener(this);
btnNew.setMnemonic('e');
btnSave=new JButton("Save");
btnSave.setLocation(70,300);
btnSave.setSize(btnSave.getPreferredSize()
);
btnSave.addActionListener(this);
btnSave.setMnemonic('a');
btnDelete=new JButton("Del");
btnDelete.setLocation(135,300);
btnDelete.setSize(btnDelete.getPreferredSiz
e());
btnDelete.addActionListener(this);
btnDelete.setMnemonic('I');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnExit=new JButton("Exit");
btnExit.setLocation(310,300);
btnExit.setSize(
btnExit.getPreferredSize());
btnExit.addActionListener(this);
btnExit.setMnemonic('t');
btnCari=new JButton("Cari");
btnCari.setLocation(250,300);
btnCari.setSize(
btnCari.getPreferredSize());
btnCari.addActionListener(this);
btnCari.setMnemonic('C');
}
//------------------------------------
-----------------------
public void lp2maray(){
JFrame.setDefaultLookAndFeelDecorated(tru
e);
JFrame frame=new
JFrame("Data Siswa");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXI
T_ON_CLOSE);
frame.getContentPane().add(lblkode);
frame.getContentPane().add(txtkode);
frame.getContentPane().add(lblnama);
frame.getContentPane().add(txtnama);
frame.getContentPane().add(lbltelepon);
frame.getContentPane().add(txttelepon);
frame.getContentPane().add(lblemail);
frame.getContentPane().add(txtemail);
frame.getContentPane().add(lblalamat);
frame.getContentPane().add(txtalamat);
frame.getContentPane().add(lblusername);
frame.getContentPane().add(txtusername);
frame.getContentPane().add(lblpassword);
frame.getContentPane().add(txtpassword);
frame.getContentPane().add(lblstatus);
frame.getContentPane().add(txtstatus);
frame.getContentPane().add(btnNew);
frame.getContentPane().add(btnSave);
frame.getContentPane().add(btnDelete);
frame.getContentPane().add(btnUpdate);
frame.getContentPane().add(btnExit);
frame.getContentPane().add(btnCari);
frame.setBounds(0, 0,
550, 700);
frame.setLocationRelativeTo(null);
frame.getContentPane().add(scrollnya);
try{somay=new
Koneksi();}
catch(Exception e){
JOptionPane.showMessageDialog(null,
"Terjadi Kesalahan, Mungkin Databasenya
Belum Konek!!!");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
frame.setVisible(true);
}
//------------------------------------
-----------------------
public void
actionPerformed(ActionEvent event){
JButton
btn=(JButton)event.getSource();
if(btn==btnSave){
Simpan();
}
else if(btn==btnNew){
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
}
else if(btn==btnDelete){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " + "Mengakhiri
Aplikasi Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
Hapus();
}
}
else if(btn==btnUpdate){
Ubah();
}
else if(btn==btnExit){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " +
"Mengakhiri Aplikasi
Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
System.exit(0);
}
}
else if(btn==btnCari){
Cari();
}
}
//-=
void Simpan(){
skode=txtkode.getText();
snama=txtnama.getText();
stelepon=txttelepon.getText();
semail=txtemail.getText();
salamat=txtalamat.getText();
susername=txtusername.getText();
spassword=txtpassword.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="insert into
tbanggota
values('"+skode+"','"+snama+"','"+stelepo
n+"','"+semail+"','"+salamat+"','"+suserna
me+"','"+spassword+"','"+sstatus+"')";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Simpan");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DITAMBAHKAN");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//------------------------------------
-----------------------
void Hapus(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="delete from
tbanggota where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Hapus");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DIHAPUS");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//----------------------------------
-------------------------
void Ubah(){
skode=txtkode.getText();
snama=txtnama.getText();
stelepon=txttelepon.getText();
semail=txtemail.getText();
salamat=txtalamat.getText();
susername=txtusername.getText();
spassword=txtpassword.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Update tbanggota
set
nama='"+snama+"',telepon='"+stelepon+"'
,email='"+semail+"',alamat='"+salamat+"',
username='"+susername+"',password='"+s
password+"',status='"+sstatus+"' where
kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+"Sukses Di Ubah");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA SUKSES
DIUBAH");
System.out.println("===============
=============");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,belum konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
}
//-----------------
--------------------------------------
void Cari(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbanggota where
kode='"+skode+"'";
ResultSet cari=sawo.executeQuery(SQLt);
if(cari.next()){
String a=cari.getString("kode");
String aa=cari.getString("nama");
String aaa=cari.getString("telepon");
String aaaa=cari.getString("email");
String aaaaa=cari.getString("alamat");
String
susername=cari.getString("username");
String
spassword=cari.getString("password");
String sstatus=cari.getString("status");
System.out.println("Data detail dengan
kode="+a);
System.out.println("nama="+aa);
System.out.println("telepon="+aaa);
System.out.println("email="+aaaa);
System.out.println("alamat="+aaaaa);
System.out.println("username="+susernam
e);
System.out.println("password="+spassword
);
System.out.println("status="+sstatus);
txtkode.setText(a);
txtnama.setText(aa);
txttelepon.setText(aaa);
txtemail.setText(aaaa);
txtalamat.setText(aaaaa);
txtusername.setText(susername);
txtpassword.setText(spassword);
txtstatus.setText(sstatus);
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+
skode+"Sukses
Di Cari!!!");
txtkode.setEditable(false);
txtnama.requestFocus();
System.out.println("Data anda
kode="+skode+"sukses di cari!!!");
}
else{
JOptionPane.showMessageDialog(null,"Data
tidak Ditemukan");
}
System.out.println("===============
===========================
==============");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
Kesalahan,mungkin database atau tabelnya
belum ada");}
}
//-----------------
--------------------------------
public static void
main(String[]args){
javax.swing.SwingUtilities.invokeLater(new
Runnable(){
public void run(){
Anggota app=new Anggota();
app.lp2maray();
}
});
}
//-----------------
-------------------------------
void Bersih(){
txtkode.setText("");
txtnama.setText("");
txttelepon.setText("");
txtemail.setText("");
txtalamat.setText("");
txtusername.setText("");
txtpassword.setText("");
txtstatus.setText("");
txtkode.requestFocus();
}
//-----------------
------------------------------
void lihatdata(){
try{
hapustabel();
cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbanggota";
ResultSet
cari=sawo.executeQuery(SQLt);
while(cari.next()){
String
sskode=cari.getString("kode");
String
ssnama=cari.getString("nama");
String
sstelepon=cari.getString("telepon");
String
ssemail=cari.getString("email");
String
ssalamat=cari.getString("alamat");
String
ssusername=cari.getString("username");
String
sspassword=cari.getString("password");
String
ssstatus=cari.getString("status");
String[]data={"",sskode,ssnama,sstelepon,s
semail,ssalamat,ssusername,sspassword,sss
tatus};
modelnya.addRow(data);
//
System.out.println(a+"\t"+aa+"\t"+aaa+"\t
"+aaaa+"\t"+aaaaa\t"+susername\t"+spas
sword\t"+sstatus);
System.out.println("----------------
--------------------------");
resetNo();
}
sawo.close();
cery.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek lihat data");
System.out.println("Terjadi
kesalahanAA,mungkin database atau
tabelnya belum ada");}
}
//------------------------------------
-----------------------
void resetNo(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
String
Nomor=String.valueOf(i+1);
modelnya.setValueAt(Nomor,i,0);
}
}
//-------------------------------------
----------------------
void hapustabel(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
modelnya.removeRow(0);
Bersih();
}
}
//-------------------------------------
----------------------
}
public class Utama_SMS extends
javax.swing.JFrame implements
javax.comm.SerialPortEventListener{
String nilaiSerialPort;
String nilaiBitPerSecond;
String nilaiDataBits;
String nilaiParity;
String nilaiStopBit;
String nilaiFlowControl;
String driverJDBC;
String url;
String user;
String password;
public Utama_SMS(String nilaiSerialPort,
String nilaiBitPerSecond,
String nilaiDataBits,
String nilaiParity,
String nilaiStopBit,
String nilaiFlowControl,
String driverJDBC,
String url,
String user,
String password) {
this.nilaiSerialPort = nilaiSerialPort;
this.nilaiBitPerSecond =
nilaiBitPerSecond;
this.nilaiDataBits = nilaiDataBits;
this.nilaiParity = nilaiParity;
this.nilaiStopBit = nilaiStopBit;
this.nilaiFlowControl =
nilaiFlowControl;
this.driverJDBC = driverJDBC;
this.url = url;
this.user = user;
this.password = password;
initComponents();
belumTerhubung();
}
int bufferOffset = 0;
byte[] bacaBuffer = new byte[100000];
int n;
java.io.InputStream input;
public void
serialEvent(javax.comm.SerialPortEvent
event) {
try {
input =
SmitDev.SmsServer.Server.port.getInputStr
eam();
// Apabila ada respons dari
terminal, lakukan pembacaan
while ( (n = input.available()) > 0)
{
n = input.read(bacaBuffer,
bufferOffset, n);
bufferOffset += n;
// Jika ada respons "\15" (Line
Feed Carriage Return),
if ( (bacaBuffer[bufferOffset - 1]
== 10) &&
(bacaBuffer[bufferOffset -
2] == 13)) {
String buffer = new
String(bacaBuffer, 0, bufferOffset - 2);
// Berikan ke methode
terimaResponAT
terimaResponAT(buffer);
bufferOffset = 0;
}
} // Akhir while
} // Akhir try
catch (java.io.IOException e) {
}
}
int Index = 0;
String id_sms = "";
boolean perintah = false;
boolean hasil = false;
boolean imei = false;
boolean bacaSMS = false;
String respons = "";
String nilaiperintah = "Unknow Device";
String nilaihasil= "Unknow Device";
String nilaiIMEI= "Unknow Device";
String nilaiOperator= "Unknow Network";
private void terimaResponAT(String
buffer){
String tanggal_sms = "";
String jam_sms = "";
String tlp_sms = "";
String isi_sms = "";
java.util.StringTokenizer st = new
java.util.StringTokenizer(buffer, "\r\n");
while (st.hasMoreTokens()) {
// mengambil token yang ada pada
obyek
respons = st.nextToken();
tulis_proses(respons);
if (perintah) {
nilaiperintah = respons;
perintah = false;
} else if (hasil) {
nilaihasil = respons;
hasil = false;
} else if (imei) {
nilaiIMEI = respons;
imei = false;
}
// Respon Jika Terminal Sudah
Tersambung
if(respons.startsWith("ATH0")){
sedangTerhubung();
} else if
(respons.startsWith("+COPS:")) {
java.util.regex.Pattern pattern =
java.util.regex.Pattern.compile(",");
String[] hasil =
pattern.split(respons.trim());
nilaiOperator = hasil[2].trim();
} else if
(respons.startsWith("AT+CGMI")) {
perintah = true;
} else if
(respons.startsWith("AT+CGMM")) {
hasil = true;
} else if
(respons.startsWith("AT+CGSN")) {
imei = true;
} else if
(respons.startsWith("+CMGR:")) {
bacaSMS = true;
} else if (bacaSMS) {
try{
SmitDev.SmsServer.Server.terimaSMS(resp
ons.trim());
id_sms =
String.valueOf(Index);
tlp_sms =
SmitDev.SmsServer.Server.noTlpPengirim;
isi_sms =
SmitDev.SmsServer.Server.isiPesanTerima;
new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsMasuk(tlp_sms, isi_sms);
SmitDev.SmsServer.Server.kirimAT("AT+C
MGD=" + id_sms + "\15", 1250);
bacaSMS = false;
} catch (Exception
e){e.getMessage();}
} else if
(respons.startsWith("+CMTI:")) {
java.util.regex.Pattern pattern =
java.util.regex.Pattern.compile(":");
String[] hasil =
pattern.split(respons.trim());
pattern =
java.util.regex.Pattern.compile(",");
hasil =
pattern.split(hasil[1].trim());
Index =
Integer.parseInt(hasil[1].trim());
SmitDev.SmsServer.Server.kirimAT("AT+CP
MS=" + hasil[0].trim() + "\15", 1250);
SmitDev.SmsServer.Server.kirimAT("AT+C
MGR=" + Index + "\15", 1250); // Baca
Pesan Baru yang Masuk
} else if
(respons.startsWith("+CMGS:")) {
tulis_proses("Pesan Berhasil
Dikirim");
new
prosesDatabaseSmsServer(koneksi).update
StatusData(id_Sms_Kirim, "SEND");
this.thKirim.resume();
} else if (respons.startsWith("+CMS
ERROR:")) {
tulis_proses("Pesan GAGAL
Dikirim");
new
prosesDatabaseSmsServer(koneksi).update
StatusData(id_Sms_Kirim, "NO");
this.thKirim.resume();
}
}
}
public void tulis_proses(String data) {
getWaktu();
String waktu = jam + ":" + menit +
":" + detik;
String ddmmyy = tanggal + bulan +
tahun;
data = "\"" + waktu + "\", \"" + data
+ "\"\015";
try {
byte b[] = data.getBytes();
java.io.File outputx = new
java.io.File(ddmmyy +
".SmitDevSmsServer");
java.io.RandomAccessFile random =
new java.io.RandomAccessFile(outputx,
"rw");
random.seek(outputx.length());
random.write(b);
random.close();
} catch (java.io.IOException ex) {
System.out.println(ex);
}
}
javax.swing.table.DefaultTableModel
tabSMSMasuk = new
javax.swing.table.DefaultTableModel(
null, new String[] {"No. Telepon",
"Nama Kontak", "Tanggal", "Jam", "Isi
Pesan", "Status"}){
public boolean isCellEditable(int
iRows, int iCols) {
return false;
}};
javax.swing.table.DefaultTableModel
tabSMSTerkirim = new
javax.swing.table.DefaultTableModel(
null, new String[] {"No.
Telepon", "Nama Kontak", "Tanggal", "Jam",
"Isi Pesan", "Status"}){
public boolean
isCellEditable(int iRows, int iCols) {
return false;
}};
private void initComponents() {
buttonGroup1 = new
javax.swing.ButtonGroup();
panelTengah = new
javax.swing.JPanel();
panelAwal = new
javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
waktuLokal = new
javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
tabelSmsMasukHariIni = new
javax.swing.JTable();
jPanel5 = new javax.swing.JPanel();
jScrollPane2 = new
javax.swing.JScrollPane();
tabelSmsTerkirimHariIni = new
javax.swing.JTable();
jPanel3 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
labelJumlahMasuk = new
javax.swing.JLabel();
jPanel9 = new javax.swing.JPanel();
jLabel7 = new javax.swing.JLabel();
labelSuksesProses = new
javax.swing.JLabel();
jPanel10 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
labelAntriProses = new
javax.swing.JLabel();
jPanel11 = new javax.swing.JPanel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jPanel7 = new javax.swing.JPanel();
jPanel12 = new javax.swing.JPanel();
jLabel11 = new javax.swing.JLabel();
labelJumlahKeluar = new
javax.swing.JLabel();
jPanel13 = new javax.swing.JPanel();
jLabel13 = new javax.swing.JLabel();
labelSuksesTerkirim = new
javax.swing.JLabel();
jPanel14 = new javax.swing.JPanel();
jLabel15 = new javax.swing.JLabel();
labelJumlahAntrianKeluar = new
javax.swing.JLabel();
jPanel15 = new javax.swing.JPanel();
jLabel17 = new javax.swing.JLabel();
labelGagalTerkirim = new
javax.swing.JLabel();
panelAtas = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
panelBawah = new
javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jMenuBar1 = new
javax.swing.JMenuBar();
menuBerkas = new
javax.swing.JMenu();
subMenuKoneksi = new
javax.swing.JMenuItem();
subMenuPutus = new
javax.swing.JMenuItem();
jSeparator1 = new
javax.swing.JSeparator();
subMenuKirimSms = new
javax.swing.JMenuItem();
subMenuPengaturanTerminal = new
javax.swing.JMenuItem();
jSeparator4 = new
javax.swing.JSeparator();
subMenuKeluar = new
javax.swing.JMenuItem();
menuDatabase = new
javax.swing.JMenu();
subMenuSmsMasuk = new
javax.swing.JMenuItem();
subMenuSmsTerkirim = new
javax.swing.JMenuItem();
jSeparator3 = new
javax.swing.JSeparator();
subMenuBukuTelepon = new
javax.swing.JMenuItem();
menuSMSRequest = new
javax.swing.JMenu();
menuInputDataPelanggan = new
javax.swing.JMenuItem();
menuInputDataPajakPembayaran =
new javax.swing.JMenuItem();
menuSystem = new
javax.swing.JMenu();
subMenuKonfigurasi = new
javax.swing.JMenuItem();
subMenuAktivitasSystem = new
javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DO_NOTHING_ON_CLOSE);
setTitle(".:: SMS Monitoring dengan
Database ::.");
setBackground(new
java.awt.Color(255, 255, 255));
setCursor(new
java.awt.Cursor(java.awt.Cursor.DEFAULT_
CURSOR));
setResizable(false);
addWindowListener(new
java.awt.event.WindowAdapter() {
public void
windowClosing(java.awt.event.WindowEvent
evt) {
formWindowClosing(evt);
}
});
panelTengah.setLayout(new
java.awt.GridLayout(1, 0));
panelAwal.setLayout(new
javax.swing.BoxLayout(panelAwal,
javax.swing.BoxLayout.Y_AXIS));
panelAwal.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.R
IGHT, 5, 1));
jPanel1.setBackground(new
java.awt.Color(0, 0, 0));
waktuLokal.setFont(new
java.awt.Font("Dialog", 1, 12));
waktuLokal.setForeground(new
java.awt.Color(255, 255, 255));
waktuLokal.setText("jLabel19");
waktuLokal.setText(SmitDev.SmsServer.Ja
m.getWaktu());
waktu();
jPanel1.add(waktuLokal);
panelAwal.add(jPanel1);
jPanel2.setLayout(new
javax.swing.BoxLayout(jPanel2,
javax.swing.BoxLayout.X_AXIS));
jPanel2.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.setLayout(new
java.awt.GridLayout(1, 0));
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), " SMS
Masuk Hari Ini ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jScrollPane1.setBackground(new
java.awt.Color(255, 255, 255));
jScrollPane1.setBorder(new
javax.swing.border.BevelBorder(javax.swing
.border.BevelBorder.LOWERED));
jScrollPane1.setHorizontalScrollBarPolicy(jav
ax.swing.ScrollPaneConstants.HORIZONTAL
_SCROLLBAR_NEVER);
jScrollPane1.setToolTipText("");
jScrollPane1.setVerticalScrollBarPolicy(javax
.swing.ScrollPaneConstants.VERTICAL_SCR
OLLBAR_ALWAYS);
tabelSmsMasukHariIni.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"
}
));
tabelSmsMasukHariIni.setToolTipText("");
tabelSmsMasukHariIni.setModel(tabSMSMas
uk);
javax.swing.table.TableColumn colx =
this.tabelSmsMasukHariIni.getColumn("No.
Telepon");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(90);
colx =
this.tabelSmsMasukHariIni.getColumn("Tan
ggal");
colx.setWidth(0);
colx.setMinWidth(0);
colx.setMaxWidth(0);
colx =
this.tabelSmsMasukHariIni.getColumn("Jam
");
colx.setWidth(0);
colx.setMinWidth(0);
colx.setMaxWidth(0);
colx =
this.tabelSmsMasukHariIni.getColumn("Nam
a Kontak");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(80);
colx =
this.tabelSmsMasukHariIni.getColumn("Stat
us");
colx.setWidth(40);
colx.setMinWidth(40);
colx.setMaxWidth(50);
this.tabelSmsMasukHariIni.sizeColumnsToFit
(0);
jScrollPane1.setViewportView(tabelSmsMasu
kHariIni);
jPanel4.add(jScrollPane1);
jPanel2.add(jPanel4);
jPanel5.setLayout(new
java.awt.GridLayout(1, 0));
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), " SMS
Keluar Hari Ini ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jScrollPane2.setBackground(new
java.awt.Color(255, 255, 255));
jScrollPane2.setBorder(new
javax.swing.border.BevelBorder(javax.swing
.border.BevelBorder.LOWERED));
jScrollPane2.setHorizontalScrollBarPolicy(jav
ax.swing.ScrollPaneConstants.HORIZONTAL
_SCROLLBAR_NEVER);
jScrollPane2.setToolTipText("");
jScrollPane2.setVerticalScrollBarPolicy(javax
.swing.ScrollPaneConstants.VERTICAL_SCR
OLLBAR_ALWAYS);
tabelSmsTerkirimHariIni.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"
}
));
tabelSmsTerkirimHariIni.setToolTipText("");
tabelSmsTerkirimHariIni.setModel(tabSMSTe
rkirim);
javax.swing.table.TableColumn col =
this.tabelSmsTerkirimHariIni.getColumn("No
. Telepon");
col.setWidth(80);
col.setMinWidth(80);
col.setMaxWidth(90);
col =
this.tabelSmsTerkirimHariIni.getColumn("Ta
nggal");
col.setWidth(0);
col.setMinWidth(0);
col.setMaxWidth(0);
col =
this.tabelSmsTerkirimHariIni.getColumn("Ja
m");
col.setWidth(0);
col.setMinWidth(0);
col.setMaxWidth(0);
col =
this.tabelSmsTerkirimHariIni.getColumn("Na
ma Kontak");
col.setWidth(80);
col.setMinWidth(80);
col.setMaxWidth(80);
col =
this.tabelSmsTerkirimHariIni.getColumn("St
atus");
col.setWidth(40);
col.setMinWidth(40);
col.setMaxWidth(50);
this.tabelSmsTerkirimHariIni.sizeColumnsTo
Fit(0);
jScrollPane2.setViewportView(tabelSmsTerki
rimHariIni);
jPanel5.add(jScrollPane2);
jPanel2.add(jPanel5);
panelAwal.add(jPanel2);
jPanel3.setLayout(new
javax.swing.BoxLayout(jPanel3,
javax.swing.BoxLayout.X_AXIS));
jPanel6.setLayout(new
java.awt.GridLayout(2, 0));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jPanel6.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), " Traffic
SMS Terima Hari ini ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jPanel8.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Jml SMS Masuk :");
jLabel3.setHorizontalTextPosition(javax.swin
g.SwingConstants.RIGHT);
jLabel3.setPreferredSize(new
java.awt.Dimension(102, 16));
jPanel8.add(jLabel3);
labelJumlahMasuk.setText("0");
labelJumlahMasuk.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel8.add(labelJumlahMasuk);
jPanel6.add(jPanel8);
jPanel9.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel9.setBackground(new
java.awt.Color(255, 255, 255));
jLabel7.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel7.setText("Proses Sukses :");
jLabel7.setPreferredSize(new
java.awt.Dimension(103, 16));
jPanel9.add(jLabel7);
labelSuksesProses.setText("0");
labelSuksesProses.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel9.add(labelSuksesProses);
jPanel6.add(jPanel9);
jPanel10.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel10.setBackground(new
java.awt.Color(255, 255, 255));
jLabel5.setBackground(new
java.awt.Color(51, 102, 255));
jLabel5.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel5.setText("Jml Antrian :");
jLabel5.setPreferredSize(new
java.awt.Dimension(102, 16));
jPanel10.add(jLabel5);
labelAntriProses.setText("0");
labelAntriProses.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel10.add(labelAntriProses);
jPanel6.add(jPanel10);
jPanel11.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel11.setBackground(new
java.awt.Color(255, 255, 255));
jLabel9.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel9.setText("Proses Gagal :");
jLabel9.setPreferredSize(new
java.awt.Dimension(103, 16));
jPanel11.add(jLabel9);
jLabel10.setText("0");
jLabel10.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel11.add(jLabel10);
jPanel6.add(jPanel11);
jPanel3.add(jPanel6);
jPanel7.setLayout(new
java.awt.GridLayout(2, 0));
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jPanel7.setBorder(new
javax.swing.border.TitledBorder(new
javax.swing.border.LineBorder(new
java.awt.Color(0, 0, 0), 2, true), " Traffic
SMS Keluar Hari Ini ",
javax.swing.border.TitledBorder.DEFAULT_J
USTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_P
OSITION, new java.awt.Font("Tahoma", 1,
12)));
jPanel12.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel12.setBackground(new
java.awt.Color(255, 255, 255));
jLabel11.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel11.setText("Jml SMS Keluar :");
jLabel11.setPreferredSize(new
java.awt.Dimension(102, 14));
jPanel12.add(jLabel11);
labelJumlahKeluar.setText("0");
labelJumlahKeluar.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel12.add(labelJumlahKeluar);
jPanel7.add(jPanel12);
jPanel13.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel13.setBackground(new
java.awt.Color(255, 255, 255));
jLabel13.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel13.setText("Suskses Terkirim
:");
jLabel13.setPreferredSize(new
java.awt.Dimension(103, 14));
jPanel13.add(jLabel13);
labelSuksesTerkirim.setText("0");
labelSuksesTerkirim.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel13.add(labelSuksesTerkirim);
jPanel7.add(jPanel13);
jPanel14.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel14.setBackground(new
java.awt.Color(255, 255, 255));
jLabel15.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel15.setText("Jml Antrian :");
jLabel15.setPreferredSize(new
java.awt.Dimension(102, 16));
jPanel14.add(jLabel15);
labelJumlahAntrianKeluar.setText("0");
labelJumlahAntrianKeluar.setPreferredSize(n
ew java.awt.Dimension(40, 16));
jPanel14.add(labelJumlahAntrianKeluar);
jPanel7.add(jPanel14);
jPanel15.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel15.setBackground(new
java.awt.Color(255, 255, 255));
jLabel17.setHorizontalAlignment(javax.swin
g.SwingConstants.RIGHT);
jLabel17.setText("Gagal Terkirim :");
jLabel17.setPreferredSize(new
java.awt.Dimension(103, 16));
jPanel15.add(jLabel17);
labelGagalTerkirim.setText("0");
labelGagalTerkirim.setPreferredSize(new
java.awt.Dimension(40, 16));
jPanel15.add(labelGagalTerkirim);
jPanel7.add(jPanel15);
jPanel3.add(jPanel7);
panelAwal.add(jPanel3);
panelTengah.add(panelAwal);
getContentPane().add(panelTengah,
java.awt.BorderLayout.CENTER);
panelAtas.setBackground(new
java.awt.Color(0, 0, 0));
panelAtas.setForeground(new
java.awt.Color(102, 255, 0));
jLabel1.setFont(new
java.awt.Font("DialogInput", 1, 24));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Network Monitoring
Berbasis SMS LKC");
panelAtas.add(jLabel1);
getContentPane().add(panelAtas,
java.awt.BorderLayout.NORTH);
panelBawah.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 0));
panelBawah.setBorder(new
javax.swing.border.BevelBorder(javax.swing
.border.BevelBorder.LOWERED));
jLabel2.setFont(new
java.awt.Font("Dialog", 1, 12));
jLabel2.setText("Belum Terhubung");
panelBawah.add(jLabel2);
getContentPane().add(panelBawah,
java.awt.BorderLayout.SOUTH);
menuBerkas.setText("Berkas");
subMenuKoneksi.setText("Koneksi
Terminal");
subMenuKoneksi.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuKoneksiActionPerformed(evt);
}
});
menuBerkas.add(subMenuKoneksi);
subMenuPutus.setText("Putus
Terminal");
subMenuPutus.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuPutusActionPerformed(evt);
}
});
menuBerkas.add(subMenuPutus);
menuBerkas.add(jSeparator1);
subMenuKirimSms.setText("Kirim
SMS");
subMenuKirimSms.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuKirimSmsActionPerformed(evt);
}
});
menuBerkas.add(subMenuKirimSms);
subMenuPengaturanTerminal.setText("Peng
aturan Terminal");
subMenuPengaturanTerminal.addActionListe
ner(new java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuPengaturanTerminalActionPerforme
d(evt);
}
});
menuBerkas.add(subMenuPengaturanTermi
nal);
menuBerkas.add(jSeparator4);
subMenuKeluar.setText("Keluar");
subMenuKeluar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuKeluarActionPerformed(evt);
}
});
menuBerkas.add(subMenuKeluar);
jMenuBar1.add(menuBerkas);
menuDatabase.setText("Database");
subMenuSmsMasuk.setText("SMS
Masuk");
subMenuSmsMasuk.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuSmsMasukActionPerformed(evt);
}
});
menuDatabase.add(subMenuSmsMasuk);
subMenuSmsTerkirim.setText("SMS
Keluar");
subMenuSmsTerkirim.addActionListener(ne
w java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuSmsTerkirimActionPerformed(evt);
}
});
menuDatabase.add(subMenuSmsTerkirim);
menuDatabase.add(jSeparator3);
subMenuBukuTelepon.setText("Buku
Telepon");
subMenuBukuTelepon.addActionListener(ne
w java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuBukuTeleponActionPerformed(evt);
}
});
menuDatabase.add(subMenuBukuTelepon);
jMenuBar1.add(menuDatabase);
menuSMSRequest.setText(" SMS
Request");
menuInputDataPelanggan.setText("Proses
Monitoring");
menuInputDataPelanggan.addActionListener
(new java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
menuInputDataPelangganActionPerformed(e
vt);
}
});
menuSMSRequest.add(menuInputDataPelan
ggan);
menuInputDataPajakPembayaran.setText("I
nput Data Pajak Pembayaran");
menuInputDataPajakPembayaran.addAction
Listener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
menuInputDataPajakPembayaranActionPerf
ormed(evt);
}
});
//menuSMSRequest.add(menuInputDataPaj
akPembayaran);
jMenuBar1.add(menuSMSRequest);
menuSystem.setText("System");
subMenuKonfigurasi.setText("Konfigurasi
Perangkat");
subMenuKonfigurasi.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuKonfigurasiActionPerformed(evt);
}
});
menuSystem.add(subMenuKonfigurasi);
subMenuAktivitasSystem.setText("Aktivitas
System");
subMenuAktivitasSystem.addActionListener(
new java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
subMenuAktivitasSystemActionPerformed(ev
t);
}
});
menuSystem.add(subMenuAktivitasSystem)
;
jMenuBar1.add(menuSystem);
setJMenuBar(jMenuBar1);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-800)/2,
(screenSize.height-600)/2, 800, 600);
}
private void
menuInputDataPajakPembayaranActionPerf
ormed(java.awt.event.ActionEvent evt) {
// new JIP(koneksi,
tahun).setVisible(true);
}
private void
menuInputDataPelangganActionPerformed(j
ava.awt.event.ActionEvent evt) {
new
Konfigurasi().setVisible(true);//AplikasiUji
}
private void
subMenuKonfigurasiActionPerformed(java.a
wt.event.ActionEvent evt) {
new
jendelaKonfigurasiPerangkat(nilaiperintah,
nilaihasil, nilaiIMEI,
nilaiOperator).setVisible(true);
}
private void
subMenuSmsTerkirimActionPerformed(java.
awt.event.ActionEvent evt) {
new
jendelaSmsKeluar(koneksi).setVisible(true);
}
private void
subMenuAktivitasSystemActionPerformed(ja
va.awt.event.ActionEvent evt) {
new
jendelaAktivitasSystem().setVisible(true);
}
private void
subMenuSmsMasukActionPerformed(java.aw
t.event.ActionEvent evt) {
new
jendelaSmsMasuk(koneksi).setVisible(true);
}
private void
subMenuPengaturanTerminalActionPerforme
d(java.awt.event.ActionEvent evt) {
this.dispose();
setting.setVisible(true);
}
private void
subMenuKirimSmsActionPerformed(java.awt
.event.ActionEvent evt) {
new jendelaKirimSms(koneksi, "",
"").setVisible(true);
}
private void
subMenuBukuTeleponActionPerformed(java.
awt.event.ActionEvent evt) {
new jendelaBukuTelepon(koneksi, "",
"", "").setVisible(true);
}
private void
subMenuPutusActionPerformed(java.awt.eve
nt.ActionEvent evt) {
SmitDev.SmsServer.Server.tutupTerminal()
;
tulis_proses("Pemutusan Terminal");
tulis_proses("Serial Port Ditutup");
belumTerhubung();
}
private void
subMenuKoneksiActionPerformed(java.awt.e
vent.ActionEvent evt) {
tulis_proses("");
tulis_proses(
"------------------------------------
--------------------------------");
tulis_proses("New Session");
tulis_proses(
"------------------------------------
--------------------------------");
koneksiDatabase();
}
java.sql.Connection koneksi = null;
private void koneksiDatabase(){
boolean driver = false;
try {
// Penyambungan Driver
Class.forName(this.driverJDBC);
tulis_proses("Mencoba Loading
Driver JDBC");
tulis_proses(this.driverJDBC);
driver = true;
// Apabila Kelas Driver Tidak
Ditemukan
} catch (ClassNotFoundException not)
{
SmitDev.SmsServer.Server.proses_Gagal("
Sms Server Error", "Tidak Menemukan
Driver -- " + this.driverJDBC +
"\n" + not.getMessage());
tulis_proses("Tidak Menemukan
Driver -- " + this.driverJDBC + "\n"+
not.getMessage());
}
if (driver == true) {
tulis_proses("Loading Driver JDBC
Sukses");
tulis_proses("Mencoba melakukan
sambungan dengan Database Server");
try {
tulis_proses(url);
koneksi =
java.sql.DriverManager.getConnection(url,
user, password);
tulis_proses("Koneksi Database
Server Sukses");
koneksiPerangkat();
// sedangTerhubung(); // Only
Testing
} // Akhir try
// Apabila Gagal melakukan
penyambungan Database
catch (java.sql.SQLException sqln)
{
SmitDev.SmsServer.Server.proses_Gagal("
Sms Server Error", "Gagal Koneksi Database
-- " + sqln.getMessage());
tulis_proses("Gagal Koneksi
Database -- " + sqln.getMessage());
}
}
}
private void koneksiPerangkat(){
SmitDev.SmsServer.Server.koneksiTerminal
(nilaiSerialPort, nilaiBitPerSecond,
nilaiDataBits, nilaiParity, nilaiStopBit,
nilaiFlowControl);
try {
SmitDev.SmsServer.Server.port.addEventLi
stener(this);
} //Akhir try addEvenListener
catch
(java.util.TooManyListenersException tmle)
{
System.out.print(tmle.getMessage());
}
SmitDev.SmsServer.Server.kirimAT("ATE1"
+ "\15", 1000); // Merek
SmitDev.SmsServer.Server.kirimAT("AT+CN
MI=1,1,2,2,1" + "\15", 1250);
SmitDev.SmsServer.Server.kirimAT("AT+CG
MI" + "\15", 1000); // Merek
SmitDev.SmsServer.Server.kirimAT("AT+CG
MM" + "\15", 1000); // Seri
SmitDev.SmsServer.Server.kirimAT("AT+CG
SN" + "\15", 1000); // IMEI
SmitDev.SmsServer.Server.kirimAT("AT+CO
PS?" + "\15", 1000); // Network
SmitDev.SmsServer.Server.kirimAT("ATH0"
+ "\15", 500);
}
private void belumTerhubung(){
menuDatabase.setEnabled(false);
subMenuKoneksi.setEnabled(true);
subMenuKirimSms.setEnabled(false);
subMenuPutus.setEnabled(false);
subMenuPengaturanTerminal.setEnabled(tru
e);
subMenuKonfigurasi.setEnabled(false);
jLabel2.setText("Belum Terhubung");
jLabel2.setForeground(java.awt.Color.RED);
menuSMSRequest.setEnabled(false);
}
ThreadPeriksaDataSmsKeluar thKirim=
new ThreadPeriksaDataSmsKeluar();
ThreadPeriksaDataSmsMasuk thTerima=
new ThreadPeriksaDataSmsMasuk();
private void sedangTerhubung(){
menuDatabase.setEnabled(true);
subMenuKoneksi.setEnabled(false);
subMenuKirimSms.setEnabled(true);
subMenuPutus.setEnabled(true);
subMenuPengaturanTerminal.setEnabled(fal
se);
subMenuKonfigurasi.setEnabled(true);
jLabel2.setText("Sedang Terhubung");
jLabel2.setForeground(java.awt.Color.BLUE)
;
menuSMSRequest.setEnabled(true);
javax.swing.JOptionPane.showMessageDialo
g(null,
"Selamat !!!\nSMS Server
Berhasil Terhubung");
tulis_proses("Terminal Berhasil
Terhubung");
tulis_proses("");
if(!thTerima.isAlive()){
thKirim.start();
thTerima.start();
}
tampilTabelSmsKeluar();
tampilTabelSmsMasuk();
}
private void waktu(){
java.awt.event.ActionListener
taskPerformer = new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
waktuLokal.setText(SmitDev.SmsServer.Ja
m.getWaktu());
}
};
// Timer
new javax.swing.Timer(1000,
taskPerformer).start();
}
String tahun;
String bulan;
String tanggal;
String jam;
String menit;
String detik;
private void getWaktu(){
String tgl_nol = "";
String bln_nol = "";
// Mengambil Waktu sekarang
java.util.Calendar dt =
java.util.Calendar.getInstance();
int tgl =
dt.get(java.util.Calendar.DAY_OF_MONTH);
int bln =
dt.get(java.util.Calendar.MONTH)+1;
int thn =
dt.get(java.util.Calendar.YEAR);
// Apabila nilai tanggal lebih kecil dari 10
if (tgl < 10) {
tgl_nol = "0";
}
if (bln < 10) {
bln_nol = "0";
}
// Membuat String Tanggal dan Tahun
tanggal = tgl_nol +
Integer.toString(tgl);
bulan = bln_nol +
Integer.toString(bln);
tahun = Integer.toString(thn);
//**********************************
**********
String nol_jam = "";
String nol_menit = "";
String nol_detik = "";
// Membuat Date
// Mengambil nilaj JAM, MENIT, dan
DETIK Sekarang
int nilai_jam =
dt.get(java.util.Calendar.HOUR_OF_DAY);
int nilai_menit =
dt.get(java.util.Calendar.MINUTE);
int nilai_detik =
dt.get(java.util.Calendar.SECOND);
// Jika nilai JAM lebih kecil dari 10
(hanya 1 digit)
if (nilai_jam <= 9) {
// Tambahkan "0" didepannya
nol_jam = "0";
}
// Jika nilai MENIT lebih kecil dari 10
(hanya 1 digit)
if (nilai_menit <= 9) {
// Tambahkan "0" didepannya
nol_menit = "0";
}
// Jika nilai DETIK lebih kecil dari 10
(hanya 1 digit)
if (nilai_detik <= 9) {
// Tambahkan "0" didepannya
nol_detik = "0";
}
// Keadaan Waktu Sekarang
// Membuat String JAM, MENIT, DETIK
jam = nol_jam +
Integer.toString(nilai_jam);
menit = nol_menit +
Integer.toString(nilai_menit);
detik = nol_detik +
Integer.toString(nilai_detik);
}
private void
formWindowClosing(java.awt.event.Window
Event evt) {
keluar();
}
private void
subMenuKeluarActionPerformed(java.awt.ev
ent.ActionEvent evt) {
keluar();
}
private void keluar(){
if (this.subMenuKoneksi.isEnabled()){
int n =
javax.swing.JOptionPane.showConfirmDialog
(null, "Anda Ingin Keluar dari Aplikasi ini ?",
"Keluar Aplikasi",
javax.swing.JOptionPane.YES_NO_OPTION);
if(n == 0){
System.exit(1);
}
} else {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Opss.. Aplikasi Belum bisa
ditutup\nSilahkan lakukan pemutusan
terminal terlebih dahulu\nsebelum menutup
aplikasi ini");
}
}
private void tampilTabelSmsMasuk() {
int row =
tabSMSMasuk.getRowCount();
for (int i = 0; i < row; i++) {
tabSMSMasuk.removeRow(0);
}
getWaktu();
String tanggal_hari_ini = tanggal+"-
"+bulan+"-"+tahun;
String sql =
"SELECT COUNT(id_MASUK) as
jml FROM SMS_MASUK WHERE
tanggal_MASUK = '"+tanggal_hari_ini+"'";
String sql2 = "SELECT * FROM
SMS_MASUK WHERE tanggal_MASUK =
'"+tanggal_hari_ini+"' ORDER BY
TANGGAL_MASUK DESC , JAM_MASUK
DESC";
String sql3 =
"SELECT COUNT(id_MASUK) as
jml2 FROM SMS_MASUK WHERE
status_MASUK = 'WAIT' AND
TANGGAL_MASUK =
'"+tanggal_hari_ini+"'";
String jml_all = "";
String jml_antri = "";
try {
// SQL
java.sql.Statement stat =
koneksi.createStatement();
java.sql.Statement statu =
koneksi.createStatement();
try {
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while (rSet.next()) {
jml_all =
rSet.getString("jml");
this.labelJumlahMasuk.setText(jml_all);
} // Akhir while
java.sql.ResultSet rSt =
stat.executeQuery(sql2);
while (rSt.next()) {
String no =
rSt.getString("NO_TELEPON_MASUK");
String psn =
rSt.getString("ISI_PESAN_MASUK");
String sts =
rSt.getString("STATUS_MASUK");
String time =
rSt.getString("JAM_MASUK");
String tg =
rSt.getString("TANGGAL_MASUK");
String nama =
"";//085279959497 :+6285279959498
String sqlKontak = "SELECT *
FROM data_buku_telepon WHERE
nomor_telepon like
'%"+no.substring(3,4)+"%'";
java.sql.ResultSet rStN =
statu.executeQuery(sqlKontak);
if (rStN.next()) {
nama =
rStN.getString("NAMA_KONTAK");
}
Object[] data = {no, nama,
tg, time, psn, sts};
tabSMSMasuk.addRow(data);
int adi =
this.tabelSmsMasukHariIni.getRowCount();
}
java.sql.ResultSet rSet2 =
stat.executeQuery(sql3);
while (rSet2.next()) {
jml_antri =
rSet2.getString("jml2");
this.labelAntriProses.setText(jml_antri);
this.labelSuksesProses.setText(String.value
Of(Integer.parseInt(jml_all) -
Integer.parseInt(jml_antri)));
} // Akhir while
} // Akhir try
catch (java.sql.SQLException e) {
tulis_proses(e.getMessage());
e.printStackTrace();
}
// Menutup Statement
} // Akhir try
catch (Exception e) {
System.out.println(e.getMessage()
+ " tampil_kirim");
}
}
private void tampilTabelSmsKeluar() {
int row =
tabSMSTerkirim.getRowCount();
for (int i = 0; i < row; i++) {
tabSMSTerkirim.removeRow(0);
}
getWaktu();
String tanggal_hari_ini = tanggal+"-
"+bulan+"-"+tahun;
String sql =
"SELECT COUNT(id_KELUAR) as
jml FROM SMS_KELUAR WHERE
tanggal_KELUAR = '"+tanggal_hari_ini+"'";
String sql2 = "SELECT * FROM
SMS_keluar WHERE tanggal_KELUAR =
'"+tanggal_hari_ini+"' ORDER BY
TANGGAL_KELUAR DESC , JAM_KELUAR
DESC ";
String sql3 =
"SELECT COUNT(id_KELUAR) as
jml2 FROM SMS_keluar WHERE
status_KELUAR = 'WAIT' AND
TANGGAL_KELUAR =
'"+tanggal_hari_ini+"'";
String sql4 =
"SELECT COUNT(id_KELUAR) as
jml3 FROM SMS_keluar WHERE
status_KELUAR = 'SEND' AND
TANGGAL_KELUAR =
'"+tanggal_hari_ini+"'";
String sql5 =
"SELECT COUNT(id_KELUAR) as
jml4 FROM SMS_keluar WHERE
status_KELUAR = 'NO' AND
TANGGAL_KELUAR =
'"+tanggal_hari_ini+"'";
String jml_all = "";
String jml_antri = "";
try {
// SQL
java.sql.Statement stat =
koneksi.createStatement();
java.sql.Statement statu =
koneksi.createStatement();
try {
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while (rSet.next()) {
jml_all =
rSet.getString("jml");
this.labelJumlahKeluar.setText(jml_all);
} // Akhir while
java.sql.ResultSet rSt =
stat.executeQuery(sql2);
while (rSt.next()) {
String no =
rSt.getString("NO_TELEPON_KELUAR");
String psn =
rSt.getString("ISI_PESAN_KELUAR");
String sts =
rSt.getString("STATUS_KELUAR");
String time =
rSt.getString("JAM_KELUAR");
String tg =
rSt.getString("TANGGAL_KELUAR");
String nama = "";
String sqlKontak = "SELECT *
FROM data_buku_telepon WHERE
nomor_telepon = '"+no+"'";
java.sql.ResultSet rStN =
statu.executeQuery(sqlKontak);
if (rStN.next()) {
nama =
rStN.getString("NAMA_KONTAK");
}
Object[] data = {no, nama,
tg, time, psn, sts};
tabSMSTerkirim.addRow(data);
int adi =
this.tabelSmsTerkirimHariIni.getRowCount()
;
}
java.sql.ResultSet rSet2 =
stat.executeQuery(sql3);
while (rSet2.next()) {
jml_antri =
rSet2.getString("jml2");
this.labelJumlahAntrianKeluar.setText(jml_a
ntri);
} // Akhir while
java.sql.ResultSet rSet3 =
stat.executeQuery(sql4);
while (rSet3.next()) {
String jml_suk =
rSet3.getString("jml3");
this.labelSuksesTerkirim.setText(jml_suk);
} // Akhir while
java.sql.ResultSet rSet4 =
stat.executeQuery(sql5);
while (rSet4.next()) {
String jml_gal =
rSet4.getString("jml4");
this.labelGagalTerkirim.setText(jml_gal);
} // Akhir while
} // Akhir try
catch (java.sql.SQLException e) {
tulis_proses(e.getMessage());
e.printStackTrace();
}
// Menutup Statement
} // Akhir try
catch (Exception e) {
System.out.println(e.getMessage()
+ " tampil_kirim");
}
}
/**
* @param args the command line
arguments
*/
static pengaturan_Terminal setting =
new pengaturan_Terminal(true);
public static void main(String args[]) {
try {
javax.swing.UIManager.setLookAndFeel("co
m.stefankrause.xplookandfeel.XPLookAndFe
el");
} catch (Exception e) {
e.printStackTrace();
}
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
setting.tampilanGUI();
setting.setVisible(true);
}
});
}
public void periksaDataSmsMasuk() {
getWaktu();
String tanggal_hari_ini = tanggal+"-
"+bulan+"-"+tahun;
try {
if (koneksi.isClosed()) {
// System.out.println("koneksi
terima null");
} else {
try {
String sqljml = "SELECT
COUNT(id_masuk) as jmlnya FROM
SMS_MASUK WHERE tanggal_masuk =
'"+tanggal_hari_ini+"'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sqljml);
java.sql.ResultSet rs =
pStatement.executeQuery();
while (rs.next()) {
String jm2 =
rs.getString("jmlnya");
if
(jm2.equalsIgnoreCase(this.labelJumlahMas
uk.getText())) {
} else {
tampilTabelSmsMasuk();
}
}
rs.close();
} catch (java.sql.SQLException
ex) {
tulis_proses(ex.getMessage());
}
try {
String sqljml = "SELECT
COUNT(id_masuk) as jmlnya FROM
SMS_MASUK WHERE status_masuk = 'ok'
AND tanggal_masuk =
'"+tanggal_hari_ini+"'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sqljml);
java.sql.ResultSet rs =
pStatement.executeQuery();
while (rs.next()) {
String jm2 =
rs.getString("jmlnya");
if
(jm2.equalsIgnoreCase(this.labelSuksesPros
es.getText())) {
} else {
tampilTabelSmsMasuk();
}
}
rs.close();
} catch (java.sql.SQLException
ex) {
tulis_proses(ex.getMessage());
}
try {
// Statement SQL
String sql ="Select * From
SMS_MASUK Where STATUS_MASUK =
'WAIT'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sql);
try {
java.sql.ResultSet rSet =
pStatement.executeQuery();
while (rSet.next()) {
// Mengambil data dari
tabel TERIMA
String dataId =
rSet.getString("ID_MASUK"); // ID Pesan
String dataNotlp =
rSet.getString("NO_TELEPON_MASUK"); //
Nomer Telepon Pengirim
String dataPesan =
rSet.getString("ISI_PESAN_MASUK"); // Isi
Pesan
new
prosesDatabaseSmsServer(koneksi).prosesT
abelMasuk(dataId, dataNotlp, dataPesan);
}
pStatement.close();
rSet.close();
} catch (Exception ie) {
}
} catch (Exception e) {
}
}
} catch (Exception ex1) {
}
}
String id_Sms_Kirim = "0";
public void periksaDataSmsKeluar() {
getWaktu();
String tanggal_hari_ini = tanggal+"-
"+bulan+"-"+tahun;
try {
if (koneksi.isClosed()) {
// System.out.println("koneksi
terima null");
} else {
try {
String sqljml = "SELECT
COUNT(id_KELUAR) as jmlnya FROM
SMS_KELUAR WHERE tanggal_KELUAR =
'"+tanggal_hari_ini+"'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sqljml);
java.sql.ResultSet rs =
pStatement.executeQuery();
while (rs.next()) {
String jm2 =
rs.getString("jmlnya");
if
(jm2.equalsIgnoreCase(this.labelJumlahKelu
ar.getText())) {
} else {
tampilTabelSmsKeluar();
}
}
rs.close();
} catch (java.sql.SQLException
ex) {
tulis_proses(ex.getMessage());
}
try {
String sqljml = "SELECT
COUNT(id_KELUAR) as jmlnya FROM
SMS_KELUAR WHERE status_KELUAR =
'SEND' AND tanggal_KELUAR =
'"+tanggal_hari_ini+"'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sqljml);
java.sql.ResultSet rs =
pStatement.executeQuery();
while (rs.next()) {
String jm2 =
rs.getString("jmlnya");
if
(jm2.equalsIgnoreCase(this.labelSuksesTerk
irim.getText())) {
} else {
tampilTabelSmsKeluar();
}
}
rs.close();
} catch (java.sql.SQLException
ex) {
tulis_proses(ex.getMessage());
}
}
} catch (Exception ex1) {
}
}
public void periksaDataSiapKirim(){
try {
// Statement SQL
String sql =
"Select * From SMS_KELUAR
Where STATUS_KELUAR = 'WAIT'";
java.sql.PreparedStatement
pStatement =
koneksi.prepareStatement(sql);
System.out.println("sql="+sql);
try {
java.sql.ResultSet rSet =
pStatement.executeQuery();
while (rSet.next()) {
// Mengambil data dari tabel
TERIMA
String dataId =
rSet.getString("ID_KELUAR"); // ID Pesan
String dataNotlp =
rSet.getString("NO_TELEPON_KELUAR"); //
Nomer Telepon Pengirim
String dataPesan =
rSet.getString("ISI_PESAN_KELUAR"); // Isi
Pesan
id_Sms_Kirim = dataId;
prosesKirimSms(dataNotlp,
dataPesan);
}
pStatement.close();
rSet.close();
} catch (Exception ie) {
}
} catch (Exception e) {
}
}
public void prosesKirimSms(String notlp,
String pesan) {
new
prosesDatabaseSmsServer(koneksi).update
StatusData(id_Sms_Kirim, "PROCESS");
String nop = notlp;
if (notlp.startsWith("0")) {
nop = notlp.replaceFirst("0", "62");
}
try {
String pesanPDUKirim =
SmitDev.SmsServer.formatPDU.PduKirimSm
s(nop.trim(), pesan.trim(), false);
// Proses Mengirim Pesan
SmitDev.SmsServer.Server.kirimAT("AT+C
MGS=" + (pesanPDUKirim.length() / 2) +
"\15", 500);
SmitDev.SmsServer.Server.kirimAT("00" +
pesanPDUKirim, 2500); // Kirim Pesan
Format PDU
SmitDev.SmsServer.Server.kirimAT("\032",
100); // Ctrl + Z
this.thKirim.suspend();
} catch (Exception e) {}
System.out.println("sql=SUKSES
KIRIM");
}
// Akhir Methode prosesKirimSms
//
***********************************
***********************************
// Class Untuk Selalu memanggil
methode ambilDataMasuk()
class ThreadPeriksaDataSmsMasuk
extends Thread {
public ThreadPeriksaDataSmsMasuk()
{
this.setDaemon(true);
}
public void run() {
while (true) {
periksaDataSmsMasuk();
periksaDataSmsKeluar();
try {
Thread.sleep(1000);
} catch (InterruptedException e)
{}
}
}
}
//
***********************************
***********************************
// Class Untuk Selalu memanggil
methode ambilDataKeluar()
class ThreadPeriksaDataSmsKeluar
extends Thread {
public ThreadPeriksaDataSmsKeluar()
{
this.setDaemon(true);
}
public void run() {
while (true) {
periksaDataSiapKirim();
try {
Thread.sleep(1500);
} catch (InterruptedException e)
{}
}
}
}
// Variables declaration - do not modify
private javax.swing.ButtonGroup
buttonGroup1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel9;
private javax.swing.JMenuBar
jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel13;
private javax.swing.JPanel jPanel14;
private javax.swing.JPanel jPanel15;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JScrollPane
jScrollPane2;
private javax.swing.JSeparator
jSeparator1;
private javax.swing.JSeparator
jSeparator3;
private javax.swing.JSeparator
jSeparator4;
private javax.swing.JLabel
labelAntriProses;
private javax.swing.JLabel
labelGagalTerkirim;
private javax.swing.JLabel
labelJumlahAntrianKeluar;
private javax.swing.JLabel
labelJumlahKeluar;
private javax.swing.JLabel
labelJumlahMasuk;
private javax.swing.JLabel
labelSuksesProses;
private javax.swing.JLabel
labelSuksesTerkirim;
private javax.swing.JMenu menuBerkas;
private javax.swing.JMenu
menuDatabase;
private javax.swing.JMenuItem
menuInputDataPajakPembayaran;
private javax.swing.JMenuItem
menuInputDataPelanggan;
private javax.swing.JMenu
menuSMSRequest;
private javax.swing.JMenu menuSystem;
private javax.swing.JPanel panelAtas;
private javax.swing.JPanel panelAwal;
private javax.swing.JPanel panelBawah;
private javax.swing.JPanel panelTengah;
private javax.swing.JMenuItem
subMenuAktivitasSystem;
private javax.swing.JMenuItem
subMenuBukuTelepon;
private javax.swing.JMenuItem
subMenuKeluar;
private javax.swing.JMenuItem
subMenuKirimSms;
private javax.swing.JMenuItem
subMenuKoneksi;
private javax.swing.JMenuItem
subMenuKonfigurasi;
private javax.swing.JMenuItem
subMenuPengaturanTerminal;
private javax.swing.JMenuItem
subMenuPutus;
private javax.swing.JMenuItem
subMenuSmsMasuk;
private javax.swing.JMenuItem
subMenuSmsTerkirim;
private javax.swing.JTable
tabelSmsMasukHariIni;
private javax.swing.JTable
tabelSmsTerkirimHariIni;
private javax.swing.JLabel waktuLokal;
}
public class jendelaBukuTelepon extends
javax.swing.JFrame {
java.awt.CardLayout cardTengah = new
java.awt.CardLayout();
java.awt.CardLayout cardTombol = new
java.awt.CardLayout();
public
jendelaBukuTelepon(java.sql.Connection
koneksi) {
this.koneksi = koneksi;
initComponents();
awal();
}
java.sql.Connection koneksi = null;
String notlp ="";
String namaKontak ="";
String Alamat = "";
public
jendelaBukuTelepon(java.sql.Connection
koneksi, String notlp, String namaKontak,
String Alamat) {
this.notlp = notlp;
this.namaKontak = namaKontak;
this.Alamat = Alamat;
this.koneksi = koneksi;
initComponents();
awal();
tampilTabelBukuTelepon();
}
String temp = "";
public
jendelaBukuTelepon(java.sql.Connection
koneksi, String temp) {
this.koneksi = koneksi;
initComponents();
this.temp = temp;
tampilTabelBukuTelepon();
}
private void awal(){
this.dataNomorTelepon.setText(notlp);
this.dataNamaKontak.setText(namaKontak)
;
this.dataAlamat.setText(Alamat);
}
private void tampilTabelBukuTelepon(){
int row = tabBuku.getRowCount();
for (int i = 0; i < row; i++){
tabBuku.removeRow(0);
}
String sql = "SELECT * FROM
data_buku_telepon";
try{
java.sql.Statement stat =
koneksi.createStatement();
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while(rSet.next()){
String no =
rSet.getString("nomor_telepon");
String nama =
rSet.getString("nama_kontak");
String alamat =
rSet.getString("alamat");
String[] data = {no, nama,
alamat};
this.tabBuku.addRow(data);
}
} catch(Exception e){}
}
javax.swing.table.DefaultTableModel
tabBuku = new
javax.swing.table.DefaultTableModel(
null, new String[] {"No. Telepon",
"Nama Kontak", "Alamat"}){
public boolean isCellEditable(int
iRows, int iCols) {
return false;
}};
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel13 = new javax.swing.JPanel();
jPanel14 = new javax.swing.JPanel();
jPanel15 = new javax.swing.JPanel();
jPanel16 = new javax.swing.JPanel();
jPanel5 = new javax.swing.JPanel();
jPanel10 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
dataNomorTelepon = new
javax.swing.JTextField();
jPanel7 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
dataNamaKontak = new
javax.swing.JTextField();
jPanel8 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
dataAlamat = new
javax.swing.JTextField();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jPanel11 = new javax.swing.JPanel();
jButton2 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
jPanel12 = new javax.swing.JPanel();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jPanel9 = new javax.swing.JPanel();
jButton8 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Buku Telepon");
jPanel1.setLayout(new
java.awt.CardLayout());
jPanel1.setLayout(cardTengah);
jPanel4.setLayout(new
java.awt.BorderLayout());
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
jTable1.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"
}
));
jTable1.setModel(tabBuku);
javax.swing.table.TableColumn colx =
this.jTable1.getColumn("No. Telepon");
colx.setWidth(100);
colx.setMinWidth(100);
colx.setMaxWidth(100);
colx = this.jTable1.getColumn("Nama
Kontak");
colx.setWidth(130);
colx.setMinWidth(130);
colx.setMaxWidth(130);
this.jTable1.sizeColumnsToFit(0);
jScrollPane1.setViewportView(jTable1);
jPanel4.add(jScrollPane1,
java.awt.BorderLayout.CENTER);
jPanel13.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.add(jPanel13,
java.awt.BorderLayout.NORTH);
jPanel14.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.add(jPanel14,
java.awt.BorderLayout.SOUTH);
jPanel15.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.add(jPanel15,
java.awt.BorderLayout.EAST);
jPanel16.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.add(jPanel16,
java.awt.BorderLayout.WEST);
jPanel1.add(jPanel4, "panelTabel");
jPanel5.setLayout(new
java.awt.GridLayout(7, 0));
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
jPanel10.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.add(jPanel10);
jPanel6.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jPanel6.setPreferredSize(new
java.awt.Dimension(121, 32));
jLabel2.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel2.setText("Nomor Telepon :");
jLabel2.setPreferredSize(new
java.awt.Dimension(100, 16));
jPanel6.add(jLabel2);
dataNomorTelepon.setDocument(SmitDev.S
msServer.saring_karakter.setAllOnlyDigit())
;
dataNomorTelepon.setPreferredSize(new
java.awt.Dimension(200, 22));
jPanel6.add(dataNomorTelepon);
jPanel5.add(jPanel6);
jPanel7.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Nama Kontak :");
jLabel3.setPreferredSize(new
java.awt.Dimension(100, 16));
jPanel7.add(jLabel3);
dataNamaKontak.setPreferredSize(new
java.awt.Dimension(200, 22));
jPanel7.add(dataNamaKontak);
jPanel5.add(jPanel7);
jPanel8.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jLabel4.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel4.setText("Alamat :");
jLabel4.setPreferredSize(new
java.awt.Dimension(100, 16));
jPanel8.add(jLabel4);
dataAlamat.setPreferredSize(new
java.awt.Dimension(200, 22));
jPanel8.add(dataAlamat);
jPanel5.add(jPanel8);
jPanel1.add(jPanel5, "panelData");
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Dialog", 1, 14));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Buku Telepon");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jPanel3.setLayout(new
java.awt.CardLayout());
jPanel3.setLayout(cardTombol);
jPanel11.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 10));
jButton2.setText("Tambah Data
Baru");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel11.add(jButton2);
jButton7.setText("Kirim SMS");
jButton7.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton7ActionPerformed(evt);
}
});
jPanel11.add(jButton7);
jButton3.setText("Hapus Data");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton3ActionPerformed(evt);
}
});
jPanel11.add(jButton3);
jButton1.setText("Tutup Jendela");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel11.add(jButton1);
jPanel3.add(jPanel11,
"tombolPanelTabel");
jPanel12.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 10));
jButton4.setText("Simpan Data");
jButton4.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton4ActionPerformed(evt);
}
});
jPanel12.add(jButton4);
jButton5.setText("Batal");
jButton5.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton5ActionPerformed(evt);
}
});
jPanel12.add(jButton5);
jButton6.setText("Tutup Jendela");
jButton6.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton6ActionPerformed(evt);
}
});
jPanel12.add(jButton6);
jPanel3.add(jPanel12,
"tombolPanelData");
jPanel9.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jButton8.setText("Ambil Nomor
Telepon");
jButton8.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton8ActionPerformed(evt);
}
});
jPanel9.add(jButton8);
jPanel3.add(jPanel9, "cardAmbil");
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-550)/2,
(screenSize.height-400)/2, 550, 400);
}
private void
jButton3ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dulu data tabel
yang ingin dihapus !!");
} else {
String no =
tabBuku.getValueAt(xrow, 0).toString();
String nama =
tabBuku.getValueAt(xrow, 1).toString();
String alamat =
tabBuku.getValueAt(xrow, 2).toString();
int hapus =
javax.swing.JOptionPane.showConfirmDialog
(null, "No. Telepon : " +
no + "\nNama Kontak : " +
nama + "\nAlamat : " + alamat +
"\n\nAnda Ingin menghapus
data tersebut ?", "Konfirmasi Hapus Data",
javax.swing.JOptionPane.YES_NO_OPTION);
if (hapus == 0){
String sql = "DELETE FROM
data_buku_telepon WHERE nomor_telepon
= ?";
try{
java.sql.PreparedStatement
stat = koneksi.prepareStatement(sql);
try{
stat.setString(1, no);
stat.executeUpdate();
tampilTabelBukuTelepon();
} catch
(java.sql.SQLException s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", se.getMessage());
}
}
}
}
private void
jButton8ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dahulu nomor
telepon yang dituju !!");
} else {
String no =
tabBuku.getValueAt(xrow, 0).toString();
dispose();
jendelaKirimSms sms = new
jendelaKirimSms(koneksi, no, temp);
sms.setVisible(true);
}
}
private void
jButton7ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dahulu nomor
telepon yang dituju !!");
} else {
String no =
tabBuku.getValueAt(xrow, 0).toString();
dispose();
jendelaKirimSms sms = new
jendelaKirimSms(koneksi, no, temp);
sms.setVisible(true);
}
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
this.dataNomorTelepon.setText("");
this.dataNamaKontak.setText("");
this.dataAlamat.setText("");
cardTengah.show(jPanel1,
"panelData");
cardTombol.show(jPanel3,
"tombolPanelData");
}
private void
jButton5ActionPerformed(java.awt.event.Act
ionEvent evt) {
cardTengah.show(jPanel1,
"panelTabel");
cardTombol.show(jPanel3,
"tombolPanelTabel");
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
private void
jButton6ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
private void
jButton4ActionPerformed(java.awt.event.Act
ionEvent evt) {
String no =
this.dataNomorTelepon.getText();
String nama =
this.dataNamaKontak.getText();
String alamat =
this.dataAlamat.getText();
String sql = "INSERT INTO
data_buku_telepon(nomor_telepon,
nama_kontak, alamat) VALUES(?,?,?)";
try{
java.sql.PreparedStatement stat =
koneksi.prepareStatement(sql);
try{
stat.setString(1, no);
stat.setString(2, nama);
stat.setString(3, alamat);
stat.executeUpdate();
tampilTabelBukuTelepon();
cardTengah.show(jPanel1,
"panelTabel");
cardTombol.show(jPanel3,
"tombolPanelTabel");
} catch (java.sql.SQLException s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menyimpan Data Buku Telepon",
s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menyimpan Data Buku Telepon",
se.getMessage());
}
}
private javax.swing.JTextField
dataAlamat;
private javax.swing.JTextField
dataNamaKontak;
private javax.swing.JTextField
dataNomorTelepon;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
public javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel13;
private javax.swing.JPanel jPanel14;
private javax.swing.JPanel jPanel15;
private javax.swing.JPanel jPanel16;
private javax.swing.JPanel jPanel2;
public javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTable jTable1;
}
public class jendelaKirimSms extends
javax.swing.JFrame {
java.sql.Connection koneksi = null;
public
jendelaKirimSms(java.sql.Connection
koneksi, String notlp, String pesan) {
this.koneksi = koneksi;
initComponents();
this.dataNoTlp.setText(notlp);
this.dataIsiPesan.setText(pesan);
this.dataIsiPesan.requestFocus();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel9 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
dataNoTlp = new
javax.swing.JTextField();
jButton4 = new javax.swing.JButton();
jPanel5 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
dataIsiPesan = new
javax.swing.JTextArea();
jPanel7 = new javax.swing.JPanel();
jPanel10 = new javax.swing.JPanel();
jPanel11 = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
sisaKarakter = new
javax.swing.JLabel();
jPanel8 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("Kirim SMS");
jPanel1.setLayout(new
javax.swing.BoxLayout(jPanel1,
javax.swing.BoxLayout.Y_AXIS));
jPanel1.setBackground(new
java.awt.Color(255, 255, 255));
jPanel9.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel9);
jPanel4.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
jLabel2.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel2.setText("Nomor Telepon :");
jLabel2.setPreferredSize(new
java.awt.Dimension(100, 16));
jPanel4.add(jLabel2);
dataNoTlp.setDocument(SmitDev.SmsServe
r.saring_karakter.setAllOnlyDigit());
dataNoTlp.setPreferredSize(new
java.awt.Dimension(150, 22));
jPanel4.add(dataNoTlp);
jButton4.setText("Cari");
jButton4.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton4ActionPerformed(evt);
}
});
jPanel4.add(jButton4);
jPanel1.add(jPanel4);
jPanel5.setLayout(new
java.awt.BorderLayout());
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
dataIsiPesan.setLineWrap(true);
dataIsiPesan.setRows(200);
dataIsiPesan.setWrapStyleWord(true);
dataIsiPesan.setPreferredSize(new
java.awt.Dimension(300, 3400));
dataIsiPesan.addFocusListener(new
java.awt.event.FocusAdapter() {
public void
focusGained(java.awt.event.FocusEvent evt)
{
dataIsiPesanFocusGained(evt);
}
});
dataIsiPesan.addKeyListener(new
java.awt.event.KeyAdapter() {
public void
keyReleased(java.awt.event.KeyEvent evt)
{
dataIsiPesanKeyReleased(evt);
}
});
jScrollPane1.setViewportView(dataIsiPesan)
;
jPanel5.add(jScrollPane1,
java.awt.BorderLayout.CENTER);
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.add(jPanel7,
java.awt.BorderLayout.EAST);
jPanel10.setBackground(new
java.awt.Color(255, 255, 255));
jPanel5.add(jPanel10,
java.awt.BorderLayout.WEST);
jPanel1.add(jPanel5);
jPanel11.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.R
IGHT));
jPanel11.setBackground(new
java.awt.Color(255, 255, 255));
jLabel3.setHorizontalAlignment(javax.swing.
SwingConstants.RIGHT);
jLabel3.setText("Sisa Karakter :");
jLabel3.setPreferredSize(new
java.awt.Dimension(100, 16));
jPanel11.add(jLabel3);
sisaKarakter.setText("160");
sisaKarakter.setPreferredSize(new
java.awt.Dimension(30, 16));
jPanel11.add(sisaKarakter);
jPanel1.add(jPanel11);
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel8);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Dialog", 1, 14));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Kirim SMS");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jPanel3.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT, 5, 10));
jButton1.setText("Kirim SMS");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
jButton2.setText("Hapus");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel3.add(jButton2);
jButton3.setText("Tutup Jendela");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton3ActionPerformed(evt);
}
});
jPanel3.add(jButton3);
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-400)/2,
(screenSize.height-300)/2, 400, 300);
}
private void
dataIsiPesanFocusGained(java.awt.event.Fo
cusEvent evt) {
hitungSisaKarakter();
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
this.dataIsiPesan.setText("");
this.dataNoTlp.setText("");
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
String no_tlp = dataNoTlp.getText();
String pesan =
dataIsiPesan.getText();
boolean status = new
prosesDatabaseSmsServer(koneksi).inputDa
taTabelSmsKeluar(no_tlp, pesan);
if(status){
dispose();
}
}
private void hitungSisaKarakter(){
int nilai =
dataIsiPesan.getText().length();
int sisa = 160;
int kar = sisa - nilai;
if (kar <= 0) {
dataIsiPesan.setText(dataIsiPesan.getText()
.substring(0, 160));
sisaKarakter.setText(String.valueOf(0));
} else {
sisaKarakter.setText(String.valueOf(kar));
}
}
private void
dataIsiPesanKeyReleased(java.awt.event.Ke
yEvent evt) {
hitungSisaKarakter();
}
private void
jButton4ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
String temp =
this.dataIsiPesan.getText();
jendelaBukuTelepon bk = new
jendelaBukuTelepon(koneksi, temp);
bk.cardTombol.show(bk.jPanel3,
"cardAmbil");
bk.setVisible(true);
}
private void
jButton3ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
private javax.swing.JTextArea
dataIsiPesan;
public javax.swing.JTextField dataNoTlp;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JLabel sisaKarakter;
}
public class jendelaSmsKeluar extends
javax.swing.JFrame {
javax.swing.table.DefaultTableModel
tabSMSKeluar = new
javax.swing.table.DefaultTableModel(
null, new String[] {"id", "No.
Telepon", "Nama Kontak", "Tanggal", "Jam",
"Isi Pesan", "Status"}){
public boolean isCellEditable(int
iRows, int iCols) {
return false;}
};
java.sql.Connection koneksi;
public
jendelaSmsKeluar(java.sql.Connection
koneksi) {
this.koneksi = koneksi;
initComponents();
tampilDataTabel();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel6 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel7 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel5 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("SMS Keluar");
jPanel1.setLayout(new
java.awt.BorderLayout());
jPanel6.setLayout(new
java.awt.GridLayout(1, 0));
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
jScrollPane1.setBackground(new
java.awt.Color(255, 255, 255));
jTable1.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"
}
));
jTable1.setModel(tabSMSKeluar);
javax.swing.table.TableColumn colx =
this.jTable1.getColumn("id");
colx.setWidth(0);
colx.setMinWidth(0);
colx.setMaxWidth(0);
colx = this.jTable1.getColumn("No.
Telepon");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(90);
colx =
this.jTable1.getColumn("Tanggal");
colx.setWidth(60);
colx.setMinWidth(60);
colx.setMaxWidth(60);
colx = this.jTable1.getColumn("Jam");
colx.setWidth(60);
colx.setMinWidth(60);
colx.setMaxWidth(60);
colx = this.jTable1.getColumn("Nama
Kontak");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(80);
colx =
this.jTable1.getColumn("Status");
colx.setWidth(40);
colx.setMinWidth(40);
colx.setMaxWidth(50);
this.jTable1.sizeColumnsToFit(0);
jScrollPane1.setViewportView(jTable1);
jPanel6.add(jScrollPane1);
jPanel1.add(jPanel6,
java.awt.BorderLayout.CENTER);
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel7,
java.awt.BorderLayout.NORTH);
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel8,
java.awt.BorderLayout.SOUTH);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel2,
java.awt.BorderLayout.WEST);
jPanel4.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel4,
java.awt.BorderLayout.EAST);
jPanel3.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Tahoma", 1, 18));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Data SMS Keluar");
jPanel3.add(jLabel1);
getContentPane().add(jPanel3,
java.awt.BorderLayout.NORTH);
jPanel5.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jButton1.setText("Teruskan Kirim
SMS");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel5.add(jButton1);
jButton2.setText("Hapus");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel5.add(jButton2);
jButton3.setText("Hapus Semua");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton3ActionPerformed(evt);
}
});
jPanel5.add(jButton3);
jButton4.setText("Tutup Jendela");
jButton4.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton4ActionPerformed(evt);
}
});
jPanel5.add(jButton4);
getContentPane().add(jPanel5,
java.awt.BorderLayout.SOUTH);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-550)/2,
(screenSize.height-400)/2, 550, 400);
}
private void
jButton3ActionPerformed(java.awt.event.Act
ionEvent evt) {
int hapus =
javax.swing.JOptionPane.showConfirmDialog
(null, "Anda Yakin Ingin Menghapus Semua
Data\nyang ada di database SMS Masuk
?\n\nPerhatian : Semua Data SMS Masuk
akan hilang", "Konfirmasi Hapus Data",
javax.swing.JOptionPane.YES_NO_OPTION);
if (hapus == 0){
String sql = "DELETE FROM
SMS_KELUAR";
try{
java.sql.PreparedStatement stat
= koneksi.prepareStatement(sql);
try{
stat.executeUpdate();
tampilDataTabel();
} catch (java.sql.SQLException
s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", se.getMessage());
}
}
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dulu data tabel
yang ingin dihapus !!");
} else {
String id =
tabSMSKeluar.getValueAt(xrow,
0).toString();
String no =
tabSMSKeluar.getValueAt(xrow,
1).toString();
String tgl =
tabSMSKeluar.getValueAt(xrow,
3).toString();
String jam =
tabSMSKeluar.getValueAt(xrow,
4).toString();
int hapus =
javax.swing.JOptionPane.showConfirmDialog
(null, "No. Telepon : " +
no + "\nTanggal : " + tgl +
"\nJam : " + jam +
"\n\nAnda Ingin menghapus
data tersebut ?", "Konfirmasi Hapus Data",
javax.swing.JOptionPane.YES_NO_OPTION);
if (hapus == 0){
String sql = "DELETE FROM
SMS_KELUAR WHERE id_keluar = ?";
try{
java.sql.PreparedStatement
stat = koneksi.prepareStatement(sql);
try{
stat.setString(1, id);
stat.executeUpdate();
tampilDataTabel();
} catch
(java.sql.SQLException s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", se.getMessage());
}
}
}
}
private void tampilDataTabel(){
int row =
tabSMSKeluar.getRowCount();
for (int i = 0; i < row; i++){
tabSMSKeluar.removeRow(0);
}
String sql = "SELECT * FROM
SMS_KELUAR ORDER BY TANGGAL_KELUAR
DESC , JAM_KELUAR DESC ";
try{
java.sql.Statement stat =
koneksi.createStatement();
java.sql.Statement statu =
koneksi.createStatement();
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while(rSet.next()){
String id =
rSet.getString("ID_KELUAR");
String no =
rSet.getString("NO_TELEPON_KELUAR");
String psn =
rSet.getString("ISI_PESAN_KELUAR");
String sts =
rSet.getString("STATUS_KELUAR");
String time =
rSet.getString("JAM_KELUAR");
String tg =
rSet.getString("TANGGAL_KELUAR");
String nama = "";
String sqlKontak = "SELECT *
FROM data_buku_telepon WHERE
nomor_telepon = '"+no+"'";
java.sql.ResultSet rStN =
statu.executeQuery(sqlKontak);
if (rStN.next()) {
nama =
rStN.getString("NAMA_KONTAK");
}
Object[] data = {id, no, nama,
tg, time, psn, sts};
tabSMSKeluar.addRow(data);
}
} catch(Exception e){}
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dahulu Pesan
yang akan diteruskan !!");
} else {
String no =
tabSMSKeluar.getValueAt(xrow,
1).toString();
String pesan =
tabSMSKeluar.getValueAt(xrow,
5).toString();
dispose();
jendelaKirimSms sms = new
jendelaKirimSms(koneksi, no, pesan);
sms.setVisible(true);
}
}
private void
jButton4ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTable jTable1;
}
public class jendelaSmsMasuk extends
javax.swing.JFrame {
javax.swing.table.DefaultTableModel
tabSMSMasuk = new
javax.swing.table.DefaultTableModel(
null, new String[] {"id", "No.
Telepon", "Nama Kontak", "Tanggal", "Jam",
"Isi Pesan", "Status"}){
public boolean isCellEditable(int
iRows, int iCols) {
return false;}
};
java.sql.Connection koneksi;
public
jendelaSmsMasuk(java.sql.Connection
koneksi) {
this.koneksi = koneksi;
initComponents();
tampilDataTabel();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel4 = new javax.swing.JPanel();
jScrollPane1 = new
javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel5 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jPanel6 = new javax.swing.JPanel();
jPanel7 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.Wind
owConstants.DISPOSE_ON_CLOSE);
setTitle("SMS Masuk");
jPanel1.setLayout(new
java.awt.BorderLayout());
jPanel1.setBackground(new
java.awt.Color(255, 255, 255));
jPanel4.setLayout(new
java.awt.GridLayout(1, 0));
jTable1.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"
}
));
jTable1.setModel(tabSMSMasuk);
javax.swing.table.TableColumn colx =
this.jTable1.getColumn("id");
colx.setWidth(0);
colx.setMinWidth(0);
colx.setMaxWidth(0);
colx = this.jTable1.getColumn("No.
Telepon");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(90);
colx =
this.jTable1.getColumn("Tanggal");
colx.setWidth(60);
colx.setMinWidth(60);
colx.setMaxWidth(60);
colx = this.jTable1.getColumn("Jam");
colx.setWidth(60);
colx.setMinWidth(60);
colx.setMaxWidth(60);
colx = this.jTable1.getColumn("Nama
Kontak");
colx.setWidth(80);
colx.setMinWidth(80);
colx.setMaxWidth(80);
colx =
this.jTable1.getColumn("Status");
colx.setWidth(40);
colx.setMinWidth(40);
colx.setMaxWidth(50);
this.jTable1.sizeColumnsToFit(0);
jScrollPane1.setViewportView(jTable1);
jPanel4.add(jScrollPane1);
jPanel1.add(jPanel4,
java.awt.BorderLayout.CENTER);
jPanel5.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel5,
java.awt.BorderLayout.NORTH);
jPanel8.setBackground(new
java.awt.Color(255, 255, 255));
jPanel1.add(jPanel8,
java.awt.BorderLayout.SOUTH);
getContentPane().add(jPanel1,
java.awt.BorderLayout.CENTER);
jPanel2.setBackground(new
java.awt.Color(0, 0, 0));
jLabel1.setFont(new
java.awt.Font("Tahoma", 1, 18));
jLabel1.setForeground(java.awt.Color.green
);
jLabel1.setText("Data SMS Masuk");
jPanel2.add(jLabel1);
getContentPane().add(jPanel2,
java.awt.BorderLayout.NORTH);
jPanel3.setLayout(new
java.awt.FlowLayout(java.awt.FlowLayout.L
EFT));
jButton1.setText("Balas SMS");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jPanel3.add(jButton1);
jButton2.setText("Hapus");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jPanel3.add(jButton2);
jButton3.setText("Hapus Semua");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton3ActionPerformed(evt);
}
});
jPanel3.add(jButton3);
jButton4.setText("Tutup Jendela");
jButton4.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent
evt) {
jButton4ActionPerformed(evt);
}
});
jPanel3.add(jButton4);
getContentPane().add(jPanel3,
java.awt.BorderLayout.SOUTH);
jPanel6.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel6,
java.awt.BorderLayout.EAST);
jPanel7.setBackground(new
java.awt.Color(255, 255, 255));
getContentPane().add(jPanel7,
java.awt.BorderLayout.WEST);
java.awt.Dimension screenSize =
java.awt.Toolkit.getDefaultToolkit().getScre
enSize();
setBounds((screenSize.width-550)/2,
(screenSize.height-400)/2, 550, 400);
}
// </editor-fold>
private void
jButton3ActionPerformed(java.awt.event.Act
ionEvent evt) {
int hapus =
javax.swing.JOptionPane.showConfirmDialog
(null, "Anda Yakin Ingin Menghapus Semua
Data\nyang ada di database SMS Masuk
?\n\nPerhatian : Semua Data SMS Masuk
akan hilang", "Konfirmasi Hapus Data",
javax.swing.JOptionPane.YES_NO_OPTION);
if (hapus == 0){
String sql = "DELETE FROM
SMS_MASUK";
try{
java.sql.PreparedStatement stat
= koneksi.prepareStatement(sql);
try{
stat.executeUpdate();
tampilDataTabel();
} catch (java.sql.SQLException
s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", se.getMessage());
}
}
}
private void
jButton4ActionPerformed(java.awt.event.Act
ionEvent evt) {
dispose();
}
private void
jButton2ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dulu data tabel
yang ingin dihapus !!");
} else {
String id =
tabSMSMasuk.getValueAt(xrow,
0).toString();
String no =
tabSMSMasuk.getValueAt(xrow,
1).toString();
String tgl =
tabSMSMasuk.getValueAt(xrow,
3).toString();
String jam =
tabSMSMasuk.getValueAt(xrow,
4).toString();
int hapus =
javax.swing.JOptionPane.showConfirmDialog
(null, "No. Telepon : " +
no + "\nTanggal : " + tgl +
"\nJam : " + jam +
"\n\nAnda Ingin menghapus
data tersebut ?", "Konfirmasi Hapus Data",
javax.swing.JOptionPane.YES_NO_OPTION);
if (hapus == 0){
String sql = "DELETE FROM
SMS_MASUK WHERE id_masuk = ?";
try{
java.sql.PreparedStatement
stat = koneksi.prepareStatement(sql);
try{
stat.setString(1, id);
stat.executeUpdate();
tampilDataTabel();
} catch
(java.sql.SQLException s){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", s.getMessage());
}
} catch (Exception se){
SmitDev.SmsServer.Server.proses_Gagal("
Gagal Menghapus Data", se.getMessage());
}
}
}
}
private void
jButton1ActionPerformed(java.awt.event.Act
ionEvent evt) {
int xrow =
this.jTable1.getSelectedRow();
if (xrow < 0) {
javax.swing.JOptionPane.showMessageDialo
g(null,
"Silahkan pilih dahulu Pesan
yang akan dibalas !!");
} else {
String no =
tabSMSMasuk.getValueAt(xrow,
1).toString();
String pesan = "\n--- Pesan Asli ----
\n" + tabSMSMasuk.getValueAt(xrow,
5).toString();
dispose();
jendelaKirimSms sms = new
jendelaKirimSms(koneksi, no, pesan);
sms.setVisible(true);
}
}
private void tampilDataTabel(){
int row =
tabSMSMasuk.getRowCount();
for (int i = 0; i < row; i++){
tabSMSMasuk.removeRow(0);
}
String sql = "SELECT * FROM
SMS_MASUK ORDER BY TANGGAL_MASUK
DESC , JAM_MASUK DESC ";
try{
java.sql.Statement stat =
koneksi.createStatement();
java.sql.Statement statu =
koneksi.createStatement();
java.sql.ResultSet rSet =
stat.executeQuery(sql);
while(rSet.next()){
String id =
rSet.getString("ID_MASUK");
String no =
rSet.getString("NO_TELEPON_MASUK");
String psn =
rSet.getString("ISI_PESAN_MASUK");
String sts =
rSet.getString("STATUS_MASUK");
String time =
rSet.getString("JAM_MASUK");
String tg =
rSet.getString("TANGGAL_MASUK");
String nama = "";
String sqlKontak = "SELECT *
FROM data_buku_telepon WHERE
nomor_telepon = '"+no+"'";
java.sql.ResultSet rStN =
statu.executeQuery(sqlKontak);
if (rStN.next()) {
nama =
rStN.getString("NAMA_KONTAK");
}
Object[] data = {id, no, nama,
tg, time, psn, sts};
tabSMSMasuk.addRow(data);
}
} catch(Exception e){}
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
} import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.sql.Statement;
import javax.swing.table.DefaultTableModel;
public class peristiwa implements
ActionListener{
Connection cery;
Koneksi somay;
String SQLt;
Statement sawo;
String
skode,stanggal,sjam,speristiwa,sdeskripsi,ss
tatus;
public JLabel
lblkode,lbltanggal,lbljam,lblperistiwa,lbldesk
ripsi,lblstatus;
public JTextField
txtkode,txttanggal,txtjam,txtperistiwa,txtde
skripsi,txtstatus;
public JButton
btnNew,btnSave,btnDelete,btnUpdate,btnEx
it,btnCari;
String[]judul={"No","kode","tanggal","jam",
"peristiwa","deskripsi","status"};
DefaultTableModel
modelnya=new
DefaultTableModel(null,judul);
JTable tabelnya=new JTable();
JScrollPane scrollnya=new
JScrollPane();
JOptionPane jpane=new
JOptionPane();
//---------------------------------------
--------------------
public peristiwa(){
tabelnya.setModel(modelnya);
scrollnya.getViewport().add(tabelnya);
tabelnya.setEnabled(true);
scrollnya.setBounds(10,350,520,300);
lblkode=new JLabel("kode:");
lblkode.setLocation(10,10);
lblkode.setSize(lblkode.getPreferredSize());
txtkode=new JTextField(20);
txtkode.setLocation(10,25);
txtkode.setSize(txtkode.getPreferredSize());
lbltanggal=new
JLabel("tanggal:");
lbltanggal.setLocation(10,45);
lbltanggal.setSize(lbltanggal.getPreferredSiz
e());
txttanggal=new JTextField(20);
txttanggal.setLocation(10,60);
txttanggal.setSize(txttanggal.getPreferredSi
ze());
lbljam=new JLabel("jam:");
lbljam.setLocation(10,80);
lbljam.setSize(lbljam.getPreferredSize());
txtjam=new JTextField(20);
txtjam.setLocation(10,95);
txtjam.setSize(txtjam.getPreferredSize());
lblperistiwa=new
JLabel("peristiwa:");
lblperistiwa.setLocation(10,115);
lblperistiwa.setSize(lblperistiwa.getPreferred
Size());
txtperistiwa=new
JTextField(20);
txtperistiwa.setLocation(10,130);
txtperistiwa.setSize(txtperistiwa.getPreferre
dSize());
lbldeskripsi=new
JLabel("deskripsi:");
lbldeskripsi.setLocation(10,150);
lbldeskripsi.setSize(lbldeskripsi.getPreferred
Size());
txtdeskripsi=new
JTextField(20);
txtdeskripsi.setLocation(10,165);
txtdeskripsi.setSize(txtdeskripsi.getPreferre
dSize());
lblstatus=new JLabel("status:");
lblstatus.setLocation(10,185);
lblstatus.setSize(lblstatus.getPreferredSize()
);
txtstatus=new JTextField(20);
txtstatus.setLocation(10,200);
txtstatus.setSize(txtstatus.getPreferredSize(
));
btnNew=new JButton("New");
btnNew.setLocation(10,300);
btnNew.setSize(btnNew.getPreferredSize());
btnNew.addActionListener(this);
btnNew.setMnemonic('e');
btnSave=new JButton("Save");
btnSave.setLocation(70,300);
btnSave.setSize(btnSave.getPreferredSize()
);
btnSave.addActionListener(this);
btnSave.setMnemonic('a');
btnDelete=new JButton("Del");
btnDelete.setLocation(135,300);
btnDelete.setSize(btnDelete.getPreferredSiz
e());
btnDelete.addActionListener(this);
btnDelete.setMnemonic('I');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnExit=new JButton("Exit");
btnExit.setLocation(310,300);
btnExit.setSize(
btnExit.getPreferredSize());
btnExit.addActionListener(this);
btnExit.setMnemonic('t');
btnCari=new JButton("Cari");
btnCari.setLocation(250,300);
btnCari.setSize(
btnCari.getPreferredSize());
btnCari.addActionListener(this);
btnCari.setMnemonic('C');
}
//------------------------------------
-----------------------
public void FrmPeristiwa(){
JFrame.setDefaultLookAndFeelDecorated(tru
e);
JFrame frame=new
JFrame("Data Siswa");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXI
T_ON_CLOSE);
frame.getContentPane().add(lblkode);
frame.getContentPane().add(txtkode);
frame.getContentPane().add(lbltanggal);
frame.getContentPane().add(txttanggal);
frame.getContentPane().add(lbljam);
frame.getContentPane().add(txtjam);
frame.getContentPane().add(lblperistiwa);
frame.getContentPane().add(txtperistiwa);
frame.getContentPane().add(lbldeskripsi);
frame.getContentPane().add(txtdeskripsi);
frame.getContentPane().add(lblstatus);
frame.getContentPane().add(txtstatus);
frame.getContentPane().add(btnNew);
frame.getContentPane().add(btnSave);
frame.getContentPane().add(btnDelete);
frame.getContentPane().add(btnUpdate);
frame.getContentPane().add(btnExit);
frame.getContentPane().add(btnCari);
frame.setBounds(0, 0,
550, 700);
frame.setLocationRelativeTo(null);
frame.getContentPane().add(scrollnya);
try{somay=new
Koneksi();}
catch(Exception e){
JOptionPane.showMessageDialog(null,
"Terjadi Kesalahan, Mungkin Databasenya
Belum Konek!!!");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
frame.setVisible(true);
}
//------------------------------------
-----------------------
public void
actionPerformed(ActionEvent event){
JButton
btn=(JButton)event.getSource();
if(btn==btnSave){
Simpan();
}
else if(btn==btnNew){
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
}
else if(btn==btnDelete){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " + "Mengakhiri
Aplikasi Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
Hapus();
}
}
else if(btn==btnUpdate){
Ubah();
}
else if(btn==btnExit){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " +
"Mengakhiri Aplikasi
Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
System.exit(0);
}
}
else if(btn==btnCari){
Cari();
}
}
//-=
void Simpan(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
speristiwa=txtperistiwa.getText();
sdeskripsi=txtdeskripsi.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="insert into
tbperistiwa
values('"+skode+"','"+stanggal+"','"+sjam
+"','"+speristiwa+"','"+sdeskripsi+"','"+ssta
tus+"')";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Simpan");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DITAMBAHKAN");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//------------------------------------
-----------------------
void Hapus(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="delete from
tbperistiwa where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Hapus");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DIHAPUS");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//----------------------------------
-------------------------
void Ubah(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
speristiwa=txtperistiwa.getText();
sdeskripsi=txtdeskripsi.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Update tbperistiwa
set
tanggal='"+stanggal+"',jam='"+sjam+"',per
istiwa='"+speristiwa+"',deskripsi='"+sdeskri
psi+"',status='"+sstatus+"' where
kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+"Sukses Di Ubah");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA SUKSES
DIUBAH");
System.out.println("===============
=============");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,belum konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
}
//-----------------
--------------------------------------
void Cari(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbperistiwa where
kode='"+skode+"'";
ResultSet cari=sawo.executeQuery(SQLt);
if(cari.next()){
String a=cari.getString("kode");
String aa=cari.getString("tanggal");
String aaa=cari.getString("jam");
String aaaa=cari.getString("peristiwa");
String aaaaa=cari.getString("deskripsi");
String sstatus=cari.getString("status");
System.out.println("Data detail dengan
kode="+a);
System.out.println("tanggal="+aa);
System.out.println("jam="+aaa);
System.out.println("peristiwa="+aaaa);
System.out.println("deskripsi="+aaaaa);
System.out.println("status="+sstatus);
txtkode.setText(a);
txttanggal.setText(aa);
txtjam.setText(aaa);
txtperistiwa.setText(aaaa);
txtdeskripsi.setText(aaaaa);
txtstatus.setText(sstatus);
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+
skode+"Sukses
Di Cari!!!");
txtkode.setEditable(false);
txttanggal.requestFocus();
System.out.println("Data anda
kode="+skode+"sukses di cari!!!");
}
else{
JOptionPane.showMessageDialog(null,"Data
tidak Ditemukan");
}
System.out.println("===============
===========================
==============");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
Kesalahan,mungkin database atau tabelnya
belum ada");}
}
//-----------------
--------------------------------
public static void
main(String[]args){
javax.swing.SwingUtilities.invokeLater(new
Runnable(){
public void run(){
peristiwa app=new peristiwa();
app.FrmPeristiwa();
}
});
}
//-----------------
-------------------------------
void Bersih(){
txtkode.setText("");
txttanggal.setText("");
txtjam.setText("");
txtperistiwa.setText("");
txtdeskripsi.setText("");
txtstatus.setText("");
txtkode.requestFocus();
}
//-----------------
------------------------------
void lihatdata(){
try{
hapustabel();
cery=somay.bakso();
sawo=cery.createStatement();
SQLt="SELECT * FROM `tbperistiwa`";
ResultSet cari=sawo.executeQuery(SQLt);
while(cari.next()){
String
sskode=cari.getString("kode");
String
sstanggal=cari.getString("tanggal");
String
ssjam=cari.getString("jam");
String
ssperistiwa=cari.getString("peristiwa");
String
ssdeskripsi=cari.getString("deskripsi");
String
ssstatus=cari.getString("status");
String[]data={"",
sskode,sstanggal,ssjam,ssperistiwa,ssdeskri
psi,ssstatus};
modelnya.addRow(data);
//
System.out.println(a+"\t"+aa+"\t"+aaa+"\t
"+aaaa+"\t"+aaaaa\t"+sstatus\t"+spasswor
d\t"+sstatus);
System.out.println("----------------
--------------------------");
resetNo();
}
sawo.close();
cery.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek lihat data");
System.out.println("Terjadi
kesalahanAA,mungkin database atau
tabelnya belum ada");}
}
//------------------------------------
-----------------------
void resetNo(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
String
Nomor=String.valueOf(i+1);
modelnya.setValueAt(Nomor,i,0);
}
}
//-------------------------------------
----------------------
void hapustabel(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
modelnya.removeRow(0);
Bersih();
}
}
//-------------------------------------
----------------------
}
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ping {
public String myping(String host ) {
int timeout=3000;
String result="";
try {if
(InetAddress.getByName(host).isReachable(
timeout)) {result="Aktif";} else
{result="Tidak Aktif";}}
catch (UnknownHostException ex) {
result="Nomor Salah";
} catch(IOException ex) {result="Nomor
Salah";}
return result;
}
} import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.sql.Statement;
import javax.swing.table.DefaultTableModel;
public class smskeluar implements
ActionListener{
Connection cery;
Koneksi somay;
String SQLt;
Statement sawo;
String
skode,stanggal,sjam,suntuk,spesan,sstatus;
public JLabel
lblkode,lbltanggal,lbljam,lbluntuk,lblpesan,lb
lstatus;
public JTextField
txtkode,txttanggal,txtjam,txtuntuk,txtpesan
,txtstatus;
public JButton
btnNew,btnSave,btnDelete,btnUpdate,btnEx
it,btnCari;
String[]judul={"No","kode","tanggal","jam",
"untuk","pesan","status"};
DefaultTableModel
modelnya=new
DefaultTableModel(null,judul);
JTable tabelnya=new JTable();
JScrollPane scrollnya=new
JScrollPane();
JOptionPane jpane=new
JOptionPane();
//---------------------------------------
--------------------
public smskeluar(){
tabelnya.setModel(modelnya);
scrollnya.getViewport().add(tabelnya);
tabelnya.setEnabled(true);
scrollnya.setBounds(10,350,520,300);
lblkode=new JLabel("kode:");
lblkode.setLocation(10,10);
lblkode.setSize(lblkode.getPreferredSize());
txtkode=new JTextField(20);
txtkode.setLocation(10,25);
txtkode.setSize(txtkode.getPreferredSize());
lbltanggal=new
JLabel("tanggal:");
lbltanggal.setLocation(10,45);
lbltanggal.setSize(lbltanggal.getPreferredSiz
e());
txttanggal=new JTextField(20);
txttanggal.setLocation(10,60);
txttanggal.setSize(txttanggal.getPreferredSi
ze());
lbljam=new JLabel("jam:");
lbljam.setLocation(10,80);
lbljam.setSize(lbljam.getPreferredSize());
txtjam=new JTextField(20);
txtjam.setLocation(10,95);
txtjam.setSize(txtjam.getPreferredSize());
lbluntuk=new JLabel("untuk:");
lbluntuk.setLocation(10,115);
lbluntuk.setSize(lbluntuk.getPreferredSize())
;
txtuntuk=new JTextField(20);
txtuntuk.setLocation(10,130);
txtuntuk.setSize(txtuntuk.getPreferredSize()
);
lblpesan=new JLabel("pesan:");
lblpesan.setLocation(10,150);
lblpesan.setSize(lblpesan.getPreferredSize()
);
txtpesan=new JTextField(20);
txtpesan.setLocation(10,165);
txtpesan.setSize(txtpesan.getPreferredSize(
));
lblstatus=new JLabel("status:");
lblstatus.setLocation(10,185);
lblstatus.setSize(lblstatus.getPreferredSize()
);
txtstatus=new JTextField(20);
txtstatus.setLocation(10,200);
txtstatus.setSize(txtstatus.getPreferredSize(
));
btnNew=new JButton("New");
btnNew.setLocation(10,300);
btnNew.setSize(btnNew.getPreferredSize());
btnNew.addActionListener(this);
btnNew.setMnemonic('e');
btnSave=new JButton("Save");
btnSave.setLocation(70,300);
btnSave.setSize(btnSave.getPreferredSize()
);
btnSave.addActionListener(this);
btnSave.setMnemonic('a');
btnDelete=new JButton("Del");
btnDelete.setLocation(135,300);
btnDelete.setSize(btnDelete.getPreferredSiz
e());
btnDelete.addActionListener(this);
btnDelete.setMnemonic('I');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnExit=new JButton("Exit");
btnExit.setLocation(310,300);
btnExit.setSize(
btnExit.getPreferredSize());
btnExit.addActionListener(this);
btnExit.setMnemonic('t');
btnCari=new JButton("Cari");
btnCari.setLocation(250,300);
btnCari.setSize(
btnCari.getPreferredSize());
btnCari.addActionListener(this);
btnCari.setMnemonic('C');
}
//------------------------------------
-----------------------
public void lp2maray(){
JFrame.setDefaultLookAndFeelDecorated(tru
e);
JFrame frame=new
JFrame("Data Siswa");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXI
T_ON_CLOSE);
frame.getContentPane().add(lblkode);
frame.getContentPane().add(txtkode);
frame.getContentPane().add(lbltanggal);
frame.getContentPane().add(txttanggal);
frame.getContentPane().add(lbljam);
frame.getContentPane().add(txtjam);
frame.getContentPane().add(lbluntuk);
frame.getContentPane().add(txtuntuk);
frame.getContentPane().add(lblpesan);
frame.getContentPane().add(txtpesan);
frame.getContentPane().add(lblstatus);
frame.getContentPane().add(txtstatus);
frame.getContentPane().add(btnNew);
frame.getContentPane().add(btnSave);
frame.getContentPane().add(btnDelete);
frame.getContentPane().add(btnUpdate);
frame.getContentPane().add(btnExit);
frame.getContentPane().add(btnCari);
frame.setBounds(0, 0,
550, 700);
frame.setLocationRelativeTo(null);
frame.getContentPane().add(scrollnya);
try{somay=new
Koneksi();}
catch(Exception e){
JOptionPane.showMessageDialog(null,
"Terjadi Kesalahan, Mungkin Databasenya
Belum Konek!!!");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
frame.setVisible(true);
}
//------------------------------------
-----------------------
public void
actionPerformed(ActionEvent event){
JButton
btn=(JButton)event.getSource();
if(btn==btnSave){
Simpan();
}
else if(btn==btnNew){
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
}
else if(btn==btnDelete){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " + "Mengakhiri
Aplikasi Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
Hapus();
}
}
else if(btn==btnUpdate){
Ubah();
}
else if(btn==btnExit){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " +
"Mengakhiri Aplikasi
Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
System.exit(0);
}
}
else if(btn==btnCari){
Cari();
}
}
//-=
void Simpan(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
suntuk=txtuntuk.getText();
spesan=txtpesan.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="insert into
tbsmskeluar
values('"+skode+"','"+stanggal+"','"+sjam
+"','"+suntuk+"','"+spesan+"','"+sstatus+"'
)";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Simpan");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DITAMBAHKAN");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//------------------------------------
-----------------------
void Hapus(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="delete from
tbsmskeluar where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Hapus");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DIHAPUS");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//----------------------------------
-------------------------
void Ubah(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
suntuk=txtuntuk.getText();
spesan=txtpesan.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Update
tbsmskeluar set
tanggal='"+stanggal+"',jam='"+sjam+"',unt
uk='"+suntuk+"',pesan='"+spesan+"',statu
s='"+sstatus+"' where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+"Sukses Di Ubah");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA SUKSES
DIUBAH");
System.out.println("===============
=============");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,belum konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
}
//-----------------
--------------------------------------
void Cari(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbsmskeluar where
kode='"+skode+"'";
ResultSet cari=sawo.executeQuery(SQLt);
if(cari.next()){
String skode=cari.getString("kode");
String stanggal=cari.getString("tanggal");
String sjam=cari.getString("jam");
String suntuk=cari.getString("untuk");
String spesan=cari.getString("pesan");
String sstatus=cari.getString("status");
System.out.println("Data detail dengan
kode="+skode);
System.out.println("tanggal="+stanggal);
System.out.println("jam="+sjam);
System.out.println("untuk="+ suntuk);
System.out.println("pesan="+spesan);
System.out.println("status="+sstatus);
txtkode.setText(skode);
txttanggal.setText(stanggal);
txtjam.setText(sjam);
txtuntuk.setText(suntuk);
txtpesan.setText(spesan);
txtstatus.setText(sstatus);
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+
skode+"Sukses
Di Cari!!!");
txtkode.setEditable(false);
txttanggal.requestFocus();
System.out.println("Data anda
kode="+skode+"sukses di cari!!!");
}
else{
JOptionPane.showMessageDialog(null,"Data
tidak Ditemukan");
}
System.out.println("===============
===========================
==============");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
Kesalahan,mungkin database atau tabelnya
belum ada");}
}
//-----------------
--------------------------------
public static void
main(String[]args){
javax.swing.SwingUtilities.invokeLater(new
Runnable(){
public void run(){
smskeluar app=new smskeluar();
app.lp2maray();
}
});
}
//-----------------
-------------------------------
void Bersih(){
txtkode.setText("");
txttanggal.setText("");
txtjam.setText("");
txtuntuk.setText("");
txtpesan.setText("");
txtstatus.setText("");
txtkode.requestFocus();
}
//-----------------
------------------------------
void lihatdata(){
try{
hapustabel();
cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbsmskeluar";
ResultSet
cari=sawo.executeQuery(SQLt);
while(cari.next()){
String
sskode=cari.getString("kode");
String
sstanggal=cari.getString("tanggal");
String
ssjam=cari.getString("jam");
String
ssuntuk=cari.getString("untuk");
String
sspesan=cari.getString("pesan");
String
ssstatus=cari.getString("status");
String[]data={"",sskode,sstanggal,ssjam,ss
untuk,sspesan,ssstatus};
modelnya.addRow(data);
//
System.out.println(a+"\t"+aa+"\t"+aaa+"\t
"+aaaa+"\t"+aaaaa\t"+sstatus\t"+spasswor
d\t"+sstatus);
System.out.println("----------------
--------------------------");
resetNo();
}
sawo.close();
cery.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek lihat data");
System.out.println("Terjadi
kesalahanAA,mungkin database atau
tabelnya belum ada");}
}
//------------------------------------
-----------------------
void resetNo(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
String
Nomor=String.valueOf(i+1);
modelnya.setValueAt(Nomor,i,0);
}
}
//-------------------------------------
----------------------
void hapustabel(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
modelnya.removeRow(0);
Bersih();
}
}
//-------------------------------------
----------------------
}
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.sql.Statement;
import javax.swing.table.DefaultTableModel;
public class smsmasuk implements
ActionListener{
Connection cery;
Koneksi somay;
String SQLt;
Statement sawo;
String
skode,stanggal,sjam,sdari,spesan,sstatus;
public JLabel
lblkode,lbltanggal,lbljam,lbldari,lblpesan,lbls
tatus;
public JTextField
txtkode,txttanggal,txtjam,txtdari,txtpesan,t
xtstatus;
public JButton
btnNew,btnSave,btnDelete,btnUpdate,btnEx
it,btnCari;
String[]judul={"No","kode","tanggal","jam",
"dari","pesan","status"};
DefaultTableModel
modelnya=new
DefaultTableModel(null,judul);
JTable tabelnya=new JTable();
JScrollPane scrollnya=new
JScrollPane();
JOptionPane jpane=new
JOptionPane();
//---------------------------------------
--------------------
public smsmasuk(){
tabelnya.setModel(modelnya);
scrollnya.getViewport().add(tabelnya);
tabelnya.setEnabled(true);
scrollnya.setBounds(10,350,520,300);
lblkode=new JLabel("kode:");
lblkode.setLocation(10,10);
lblkode.setSize(lblkode.getPreferredSize());
txtkode=new JTextField(20);
txtkode.setLocation(10,25);
txtkode.setSize(txtkode.getPreferredSize());
lbltanggal=new
JLabel("tanggal:");
lbltanggal.setLocation(10,45);
lbltanggal.setSize(lbltanggal.getPreferredSiz
e());
txttanggal=new JTextField(20);
txttanggal.setLocation(10,60);
txttanggal.setSize(txttanggal.getPreferredSi
ze());
lbljam=new JLabel("jam:");
lbljam.setLocation(10,80);
lbljam.setSize(lbljam.getPreferredSize());
txtjam=new JTextField(20);
txtjam.setLocation(10,95);
txtjam.setSize(txtjam.getPreferredSize());
lbldari=new JLabel("dari:");
lbldari.setLocation(10,115);
lbldari.setSize(lbldari.getPreferredSize());
txtdari=new JTextField(20);
txtdari.setLocation(10,130);
txtdari.setSize(txtdari.getPreferredSize());
lblpesan=new JLabel("pesan:");
lblpesan.setLocation(10,150);
lblpesan.setSize(lblpesan.getPreferredSize()
);
txtpesan=new JTextField(20);
txtpesan.setLocation(10,165);
txtpesan.setSize(txtpesan.getPreferredSize(
));
lblstatus=new JLabel("status:");
lblstatus.setLocation(10,185);
lblstatus.setSize(lblstatus.getPreferredSize()
);
txtstatus=new JTextField(20);
txtstatus.setLocation(10,200);
txtstatus.setSize(txtstatus.getPreferredSize(
));
btnNew=new JButton("New");
btnNew.setLocation(10,300);
btnNew.setSize(btnNew.getPreferredSize());
btnNew.addActionListener(this);
btnNew.setMnemonic('e');
btnSave=new JButton("Save");
btnSave.setLocation(70,300);
btnSave.setSize(btnSave.getPreferredSize()
);
btnSave.addActionListener(this);
btnSave.setMnemonic('a');
btnDelete=new JButton("Del");
btnDelete.setLocation(135,300);
btnDelete.setSize(btnDelete.getPreferredSiz
e());
btnDelete.addActionListener(this);
btnDelete.setMnemonic('I');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnUpdate=new JButton("Upd");
btnUpdate.setLocation(190,300);
btnUpdate.setSize(
btnUpdate.getPreferredSize());
btnUpdate.addActionListener(this);
btnUpdate.setMnemonic('U');
btnExit=new JButton("Exit");
btnExit.setLocation(310,300);
btnExit.setSize(
btnExit.getPreferredSize());
btnExit.addActionListener(this);
btnExit.setMnemonic('t');
btnCari=new JButton("Cari");
btnCari.setLocation(250,300);
btnCari.setSize(
btnCari.getPreferredSize());
btnCari.addActionListener(this);
btnCari.setMnemonic('C');
}
//------------------------------------
-----------------------
public void lp2maray(){
JFrame.setDefaultLookAndFeelDecorated(tru
e);
JFrame frame=new
JFrame("Data Siswa");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXI
T_ON_CLOSE);
frame.getContentPane().add(lblkode);
frame.getContentPane().add(txtkode);
frame.getContentPane().add(lbltanggal);
frame.getContentPane().add(txttanggal);
frame.getContentPane().add(lbljam);
frame.getContentPane().add(txtjam);
frame.getContentPane().add(lbldari);
frame.getContentPane().add(txtdari);
frame.getContentPane().add(lblpesan);
frame.getContentPane().add(txtpesan);
frame.getContentPane().add(lblstatus);
frame.getContentPane().add(txtstatus);
frame.getContentPane().add(btnNew);
frame.getContentPane().add(btnSave);
frame.getContentPane().add(btnDelete);
frame.getContentPane().add(btnUpdate);
frame.getContentPane().add(btnExit);
frame.getContentPane().add(btnCari);
frame.setBounds(0, 0,
550, 700);
frame.setLocationRelativeTo(null);
frame.getContentPane().add(scrollnya);
try{somay=new
Koneksi();}
catch(Exception e){
JOptionPane.showMessageDialog(null,
"Terjadi Kesalahan, Mungkin Databasenya
Belum Konek!!!");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
frame.setVisible(true);
}
//------------------------------------
-----------------------
public void
actionPerformed(ActionEvent event){
JButton
btn=(JButton)event.getSource();
if(btn==btnSave){
Simpan();
}
else if(btn==btnNew){
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
}
else if(btn==btnDelete){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " + "Mengakhiri
Aplikasi Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
Hapus();
}
}
else if(btn==btnUpdate){
Ubah();
}
else if(btn==btnExit){
if(JOptionPane.showConfirmDialog(null,"Apa
kah Anda yakin akan " +
"Mengakhiri Aplikasi
Ini???","KOnfirmasi",
JOptionPane.YES_NO_OPTION,JOpt
ionPane.QUESTION_MESSAGE)==
JOptionPane.YES_OPTION){
System.exit(0);
}
}
else if(btn==btnCari){
Cari();
}
}
//-=
void Simpan(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
sdari=txtdari.getText();
spesan=txtpesan.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="insert into
tbsmsmasuk
values('"+skode+"','"+stanggal+"','"+sjam
+"','"+sdari+"','"+spesan+"','"+sstatus+"')"
;
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Simpan");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DITAMBAHKAN");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//------------------------------------
-----------------------
void Hapus(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="delete from
tbsmsmasuk where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+" Sukses Di
Hapus");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA
SUKSES DIHAPUS");
System.out.println("===============
=========");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");
}
lihatdata();
}
//----------------------------------
-------------------------
void Ubah(){
skode=txtkode.getText();
stanggal=txttanggal.getText();
sjam=txtjam.getText();
sdari=txtdari.getText();
spesan=txtpesan.getText();
sstatus=txtstatus.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Update
tbsmsmasuk set
tanggal='"+stanggal+"',jam='"+sjam+"',dar
i='"+sdari+"',pesan='"+spesan+"',status='"
+sstatus+"' where kode='"+skode+"'";
sawo.executeUpdate(SQLt);
sawo.close();
cery.close();
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+skode+"Sukses Di Ubah");
Bersih();
txtkode.setEditable(true);
txtkode.requestFocus();
System.out.println("DATA SUKSES
DIUBAH");
System.out.println("===============
=============");}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,belum konek");
System.out.println("Terjadi
kesalahan,mungkin database atau tabelnya
belum ada");}
lihatdata();
}
//-----------------
--------------------------------------
void Cari(){
skode=txtkode.getText();
try{cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbsmsmasuk where
kode='"+skode+"'";
ResultSet cari=sawo.executeQuery(SQLt);
if(cari.next()){
String a=cari.getString("kode");
String aa=cari.getString("tanggal");
String aaa=cari.getString("jam");
String aaaa=cari.getString("dari");
String aaaaa=cari.getString("pesan");
String sstatus=cari.getString("status");
System.out.println("Data detail dengan
kode="+a);
System.out.println("tanggal="+aa);
System.out.println("jam="+aaa);
System.out.println("dari="+aaaa);
System.out.println("pesan="+aaaaa);
System.out.println("status="+sstatus);
txtkode.setText(a);
txttanggal.setText(aa);
txtjam.setText(aaa);
txtdari.setText(aaaa);
txtpesan.setText(aaaaa);
txtstatus.setText(sstatus);
JOptionPane.showMessageDialog(null,"Data
Dengan kode="+
skode+"Sukses
Di Cari!!!");
txtkode.setEditable(false);
txttanggal.requestFocus();
System.out.println("Data anda
kode="+skode+"sukses di cari!!!");
}
else{
JOptionPane.showMessageDialog(null,"Data
tidak Ditemukan");
}
System.out.println("===============
===========================
==============");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek");
System.out.println("Terjadi
Kesalahan,mungkin database atau tabelnya
belum ada");}
}
//-----------------
--------------------------------
public static void
main(String[]args){
javax.swing.SwingUtilities.invokeLater(new
Runnable(){
public void run(){
smsmasuk app=new smsmasuk();
app.lp2maray();
}
});
}
//-----------------
-------------------------------
void Bersih(){
txtkode.setText("");
txttanggal.setText("");
txtjam.setText("");
txtdari.setText("");
txtpesan.setText("");
txtstatus.setText("");
txtkode.requestFocus();
}
//-----------------
------------------------------
void lihatdata(){
try{
hapustabel();
cery=somay.bakso();
sawo=cery.createStatement();
SQLt="Select * from tbsmsmasuk";
ResultSet
cari=sawo.executeQuery(SQLt);
while(cari.next()){
String
sskode=cari.getString("kode");
String
sstanggal=cari.getString("tanggal");
String
ssjam=cari.getString("jam");
String
ssdari=cari.getString("dari");
String
sspesan=cari.getString("pesan");
String
ssstatus=cari.getString("status");
String[]data={"",sskode,sstanggal,ssjam,ss
dari,sspesan,ssstatus};
modelnya.addRow(data);
//
System.out.println(a+"\t"+aa+"\t"+aaa+"\t
"+aaaa+"\t"+aaaaa\t"+sstatus\t"+spasswor
d\t"+sstatus);
System.out.println("----------------
--------------------------");
resetNo();
}
sawo.close();
cery.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Terja
di Kesalahan,Belum Konek lihat data");
System.out.println("Terjadi
kesalahanAA,mungkin database atau
tabelnya belum ada");}
}
//------------------------------------
-----------------------
void resetNo(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
String
Nomor=String.valueOf(i+1);
modelnya.setValueAt(Nomor,i,0);
}
}
//-------------------------------------
----------------------
void hapustabel(){
int
baris=modelnya.getRowCount();
for(int i=0;i<baris;i++){
modelnya.removeRow(0);
Bersih();
}
}
//-------------------------------------
----------------------
}
import java.io.*;
public class tecCmd {
private static String getPrintOut(String
cmd) {
StringBuffer sb = new StringBuffer();
Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec(cmd);
// Mendapatkan InputStream dan
menciptakan
// objek BufferedReader
BufferedReader in = new
BufferedReader
(new
InputStreamReader(p.getInputStream()));
String s;
// Membaca input dan simpan ke
StringBuffer
while ((s = in.readLine()) != null) {
sb.append(s);
sb.append("\n");
}
in.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return sb.toString();
}
public String baca(String cmd) {
//String cmd = "netstat -an";
//System.out.println("Output: " + cmd);
//System.out.println(getPrintOut(cmd));
return getPrintOut(cmd);
}
}