pembuatan aplikasi penyebaran informasi...

220
PEMBUATAN APLIKASI PENYEBARAN INFORMASI BERBASIS SHORT MESSAGE SERVICE (SMS) DI LINGKUNGAN PROGRAM STUDI TEKNIK INFORMATIKA Oleh RUSDIANTORO NIM : 104091002846 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI (UIN) JAKARTA 2010

Upload: hatu

Post on 06-Mar-2019

241 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

PEMBUATAN APLIKASI PENYEBARAN INFORMASI BERBASIS

SHORT MESSAGE SERVICE (SMS)

DI LINGKUNGAN PROGRAM STUDI TEKNIK INFORMATIKA

Oleh

RUSDIANTORO

NIM : 104091002846

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI (UIN)

JAKARTA

2010

Page 2: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

vi

ABSTRAK

Rusdiantoro (104091002846). Pembuatan Aplikasi EI (Extract Information) Berbasis

Sms di lingkungan Program Studi TI, mengambil sample pada penyebaran informasi

yang terjadi di lingkungan Program Studi TI. Dibimbing oleh Bapak Yusuf

Durachman dan Bapak Zulfiandri.

Program Studi TI adalah suatu sub unit yang menjalankan aktivitas akademik yang

ada pada program studi teknik informatika, yang mempunyai tugas mengatur segala

jenis aktivitas, menyebarkan informasi serta kegiatan apapun yang dilakukan di dalam

Program Studi TI.

Dalam menjalankan tugasnya pihak Program Studi cenderung mengalami kesulitan

untuk memberikan informasi kepada mahasiswa, dan bagi mahasiswa, mereka juga

mengalami kesulitan dalam pencarian informasi di sekitar fakultas, seperti

mendapatkan informasi Dosen Pembina Akademik, Dosen Pembimbing Praktek Kerja

Lapangan dan informasi lainnya. Kebutuhan mendasar pada informasi yang bersifat

penting agar pihak mahasiswa dan Program Studi dapat mengetahui informasi yang

mereka butuhkan, membuat saya sebagai peneliti tertarik untuk membuat aplikasi

berbasis SMS yang dapat membantu pihak Program Studi dan mahasiswa untuk

mendapatkan informasi yang mereka inginkan. Dengan judul “PEMBUATAN

APLIKASI PENYEBARAN INFORMASI BERBASIS SHORT MESSAGE

SERVOCE (SMS) DI LINGKUNGAN PROGRAM STUDI TEKNIK

INFORMATIKA “.

Dalam pengembangan sistem ini, penulis menggunakan metodologi RAD (Rapid

Application Development). Secara garis besar, aplikasi ini meliputi penyebaran

informasi untuk mahasiswa, informasi biaya semester, informasi dosen Pembina

Akademik dan Pembina PKL serta Polling sms untuk mengetahui suara mahasiswa.

dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java dan

menggunakan MySQL sebagai database nya serta menggunakan SmitDev Server

sebagai sms gateway. Dalam menjalankan aplikasi ini, penulis akan menggunakan

bahasa AT COMMAND untuk bahasa perintah handphone dan Bluetooth sebagai

media perantara antara komputer dan handphone.

Kata Kunci : Short Message Service, Program Studi Teknik Informatika, Informasi.

V Bab + xviii Halaman + 132 Halaman + Daftar Gambar + Daftar Tabel + Daftar

Simbol + Daftar Pustaka + Lampiran.

Pustaka Acuan (19, 2003-2009)

Page 3: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

vi

KATA PENGANTAR

Alhamdulillah, penulis panjatkan kepada Allah SWT atas seluruh rahmat dan karunia-Nya

yang telah diberokan kepada penulis sehingga penulis dapat melaksanakan Penelitian dan

menyelesaikan tugas akhir ini. Shalawat beserta salam selalu tersampaikan kepada junjungan

kita Nabi besar Muhammad SAW, beserta kepada para keluarga, sahabat, dan seluruh

pengikutnya.

Skripsi ini berjudul Pembuatan Aplikasi Penyebaran Informasi Berbasis Short Message

Service (SMS) di lingkungan Program Studi Teknik Informatika, yang disusun untuk

memenuhi salah satu syarat dalam menyelesaikan program S1 pada program studi Teknik

Informatika di Universitas Islam Negeri Syarif Hidayatullah Jakarta.

Pada kesempatan ini, penulis ingin menyampaikan ucapan terima kasih kepada pihak – pihak

yang telah mendukung terselesaikanya skripsi ini. Karena tanpa dukungan dari mereka,

penulis tidak akan mampu menyelesaikan laporan ini dengan baik. Mereka yang teleh

mendukung penulis adalah :

1. DR. Syopiansyah Jaya Putra, M.Sis. Selaku Dekan Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta.

2. Yusuf Durrachman, MIT dan Viva Arifin selaku Ketua dan Sekretaris Program Studi

Teknik Informatika beserta staff yang tidak dapat penulis sebutkan satu persatu.

3. Dosen Pembimbing, Bapak Yusuf Durrachman, MIT dan Bapak Zulfiandri MMSI.

Terima kasih banyak untuk waktu dan pengarahannya yang telah diberikan selama

ini.

4. Dosen Penguji, Husni Teja Sukmana, Phd dan Viva Arifin, MMSI. Terima kasih

banyak untuk waktu dan bimbinganya selama revisi sidang berlangsung. Penulis

Page 4: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

vii

mohon maaf jika banyak mengganggu waktu bapak-ibu penguji agar dapat

terselesaikannya skripsi ini hingga akhir.

5. Kedua Orang Tuaku, tanpa doa dari kalian, penulis tidak akan memiliki semangat dan

motivasi untuk menyelesaikan penulisan ini. Adikku (Dinni), yang selalu

mengingatkan penulis untuk menyelesaikan tugas akhir ini.

6. Untuk seseorang yang selalu membantu dan memotivasiku dari awal penulisan

hingga seminar dan sidang, serta memberikan doa dan perhatian untukku ”Dian

Berliani”.

7. Kepada teman – temanku, Irham, Ismaya, Rijal, Andika dan teman – teman TI – B

2004 lainya yang tidak bisa penulis sebutkan satu per satu.

8. Kepada Staff Fakultas Sains dan Teknologi terutama Program Studi Teknik

Informatika yang tidak bisa disebutkan namanya satu per satu namun tidak

mengurangi rasa terima kasih saya sudah membantu dalam menyelesaikan penulisan

ini.

Pada kesempatan ini penulis ingin menyampaikan terima kasih yang sebesar-

besarnya kepada semua pihak yang membantu penyelesaian penulisan skripsi ini hingga

akhir. Semoga segala bantuan yang diberikan rekan - rekan akan mendapatkan balasan

yang setimpal dari Allah AWT, Amiin.

Akhir kata penulis berharap agar skripsi ini dapat bermanfaat bagi semua yang

membaca.

Ciputat, Juni 2010

Penulis

Page 5: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

viii

DAFTAR ISI

Halaman

Halaman Judul………………………………………………………………… i

Halaman Persetujuan Pembimbing…………………………………………… ii

Halaman Pengesahan Ujian………………………………………………….. iii

Halaman Pernyataan………………………………………………………….. iv

ABSTRAK…………………………………………………………………….. v

KATA PENGANTAR…………………………………………………………. vi

DAFTAR ISI………………………………………………………………….. viii

DAFTAR GAMBAR………………………………………………………….. xiii

DAFTAR TABEL……………………………………………………………... xv

DAFTAR LAMPIRAN………………………………………………………. xvi

SIMBOL – SIMBOL ..………………………………………………………... xvii

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

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

1.2 Rumusan Masalah………………………………………………………… 4

1.3 Batasan Masalah………………………………………………………… 5

1.4 Tujuan dan Manfaat Penelitian……………………………………………. 5

1.4.1 Tujuan Penelitian……………………………………………………. 5

1.4.2 Manfaat Penelitian…………………………………………………... 6

1.5 Metodologi Penelitian…………………………………………………….. 7

1.5.1 Waktu dan Tempat Penelitian……………………………………….. 7

1.5.2 Metode Pengumpulan Data…………………………………………….. 7

Page 6: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

ix

1.5.3 Metode Pengembangan Sistem…………………………………………. 9

1.6 Sistematika Penulisan Skripsi……………………………………………… 11

BAB II LANDASAN TEORI……………………………………………….. 12

2.1 Pembuatan……………………………………………………………………. 12

2.2 Aplikasi……….………..…………………………………………………….. 13

2.3 Pembuatan Aplikasi…………..……………………………………………… 14

2.4 SMS Gateway................................................................................................... 14

2.5 SMS (Short Message Service)..……………………………………………… 16

2.5.1 Pengertian SMS....................................................................................... 16

2.5.2 Sejarah SMS............................................................................................ 17

2.5.3 Fasilitas Dasar SMS................................................................................ 17

2.5.4 Kelebihan Utama SMS............................................................................ 19

2.6 GSM (Global System for Mobile)…………………………………………… 20

2.7 Informasi..................................................…………………………………… 20

2.8 Dosen..................……………………………………………………………. 21

2.9 Polling.............................……………………………………………………. 21

2.10 AT COMMAND............…………………………………………………… 22

2.10.1 AT Command untuk Komunikasi Port....…………………………….. 23

2.10.2 AT Command untuk Pemilihan SMS Storage..………………………. 23

2.10.3 AT Command untuk SMS...………………………………………….. 23

2.11 Java…………………………………………………………………………. 24

2.11.1 Pengertian Java……………………………………………………….. 24

2.11.2 Versi Java…………………………………………………………….. 26

2.11.3 Kelebihan dan Kekurangan Bahasa Pemrograman Java.…………….. 26

Page 7: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

x

2.11.4 Java Net Beans dan Java Studio Enterprise.………………………….. 29

2.12 My Structured Query Language(MySQL)…………..……...…………… 30

2.12.1 Fungsi SQL…..……………………………………………………. 31

2.12.2 Tipe Data SQL…………………………………………………….. 32

2.12.3 Beberapa Perintah SQL.…………………………………………… 34

2.12.3.1 Perintah Select……………………………………………….. 37

2.13.3.2 Perintah Insert........................................................................... 36

2.12.3.3 Perintah Update..…………………………………………….. 37

2.12.3.4 Perintah Delete……………………………………………….. 39

2.13 Bluetooth.....……………………………………………………………… 40

2.13.1 Sejarah Bluetooth.............................................................................. 40

2.13.2 Cara Kerja Bluetooth......................................................................... 40

2.13.3 Frekuensi Bluetooth........................................................................... 42

2.13.4 Bluetooth Serial Port.......................................................................... 42

2.14 Bagan Alir (Flowchart).………………………………………………….. 43

2.15 Perancangan Sistem DFD.……………………………………………….. 44

2.15.1 Komponen DFD................................................................................. 44

2.15.2 Levelisasi DFD.................................................................................. 45

2.15.3 Penggambaran DFD........................................................................... 46

2.15.4 Entity Relationship Diagram (ERD).................................................. 48

2.16 Kamus Data...…………………………………………………………….. 51

2.16.1 Pendefinisian Data Element Dalam Kamus Data..…………………. 51

2.17 Normalisasi..……………………………………………………………… 54

2.17.1 Tujuan Dari Normalisasi .................................................................... 54

Page 8: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xi

2.17.2 Proses Normalisasi.............................................................................. 54

2.17.3 Tahapan Normalisasi ......................................................................... 55

2.17.3.1 Ketergantungan Fungsional....................................................... 56

2.17.3.2 Ketergantungan Fungsional Penuh............................................ 57

2.17.3.3 Ketergantungan Transitif........................................................... 58

2.18 Metode Penelitian RAD.…………………………………………………. 66

2.19 Studi Literatur....…………………………………………………………. 69

BAB III METODOLOGI PENELITIAN……………………………………... 72

3.1 Waktu dan Tempat Penelitian..…………………………………………… 72

3.2 Profil Prodi TI...................................……….…………………………...... 72

3.3 Kajian Penelitian...................................……….…………………………. 74

3.4 Prosedur Penelitian………………………………………………………… 75

3.5 Teknik Pengumpulan Data.................……….…………………………...... 78

BAB IV ANALISIS IMPLEMENTASI….…………………………………… 79

4.1 Bisnis Modelling....……………………………..….……………………… 79

4.1.1 Informasi apa saja yang mengendalikan proses................................... 82

4.1.2 Informasi apa yang dimunculkan......................................................... 82

4.1.3 Dimana Informasi Digunakan.............................................................. 83

4.1.4 Siapa Yang Memproses....................................................................... 83

4.2 Data Modeling......………………………..……..………………………… 84

4.2.1 DFD (Data Flow Diagram)................................................................ 84

4.2.1 Flowchart Data Flow Diagram............................................................ 91

4.2.3 Kamus Data......................................................................................... 102

4.3 Process Modelling…………………..……………...…………...................... 105

Page 9: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xii

4.3.1 Entity Relationship Diagram.................................................................. 105

4.3.2 Relasi Antar Tabel.................................................................................. 106

4.3.3 Normalisasi............................................................................................. 107

4.3.4 Perancangan Database........................................................................... 114

4.4 Application Generation...…………………………………………………… 116

4.5 Testing & Turnover.....................…………………………………………… 129

BAB V PENUTUP……………………………………………………………. 130

5.1 Kesimpulan………………………………………………………………… 130

5.2 Saran……………………………………………………………………….. 131

DAFTAR PUSTAKA………………………………………………………….. 132

Page 10: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xiii

DAFTAR GAMBAR

Halaman

Gambar 2.1 SMS Mobile Terminated point to point....................................... 17

Gambar 2.2 SMS Mobile Originated Point to Point....................................... 18

Gambar 2.3 Levelisasi DFD.......……………………………………………. 45

Gambar 2.4 Data Flow Untuk Perhitungan Pajak........................................... 53

Gambar 2.5 Tahapan Normalisasi................................................................... 55

Gambar 2.6 Diagram Ketergantungan Fungsional 1....................................... 60

Gambar 2.7 Diagram Ketergantungan Fungsional 2…………....................... 64

Gambar 2.8 Model RAD.............................………………………………… 67

Gambar 4.1 Bisnis Modelling....................…………………………………. 79

Gambar 4.2 Context Diagram Aplikasi EI (Extract Information)…………... 84

Gambar 4.3 Diagram Zero Aplikasi EI........................................................... 85

Gambar 4.4 Diagram detail level 1 proses kirim SMS…………................... 86

Gambar 4.5 Diagram detail Level 1 proses tanya pembimbing PKL............. 87

Gambar 4.6 Diagram detail Level 1 proses Tanya Biaya Mahasiswa.............. 88

Gambar 4.7 Diagram detail Level 1 proses Polling SMS................................. 89

Gambar 4.8 Diagram detail Level 1 proses Tanya Dosen PA.......................... 90

Gambar 4.9 Flowchart 1.1p proses isi no telepon............................................ 91

Gambar 4.10 Flowchart 1.2p Input Buku Telepon........................................... 92

Gambar 4.11 Flowchart 1.3p Isi Pesan............................................................. 93

Gambar 4.12 Flowchart 2.1p Input Dosen Pembimbing PKL.......................... 94

Gambar 4.13 Flowchart 2.2p Tanya Dosen Pembimbing PKL........................ 95

Page 11: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xiv

Gambar 4.14 flowchart 3.1p Input Biaya Semester.......................................... 96

Gambar 4.15 Flowchart 3.2p Tanya biaya Semester........................................ 97

Gambar 4.16 Flowchart 4.1p Input Polling SMS............................................. 98

Gambar 4.17 Flowchart 4.2p Proses Isi Polling SMS...................................... 99

Gambar 4.18 Flowchart 5.1p Input Dosen Pembimbing Akademik................ 100

Gambar 4.19 Flowchart 5.2p Tanya Dosen Pembimbing Akademik.............. 101

Gambar 4.20 Entity Relationship Diagram EI………………………………. 105

Gambar 4.21 Relasi Antar Tabel..................................................................... 106

Gambar 4.22 Tampilan Jendela Utama Aplikasi EI........................................ 117

Gambar 4.23 Tampilan Jendela Kirim SMS................................................... 118

Gambar 4.24 Tampilan Jendela Pengaturan Terminal................................. 119

Gambar 4.25 Tampilan Jendela SMS Masuk................................................. 120

Gambar 4.26 Tampilan Jendela SMS Keluar................................................. 121

Gambar 4.27 Tampilan Jendela Buku Telepon.............................................. 122

Gambar 4.28 Tampilan Jendela Input Data Mahasiswa, Dosen PA & PKL.. 123

Gambar 4.29 Tampilan Jendela Biaya Semester............................................ 124

Gambar 4.30 Tampilan Jendela Pertanyaan Polling....................................... 125

Gambar 4.31 Tampilan Jendela Hasil Polling................................................ 126

Gambar 4.32 Tampilan Bluetooth.................................................................. 127

Gambar 4.33 Detect Perangkat....................................................................... 128

Gambar 4.34 Bluetooth serial port service..................................................... 128

Gambar 4.35 Password untuk konfirmasi...................................................... 129

Page 12: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xv

DAFTAR TABEL

Halaman

Tabel 2.1 Contoh AT Command.................................................................... 24

Tabel 2.2 Frekuensi Bluetooth di Berbagai Negara....................................... 42

Tabel 2.3 Pemasok Barang....................….………………………………… 56

Tabel 2.4 Kirim Barang.........................……………………………………. 57

Tabel 2.5 Gambar Contoh Ketergantungan Transitif……………………….. 58

Tabel 2.6 KIRIM-1 (Unnormal)................…………………………………. 59

Tabel 2.7 KIRIM-2 (1NF).................………………………………………. 60

Tabel 2.8 Pemasok-1 (2NF).................…………………………………….. 61

Tabel 2.9 Kirim-3 (3NF)...........................................................……………. 62

Tabel 2.10 Pemasok-2 (3NF)....................................................……………. 62

Tabel 2.11 Pemasok-3 (3NF)...........................................................………. 63

Tabel 2.12 Mahasiswa-1 (Unnormal).......................................……………. 63

Tabel 2.13 Mahasiswa-2 (1NF)....................................................…………. 64

Tabel 2.14 Mahasiswa-3 (3NF)....................................................…………. 65

Tabel 2.15 Nilai (3NF).................................................................…………. 65

Tabel 2.16 Mata Kuliah (3NF).....................................................…………. 65

Tabel 2.17 Dosen (3NF)...............................................................…………. 66

Page 13: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xvi

DAFTAR LAMPIRAN

Halaman

LAMPIRAN A : Wawancara....................................................................……. 134

LAMPIRAN B : Coding Aplikasi EI...........................……………………….. 136

LAMPIRAN C : Pembuatan Database...........................……………………... 179

Page 14: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xvii

SIMBOL – SIMBOL

Komponen DFD

Page 15: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xviii

Simbol Bagan Alir (Flowchart)

Page 16: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xix

Page 17: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xx

Simbol ERD

Page 18: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

xxi

Simbol Notasi Kamus Data

NOTASI ARTI

=

+

( )

{ }

[ ]

* *

@

I

Alias

Terdiri dari, terbentuk dari, sama dengan

dan

optional

iterasi/pengulangan, misal : 1{...} 10

pilih salah satu dari beberapa alternatif

(pilihan) misal : [A|B|C|D]

komentar

identifier suatu data store

pemisah dalam bentuk [ ]

nama lain untuk suatu data

Page 19: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

BAB I

PENDAHULUAN

1.1 Latar Belakang.

SMS (Short Message Service) merupakan layanan atau fasilitas yang

diberikan dan dikembangkan oleh para operator GSM (Global System of Mobile

Communication). Layanan atau fasilitas SMS merupakan salah satu hasil

pengembangan dari aplikasi perangkat seluler atau mobile-phone yang dapat

digunakan sebagai media berkomunikasi. Adapun cara berkomunikasi memakai SMS

adalah dengan cara mengirimkan sebuah pesan singkat, berupa text atau

alphanumeric yang sederhana. Cara komunikasi dengan menggunakan SMS

merupakan cara berkomunikasi yang lain, selain berkomunikasi dengan mengirim

sinyal suara.

Fasilitas SMS sampai saat ini masih dikembangkan lebih lanjut, tidak sekedar

untuk mengirim dan menerima sebuah pesan saja, tetapi sekarang telah banyak

dimanfaatkan untuk berbagai macam layanan. Mulai dari layanan marketing, layanan

informasi baik informasi film bioskop, jadwal perjalanan, humor, harga saham,

hingga layanan yang lebih kompleks seperti SMS Banking. SMS Polling dan Quiz,

serta masih banyak layanan lainya yang dapat dikembangkan dengan menggunakan

media SMS ini sesuai dengan kebutuhan yang diperlukan.

Page 20: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

2

Program studi TI adalah suatu badan yang menjalankan aktivitas akademik

program studi Teknik Informatika, yang mempunyai tugas mengatur segala jenis

aktivitas dan kegiatan yang dilakukan di dalam program studi TI. Program studi TI

juga mempunyai tugas untuk memberikan informasi kepada mahasiswa dan melayani

mahasiswa dalam bidang seputar kegiatan mahasiswa. Susunan staff dalam Program

studi TI dikepalai oleh seorang kaprogram studi dan dalam kinerjanya kepala

program studi dibantu oleh seorang sekretaris, seorang kepala pengurus mahasiswa

program non-reguler dan tiga orang orang pemberi pelayanan informasi bagi

mahasiswa

Jenis pelayanan yang diberikan oleh pihak Program studi TI kepada

mahasiswa diantaranya adalah mengurus surat-menyurat untuk mahasiswa,

memberikan informasi dan dalam kegiatanya program studi juga menerima informasi

dari mahasiswa seperti biodata mahasiswa, pendapat dari mahasiswa mengenai

kinerja dosen, fasilitas fakultas serta masih banyak lagi jenis pelayanan dan informasi

yang diberikan atau diterima pihak program studi dari mahasiswa. Akan tetapi dalam

berjalanya kegiatan tersebut, pihak program studi cenderung mengalami kesulitan

untuk mendapatkan informasi serta mencari tahu informasi yang dibutuhkan baik

bagi pihak mahasiswa atau pihak program studi. Bagi pihak mahasiswa, mereka

banyak mengalami kesulitan dalam pencarian informasi di sekitar fakultas, dari

informasi Dosen Pembina Akademik, Dosen Pembimbing Praktek Kerja Lapangan

sampai informasi jadwal kelas dan informasi lainya. Dengan banyaknya jumlah

mahasiswa yang ada di program studi TI, dan terjadinya kesulitan dalam mengatur

Page 21: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

3

jadwal mahasiswa untuk meminta informasi kepada pihak program studi maka sering

terjadi keterlambatan dalam permintaan informasi yang diajukan oleh mahasiswa,

baik bagi mereka yang ingin mengetahui dosen PA dan PKL atau mengurus surat –

surat yang dibutuhkan oleh mahasiswa. Bagi pihak program studi, mereka mengalami

kesulitan dalam memberikan informasi, menggumpulkan suara mahasiswa dan

informasi dari mahasiswa yang berperan penting bagi pihak program studi.

Sedangkan informasi yang disampaikan oleh pihak program studi mempunyai

peranan penting dalam kebutuhan informasi bagi mahasiswa, dan jika ada informasi

yang akan diberikan oleh pihak program studi kepada mahasiswa tertentu, mereka

masih mengalami kesulitan dalam memberikan informasi tersebut, karena belum ada

data yang lengkap atau mengalami kesulitan dalam pencarian data mahasiswa yang

bersangkutan.

Kebutuhan mendasar pada informasi yang bersifat penting agar pihak

mahasiswa dan program studi dapat mengetahui informasi yang mereka butuhkan

membuat saya sebagai peneliti tertarik untuk membuat aplikasi berbasis SMS yang

dapat membantu pihak program studi dan mahasiswa mendapatkan informasi yang

mereka inginkan. Dengan judul “ PEMBUATAN APLIKASI PENYEBARAN

INFORMASI BERBASIS SHORT MESSAGE SERVICE (SMS) DI

LINGKUNGAN PROGRAM STUDI TEKNIK INFORMATIKA “. Tulisan ini

merupakan penelitian skripsi yang merupakan syarat dalam memperoleh kelulusan

dan memperoleh gelar sarjana.

Page 22: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

4

1.2 Rumusan Masalah

Berbagai bentuk pencarian informasi telah banyak dilakukan oleh pihak

mahasiswa maupun program studi, dari pencarian informasi yang bersifat langsung

(direct) seperti menanyakan informasi langsung kepada pihak program studi atau

bersifat tidak langsung (indirect) seperti pengambilan informasi dari mahasiswa

dalam bentuk angket. Dan dalam aktivitas program studi atau mahasiswa terdapat

beberapa permasalahan yang menjadi penghambat dalam pemberian dan penerimaan

informasi, permasalahan tersebut adalah sebagai berikut :

a. Kurangnya komunikasi antara mahasiswa dan pihak program studi, menjadi

salah satu penyebab utama tidak berjalannya penyebaran informasi secara efisien

di FST.

b. Dalam menanyakan informasi kepada pihak program studi, banyaknya jumlah

mahasiswa membuat pihak program studi mengalami kesulitan dalam melayani

permintaan mahasiswa, sehingga sering terjadi keterlambatan dalam pelayanan

permintaan informasi yang diajukan oleh mahasiswa.

c. Membuat aplikasi penyebaran informasi yang membantu pihak program studi TI

dalam memberikan informasi kepada mahasiswa dengan info terbaru, seperti

informasi pembimbing praktek kerja lapangan, pembina akademik, biaya

semester dan polling sms yang membantu mengetahui suara mahasiswa.

Page 23: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

5

1.3 Batasan Masalah

Dalam pembuatan skripsi ini, peneliti membatasi permasalahan

dengan batasan masalah sebagai berikut :

a. Informasi yang diberikan dalam aplikasi ini berupa penyebaran informasi

langsung kepada mahasiswa, informasi dosen pembimbing praktek kerja

lapangan, pembina akademik, biaya semester dan polling sms.

b. Menggunakan media handphone bertipe GSM yaitu Siemens CX75 sebagai

server perantara antara aplikasi dari komputer dan koneksi sinyal.

c. Menggunakan program smitdev server untuk membuat koneksi antara Bahasa

pemrograman Java dengan handphone yang dikoneksikan ke dalam PC.

d. Pihak yang menggunakan aplikasi ini ialah staff program studi Teknik

Informatika yang membantu pelayanan informasi mahasiswa.

1.4 Tujuan dan Manfaat Penelitian

1.4.1. Tujuan Penelitian

Adapun tujuan dari peneliti membahas studi kasus ini adalah :

1. Untuk mengembangkan dan mengimplementasikan aplikasi berbasis SMS

untuk digunakan di lingkungan Program studi TI.

2. Bagi pihak program studi aplikasi ini dapat membantu mereka dalam

memberikan dan menerima informasi dari mahasiswa serta dapat mengetahui

suara mayoritas mahasiswa.

Page 24: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

6

3. Bagi pihak mahasiswa aplikasi ini diharapkan dapat membantu mahasiswa

dalam mendapatkan dan menerima informasi yang diberikan oleh pihak

program studi, terutama dalam hal pemberian informasi yang bersifat penting.

4. 1.4.2. Manfaat Penelitian

Manfaat dari penelitian ini adalah :

1. Bagi Peneliti.

a) Menambah pengalaman, memperluas wawasan pemikiran dan

mengembangkan potensi diri.

b) Memperoleh pengetahuan baru yang berhubungan dengan bahasa

pemrograman java dan MySQL.

c) Untuk memenuhi salah satu syarat kelulusan strata satu (S1)

Program Studi Teknik Informatika Fakultas Sains dan Teknologi

UIN Syarif Hidayatullah Jakarta.

2. Bagi Pihak Program Studi TI dan Mahasiswa.

a) Dengan dibuatnya aplikasi ini diharapkan akan mempermudah pihak

Program studi dan Mahasiswa dalam mencari dan mendapatkan

informasi yang dibutuhkan.

b) Dapat meningkatkan komunikasi antara pihak program studi dan

mahasiswa.

Page 25: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

7

3. Bagi Pihak Universitas.

a) Sebagai sumbangan karya ilmiah dalam disiplin ilmu khususnya

dalam bidang teknologi informatika.

1.5 Metodologi Penelitian

Langkah-langkah dalam pengerjaan Tugas Akhir :

1.5.1 Waktu dan Tempat Penelitian

Penelitian pengembangan aplikasi ini dilaksanakan selama 3 (tiga)

bulan, dimulai pada tanggal 1 Oktober 2009 sampai dengan 1 Desember 2009.

Tempat penelitian di Program Studi Teknik Informatika, Fakultas Sains dan

Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta.

1.5.2 Metode Pengumpulan Data

Penelitian yang dilakukan adalah penelitian eksperimen dan simulasi.

Penelitian ini menggunakan sebuah laptop dan handphone sebagai sarana untuk

mengembangkan aplikasi berbasis SMS.

Page 26: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

8

a. Penelitian Kepustakaan

Metode ini dilakukan dengan cara mencari bahan – bahan atau

materi sumber yang dapat digunakan sebagai referensi peneliti atau

mencari hal – hal yang dapat digunakan dalam pembuatan aplikasi

berbasis SMS ini.

b. Wawancara

Wawancara bertujuan untuk mengetahui pendapat dari

mahasiswa apakah aplikasi berbasis SMS ini akan bermanfaat bagi

mahasiswa dan civitas akademik.

c. Studi Literatur tentang :

1) Pemrograman dengan bahasa Java, karena aplikasi berbasis SMS

ini akan dibuat menggunakan bahasa Java.

2) Koneksi antara mobile-phone dengan komputer melalui Kabel

Data, serta menggunakan Bluetooth sebagai media perantara.

3) Belajar bahasa pemrograman SQL, serta menggunakan MySQL

sebagai database-nya.

Page 27: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

9

1.5.3 Metode Pengembangan Sistem

Metode pengembangan sistem yang digunakan dalam penelitian ini

menggunakan metode RAD (Rapid Application Development) dan dengan

model-model sebagai berikut:

1). Model Bisnis

Pada tahap ini menentukan ruang lingkup program yang akan

dibangun sesuai fungsi – fungsi bisnis yang berjalan dalam proses bisnis

2). Model Data

Membentuk serangkaian objek data yang dibutuhkan untuk

menopang model bisnis tersebut. Pada tahapan ini, dilakukan analisa

terhadap berbagai macam hal yang dibutuhkan untuk membangun serta

mensimulasikan aplikasi berbasis SMS ini. Analisa yang dilakukan antara

lain adalah:

a) Analisa terhadap sumber daya yang dimiliki, termasuk untuk

menentukan jenis bahasa pemrograman dan database yang akan

digunakan.

b) Analisa terhadap teknologi SMS dan SMS Gateway.

c) Analisa serta memilih komponen yang tepat sesuai dengan

teknologi yang telah dipilih baik hardware maupun software untuk

memenuhi aplikasi layanan yang akan dibangun.

Page 28: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

10

3). Perencanaan dan Pembuatan Perangkat Lunak

a) Membuat agar mobile-phone yang ada di server dapat

berhubungan dengan komputer melalui kabel data, serta

menggunakan ATCommand dalam membaca data dari mobile-

phone ke PC.

b) Membuat aplikasi berbasis SMS.

c) Membuat server menjadi database untuk hasil informasi yang

diterima dari mahasiswa.

4.) Pengujian dan Analisa Perangkat Lunak

a) Pengujian program yang telah dibuat.

b) Analisa hasil output-an dari program yang telah dibuat.

5). Pengambilan Kesimpulan

Pengambilan kesimpulan terhadap alat yang telah dibuat sesuai

dengan hasil yang didapat dalam pengujian. Sedapat mungkin dilakukan

perbaikan-perbaikan sehinga mendapatkan hasil yang lebih optimum.

Page 29: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

11

1.6 Sistematika Penulisan Skripsi

Dalam penelitian karya ilmiah ini, penulis membagi pembahasan

menjadi beberapa bab yang secara singkat dapat dijelaskan sebagai berikut:

BAB I : Pendahuluan

Pada bab ini berisi pendahuluan yang terdiri dari latar belakang,

permasalahan, tujuan dan manfaat, metodologi penelitian dan

sistematika penelitian.

BAB II : Landasan Teori

Bab ini akan menjelaskan secara singkat teori yang diperlukan dalam

pembuatan aplikasi ini.

BAB III : Metodologi Penelitian

Pada bab ini akan dijelaskan proses penelitian peneliti dalam

merancang dan membangun aplikasi berbasis SMS.

BAB IV : Analisa dan Perancangan Sistem

Pada bab ini akan dibahas proses analisa peneliti dan perancangan

serta pembuatan sistem aplikasi berbasis SMS untuk mendapatkan

suara dari mahasiswa secara cepat dan mudah.

Page 30: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

12

BAB V : Kesimpulan dan Saran

Dalam bab ini berisi uraian tentang kesimpulan-kesimpulan yang

didapat serta memberikan saran yang dianggap perlu.

Page 31: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

BAB II

LANDASAN TEORI

2.1 Pembuatan

Pembuatan bertujuan untuk menghasilkan perangkat pembelajaran, seperti

silabus, bahan ajar, media, modul praktikum, latihan kerja siswa, alat mengukur

kemajuan belajar, alat mengukur hasil belajar, dan sebagainya. Yang melatar

belakangi perlunya dilakukan pembuatan adalah adanya masalah yang terkait dengan

perangkat pembelajaran yang kurang tepat. Masalah ini ditemui oleh peneliti dari

hasil pengamatan selama mengajar atau dari hasil needs assessment (Latief, 2009 :2).

Menurut undang – undang Republik Indonesia Nomor 18 Tahun 2002.

Pembuatan merupakan kegiatan ilmu pengetahuan dan teknologi yang bertujuan

memanfaatkan kaidah dan teori ilmu pengetahuan yang telah terbukti kebenarannya

untuk meningkatkan fungsi, manfaat, dan aplikasi ilmu pengetahuan dan teknologi

yang telah ada, atau menghasilkan teknologi baru.

Page 32: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

13

2.2 Aplikasi

Aplikasi dapat di definisikan sebagai suatu sistem komputer (yang terdiri dari

beberapa program, modul dan lain-lain) yang di desain untuk menyelesaikan tugas

operasional yang membantu user dalam menyelesaikan pekerjaanya (Runkle, 2008

:1).

Sumber dari (http://www.wikipedia.org) menjelaskan bahwa aplikasi adalah

suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer

langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya

dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai

kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut

untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama

perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media..

Tujuan utama dari pembuatan suatu aplikasi ialah membantu user dalam kegiatan

yang akan ia lakukan. Seperti aplikasi MS Word yang membantu user untuk

mengetik atau mengerjakan tugas, aplikasi winamp yang membantu user untuk

mendengarkan musik, dan aplikasi lainya yang mempunyai fungsi yang sama yaitu

memudahkan user dalam melakukan hal yang diinginkanya.

Page 33: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

14

2.3 Pembuatan Aplikasi

Pembuatan Aplikasi dapat di defnisikan sebagai pembuatan dari aplikasi yang

baru, dari segi jendela utama, server, dasar jaringan, tampilan web atau dari

kombinasi keduanya. Sebagai sebuah contoh aplikasi yang dikembangkan dalam

bentuk : penelitian, analisa, pengumpulan data, desain, programing, testing,

dokumentasi dan implementasi (Hasan, 2007 : 3).

Menurut sumber (dspace.widyatama.ac.id) pembuatan aplikasi adalah kumpulan

tata cara, teknik dan langkah – langkah pembuatan untuk menghasilkan software.

Atau dapat dikatakan pembuatan aplikasi adalah suatu kegiatan atau penelitian yang

bersifat membuat atau menciptakan suatu aplikasi.

2.4 SMS Gateway

SMS Gateway adalah sebuah perangkat lunak yang menggunakan bantuan komputer

dan memanfaatkan teknologi seluler yang diintegrasikan guna mendistribusikan

pesan – pesan yang di-generate lewat sistem informasi melalui media SMS yang di-

handle oleh jaringan seluler (http://www.apolloasia.com/gateway.html). Secara

khusus, sistem ini akan memiliki fungsi-fungsi sebagai berikut :

Page 34: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

15

1. Message Management dan Delivery

a. Pengaturan pesan yang meliputi manajemen prioritas pesan, manajemen

pengiriman pesan, dan manajemen antrian.

b. Pesan yang dilalukan harus sedapat mungkin fail safe. Artinya, jika terdapat

gangguan pada jaringan telekomunikasi, maka system secara otomatis akan

mengirim ulang pesan tersebut.

2. Korelasi

Berfungsi untuk melakukan korelasi data untuk menghasilkan data baru hasil

korelasi. Pada sistem yang terpasang saat ini, arsitektur lalu lintas data melalui SMS

sudah terjalin cukup baik. Hanya saja, keterbatasan akses data dan tujuan informasi

SMS yang belum terfokus menyebabkan banyaknya jawaban standar (default replies)

masih banyak terjadi.

SMS Gateway banyak digunakan dalam berbagai proses bisnis dan usaha. Proses

bisnis dan bidang layanan yang bisa ditangani oleh aplikasi SMS Gateway, yaitu

sebagai berikut :

a. Manajemen Inventori

b. CRM (Customer Relationship Management), misalnya Rumah Makan,

Cafe, Executive Club, Stasiun Radio, Stasiun TV, Lembaga Pendidikan

Page 35: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

16

2.5 SMS (Short Message Service)

Short Message Sevice (SMS) adalah salah satu fasilitas dari teknologi GSM

yang memungkinkan mengirim dan menerima pesan – pesan singkat berupa text

dengan kapasitas maksimal 160 karakter dari Mobile Station (MS). Kapasitas

maksimal ini tergantung dari alphabet yang digunakan, untuk alphabet Latin

maksimal 160 karakter, dan untuk non – Latin misalnya alphabet Arab atau China

maksimal 70 karakter (Sugiono, 2007:10).

2.5.1 Pengertian SMS

Short Message Service (SMS) adalah kemampuan untuk mengirim dan

menerima pesan yang terbatas besarnya ( pesan singkat ) antar handphone/telepon

selular yang berupa data dalam bentuk string atau teks dan data binary. Setiap sms

dibtasi hanya sampai 160 karakter saja, dengan menggunakan huruf latin, sedangkan

untuk karakter non latin seperti karakter Arab atau chinese, sms dibatasi hanya

sampai 70 karakter saja. Sms merupakan salah satu dari GSM data services yang

disediakan oleh PLMN (Public Land Mobile Network). Contoh GSM data services

yang lain adalah fax dan data transfer. GSM data services hanya dapat digunakan jika

sebuah PLMN menyediakan fasilitas tersebut (Sugiono, 2007:10).

Page 36: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

17

2.5.2 Sejarah SMS

SMS (Short Message Service) dikenalkan pada tahun 1991 di Eropa, dan pada

tahun 1998 mulai dipasarkan oleh BellSouth Mobility dan Nextel di Amerika Utara

yang tergabung dalam layanan Personal Communications Service (PCS) dalam

jaringan GSM (Global Standard for Mobiles), CDMA (Code Division Meltiple

Access) dan TDMA (Time Division Multiple Access) menggunakan frekuensi radio

900MHz, dan pada saat sudah berkembang dengan menggunakan frakuensi radio

1800MHz. Penyedia jasa point-to-point SMS memberikan layanan sebuah

mekanisme pengiriman pesan singkat (Na’am, 2006: 1).

2.5.3 Fasilitas Dasar SMS

Ada dua macam fasilitas dasar pada SMS (Na’am, 2006 : 8), yaitu :

a. SM MT (Short Message Mobile Terminated)

b.SM MO ( Short Message Mobile Originated)

SM MT merupakan kemampuan untuk mentransfer sebuah pesan singkat

yang dikirim dari SC ke salah satu MS, dan menyediakan informasi tentang

pengiriman pesan tersebut apakah berhasil atau gagal.

Sumber : Yulimingtarto, 2004 : 7

Page 37: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

18

SM MO adalah kemampuan dari sistem GSM untuk mentransfer pesan yang

dikirim dari MS (Mobile Station) ke SME melalui SC, dan juga menyediakan

informasi mengenai pengiriman pesan, apakah gagal atau sukses, juga pesan tersebut

mengikutsertakan alamat dari SME supaya SC dapat berhasil mengirimkan pesan

tersebut.

Sumber : Yulimingtarto, 2004 : 7

Sebuah MS yang aktif dapat menerima pesan singkat (SMS deliver) setiap

saat, sebuah laporan selalu dikirimkan ke SC untuk memberi informasi bahwa MS

(Mobile Station) sudah menerima pesan, berhasil diterima atau tidak, serta alasanya.

MS yang aktif dapat mengirimkan pesan singkat (SMS Submit) setiap saat,

sebuah laporan selalu dikirimkan ke MS untuk memberi bahwa SC sudah berhasil

menerima pesan tersebut atau memberi informasi kepada MS bahwa tidak mungkin

mengirimkan sebuah pesan ke SC, serta alasanya.

Page 38: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

19

2.5.4 Kelebihan Utama SMS

Kelebihan utama dari SMS ini antara lain adalah sebagai berikut (Lekkad :

2008, 2) :

a. Pengiriman pesan antar mobile-phone, adalah fungsi umum dari SMS.

b. Mengurangi kemungkinan miss dalam pengiriman informasi.

c. SMS dapat diterima secara langsung, yang menjadikan SMS solusi yang

ideal untuk menyebarkan informasi.

d. 94% SMS dibaca oleh para penerima.

e. Pengiriman pesan ke beberapa orang secara bersamaan.

f. Pengiriman pesan yang cepat, kurang dari 1 menit.

g. Layanan Informasi.

h. Sebagai pemberitahuan dan iklan, seperti informasi cuaca, pembukaan

outlet baru, kurs mata uang, ataupun horoskop.

Page 39: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

20

2.6 GSM (Global System for Mobile)

Global system for mobile communication (GSM) merupakan standar yang diterima

secara global untuk komunikasi selular digital. GSM adalah nama group standardisasi

yang di mapankan pada tahun 1982 untuk menghasilkan standar telepon bergerak di

eropa, digunakan sebagai formula spesifikasi untuk pan-eropa sistem selular radio

bergerak yang bekerja pada frekuensi 900 Mhz. Dan diperkirakan banyak negara

lainnya diluar eropa akan turut menggunakan teknologi GSM (faiz, 2005 : 1).

2.7 Informasi

Informasi adalah data yang telah diproses menjadi bentuk yang memiliki arti

bagi penerima dan dapat berupa fakta, suatu nilai yang bermanfaat. Jadi ada suatu

proses transformasi data menjadi suatu informasi = input – proses – output .

(http://willis.comze.com/pengertian_informasi.html).

Informasi dapat juga dibuat untuk keperluan manajemen sesuai dengan unit

kerjanya pada tingkatnya masing-masing (http://willis.comze.com/). Informasi

mempunyai tingkat kualitas. Yang ditentukan beberapa hal antara lain:

a. Akurat, informasi harus bebas dari kesalahan-kesalahan dan tidak bisa

atau menyesatkan dan harus jelas penyampaian maksudnya.

b. Tepat pada waktunya, informasi yang datang tidak boleh terlambat pada

penerima.

Page 40: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

21

c. Relevan, informasi harus mempunyai manfaat bagi pemakainya.

d. Lengkap, informasi berisi informasi yang dibutuhkan.

e. Jelas, isi informasi bertenu dengan keperluan pemakai.

2.8 Dosen

Dosen ialah pendidik profesional dan ilmuan dengan tugas utama

mentransformasikan, mengembangkan, dan menyebarluaskan ilmu pengetahuan,

teknologi, dan seni melalui pendidikan, penelitian, dan pengabdian masyarakat

(Peraturan Pemerintah Republik Indonesia Nomor 37 Tahun 2009)

2.9 Polling

Polling adalah bentuk ekspresi pengungkapan pendapat umum paling

kontemporer yang dikenal manusia. Akan lebih mudah memahami pengertian ini

dengan melihat sejarah ekspresi pendapat umum, dan bagaimana polling muncul

sebagai suatu bentuk pengungkapan pendapat umum. Inti dari pendapat umum adalah

diakuinya pendapat umum masyarakat. Masyarakat mempunyai cara-cara tertentu

agar pendapatnya diketahui orang lain atau diterima oleh pengambilan kebijakan.

Dengan demikian pendapat umum umurnya amat tua, meskipun baru pada abad 18,

pendapat umum mulai mendapat tempat penting dalam kekuasaan. Di sini pendapat

umum diterima dan mampu mempengeruhi kekuasaan dan kebijakan sehingga apa

Page 41: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

22

yang dipikirkan masyarakat menjadi penting untuk diketahui. Ekspresi untuk

menyatakan pendapat umum itu berbeda-beda dari satu masa ke masa lain –

bergantung pada bagaimana paham demokrasi itu muncul, kemajuan teknologi yang

menentukan bagaimana pendapat itu harus disuarakan. Secara umum dalam sejarah

dikenal teknik ekspresi pendapat umum berturut-turut: orator, cetakan, kerumunan,

petisi, ruang diskusi, coffe house, gerakan revolusi, pemogokan, pemilihan umum,

straw polls (pemungutan suara tak resmi), surat kabar modern, surat untuk pejabat

publik, perencanaan agenda media massa, dan metode yang terbaru adalah penelitian

survey yang lebih dikenal sebagai polling. Pembagian dan tahap-tahap ekspresi

pendapat umum ini didasarkan pada pendapat Susan Herbst dalam bukunya

Numbered Voice. How Opinion Polling Has Shaped American Politics (Mazdalifah,

2006 : 38-39).

2.10 AT COMMAND

AT COMMAND adalah perintah-perintah yang digunakan pada telepon selular.

AT COMMAND dari tiap-tiap telepon selular (khususnya yang berbeda merk atau

pembuatnya) bisa berbeda-beda, tetapi pada dasarnya sama. Pada proyek ini AT

COMMAND yang digunakan adalah AT COMMAND untuk mengirim dan

menerima SMS. AT Command untuk SMS ini sama untuk semua tipe telepon selular

(AT Command Guide, 2000 : 3).

Page 42: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

23

2.10.1 AT Command untuk Komunikasi Port

AT Command sebenarnya hampir sama dengan perintah >(prompt) pada DOS

(Disk Operating System). Perintah-perintah yang dimasukan ke port dimulai

dengan kata AT, kemudan diikuti oleh karakter lainya yang mempunyai fungsi-

fungsi unik. Contohnya : perintah ATEI digunakan untuk mengetahui status port,

bila status port dalam keadaan siap, maka respon keluaran adalah ‘OK’

(Tetelepta, 2004 : 12).

2.10.2 AT Command untuk Pemilihan SMS Storage

AT Command yang digunakan untuk pemilihan SMS ‘storage’ adalah

AT+CPMS=##, dimana beberapa alternatif dari ## adalah :

a. ME (Mobile Equipment)

Pemilihan memori mobile-phone sebagai SMS Storage.

b. SM (SIM Card)

Pemilihan SIM Card sebagai SMS Storage.

2.10.3 AT Command untuk SMS

Perintah AT (Hayes AT Command) digunakan untuk berkomunikasi dengan

terminal (modem) melalui gerbang serial pada komputer. Dengan penggunaan

perintah AT, dapat diketahui atau dibaca kondisi dari terminal, seperti mengetahui

kondisi sinyal, kondisi baterai, mengirim pesan, membaca pesan, menambah item

Page 43: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

24

pada daftar telepon, dan sebagainya. Pada Gambar 1 diperlihatka nbeberapa jenis

perintah AT yang berhubungan dengan penanganan pesan-pesan SMS (Efendy,

2004 : 78-79).

Tabel 2.1 Contoh AT Command Sumber : Istiyanto, 2004 : 79

2.11 Java

2.11.1 Pengertian Java

Java merupakan sebuah bahasa berorientasi objek (object oriented

programming). Yang merupakan karya Sun Microsystem Inc. Yang dapat

dijalannkan dimanapun dan di sembarang platform apapun, di beragam lingkungan:

Internet, intranets, pemakaian produk elektronik, dan aplikasi komputer. Jika anda

pernah memprogram dengan bahasa pemrograman OOP , seperti C++ atau Smalltalk,

Page 44: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

25

mungkin anda ingat betapa menyenangkannya memprogram dengan konteks objek.

Anda merancang beberapa objek satu demi satu dengan mendefinisikan berbagai

property yang dimiliki object tersebut dan pekerjaan (task) yang dapat ditangani oleh

objek tersebut. Kemudian anda merangkai semua objek tersebut dengan

mendefinisikan relasi antar objek tersebut seperti halnya membangun sebuah mobil

dari komponen-komponennya. Belakangan ini , mungkin anda akrab dengan slogan

"reusable of code". "Reuse of code" ini bukanlah cut & paste. Yang dimaskud dengan

"reuse of code" ini adalah suatu keadaan dimana para programmer untuk membangun

sebuah objek dengan mengextend objek-objek yang telah ada secara mudah. Secara

mudah disini adalah, programmer itu mungkin tidak perlu tahu dengan kode-kode

dari objek yang ingin ia extend, yang ia butuhkan hanyalah pengetahuan mengenai

property dari objek itu dan hal-hal yang dapat dilakukan oleh objek itu (Hariyanto,

2003 : 3-10).

Bahasa Pemrograman Java pertama kali lahir dari the green project, yang

berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek

tersebut belum menggunakan versi yang dinamakan Oak. Proyek tersebut dimotori

oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan

pemrogram lainya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot

duke yang dibuat oleh Joe Palrang.

Page 45: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

26

2.11.2 Versi Java

Versi awal Java ditahun 1996 sudah merupakan versi release sehingga

dinamakan Java Versi 1.0. Berdasarkan (http://www.wikipedia.com) Java versi ini

menyertakan banyak paket standar awal yang terus dikembangkan pada versi

selanjutnya :

a. java.lang: Peruntukan kelas elemen-elemen dasar.

b. java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.

c. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas

kelas penanggalan.

d. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi

dengan komputer lain menggunakan jaringan TCP/IP.

e. java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)

f. java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada

penjelajah web.

2.11.3 Kelebihan dan Kekurangan Bahasa Pemrograman Java

Kelebihan dari bahasa pemrograman java adalah :

a) Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa

platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali,

jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis

Page 46: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

27

sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti

manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat

dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini

memungkinkan sebuah program berbasis java dikerjakan diatas operating

system Linux tetapi dijalankan dengan baik di atas Microsoft Windows.

Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux,

Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi

menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java)

untuk meninterpretasikan bytecode tersebut.

b) OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang

artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan

salah satu bahasa pemrograman berbasis objek secara murni. Semua tipe data

diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan

pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi

kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan

terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa

pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti

komunikasi antara komputer sekalipun.

c) Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan

library/perpustakaan (kumpulan program program yang disertakan dalam

pemrograman java) yang sangat memudahkan dalam penggunaan oleh para

Page 47: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

28

pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini

ditambah dengan keberadaan komunitas Java yang besar yang terus menerus

membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh

kebutuhan pembangunan aplikasi.

d) Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga

menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna

Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke

Java. Universitas-universitas di Amerika juga mulai berpindah dengan

mengajarkan Java kepada murid-murid yang baru karena lebih mudah

dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan

mengambil jurusan komputer.

e) Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan

memori sehingga para pemrogram tidak perlu melakukan pengaturan memori

secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

- Kekurangan dari bahasa pemrograman java adalah :

a) Tulis sekali, perbaiki di mana saja - Masih ada beberapa hal yang tidak

kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya

SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.

b) Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode

jadi menjadi kode sumber. Ini dimungkinkan karena koe jadi Java merupakan

Page 48: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

29

bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-

nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft

.NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih

sulit disembunyikan dan mudah dibajak/direverse-engineer.

c) Penggunaan memori yang banyak. Penggunaan memori untuk program

berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya

seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal).

Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi

terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah

bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih

dari 4 tahun.

2.11.4 Java Net Beans dan Java Studio Enterprise

Sejarah Netbeans berawal dari sebuah kota klasik yang sangat indah yaitu

Prague di Cekoslovakia. Disana ada sebuah perusahaan kecil yang sangat inovatif

mengembangkan Java IDE berbasis AWT/Swing yang disebut Forte. Sun

mengakuisisi Forte pada tahun 1999. Akuisisi ini menandakan Sun mulai serius

menggarap pasar IDE komersial. Untuk melakukan counter attack terhadap langkah

IBM meng-opensourcekan Eclipse, Sun melepaskan versi opensource dari Forte yaitu

Netbeans. Pada zaman Sun dipimpin oleh Scott McNealy, divisi IDE ini cukup serius

mengembangkan produk-produknya. Forte yang masih tetap berstatus komersial

Page 49: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

30

dikembangkan menjadi SunONE Studio dengan menambahkan kemampuan untuk

mengembangkan aplikasi Java Enterprise (EJB), kemudian pada tahun 2003 dirubah

lagi namanya menjadi Sun Java System (www.ilmukomputer.com).

Beberapa tahun kemudian munculah sebuah framework pengembangan aplikasi

java enterprise yang disebut JSF. Pengembangan teknologi JSF dipimpin oleh Ed

Burns. JSF menjadi teknologi standard Java untuk mengembangkan aplikasi web

berbasis komponen, secara langsung ingin menyaingi teknologi ASP.NET-nya

Microsoft. Sayangnya pada awal-awal perkembangannya, JSF tergantung sekali

dengan IDE sebagai basis pengembangan aplikasi. Sun mengantisipasi ini dengan

memecah Sun Java Studio menjadi dua produk, Sun Java Studio Creator dan Sun

Java Studio Enterprise. Sun Java Studio Enterprise difokuskan untuk

mengembangkan aplikasi berbasis EJB dan Sun Java Studio Creator difokuskan

untuk mengembangkan aplikasi berbasis EJB dan JSF. Dengan teknologi JSF, kita

bisa mengembangkan aplikasi Java berbasis Visual IDE seperti halnya Visual Studio

for ASP.NET.

2.12 My Structured Query Language (MySQL)

MySQL adalah multi user database yang menggandung bahasa Structured

Query Language (SQL) yaitu bahasa yang digunakan untuk komunikasi dengan basis

data. Menurut ANSI (American National Standards Institute), bahasa ini merupakan

standar untuk Relational Basis data Management System (RDBMS).

Page 50: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

31

Pada awalnya, MySQL mempunyai nama mSQL, dan sering digunakan untuk

keperluan koneksi ke table menggunakan fast low level routine. Namun mSQL

terbukti kurang cepat dan tidak sefleksibel saat itu. Karena hal itu, dibuatlah suatu

SQL interface dengan API interface yang hampir sama dengan mSQL dan akhirnya

lebih populer disebut MySQL (Dwi Prasetyo, 2004 : 11-14) .

Asal mula nama MySQL tidak terlalu jelas, tetapi yang pasti sudah lebih dari

10 tahun semua library dan tools yang ada diberikan awalan “My”. Logo MySQL

adalah ikan lumba-lumba bernama sakila. Nama ini diperoleh dari lomba pemberian

nama ikan lumba-lumba yang dimenangkan oleh Ambrose Twebaze, seorang open-

source developer dari Swaziland, Afrika. Menurutnya nama Sakila asal kata dari

Siswati, yaitu bahasa lokal Swaziland. Sakila juga merupakan nama sebuah kota di

Arusha, Tanzania (Dwi Prasetyo, 2004 : 11-14).

2.12.1 Fungsi SQL

Fungsi-fungsi dari SQL adalah sebagai berikut :

a. Data Definition

Data Definition berfungsi untuk mendefinisikan struktur Gambar, tipe data

dari setiap field di dalam Gambar dan hubungan referensial dari field-field

tertentu ke field-field pada Gambar lain.

b. Data Retrieval

Page 51: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

32

Aplikasi client memakai SQL untuk meminta data dari server. SQL juga

mengijinkan client mendifinisikan data yang akan dibaca dan bagaimana data

tersebut di retrieve, misalnya urutanya dan field-field apa yang di-retrieve.

c. Data integrity

Berfungsi untuk menjaga integritas data dengan berbagai konstrain integritas

sebagai bagian dari Gambar atau terpisah dari Gambar.

d. Data Processing

SQL mengijinkan client mengubah, menambah, menghapus data dari server.

e. Security

Sebagai proteksi data dengan mendefinisikan hak akses, view dan batasan

pengaksesan pada objek-objek database.

f. SQL mengatur pengaksesan secara simultan sehingga satu pengaksesan tidak

menggangu pengaksesan lainya.

2.12.2 Tipe Data SQL

Tipe-tipe data yang ada dalam SQL adalah sebgai berikut :

a. Char, character(n)

Mengidentifikasi sebuah string dari n karakter.

b. Int, integer

Page 52: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

33

Sebuah bilangan integer (besanya biasanya 4 byte), tetapi hal tersebut

tergentug dari platform-nya.

c. Smallint

Sebuah bilangan integer yang lebih kecil dibanding integer, besarnya

biasanya 2 byte.

d. Float

Sebuah bilangan floating-point.

e. Double Frecision

Sebuah bilangan floating point. Yang berpresisi tinggi.

f. Numeric (precision, scale)

Sebuah bilangan floating-point dengan presisi dan skala terindikasi.

g. Date

Sebuah tanggal, tipe data ini bervariasi dari server ke server.

h. Blob

Sebuah object yang mengandung data biner dalam jumlah besar.

i. Varchar

Sebuah string yang ukurannya variable, digunakan untuk menghindari

konsumsi space dari sebuah fixed large string.

Page 53: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

34

2.12.3 Beberapa Perintah SQL

SQL memiliki beberapa perintah untuk mengakses Gambar-Gambar dari

database. Perintah-perintah itu dapat digunakan untuk memasukan, melihat,

mengubah dan menghapus data dalam Gambar database. Perintah SQL juga dapat

mengakses beberapa Gambar sekaligus atau mencari data berdasarkan kondisi yang

diinginkan.

Perintah – perintah SQL tergantung dari jenis database dan database engine

yang digunakan. Pada dasarnya sebagian besar sama, akan tetapi ada perbedaan pada

fungsi-fungsinya. Misalnya ada perintah yang dimiliki SQL Server tetapi tidak

dimiliki oleh MySQL.

2.12.3.1 Perintah ‘Select’

Perintah Select adalah perintah yang umum digunakan dalam bahasa SQL.

Perintah ini digunakan untuk mengambil data dari satu atau lebih Gambar dalam

sebuah database. Sintaks perintahnya adalah sebagai berikut :

Select<fields>from<table>

Pada bagian field dapat diisi sebuah field atau lebih, yang dipisahkan dengan

tanda koma. Gunakan tanda ‘*’ pada bagian fields untuk mengidentifikasi bahwa

semua field yang ada pada table dipakai semua.

Page 54: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

35

Jika Klausa where ditambahkan, perintah Select dapat digunakan untuk

memilih secara lebih spesifik record mana yang akan diambil. Sintaks perintahnya

sebagai berikut :

Select <fields>

from <table>

where <expression>

Kriteria untuk <expression> dapat menggunakan operator-operator standar

seperti +, - , >, <, =, <>, >= dan <=. Selain itu ada pula operator-operator khusus

untuk SQL yaitu :

a. is null

untuk mengetes apakah nilai dalam field terdefinisi atau tidak.

b. in <list>

Untuk mengetes apakah nilai dalam field terdapat dalam ‘list’ atau

tidak.

c. between <min> and <max>

Untuk mengetahui apakah nilai dalam field ada dalam range yang

dibatasi oleh nilai<min> dan <max>.

Page 55: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

36

d. like <list>

Untuk mengambil data record dengan kriteria nama sama dengan ‘list’

Klausa lain yang dapat ditambahkna adalah order by. Klausa ini

digunakan untuk sorting data. Sintaks perintahnya sebagai berikut :

Select<fields>

From<table>

Order by <fields>

Sorting dengan menggunakan klausa order ada 2 macam, yaitu sort by

ascending dan sort by descending.

Klausa yang juga dapat digunakan adalah klausa group by. Klausa ini dapat

mengelompokan data berdasarkan kriteria tertentu sebelum melakukan komputasi

dengan fungsi-fungsi standar. Sintaks perintahnya sebagai berikut :

Select <fields>

From <table>

Group by <fields>

Perintah Select juga dapat digunakan untuk mengambil nilai-nilai khusus

yang dikomputasi oleh fungsi-fungsi standar yang ada pada SQL. Fungsi-fungsi

standar tersebut adalah :

Page 56: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

37

a. Fungsi avg

Fungsi ini digunakan untuk menghitung nilai rata-rata dari semua kolom.

Fungsi ini hanya dapat digunakan pada field yang berisikan data numerik.

b. Fungsi count

Fungsi ini digunakan untuk menghitung banyaknya data yang ada sesuai

dengan syarat yang ditentukan.

c. Fungsi Max

Fungsi ini digunakan untuk mendapatkan nilai maksimum dari sebuah

kolom

d. Fungsi min

Fungsi ini digunakan untuk mendapatkan nilai minimum dari sebuah

kolom

e. Fungsi sum

Fungsi ini digunakan untuk menghitung jumlah total dari nilai-nilai yang

ada pada sebuah kolom. Fungsi ini hanya dapat digunakan pada kolom

yang berisi data numerik.

2.12.3.2 Perintah ‘Insert’

Perintah Insert digunakan untuk menambahkan record baru ke dalam Gambar.

Sintaks perintahnya adalah sebagai berikut :

Insert into<table> (field1,field2,...)

Page 57: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

38

Value (nilai1, nilai2,...)

Table adalah nama dari Gambar yang menjadi tujuan untuk memasukan data,

dan field adalah field yang akan memasukan data serta nilai adalah nilai dari data

yang akan dimasukan ke field pada Gambar. Nama field tujuan pada Gambar

urutanya harus sama dengan urutan nilai yang akan dimasukan, misalnya yang

dimasukan field1 adalah nilai 1.

2.12.3.3 Perintah ‘Update’

Perintah update digunakan untuk memodifikasi satu atau lebih record dalam

sebuah Gambar. Sintaks perintahnya adalah sebagai berikut :

Update<table>

Set<field1 = nila1>, <field2 = nila2>,...

Where<expression>

Table adalah nama dari table yang akan diubah datanya, field adalah field

yang akan diubah nilainya serta nilai adalah nilai baru dari data yang akan dimasukan

ke field lama pada Gambar. Expression adalah syarat yang harus dipenuhi untuk

mengubah data pada Gambar, apabila ingin merubah semua record pada Gambar

maka syarat where tidak diperlukan.

Page 58: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

39

2.12.3.4 Perintah ‘Delete’

Perintah delete digunakan untuk menghapus satu atau lebih record dalam

sebuah Gambar. Sintaks perintahnya adalah sebagai berikut :

Delete from <table>

Where<expression>

Table adalah nama dari Gambar yang akan dihapus datanya dan expression

Adalah syarat yang harus dipenuhi untuk menghapus data pada Gambar. Apabila

ingin menghapus semua record pada Gambar, maka syarat where tidak diperlukan.

2.13 Bluetooth

Bluetooth adalah nama yang diadopsi dari nama Raja Denmark Harald

Bluetooth yang memerintah kerajaan Denmark pada tahun 940 – 981 SM. Namanya

diambil karena raja Denmark tersebut sukses menggabungkan 2 kerajaan yaitu

Denmark dan Norwegia menjadi sebuah kerajaan utuh. Selain itu, dia juga sukses

dalam menyebarkan agama kristen di kedua negara tersebut. Dengan penamaan

tersebut diharapkan Bluetooth yang merupakan media transmisi ini bisa juga menjadi

teknologi pemersatu yang digunakan di dalam dunia komputer dan dunia

telekomunikasi (Puy, 2008 : 6).

Page 59: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

40

2.13.1 Sejarah Bluetooth

Bluetooth pertama kali ditemukan dan dikembangkan pada tahun 1994.

Bluetooth ini ditemukan secara tidak sengaja, awalnya penelitian yang dilakukan di

universitas di Swedia ini ingin membuat koneksi nirkabel yang menghubungkan

earphone cordless dengan headset handphone. Namun akhirnya mereka malah

menemukan koneksi tersebut dapat dijadikan sebagai gelombang radio yang tidak

membutuhkan lisensi. Kemudian dari sinilah awal mulainya pengembangan

perangkat bluetooth. Hingga perusahaan Ericson pun tanggap akan manfaat teknologi

ini sehingga Ericson melakukan suatu terobosan dengan memberikan teknologi ini

secara gratis kepada publik. Pada awal tahun 1998 Ericson, Nokia, IBM, Toshiba,

dan Intel membetuk SIG (Bluetooth Special Interest Group) yang digunakan untuk

melanjutkan pengembangan teknologi ini. Kelima perusahaan yang membentuk SIG

tersebut merupakan perwakilan dari berbagai bidang industri yang ada. Ericsson dan

Nokia mewakili perusahaan telepon genggam, IBM dan Intel mewakili perusahaan

pengembang komputer, dan Toshiba mewakili perusahaan yang bergerak dalam

teknologi pemrosesan signal digital (Eko, 2005 : 3).

2.13.2 Cara Kerja Bluetooth

Di dalam Bluetooth terdapat microchip (transceiver) yang mengirimkan dan

menerima frekuensi sebesar 2.4 GHz. Frekuensi ini tersedia di seluruh dunia (dengan

Page 60: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

41

beberapa perbedaan bandwith pada setiap Negara). Di samping informasi, ada tiga

jalur suara yang tersedia.

Gambar 2.5 Gambaran Bluetooth

Informasi tersebut dapat merubah kecepatan pengiriman data sampai 1

megabit per detik (dalam generasi kedua Bluetooth mempunyai kecepatan hingga

2megabit per detik). Skema dari “frequency hop”(lompatan frekuensi) membuat

peralatan Bluetooth dapat berkomunikasi secara khusus di dalam area yang terdapat

banyak gangguan elektromagnetik. Selain itu di dalam peralatan bluetoth juga

terdapat skema encryption dan check yang membuat komunikasi dalam Bluetooth

lebih aman.

Page 61: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

42

2.13.3 Frekuensi Bluetooth

Bluetooth standar beroperasi pada frekuensi bandwith sebesar 2,4 GHz. Dan

frekuensi bandwith tersebut tersedia di seluruh dunia, luasnya bandwith dapat

berbeda di setiap Negara. Frekuensi yang digunakan untuk penelitian dan industri

medical berdasarkan ISM (Industrial, scientific and medical) sebesar 2,45 GHz. Besar

bandwith yang digunakan di Amerika Serikat dan Eropa. diantara 2.400 hingga

2.483,5 MHz begitu pula di Prancis dan Spanyol. Di jepang besarnya bandwith

diantara 2.471 hingga 2.497 MHz.

Tabel 2.2 Frekuensi Bluetooth di berbagai negara

2.13.4 Bluetooth Serial Port (SPP)RFCOMM (Cable replacement protocol)

Serial Port Profile (SPP), adalah salah satu layanan yang ada di dalam

bluetooth. Seperti yang kita ketahui banyak jenis layanan bluetooth yang lain seperti,

“Audio Headset” atau “Bluetooth Printer”. Bluetooth serial port bisa di kategorikan

sebagai COM di dalam Windows (seperti COM3 atau COM7), yang dapat berfungsi

sama dengan port RS232 yang tersedia di komputer atau virtual COM (Heggel,

2009:1).

Page 62: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

43

2.14 Bagan Alir (Flowchart)

Flowchart merupakan teknik analitikal yang digunakan untuk mendeskripsikan

beberapa aspek dari sistem informasi dalam wujud yang lebih jelas, ringkas, dan

secara logika. Flowchart menggunakan serangkaian simbol standar untuk

mendeskripsikan dalam gambar, prosedur pemrosesan transaksi yang digunakan oleh

perusahaan dan aliran data dalam suatu sistem.Menunjukkan apa yang dikerjakan di

sistem (jogiyanto, 2005 : 795)

Simbol-simbol :

Page 63: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

44

2.15 Perancangan Sistem DFD

Data Flow Diagram (DFD) yang didefinisikan sebagai suatu alat yang

membentuk permodelan dan memungkinkan analis sistem dalam menggambarkan

sistem sebagai suatu jaringan proses (network) dan fungsi yang dihubungkan satu

dengan yang lainnya dan disebut dengan arus data (data flow). (Jogiyanto, 2000:

700).

Komponen-komponen Data Flow Diagram, terdiri atas (Jogiyanto, 2000, hal 700) :

2.15.1 Komponen DFD

Komponen dalam data flow diagram menurut Jogiyanto terdiri dari :

1. Terminator

Terminator digambarkan dengan bentuk persegi empat, terminator merupakan

lingkungan luar (eksternal) dari suatu sistem yang sedang dikembangkan juga

menujukan tempat asal data (source)dan tujuan data.

2. Transformation Proses

Proses melakukan suatu perubahan berdasarkan data yang dimasukan dan

menghasilkan data atau beberapa keterangan dari perubahan tersebut.

3. Data Flow

Data flow merupakan aliran data yang berjalan dan diberi simbol anak panah.

4. Data Store

Data store merupakan penyimpanan sementara dari suatu data.

Page 64: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

45

2.15.2 Levelisasi DFD

Gambar 2.3 : Levelisasi DFD

Sumber :Jogiyanto, 2005 : 715

Page 65: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

46

2.15.3 Penggambaran DFD

Tidak ada aturan baku untuk menggambarkan DFD, tapi dari berbagai

referensi yg ada, secara garis besar (Jogiyanto, 200 : 713):

1. Buat diagram context

Diagram ini adalah diagram level tertinggi dari DFD yg menggambarkan

hubungan sistem dgn lingkungan luarnya.

Cara pembuatanya :

a. Tentukan nama sistemnya.

b. Tentukan batasan sistemnya.

c. Tentukan terminator apa saja yg ada dalam sistem.

d. Tentukan apa yg diterima/diberikan terminator dari/pada sistem.

e. Gambarkan diagram context.

2. Buat diagram level Zero

Diagram ini adalah dekomposisi dari diagram Context.

Cara pembuatnya :

a. Tentukan proses utama yg ada pada sistem.

b. Tentukan apa yg diberikan/diterima masing-masing proses pada/dari

sistem sambil memperhatikan konsep keseimbangan (alur data yg

Page 66: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

47

keluar/masuk dari suatu level harus sama dgn alur data yg

masuk/keluar pada level berikutnya)

c. Apabila diperlukan, munculkan data store (master) sebagai sumber

maupun tujuan alur data.

d. Gambarkan diagram level zero.

e. Hindari perpotongan arus data

f. Beri nomor pada proses utama (nomor tidak menunjukkan urutan

proses).

3. Buat diagram level Satu

Diagram ini merupakan dekomposisi dari diagram level zero.

Cara Pembuatanya :

a. Tentukan proses yg lebih kecil (sub-proses) dari proses utama yg ada

di level zero.

b. Tentukan apa yg diberikan/diterima masing-masing sub-proses pada

atau dari sistem dan perhatikan konsep keseimbangan.

c. Apabila diperlukan, munculkan data store (transaksi) sbg sumber

maupun tujuan alur data.

d. Gambarkan DFD level Satu

e. Hindari perpotongan arus data.

Page 67: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

48

f. Beri nomor pada masing-masing sub-proses yg menunjukkan

dekomposisi dari proses sebelumnya. Contoh : 1.1, 1.2, 2.1

4. DFD level dua, tiga,...

Diagram ini merupakan dekomposisi dari level sebelumnya. Proses

dekomposisi dilakukan sampai dg proses siap dituangkan ke dalam program. Aturan

yg digunakan sama dgn level satu.

2.15.4 Entity Relationship Diagram (ERD)

Model Entity Relationship adalah suatu bentuk penyajian data yang

berhubungan dengan menggunakan Entity dan Relationship. (Jogiyanto, 2005 : 782).

Komponen-komponen dalam ERD, yaitu :

1. Entity

Entity adalah suatu bentuk yang berbeda dengan yang lainnya, dimana informasi

didalamnya terdapat atribut-atribut yang berkumpul. Entity Set merupakan

sekumpulan dari entity yang sejenis, objek yang ada di dalamnya dapat berupa objek

secara fisik dan objek secara konsep. Bentuk yang digunakan untuk entity adalah

persegi panjang.

Page 68: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

49

2. Relationship

Relationship adalah suatu bentuk hubungan yang terjadi dan salin berkaitan antara

satu atau lebih entiry. Relationship set merupaka sekumpulan dari relasi yang sejenis,

bentuk yang digunakan relationship adalah bentuk belah ketupat/wajik.

3. Atribut

Atribut adalah karakteristik dari entity atau relationship yang menyediakan

penjelasan detail tentang entity atau relationship tersebut. Nilai atribut merupakan

data actual atau informasi yang disimpan pada suatu atribut didalam suatu entity atau

relationship tersebut. Dibawah ini merupakan jenis-jenis atribut, yaitu :

a. Atribut Key

Suatu atribut kunci yang menentukan suatu entity secara unik atau yang disebut

dengan primary key.

b. Atribut Sample

Suatu atribut yang bukan kunci dan mempunyai nilai tunggal. Bentuk yang digunakan

pada atribut ini adalah oval.

Page 69: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

50

4. Cardinality Ratio

Cardinality Ratio menjelaskan batasan jumlah keterhubungan suatu entity lainnya.

Jenis-jenis cardinality ratio, yaitu (Waljiyanto, 2000, hal 51) :

a. One to One Relationship (1:1)

Hubungan antara dua file pertama dengan file kedua, hubungan kedua file tersebut

adalah satu banding satu.

b. One To Many Relationship/Many To Relationship (1:M/M:1)

Hubungan antara file dengan file kedua dan merupakan satu berbanding banyak atau

hubungan file pertama dengan file kedua adalah banyak berbanding satu

Page 70: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

51

2.16 Kamus Data

Kamus data adalah suatu daftar data elemen yang terorganisir dengan definisi

yang tetap dan sesuai dengan sistem, sehingga user dan analis sistem mempunyai

pengertian yang sama tentang input, output, dan komponen data strore. Kamus data

ini sangat membantu analis sistem dalam mendefinisikan data yang mengalir di

dalam sistem, sehingga pendefinisian data itu dapat dilakukan dengan lengkap dan

terstruktur. Pembentukan kamus data dilaksanakan dalam tahap analisis dan

perancangan suatu system (Mazwan, 2007 : 1).

2.16.1 Pendefinisian Data Element Dalam Kamus Data

Kamus data mendefinisikan data elemen dengan cara (Mazwan, 2007 :6) :

a. menguraikan arti dari alur data dan data store dalam DFD.

b. Menguraikan komposisi paket data pada alur data ke dalam alur yang lebih

elementary(kecil) contoh : Alamat langganan yang terdiri dari nama jalan,

kota dan kode pos.

c. Menguraikan komposisi paket data dalam data store.

d. Menspesifikasikan nilai dan unit informasi dalam alur data dan data store.

e. Menguraikan hubungan yang terperinci antara data store dalam suatu entity

relationship diagram (ERD).

Page 71: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

52

Notasi Kamus Data

Notasi “=“

Elemen data elementary adalah suatu dekomposisi yang tidak mempunyai arti dalam

konteks lingkungan user.

Contoh :

Nama = Nama_Depan + Nama_Belakang

Nama_Depan dan Nama_Belakang dari contoh di atas tidak mempunyai arti, dan

tidak ada komentar yang ditunjukan dengan “* *“

Page 72: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

53

Contoh : Current_Height = *Unit : 150 Cm*

Notasi “ ( ) “

Berdsarkan contoh di atas dapat diberikan kamus datanya sebagai berikut :

Nama_Langganan = (Title) + Nama_Depan + (Nama_Tengah) + Nama_Belakang

Customer_Address = (Shipping_Address) + (Billing_Address)

Notasi “ { } “

Notasi ini digunakan untuk menggambarkan suatu komponen data secara berulang

Contoh :

Order = Customer_Name + Shipping_Address + 1{item}10

Notasi “ [ ] “

Contoh :

Jenis_Kelamin = [ Pria I Wanita]

Notasi “ * * “

Contoh :

Gambar 2.4 : Data Flow Untuk Perhitungan Pajak

Sumber : Mazwan, 2007 : 8

Page 73: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

54

Penjualan = *Jumlah penjualan selama satu tahun*

*Dalam ribuan rupiah*

Pajak rate = *Satuan pajak yang berlaku ditentukan oleh pemerintah dalam %*

Jumlah Pajak = *Jumlah pajak yang harus dibayar hasil perkalian dari sales*

*pajak rate dalam ribuan rupiah*

Notasi “ Alias “

Contoh :

Client = Alias untuk customer.

2.17 Normalisasi

Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam Gambar-

Gambar untuk memenuhi kebutuhan pemakai di dalam suatu organisasi (Lajmudin,

2005 : 168).

2.17.1 Tujuan dari Normalisasi

a. Untuk menghilangkan kerangkapan data

b. Untuk mengurangi kompleksitas

c. Untuk mempermudah pemodifikasian data

2.17.2 Proses Normalisasi

A. Data diuraikan dalam bentuk Gambar, selanjutnya dianalisis berdasarkan

persyaratan tertentu ke beberapa tingkat.

Page 74: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

55

B. Apabila Gambar yang diuji belum memenuhi persyaratan tertentu,maka

Gambar tersebut perlu dipecah menjadi beberapa Gambar yang lebih

sederhana sampai memenuhi bentuk yang optimal.

2.17.3 Tahapan Normalisasi

Bentuk Tidak Normal

Menghilangkan perulangan group

Bentuk Normal Pertama (1NF)

Menghilangkan ketergantungan sebagian

Bentuk Normal Kedua (2NF)

Menghilangkan ketergantungan transitif

Bentuk Normal Ketiga (3NF)

Menghilangkan anomali-anomali hasil dari

ketergantungan fungsional

Bentuk Normal Boyce-Codd (BCNF)

Menghilangkan Ketergantungan Multivalue

Bentuk Normal Keempat (4NF)

Menghilangkan anomali-anomali yang tersisa

Bentuk Normal Kelima

Gambar 2.5 : Tahapan Normalisasi

Sumber : Primashanti, 2007: 2

Page 75: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

56

2.17.3.1 Ketergantungan Fungsional

Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---

> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y

pada R.

Misal, terdapat skema database Pemasok-barang :

Pemasok (No-pem, Na-pem)

Gambar PEMASOK-BARANG

Tabel 2.3 : Pemasok Barang

Sumber : Primashanti, 2007 : 3

Ketergantungan fungsional dari Gambar PEMASOK-BARANG adalah :

No-pem ---> Na-pem

Page 76: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

57

2.17.3.2 Ketergantungan Fungsional Penuh

Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X

pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key

gabungan)

Contoh :

KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)

Tabel 2.4 : Kirim Barang

Sumber : Primashanti, 2007: 4

No-pem --> Na-pem

No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya)

Page 77: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

58

2.17.3.3 Ketergantungan Transitif

Atribut Z pada relasi R dikatakan tergantung transitif pada

atribut X , jika atribut Y tergantung pada atribut X pada relasi

R dan atribut Z tergantung pada atribut Y pada relasi R. (

X Y, Y Z � maka X � Z) �

Contoh :

Tabel 2.5 : Gambar contoh ketergantungan transitif

Sumber : Primashanti, 2007: 5

2.17.3.4 Ketergantungan transitif :

No-pem � Kode-kota

Kode-kota � Kota , maka

No-pem � Kota

Page 78: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

59

Bentuk Normal kesatu (1NF)

Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data

bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data

(Primashanti, 2007 : 6).

Gambar KIRIM-1 (Unnormal)

Tabel 2.6 : KIRIM-1 (Unnormal)

Sumber : Primashanti, 2007 : 6

Page 79: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

60

Gambar Kirim 2 (1NF)

Tabel 2.7 : Kirim-2 (INF)

Sumber : Primashanti, 2007: 6

Diagram Ketergantungan Fungsional

Gambar 2.6 : Diagram Ketergantungan Fungsional 1

Sumber : Primashanti, 2007: 7

Page 80: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

61

Bentuk Normal kedua(2NF)

Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi

tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah

tergantung penuh terhadap keynya (Primashanti, 2007: 7).

Tabel 2.8 : Pemasok-1 (2NF)

Sumber : Primashanti, 2007 : 7

Bentuk Normal Ketiga (3NF)

Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi

tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak

tergantung transitif terhadap keynya (Primashanti, 2007: 8).

Page 81: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

62

Tabel 2.9 : Kirim-3 (3NF)

Sumber : Primashanti, 2007: 8

Tabel 2.10 : Pemasok-2 (3NF)

Sumber : Primashanti, 2007: 8

Page 82: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

63

Tabel 2.11 : Pemasok-3 (3NF)

Sumber : Primashanti, 2007: 8

Asumsi :

a. Seorang mahasiswa dapat mengambil beberapa mata kuliah

b. Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa

c. Satu mata kuliah hanya diajarkan oleh satu dosen

d. Satu dosen dapat mengajar beberapa mata kuliah

e. Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu

nilai

Tabel 2.12 : Mahasiswa-1 (Unnormal)

Sumber : Primashanti, 2007: 9

Page 83: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

64

Tabel 2.13 : Mahasiswa-2 (1NF)

Sumber : Primashanti, 2007: 9

Diagram Ketergantungan Fungsional

Gambar 2.7 : Diagram Ketergantungan Fungsional 2

Sumber : Primashanti, 2007: 10

Page 84: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

65

Tabel 2.14 : Mahasiswa-3 (3NF)

Sumber : Primashanti, 2007 : 10

Tabel 2.15 : Nilai (3NF)

Sumber : Primashanti, 2007: 11

Tabel 2.16 : MataKuliah (3NF)

Sumber : Primashanti, 2007: 11

Page 85: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

66

Tabel 2.17 : Dosen (3NF)

Sumber : Primashanti, 2007: 11

2.18 Metode Penelitian RAD

RAD atau (Rapid Application Development) adalah model proses pembangunan

Perangkat Lunak yang incremental. RAD menekankan pada siklus pembangunan

yang pendek/singkat. RAD mengadopsi model waterfall dan pembangunan dalam

waktu singkat dicapai dengan menerapkan component based construction. Waktu

yang singkat adalah batasan yang penting untuk model ini. Jika kebutuhan lengkap

dan jelas maka waktu yang dibutuhkan untuk menyelesaikan secara komplit software

yang dibuat adalah misalnya 60 sampai 90 hari (Proboyekti, 2008 : 6-7).

Kelemahan dalam model ini:

1. tidak cocok untuk proyek skala besar

2. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi

3. sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini

4. resiko teknis yang tinggi juga kurang cocok untuk model ini

Page 86: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

67

Gambar: 2.8 Model RAD Sumber : (Proboyekti, 2008 : 6-7)

Fase-fase di atas menggambarkan proses dalam model RAD. Sistem dibagi-

bagi menjadi beberapa modul dan dikerjakan dalam waktu yang hampir bersamaan

dalam batasan waktu yang sudah ditentukan.

Page 87: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

68

1. Business modelling : menjawab pertanyaan-pertanyaan: informasi apa yang

mengendalikan proses bisnis? Informasi apa yang dihasilkan? Siapa yang

menghasilkan informasi? Kemana informasi itu diberikan? Siapa yang mengolah

informasi? _ kebutuhan dari system

2. Data modelling: aliran informasi yang sudah didefinisikan, disusun menjadi

sekumpulan objek data. Ditentukan karakteristik/atribut dan hubungan antar objek-

objek tersebut _ analisis kebutuhan dan data

3. Process Modelling : objek data yang sudah didefinisikan diubah menjadi aliran

informasi yang diperlukan untukmenjalankan fungsi-fungsi bisnis.

4. Application Generation: RAD menggunakan component program yang sudah ada

atau membuat component yang bisa digunakan lagi, selama diperlukan.

5. Testing and Turnover: karena menggunakan component yang sudah ada, maka

kebanyakan component sudah melalui uji atau testing. Namun component baru dan

interface harus tetap diuji.

Page 88: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

69

2.19 Studi Literature

Penelitian adalah kegiatan ilmiah yang dilakukan untuk menemukan jawaban

suatu permasalahan, dan yang tujuan akhirnya adalah memberikan kontribusi teoretis

dan/atau praktis pada pengembangan bidang ilmu yang bersangkutan. Penemuan

suatu penelitian bisa suatu hal yang baru, bisa juga konfirmasi penemuan terdahulu;

bisa bersifat teoretis dan/atau praktis. Kebaruan tersebut bisa dari segi kerangka

berpikir atau kerangka berpikir, metodologi, karakteristik subyek yang diteliti,

dan/atau hasil penelitian (Widawaty, 2004: 2).

Dengan perkataan lain, usaha membangun ilmu pengetahuan baru dapat

berlangsung secara efektif dan efisien, bila si peneliti mendasarkannya pada kajian

literatur. Melalui kajian literatur, peneliti dapat terhindar dari melakukan penelitian

hal-hal yang sudah pernah diteliti, pengembangan instrumen yang sudah pernah

dibuat, dan pengulangan kesalahan-kesalahan masa lalu. Peneliti juga dapat

mengetahui penelitian-penelitian apa dan yang bagaimana yang masih perlu

dilakukan. Dengan demikian, penelitian yang dilakukannya niscaya akan senantiasa

dapat memperkaya dan memperluas bangunan ilmu pengetahuan yang bersangkutan.

Berikut adalah contoh dari penelitian atau pembuatan aplikasi berbasis SMS yang

digunakan sebagai study literature penulis, diantaranya adalah :

Page 89: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

70

1. Perancangan dan Pembuatan aplikasi kuis berbasis SMS, WEB dan WAP di

PT. Mitra Mediayama Kalimantan.

Sumber : http://dewey.petra.ac.id/jiunkpe_dg_11182.html.

Abstrak

Pada masa sekarang, inovasi di bidang teknologi komunikasi terus

berkembang. Kini orang tak lagi memanfaatkan SMS untuk berkirim pesan saja.

Adanya teknologi SMS push memungkinkan konsumen meminta layanan yang

disediakan oleh operator dan content provider. PT. Mitra Mediamaya Kalimantan

sebagai perusahaan penyedia content membutuhkan sebuah aplikasi content kuis

dengan tema olahraga, dan ingin mengembangkannya dalam bentuk aplikasi lain

yang dapat diakses melalui internet sebagai alternatif untuk dapat mengakses layanan

content. Pada Tugas Akhir ini, penulis mengimplementasikan kuis dengan tema

olahraga yang dapat diakses menggunakan layanan content berupa SMS, website dan

WAP. Kuis ini dapat diakses oleh member dengan melakukan registrasi terlebih

dahulu melalui layanan SMS (khusus untuk pelanggan Telkomsel). Sebelum

membuat kuis olahraga, disiapkan sejumlah pertanyaan kuis seputar olahraga, dan

mempelajari sistem pengiriman content dari member dan pengiriman content untuk

member. Tugas akhir ini dibuat dengan menggunakan Macromedia Dreamweaver

MX dengan PHP Hypertext Preprocessor (PHP) sebagai bahasa script dan MySQL

sebagai penyimpan database. Kuis olahraga ini telah selesai dibuat dengan fitur-fitur

Page 90: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

71

yang telah direncanakan sebelumnya. Member dapat mengakses kuis melalui layanan

SMS, website dan WAP. Member dapat meminta informasi poin, informasi panduan

kuis, informasi undian, dan terdapat profil member. Kuis olahraga dibuat sebagai

layanan content pada perusahaan PT. Mitra Mediamaya Kalimantan, dengan

alternatif website dan WAP untuk memudahkan dan menghemat pulsa member.

2. Kajian Teknologi Layanan Free – Reply – SMS.

Sumber: bdo.blog.ittelkom.ac.id/blog/files/2010/02/Free-Reply-SMS.pdf

Abstrak

Saat ini, layanan pesan singkat atau Short Message Service (SMS) sudah

menjadi kebutuhan utama bagi sekitar 20 juta pelanggan telepon selular di Indonesia.

Sebagai suatu teknologi informasi, SMS hanya merupakan layanan tambahan yang

ditumpangkan pada kanal frekuensi selular, sehingga secara teknis dapat diberikan

secara mudah dan murah. Namun karena keterbatasannya, pengembangan SMS lebih

banyak dilakukan pada nilai tambah layanannya (VAS), bukan teknologinya. Untuk

itu pada makalah ini akan dikaji suatu konsep baru layanan SMS, yaitu Free Repply

SMS atau layanan bebas balas SMS -dimana penerima pesan dapat membalas pesan

yang masuk tanpa membayar/berkurang pulsanya, dengan beberapa kondisi yang

memenuhi persyaratan. Kajian pada makalah ini akan dibahas dari aspek teknologi

dan aspek lain yang memungkinkan pada penerapannya.

Page 91: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

BAB III

METODOLOGI PENELITIAN

Bab ini membahas metodologi penelitian meliputi metode penelitian, prosedur

penelitian, dan teknik pengumpulan data.

3.1 Waktu dan Tempat Penelitian

Penelitian pengembangan aplikasi ini dilaksanakan selama 3 (tiga) bulan,

dimulai pada tanggal 1 Oktober 2009 sampai dengan 1 Desember 2009. Tempat

penelitian di Program Studi Teknik Informatika, Fakultas Sains dan Teknologi,

Universitas Islam Negeri Syarif Hidayatullah Jakarta.

3.2 Profil Prodi TI

Program Studi (Prodi) Teknik Informatika Fakultas Sains dan Teknologi

(FST) Universitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta yang bertujuan

menghasilkan Sarjana Komputer yang memiliki pemahaman teori dan metode di

bidang informatika, profesionalitas dan integritas, serta etika dan sikap Islami

sehingga mampu menganalisis dan memecahkan berbagai persoalan di bidang

sistem informasi yang bermanfaat bagi peningkatan kualitas hidup masyarakat

(Tim Penyusun Pedoman Akademik UIN Syarif Hidayatullah Jakarta 2007-2008,

2007: 261).

Page 92: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

73

Susunan staff dalam Prodi TI dikepalai oleh seorang kaprodi dan dalam

kinerjanya kaprodi dibantu oleh seorang sekretaris seorang pengurus kordinator

non-reguler dan tiga orang pemberi pelayanan informasi bagi mahasiswa Jenis

pelayanan yang diberikan oleh pihak Prodi TI kepada mahasiswa diantaranya

adalah mengurus surat-menyurat untuk mahasiswa, memberikan nilai IPK kepada

mahasiswa, memberikan informasi dan dalam kegiatanya prodi juga menerima

informasi dari mahasiswa seperti biodata mahasiswa, pendapat dari mahasiswa

mengenai kinerja dosen, fasilitas fakultas serta masih banyak lagi jenis pelayanan

dan informasi yang diberikan atau diterima pihak prodi dari mahasiswa.

Akan tetapi dalam berjalanya kegiatan tersebut, pihak prodi cenderung

mengalami kesulitan untuk mendapatkan informasi serta mencari tahu informasi

yang dibutuhkan baik bagi pihak mahasiswa atau pihak prodi. Bagi pihak

mahasiswa, mereka banyak mengalami kesulitan dalam pencarian informasi di

sekitar fakultas, dari informasi IPK sampai informasi jadwal kelas dan informasi

lainya. Dengan banyaknya jumlah mahasiswa yang ada di prodi TI, dan terjadinya

kesulitan dalam mengatur jadwal mahasiswa untuk meminta informasi kepada

pihak prodi maka sering terjadi keterlambatan dalam permintaan informasi yang

diajukan oleh mahasiswa, baik bagi mereka yang ingin mengetahui nilai IPK atau

mengurus surat – surat yang dibutuhkan oleh mahasiswa. Bagi pihak prodi,

mereka mengalami kesulitan dalam memberikan informasi, menggumpulkan

suara mahasiswa dan biodata mahasiswa yang berperan penting bagi pihak prodi.

Sedangkan informasi yang disampaikan oleh pihak prodi mempunyai peranan

penting dalam kebutuhan informasi bagi mahasiswa, dan jika ada informasi yang

Page 93: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

74

akan diberikan oleh pihak prodi kepada mahasiswa tertentu mereka masih

mengalami kesulitan dalam memberikan informasi tersebut, karena belum ada

biodata yang lengkap atau mengalami kesulitan dalam pencarian data mahasiswa

yang bersangkutan.

3.3 Kajian Penelitian

Kajian yang digunakan pada penelitian ini ada 3 (tiga), yaitu :

a. Kajian Teori

Penelitian yang dilakukan berdasarkan kajian teori, yaitu dilakukan dari

tanggal 1 oktober hingga 1 desember dengan mempelajari teori–teori dari

buku–buku dan jurnal–jurnal penelitian yang membahas tentang

pemrograman java dan MySQL.

b. Kajian Observasi

Penelitian yang dilakukan berdasarkan kajian observasi, yaitu melakukan

pengamatan terhadap lokasi PRODI TI dari tanggal 5 oktober 2009 hingga 9

oktober 2009, dalam observasi panulis memantau pertukaran informasi dan

peencarian informasi yang dilakukan mahasiswa atau pihak prodi di

lingkungan PRODI TI.

Page 94: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

75

c. Kajian Wawancara

Kajian wawancara dilakukan dengan cara pengambilan suara secara langsung

da ri mahasiswa melalui wawancara mengenai penyebaran informasi di Prodi

TI. kegiatan wawancara ini berlangsung dari tanggal 12 Oktober 2009 hingga

16 oktober 2009.

3.4 Prosedur Penelitian

Adapun prosedur penelitian sebagai berikut:

A. Bahan dan Alat

Pada pengembangan aplikasi ini, bahan dan alat yang digunakan adalah

software dan hardware. Software yang digunakan dalam penelitian ini adalah

Java Studio Enterprise 8.0 sebagai program antarmuka dan MySQL Server 5.0

sebagai database. Hardware yang digunakan adalah komputer dengan sistem

operasi Windows XP Professional Service Pack 2, dengan menggunakan

Handphone dan Bluetooth sebagai media perantara pengganti serial port.

B. Cara Kerja

Penelitian ini menggunakan Rapid Application Development (RAD) sebagai

metode pengembangan sistem. Adapun langkah–langkah kerja penelitian ini

adalah:

Page 95: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

76

1. Business Modeling

a. Melakukan observasi pada program studi Teknik Informatika,

Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif

Hidayatullah Jakarta.

b. Melakukan kajian teori untuk mengumpulkan referensi yang

dijadikan sebagai acuan dalam penelitian tersebut. Referensi–referensi

tersebut bisa berupa buku–buku maupun publikasi hasil penelitian

yang berhubungan dengan penelitian ini.

c. Mengolah informasi yang telah didapat dari wawancara dan studi

pustaka. Merancang dan menentukan informasi–informasi yang akan

diproses oleh aplikasi yang akan dibuat secara mendasar. Menentukan

informasi apa yang akan dihasilkan sebagai output.

2. Data Modeling

Mengidentifikasi masalah. Mendefinisikan informasi – informasi yang

telah diperoleh dari langkah sebelumnya dan diklasifikasikan ke dalam

objek–objek yang dibutuhkan. Menetapkan hubungan di antara objek–

objek tersebut. Objek–objek yang ada harus ditetapkan atribut–atributnya,

seperti menentukan jenis data pada atribut dalam database.

Page 96: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

77

3. Process Modeling

Mendesain aplikasi dengan menggunakan objek–objek yang telah

ditentukan pada langkah sebelumnya. Membuat struktur database untuk

menyimpan data–data yang dibutuhkan pada aplikasi pengembangan EI

(Extract Information), serta merancang desain antarmuka pada aplikasi

tersebut.

4. Application Generation

Mengimplementasikan aplikasi ke dalam bentuk pemrograman. Membuat

database dengan menggunakan MySQL Server 5.0 serta Java Studio

Enterprise 8.0 sebagai program utamanya.

5. Testing and turnover

Uji coba terhadap aplikasi yang baru. Apakah aplikasi tersebut sesuai

dengan kebutuhan user. Proses pemeriksaan kesalahan dimulai. Apabila

dalam langkah sebelumnya banyak menggunakan objek–objek yang sudah

ada, maka proses uji coba ini akan lebih cepat, sehingga lebih menghemat

waktu.

Page 97: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

78

3.5 Teknik Pengumpulan Data

Adapun teknik pengumpulan data yang digunakan ada 2 (dua):

a. Data Primer

Data Primer adalah data yang diperoleh langsung dari objek penelitian.

Contohnya adalah data suara mahasiswa yang langsung didapat dari

mahasiswa.

b. Data Sekunder

Data Sekunder adalah data yang diperoleh setelah data tersebut sudah diolah.

Contohnya adalah data Dosen Pembimbing Akademik, dosen pembimbing

PKL dan Biaya semester mahasiswa yang didapat dari program studi Teknik

Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif

Hidayatullah Jakarta.

Page 98: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

BAB IV

ANALISIS IMPLEMENTASI

Sesuai dengan metode pengembangan sistem yang digunakan peneliti, berikut

ini beberapa hal yang dilakukan peneliti dengan berpedoman pada metode

pengembangan Rapid Application Development (RAD).

4.1 Bisnis Modelling

Dalam pembuatan aplikasi ini peneliti menggunakan bisnis modeling yang

mengendalikan bisnis dalam pembuatan aplikasi ini.

informasi dari prodi TI

informasi dari Mahasiswa

Gambar 4.1 Bisnis Modeling

Prodi TI adalah suatu badan yang menjalankan aktivitas akademik jurusan

Teknik Informatika, yang mempunyai tugas mengatur segala jenis aktivitas dan

kegiatan yang dilakukan di dalam prodi TI. Prodi TI juga mempunyai tugas untuk

memberikan informasi kepada mahasiswa dan melayani mahasiswa dalam bidang

seputar kegiatan mahasiswa. Susunan staff dalam Prodi TI dikepalai oleh seorang

PRODI TI MAHASISWA

Page 99: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

80

kaprodi dan dalam kinerjanya kaprodi dibantu oleh seorang sekretaris dan dua orang

pemberi pelayanan informasi bagi mahasiswa

Jenis pelayanan yang diberikan oleh pihak Prodi TI kepada mahasiswa

diantaranya adalah mengurus surat-menyurat untuk mahasiswa, memberikan nilai

IPK kepada mahasiswa, memberikan informasi dan dalam kegiatanya prodi juga

menerima informasi dari mahasiswa seperti biodata mahasiswa, pendapat dari

mahasiswa mengenai kinerja dosen, fasilitas fakultas serta masih banyak lagi jenis

pelayanan dan informasi yang diberikan atau diterima pihak prodi dari mahasiswa.

Akan tetapi dalam berjalanya kegiatan tersebut, pihak prodi cenderung mengalami

kesulitan untuk mendapatkan informasi serta mencari tahu informasi yang dibutuhkan

baik bagi pihak mahasiswa atau pihak prodi. Bagi pihak mahasiswa, mereka banyak

mengalami kesulitan dalam pencarian informasi di sekitar fakultas, dari informasi

IPK sampai informasi jadwal kelas dan informasi lainya. Dengan banyaknya jumlah

mahasiswa yang ada di prodi TI, dan terjadinya kesulitan dalam mengatur jadwal

mahasiswa untuk meminta informasi kepada pihak prodi maka sering terjadi

keterlambatan dalam permintaan informasi yang diajukan oleh mahasiswa, baik bagi

mereka yang ingin mengetahui nilai IPK atau mengurus surat – surat yang dibutuhkan

oleh mahasiswa. Bagi pihak prodi, mereka mengalami kesulitan dalam memberikan

informasi, menggumpulkan suara mahasiswa dan biodata mahasiswa yang berperan

penting bagi pihak prodi. Sedangkan informasi yang disampaikan oleh pihak prodi

mempunyai peranan penting dalam kebutuhan informasi bagi mahasiswa, dan jika

ada informasi yang akan diberikan oleh pihak prodi kepada mahasiswa tertentu

Page 100: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

81

mereka masih mengalami kesulitan dalam memberikan informasi tersebut, karena

belum ada biodata yang lengkap atau mengalami kesulitan dalam pencarian data

mahasiswa yang bersangkutan.

Kebutuhan mendasar pada informasi yang bersifat penting agar pihak

mahasiswa dan prodi dapat mengetahui informasi yang mereka butuhkan membuat

saya sebagai peneliti tertarik untuk membuat aplikasi berbasis SMS yang dapat

membantu pihak prodi dan mahasiswa mendapatkan informasi yang mereka inginkan.

Dengan judul “PEMBUATAN APLIKASI PENYEBARAN INFORMASI

BERBASIS SMS GATEWAY DI LINGKUNGAN PRODI TI “. Dimana peneliti

akan membuat 5 aplikasi yang akan membantu pihak mahasiswa dan prodi dalam

memberikan dan menerima informasi. Aplikasi tersebut ialah : 1. Aplikasi pemberian

informasi terbaru dari prodi ke mahasiswa, 2. Aplikasi Tanya Dosen Pembimbing

Akademik, 3. Aplikasi Tanya Dosen Pembimbing PKL, 4. Aplikasi Tanya Biaya

Semester, 5. Aplikasi Polling SMS mengenai kinerja dosen di Prodi TI.

Page 101: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

82

4.1.1 Informasi apa saja yang mengendalikan proses

Dalam pembuatan aplikasi ini, informasi akan disebarluaskan kepada

mahasiswa dan pihak prodi TI. Bagi pihak mahasiswa, dengan adanya aplikasi

penyebaran informasi mereka dapat menerima informasi terbaru dari prodi TI, bisa

mengakses dosen pembimbing PKL, Penasehat akademik dan biaya semester mereka

langsung melalui aplikasi ini dan juga dapat mengkontribusikan suara keapada pihak

prodi secara langung dengan menggunakan aplikasi polling sms.

Bagi pihak prodi TI dengan menggunakan informasi ini mereka dapat

menyebarkan informasi kepada mahsiswa dengan mudah, dapat mengetahui biodata

mahasiswa langsung dari mahasiswa dan dapat mengambil suara mahasiswa jika

ingin mengambil suara mahasiswa dalam suatu polling.

4.1.2 Informasi apa yang dimunculkan

Dalam pembuatan aplikasi ini, informasi yang akan diberikan dan di terima oleh

mahasiswa dan prodi TI adalah :

a. Informasi terbaru dari prodi

b. Informasi Dosen Pembimbing Akademik

c. Informasi Dosen Pembimbing PKL

d. Informasi Biaya semester Mahasiswa

e. Informasi suara mahasiswa melalui polling sms

Page 102: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

83

4.1.3 Dimana Informasi digunakan

Aplikasi EI (extract Information) ini digunakan untuk membantu pihak prodi dan

mahasiswa dalam memberikan informasi dan menerima informasi di lingkungan

Prodi TI.

4.1.4 Siapa yang memproses.

Aplikasi ini akan dijalankan oleh pihak prodi TI, dari mengolah informasi yang

diberikan mahasiswa sampai informasi yang akan diberikan kepada mahasiswa

nantinya.

Page 103: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

84

4.2 Data Modeling

Model data yang digunakan dalam pembuatan aplikasi ini adalah :

4.2.1 DFD (Data Flow Diagram)

DFD adalah diagram yang menggunakan notasi – notasi untuk menggambarkan

arus dari data sistem (Jogiyanto, 2005 : 700)

a. Context Diagram

Context diagram adalah diagram level tertinggi dari DFD yg menggambarkan

hubungan sistem dgn lingkungan luarnya.

Bentuk context diagram aplikasi EI (EXTRACT INFORMATION) :

Gambar 4.2 Context Diagram Aplikasi EI (Extract Information)

Page 104: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

85

b. Diagram Zero

Gambar 4.3 Diagram Zero Aplikasi EI

Page 105: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

86

c. Diagram Detail

a. Level 1 proses 1 Kirim SMS

Level 1 proses 1 Kirim sms

1.1p

Isi No

Telepon

1.3p

Isi Pesan

isi pesan

b

Mahasiswa

Isi no telepon

1.2p

Input buku

telepon D1 Buku_telepon

Simpan data

a

Prodi TI

Informasi untuk mahasiswa

Data Buku telepon

Input buku

telepon

Gambar 4.4 Diagram detail level 1 proses kirim SMS

Page 106: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

87

b. Level 1 Proses 2 Tanya Pembimbing PKL

Gambar 4.5 Diagram detail Level 1 proses tanya pembimbing PKL

Page 107: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

88

c. Level 1 Proses 3 Tanya Biaya Mahasiswa

3.1p

Input Biaya

semester

D5 Biaya_semester

input

biaya semester

Simpan data

biaya semester

b

Mahasiswa

bertanya biaya semester

3.2p

Menjawab

pertanyaan

Mahasiswa

a

Prodi TIdata biaya semester

Gambar 4.6 Diagram detail Level 1 proses Tanya Biaya Mahasiswa

Page 108: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

89

d. Level 1 Proses 4 Polling SMS

Gambar 4.7 Diagram detail Level 1 proses Polling SMS

Page 109: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

90

e. Level 1 Proses 5 Tanya Dosen Pembimbing Akademik

5.1p

Input dosen

pembimbing

akademik

D4 Data_Mahasiswa

Input dosen

Pembimbing akademik

Simpan data

b

Mahasiswa

5.2p

Menjawab

pertanyaan

mahasiswa

a

Prodi TI

bertanya dosen

pembimbing akademik

data dosen pembimbing

akademik

Gambar 4.8 Diagram detail Level 1 proses Tanya Dosen PA

Page 110: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

91

4.2.2 Flowchart Data Flow Diagram

Berikut akan kami tampilkan flowchart dari masing – masing proses yang ada di

dalam Data Flow Diagram.

a. Flowchart 1.1p Proses isi no telepon

Gambar 4.9 Flowchart 1.1p proses isi no telepon

Page 111: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

92

b. Flowchart Proses 1.2p Input Buku Telepon

Gambar 4.10 Flowchart 1.2p Input Buku Telepon

Page 112: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

93

c. Flowchart Proses 1.3p isi pesan.

Kirim pesan ke

mahasiswa

END

START

Apakah sudah

benar?

tidak

Input isi pesan

Kirim Pesan

Gambar 4.11 Flowchart 1.3p Isi Pesan

Page 113: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

94

d. Flowchart Proses 2.1p Input Dosen Pembimbing PKL

Gambar 4.12 Flowchart 2.1p Input Dosen Pembimbing PKL

Page 114: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

95

e. Flowchart Proses 2.2p Tanya Dosen Pembimbing PKL

START

END

Meminta data ke

database

Kirim jawaban ke

mahasiswa

bertanya

dosen

pembimbing

PKL

Gambar 4.13 Flowchart 2.2p Tanya Dosen Pembimbing PKL

Page 115: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

96

f. Flowchart Proses 3.1p Input Biaya Semester

Gambar 4.14 flowchart 3.1p Input Biaya Semester

Page 116: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

97

g. Flowchart Proses 3.2p Tanya Biaya Semester

START

END

Meminta data ke

database

Kirim jawaban ke

mahasiswa

bertanya

biaya

semester

Gambar 4.15 Flowchart 3.2p Tanya biaya Semester

Page 117: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

98

h. Flowchart Proses 4.1p Input Polling SMS

Gambar 4.16 Flowchart 4.1p Input Polling SMS

Page 118: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

99

i. Flowchart Proses 4.2p Proses Isi Polling SMS

END

mahasiswa

mengisi

polling sms

Simpan data

ke

hasil_polling

START

Tampilan

hasil polling

Apakah isi

polling valid?

ya

tidak

Gambar 4.17 Flowchart 4.2p Proses Isi Polling SMS

Page 119: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

100

j. Flowchart Proses 5.1p Input Dosen Pembimbing Akademik

Gambar 4.18 Flowchart 5.1p Input Dosen Pembimbing Akademik

Page 120: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

101

j. Flowchart Proses 5.2p Tanya Dosen Pembimbing Akademik

START

END

Meminta data ke

database

Kirim jawaban ke

mahasiswa

bertanya

dosen

pembimbing

akademik

Gambar 4.19 Flowchart 5.2p Tanya Dosen Pembimbing Akademik

Page 121: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

102

4.2.3 Kamus Data

Kamus data adalah suatu daftar data elemen yang terorganisir dengan definisi

yang tetap dan sesuai dengan sistem, sehingga user dan analis sistem mempunyai

pengertian yang sama tentang input, output, dan komponen data store.

Kamus data ini sangat membantu analis sistem dalam mendefinisikan data

yang mengalir di dalam sistem, sehingga pendefinisian data itu dapat dilakukan

dengan lengkap dan terstruktur. Pembentukan kamus data dilaksanakan dalam tahap

analisis dan perancangan suatu system (Mazwan, 2007 : 1).

1. Kamus data Level 1 Proses 1 Kirim sms

Isi no telepon = kode area + no telepon +

Input buku telepon = no telepon + nama kontak + alamat +

Isi pesan = teks pesan +

Data buku telepon = no telepon +

Informasi untuk mahasiswa = teks pesan + no telepon +

2. Kamus data Level 1 Proses 2 Tanya dosen pembimbing PKL

Input dosen pembimbing PKL = nim + nama mahasiswa + no telepon +

Dosen PKL + Tahun Masuk +

Bertanya dosen pembimbing PKL = nim + nama mahasiswa + no telepon +

Dosen PKL + Tahun Masuk +

Data dosen pembimbing PKL = nim + nama mahasiswa + no telepon + Dosen

PKL + Tahun Masuk +

Page 122: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

103

3. Kamus data Level 1 Proses 3 Tanya biaya semester

Input biaya semester = kode + nim + nama + spp + dop + dkm + dp + dm +

total biaya +

Bertanya biaya semester = nim + nama + spp + dop + dkm + dp + dm + total

biaya +

Data biaya semester = kode + nim + nama + spp + dop + dkm + dp + dm +

total biaya +

4. Kamus data Level 1 Proses 4 Polling SMS

Input polling sms = kode pertanyaan + isi pertanyaan + pilihan a + pilihan b +

pilihan c +

Pertanyaan polling = isi pertanyaan + pilihan a + pilihan b + pilihan c +

Isi polling sms = pilihan a + pilihan b + pilihan c +

Simpan data isi polling sms = no urut + kode pertanyaan + pilihan + no

telepon pengirim +

5. Kamus data Level 1 Proses 5 Tanya Dosen Pembimbing Akademik

Input dosen PA = nim + nama mahasiswa + no telepon + dosen PA + tahun

masuk +

Data dosen pembimbing PA = nim + nama mahasiswa + no telepon + dosen

PA + tahun masuk +

Bertanya dosen pembimbing PA = nim + nama mahasiswa + no telepon +

dosen PA + tahun masuk +

Page 123: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

104

6. Kamus data Level 1 Proses 6p Sms masuk – sms keluar

Laporan informasi untuk mahasiswa = id keluar + status keluar + isi pesan

keluar + jam keluar + no telepon keluar + tanggal keluar +

Informasi untuk Prodi TI = id masuk + status masuk + isi pesan masuk + jam

masuk + no telepon masuk + tanggalmasuk +

7. Kamus data Level 1 Proses 7p Laporan proses

Laporan hasil polling = urut + kode pertanyaan + pilihan + no telepon

pengirim +

Laporan pertanyaan polling = kode pertanyaan + isi pertanyaan + pilihan a +

pilihan b + pilihan c +

Laporan biaya semester = + nim + nama + spp + dop + dkm + dp + dm + total

biaya +

Laporan dosen pembimbing PKL = No PKL + nip + nama dosen + nim +

nama mahasiswa + tahun PKL +

Laporan dosen Pembimbing PA = nip + nama dosen + nim + nama mahasiswa

+ akademik angkatan +

Laporan sms masuk = id masuk + status masuk + isi pesan masuk + jam

masuk + no telepon masuk + tanggalmasuk +

Laporan sms keluar = id keluar + status keluar + isi pesan keluar + jam keluar

+ no telepon keluar + tanggal keluar +

Page 124: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

105

4.3 Process Modelling

4.3.1 Entity Relationship Diagram

gambar 4.20 Entity Relationship Diagram EI

Page 125: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

106

4.3.2 Relasi Antar Tabel

Gambar 4.21 Relasi Antar Tabel

Page 126: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

107

4.3.3 Normalisasi

Bentuk Tidak Normal (Unnormalized Form)

Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja

tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat menginput.

No Urut Kode_Pertanyaan Pilihan No_telepon_pengirim No_telepon Nama_kontak Alamat Id_keluar

01

02

TI1

TI2

A

B

C

B

085695011110

085699999999

085677777777

085644444444

085695011110

085699999999

085677777777

085644444444

Rusdi

Bambang

Pamulang

Ciputat

Parung

Bogor

01

02

03

04

Status_keluar Isi_pesan_keluar Jam_keluar No_telepon_keluar Tanggal_keluar Id_masuk Status_masuk Isi_pesan_masuk

SEND

WAIT

Halo

Hai

Tes

cek

12:24:01

11:05:05

14:54:51

06:32:33

085695011110

085699999999

085677777777

085644444444

08-12-2009

08-12-2009

08-12-2009

08-12-2009

01

02

03

04

SEND

WAIT

Halo

Hai

Tes

cek

Jam_masuk No_telepon_masuk Tanggal_masuk Nim Nama_mahasiswa Dosen_PA Dosen_PKL

12:28:01

11:15:05

15:20:51

06:42:33

085695011110

085699999999

085677777777

085644444444

08-12-2009

08-12-2009

08-12-2009

08-12-2009

104091002846

104093002929

105097777444

103055588888

Rusdiantoro

Dian

Wahyu

Pram

Adi

Bambang

Adi

Bambang

Page 127: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

108

Kode_pertanyaan Isi_pertanyaan Pilihan_a Pilihan_b Pilihan_c kode Nim

TI1

TI2

TI3

TI4

Kinerja dosen

Kebersihan

Pelayanan Prodi TI

Disiplin

Baik

Baik

Baik

Baik

Cukup

Cukup

Cukup

Cukup

Kurang

Kurang

Kurang

Kurang

01

02

03

04

104091002846

104093002929

105097777444

103055588888

SPP DOP DKM DP Jumlah Pajak Total_Pembayaran Bulan_pembayaran

300000

400000

200000

200000

300000

100000

200000

300000

100000

200000

300000

100000

900000

1300000

500000

30000

40000

20000

930000

1340000

520000

Maret

Page 128: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

109

Bentuk Normal ke satu (First Normal Form/1NF)

Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu harga tunggal yang

berinteraksi terhadap setiap baris pada suatu table, dan setiap atribut harus mempunyai data yang atomic (bersifat atomic

value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia tidak akan memiliki sifat

induknya.

No Urut* Kode_Pertanyaan** Pilihan No_telepon_pengirim No_telepon* Nama_kontak Alamat Id_keluar*

01

02

TI1

TI2

A

B

C

B

085695011110

085699999999

085677777777

085644444444

085695011110

085699999999

085677777777

085644444444

Rusdi

Bambang

Pamulang

Ciputat

Parung

Bogor

01

02

03

04

Status_keluar Isi_pesan_keluar Jam_keluar No_telepon_keluar Tanggal_keluar Id_masuk* Status_masuk Isi_pesan_masuk

SEND

WAIT

Halo

Hai

Tes

cek

12:24:01

11:05:05

14:54:51

06:32:33

085695011110

085699999999

085677777777

085644444444

08-12-2009

08-12-2009

08-12-2009

08-12-2009

01

02

03

04

SEND

WAIT

Halo

Hai

Tes

cek

Jam_masuk No_telepon_masuk Tanggal_masuk Nim* Nama_mahasiswa** Dosen_PA Dosen_PKL

12:28:01

11:15:05

15:20:51

06:42:33

085695011110

085699999999

085677777777

085644444444

08-12-2009

08-12-2009

08-12-2009

08-12-2009

104091002846

104093002929

105097777444

103055588888

Rusdiantoro

Dian

Wahyu

Pram

Adi

Bambang

Adi

Bambang

Page 129: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

110

Kode_pertanyaan* Isi_pertanyaan Pilihan_a Pilihan_b Pilihan_c Kode* Nim **

TI1

TI2

TI3

TI4

Kinerja dosen

Kebersihan

Pelayanan Prodi TI

Disiplin

Baik

Baik

Baik

Baik

Cukup

Cukup

Cukup

Cukup

Kurang

Kurang

Kurang

Kurang

01

02

03

04

104091002846

104093002929

105097777444

103055588888

SPP DOP DKM DP Jumlah Pajak Total_Pembayaran Bulan_pembayaran

300000

400000

200000

200000

300000

100000

200000

300000

100000

200000

300000

100000

900000

1300000

500000

30000

40000

20000

930000

1340000

520000

Maret

Page 130: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

111

Bentuk Normal kedua (Second Normal Form/2NF)

Bentuk normal kedua didasarai atas konsep full functional dependency (ketergantungan fungsional sepenuhnya)

yang dapat didefiniskan sebagai berikut: jika A dan B adalah atribut-atribut dari suatu relasi, B dikatakan full functional

dependency (memiliki ketergantungan functional sepenuhnya) terhadap A, jika B adalah tergantung fungsional terhadap A,

tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari A.

Table hasil polling

No_urut* Kode_pertanyaan** Pilihan No_telepon_pengirim

01 TI1 A 085695011110

02 TI1 B 085699999999

03 TI1 C 085677777777

Table pertanyaan polling

Kode_pertanyaan* Isi_pertanyaan Pilihan_a Pilihan_b Pilihan_c

TI1 Kinerja dosen baik cukup kurang

TI2 Kebersihan baik cukup kurang

TI3 Pelayanan Prodi TI baik cukup kurang

Table Buku Telepon

No_Telepon* Nama_Mahasiswa Alamat

085695011110 Rusdi Pamulang

0218888888 Rusdi Ciputat

081888888888 Budi Bintaro

085333333388 Budi Senayan

Page 131: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

112

Table SMS Keluar

Id_keluar* Status_keluar Isi_pesan_keluar Jam_keluar No_telepon_keluar** Tanggal_Keluar

01 SEND Halo 12:24:01 085695011110 08-12-2009

02 SEND Hai 11:05:05 085999999999 08-12-2009

03 WAIT Tes 14:54:51 081333333333 08-12-2009

04 WAIT cek 06:32:33 085999999999 08-12-2009

Table SMS Masuk

Id_masuk* Status_masuk Isi_pesan_masuk Jam_masuk No_telepon_masuk** Tanggal_masuk

01 SEND Halo 12:24:01 085695011110 08-12-2009

02 SEND Hai 11:05:05 085999999999 08-12-2009

03 WAIT Tes 14:54:51 081333333333 08-12-2009

04 WAIT cek 06:32:33 085999999999 08-12-2009

Table Mahasiswa

Nim* Nama_Mahasiswa Dosen_PA Dosen_PKL

104091002846 Rusdiantoro Adi Adi

104093002929 Dian Adi Adi

105097777444 Wahyu Bambang Adi

103055588888 Pram Bambang Bambang

Page 132: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

113

Table Biaya Semester

Kode* Nim** SPP DOP DKM DP Jumlah Total_biaya

01 104091002846 300000 200000 200000 200000 200000 1100000

02 105088966655 400000 300000 300000 300000 300000 1600000

03 103055447788 200000 100000 100000 100000 100000 100000

Jumlah Total_biaya

200000 1100000

300000 1600000

100000 100000

Page 133: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

114

4.3.4 Perancangan Database

Macam-macam tabel yang ada pada Aplikasi EI(Extract Information)

a. Tabel sms_masuk

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

id_masuk

no_telepon_masuk

tanggal_masuk

jam_masuk

isi_pesan_masuk

status_masuk

int(11)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

PRI NULL auto_increment

b. Tabel sms_keluar

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

id_keluar

no_telepon_keluar

tanggal_keluar

jam_keluar

isi_pesan_keluar

status_keluar

int(11)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

PRI NULL auto_increment

c. table data mahasiswa

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

nim

nama_mahasiswa

dosen_pa

dosen_pkl

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

PRI NULL

Page 134: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

115

d. Tabel buku_telepon

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

no_telepon

nama_kontak

alamat

varchar (25)

varchar (150)

varchar (250)

NO

NO

NO

PRI NULL

e. Tabel biaya_semester

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

7

8

9

10

kode

nim

spp

dop

dkm

dp

jumlah

pajak

total_pembayaran

bulan_pembayaran

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (10)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

NO

NO

NO

NO

PRI NULL

f. Tabel data_pertanyaan_polling

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

Kode_pertanyaan

Isi_pertanyaan

Pilihan_a

Pilihan_b

Pilihan_c

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

PRI NULL

g. Tabel_hasil_polling

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

no_urut

kode_pertanyaan

pilihan

no_telepon_pengirim

int(11)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

PRI NULL auto_increment

Page 135: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

116

4.4 Application Generation

Pada pembuatan aplikasi ini peneliti akan menjelaskan cara membuat aplikasi ini

dengan menggunakan Java Studio Enterprise versi 8.0, untuk database peneliti akan

menggunakan MySQL versi 5 dan menggunakan smitdev-server sebagai penghubung

bahasa pemrograman java dengan Handphone. Flowchart dan source code yang

digunakan terlampir di skripsi ini.

1. Membuat coding aplikasi (terlampir)

2. Membuat database menggunakan MySQL (terlampir)

Page 136: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

117

3. Tampilan Desain Aplikasi EI (extract information)

a. Tampilan Desain Utama Aplikasi EI

Gambar 4.22 Tampilan Jendela Utama Aplikasi EI

Page 137: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

118

b. Desain Kirim SMS

Gambar 4.23 Tampilan Jendela Kirim SMS

Page 138: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

119

c. Desain Pengaturan Terminal

Jendela Pengaturan Terminal

Konfigurasi Terminal

Serial Port :

Bits Per Second :

Data Bits :

Parity :

Stop Bits :

Flow Control :

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

Konfigurasi DataBase (MySQL DataBase Server)

Nama Host :

Nama Port :

Nama Database :

Nama Pengguna :

Password :

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

Setuju Tidak

Gambar 4.24 Tampilan Jendela Pengaturan Terminal

Page 139: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

120

d. Jendela SMS Masuk

Jendela SMS Masuk

Data SMS Masuk

XXXXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXX

XXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXX

XXXXX

No Telepon Nama Kontak Isi Pesan Status

Balas SMS Hapus Hapus SMS Tutup Jendela

Gambar 4.25 Tampilan Jendela SMS Masuk

Page 140: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

121

e. Jendela SMS Keluar

Jendela SMS KELUAR

Data SMS Keluar

XXXXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXX

XXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXX

XXXXX

No Telepon Nama Kontak Isi Pesan Status

Teruskan Kirim SMS Hapus Hapus Semua Tutup Jendela

Gambar 4.26 Tampilan Jendela SMS Keluar

Page 141: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

122

f. Jendela Buku Telepon

Jendela Buku Telepon

Buku Telepon

XXXXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXX

XXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXX

No Telepon Nama Kontak Alamat

Tambah Data Baru Kirim SMS Hapus Data Tutup Jendela

Gambar 4.27 Tampilan Jendela Buku Telepon

Page 142: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

123

g. Jendela Input Data Mahasiswa, Dosen PA, Dosen PKL

Gambar 4.28 Tampilan Jendela Input Data Mahasiswa, Dosen PA & PKL

Page 143: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

124

h. Jendela Input Biaya Semester

Jendela Biaya Semester

Data SMS Request

Biaya Semester

Bulan : Tahun :

Nim :

Nama Mahasiswa :

SPP :

DOP :

DKM :

DP :

DM :

+

Total Biaya Semester :

XXXXXXXX

XXXXXXXXXXXX

XXXX

XXXXXXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXX

XXXXXXXX

Simpan Data Update Data Tutup Jendela

Gambar 4.29 Tampilan Jendela Biaya Semester

Page 144: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

125

i. Jendea Input Data Pertanyaan Polling

Gambar 4.30 Tampilan Jendela Pertanyaan Polling

Page 145: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

126

j. Jendela Hasil Polling

Gambar 4.31 Tampilan Jendela Hasil Polling

Page 146: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

127

4. Koneksi Aplikasi dengan Handphone melalui media bluetooth

Dalam penggunaan aplikasi ini, peneliti menggunakan service virtual Comm yang

ada pada aplikasi bluetooth. Cara menset bluetooh agar terdeteksi aplikasi ialah

sebagai berikut :

a. Install Aplikasi Bluetooth

langkah awal dalam menggunakan aplikasi bluetooth adalah dengan

menginstall software bluesoleil yang digunakan untuk melakukan koneksi dengan

bluetooth.

b. aktivkan bluetooth dan pilih bluetooth device discovery

Setelah aplikasi terinstall, aktivkan bluetooth sehingga muncul gambar seperti

di bawah ini :

Gambar 4.32 Tampilan Bluetooth

Page 147: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

128

c. Cari perangkat handphone disekitar yang mengaktivkan bluetoothnya kemudian

klik dua kali, sehingga muncul gambar sepeerti berikut :

Gambar 4.33 Detect Perangkat

d. pilih bluetooth serial port service

Gambar 4.34 Bluetooth serial port service

Page 148: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

129

e. masukan password untuk konfirmasi

Gambar 4.35 Password untuk konfirmasi

Setelah di masukan password dan dikonfirmasi oleh handphone, maka akan tercipta

virtual serial port yang digunakan dalam aplikasi ini.

4.5 Testing dan Turnover

1. Mengaktivkan MySQL dan menggunakan database sms sebagai database utamanya

2. Menjalankan Aplikasi EI

Page 149: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

BAB V

PENUTUP

5.1 Kesimpulan

Setelah membuat aplikasi EI dan menjalankanya, penulis menarik kesimpulan

sebagai berikut :

1. Pembuatan Aplikasi EI (Extract Information) Di Lingkungan Prodi TI ini

dibuat sebagai sarana mempermudah komunikasi antara pihak prodi TI dan

mahasiswa.

2. Bagi pihak prodi aplikasi ini dapat membantu mereka dalam memberikan dan

menerima informasi dari mahasiswa serta dapat mengetahui suara mayoritas

mahasiswa.

3. Bagi pihak mahasiswa aplikasi ini diharapkan dapat membantu mahasiswa

dalam mendapatkan dan menerima informasi terbaru yang diberikan oleh

pihak prodi.

Page 150: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

131

5.2 Saran

Sehubungan dengan kesimpulan di atas, penulis hendak memberikan

saran-saran sebagai berikut:

1) Kepada pembaca yang ingin meneruskan aplikasi Extract Information,

diharapkan mengambil ruang lingkup penelitian yang lebih luas, seperti

wilayah fakultas atau universitas.

2) Kepada mahasiswa yang akan ingin mengembangkan aplikasi ini,

diharapkan menambahkan aplikasi yang memberikan informasi bagi

mahasiswa seperti nilai IPK mahasiswa, jadwal kelas atau jadwal mata

kuliah dan lain-lain.

Page 151: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

DAFTAR PUSTAKA

Dwi Prasetyo, Didik. Administrasi Database Server MySQL. Media Elex Komputido.

Yogyakarta, 2004.

Efendy, Yeyen & Istiyanto, Jazi Eko. Rancangan dan Implementasi Prototipe Sistem

Kendali Jarak Jauh Berbasis AT89C52 dan Layanan SMS GSM. UGM.

Yogyakarta, 2004.

Eko. Pengantar Teknologi Bluetooth. Jurnal, 2005.

Faiz, GP. Global System for Mobile Communication. Jurnal, 2005.

Hariyanto, Bambang. Esensi – esensi Bahasa Pemrograman Java. Informatika

Bandung, 2005.

Hasan. Multimedia Information Retrieval. Institut Teknologi Surabaya. Jurnal, 2007.

Heggel. Docklight Application Note : Bluetooth Serial Port. Jurnal, 2009.

Istiyanto, Jazi Eko. Rancangan dan Implementasi Prototipe Sistem Kendali Jarak

Jauh. UGM. Yogyakarta, 2004.

Jogiyanto, Hartono. Analisis dan Desain Sistem Informasi : Pendekatan Terstruktur

Teori Dan Praktik Aplikasi Bisnis. ANDI Yogyakarta, 2005.

Latief, Adnan. Penelitian Pengembangan. Universitas Negeri Malang. Jurnal, 2009.

Lajmudin, Bin Al – Bahra. Analisis dan Desain Sistem Informasi. Yogyakarta. 2005.

Lekkad, Pritviraj. SMS The New Age Communication Technique. UNITES

Professionals. Bangalore - India. 2008.

Mazwan, Kamus Data (Data Dictionary). Jurnal, 2007.

Mazdalifah . Buku Ajar Pendapat Umum. Departemen Ilmu Komunikasi Fakultas

Ilmu Sosial dan Politik Sumatera Utara. Jurnal, 2006.

Page 152: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

133

Na’am, Ufriadif. Penerapan Mobile Banking Berbasis SMS. Jurnal, 2006.

Peraturan Pemerintah Republik Indonesia Nomor 37 Tahun 2009, Tentang Dosen.

Purnomo, Adi. Pemrograman Java 2 (Membangun Beragam Aplikasi Layanan SMS).

Salemba Infotek Jakarta, 2007.

Puy, Inigo. Bluetooth. Jurnal, 2008.

Ramadhani, Emilia & Mazdalifah. Buku Ajar Pendapat Umum. Jurnal, 2006.

Runkle, Tom. Application Definition. Jurnal, 2008.

Sugiono. Perancangan Sistem Informasi Appointment Pasien Berbasis SMS di Rumah

Bersalin. Stikes Surya Global. Yogyakarta. 2007.

Tetelepta, Franklin Arthur. Sistem Akses Fasilitas Pendaftaran Rencana Studi dan

Jadwal Ujian VIA SMS. Jurnal, 2003.

Undang – undang Republik Indonesia Nomor 18 Tahun 2002. Tentang Pembuatan

dan Pengembangan.

Widawaty, Yunita Riris & Lien, Diao Ai. Kegunaan Studi Literature Dalam

Penelitian. Jurnal, 2004.

Waljiyanto,. Sistem Basis Data : Analisis dan Pemodelan Data. Informatika.

Bandung. 2000.

Yulimingtarto, Johan. Pengolahan Data GPS yang Dikirim dengan Teknologi SMS

untuk Pelacakan Kendaraan. Petra Christian University. Surabaya, 2004.

http://dewey.petra.ac.id/jiunkpe_dg_11182.html. (10-01-2010) : 09.00)

http://willis.comze.com/pengertian_informasi.html (12-03-2010 : 14.00)

bdo.blog.ittelkom.ac.id/blog/files/2010/02/Free-Reply-SMS.pdf (23-12-2009 : 10.20)

http://www.textsmsmarketing.com/uses_benefits.php (24 - 05 - 2010 : 11.00)

(http://www.apolloasia.com/gateway.html) (24 – 05 – 2010 : 11.00)

Page 153: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

134

LAMPIRAN A

WAWANCARA PRODI TI

1. Informasi apa saja yang ditanyakan oleh mahasiswa ketika datang ke prodi TI?

- Mahasiswa biasanya menanyakan informasi nilai semester, IPK, dosen PKL dan

dosen PA.

2. Bagaimana cara memberikan informasi untuk mahasiswa TI?

- Kami memberikan informasi baik dari pihak prodi sendiri atau informasi dari

pusat melalui mading mading yang berada di depan ruangan Prodi TI.

3. Langkah apa yang dilakukan oleh pihak prodi jika ingin mengambil suara dari

mahasiswa?

- Untuk mendapatkan suara dari mahasiswa biasanya kami menggunakan angket

untuk dibagikan kepada mahasiswa, akan tetapi pembagian angket ini masih

kurang effisien karena banyak memakan waktu dan sering terjadi kerusakan

dalam pengembalian angket.

4. Bisakah bapak teraangkan susunan organisasi di Prodi TI ?

- Prodi TI dikepalai oleh Kaprodi dan ada sekretaris yang membantu kaprodi,

juga pembantu staff yang membantu mahasiswa

Nara Sumber : Bapak Tomy.

Page 154: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

135

WAWANCARA MAHASISWA

1. Informasi apa saja yang akan anda cari jika datang ke Prodi TI?

- Biasanya saya mencari informasi jadwal kuliah, nilai ipk, dosen PA dan PKL.

2. Menurut anda bagaimana penyebaran informasi yang ada di prodi TI?

- Tidak effisien, informasi terbaru hanya ditujukan kepada mahasiswa yang

sering ke kampus, sedangkan bagi mahasiswa yang sudah kerja mengalami

kesulitan dalam memcari informasi.

3. Bagaimana menurut anda dengan pembagian angket yang dilakukan pihak prodi

untuk mengambil suara dari Mahasiswa?

- menurut saya bagus, karena pembagian angket bisa menyalurkan suara

mahasiswa. Akan tetapi lebih bagus lagi bisa dilakukan secara sering dan terus –

menerus.

4. Dalam pemberian informasi, bagaimana menurut anda yang effisien?

- Menurut saya mahasiswa seharusnya mendapatkan informasi secara cepat dan

tidak bertele – tele.

5. Menurut anda perlukah mahasiswa diberikan informasi mengenai biaya

semester?

- Menurut saya itu penting untuk orang tua mahasiswa, karena dengan adanya

laporan tersebut mereka bisa mengetahui biaya semester yang harus dibayar

oleh anaknya.

6. Bagaimana jika dibuat aplikasi yang membantu penyebaran informasi di Prodi

TI?

- Menurut saya bagus, lebih baik lagi jika dilakukan secara online atau melalui

sms.

Sumber : Irham Hayat Daud

Nim : 104091003205

Page 155: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro.

Jurnal Informatika, Juni 2010

PENGEMBANGAN APLIKASI PENYEBARAN INFORMASI BERBASIS

SHORT MESSAGE SERVICE (SMS)

DI LINGKUNGAN PROGRAM STUDI TEKNIK INFORMATIKA

Rusdiantoro

Program Studi Teknik Informatika

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Jl. Ir. H. Juanda No. 95 Ciputat, Jakarta Selatan, Indonesia 15419

Telp : (021)-7401925 Fax (021)-7402982

Email : [email protected]

Pada penelitian ini akan dikembangkan suatu perangkat lunak yang mempunyai tujuan

utama untuk menyebarkan informasi yang ada di lingkungan Program Studi Teknik Informatika.

Aplikasi ini dikembangkan untuk membantu penyebaran informasi dan pertukaran informasi karena

dalam menjalankan tugasnya pihak Program Studi cenderung mengalami kesulitan untuk memberikan

informasi kepada mahasiswa, dan bagi mahasiswa, mereka juga mengalami kesulitan dalam pencarian

informasi di sekitar fakultas, seperti mendapatkan informasi Dosen Pembina Akademik, Dosen

Pembimbing Praktek Kerja Lapangan dan informasi lainnya.

Kebutuhan mendasar pada informasi yang bersifat penting agar pihak mahasiswa dan

Program Studi dapat mengetahui informasi yang mereka butuhkan, membuat saya sebagai peneliti

tertarik untuk membuat aplikasi berbasis SMS yang dapat membantu pihak Program Studi dan

mahasiswa untuk mendapatkan informasi yang mereka inginkan. Dengan judul “PEMBUATAN

APLIKASI PENYEBARAN INFORMASI BERBASIS SHORT MESSAGE SERVOCE (SMS) DI

LINGKUNGAN PROGRAM STUDI TEKNIK INFORMATIKA “. Di mana aplikasi ini akan

mengiriman informasi sms kepada mahasiswayang berupa informasi dosen pembina praktek kerja

lapangan, dosen pembina akademik, informasi biaya semester mahasiswa dan polling sms.

Dalam pengembangan sistem ini, penulis menggunakan metodologi RAD (Rapid Application

Development), menggunakan bahasa pemrograman java dan menggunakan MySQL sebagai database

nya serta menggunakan SmitDev Server sebagai sms gateway. Dalam menjalankan aplikasi ini, penulis

akan menggunakan bahasa AT COMMAND untuk bahasa perintah handphone dan Bluetooth sebagai

media koneksi perantara antara komputer dan handphone.

Kata Kunci : short message service (SMS), Informasi, Mahasiswa, Program Studi Teknik

Informatika

Latar Belakang SMS (Short Message Service) merupakan layanan atau fasilitas yang diberikan dan

dikembangkan oleh para operator GSM (Global System of Mobile Communication). Layanan atau

fasilitas SMS merupakan salah satu hasil pengembangan dari aplikasi perangkat seluler atau mobile-

phone yang dapat digunakan sebagai media berkomunikasi. Adapun cara berkomunikasi memakai SMS

adalah dengan cara mengirimkan sebuah pesan singkat, berupa text atau alphanumeric yang sederhana.

Cara komunikasi dengan menggunakan SMS merupakan cara berkomunikasi yang lain, selain

berkomunikasi dengan mengirim sinyal suara.

Program studi TI adalah suatu badan yang menjalankan aktivitas akademik program studi Teknik

Informatika, yang mempunyai tugas mengatur segala jenis aktivitas dan kegiatan yang dilakukan di

dalam program studi TI. Program studi TI juga mempunyai tugas untuk memberikan informasi kepada

mahasiswa dan melayani mahasiswa dalam bidang seputar kegiatan mahasiswa. Susunan staff dalam

Program studi TI dikepalai oleh seorang kaprogram studi dan dalam kinerjanya kepala program studi

dibantu oleh seorang sekretaris, seorang kepala pengurus mahasiswa program non-reguler dan tiga orang

orang pemberi pelayanan informasi bagi mahasiswa.

Jenis pelayanan yang diberikan oleh pihak Program studi TI kepada mahasiswa diantaranya

adalah mengurus surat-menyurat untuk mahasiswa, memberikan informasi dan dalam kegiatanya

program studi juga menerima informasi dari mahasiswa seperti biodata mahasiswa, pendapat dari

mahasiswa mengenai kinerja dosen, fasilitas fakultas serta masih banyak lagi jenis pelayanan dan

informasi yang diberikan atau diterima pihak program studi dari mahasiswa. Akan tetapi dalam

berjalanya kegiatan tersebut, pihak program studi cenderung mengalami kesulitan untuk mendapatkan

informasi serta mencari tahu informasi yang dibutuhkan baik bagi pihak mahasiswa atau pihak program

studi.

1 UIN Syarif Hidayatullah Jakarta

Page 156: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Bagi pihak mahasiswa, mereka banyak mengalami kesulitan dalam pencarian informasi di sekitar

fakultas, dari informasi Dosen Pembina Akademik, Dosen Pembimbing Praktek Kerja Lapangan sampai

informasi jadwal kelas dan informasi lainya. Dengan banyaknya jumlah mahasiswa yang ada di program

studi TI, dan terjadinya kesulitan dalam mengatur jadwal mahasiswa untuk meminta informasi kepada

pihak program studi maka sering terjadi keterlambatan dalam permintaan informasi yang diajukan oleh

mahasiswa, baik bagi mereka yang ingin mengetahui dosen PA dan PKL atau mengurus surat – surat

yang dibutuhkan oleh mahasiswa. Bagi pihak program studi, mereka mengalami kesulitan dalam

memberikan informasi, menggumpulkan suara mahasiswa dan informasi dari mahasiswa yang berperan

penting bagi pihak program studi. Sedangkan informasi yang disampaikan oleh pihak program studi

mempunyai peranan penting dalam kebutuhan informasi bagi mahasiswa, dan jika ada informasi yang

akan diberikan oleh pihak program studi kepada mahasiswa tertentu, mereka masih mengalami kesulitan

dalam memberikan informasi tersebut, karena belum ada data yang lengkap atau mengalami kesulitan

dalam pencarian data mahasiswa yang bersangkutan.

Kebutuhan mendasar pada informasi yang bersifat penting agar pihak mahasiswa dan program

studi dapat mengetahui informasi yang mereka butuhkan membuat saya sebagai peneliti tertarik untuk

membuat aplikasi berbasis SMS yang dapat membantu pihak program studi dan mahasiswa

mendapatkan informasi yang mereka inginkan. Dengan judul “ PEMBUATAN APLIKASI

PENYEBARAN INFORMASI BERBASIS SHORT MESSAGE SERVICE (SMS) DI LINGKUNGAN

PROGRAM STUDI TEKNIK INFORMATIKA “. Tulisan ini merupakan penelitian skripsi yang

merupakan syarat dalam memperoleh kelulusan dan memperoleh gelar sarjana.

Rumusan Masalah

Berbagai bentuk pencarian informasi telah banyak dilakukan oleh pihak mahasiswa maupun

program studi, dari pencarian informasi yang bersifat langsung (direct) seperti menanyakan informasi

langsung kepada pihak program studi atau bersifat tidak langsung (indirect) seperti pengambilan

informasi dari mahasiswa dalam bentuk angket. Dan dalam aktivitas program studi atau mahasiswa

terdapat beberapa permasalahan yang menjadi penghambat dalam pemberian dan penerimaan informasi,

permasalahan tersebut adalah sebagai berikut :

a. Kurangnya komunikasi antara mahasiswa dan pihak program studi, menjadi salah satu penyebab

utama tidak berjalannya penyebaran informasi secara efisien di FST.

b. Dalam menanyakan informasi kepada pihak program studi, banyaknya jumlah mahasiswa membuat

pihak program studi mengalami kesulitan dalam melayani permintaan mahasiswa, sehingga sering

terjadi keterlambatan dalam pelayanan permintaan informasi yang diajukan oleh mahasiswa.

c. Membuat aplikasi penyebaran informasi yang membantu pihak program studi TI dalam memberikan

informasi kepada mahasiswa dengan info terbaru, seperti informasi pembimbing praktek kerja

lapangan, pembina akademik, biaya semester dan polling sms yang membantu mengetahui suara

mahasiswa.

Batasan Masalah

Dalam pembuatan skripsi ini, peneliti membatasi permasalahan dengan batasan masalah sebagai

berikut :

a. Informasi yang diberikan dalam aplikasi ini berupa penyebaran informasi langsung kepada

mahasiswa, informasi dosen pembimbing praktek kerja lapangan, pembina akademik, biaya semester

dan polling sms.

b. Menggunakan media handphone bertipe GSM yaitu Siemens CX75 sebagai server perantara antara

aplikasi dari komputer dan koneksi sinyal.

c. Menggunakan program smitdev server untuk membuat koneksi antara Bahasa pemrograman Java

dengan handphone yang dikoneksikan ke dalam PC.

d. Pihak yang menggunakan aplikasi ini ialah staff program studi Teknik Informatika yang membantu

pelayanan informasi mahasiswa.

Tujuan Penelitian

Adapun tujuan dari peneliti membahas studi kasus ini adalah :

1. Untuk mengembangkan dan mengimplementasikan aplikasi berbasis SMS untuk digunakan di

lingkungan Program studi TI.

2. Bagi pihak program studi aplikasi ini dapat membantu mereka dalam memberikan dan menerima

informasi dari mahasiswa serta dapat mengetahui suara mayoritas mahasiswa.

3. Bagi pihak mahasiswa aplikasi ini diharapkan dapat membantu mahasiswa dalam mendapatkan dan

menerima informasi yang diberikan oleh pihak program studi, terutama dalam hal pemberian

informasi yang bersifat penting.

2 UIN Syarif Hidayatullah Jakarta

Page 157: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Manfaat Penelitian

Bagi Peneliti.

a) Menambah pengalaman, memperluas wawasan pemikiran dan mengembangkan potensi diri.

b) Memperoleh pengetahuan baru yang berhubungan dengan bahasa pemrograman java dan MySQL.

c) Untuk memenuhi salah satu syarat kelulusan strata satu (S1) Program Studi Teknik Informatika

Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.

Bagi Pihak Program Studi TI dan Mahasiswa.

a) Dengan dibuatnya aplikasi ini diharapkan akan mempermudah pihak Program studi dan Mahasiswa

dalam mencari dan mendapatkan informasi yang dibutuhkan.

b) Dapat meningkatkan komunikasi antara pihak program studi dan mahasiswa.

Bagi Pihak Universitas.

a) Sebagai sumbangan karya ilmiah dalam disiplin ilmu khususnya dalam bidang teknologi informatika.

Metodologi Penelitian

Langkah-langkah dalam pengerjaan Tugas Akhir :

Waktu dan Tempat Penelitian

Penelitian pengembangan aplikasi ini dilaksanakan selama 3 (tiga) bulan, dimulai pada tanggal 1

Oktober 2009 sampai dengan 1 Desember 2009. Tempat penelitian di Program Studi Teknik

Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta.

Metode Pengumpulan Data

Penelitian yang dilakukan adalah penelitian eksperimen dan simulasi. Penelitian ini

menggunakan sebuah laptop dan handphone sebagai sarana untuk mengembangkan aplikasi berbasis

SMS.

a. Penelitian Kepustakaan

Metode ini dilakukan dengan cara mencari bahan – bahan atau materi sumber yang dapat digunakan

sebagai referensi peneliti atau mencari hal – hal yang dapat digunakan dalam pembuatan aplikasi

berbasis SMS ini.

b. Wawancara

Wawancara bertujuan untuk mengetahui pendapat dari mahasiswa apakah aplikasi berbasis SMS ini

akan bermanfaat bagi mahasiswa dan civitas akademik.

c. Studi Literatur tentang :

1) Pemrograman dengan bahasa Java, karena aplikasi berbasis SMS ini akan dibuat menggunakan

bahasa Java.

2) Koneksi antara mobile-phone dengan komputer melalui Kabel Data, serta menggunakan Bluetooth

sebagai media perantara.

3) Belajar bahasa pemrograman SQL, serta menggunakan MySQL sebagai database-nya.

3 UIN Syarif Hidayatullah Jakarta

Page 158: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Metode Pengembangan Sistem

Metode pengembangan sistem yang digunakan dalam penelitian ini menggunakan metode RAD

(Rapid Application Development) dan dengan model-model sebagai berikut:

1). Model Bisnis

Pada tahap ini menentukan ruang lingkup program yang akan dibangun sesuai fungsi – fungsi

bisnis yang berjalan dalam proses bisnis

2). Model Data

Membentuk serangkaian objek data yang dibutuhkan untuk menopang model bisnis tersebut.

Pada tahapan ini, dilakukan analisa terhadap berbagai macam hal yang dibutuhkan untuk membangun

serta mensimulasikan aplikasi berbasis SMS ini. Analisa yang dilakukan antara lain adalah:

a) Analisa terhadap sumber daya yang dimiliki, termasuk untuk menentukan jenis bahasa pemrograman

dan database yang akan digunakan.

b) Analisa terhadap teknologi SMS dan SMS Gateway.

c) Analisa serta memilih komponen yang tepat sesuai dengan teknologi yang telah dipilih baik

hardware maupun software untuk memenuhi aplikasi layanan yang akan dibangun.

3). Perencanaan dan Pembuatan Perangkat Lunak

a) Membuat agar mobile-phone yang ada di server dapat berhubungan dengan komputer melalui kabel

data, serta menggunakan ATCommand dalam membaca data dari mobile-phone ke PC.

b) Membuat aplikasi berbasis SMS.

c) Membuat server menjadi database untuk hasil informasi yang diterima dari mahasiswa.

4.) Pengujian dan Analisa Perangkat Lunak

a) Pengujian program yang telah dibuat.

b) Analisa hasil output-an dari program yang telah dibuat.

5). Pengambilan Kesimpulan

Pengambilan kesimpulan terhadap alat yang telah dibuat sesuai dengan hasil yang didapat dalam

pengujian. Sedapat mungkin dilakukan perbaikan-perbaikan sehinga mendapatkan hasil yang lebih

optimum.

Gambar 1. Rapid Application Development Model

4 UIN Syarif Hidayatullah Jakarta

Page 159: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Pengertian SMS

Short Message Service (SMS) adalah kemampuan untuk mengirim dan menerima pesan yang

terbatas besarnya ( pesan singkat ) antar handphone/telepon selular yang berupa data dalam bentuk

string atau teks dan data binary. Setiap sms dibtasi hanya sampai 160 karakter saja, dengan

menggunakan huruf latin, sedangkan untuk karakter non latin seperti karakter Arab atau chinese, sms

dibatasi hanya sampai 70 karakter saja. Sms merupakan salah satu dari GSM data services yang

disediakan oleh PLMN (Public Land Mobile Network). Contoh GSM data services yang lain adalah fax

dan data transfer. GSM data services hanya dapat digunakan jika sebuah PLMN menyediakan fasilitas

tersebut.

GSM (Global System for Mobile)

Global system for mobile communication (GSM) merupakan standar yang diterima secara global

untuk komunikasi selular digital. GSM adalah nama group standardisasi yang di mapankan pada tahun

1982 untuk menghasilkan standar telepon bergerak di eropa, digunakan sebagai formula spesifikasi

untuk pan-eropa sistem selular radio bergerak yang bekerja pada frekuensi 900 Mhz. Dan diperkirakan

banyak negara lainnya diluar eropa akan turut menggunakan teknologi GSM.

AT COMMAND

AT COMMAND adalah perintah-perintah yang digunakan pada telepon selular. AT

COMMAND dari tiap-tiap telepon selular (khususnya yang berbeda merk atau pembuatnya) bisa

berbeda-beda, tetapi pada dasarnya sama. Pada proyek ini AT COMMAND yang digunakan adalah AT

COMMAND untuk mengirim dan menerima SMS. AT Command untuk SMS ini sama untuk semua tipe

telepon selular.

Gambar 2. Contoh AT-Command

Java

Java merupakan sebuah bahasa berorientasi objek (object oriented programming). Yang

merupakan karya Sun Microsystem Inc. Yang dapat dijalannkan dimanapun dan di sembarang platform

apapun, di beragam lingkungan: Internet, intranets, pemakaian produk elektronik, dan aplikasi

komputer. Jika anda pernah memprogram dengan bahasa pemrograman OOP , seperti C++ atau

Smalltalk, mungkin anda ingat betapa menyenangkannya memprogram dengan konteks objek. Anda

merancang beberapa objek satu demi satu dengan mendefinisikan berbagai property yang dimiliki object

tersebut dan pekerjaan (task) yang dapat ditangani oleh objek tersebut. Kemudian anda merangkai

semua objek tersebut dengan mendefinisikan relasi antar objek tersebut seperti halnya membangun

sebuah mobil dari komponen-komponennya. Belakangan ini , mungkin anda akrab dengan slogan

"reusable of code". "Reuse of code" ini bukanlah cut & paste. Yang dimaskud dengan "reuse of code"

ini adalah suatu keadaan dimana para programmer untuk membangun sebuah objek dengan mengextend

objek-objek yang telah ada secara mudah. Secara mudah disini adalah, programmer itu mungkin tidak

perlu tahu dengan kode-kode dari objek yang ingin ia extend, yang ia butuhkan hanyalah pengetahuan

mengenai property dari objek itu dan hal-hal yang dapat dilakukan oleh objek itu.

5 UIN Syarif Hidayatullah Jakarta

Page 160: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

My Structured Query Language (MySQL)

MySQL adalah multi user database yang menggandung bahasa Structured Query Language (SQL) yaitu

bahasa yang digunakan untuk komunikasi dengan basis data. Menurut ANSI (American National

Standards Institute), bahasa ini merupakan standar untuk Relational Basis data Management System

(RDBMS). Pada awalnya, MySQL mempunyai nama mSQL, dan sering digunakan untuk keperluan

koneksi ke table menggunakan fast low level routine. Namun mSQL terbukti kurang cepat dan tidak

sefleksibel saat itu. Karena hal itu, dibuatlah suatu SQL interface dengan API interface yang hampir

sama dengan mSQL dan akhirnya lebih populer disebut MySQL.

Bluetooth Serial Port (SPP)RFCOMM (Cable replacement protocol)

Bluetooth adalah nama yang diadopsi dari nama Raja Denmark Harald Bluetooth yang

memerintah kerajaan Denmark pada tahun 940 – 981 SM. Namanya diambil karena raja Denmark

tersebut sukses menggabungkan 2 kerajaan yaitu Denmark dan Norwegia menjadi sebuah kerajaan utuh.

Selain itu, dia juga sukses dalam menyebarkan agama kristen di kedua negara tersebut. Dengan

penamaan tersebut diharapkan Bluetooth yang merupakan media transmisi ini bisa juga menjadi

teknologi pemersatu yang digunakan di dalam dunia komputer dan dunia telekomunikasi.

Bluetooth Serial Port Profile (SPP), adalah salah satu layanan yang ada di dalam bluetooth.

Seperti yang kita ketahui banyak jenis layanan bluetooth yang lain seperti, “Audio Headset” atau

“Bluetooth Printer”. Bluetooth serial port bisa di kategorikan sebagai COM di dalam Windows (seperti

COM3 atau COM7), yang dapat berfungsi sama dengan port RS232 yang tersedia di komputer atau

virtual COM.

Gambar 3. Contoh Bluetooth Serial Port

6 UIN Syarif Hidayatullah Jakarta

Page 161: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Analisis Implementasi.

Sesuai dengan metode pengembangan sistem yang digunakan peneliti, berikut ini beberapa hal

yang dilakukan peneliti dengan berpedoman pada metode pengembangan Rapid Application

Development (RAD).

1. Bisnis Modelling.

Dalam pembuatan aplikasi ini peneliti menggunakan bisnis modeling yang mengendalikan bisnis

dalam pembuatan aplikasi ini.

Gambar 4. Bisnis Modelling

2. Data Modeling

Model data yang digunakan adalah :

2.1 DFD (Data Flow Diagram)

DFD adalah diagram yang menggunakan notasi – notasi untuk menggambarkan arus dari data

sistem (Jogiyanto, 2005 : 700)

a. Context Diagram

Context diagram adalah diagram level tertinggi dari DFD yg menggambarkan hubungan sistem

dgn lingkungan luarnya.

Bentuk context diagram aplikasi EI (EXTRACT INFORMATION) :

Gambar 5. Context Diagram

7 UIN Syarif Hidayatullah Jakarta

Page 162: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

3. Process Modelling

Process modelling yang digunakan adalah :

3.1 Entity Relationship Diagram

Gambar 6. Entity Relationship Diagram (ERD)

3.2 Perancangan Database

Macam-macam tabel yang digunakan pada pada aplikasi ini adalah :

a. Tabel sms_masuk

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

id_masuk

no_telepon_masuk

tanggal_masuk

jam_masuk

isi_pesan_masuk

status_masuk

int(11)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

PRI NULL auto_increment

Tabel 1. Sms Masuk

8 UIN Syarif Hidayatullah Jakarta

Page 163: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

b. Tabel sms_keluar

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

id_keluar

no_telepon_keluar

tanggal_keluar

jam_keluar

isi_pesan_keluar

status_keluar

int(11)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

PRI NULL auto_increment

Tabel 2. Sms Keluar

c. table data mahasiswa

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

nim

nama_mahasiswa

dosen_pa

dosen_pkl

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

PRI NULL

Tabel 3. Data Mahasiswa

d. Tabel buku_telepon

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

no_telepon

nama_kontak

alamat

varchar (25)

varchar (150)

varchar (250)

NO

NO

NO

PRI NULL

Tabel 4. Buku Telepon

b. Tabel biaya_semester

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

6

7

8

9

10

kode

nim

spp

dop

dkm

dp

jumlah

pajak

total_pembayaran

bulan_pembayaran

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (10)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

NO

NO

NO

NO

NO

PRI NULL

Tabel 5. Biaya Semester

9 UIN Syarif Hidayatullah Jakarta

Page 164: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

c. Tabel data_pertanyaan_polling

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

5

Kode_pertanyaan

Isi_pertanyaan

Pilihan_a

Pilihan_b

Pilihan_c

varchar (100)

varchar (100)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

NO

PRI NULL

Tabel 6. Data Pertanyaan Polling

d. Tabel_hasil_polling

NO FIELD TYPE NULL KEY DEFAULT EXTRA

1

2

3

4

no_urut

kode_pertanyaan

pilihan

no_telepon_pengirim

int(11)

varchar (100)

varchar (100)

varchar (100)

NO

NO

NO

NO

PRI NULL auto_increment

Tabel 7. Hasil Polling

4. Application Generation

Peneliti akan menerangkan pembutan database dan tampilan yang akan digunakan di dalam aplikasi ini :

4.1 Pembuatan Database

Membuat database menggunakan MySQL :

1. Aktivkan MySQL lalu tekan tombol enter :

Gambar 7. Mengaktivkan MySQL

10 UIN Syarif Hidayatullah Jakarta

Page 165: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

2. ketik perintah (show databases;) lalu akan ada tampilan seperti ini :

Gambar 8. Show Databases MySQL

3. lalu pilih (use sms), lalu ketik (show tables;) maka akan ada tampilan seperti ini :

Gambar 9. Show Tables MySQL

4. berikut adalah coding MySQL untuk membuat database :

a. Database sms masuk :

CREATE TABLE SMS_MASUK (id_masuk int(11) NOT NULL auto_increment, no_telepon_masuk

varchar(100) NOT NULL default ‘’ , tanggal_masuk varchar(100) NOT NULL default ‘’, jam_masuk

varchar(100) NOT NULL default ‘’, isi_pesan_masuk varchar(160) NOT NULL default ‘’,

status_masuk varchar(100) NOT NULL default ‘’, PRIMARY KEY (id_masuk)) ENGINE=MyISAM

DEFAULT CHARSET=latin1;

b. Database sms keluar :

CREATE TABLE SMS_KELUAR (id_keluar int(11) NOT NULL auto_increment,

no_telepon_keluar varchar(100) NOT NULL default ‘’ , tanggal_keluar varchar(100) NOT NULL

default ‘’, jam_keluar varchar(100) NOT NULL default ‘’, isi_pesan_keluar varchar(160) NOT

NULL default ‘’, status_keluar varchar(100) NOT NULL default ‘’, PRIMARY KEY (id_keluar))

ENGINE=MyISAM DEFAULT CHARSET=latin1;

11 UIN Syarif Hidayatullah Jakarta

Page 166: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

c. Database Data Buku Telepon :

CREATE TABLE DATA_BUKU_TELEPON (nomor_telepon varchar(25) NOT NULL default ‘’,

nama_kontak varchar(150) NOT NULL default ‘’, alamat varchar(250) NOT NULL default ‘’,

PRIMARY KEY (no_telepon)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

d. Database Data Mahasiswa:

CREATE TABLE DATA_MAHASISWA (nim varchar(100) NOT NULL default ‘’,

nama_mahasiswa varchar(100) NOT NULL default ‘’, dosen_pa varchar(100) NOT NULL default ‘’,

dosen_pkl varchar(100) NOT NULL default ‘’, PRIMARY KEY (nim)) ENGINE=MyISAM

DEFAULT CHARSET=latin1;

e. Database Biaya Semester :

CREATE TABLE BIAYA_SEMESTER (kode varchar(100) NOT NULL default ‘’, nim varchar(100)

NOT NULL default ‘’ , spp varchar(100) NOT NULL default ‘’, dop varchar(100) NOT NULL

default ‘’, dkm varchar(100) NOT NULL default ‘’, dp varchar(10) NOT NULL default ‘’, jumlah

varchar(100) NOT NULL default ‘’ , pajak varchar(100) NOT NULL default ‘’, total_pembayaran

varchar(100) NOT NULL default ‘’, bulan_pembayaran varchar(100) NOT NULL default ‘’,

PRIMARY KEY (kode)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

f. Database Data Hasil Polling :

CREATE TABLE DATA_HASIL_POLLING (no_urut int(11) NOT NULL auto_increment,

kode_pertanyaan varchar(100) NOT NULL default ‘’, pilihan varchar(100) NOT NULL default ‘’,

no_telepon_pengimrim varchar(100) NOT NULL default ‘’, PRIMARY KEY (no_urut))

ENGINE=MyISAM DEFAULT CHARSET=latin1;

g. Database Pertanyaan Polling :

CREATE TABLE DATA_PERTANYAAN_POLLING (kode_pertanyaan varchar(100) NOT NULL

default ‘’, isi_pertanyaan varchar(100) NOT NULL default ‘’, pilihan_a varchar(100) NOT NULL

default ‘’, pilihan_b varchar(100) NOT NULL default ‘’, pilihan_c varchar(100) NOT NULL default

‘’, PRIMARY KEY (nim)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

4.2 Tampilan Aplikasi.

Peneliti akan menampilkan desain aplikasi yang akan digunakan dalam aplikasi :

1. Halaman Utama

12 UIN Syarif Hidayatullah Jakarta

Page 167: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

2. Halaman Kirim SMS

3. Halaman Pengaturan Terminal

13 UIN Syarif Hidayatullah Jakarta

Page 168: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

4. Halaman SMS Masuk

5. Halaman SMS Keluar

14 UIN Syarif Hidayatullah Jakarta

Page 169: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

6. Halaman Buku Telepon

7. Halaman Data Mahasiswa, Dosen PA, Dosen PKL

15 UIN Syarif Hidayatullah Jakarta

Page 170: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

8. Halaman Input Biaya Semester

9. Halaman Input Pertanyaan Polling

16 UIN Syarif Hidayatullah Jakarta

Page 171: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

10. Halaman Hasil Polling

5. Testing Dan Turnover

Pengujian Aplikasi ini dilakukan untuk mengetahui apakah aplikasi yang telah

dikembangkan dapat berfungsi seperti yang diharapkan. Pengujian ini menggunakan Java

Studio 8 untuk running program, perangkat lunak harus terlebih dahulu terhubung dengan

database server dan telepon selelur yang dihubungkan ke Bluetooth serial port.

17 UIN Syarif Hidayatullah Jakarta

Page 172: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Kesimpulan

Setelah membuat aplikasi penyebaran informasi berbasis short message service dan menjalankanya,

penulis menarik kesimpulan sebagai berikut :

1. Pembuatan Aplikasi penyebaran informasi Di Lingkungan Program Studi Teknik Informatika ini

dibuat sebagai sarana mempermudah komunikasi antara pihak program studi dan mahasiswa.

2. Bagi pihak program studi aplikasi ini dapat membantu mereka dalam memberikan dan menerima

informasi dari mahasiswa serta dapat mengetahui suara mayoritas mahasiswa.

3. Bagi pihak mahasiswa aplikasi ini diharapkan dapat membantu mahasiswa dalam mendapatkan dan

menerima informasi terbaru yang diberikan oleh pihak program studi.

Saran

Sehubungan dengan kesimpulan di atas, penulis hendak memberikan saran-saran sebagai berikut:

1) Kepada pembaca yang ingin meneruskan aplikasi Extract Information, diharapkan mengambil

ruang lingkup penelitian yang lebih luas, seperti wilayah fakultas atau universitas.

2) Kepada mahasiswa yang akan ingin mengembangkan aplikasi ini, diharapkan menambahkan

aplikasi yang memberikan informasi bagi mahasiswa seperti nilai IPK mahasiswa, jadwal kelas

atau jadwal mata kuliah dan lain-lain.

DAFTAR PUSTAKA

Dwi Prasetyo, Didik. Administrasi Database Server MySQL. Media Elex Komputido. Yogyakarta,

2004.

Efendy, Yeyen & Istiyanto, Jazi Eko. Rancangan dan Implementasi Prototipe Sistem Kendali Jarak Jauh

Berbasis AT89C52 dan Layanan SMS GSM. UGM. Yogyakarta, 2004.

Eko. Pengantar Teknologi Bluetooth. Jurnal, 2005.

Faiz, GP. Global System for Mobile Communication. Jurnal, 2005.

Hariyanto, Bambang. Esensi – esensi Bahasa Pemrograman Java. Informatika Bandung, 2005.

Hasan. Multimedia Information Retrieval. Institut Teknologi Surabaya. Jurnal, 2007.

Heggel. Docklight Application Note : Bluetooth Serial Port. Jurnal, 2009.

Istiyanto, Jazi Eko. Rancangan dan Implementasi Prototipe Sistem Kendali Jarak Jauh. UGM.

Yogyakarta, 2004.

Jogiyanto, Hartono. Analisis dan Desain Sistem Informasi : Pendekatan Terstruktur Teori Dan Praktik

Aplikasi Bisnis. ANDI Yogyakarta, 2005.

Latief, Adnan. Penelitian Pengembangan. Universitas Negeri Malang. Jurnal, 2009.

Lajmudin, Bin Al – Bahra. Analisis dan Desain Sistem Informasi. Yogyakarta. 2005.

Lekkad, Pritviraj. SMS The New Age Communication Technique. UNITES Professionals. Bangalore -

India. 2008.

Mazwan, Kamus Data (Data Dictionary). Jurnal, 2007.

Mazdalifah . Buku Ajar Pendapat Umum. Departemen Ilmu Komunikasi Fakultas Ilmu Sosial dan

Politik Sumatera Utara. Jurnal, 2006.

18 UIN Syarif Hidayatullah Jakarta

Page 173: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

Rusdiantoro Jurnal Informatika, Juni 2010

Na’am, Ufriadif. Penerapan Mobile Banking Berbasis SMS. Jurnal, 2006.

Peraturan Pemerintah Republik Indonesia Nomor 37 Tahun 2009, Tentang Dosen.

Primashanti, Ida Ayu. 2007. Normalisasi.

Purnomo, Adi. Pemrograman Java 2 (Membangun Beragam Aplikasi Layanan SMS). Salemba Infotek

Jakarta, 2007.

Puy, Inigo. Bluetooth. Jurnal, 2008.

Ramadhani, Emilia & Mazdalifah. Buku Ajar Pendapat Umum. Jurnal, 2006.

Runkle, Tom. Application Definition. Jurnal, 2008.

Sugiono. Perancangan Sistem Informasi Appointment Pasien Berbasis SMS di Rumah Bersalin. Stikes

Surya Global. Yogyakarta. 2007.

Tetelepta, Franklin Arthur. Sistem Akses Fasilitas Pendaftaran Rencana Studi dan Jadwal Ujian VIA

SMS. Jurnal, 2003.

Undang – undang Republik Indonesia Nomor 18 Tahun 2002. Tentang Pembuatan dan Pengembangan.

Widawaty, Yunita Riris & Lien, Diao Ai. Kegunaan Studi Literature Dalam Penelitian. Jurnal, 2004.

Waljiyanto,. Sistem Basis Data : Analisis dan Pemodelan Data. Informatika. Bandung. 2000.

Yulimingtarto, Johan. Pengolahan Data GPS yang Dikirim dengan Teknologi SMS untuk Pelacakan

Kendaraan. Petra Christian University. Surabaya, 2004.

http://dewey.petra.ac.id/jiunkpe_dg_11182.html. (10-01-2010) : 09.00)

http://willis.comze.com/pengertian_informasi.html (12-03-2010 : 14.00)

bdo.blog.ittelkom.ac.id/blog/files/2010/02/Free-Reply-SMS.pdf (23-12-2009 : 10.20)

http://www.textsmsmarketing.com/uses_benefits.php (24 - 05 - 2010 : 11.00)

http://www.apolloasia.com/gateway.html (24 – 05 – 2010 : 11.00)

19* UIN Syarif Hidayatullah Jakarta

Page 174: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

136

Lampiran B. Coding Aplikasi

Coding Tampilan Utama

public class Utama_SMS extends javax.swing.JFrame implements

javax.comm.SerialPortEventListener{

/**

* Creates new form Utama_SMS

*/ 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();

}

/**

* Methode serialEvent * Keterangan : menerima respon dari terminal

* @param event = reapon yang diterima terminal

*/

// Deklarasi variabel

int bufferOffset = 0;

byte[] bacaBuffer = new byte[100000]; int n;

java.io.InputStream input;

// Awal methode serialEvent

public void serialEvent(javax.comm.SerialPortEvent event) {

try {

input = SmitDev.SmsServer.Server.port.getInputStream();

// 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) {

}

} // Akhir methode serialEvent public void

serialEvent(javax.comm.SerialPortEvent event) {

int Index = 0;

String id_sms = "";

boolean merek = false;

boolean seri = false;

boolean imei = false;

boolean bacaSMS = false;

String respons = "";

String nilaiMerek = "Unknow Device"; String nilaiSeri= "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 (merek) {

nilaiMerek = respons; merek = false;

} else if (seri) {

nilaiSeri = respons;

seri = 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")) {

merek = true;

} else if (respons.startsWith("AT+CGMM")) {

seri = true; } else if (respons.startsWith("AT+CGSN")) {

imei = true;

} else if (respons.startsWith("+CMGR:")) {

bacaSMS = true;

} else if (bacaSMS) {

try{ SmitDev.SmsServer.Server.terimaSMS(respons.trim());

id_sms = String.valueOf(Index);

tlp_sms = SmitDev.SmsServer.Server.noTlpPengirim;

isi_sms = SmitDev.SmsServer.Server.isiPesanTerima;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsMasuk(tlp_sms,

isi_sms);

SmitDev.SmsServer.Server.kirimAT("AT+CMGD=" +

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+CPMS=" +

hasil[0].trim() + "\15", 1250);

SmitDev.SmsServer.Server.kirimAT("AT+CMGR=" + Index + "\15", 1250); // Baca Pesan Baru yang Masuk

} else if (respons.startsWith("+CMGS:")) {

tulis_proses("Pesan Berhasil Dikirim");

Page 175: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

137 new

prosesDatabaseSmsServer(koneksi).updateStatusData(id_Sms_Kirim, "SEND");

this.thKirim.resume();

} else if (respons.startsWith("+CMS ERROR:")) {

tulis_proses("Pesan GAGAL Dikirim");

new

prosesDatabaseSmsServer(koneksi).updateStatusData(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;

}};

// <editor-fold defaultstate="collapsed" desc=" Generated Code ">

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();

menuInputDataMahasiswa = new javax.swing.JMenuItem();

menuInputDataBiayaSemester = new javax.swing.JMenuItem();

menuSMSPolling = new javax.swing.JMenu();

menuInputPertanyaanPolling = new javax.swing.JMenuItem(); menuHasilPolling = new javax.swing.JMenuItem();

menuSystem = new javax.swing.JMenu();

subMenuKonfigurasi = new javax.swing.JMenuItem();

subMenuAktivitasSystem = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING

_ON_CLOSE);

setTitle("APLIKASI EXTRACT INFORMATION oleh

Rusdiantoro");

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.RIGHT, 5, 1));

jPanel1.setBackground(new java.awt.Color(102, 255, 255)); waktuLokal.setFont(new java.awt.Font("Dialog", 1, 12));

waktuLokal.setText("jLabel19");

waktuLokal.setText(SmitDev.SmsServer.Jam.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), "

Page 176: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

138 SMS Masuk Hari Ini ",

javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, 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.LOWE

RED));

jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstan

ts.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane1.setToolTipText("");

jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.

VERTICAL_SCROLLBAR_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(tabSMSMasuk);

javax.swing.table.TableColumn colx =

this.tabelSmsMasukHariIni.getColumn("No. Telepon");

colx.setWidth(80);

colx.setMinWidth(80);

colx.setMaxWidth(90); colx = this.tabelSmsMasukHariIni.getColumn("Tanggal");

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("Nama Kontak");

colx.setWidth(80);

colx.setMinWidth(80);

colx.setMaxWidth(80);

colx = this.tabelSmsMasukHariIni.getColumn("Status");

colx.setWidth(40);

colx.setMinWidth(40); colx.setMaxWidth(50);

this.tabelSmsMasukHariIni.sizeColumnsToFit(0);

jScrollPane1.setViewportView(tabelSmsMasukHariIni);

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_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, 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.LOWE

RED));

jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstan

ts.HORIZONTAL_SCROLLBAR_NEVER);

jScrollPane2.setToolTipText("");

jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_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(tabSMSTerkirim);

javax.swing.table.TableColumn col = this.tabelSmsTerkirimHariIni.getColumn("No. Telepon");

col.setWidth(80);

col.setMinWidth(80);

col.setMaxWidth(90);

col = this.tabelSmsTerkirimHariIni.getColumn("Tanggal");

col.setWidth(0); col.setMinWidth(0);

col.setMaxWidth(0);

col = this.tabelSmsTerkirimHariIni.getColumn("Jam");

col.setWidth(0);

col.setMinWidth(0);

col.setMaxWidth(0); col = this.tabelSmsTerkirimHariIni.getColumn("Nama Kontak");

col.setWidth(80);

col.setMinWidth(80);

col.setMaxWidth(80);

col = this.tabelSmsTerkirimHariIni.getColumn("Status"); col.setWidth(40);

col.setMinWidth(40);

col.setMaxWidth(50);

this.tabelSmsTerkirimHariIni.sizeColumnsToFit(0);

jScrollPane2.setViewportView(tabelSmsTerkirimHariIni);

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_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 1, 12)));

jPanel8.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel8.setBackground(new java.awt.Color(255, 255, 255));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Jml SMS Masuk :");

jLabel3.setHorizontalTextPosition(javax.swing.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.LEFT));

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);

Page 177: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

139 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.LEFT));

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.LEFT));

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_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 12)));

jPanel12.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel12.setBackground(new java.awt.Color(255, 255, 255));

jLabel11.setHorizontalAlignment(javax.swing.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.LEFT));

jPanel13.setBackground(new java.awt.Color(255, 255, 255));

jLabel13.setHorizontalAlignment(javax.swing.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.LEFT));

jPanel14.setBackground(new java.awt.Color(255, 255, 255));

jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel15.setText("Jml Antrian :");

jLabel15.setPreferredSize(new java.awt.Dimension(102, 16)); jPanel14.add(jLabel15);

labelJumlahAntrianKeluar.setText("0");

labelJumlahAntrianKeluar.setPreferredSize(new

java.awt.Dimension(40, 16));

jPanel14.add(labelJumlahAntrianKeluar);

jPanel7.add(jPanel14);

jPanel15.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel15.setBackground(new java.awt.Color(255, 255, 255));

jLabel17.setHorizontalAlignment(javax.swing.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(102, 255, 255));

panelAtas.setForeground(new java.awt.Color(102, 255, 0));

jLabel1.setFont(new java.awt.Font("DialogInput", 1, 24)); jLabel1.setForeground(new java.awt.Color(255, 51, 51));

jLabel1.setText("APLIKASI EI (EXTRACT INFORMATION)");

panelAtas.add(jLabel1);

getContentPane().add(panelAtas, java.awt.BorderLayout.NORTH);

panelBawah.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 0));

panelBawah.setBorder(new

javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWE

RED));

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() {

Page 178: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

140 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("Pengaturan Terminal");

subMenuPengaturanTerminal.addActionListener(new

java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { subMenuPengaturanTerminalActionPerformed(evt);

}

});

menuBerkas.add(subMenuPengaturanTerminal);

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(new

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(new

java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { subMenuBukuTeleponActionPerformed(evt);

}

});

menuDatabase.add(subMenuBukuTelepon);

jMenuBar1.add(menuDatabase);

menuSMSRequest.setText(" SMS Request");

menuInputDataMahasiswa.setText("Input Data Mahasiswa");

menuInputDataMahasiswa.addActionListener(new

java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

menuInputDataMahasiswaActionPerformed(evt);

}

});

menuSMSRequest.add(menuInputDataMahasiswa);

menuInputDataBiayaSemester.setText("Input Data Biaya Semester");

menuInputDataBiayaSemester.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuInputDataBiayaSemesterActionPerformed(evt);

}

});

menuSMSRequest.add(menuInputDataBiayaSemester);

jMenuBar1.add(menuSMSRequest);

menuSMSPolling.setText("SMS Polling");

menuSMSPolling.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuSMSPollingActionPerformed(evt);

}

});

menuInputPertanyaanPolling.setText("Input Pertanyaan Polling");

menuInputPertanyaanPolling.addActionListener(new

java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuInputPertanyaanPollingActionPerformed(evt); }

});

menuSMSPolling.add(menuInputPertanyaanPolling);

menuHasilPolling.setText("Hasil Polling"); menuHasilPolling.addActionListener(new

java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

menuHasilPollingActionPerformed(evt);

}

});

menuSMSPolling.add(menuHasilPolling);

jMenuBar1.add(menuSMSPolling);

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(evt);

}

});

menuSystem.add(subMenuAktivitasSystem);

jMenuBar1.add(menuSystem);

setJMenuBar(jMenuBar1);

java.awt.Dimension screenSize =

java.awt.Toolkit.getDefaultToolkit().getScreenSize();

setBounds((screenSize.width-800)/2, (screenSize.height-600)/2, 800,

600);

}

Page 179: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

141 // </editor-fold>

private void

menuSMSPollingActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void

menuHasilPollingActionPerformed(java.awt.event.ActionEvent evt) {

new jendelaHasilPolling(koneksi, "").setVisible(true);

}

private void

menuInputPertanyaanPollingActionPerformed(java.awt.event.ActionEvent

evt) {

new jendelaInputPertanyaanPolling(koneksi).setVisible(true);

}

private void

menuInputDataBiayaSemesterActionPerformed(java.awt.event.ActionEve

nt evt) {

new jendelaInputBiayaSemester(koneksi, tahun).setVisible(true);

}

private void

menuInputDataMahasiswaActionPerformed(java.awt.event.ActionEvent

evt) {

new jendelaInputDataMahasiswa(koneksi, tahun).setVisible(true); }

private void

subMenuKonfigurasiActionPerformed(java.awt.event.ActionEvent evt) {

new jendelaKonfigurasiPerangkat(nilaiMerek, nilaiSeri, nilaiIMEI,

nilaiOperator).setVisible(true); }

private void

subMenuSmsTerkirimActionPerformed(java.awt.event.ActionEvent evt) {

new jendelaSmsKeluar(koneksi).setVisible(true);

}

private void

subMenuAktivitasSystemActionPerformed(java.awt.event.ActionEvent

evt) {

new jendelaAktivitasSystem().setVisible(true);

}

private void

subMenuSmsMasukActionPerformed(java.awt.event.ActionEvent evt) { new jendelaSmsMasuk(koneksi).setVisible(true);

}

private void

subMenuPengaturanTerminalActionPerformed(java.awt.event.ActionEven

t 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.event.ActionEvent evt) {

SmitDev.SmsServer.Server.tutupTerminal();

tulis_proses("Pemutusan Terminal");

tulis_proses("Serial Port Ditutup");

this.thKirim.stop();

this.thKirim.stop(); belumTerhubung();

}

private void

subMenuKoneksiActionPerformed(java.awt.event.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.addEventListener(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+CNMI=1,1,2,2,1" + "\15",

1250); SmitDev.SmsServer.Server.kirimAT("AT+CGMI" + "\15", 1000); //

Merek

SmitDev.SmsServer.Server.kirimAT("AT+CGMM" + "\15", 1000); //

Seri

SmitDev.SmsServer.Server.kirimAT("AT+CGSN" + "\15", 1000); //

IMEI SmitDev.SmsServer.Server.kirimAT("AT+COPS?" + "\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(true);

subMenuKonfigurasi.setEnabled(false);

Page 180: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

142 jLabel2.setText("Belum Terhubung");

jLabel2.setForeground(java.awt.Color.RED); menuSMSRequest.setEnabled(false);

menuSMSPolling.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(false);

subMenuKonfigurasi.setEnabled(true); jLabel2.setText("Sedang Terhubung");

jLabel2.setForeground(java.awt.Color.BLUE);

menuSMSRequest.setEnabled(true);

menuSMSPolling.setEnabled(true);

javax.swing.JOptionPane.showMessageDialog(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.Jam.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.WindowEvent evt) {

keluar();

}

private void

subMenuKeluarActionPerformed(java.awt.event.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){

this.thKirim.stop();

this.thKirim.stop(); System.exit(1);

}

} else {

javax.swing.JOptionPane.showMessageDialog(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()) {

Page 181: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

143 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 = "";

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};

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.valueOf(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_antri);

} // 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("com.stefankrause.xplookandfee

l.XPLookAndFeel");

} 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.labelJumlahMasuk.getText())) {

Page 182: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

144 } 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.labelSuksesProses.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).prosesTabelMasuk(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.labelJumlahKeluar.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.labelSuksesTerkirim.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);

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).updateStatusData(id_Sms_Kirim,

"PROCESS");

String nop = notlp; if (notlp.startsWith("0")) {

nop = notlp.replaceFirst("0", "62");

}

try {

String pesanPDUKirim =

SmitDev.SmsServer.formatPDU.PduKirimSms(nop.trim(), pesan.trim(), false);

// Proses Mengirim Pesan

SmitDev.SmsServer.Server.kirimAT("AT+CMGS=" +

(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) {}

}

Page 183: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

145

// 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 menuHasilPolling;

private javax.swing.JMenuItem menuInputDataBiayaSemester;

private javax.swing.JMenuItem menuInputDataMahasiswa;

private javax.swing.JMenuItem menuInputPertanyaanPolling;

private javax.swing.JMenu menuSMSPolling;

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;

// End of variables declaration

}

Coding Aktivitas System :

public class jendelaAktivitasSystem extends javax.swing.JFrame {

/** Creates new form jendelaAktivitasSystem */

public jendelaAktivitasSystem() {

initComponents(); bacaFile();

}

/** This method is called from within the constructor to

* initialize the form.

Page 184: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

146 * 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() {

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.WindowConstants.DISPOSE_ON_

CLOSE);

setTitle("Aktivitas System SMS Server");

jPanel1.setLayout(new java.awt.GridLayout(1, 0));

jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstan

ts.HORIZONTAL_SCROLLBAR_ALWAYS);

jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.

VERTICAL_SCROLLBAR_ALWAYS); jTextArea1.setEditable(false);

jTextArea1.setDragEnabled(true);

jScrollPane1.setViewportView(jTextArea1);

jPanel1.add(jScrollPane1);

getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

jPanel2.setBackground(new java.awt.Color(102, 255, 255));

jLabel1.setBackground(new java.awt.Color(255, 51, 51));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12));

jLabel1.setForeground(new java.awt.Color(255, 51, 51)); jLabel1.setText("jLabel1");

jPanel2.add(jLabel1);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

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().getScreenSize(); setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

}

// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent

evt) { jTextArea1.setText("");

bacaFile();

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

/**

* @param args the command line arguments

*/

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){}

} // Variables declaration - do not modify

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;

// End of variables declaration

}

Page 185: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

147

Coding Jendela Buku Telepon :

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;

}}; /** Creates new form jendelaBukuTelepon */

/** 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() {

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.WindowConstants.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"

}

));

Page 186: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

148 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.LEFT));

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.SmsServer.saring_karakter.set

AllOnlyDigit()); dataNomorTelepon.setPreferredSize(new java.awt.Dimension(200,

22));

jPanel6.add(dataNomorTelepon);

jPanel5.add(jPanel6);

jPanel7.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel7.setBackground(new java.awt.Color(255, 255, 255));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Nama Mahasiswa :");

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.LEFT));

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(102, 255, 255)); jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));

jLabel1.setForeground(new java.awt.Color(255, 51, 51));

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.LEFT, 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.LEFT, 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);

}

});

Page 187: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

149 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.LEFT));

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().getScreenSize();

setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

} // </editor-fold>

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) { javax.swing.JOptionPane.showMessageDialog(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.ActionEvent evt)

{ int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(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.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) { javax.swing.JOptionPane.showMessageDialog(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.ActionEvent evt)

{ this.dataNomorTelepon.setText("");

this.dataNamaKontak.setText("");

this.dataAlamat.setText("");

cardTengah.show(jPanel1, "panelData");

cardTombol.show(jPanel3, "tombolPanelData"); }

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)

{

cardTengah.show(jPanel1, "panelTabel");

cardTombol.show(jPanel3, "tombolPanelTabel"); }

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent 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());

}

}

// Variables declaration - do not modify 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;

Page 188: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

150 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; // End of variables declaration

}

Coding Hasil Polling :

public class jendelaHasilPolling extends javax.swing.JFrame { java.sql.Connection koneksi;

/** Creates new form jendelaHasilPolling */

public jendelaHasilPolling(java.sql.Connection koneksi, String kode) {

this.koneksi = koneksi;

initComponents();

cariDataPertanyaan(kode);

}

/** 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() { jPanel1 = new javax.swing.JPanel();

jPanel4 = new javax.swing.JPanel();

jPanel6 = new javax.swing.JPanel();

jPanel8 = new javax.swing.JPanel();

jPanel11 = new javax.swing.JPanel();

barPilihanA = new javax.swing.JProgressBar(); jPanel12 = new javax.swing.JPanel();

dataPilihanA = new javax.swing.JTextField();

jPanel17 = new javax.swing.JPanel();

jumlahPilihanA = new javax.swing.JLabel();

persenPilihanA = new javax.swing.JLabel();

jPanel9 = new javax.swing.JPanel(); jPanel13 = new javax.swing.JPanel();

dataPilihanB = new javax.swing.JTextField();

jPanel14 = new javax.swing.JPanel();

barPilihanB = new javax.swing.JProgressBar();

jPanel18 = new javax.swing.JPanel(); jumlahPilihanB = new javax.swing.JLabel();

persenPilihanB = new javax.swing.JLabel();

jPanel10 = new javax.swing.JPanel();

jPanel15 = new javax.swing.JPanel();

dataPilihanC = new javax.swing.JTextField();

jPanel16 = new javax.swing.JPanel(); barPilihanC = new javax.swing.JProgressBar();

jPanel19 = new javax.swing.JPanel();

jumlahPilihanC = new javax.swing.JLabel();

persenPilihanC = new javax.swing.JLabel();

jPanel7 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane();

dataPertanyaan = new javax.swing.JTextArea();

jPanel5 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

dataKode = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

jLabel10 = new javax.swing.JLabel();

jumlahSMS = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jButton2 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle("Hasil Polling SMS");

setResizable(false);

jPanel1.setLayout(new java.awt.BorderLayout());

jPanel4.setLayout(new java.awt.BorderLayout());

jPanel4.setBackground(new java.awt.Color(255, 255, 255));

jPanel6.setLayout(new java.awt.GridLayout(1, 0));

jPanel6.setBackground(new java.awt.Color(255, 255, 255));

jPanel8.setLayout(new java.awt.BorderLayout());

jPanel8.setBackground(new java.awt.Color(0, 255, 255));

jPanel11.setBackground(new java.awt.Color(255, 255, 255)); barPilihanA.setFont(new java.awt.Font("Tahoma", 1, 12));

barPilihanA.setForeground(new java.awt.Color(0, 0, 0));

barPilihanA.setOrientation(1);

barPilihanA.setOpaque(true);

barPilihanA.setPreferredSize(new java.awt.Dimension(18, 150));

barPilihanA.setString("Pilihan A"); barPilihanA.setStringPainted(true);

jPanel11.add(barPilihanA);

jPanel8.add(jPanel11, java.awt.BorderLayout.CENTER);

Page 189: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

151 jPanel12.setBackground(new java.awt.Color(255, 255, 255));

dataPilihanA.setEditable(false);

dataPilihanA.setHorizontalAlignment(javax.swing.JTextField.CENTER);

dataPilihanA.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel12.add(dataPilihanA);

jPanel8.add(jPanel12, java.awt.BorderLayout.SOUTH);

jPanel17.setBackground(new java.awt.Color(255, 255, 255));

jumlahPilihanA.setHorizontalAlignment(javax.swing.SwingConstants.RIG

HT);

jumlahPilihanA.setText("0");

jumlahPilihanA.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel17.add(jumlahPilihanA);

persenPilihanA.setText("(0%)");

persenPilihanA.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel17.add(persenPilihanA);

jPanel8.add(jPanel17, java.awt.BorderLayout.NORTH);

jPanel6.add(jPanel8);

jPanel9.setLayout(new java.awt.BorderLayout());

jPanel9.setBackground(new java.awt.Color(255, 255, 0)); jPanel13.setBackground(new java.awt.Color(255, 255, 255));

dataPilihanB.setEditable(false);

dataPilihanB.setHorizontalAlignment(javax.swing.JTextField.CENTER);

dataPilihanB.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel13.add(dataPilihanB);

jPanel9.add(jPanel13, java.awt.BorderLayout.SOUTH);

jPanel14.setBackground(new java.awt.Color(255, 255, 255));

barPilihanB.setFont(new java.awt.Font("Tahoma", 1, 12));

barPilihanB.setForeground(new java.awt.Color(0, 0, 0)); barPilihanB.setOrientation(1);

barPilihanB.setOpaque(true);

barPilihanB.setPreferredSize(new java.awt.Dimension(18, 150));

barPilihanB.setString("Pilihan B");

barPilihanB.setStringPainted(true);

jPanel14.add(barPilihanB);

jPanel9.add(jPanel14, java.awt.BorderLayout.CENTER);

jPanel18.setBackground(new java.awt.Color(255, 255, 255));

jumlahPilihanB.setHorizontalAlignment(javax.swing.SwingConstants.RIG

HT);

jumlahPilihanB.setText("0");

jumlahPilihanB.setPreferredSize(new java.awt.Dimension(50, 14)); jPanel18.add(jumlahPilihanB);

persenPilihanB.setText("(0%)");

persenPilihanB.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel18.add(persenPilihanB);

jPanel9.add(jPanel18, java.awt.BorderLayout.NORTH);

jPanel6.add(jPanel9);

jPanel10.setLayout(new java.awt.BorderLayout());

jPanel10.setBackground(new java.awt.Color(0, 255, 102));

jPanel15.setBackground(new java.awt.Color(255, 255, 255));

dataPilihanC.setEditable(false);

dataPilihanC.setHorizontalAlignment(javax.swing.JTextField.CENTER);

dataPilihanC.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel15.add(dataPilihanC);

jPanel10.add(jPanel15, java.awt.BorderLayout.SOUTH);

jPanel16.setBackground(new java.awt.Color(255, 255, 255));

barPilihanC.setFont(new java.awt.Font("Tahoma", 1, 12));

barPilihanC.setForeground(new java.awt.Color(0, 0, 0));

barPilihanC.setOrientation(1);

barPilihanC.setDoubleBuffered(true);

barPilihanC.setOpaque(true); barPilihanC.setPreferredSize(new java.awt.Dimension(18, 150));

barPilihanC.setString("Pilihan C");

barPilihanC.setStringPainted(true);

barPilihanC.setVerifyInputWhenFocusTarget(false);

jPanel16.add(barPilihanC);

jPanel10.add(jPanel16, java.awt.BorderLayout.CENTER);

jPanel19.setBackground(new java.awt.Color(255, 255, 255));

jumlahPilihanC.setHorizontalAlignment(javax.swing.SwingConstants.RIG

HT);

jumlahPilihanC.setText("0");

jumlahPilihanC.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel19.add(jumlahPilihanC);

persenPilihanC.setText("(0%)");

persenPilihanC.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel19.add(persenPilihanC);

jPanel10.add(jPanel19, java.awt.BorderLayout.NORTH);

jPanel6.add(jPanel10);

jPanel4.add(jPanel6, java.awt.BorderLayout.CENTER);

jPanel7.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel7.setBackground(new java.awt.Color(255, 255, 255));

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel2.setText("Isi Pertanyaan :");

jLabel2.setPreferredSize(new java.awt.Dimension(100, 14));

jPanel7.add(jLabel2);

dataPertanyaan.setEditable(false);

dataPertanyaan.setLineWrap(true); dataPertanyaan.setWrapStyleWord(true);

dataPertanyaan.setPreferredSize(new java.awt.Dimension(300, 50));

jScrollPane1.setViewportView(dataPertanyaan);

jPanel7.add(jScrollPane1);

jPanel4.add(jPanel7, java.awt.BorderLayout.NORTH);

jPanel1.add(jPanel4, java.awt.BorderLayout.CENTER);

jPanel5.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel5.setBackground(new java.awt.Color(255, 255, 255));

jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel1.setText("Kode Pertanyaan :");

jLabel1.setPreferredSize(new java.awt.Dimension(100, 14));

jPanel5.add(jLabel1);

dataKode.setEditable(false);

dataKode.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel5.add(dataKode);

jButton1.setText("Cari");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jPanel5.add(jButton1);

jLabel10.setText("Jumlah SMS Masuk :");

jPanel5.add(jLabel10);

jumlahSMS.setText("0");

jumlahSMS.setPreferredSize(new java.awt.Dimension(50, 14));

jPanel5.add(jumlahSMS);

jPanel1.add(jPanel5, java.awt.BorderLayout.NORTH);

Page 190: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

152

getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

jPanel2.setBackground(new java.awt.Color(102, 255, 255));

jLabel3.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel3.setText("Hasil Polling SMS ");

jPanel2.add(jLabel3);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

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);

java.awt.Dimension screenSize =

java.awt.Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-449)/2, (screenSize.height-407)/2, 449,

407);

}

// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

jendelaInputPertanyaanPolling bk = new

jendelaInputPertanyaanPolling(koneksi); bk.cardTengah.show(bk.jPanel13, "panelTabelPertanyaan");

bk.cardTombol.show(bk.jPanel3, "tombolPanelAmbil");

bk.setVisible(true);

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

private void cariDataPertanyaan(String kode){

this.dataKode.setText(kode);

boolean adaData = false;

String sql = "SELECT * FROM data_pertanyaan_polling WHERE kode_pertanyaan = '"+kode+"'";

try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){

String pertanyaan = rSet.getString("isi_pertanyaan"); String pilihan_a = rSet.getString("pilihan_a");

String pilihan_b = rSet.getString("pilihan_b");

String pilihan_c = rSet.getString("pilihan_c");

this.dataPertanyaan.setText(pertanyaan);

this.dataPilihanA.setText(pilihan_a);

this.dataPilihanB.setText(pilihan_b);

this.dataPilihanC.setText(pilihan_c);

adaData = true;

}

if(adaData){

cariHasilPolling(kode);

}

} catch(java.sql.SQLException e){} }

private void cariHasilPolling(String kode){

String hasilAll = "0";

String hasil_A = "0";

String hasil_B = "0"; String hasil_C = "0";

double persen_A = 0;

double persen_B = 0;

double persen_C = 0;

int valuePersen_A = 0;

int valuePersen_B = 0;

int valuePersen_C = 0;

try{

String sqlAll = "SELECT COUNT(kode_pertanyaan) as jmlSMS

FROM data_hasil_polling WHERE kode_pertanyaan = '"+kode+"'";

java.sql.Statement statAll = koneksi.createStatement();

java.sql.ResultSet rSetAll = statAll.executeQuery(sqlAll);

if(rSetAll.next()){

hasilAll = rSetAll.getString("jmlSMS");

}

String sqlPilihA = "SELECT COUNT(pilihan) as jmlPilihanA

FROM data_hasil_polling WHERE kode_pertanyaan = '"+kode+"' AND

pilihan = 'A'";

java.sql.Statement statA = koneksi.createStatement();

java.sql.ResultSet rSetA = statA.executeQuery(sqlPilihA); if(rSetA.next()){

hasil_A = rSetA.getString("jmlPilihanA");

}

String sqlPilihB = "SELECT COUNT(pilihan) as jmlPilihanB

FROM data_hasil_polling WHERE kode_pertanyaan = '"+kode+"' AND pilihan = 'B'";

java.sql.Statement statB = koneksi.createStatement();

java.sql.ResultSet rSetB = statB.executeQuery(sqlPilihB);

if(rSetB.next()){

hasil_B = rSetB.getString("jmlPilihanB"); }

String sqlPilihC = "SELECT COUNT(pilihan) as jmlPilihanC

FROM data_hasil_polling WHERE kode_pertanyaan = '"+kode+"' AND

pilihan = 'C'";

java.sql.Statement statC = koneksi.createStatement(); java.sql.ResultSet rSetC = statC.executeQuery(sqlPilihC);

if(rSetC.next()){

hasil_C = rSetC.getString("jmlPilihanC");

}

if(!hasil_A.equalsIgnoreCase("0")){ persen_A =

100/(Double.parseDouble(hasilAll)/Double.parseDouble(hasil_A));

java.util.StringTokenizer token = new

java.util.StringTokenizer(String.valueOf(persen_A), ".");

valuePersen_A = Integer.parseInt(token.nextToken());

}

if(!hasil_B.equalsIgnoreCase("0")){

persen_B =

100/(Double.parseDouble(hasilAll)/Double.parseDouble(hasil_B)); java.util.StringTokenizer token = new

java.util.StringTokenizer(String.valueOf(persen_B), ".");

valuePersen_B = Integer.parseInt(token.nextToken());

}

if(!hasil_C.equalsIgnoreCase("0")){

persen_C = 100/(Double.parseDouble(hasilAll)/Double.parseDouble(hasil_C));

java.util.StringTokenizer token = new

java.util.StringTokenizer(String.valueOf(persen_C), ".");

valuePersen_C = Integer.parseInt(token.nextToken());

}

this.persenPilihanA.setText("("+persen_A+"%)");

this.persenPilihanB.setText("("+persen_B+"%)");

this.persenPilihanC.setText("("+persen_C+"%)");

this.barPilihanA.setValue(valuePersen_A); this.barPilihanB.setValue(valuePersen_B);

this.barPilihanC.setValue(valuePersen_C);

this.jumlahSMS.setText(hasilAll);

this.jumlahPilihanA.setText(hasil_A);

this.jumlahPilihanB.setText(hasil_B);

this.jumlahPilihanC.setText(hasil_C); } catch(java.sql.SQLException e){

System.out.println(e.getMessage());

}

}

// Variables declaration - do not modify

private javax.swing.JProgressBar barPilihanA; private javax.swing.JProgressBar barPilihanB;

private javax.swing.JProgressBar barPilihanC;

private javax.swing.JTextField dataKode;

private javax.swing.JTextArea dataPertanyaan;

private javax.swing.JTextField dataPilihanA;

Page 191: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

153 private javax.swing.JTextField dataPilihanB;

private javax.swing.JTextField dataPilihanC; private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel10;

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 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 jPanel18;

private javax.swing.JPanel jPanel19;

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.JLabel jumlahPilihanA;

private javax.swing.JLabel jumlahPilihanB;

private javax.swing.JLabel jumlahPilihanC;

private javax.swing.JLabel jumlahSMS;

private javax.swing.JLabel persenPilihanA;

private javax.swing.JLabel persenPilihanB; private javax.swing.JLabel persenPilihanC;

// End of variables declaration

}

Coding Input Biaya Semester

public class jendelaInputBiayaSemester extends javax.swing.JFrame {

/** Creates new form jendelaInputBiayaSemester */

java.sql.Connection koneksi;

public jendelaInputBiayaSemester(java.sql.Connection koneksi, String

tahun) { initComponents();

this.koneksi = koneksi;

this.dataTahun.setText(tahun);

dataPelangganKosong();

dataPembayaranKosong();

} /** 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() { jPanel1 = new javax.swing.JPanel();

jPanel11 = new javax.swing.JPanel();

jPanel8 = new javax.swing.JPanel();

jLabel4 = new javax.swing.JLabel();

dataBulan = new javax.swing.JComboBox();

jLabel5 = new javax.swing.JLabel();

dataTahun = new javax.swing.JTextField();

jPanel9 = new javax.swing.JPanel();

jLabel3 = new javax.swing.JLabel(); dataIdPelanggan = new javax.swing.JTextField();

jButton4 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

jPanel22 = new javax.swing.JPanel();

jPanel12 = new javax.swing.JPanel();

jLabel6 = new javax.swing.JLabel(); dataNamaPelanggan = new javax.swing.JTextField();

jPanel10 = new javax.swing.JPanel();

jPanel15 = new javax.swing.JPanel();

jLabel9 = new javax.swing.JLabel();

dataBiayaBeban = new javax.swing.JTextField();

jPanel16 = new javax.swing.JPanel(); jLabel10 = new javax.swing.JLabel();

dataBiayaPemakaian = new javax.swing.JTextField();

jPanel17 = new javax.swing.JPanel();

jLabel11 = new javax.swing.JLabel();

dataBiayaKeterlambatan = new javax.swing.JTextField(); jPanel18 = new javax.swing.JPanel();

jLabel12 = new javax.swing.JLabel();

dataBiayaLainLain = new javax.swing.JTextField();

jPanel20 = new javax.swing.JPanel();

jLabel14 = new javax.swing.JLabel();

dataPPJ = new javax.swing.JTextField(); jPanel19 = new javax.swing.JPanel();

jLabel13 = new javax.swing.JLabel();

jLabel18 = new javax.swing.JLabel();

dataJumlah = new javax.swing.JTextField();

jPanel23 = new javax.swing.JPanel();

jLabel16 = new javax.swing.JLabel(); jLabel17 = new javax.swing.JLabel();

jPanel21 = new javax.swing.JPanel();

jLabel15 = new javax.swing.JLabel();

jLabel20 = new javax.swing.JLabel();

dataTotalPembayaran = new javax.swing.JTextField();

jPanel2 = new javax.swing.JPanel();

jPanel6 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jPanel7 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton5 = new javax.swing.JButton();

jPanel4 = new javax.swing.JPanel(); jPanel5 = new javax.swing.JPanel();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_

CLOSE);

setTitle("Data Biaya Semester");

jPanel1.setLayout(new java.awt.GridLayout(17, 0));

jPanel1.setBackground(new java.awt.Color(255, 255, 255)); jPanel11.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel11);

jPanel8.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel8.setBackground(new java.awt.Color(255, 255, 255));

jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel4.setText("Bulan Pembayaran :");

jLabel4.setPreferredSize(new java.awt.Dimension(110, 14));

jPanel8.add(jLabel4);

dataBulan = SmitDev.SmsServer.Jam.daftarNamaBulan();

jPanel8.add(dataBulan);

jLabel5.setText("Tahun Pembayaran :");

Page 192: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

154 jPanel8.add(jLabel5);

dataTahun.setPreferredSize(new java.awt.Dimension(50, 19));

jPanel8.add(dataTahun);

jPanel1.add(jPanel8);

jPanel9.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel9.setBackground(new java.awt.Color(255, 255, 255));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("NIM :");

jLabel3.setPreferredSize(new java.awt.Dimension(110, 14));

jPanel9.add(jLabel3);

dataIdPelanggan.setPreferredSize(new java.awt.Dimension(150, 19));

dataIdPelanggan.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) {

dataIdPelangganKeyReleased(evt);

}

});

jPanel9.add(dataIdPelanggan);

jButton4.setText("Tampilkan");

jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton4ActionPerformed(evt);

}

});

jPanel9.add(jButton4);

jButton3.setText("Cari ...");

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

} });

jPanel9.add(jButton3);

jPanel1.add(jPanel9);

jPanel22.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel22);

jPanel12.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel12.setBackground(new java.awt.Color(255, 255, 51));

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel6.setText("Nama Mahasiswa :");

jLabel6.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel12.add(jLabel6);

dataNamaPelanggan.setEditable(false);

dataNamaPelanggan.setPreferredSize(new java.awt.Dimension(150,

19));

jPanel12.add(dataNamaPelanggan);

jPanel1.add(jPanel12);

jPanel10.setLayout(new java.awt.GridLayout(3, 0));

jPanel10.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel10);

jPanel15.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel15.setBackground(new java.awt.Color(0, 204, 204));

jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel9.setText("SPP :");

jLabel9.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel15.add(jLabel9);

dataBiayaBeban.setDocument(SmitDev.SmsServer.saring_karakter.setAllOnlyDigit());

dataBiayaBeban.setText("0");

dataBiayaBeban.setPreferredSize(new java.awt.Dimension(100, 19));

dataBiayaBeban.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) {

dataBiayaBebanKeyReleased(evt);

}

});

jPanel15.add(dataBiayaBeban);

jPanel1.add(jPanel15);

jPanel16.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel16.setBackground(new java.awt.Color(0, 204, 204));

jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel10.setText("DOP :");

jLabel10.setPreferredSize(new java.awt.Dimension(155, 14)); jPanel16.add(jLabel10);

dataBiayaPemakaian.setDocument(SmitDev.SmsServer.saring_karakter.se

tAllOnlyDigit()); dataBiayaPemakaian.setText("0");

dataBiayaPemakaian.setPreferredSize(new java.awt.Dimension(100,

19));

dataBiayaPemakaian.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) { dataBiayaPemakaianKeyReleased(evt);

}

});

jPanel16.add(dataBiayaPemakaian);

jPanel1.add(jPanel16);

jPanel17.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel17.setBackground(new java.awt.Color(0, 204, 204));

jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel11.setText("DKM :"); jLabel11.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel17.add(jLabel11);

dataBiayaKeterlambatan.setDocument(SmitDev.SmsServer.saring_karakte

r.setAllOnlyDigit()); dataBiayaKeterlambatan.setText("0");

dataBiayaKeterlambatan.setPreferredSize(new

java.awt.Dimension(100, 19));

dataBiayaKeterlambatan.addKeyListener(new

java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) {

dataBiayaKeterlambatanKeyReleased(evt);

}

});

jPanel17.add(dataBiayaKeterlambatan);

jPanel1.add(jPanel17);

jPanel18.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel18.setBackground(new java.awt.Color(0, 204, 204));

jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel12.setText("DP + DM:"); jLabel12.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel18.add(jLabel12);

Page 193: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

155

dataBiayaLainLain.setDocument(SmitDev.SmsServer.saring_karakter.setAllOnlyDigit());

dataBiayaLainLain.setText("0");

dataBiayaLainLain.setPreferredSize(new java.awt.Dimension(100,

19));

dataBiayaLainLain.addKeyListener(new java.awt.event.KeyAdapter()

{

public void keyReleased(java.awt.event.KeyEvent evt) {

dataBiayaLainLainKeyReleased(evt);

} });

jPanel18.add(dataBiayaLainLain);

jPanel1.add(jPanel18);

jPanel20.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel20.setBackground(new java.awt.Color(0, 204, 204));

jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel14.setText("Pajak :");

jLabel14.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel20.add(jLabel14);

dataPPJ.setBackground(new java.awt.Color(255, 255, 255)); dataPPJ.setText("0");

dataPPJ.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel20.add(dataPPJ);

jPanel1.add(jPanel20);

jPanel19.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel19.setBackground(new java.awt.Color(0, 204, 204));

jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel13.setText("Jumlah :");

jLabel13.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel19.add(jLabel13);

jLabel18.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel18.setText("Rp.");

jLabel18.setPreferredSize(new java.awt.Dimension(100, 14));

jPanel19.add(jLabel18);

dataJumlah.setEditable(false);

dataJumlah.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

dataJumlah.setText("0");

dataJumlah.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel19.add(dataJumlah);

jPanel1.add(jPanel19);

jPanel23.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel23.setBackground(new java.awt.Color(0, 204, 204));

jLabel16.setPreferredSize(new java.awt.Dimension(265, 14));

jPanel23.add(jLabel16);

jLabel17.setText("_________________ +");

jPanel23.add(jLabel17);

jPanel1.add(jPanel23);

jPanel21.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel21.setBackground(new java.awt.Color(0, 204, 204));

jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel15.setText("Total Pembayaran :");

jLabel15.setPreferredSize(new java.awt.Dimension(155, 14));

jPanel21.add(jLabel15);

jLabel20.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel20.setText("Rp.");

jLabel20.setPreferredSize(new java.awt.Dimension(100, 14));

jPanel21.add(jLabel20);

dataTotalPembayaran.setEditable(false);

dataTotalPembayaran.setFont(new java.awt.Font("Tahoma", 1, 11));

dataTotalPembayaran.setHorizontalAlignment(javax.swing.JTextField.RI

GHT); dataTotalPembayaran.setText("0");

dataTotalPembayaran.setPreferredSize(new java.awt.Dimension(100,

19));

jPanel21.add(dataTotalPembayaran);

jPanel1.add(jPanel21);

getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.Y_AXIS));

jPanel6.setBackground(new java.awt.Color(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel1.setText("Input Data SMS Request");

jPanel6.add(jLabel1);

jPanel2.add(jPanel6);

jPanel7.setBackground(new java.awt.Color(102, 255, 255));

jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12));

jLabel2.setForeground(new java.awt.Color(255, 51, 51));

jLabel2.setText("(Data Biaya Semester)"); jPanel7.add(jLabel2);

jPanel2.add(jPanel7);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton1.setText("Simpan Data");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jPanel3.add(jButton1);

jButton2.setText("Update Data");

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt);

}

});

jPanel3.add(jButton2);

jButton5.setText("Tutup Jendela");

jButton5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt);

}

});

jPanel3.add(jButton5);

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().getScreenSize();

Page 194: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

156 setBounds((screenSize.width-550)/2, (screenSize.height-604)/2, 550,

604); }

// </editor-fold>

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

String tahun = this.dataTahun.getText();

jendelaInputDataMahasiswa bk = new

jendelaInputDataMahasiswa(koneksi, tahun);

bk.cardTombol.show(bk.jPanel3, "tombolPanelAmbil");

bk.setVisible(true);

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

String id = this.dataIdPelanggan.getText();

String bln = this.dataBulan.getSelectedItem().toString();

String thn = this.dataTahun.getText();

String bulan_pembayaran = bln + thn;

String kode = id + bulan_pembayaran; String beban = this.dataBiayaBeban.getText();

if(beban.length() == 0){

beban = "0";

}

String pakai = this.dataBiayaPemakaian.getText(); if(pakai.length() == 0){

pakai = "0";

}

String terlambat = this.dataBiayaKeterlambatan.getText();

if(terlambat.length() == 0){

terlambat = "0"; }

String lain = this.dataBiayaLainLain.getText();

if(lain.length() == 0){

lain = "0";

}

String jumlah = this.dataJumlah.getText(); String ppj = this.dataPPJ.getText();

String total = this.dataTotalPembayaran.getText();

if(total.equalsIgnoreCase("0")){

SmitDev.SmsServer.Server.proses_Gagal("Proses Update Data

Gagal !!", "Biaya Semester Belum dimasukan");

} else{

String sql = "UPDATE biaya_semester SET nim = ?,

bulan_pembayaran = ?, spp = ?, dop = ?, dkm = ?, dp = ? , jumlah = ?, pajak = ?, total_pembayaran = ? WHERE kode = ?";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, id);

stat.setString(2, bulan_pembayaran); stat.setString(3, beban);

stat.setString(4, pakai);

stat.setString(5, terlambat);

stat.setString(6, lain);

stat.setString(7, jumlah);

stat.setString(8, ppj);

stat.setString(9, total);

stat.setString(10, kode);

stat.executeUpdate();

javax.swing.JOptionPane.showMessageDialog(null,

"Selamat !!!\nData Biaya Semester Berhasil DiUpdate");

this.dataIdPelanggan.setText("");

dataPelangganKosong();

dataPembayaranKosong(); } catch (java.sql.SQLException s){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah

Data Biaya Semester", s.getMessage());

}

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah Data Biaya semester", se.getMessage());

}

}

}

private void

dataIdPelangganKeyReleased(java.awt.event.KeyEvent evt) { int key = evt.getKeyCode();

if(key == evt.VK_ENTER){

this.tampilkanDataPajak();

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{ String id = this.dataIdPelanggan.getText();

String bln = this.dataBulan.getSelectedItem().toString();

String thn = this.dataTahun.getText();

String bulan_pembayaran = bln + thn;

String kode = id + bulan_pembayaran;

String beban = this.dataBiayaBeban.getText(); if(beban.length() == 0){

beban = "0";

}

String pakai = this.dataBiayaPemakaian.getText();

if(pakai.length() == 0){

pakai = "0"; }

String terlambat = this.dataBiayaKeterlambatan.getText();

if(terlambat.length() == 0){

terlambat = "0";

} String lain = this.dataBiayaLainLain.getText();

if(lain.length() == 0){

lain = "0";

}

String jumlah = this.dataJumlah.getText(); String ppj = this.dataPPJ.getText();

String total = this.dataTotalPembayaran.getText();

if(total.equalsIgnoreCase("0")){

SmitDev.SmsServer.Server.proses_Gagal("Proses Simpan Data

Gagal !!", "Biaya Semester Belum dimasukan"); } else{

String sql = "INSERT INTO biaya_semester(kode, nim,

bulan_pembayaran, spp, dop, dkm, dp, jumlah, pajak, total_pembayaran)

VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, kode);

stat.setString(2, id); stat.setString(3, bulan_pembayaran);

stat.setString(4, beban);

stat.setString(5, pakai);

stat.setString(6, terlambat);

stat.setString(7, lain);

stat.setString(8, jumlah); stat.setString(9, ppj);

stat.setString(10, total);

stat.executeUpdate();

javax.swing.JOptionPane.showMessageDialog(null,

"Selamat !!!\nData Biaya Semester Berhasil Disimpan");

this.dataIdPelanggan.setText("");

dataPelangganKosong();

dataPembayaranKosong(); } catch (java.sql.SQLException s){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan

Data Biaya Semester", s.getMessage());

}

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan Data Biaya Semester", se.getMessage());

}

}

}

private void dataBiayaLainLainKeyReleased(java.awt.event.KeyEvent evt) {

prosesJumlah();

}

Page 195: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

157 private void

dataBiayaKeterlambatanKeyReleased(java.awt.event.KeyEvent evt) { prosesJumlah();

}

private void dataBiayaPemakaianKeyReleased(java.awt.event.KeyEvent

evt) {

prosesJumlah();

}

private void dataBiayaBebanKeyReleased(java.awt.event.KeyEvent evt) {

prosesJumlah();

}

private void prosesJumlah(){

String beban = this.dataBiayaBeban.getText(); if(beban.length() == 0){

beban = "0";

}

int biayaBeban = Integer.parseInt(beban);

String pakai = this.dataBiayaPemakaian.getText(); if(pakai.length() == 0){

pakai = "0";

}

int biayaPakai= Integer.parseInt(pakai);

String terlambat = this.dataBiayaKeterlambatan.getText();

if(terlambat.length() == 0){

terlambat = "0";

}

int biayaTerlambat= Integer.parseInt(terlambat);

String lain = this.dataBiayaLainLain.getText();

if(lain.length() == 0){

lain = "0";

}

int biayaLain= Integer.parseInt(lain);

int jumlah = biayaBeban + biayaPakai + biayaTerlambat + biayaLain;

String hasilJumlah =

java.text.NumberFormat.getNumberInstance(java.util.Locale.ENGLISH).f

ormat(

jumlah);

java.util.StringTokenizer token = new

java.util.StringTokenizer(hasilJumlah, ".");

hasilJumlah = token.nextToken();

hasilJumlah = hasilJumlah.replace(',', '.'); this.dataJumlah.setText(String.valueOf(hasilJumlah));

double ppj = jumlah * 0.05;

String hasilPPJ =

java.text.NumberFormat.getNumberInstance(java.util.Locale.ENGLISH).f

ormat( ppj);

token = new java.util.StringTokenizer(hasilPPJ, ".");

hasilPPJ = token.nextToken();

hasilPPJ = hasilPPJ.replace(',', '.');

this.dataPPJ.setText(hasilPPJ);

double totalBayar = jumlah;

String hasilTotalBayar = java.text.NumberFormat.getNumberInstance(java.util.Locale.ENGLISH).f

ormat(

totalBayar);

token = new java.util.StringTokenizer(hasilTotalBayar, ".");

hasilTotalBayar = token.nextToken();

hasilTotalBayar = hasilTotalBayar.replace(',', '.'); this.dataTotalPembayaran.setText(hasilTotalBayar);

}

public void tampilkanDataPajak(){

String id = this.dataIdPelanggan.getText();

String bln = this.dataBulan.getSelectedItem().toString(); String thn = this.dataTahun.getText();

String kode = id + bln + thn;

boolean adaDataPelanggan = false;

boolean adaDataPembayaran = false;

if(id.length() == 0 || thn.length() == 0){

SmitDev.SmsServer.Server.proses_Gagal("Gagal

Menampilkan Data", "Data NIM atau Tahun Pembayaran masih Kosong !!");

} else{

String sql = "SELECT * FROM data_mahasiswa WHERE nim =

'"+id+"'";

try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){

String nama = rSet.getString("nama_mahasiswa");

this.dataNamaPelanggan.setText(nama); adaDataPelanggan = true;

}

if(!adaDataPelanggan){

dataPelangganKosong();

dataPembayaranKosong();

} else{

String sql2 = "SELECT * FROM biaya_semester WHERE

kode = '"+kode+"'";

try{

java.sql.Statement stat2 = koneksi.createStatement(); java.sql.ResultSet rSet2 = stat2.executeQuery(sql2);

while(rSet2.next()){

String beban = rSet2.getString("spp");

String pakai = rSet2.getString("dop");

String terlambat = rSet2.getString("dkm");

String lain = rSet2.getString("dp"); String jml = rSet2.getString("jumlah");

String ppj = rSet2.getString("pajak");

String total_bayar =

rSet2.getString("total_pembayaran");

this.dataBiayaBeban.setText(beban); this.dataBiayaKeterlambatan.setText(terlambat);

this.dataBiayaLainLain.setText(lain);

this.dataBiayaPemakaian.setText(pakai);

this.dataJumlah.setText(jml);

this.dataPPJ.setText(ppj);

this.dataTotalPembayaran.setText(total_bayar);

this.jButton2.setEnabled(true);

this.jButton1.setEnabled(false); adaDataPembayaran = true;

}

if(!adaDataPembayaran){

dataPembayaranKosong();

this.jButton1.setEnabled(true);

this.jButton2.setEnabled(false); }

} catch(java.sql.SQLException e){

}

}

} catch(java.sql.SQLException e){

}

} }

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt)

{

tampilkanDataPajak();

}

private void dataPelangganKosong(){

this.dataNamaPelanggan.setText("");

this.jButton1.setEnabled(false);

this.jButton2.setEnabled(false);

} private void dataPembayaranKosong(){

this.dataBiayaBeban.setText("0");

this.dataBiayaKeterlambatan.setText("0");

this.dataBiayaLainLain.setText("0");

this.dataBiayaPemakaian.setText("0");

Page 196: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

158 this.dataJumlah.setText("0");

this.dataPPJ.setText("0"); this.dataTotalPembayaran.setText("0");

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

// Variables declaration - do not modify private javax.swing.JTextField dataBiayaBeban;

private javax.swing.JTextField dataBiayaKeterlambatan;

private javax.swing.JTextField dataBiayaLainLain;

private javax.swing.JTextField dataBiayaPemakaian;

private javax.swing.JComboBox dataBulan;

public javax.swing.JTextField dataIdPelanggan; private javax.swing.JTextField dataJumlah;

private javax.swing.JTextField dataNamaPelanggan;

private javax.swing.JTextField dataPPJ;

private javax.swing.JTextField dataTahun;

private javax.swing.JTextField dataTotalPembayaran;

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.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 jLabel17;

private javax.swing.JLabel jLabel18;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel20;

private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

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 jPanel15; private javax.swing.JPanel jPanel16;

private javax.swing.JPanel jPanel17;

private javax.swing.JPanel jPanel18;

private javax.swing.JPanel jPanel19;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel20; private javax.swing.JPanel jPanel21;

private javax.swing.JPanel jPanel22;

private javax.swing.JPanel jPanel23;

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

}

Coding Input Data Mahasiswa:

public class jendelaInputDataMahasiswa extends javax.swing.JFrame { java.awt.CardLayout cardTengah = new java.awt.CardLayout();

java.awt.CardLayout cardTombol = new java.awt.CardLayout();

java.sql.Connection koneksi;

/**

* Creates new form jendelaInputDataMahasiswa */

String tahun;

public jendelaInputDataMahasiswa(java.sql.Connection koneksi, String

tahun) {

this.koneksi = koneksi;

this.tahun = tahun;

initComponents();

tampilTabelDataMahasiswa();

} javax.swing.table.DefaultTableModel tabPelanggan = new

javax.swing.table.DefaultTableModel(

null, new String[] {"NIM", "Nama Mahasiswa", "Dosen PA",

"Dosen PKL"}){

public boolean isCellEditable(int iRows, int iCols) {

return false; }};

/** 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() {

jPanel2 = new javax.swing.JPanel();

jPanel10 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jPanel11 = new javax.swing.JPanel();

jLabel8 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel();

jPanel16 = new javax.swing.JPanel();

jButton1 = new javax.swing.JButton();

jButton4 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton(); jPanel19 = new javax.swing.JPanel();

jButton5 = new javax.swing.JButton();

jButton6 = new javax.swing.JButton();

jButton7 = new javax.swing.JButton();

jButton8 = new javax.swing.JButton();

Page 197: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

159 jPanel20 = new javax.swing.JPanel();

jButton9 = new javax.swing.JButton(); jPanel4 = new javax.swing.JPanel();

jPanel5 = new javax.swing.JPanel();

jPanel13 = new javax.swing.JPanel();

jPanel15 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

jTable1 = new javax.swing.JTable();

jPanel17 = new javax.swing.JPanel();

jPanel18 = new javax.swing.JPanel();

jPanel1 = new javax.swing.JPanel(); jPanel12 = new javax.swing.JPanel();

jPanel6 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel();

dataIdPelanggan = new javax.swing.JTextField();

jPanel7 = new javax.swing.JPanel();

jLabel3 = new javax.swing.JLabel(); dataNamaPelanggan = new javax.swing.JTextField();

jPanel8 = new javax.swing.JPanel();

jLabel4 = new javax.swing.JLabel();

dataAlamatPelanggan = new javax.swing.JTextField();

jPanel9 = new javax.swing.JPanel();

jLabel5 = new javax.swing.JLabel(); dataDaya = new javax.swing.JTextField();

jPanel14 = new javax.swing.JPanel();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

setTitle("Input Data SMS Request (Data Mahasiswa)");

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.Y_AXIS));

jPanel2.setBackground(new java.awt.Color(51, 51, 51)); jPanel10.setBackground(new java.awt.Color(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel1.setText("Input Data SMS Request");

jPanel10.add(jLabel1);

jPanel2.add(jPanel10);

jPanel11.setBackground(new java.awt.Color(102, 255, 255));

jLabel8.setFont(new java.awt.Font("Tahoma", 1, 12));

jLabel8.setForeground(new java.awt.Color(255, 51, 51));

jLabel8.setText("(Data Mahasiswa Prodi TI)");

jPanel11.add(jLabel8);

jPanel2.add(jPanel11);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new java.awt.CardLayout());

jPanel3.setLayout(cardTombol);

jPanel16.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton1.setText("Tambah Baru");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jPanel16.add(jButton1);

jButton4.setText("Biaya Semester");

jButton4.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton4ActionPerformed(evt); }

});

jPanel16.add(jButton4);

jButton2.setText("Rubah Data"); jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jPanel16.add(jButton2);

jButton3.setText("Tutup Jendela");

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jPanel16.add(jButton3);

jPanel3.add(jPanel16, "tombolPanelTabel");

jPanel19.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton5.setText("Simpan Data");

jButton5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton5ActionPerformed(evt);

}

});

jPanel19.add(jButton5);

jButton6.setText("Update Data");

jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton6ActionPerformed(evt);

}

});

jPanel19.add(jButton6);

jButton7.setText("Batal");

jButton7.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton7ActionPerformed(evt);

} });

jPanel19.add(jButton7);

jButton8.setText("Tutup Jendela");

jButton8.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton8ActionPerformed(evt);

} });

jPanel19.add(jButton8);

jPanel3.add(jPanel19, "tombolPanelData");

jPanel20.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton9.setText("Ambil NIM Mahasiswa");

jButton9.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton9ActionPerformed(evt);

}

});

jPanel20.add(jButton9);

jPanel3.add(jPanel20, "tombolPanelAmbil");

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);

jPanel13.setLayout(new java.awt.CardLayout());

jPanel13.setLayout(cardTengah);

jPanel15.setLayout(new java.awt.BorderLayout());

Page 198: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

160

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(tabPelanggan);

jScrollPane1.setViewportView(jTable1);

jPanel15.add(jScrollPane1, java.awt.BorderLayout.CENTER);

jPanel17.setBackground(new java.awt.Color(255, 255, 255));

jPanel15.add(jPanel17, java.awt.BorderLayout.NORTH);

jPanel18.setBackground(new java.awt.Color(255, 255, 255));

jPanel15.add(jPanel18, java.awt.BorderLayout.SOUTH);

jPanel13.add(jPanel15, "panelTabelPelanggan");

jPanel1.setLayout(new java.awt.GridLayout(7, 0));

jPanel1.setBackground(new java.awt.Color(255, 255, 255)); jPanel12.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel12);

jPanel6.setBackground(new java.awt.Color(255, 255, 255));

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel2.setText("NIM :");

jLabel2.setPreferredSize(new java.awt.Dimension(150, 14));

jPanel6.add(jLabel2);

dataIdPelanggan.setText("jTextField1");

dataIdPelanggan.setPreferredSize(new java.awt.Dimension(200, 19)); jPanel6.add(dataIdPelanggan);

jPanel1.add(jPanel6);

jPanel7.setBackground(new java.awt.Color(255, 255, 255));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Nama Mahasiswa :");

jLabel3.setPreferredSize(new java.awt.Dimension(150, 14)); jPanel7.add(jLabel3);

dataNamaPelanggan.setText("jTextField2");

dataNamaPelanggan.setPreferredSize(new java.awt.Dimension(200,

19));

jPanel7.add(dataNamaPelanggan);

jPanel1.add(jPanel7);

jPanel8.setBackground(new java.awt.Color(255, 255, 255));

jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel4.setText("Dosen PA :");

jLabel4.setPreferredSize(new java.awt.Dimension(150, 14));

jPanel8.add(jLabel4);

dataAlamatPelanggan.setText("jTextField3");

dataAlamatPelanggan.setPreferredSize(new java.awt.Dimension(200,

19));

dataAlamatPelanggan.addActionListener(new

java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

dataAlamatPelangganActionPerformed(evt);

}

});

jPanel8.add(dataAlamatPelanggan);

jPanel1.add(jPanel8);

jPanel9.setBackground(new java.awt.Color(255, 255, 255));

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); jLabel5.setText("Dosen PKL :");

jLabel5.setPreferredSize(new java.awt.Dimension(150, 14));

jPanel9.add(jLabel5);

dataDaya.setPreferredSize(new java.awt.Dimension(200, 19));

jPanel9.add(dataDaya);

jPanel1.add(jPanel9);

jPanel14.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel14);

jPanel13.add(jPanel1, "panelDataPelanggan");

getContentPane().add(jPanel13, java.awt.BorderLayout.CENTER);

java.awt.Dimension screenSize =

java.awt.Toolkit.getDefaultToolkit().getScreenSize();

setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

} // </editor-fold>

private void

dataAlamatPelangganActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here: }

private void jButton9ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) { javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu nim Mahasiswa yang ingin ditampilkan

!!");

} else {

String no = tabPelanggan.getValueAt(xrow, 0).toString();

dispose(); jendelaInputBiayaSemester sms = new

jendelaInputBiayaSemester(koneksi, tahun);

sms.dataIdPelanggan.setText(no);

sms.tampilkanDataPajak();

sms.setVisible(true);

}

}

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt)

{

String id = dataIdPelanggan.getText();

String nama = dataNamaPelanggan.getText();

String dosenpa = dataAlamatPelanggan.getText();

String dosenpkl = dataDaya.getText();

if(nama.length()==0 || dosenpa.length()==0 || dosenpkl.length()==0){

SmitDev.SmsServer.Server.proses_Gagal("Proses Rubah Data

Gagal !!", "Terdapat Data yang Belum Dimasukkan");

} else{

String sql = "UPDATE data_mahasiswa SET nama_mahasiswa = ?,

dosen_pa = ?, dosen_pkl = ? WHERE nim = ?";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql); try{

stat.setString(1, nama);

stat.setString(2, dosenpa);

stat.setString(3, dosenpkl);

stat.setString(4, id);

stat.executeUpdate(); tampilTabelDataMahasiswa();

cardTengah.show(jPanel13, "panelTabelPelanggan");

cardTombol.show(jPanel3, "tombolPanelTabel");

} catch (java.sql.SQLException s){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah

Data Mahasiswa", s.getMessage()); }

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah Data

Mahasiswa", se.getMessage());

}

Page 199: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

161 }

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu nim Mahasiswa yang ingin ditampilkan

!!");

} else { String no = tabPelanggan.getValueAt(xrow, 0).toString();

dispose();

jendelaInputBiayaSemester sms = new

jendelaInputBiayaSemester(koneksi, tahun);

sms.dataIdPelanggan.setText(no);

sms.tampilkanDataPajak(); sms.setVisible(true);

}

}

private void tampilTabelDataMahasiswa(){ int row = tabPelanggan.getRowCount();

for (int i = 0; i < row; i++){

tabPelanggan.removeRow(0);

}

String sql = "SELECT * FROM data_mahasiswa"; try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){

String nim = rSet.getString("nim");

String nama = rSet.getString("nama_mahasiswa"); String dosenpa = rSet.getString("dosen_pa");

String dosenpkl = rSet.getString("dosen_pkl");

String[] data = {nim, nama, dosenpa, dosenpkl};

this.tabPelanggan.addRow(data);

}

} catch(Exception e){} }

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu Pelanggan yang ingin dirubah datanya

!!"); } else {

String nim = tabPelanggan.getValueAt(xrow, 0).toString();

String nama = tabPelanggan.getValueAt(xrow, 1).toString();

String dosenpa = tabPelanggan.getValueAt(xrow, 2).toString();

String dosenpkl = tabPelanggan.getValueAt(xrow, 3).toString();

this.dataIdPelanggan.setText(nim); this.dataNamaPelanggan.setText(nama);

this.dataAlamatPelanggan.setText(dosenpa);

this.dataDaya.setText(dosenpkl);

this.dataIdPelanggan.setEnabled(false);

this.jButton5.setEnabled(false);

this.jButton6.setEnabled(true);

cardTengah.show(jPanel13, "panelDataPelanggan");

cardTombol.show(jPanel3, "tombolPanelData");

} }

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt)

{

cardTengah.show(jPanel13, "panelTabelPelanggan");

cardTombol.show(jPanel3, "tombolPanelTabel"); }

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)

{

String nim = dataIdPelanggan.getText();

String nama = dataNamaPelanggan.getText(); String dosenpa = dataAlamatPelanggan.getText();

String dosenpkl = dataDaya.getText();

if(nim.length()==0 || nama.length()==0 || dosenpa.length()==0 ||

dosenpkl.length()==0){

SmitDev.SmsServer.Server.proses_Gagal("Proses Simpan

Data Gagal !!", "Terdapat Data yang Belum Dimasukkan"); } else{

String sql = "INSERT INTO data_mahasiswa(nim,

nama_mahasiswa, dosen_pa, dosen_pkl) VALUES(?,?,?,?)";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, nim);

stat.setString(2, nama);

stat.setString(3, dosenpa); stat.setString(4, dosenpkl);

stat.executeUpdate();

tampilTabelDataMahasiswa();

cardTengah.show(jPanel13, "panelTabelPelanggan");

cardTombol.show(jPanel3, "tombolPanelTabel");

} catch (java.sql.SQLException s){ SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan

Data Pelanggan", s.getMessage());

}

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan

Data Pelanggan", se.getMessage()); }

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

this.dataIdPelanggan.setText("");

this.dataNamaPelanggan.setText("");

this.dataAlamatPelanggan.setText("");

this.dataDaya.setText("");

this.dataIdPelanggan.setEnabled(true); this.jButton6.setEnabled(false);

this.jButton5.setEnabled(true);

cardTengah.show(jPanel13, "panelDataPelanggan");

cardTombol.show(jPanel3, "tombolPanelData");

}

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)

{

dispose();

}

// Variables declaration - do not modify

private javax.swing.JTextField dataAlamatPelanggan;

private javax.swing.JTextField dataDaya;

private javax.swing.JTextField dataIdPelanggan; private javax.swing.JTextField dataNamaPelanggan;

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.JButton jButton9;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel8;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel10;

private javax.swing.JPanel jPanel11;

private javax.swing.JPanel jPanel12;

public javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14;

public javax.swing.JPanel jPanel15;

private javax.swing.JPanel jPanel16;

private javax.swing.JPanel jPanel17;

private javax.swing.JPanel jPanel18;

Page 200: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

162 private javax.swing.JPanel jPanel19;

private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel20;

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;

// End of variables declaration

}

Coding Jendela Input Pertanyaan :

public class jendelaInputPertanyaanPolling extends javax.swing.JFrame {

java.awt.CardLayout cardTengah = new java.awt.CardLayout();

java.awt.CardLayout cardTombol = new java.awt.CardLayout();

java.sql.Connection koneksi;

/**

* Creates new form jendelaInputPertanyaanPolling

*/

public jendelaInputPertanyaanPolling(java.sql.Connection koneksi) {

this.koneksi = koneksi;

initComponents(); tampilTabelDataPertanyaan();

}

javax.swing.table.DefaultTableModel tabPertanyaan = new

javax.swing.table.DefaultTableModel(

null, new String[] {"Kode Pertanyaan", "Pertanyaan Polling",

"Pilihan A", "Pilihan B", "Pilihan C"}){

public boolean isCellEditable(int iRows, int iCols) {

return false;

}};

/** 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() {

jPanel2 = new javax.swing.JPanel();

jPanel10 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel();

jPanel16 = new javax.swing.JPanel();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton10 = new javax.swing.JButton();

jButton4 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton(); jPanel19 = new javax.swing.JPanel();

jButton5 = new javax.swing.JButton();

jButton6 = new javax.swing.JButton();

jButton7 = new javax.swing.JButton();

jButton8 = new javax.swing.JButton();

jPanel20 = new javax.swing.JPanel();

jButton9 = new javax.swing.JButton();

jPanel4 = new javax.swing.JPanel();

jPanel5 = new javax.swing.JPanel(); jPanel13 = new javax.swing.JPanel();

jPanel15 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

jTable1 = new javax.swing.JTable();

jPanel17 = new javax.swing.JPanel();

jPanel18 = new javax.swing.JPanel(); jPanel1 = new javax.swing.JPanel();

jPanel12 = new javax.swing.JPanel();

jPanel6 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel();

dataKodePertanyaan = new javax.swing.JTextField();

jPanel7 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel();

dataIsiPertanyaanPolling = new javax.swing.JTextField();

jPanel8 = new javax.swing.JPanel();

jLabel4 = new javax.swing.JLabel();

dataPilihan_A = new javax.swing.JTextField(); jPanel9 = new javax.swing.JPanel();

jLabel5 = new javax.swing.JLabel();

dataPilihan_B = new javax.swing.JTextField();

jPanel14 = new javax.swing.JPanel();

jLabel6 = new javax.swing.JLabel();

dataPilihan_C = new javax.swing.JTextField(); jPanel11 = new javax.swing.JPanel();

cekHapusHasilPolling = new javax.swing.JCheckBox();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_

CLOSE); setTitle("Input Pertanyaan Polling");

jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2,

javax.swing.BoxLayout.Y_AXIS));

jPanel2.setBackground(new java.awt.Color(51, 51, 51));

jPanel10.setBackground(new java.awt.Color(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel1.setText("Input Data Pertanyaan Polling");

jPanel10.add(jLabel1);

jPanel2.add(jPanel10);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new java.awt.CardLayout());

jPanel3.setLayout(cardTombol);

jPanel16.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton1.setText("Tambah Baru");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt); }

});

jPanel16.add(jButton1);

jButton2.setText("Rubah Data"); jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jPanel16.add(jButton2);

jButton10.setText("Hapus Data");

jButton10.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

Page 201: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

163 jButton10ActionPerformed(evt);

} });

jPanel16.add(jButton10);

jButton4.setText("Lihat Hasil Polling");

jButton4.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton4ActionPerformed(evt);

} });

jPanel16.add(jButton4);

jButton3.setText("Tutup Jendela");

jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

}

});

jPanel16.add(jButton3);

jPanel3.add(jPanel16, "tombolPanelTabel");

jPanel19.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton5.setText("Simpan Data");

jButton5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton5ActionPerformed(evt);

} });

jPanel19.add(jButton5);

jButton6.setText("Update Data");

jButton6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton6ActionPerformed(evt);

}

});

jPanel19.add(jButton6);

jButton7.setText("Batal");

jButton7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton7ActionPerformed(evt);

}

});

jPanel19.add(jButton7);

jButton8.setText("Tutup Jendela");

jButton8.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton8ActionPerformed(evt);

}

});

jPanel19.add(jButton8);

jPanel3.add(jPanel19, "tombolPanelData");

jPanel20.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jButton9.setText("Ambil Kode Pertanyaan");

jButton9.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton9ActionPerformed(evt);

}

});

jPanel20.add(jButton9);

jPanel3.add(jPanel20, "tombolPanelAmbil");

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);

jPanel13.setLayout(new java.awt.CardLayout());

jPanel13.setLayout(cardTengah);

jPanel15.setLayout(new java.awt.BorderLayout());

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(tabPertanyaan);

jScrollPane1.setViewportView(jTable1);

jPanel15.add(jScrollPane1, java.awt.BorderLayout.CENTER);

jPanel17.setBackground(new java.awt.Color(255, 255, 255));

jPanel15.add(jPanel17, java.awt.BorderLayout.NORTH);

jPanel18.setBackground(new java.awt.Color(255, 255, 255)); jPanel15.add(jPanel18, java.awt.BorderLayout.SOUTH);

jPanel13.add(jPanel15, "panelTabelPertanyaan");

jPanel1.setLayout(new java.awt.GridLayout(7, 0));

jPanel1.setBackground(new java.awt.Color(255, 255, 255));

jPanel12.setBackground(new java.awt.Color(255, 255, 255));

jPanel1.add(jPanel12);

jPanel6.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel6.setBackground(new java.awt.Color(255, 255, 255));

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel2.setText("Kode Pertanyaan :");

jLabel2.setPreferredSize(new java.awt.Dimension(120, 14));

jPanel6.add(jLabel2);

dataKodePertanyaan.setText("jTextField1"); dataKodePertanyaan.setPreferredSize(new java.awt.Dimension(100,

19));

jPanel6.add(dataKodePertanyaan);

jPanel1.add(jPanel6);

jPanel7.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel7.setBackground(new java.awt.Color(255, 255, 255));

jPanel7.setMinimumSize(new java.awt.Dimension(164, 33));

jPanel7.setPreferredSize(new java.awt.Dimension(472, 52));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Isi Pertanyaan Polling :"); jLabel3.setPreferredSize(new java.awt.Dimension(120, 14));

jPanel7.add(jLabel3);

dataIsiPertanyaanPolling.setText("jTextField2");

dataIsiPertanyaanPolling.setPreferredSize(new

java.awt.Dimension(350, 19)); jPanel7.add(dataIsiPertanyaanPolling);

jPanel1.add(jPanel7);

Page 202: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

164 jPanel8.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel8.setBackground(new java.awt.Color(255, 255, 255));

jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel4.setText("Pilihan A :");

jLabel4.setPreferredSize(new java.awt.Dimension(120, 14));

jPanel8.add(jLabel4);

dataPilihan_A.setText("jTextField3"); dataPilihan_A.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel8.add(dataPilihan_A);

jPanel1.add(jPanel8);

jPanel9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel9.setBackground(new java.awt.Color(255, 255, 255));

jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel5.setText("Pilihan B :"); jLabel5.setPreferredSize(new java.awt.Dimension(120, 14));

jPanel9.add(jLabel5);

dataPilihan_B.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel9.add(dataPilihan_B);

jPanel1.add(jPanel9);

jPanel14.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel14.setBackground(new java.awt.Color(255, 255, 255));

jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel6.setText("Pilihan C :");

jLabel6.setPreferredSize(new java.awt.Dimension(120, 14));

jPanel14.add(jLabel6);

dataPilihan_C.setText("jTextField1");

dataPilihan_C.setPreferredSize(new java.awt.Dimension(100, 19));

jPanel14.add(dataPilihan_C);

jPanel1.add(jPanel14);

jPanel11.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

jPanel11.setBackground(new java.awt.Color(255, 255, 255));

cekHapusHasilPolling.setBackground(new java.awt.Color(255, 255,

255));

cekHapusHasilPolling.setText("Hapus data Hasil Polling saat

Pertanyaan dirubah"); jPanel11.add(cekHapusHasilPolling);

jPanel1.add(jPanel11);

jPanel13.add(jPanel1, "panelDataPertanyaan");

getContentPane().add(jPanel13, java.awt.BorderLayout.CENTER);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

}

// </editor-fold>

private void jButton10ActionPerformed(java.awt.event.ActionEvent

evt) {

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu Kode Pertanyaan yang ingin dihapus !!");

} else {

String kode = tabPertanyaan.getValueAt(xrow, 0).toString();

int hapus = javax.swing.JOptionPane.showConfirmDialog(null,

"Kode Pertanyaan : " +

kode + "\nAnda Ingin menghapus data pertanyaan

tersebut ?", "Konfirmasi Hapus Data", javax.swing.JOptionPane.YES_NO_OPTION);

if (hapus == 0){

String sql = "DELETE FROM data_pertanyaan_polling WHERE

kode_pertanyaan = ?";

try{

java.sql.PreparedStatement stat =

koneksi.prepareStatement(sql);

try{

stat.setString(1, kode); stat.executeUpdate();

tampilTabelDataPertanyaan();

int hapus2 =

javax.swing.JOptionPane.showConfirmDialog(null, "Pertanyaan dengan

kode : "+kode+" Telah dihapus"+

"\nAnda Ingin Menghapus Semua Hasil Polling dari Kode Pertanyaan Tersebut ???", "Konfirmasi Hapus Data",

javax.swing.JOptionPane.YES_NO_OPTION);

if (hapus2 == 0){

String sql2 = "DELETE FROM data_hasil_polling

WHERE kode_pertanyaan = ?";

try{ java.sql.PreparedStatement stat2 =

koneksi.prepareStatement(sql2);

try{

stat2.setString(1, kode);

stat2.executeUpdate(); } 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());

}

}

} 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 jButton9ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow(); if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu Kode Pertanyaan yang dicari !!");

} else {

String kode = tabPertanyaan.getValueAt(xrow, 0).toString();

dispose();

new jendelaHasilPolling(koneksi, kode).setVisible(true);;

} }

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt)

{

String kode = dataKodePertanyaan.getText();

String pertanyaan = dataIsiPertanyaanPolling.getText(); String pilih_a = dataPilihan_A.getText();

String pilih_b = dataPilihan_B.getText();

String pilih_c = dataPilihan_C.getText();

boolean hapus = this.cekHapusHasilPolling.isSelected();

if(pertanyaan.length()==0 || pilih_a.length()==0 || pilih_b.length()==0 || pilih_c.length()==0){

SmitDev.SmsServer.Server.proses_Gagal("Proses Rubah Data

Gagal !!", "Terdapat Data yang Belum Dimasukkan");

} else{

Page 203: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

165 String sql = "UPDATE data_Pertanyaan_polling SET

isi_Pertanyaan = ?, pilihan_a = ?, pilihan_b = ?, pilihan_c = ? WHERE kode_Pertanyaan = ?";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, pertanyaan);

stat.setString(2, pilih_a);

stat.setString(3, pilih_b);

stat.setString(4, pilih_c);

stat.setString(5, kode); stat.executeUpdate();

tampilTabelDataPertanyaan();

if(hapus){

int hapus2 =

javax.swing.JOptionPane.showConfirmDialog(null, "Pertanyaan dengan

kode : "+kode+" Telah dirubah"+ "\nAnda Ingin Menghapus Semua Hasil Polling dari

Kode Pertanyaan Tersebut ???", "Konfirmasi Hapus Data",

javax.swing.JOptionPane.YES_NO_OPTION);

if (hapus2 == 0){

String sql2 = "DELETE FROM data_hasil_polling

WHERE kode_pertanyaan = ?"; try{

java.sql.PreparedStatement stat2 =

koneksi.prepareStatement(sql2);

try{

stat2.setString(1, kode); stat2.executeUpdate();

} 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());

}

}

}

cardTengah.show(jPanel13, "panelTabelPertanyaan"); cardTombol.show(jPanel3, "tombolPanelTabel");

} catch (java.sql.SQLException s){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah

Data Pertanyaan", s.getMessage());

}

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Merubah Data

Pertanyaan", se.getMessage());

} }

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow(); if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu kode Pertanyaan yang ingin

ditampilkan !!");

} else {

String kode = tabPertanyaan.getValueAt(xrow, 0).toString();

dispose();

new jendelaHasilPolling(koneksi, kode).setVisible(true);;

} }

private void tampilTabelDataPertanyaan(){

int row = tabPertanyaan.getRowCount();

for (int i = 0; i < row; i++){

tabPertanyaan.removeRow(0); }

String sql = "SELECT * FROM data_Pertanyaan_polling";

try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){ String kode = rSet.getString("kode_Pertanyaan");

String pertanyaan = rSet.getString("isi_pertanyaan");

String pilihan_a = rSet.getString("pilihan_a");

String pilihan_b = rSet.getString("pilihan_b");

String pilihan_c = rSet.getString("pilihan_c");

String[] data = {kode, pertanyaan, pilihan_a, pilihan_b,

pilihan_c}; this.tabPertanyaan.addRow(data);

}

} catch(Exception e){}

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) { javax.swing.JOptionPane.showMessageDialog(null,

"Silahkan pilih dahulu Pertanyaan yang ingin dirubah datanya

!!");

} else {

String kode = tabPertanyaan.getValueAt(xrow, 0).toString();

String isi = tabPertanyaan.getValueAt(xrow, 1).toString(); String pilih_a = tabPertanyaan.getValueAt(xrow, 2).toString();

String pilih_b = tabPertanyaan.getValueAt(xrow, 3).toString();

String pilih_c = tabPertanyaan.getValueAt(xrow, 4).toString();

this.dataKodePertanyaan.setText(kode);

this.dataIsiPertanyaanPolling.setText(isi);

this.dataPilihan_A.setText(pilih_a); this.dataPilihan_B.setText(pilih_b);

this.dataPilihan_C.setText(pilih_c);

this.cekHapusHasilPolling.setSelected(true);

this.cekHapusHasilPolling.setEnabled(true);

this.dataKodePertanyaan.setEnabled(false); this.jButton5.setEnabled(false);

this.jButton6.setEnabled(true);

cardTengah.show(jPanel13, "panelDataPertanyaan");

cardTombol.show(jPanel3, "tombolPanelData");

}

}

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt)

{

cardTengah.show(jPanel13, "panelTabelPertanyaan");

cardTombol.show(jPanel3, "tombolPanelTabel");

}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)

{

String kode = dataKodePertanyaan.getText();

String pertanyaan = dataIsiPertanyaanPolling.getText();

String pilih_a = dataPilihan_A.getText();

String pilih_b = dataPilihan_B.getText();

String pilih_c = dataPilihan_C.getText();

if(kode.length()==0 || pertanyaan.length()==0 || pilih_a.length()==0 ||

pilih_b.length()==0 || pilih_c.length()==0){

SmitDev.SmsServer.Server.proses_Gagal("Proses Simpan Data

Gagal !!", "Terdapat Data yang Belum Dimasukkan");

} else{

String sql = "INSERT INTO data_Pertanyaan_Polling(kode_Pertanyaan, isi_Pertanyaan, pilihan_a,

pilihan_b, pilihan_c) VALUES(?,?,?,?,?)";

try{

java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, kode);

stat.setString(2, pertanyaan);

stat.setString(3, pilih_a);

stat.setString(4, pilih_b); stat.setString(5, pilih_c);

stat.executeUpdate();

tampilTabelDataPertanyaan();

cardTengah.show(jPanel13, "panelTabelPertanyaan");

cardTombol.show(jPanel3, "tombolPanelTabel");

} catch (java.sql.SQLException s){ SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan

Data Pertanyaan", s.getMessage());

}

} catch (Exception se){

SmitDev.SmsServer.Server.proses_Gagal("Gagal Menyimpan

Data Pertanyaan", se.getMessage()); }

}

}

Page 204: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

166 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{ this.dataKodePertanyaan.setText("");

this.dataIsiPertanyaanPolling.setText("");

this.dataPilihan_A.setText("");

this.dataPilihan_B.setText("");

this.dataPilihan_C.setText("");

this.cekHapusHasilPolling.setSelected(false);

this.cekHapusHasilPolling.setEnabled(false);

this.dataKodePertanyaan.setEnabled(true);

this.jButton6.setEnabled(false); this.jButton5.setEnabled(true);

cardTengah.show(jPanel13, "panelDataPertanyaan");

cardTombol.show(jPanel3, "tombolPanelData");

}

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {

dispose();

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)

{ dispose();

}

// Variables declaration - do not modify private javax.swing.JCheckBox cekHapusHasilPolling;

private javax.swing.JTextField dataIsiPertanyaanPolling;

private javax.swing.JTextField dataKodePertanyaan;

private javax.swing.JTextField dataPilihan_A;

private javax.swing.JTextField dataPilihan_B;

private javax.swing.JTextField dataPilihan_C; private javax.swing.JButton jButton1;

private javax.swing.JButton jButton10;

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.JButton jButton9;

private javax.swing.JLabel jLabel1;

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.JPanel jPanel1;

private javax.swing.JPanel jPanel10;

private javax.swing.JPanel jPanel11;

private javax.swing.JPanel jPanel12;

public javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14;

public javax.swing.JPanel jPanel15;

private javax.swing.JPanel jPanel16;

private javax.swing.JPanel jPanel17;

private javax.swing.JPanel jPanel18;

private javax.swing.JPanel jPanel19;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel20;

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;

// End of variables declaration

}

Coding Kirim SMS :

public class jendelaKirimSms extends javax.swing.JFrame {

java.sql.Connection koneksi = null;

/** Creates new form jendelaKirimSms */

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(); }

/** 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() {

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.WindowConstants.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.LEFT));

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.SmsServer.saring_karakter.setAllOnlyDigit());

dataNoTlp.setPreferredSize(new java.awt.Dimension(150, 22));

jPanel4.add(dataNoTlp);

jButton4.setText("Cari");

Page 205: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

167 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.RIGHT));

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(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));

jLabel1.setText("Kirim SMS"); jPanel2.add(jLabel1);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 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().getScreenSize();

setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300);

}

// </editor-fold>

private void dataIsiPesanFocusGained(java.awt.event.FocusEvent evt) { hitungSisaKarakter();

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

this.dataIsiPesan.setText(""); this.dataNoTlp.setText("");

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

String no_tlp = dataNoTlp.getText(); String pesan = dataIsiPesan.getText();

boolean status = new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(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.KeyEvent evt) {

hitungSisaKarakter();

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent 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.ActionEvent evt)

{ dispose();

}

Page 206: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

168 // Variables declaration - do not modify

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;

// End of variables declaration

}

Coding Konfigurasi Perangkat :

public class jendelaKonfigurasiPerangkat extends javax.swing.JFrame {

/** Creates new form jendelaKonfigurasiPerangkat */ 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);

}

/** 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() {

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.WindowConstants.DISPOSE_ON_

CLOSE);

setTitle("Konfigurasi Perangkat");

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.LEFT));

jPanel7.setBackground(new java.awt.Color(255, 255, 255));

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel2.setText("Merek Perangkat :");

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.LEFT));

jPanel8.setBackground(new java.awt.Color(255, 255, 255));

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Seri Perangkat :");

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.LEFT));

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.LEFT));

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(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel1.setText("Konfigurasi Perangkat");

jPanel2.add(jLabel1);

Page 207: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

169

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().getScreenSize();

setBounds((screenSize.width-300)/2, (screenSize.height-300)/2, 300, 300);

}

// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent 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

}

Coding SMS Keluar :

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;

/** Creates new form jendelaSmsKeluar */

public jendelaSmsKeluar(java.sql.Connection koneksi) { this.koneksi = koneksi;

initComponents();

tampilDataTabel();

}

/** 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() {

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.WindowConstants.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");

Page 208: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

170 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(102, 255, 255));

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); jLabel1.setText("Data SMS Keluar");

jPanel3.add(jLabel1);

getContentPane().add(jPanel3, java.awt.BorderLayout.NORTH);

jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

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().getScreenSize(); setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

}

// </editor-fold>

private void jButton3ActionPerformed(java.awt.event.ActionEvent 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.ActionEvent evt)

{ int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(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();

Page 209: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

171 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.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(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.ActionEvent evt)

{ dispose();

}

// 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

}

Coding SMS Masuk :

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;

/** Creates new form jendelaSmsMasuk */

public jendelaSmsMasuk(java.sql.Connection koneksi) {

this.koneksi = koneksi;

initComponents();

tampilDataTabel();

}

/** 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() {

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.WindowConstants.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);

Page 210: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

172 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(102, 255, 255)); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));

jLabel1.setText("Data SMS Masuk");

jPanel2.add(jLabel1);

getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);

jPanel3.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

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().getScreenSize();

setBounds((screenSize.width-550)/2, (screenSize.height-400)/2, 550,

400);

}

// </editor-fold>

private void jButton3ActionPerformed(java.awt.event.ActionEvent 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.ActionEvent evt)

{

dispose();

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(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.ActionEvent evt)

{ int xrow = this.jTable1.getSelectedRow();

if (xrow < 0) {

javax.swing.JOptionPane.showMessageDialog(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);

Page 211: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

173 }

}

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

}

Coding Pengaturan Terminal :

public class pengaturan_Terminal extends javax.swing.JDialog {

/** Creates new form pengaturan_Terminal */

public pengaturan_Terminal(boolean modal) {

super(new java.awt.Frame(), modal);

}

public pengaturan_Terminal() {

}

public void tampilanGUI(){

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() {

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.WindowConstants.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_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 1, 12)));

jPanel6.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

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.LEFT, 5, 0));

Page 212: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

174 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.LEFT));

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.LEFT, 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.LEFT));

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.LEFT, 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_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 1, 12)));

jPanel12.setLayout(new

java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

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.LEFT, 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.LEFT));

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));

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.LEFT, 5, 0));

jPanel15.setBackground(new java.awt.Color(255, 255, 255));

jLabel10.setHorizontalAlignment(javax.swing.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.LEFT));

jPanel17.setBackground(new java.awt.Color(255, 255, 255));

Page 213: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

175

jLabel11.setHorizontalAlignment(javax.swing.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.RIGHT, 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().getScreenSize();

setBounds((screenSize.width-400)/2, (screenSize.height-500)/2, 400,

500);

}

// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent 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().toString();

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.ActionEvent 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

}

Page 214: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

176

Coding Database Sms Server :

public class prosesDatabaseSmsServer {

java.sql.Connection koneksi;

/** Creates a new instance of prosesDatabaseSmsServer */

public prosesDatabaseSmsServer(java.sql.Connection 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 = ""; // 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);

}

public void prosesTabelMasuk(String id, String notlp, String pesan){ String kode_1_salah = null;

String kode_1_format = null;

String pesanSalahKode_1 = null;

String[] hasil;

updateStatusData(id, "OK");

java.util.StringTokenizer st = new java.util.StringTokenizer(pesan);

int i = 0;

String awal = ""; StringBuffer kode = new StringBuffer(200);

String kode1 = "";

String kode2 = "";

while (st.hasMoreTokens()) {

awal = st.nextToken(); i = i + 1;

}

if (i == 1) {

kode1 = awal.toUpperCase(); // Kode pertama

kode2 = "null";

kode.append("null"); } else {

java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(" ");

hasil = pattern.split(pesan.trim());

if (i == 3) {

kode1 = hasil[0].trim().toString().toUpperCase(); // Kode pertama

kode2 = hasil[1].trim().toString().toUpperCase(); // Kode kedua

String kod = hasil[2].toString().toUpperCase();

kode.append(kod);

} else {

kode1 = hasil[0].trim().toString().toUpperCase(); // Kode pertama

kode2 = hasil[1].trim().toString().toUpperCase(); // Kode kedua

for (int b = 2; b < i; b++) {

String kod = hasil[b].toString().toUpperCase();

kode.append(kod);

} }

}

String kode3 = kode.toString();

kode3 = kode3.replaceAll(" ", "");

System.out.println(notlp+" "+kode1+" "+kode2+" "+kode3);

if (kode1.equalsIgnoreCase("REQUEST")) {

new prosesSmsRequest(koneksi, notlp, kode2, kode3); } else if (kode1.equalsIgnoreCase("POLLING")) {

new prosesSmsPolling(koneksi, notlp, kode2, kode3);

} else{

kode_1_salah = "Kode1 yang Anda Masukkan Salah" + "\nkode : "

+ kode1 +

"\nTidak terdaftar"; kode_1_format =

"\nTerima Kasih\nSmitDev SMS Server";

pesanSalahKode_1 = kode_1_salah + kode_1_format;

inputDataTabelSmsKeluar(notlp, pesanSalahKode_1);

} // Akhir else

}

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_PESAN_KELUAR,STA

TUS_KELUAR,TANGGAL_KELUAR, JAM_KELUAR) Values (?,?,?,?,?)");

try {

pStatement.setString(1, notlp);

pStatement.setString(2, pesan);

pStatement.setString(3, "WAIT");

Page 215: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

177 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) {}

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_PESAN_MASUK,STATU

S_MASUK,TANGGAL_MASUK, 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) {}

}

}

Coding SMS Polling ke Database :

public class prosesSmsPolling {

java.sql.Connection koneksi; /** Creates a new instance of prosesSmsPolling */

public prosesSmsPolling(java.sql.Connection koneksi, String notlp,

String kode2, String kode3) {

this.koneksi = koneksi;

prosesSimpanDataPolling(notlp, kode2, kode3);

}

private void prosesSimpanDataPolling(String notlp, String kode2, String

kode3){

String sql = "INSERT INTO data_hasil_Polling(kode_Pertanyaan,

pilihan, no_telepon_pengirim) VALUES(?,?,?)";

try{ java.sql.PreparedStatement stat = koneksi.prepareStatement(sql);

try{

stat.setString(1, kode2);

stat.setString(2, kode3);

stat.setString(3, notlp);

stat.executeUpdate();

} catch (java.sql.SQLException s){

System.out.println(s.getMessage());

} } catch (Exception se){

System.out.println(se.getMessage());

}

}

}

Coding SMS Request Ke Database :

public class prosesSmsRequest {

java.sql.Connection koneksi;

/** Creates a new instance of prosesSmsRequest */

Page 216: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

178 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("BIAYA")) { 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 BIAYA <IdPelang>";

String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(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 BIAYA. \nFORMAT SMS adalah REQUEST DATA <ID> atau

REQUEST PAJAK <ID>"; String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(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 BIAYA <IdPelang>";

String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(notlp,

pesanSalahKode_1);

} else {

String sql = "SELECT * FROM data_mahasiswa WHERE nim = '"+kode3+"'";

try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){

String nama = rSet.getString("nama_mahasiswa"); String alamat = rSet.getString("dosen_pa");

String daya = rSet.getString("dosen_pkl");

String dataPesan = "NIM : "+kode3+"\nNama :

"+nama+"\nDosen PA : "+alamat+"\nDosen PKL : "+daya;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(notlp,

dataPesan);

status_cari = true;

} if(!status_cari){

String kode_1_salah = "Data Mahasiswa dengan NIM :

"+kode3+"\nTidak Ditemukan.";

String kode_1_format =

"\nKetik REQUEST DATA <IdPelang> atau REQUEST

BIAYA <IdPelang>"; String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(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(Integer.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 BIAYA <IdPelang>"; String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(notlp,

pesanSalahKode_1);

} else {

String sql = "SELECT * FROM biaya_semester WHERE kode = '"+kode+"'";

try{

java.sql.Statement stat = koneksi.createStatement();

java.sql.ResultSet rSet = stat.executeQuery(sql);

while(rSet.next()){ String beban = rSet.getString("spp");

String pakai = rSet.getString("dop");

String terlambat = rSet.getString("dkm");

String lain = rSet.getString("dp");

String jml = rSet.getString("jumlah");

String ppj = rSet.getString("pajak"); String total_bayar = rSet.getString("total_pembayaran");

String dataPesan =

kode3+"\nBulan:"+namaBulan+tahun+"\nSPP:"+beban+"\nDOP:"+pakai+

"\nDKM:"+terlambat+"\nDP+DM:"+lain+"\nJml:"+jml+"\nPajak:"+ppj+"\

n\nTotalPajak:"+total_bayar;

new prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(notlp,

dataPesan);

status_cari = true;

}

if(!status_cari){

String kode_1_salah = "Data Biaya Semester Dengan NIM :

"+kode3+"\nTidak Ditemukan.";

String kode_1_format =

"\nFORMAT SMS adalah REQUEST DATA <IdPelang> atau REQUEST BIAYA <IdPelang>";

String pesanSalahKode_1 = kode_1_salah + kode_1_format;

new

prosesDatabaseSmsServer(koneksi).inputDataTabelSmsKeluar(notlp,

pesanSalahKode_1);

} } catch(Exception e){}

}

}

}

Page 217: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

179

Lampiran C

Membuat database menggunakan MySQL :

1. Aktivkan MySQL lalu tekan tombol enter :

2. ketik perintah (show databases;) lalu akan ada tampilan seperti ini :

3. lalu pilih (use sms), lalu ketik (show tables;) maka akan ada tampilan seperti ini :

4. berikut adalah coding MySQL untuk membuat database :

a. Database sms masuk :

CREATE TABLE SMS_MASUK (id_masuk int(11) NOT NULL auto_increment,

no_telepon_masuk varchar(100) NOT NULL default ‘’ , tanggal_masuk varchar(100)

NOT NULL default ‘’, jam_masuk varchar(100) NOT NULL default ‘’,

Page 218: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

180

isi_pesan_masuk varchar(160) NOT NULL default ‘’, status_masuk varchar(100)

NOT NULL default ‘’, PRIMARY KEY (id_masuk)) ENGINE=MyISAM

DEFAULT CHARSET=latin1;

b. Database sms keluar :

CREATE TABLE SMS_KELUAR (id_keluar int(11) NOT NULL auto_increment,

no_telepon_keluar varchar(100) NOT NULL default ‘’ , tanggal_keluar varchar(100)

NOT NULL default ‘’, jam_keluar varchar(100) NOT NULL default ‘’,

isi_pesan_keluar varchar(160) NOT NULL default ‘’, status_keluar varchar(100)

NOT NULL default ‘’, PRIMARY KEY (id_keluar)) ENGINE=MyISAM

DEFAULT CHARSET=latin1;

c. Database Data Buku Telepon :

CREATE TABLE DATA_BUKU_TELEPON (nomor_telepon varchar(25) NOT

NULL default ‘’, nama_kontak varchar(150) NOT NULL default ‘’, alamat

varchar(250) NOT NULL default ‘’, PRIMARY KEY (no_telepon))

ENGINE=MyISAM DEFAULT CHARSET=latin1;

d. Database Data Mahasiswa:

CREATE TABLE DATA_MAHASISWA (nim varchar(100) NOT NULL default ‘’,

nama_mahasiswa varchar(100) NOT NULL default ‘’, dosen_pa varchar(100) NOT

NULL default ‘’, dosen_pkl varchar(100) NOT NULL default ‘’, PRIMARY KEY

(nim)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

e. Database Biaya Semester :

CREATE TABLE BIAYA_SEMESTER (kode varchar(100) NOT NULL default ‘’,

nim varchar(100) NOT NULL default ‘’ , spp varchar(100) NOT NULL default ‘’,

dop varchar(100) NOT NULL default ‘’, dkm varchar(100) NOT NULL default ‘’, dp

varchar(10) NOT NULL default ‘’, jumlah varchar(100) NOT NULL default ‘’ ,

pajak varchar(100) NOT NULL default ‘’, total_pembayaran varchar(100) NOT

NULL default ‘’, bulan_pembayaran varchar(100) NOT NULL default ‘’, PRIMARY

KEY (kode)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

f. Database Data Hasil Polling :

CREATE TABLE DATA_HASIL_POLLING (no_urut int(11) NOT NULL

auto_increment, kode_pertanyaan varchar(100) NOT NULL default ‘’, pilihan

varchar(100) NOT NULL default ‘’, no_telepon_pengimrim varchar(100) NOT

NULL default ‘’, PRIMARY KEY (no_urut)) ENGINE=MyISAM DEFAULT

CHARSET=latin1;

g. Database Pertanyaan Polling :

CREATE TABLE DATA_PERTANYAAN_POLLING (kode_pertanyaan

varchar(100) NOT NULL default ‘’, isi_pertanyaan varchar(100) NOT NULL default

‘’, pilihan_a varchar(100) NOT NULL default ‘’, pilihan_b varchar(100) NOT NULL

default ‘’, pilihan_c varchar(100) NOT NULL default ‘’, PRIMARY KEY (nim))

ENGINE=MyISAM DEFAULT CHARSET=latin1;

Page 219: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

iii

LEMBAR PENGESAHAN UJIAN

Skripsi berjudul “Pembuatan Aplikasi Penyebaran Informasi Berbasis Short

Message Service (SMS) di Lingkungan Program Studi Teknik Informatika” yang

ditulis oleh RUSDIANTORO, NIM 104091002846 telah diuji dan dinyatakan lulus

dalam siding Munaqosyah Fakultas Sains dan Teknologi Universitas Islam Negeri

Syarif Hidayatullah Jakarta pada tanggal 19 Mei 2010. Skripsi ini telah diterima

sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) Program

Studi Teknik Informatika.

Menyetujui :

Penguji 1 Penguji II

Husni Teja Sukmana, Phd Viva Arifin, MMSI

NIP : 19771030 200112 1 003 NIP : 19730810 200604 2 001

Pembimbing 1 Pembimbing II

Yusuf Durrachman, M.Sc, MIT Zulfiandri, MMSI

NIP : 19710522 200604 1 002 NIP : 19700130 200501 1 003

Mengetahui :

Dekan Fakultas Sains san Teknologi Ketua Program Studi Teknik Informatika

DR. Syopiansyah Jaya Putra, M.Sis Yusuf Durrachman, M.Sc, MIT

NIP : 19680117 200112 1 001 NIP : 19710522 200604 1 002

Page 220: PEMBUATAN APLIKASI PENYEBARAN INFORMASI …repository.uinjkt.ac.id/dspace/bitstream/123456789/21162/1/... · dalam pembuatan aplikasi ini penulis menggunakan bahasa pemrograman java

v

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR

HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI

SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU

LEMBAGA MANAPUN.

Jakarta. Juni 2010

Rusdiantoro

104091002846