i
Skripsi
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Disusun oleh :
Bergas Prakoso Wiharto
035314003
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
ii
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik
Degree
In Department of Informatics Engineering
Created by:
Bergas Prakoso Wiharto
NIM : 035314003
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SAINS AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
vi
Karya ilmiah ini ku persembahkan untuk :
Allah SWT atas berkah dan karuniaNya
Ibuku dengan cinta dan pengorbanannya, serta Bapakku
Adik, Kakak, dan Keponakanku atas semangat yang kalian berikan
Seseorang yang akan menjadi pendampingku kelak
Almamaterku Teknik Informatika Universitas Sanata Dharma
vii
Tiada yang indah tanpa perih tertatah.
Jangan pernah menunda-nunda pekerjaan.
Malam akan semakin kelam, namun pastilah cahaya fajar kan
datang menjelang.
Ing Ngarsa sung tuladha, Ing madya mangun karsa,
Tut wuri handayani.
viii
yang hampir selalu digunakan oleh banyak orang pada umumnya. Hal ini terjadi
karena layanan ini memiliki beberapa kelebihan. Sebaliknya, layanan ini juga
memiliki kelemahan yaitu kapasitas penyimpanan pesan-pesan di dalam
handphone
yang terbatas.
Tugas Akhir ini bertujuan untuk membangun sebuah aplikasi SMS
manager
yang diharapkan dapat mengatasi kelemahan seperti yang telah
disebutkan di atas. Teknologi yang digunakan adalah Java untuk pemrograman
aplikasinya dan MySQL untuk pemrograman
database-nya, sedangkan teknologi
AT COMMAND digunakan untuk proses komunikasi antara komputer dengan
handphone. Dalam proses komunikasi tersebut, agar port serial yang ada pada
komputer dapat dikenal oleh Java (Java Communication Port), dibutuhkan library
tambahan yaitu javaxx.comm.properties.
ix
many people in generally. This happened because of this service has several
excess. On the other side, this service also has the weakness, like limited storage
of capacity for messages.
The purpose of the final assignment is to build SMS manager applications
that are expected to overcome the limited storage capacity on the mobile phone
short message service, using Java Technology and MySQL database programming
language. AT COMMAND technology used for the communication between
computer and mobile phone. In the process of this communication, library
javaxx.comm.properties is required for supporting Java to recognize port serial in
computer.
xi
karuniaNya sehingga penulis dapat menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah
memberikan bentuan dan perhatian dengan caranya masing-masing. Oleh karena
itu saya mengucapkan terima kasih diantaranya kepada :
1. Bapak JB Budi Darmawan, S.T., M.Sc. selaku dosen pembimbing tugas
akhir yang telah banyak memberikan bimbingan dalam penyusunan tugas
akhir ini.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T dan Bapak Iwan Binanto,
S.Si., M.Cs. selaku panitia penguji yang telah memberikan banyak kritik
dan saran guna sempurnanya tugas akhir ini.
3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku dosen pembimbing
akademik angkatan 2003.
4. Bapak Emanuel Belle Bau, SPd. dan Yustinus Nugroho sebagai laboran
yang telah membantu dalam mempersiapkan ujian pendadaran.
5. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang
telah memberikan bekal ilmu dan arahan selama penulis menempuh studi.
6. Seluruh staff Sekretariat Fakultas Sains dan Teknologi.
7. Ibu penulis yang telah memberikan cinta, doa, semangat, perhatian dan
pengorbanannya, juga bapak penulis yang membiayai sehingga penulis
xii
10. Giyanto, Ganjar, Jiwo, Anang, Roland, Suryo, Devita, Evi, untuk
semangat, dukungan, serta kebersamaanya.
11. Wiwid, Ria, Abdul Rosyid, dan Santhos, serta Candra untuk segala
bantuan, kebersamaan, semangat, dan dukungan yang teramat tulus.
12. Dian, Hendrik, Winda, Junaedi, Pamako, Ruth, Hendro, Tika, Ones,
Oscar, Albert Kurnia, Ari, Dani, Galih, Evivania, Heri, untuk segala
kebersamaan dan bantuannya.
13. Semua teman-teman Jurusan Teknik Informatika angkatan 2003.
14. Semua pihak yang telah membantu penulisan baik secara langsung
maupun tidak langsung, yang tidak dapat penulis sebutkan satu persatu.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu kritik dan saran untuk perbaikan tugas akhir ini sangat
saya harapkan. Akhir kata semoga tugas akhir ini bermanfaat bagi semua pihak.
Yogyakarta, Juli 2009
Penulis
xiii
HALAMAN PERSETUJUAN
iii
HALAMAN PENGESAHAN
iv
PERNYATAAN KEASLIAN KARYA
v
HALAMAN PERSEMBAHAN
vi
HALAMAN MOTTO
vii
ABSTRAKSI
viii
ABSTRACT
ix
PERNYATAAN PUBLIKASI KARYA
x
KATA PENGANTAR
xi
DAFTAR ISI
xiii
DAFTAR GAMBAR
xviii
DAFTAR TABEL
xx
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah
1
1.2
Rumusan Masalah
2
1.3
Batasan Masalah
2
1.4
Tujuan dan Manfaat Penulisan
3
1.5
Metodologi Penelitian
4
1.6
Sistematika Penulisan
5
xiv
2.1.2.1
Service Center Address (SCA)
8
2.1.2.2
PDU Type
8
2.1.2.3
Message Reference (MR)
8
2.1.2.4
Destination Address (DA)
9
2.1.2.5
Protocol Identifier (PID)
9
2.1.2.6
Data Coding Scheme (DCS)
9
2.1.2.7
Validity Period (VP)
10
2.1.2.8
User Data Length (UDL)
10
2.1.2.9
User Data (UD)
10
2.1.3
SMS PDU Penerima (Terminated)
10
2.1.3.1
Service Center Address (SCA)
11
2.1.3.2
PDU Type
11
2.1.3.3
Originator Address (OA)
11
2.1.3.4
Protocol Identifier (PID)
12
2.1.3.5
Data Coding Scheme (DCS)
12
2.1.3.6
Service Center Time Stamp (SCTS)
12
2.1.3.7
User Data Length (UDL)
12
2.1.3.8
User Data (UD)
13
2.2 Bahasa Pemrograman Java
13
xv
2.3.2
UML (
Unified Modelling Language
)
18
2.4 MySQL
21
2.5 AT Command
23
BAB III ANALISIS SISTEM DAN PERANCANGAN SISTEM
3.1 Analisis sistem
25
3.1.1
Gambaran umum sistem lama
25
3.1.2
Gambaran umum sistem baru
25
3.1.3
Aktor yang terlibat dalam sistem
27
3.1.4
Use Case Diagram
28
3.1.5
Class Diagram
29
3.2 Desain Sistem
30
3.2.1
Sequence Diagram
30
3.2.1.1
Proses Tampilkan Nomor Perangkat Terkoneksi
30
3.2.1.2
Proses Menampilkan SMS Inbox Handphone
31
3.2.1.3
Proses Menyimpan SMS Pada Database
32
3.2.1.4
Proses Menghapus SMS Pada Database
33
3.2.1.5
Proses Menampilkan SMS Dari Database
34
3.2.1.6
Proses Mengirim SMS dari Aplikasi
35
3.2.1.7
Proses Menampilkan Phonebook Handphone
36
xvi
3.2.1.12 Proses Menghapus SMS pada Handphone
41
3.3 Perancangan Database dan User Interface
42
3.3.1
Desain Database
42
3.3.1.1
Tabel SMS
42
3.3.1.2
Tabel Phonebook
42
3.3.1.3
Tabel Grup
43
3.3.1.4
Tabel Anggota Grup
43
3.3.2
Desain User Interface
44
3.3.2.1
Form Koneksi
44
3.3.2.2
Panel SMS Handphone
45
3.3.2.3
Panel Phonebook Handphone
46
3.3.2.4
Form Kirim SMS
47
3.3.2.5
Panel Daftar Grup dan Anggota Grup
48
3.3.2.6
Panel SMS Database
49
B
B
A
A
B
B
I
I
V
V
I
I
M
M
P
P
L
L
E
E
M
M
E
E
N
N
T
T
A
A
S
S
I
I
S
S
I
I
S
S
T
T
E
E
M
M
4.1
Karakteristik Sistem
50
4.2
Perangkat Lunak dan Perangkat Keras yang Digunakan
dalam Pembuatan Aplikasi
50
4.2.1 Perangkat Lunak Yang Digunakan
50
xvii
4.5.1 Form SMS Manager
53
4.5.2 Form Koneksi
56
4.5.3 Form Kirim SMS
61
4.5.4 Panel Phonebook Perangkat Terkoneksi
64
4.5.5 Panel SMS
68
4.5.6 Panel Sms Tersimpan pada Database
69
4.6
Implementasi Penerimaan dan Pengiriman SMS pada Aplikasi
70
4.6.1 Membalik Karakter Pada Format PDU
70
4.6.2 Mengubah Nilai dari Desimal Menjadi Heksadesimal
71
4.6.3 Mengubah Format 8 Bit Menjadi 7 Bit
73
4.6.4 Mengubah Format 7 Bit Menjadi 8 Bit
75
4.6.5 Mengubah Format Pesan PDU Menjadi Format Teks
76
4.6.6 Mengubah Format Pesan Teks Menjadi Format PDU
81
BAB V ANALISIS HASIL
5.1
Hasil Pengujian Sistem
84
5.2
Kelebihan dan Kekurangan Aplikasi
85
BAB VI KESIMPULAN DAN SARAN
6.1
Kesimpulan
87
6.2
Saran
87
xviii
Gambar 2.2 Skema Format SMS PDU Pengirim
8
Gambar 2.3 Skema Format SMS PDU Penerima
11
Gambar 2.4 Simbol Entity Object
17
Gambar 2.5 Simbol Interface Object
18
Gambar 2.6 Simbol Control Object
18
Gambar 2.7 Simbol Use Case
19
Gambar 2.8 Simbol Actor
20
Gambar 2.9 Simbol Association
20
Gambar 3.1 Gambaran Sistem
26
Gambar 3.2 Use Case Diagram Sistem Aplikasi SMS Manager
28
Gambar 3.3 Class Diagram
29
xix
Gambar 3.16 Form Koneksi
44
Gambar 3.17 Panel SMS Handphone
45
Gambar 3.18 Panel Phonebook Handphone
46
Gambar 3.19 Form Kirim SMS
47
Gambar 3.20 Panel Daftar Grup dan Anggota Grup
48
Gambar 3.21 Panel SMS Database
49
Gambar 4.1 Form SMS Manager
54
Gambar 4.2 Form SMS Manager Submenu Menu
55
Gambar 4.3 Form SMS Manager Tab Menu SMS
56
Gambar 4.4 Form SMS Manager Tab Menu Phonebook
56
Gambar 4.5 Form Koneksi
57
Gambar 4.6 Form Kirim SMS
62
Gambar 4.7 Panel PhonebookPerangkat Terkoneksi
65
Gambar 4.8 Panel SMS / Pesan Terbaca Dari Handphone
69
xx
Tabel 2.2 Tabel AT Command yang Digunakan
24
Tabel 3.1 Tabel SMS
37
Tabel 3.2 Tabel Phonebook
37
Tabel 3.3 Tabel Grup
38
Tabel 3.4 Tabel Anggota Grup
38
Tabel 4.1 Tabel Nilai Parameter Koneksi ke Terminal
58
1
1.1 Latar Belakang Masalah
Salah satu layanan yang ada pada
handphone
adalah SMS (
Short
Message Service
). SMS menjadi sebuah layanan yang hampir selalu
digunakan untuk mengirim pesan secara singkat oleh banyak orang pada
umumnya. Hal ini terjadi karena media ini mudah dalam penggunaanya,
dapat langsung dikirim dan terkirim menuju tujuan saat itu juga (apabila
tidak terjadi gangguan pada jaringan yang digunakan), serta membutuhkan
biaya yang relatif terjangkau. Pesan-pesan yang dikirim atau yang diterima
dapat berupa pesan biasa, maupun pesan yang penting. Ketika pesan tersebut
dirasa penting maka pesan tersebut akan disimpan di dalam memori
penyimpanan. Dalam kurun waktu tertentu, ketika pesan-pesan tersebut
semakin banyak yang disimpan, maka dapat mengakibatkan penuhnya
memori penyimpanan dari
inbox sms
handphone
yang kapasitas
penyimpanannya terbatas.
Saat kapasitas penyimpanan dalam kondisi penuh, pesan baru tidak
dapat masuk (
pending
) karena menunggu adanya tempat kosong di dalam
tempat penyimpanan. Hal ini dapat merugikan penerima maupun pengirim
pesan apabila pesan tersebut adalah pesan yang sangat penting. Dengan
melihat permasalahan yang ada tersebut, maka di dalam penulisan Tugas
1.2
Rumusan Masalah
Dari latar belakang masalah yang telah disebutkan sebelumnya, maka
dapat dirumuskan masalah yaitu “bagaimana memanfaatkan komputer
menjadi sebuah tempat pengaturan dan media penyimpanan, atau
database
dari data-data SMS, dengan menggunakan bahasa pemrograman Java dan
pemrograman
database
MySQL ?”.
1.3
Batasan Masalah
Batasan-batasan dalam penulisan Tugas Akhir ini adalah :
1. Aplikasi yang dibuat mempunyai arsitektur
Stand Alone
, tidak
berbentuk
Client Server
.
2. Pengaturan data-data berupa SMS di dalam Java, dibatasi hanya
menggunakan format perintah
AT Command
(perintah yang
bertugas membaca atau melakukan operasi pada
handphone
dari
serial port
), tidak menggunakan format perintah yang berupa
text
mode
.
3. Aplikasi yang dibuat hanya menangani pengaturan SMS seperti
menampilkan, menyimpan, dan menghapus SMS pada komputer
(
personal computer
), serta mengirim sms dari komputer dengan
jumlah karakter maksimal sebanyak 160.
4. Aplikasi yang dibuat hanya digunakan untuk menampilkan pesan
5. Aplikasi ini tidak menangani terjadinya
error
dalam pengiriman
dan pembacaan pesan apabila masalah tersebut disebabkan
karena
traffic
jaringan dari
provider
atau operator jaringan GSM
(
Global System for Mobile Communication
) sedang mengalami
gangguan.
6. Di dalam aplikasi yang akan dibuat, anggota grup dari
grup
dibatasi hanya dari
phonebook
yang ada pada
handphone
yang
sedang terhubung dengan komputer.
7. Aplikasi tidak merubah data yang ada pada
phonebook
handphone
.
8. Aplikasi tidak menangani pembacaan
delivery report
SMS
(laporan SMS terkirim dari operator seluler).
1.4
Tujuan dan Manfaat Penelitian
Penelitian ini bertujuan untuk membangun sebuah aplikasi SMS
1.5
Metodologi Penelitian
1. Studi Pustaka
Penulis mencari literatur tentang bagaimana membangun sebuah
aplikasi SMS
manager
menggunakan bahasa pemrograman Java dan
database
MySQL
2. Pengembangan perangkat lunak dengan metode pengembangan
perangkat lunak berorientasi obyek (Whitten, 2004), dengan
langkah-langkah sebagai berikut:
a. Analisis dan Desain Sistem Berorientasi Obyek, dengan
langkah-langkah sebagai berikut :
1. Pembuatan
Use Case Diagram
,
Class Diagram
, dan
Sequence
Diagram
.
2. Perancangan
database.
3. Perancangan
user interface.
b. Implementasi.
1.6
Sistematika Penulisan
Sistematika penulisan adalah sebagai berikut :
BAB I
PENDAHULUAN
Bab ini menjelaskan tentang latar belakang masalah,
rumusan masalah, tujuan dan manfaat penelitian, batasan
masalah, metodologi penulisan, dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisikan landasan teori yang digunakan sebagai
dasar dalam perancangan tugas ahkir.
BAB III ANALISIS dan PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan desain sistem yang akan
dibuat.
BAB IV IMPLEMENTASI SISTEM
Bab ini menjelaskan tentang implementasi ke dalam bentuk
program berdasarkan desain yang telah dibuat.
BAB V ANALISIS HASIL IMPLEMENTASI
Bab ini menjelaskan tentang sistem yang telah dibuat
seperti kelebihan dan kekurangan sistem dari percobaan
yang dilakukan.
BAB VI KESIMPULAN dan SARAN
Bab ini berisikan kesimpulan yang dapat diambil dari
penelitian yang telah dilakukan dan saran-saran untuk
6
2.1 Sistem Kerja SMS (Short Message Service)
2.1.1
Cara Kerja SMS (Short Message Service)
SMS merupakan salah satu fitur dari GSM (Global System for
Mobile Communication) yang dikembangkan dan distandarisasi oleh
ETSI (European Telecommunications Standards Institute). Pada saat
kita mengirim pesan berupa SMS dari
handphone, pesan tersebut
tidak langsung dikirim ke
handphone
tujuan, melainkan terlebih
dahulu dikirim ke SMS
Center
(SMSC) dengan prinsip
Store and
Forward, setelah itu baru dikirimkan ke handphone
yang dituju.
Dengan adanya SMSC, status dari pesan yang kita kirim
(terkirim atau gagal terkirim) dapat kita ketahui. SMSC akan
memberikan pesan kepada pengirim setelah pesan yang kita kirim
diterima oleh
handphone
tujuan, begitu pula apabila
handphone
tujuan dalam keadaan tidak aktif maupun diluar jangkauan, sehingga
pesan yang kita kirim tidak dapat sampai, maka pesan tersebut akan
disimpan pada SMSC hingga periode validitas tidak terpenuhi.
tujuan gagal (Tim Penelitian dan Pengembangan Wahana Komputer,
2005).
Proses pengiriman SMS dapat dilihat pada gambar 2.1 di
bawah ini :
Gambar 2.1: Skema Cara Kerja SMS
2.1.2
SMS PDU Pengirim (Originated)
2.1.2.1
Service Center Address (SCA)
Adalah informasi tentang alamat (nomor) SMSC.
SCA memiliki 3 komponen utama, yaitu
len,
type of
number, dan
service center
number. Dalam pengiriman
pesan SMS, nomor SMSC tidak dicantumkan (Tim
Penelitian dan Pengembangan Wahana Komputer, 2005).
2.1.2.2
PDU Type
Nilai default dari PDU
Type
untuk SMS pengirim
adalah 11 hexa, yang memiliki arti bahwa 11 hexa =
00010001 (Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
2.1.2.3
Message Reference (MR)
Adalah acuan dari pengaturan pesan SMS. Untuk
memberikan keleluasaan pengaturan pesan SMS agar dapat
diatur sendiri oleh
handphone
tujuan, maka nilai yang
diberikan adalah “00”. Sehingga hasil pada
Message
Reference
adalah 00 (Tim Penelitian dan Pengembangan
Wahana Komputer, 2005).
Gambar 2.2 Skema Format SMS PDU Pengirim
SCA
PDU
Type
2.1.2.4
Destination Address (DA)
Adalah alamat (nomor) tujuan yang terdiri atas
panjangnya nomor tujuan (Len), format dari nomor tujuan
(Type Number), dan nomor tujuan (Destination Number)
(Tim Penelitian dan Pengembangan Wahana Komputer,
2005).
2.1.2.5
Protocol Identifier (PID)
Adalah tipe atau format dari cara pengiriman pesan
yang biasanya diatur dari handphone
pengirim. Misalnya
tipe Standard Text, Fax, E-mail, Telex, X400, dan
lain-lainnya. Nilai default dari PID adalah 00, yang artinya
adalah Standard Text. Pada contoh di atas pesan yang
dikirim berupa teks standar, maka PID-nya adalah 00 (Tim
Penelitian dan Pengembangan Wahana Komputer, 2005).
2.1.2.6
Data Coding Scheme (DCS)
2.1.2.7
Validity Period (VP)
Adalah lama waktu pesan SMS disimpan di SMSC
apabila pesan tersebut gagal diterima oleh
handphone
penerima (Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
2.1.2.8
User Data Length (UDL)
Adalah panjangnya pesan
SMS
yang akan dikirim
dalam bentuk teks standar. Pada contoh di atas pesan SMS
yang dikirim adalah “Pesan pendek”, yang memiliki 12
karakter (0C h). Sehingga pada UDL hasilnya adalah 0C
(Tim Penelitian dan Pengembangan Wahana Komputer,
2005).
2.1.2.9
User Data (UD)
Adalah isi pesan yang akan dikirim dalam format
heksadesimal (Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
2.1.3
SMS PDU Penerima (Terminated)
2005). Format PDU dari
SMS
yang diterima adalah aeperti terlihat
pada gambar 2.3 berikut :
2.1.3.1
Service Center Address (SCA)
Adalah alamat (nomor) dari SMSC. Memiliki tiga
komponen utama yaitu
len,
type off number, dan
service
center
(Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
2.1.3.2
PDU Type
Nilai default dari PDU
Type
untuk SMS-Deliver
adalah 04
hexa, yang artinya, 04
hexa
= 00000100 (Tim
Penelitian dan Pengembangan Wahana Komputer, 2005).
2.1.3.3
Originator Address (OA)
Adalah alamat (nomor) dari pengirim yang terdiri dari
panjangnya nomor pengirim (Len), format dari nomor
pengirim (Type Number), dan nomor pengirim (Originator
Number) (Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
SCA PDU Type OA PID DCS SCTS UDL UD
2.1.3.4
Protocol Identifier (PID)
Adalah tipe atau format dari cara pengiriman pesan,
biasanya diatur oleh
handphone
pengirim. Misalnya tipe
Standard Text, Fax, E-mail,
dan lain-lain. Nilai default-nya
adalah
00
(Standard Text)
(Tim Penelitian
dan
Pengembangan Wahana Komputer, 2005).
2.1.3.5
Data Coding Scheme (DCS)
Adalah rencana dari pengkodean data untuk
menentukan kelas dari pesan tersebut apakah berupa SMS
teks standar,
Flash
SMS, atau
Blinking SMS
(Tim
Penelitian dan Pengembangan Wahana Komputer, 2005).
2.1.3.6
Service Center Time Stamp (SCTS)
Adalah waktu penerimaan pesan oleh SMSC
penerima. SCTS terdiri dari tahun, bulan, tanggal, jam,
menit, detik, dan zona waktu (Tim Penelitian dan
Pengembangan Wahana Komputer, 2005).
2.1.3.7
User Data Length (UDL)
2.1.3.8
User Data (UD)
Adalah
pesan
yang
diterima
dalam
bentuk
heksadesimal (Tim Penelitian dan Pengembangan Wahana
Komputer, 2005).
2.2 Bahasa Pemrograman Java
Java
adalah
bahasa
pemrograman
berorientasi
obyek
yang
dikembangkan oleh Sun Microsystems pada Agustus 1991. Sebagai bahasa
pemrograman yang berorientasi obyek, Java menggunakan kelas untuk
membentuk suatu obyek.
Java dapat digunakan untuk membuat program dengan menggunakan
bahasa seperti Pascal
atau C++.
Selain itu Java juga mendukung World Wide
Web
(Web), serta aplikasi
client/server. Program Java dapat dibedakan
menjadi dua jenis, yaitu
applet
dan aplikasi.
Applet
adalah program yang
dibuat dengan Java, dapat diletakkan pada web server dan diakses melalui web
(seperti
Netscape Navigator,
Internet Explorer, dan
HotJava). Sedangkan
aplikasi adalah program yang dibuat dengan Java yang bersifat umum.
Aplikasi dapat dijalankan secara langsung, tidak memerlukan perangkat lunak
browser untuk menjalankannya. Setelah dilakukan kompilasi maka program
Kompiler Java
bernama
Javac.
Progam ini
berfungsi
untuk
mengkompilasi berkas sumber kode Java dalam bentuk yang dapat
dimengerti oleh interpreter
Java. Hasil kompilasi berupa berkas bytecode.
Dalam hal ini akhiran yang dugunakan berupa .clas
2.
Interpreter
Java
Interpreter Java digunakan untuk mengeksekusi berkas bytecode (.class
).
3.
Debugger
Java
Debugger
jdb
berfungsi seperti
interpreter
tetapi dilengkapi dengan
kemampuan khusus seperti menghentikan eksekusi progam pada posisi
yang dihendaki oleh pemrogram dan menampilkan nilai variabel-variabel
tertentu. Progam ini berguna untuk melacak kesalahan progam.
4. Penampil Applet
Penampil apllet
(aplletviewer) berguna untuk menampilkan applet.
5. Pembangkit Dokumentasi
Pembangkit dokumentasi (Javadoc) berguna untuk mengkonversi berkas
kode Java dalam berkas HTML (Hypertext Markup Language).
6. Pembangkit Header
C
Perangkat lunak Java digunakan untuk mengahasilkan
header
C dan
berkas kode sumber C berdasarkan berkas bytecode
Java.
komputer dan akan dijalankan pada
platform
menggunakan
Java Virtual
Machine
(JVM) yang disebut juga dengah
bytecodes interpreter
atau Java
runtime interpreter
(Abdul Kadir, 2004).
Java memiliki beberapa keunggulan (Abdul Kadir, 2004), diantaranya :
1. Berorientasi pada obyek (Object Oriented)
Dalam memecahkan masalah, Java membagi program menjadi
obyek-obyek, kemudian memodelkan sifat dan tingkah laku masing-masing.
Selanjutnya, Java menentukan dan mengatur interaksi antara obyek yang
satu dengan yang lain.
2. Bersifat terdistribusi
3. Bersifat Multiplatform
Java dapat diterjemahkan oleh Java
Interpreter
pada berbagai sistem
operasi. Tidak tergantungnya Java terhadap
platform
sering dinyatakan
dengan istilah portabilitas. Tingkat portabilitas Java tidak hanya sebatas
pada program sumber
(source code), melainkan juga pada tingkat kode
biner yang disebut
bytecode
yang bisa dijalankan pada berbagai sistem
operasi karena kode ini berbeda dengan kode mesin (Abdul Kadir, 2004).
Contoh Penulisan Script
Java:
public class Latihan {
public static void main(String [ ] args { system.out.println(“Belajar Java “);}}
Hasil Progam :
Belajar Java
2.3 Pengembangan Perangkat Lunak Berorientasi Obyek
2.3.1 Konsep Obyek
Pendekatan berorientasi obyek pada pengembangan sistem
didasarkan pada konsep tentang obyek yang telah ada pada sebuah
lingkungan sistem.
Obyek sendiri dapat diartikan sesuatu yang dapat dilihat,
disentuh atau dirasakan, dan user menyimpan data serta mencatat
perilaku mengenai sesuatu itu (Whitten,2004).
2.3.1.1
Object Oriented Analysis
(OOA)
Sebuah teknik model driven
yang mengintegrasikan data
dan proses ke dalam konstruksi yang disebut obyek. Model ini
berisikan gambar-gambar yang mengintruksikan obyek-obyek
sistem dari berbagai macam perspektif, seperti struktur,
behavior, dan interaksi obyek.
2.3.1.2
Object Oriented Design (OOD)
Pendekatan yang digunakan untuk menentukan solusi
perangkat lunak dalam hal menggabungkan obyek,
attribute,
dan metodenya.
Pada
Object Oriented Design
(OOD) ini dibagi menjadi
tiga obyek yaitu:
1.
Entity Object
disimpan pada sebuah
database.
Entity object
memuat
informasi tentang tentang obyek tersebut yang disebut
attribute. Entity object
bersifat menetap atau
persisten
yang dapat diartikan bahwa obyek tersebut “aktif/hidup”
setelah mengeksekusi sebuah progam dan disimpan dalam
database (Whitten,2004).
Hal ini dapat dilihat pada gambar
2.4
Simbol Entity Object
:
: Objec t En tit y
Gambar 2.4
:
Simbol
Entity Object
2.
Interface Object
Adalah sebuah obyek yang menyediakan media di mana
pengguna
dapat
berkomunikasi
dengan
system
(Whitten,2004).
Pengguna
dapat
berkomunikasi
menggunakan antarmuka/interface.
Tugas dari Interface Entity
adalah:
2. Mengambil data yang berkaitan dengan peristiwa
bisnis dan menterjemahkan data tersebut kepada
pengguna. Hal ini dapat dilihat pada gambar 2.5
Simbol Interface Object:
: Interface Object
Gambar 2.5 :Simbol Interface Object
3.
Control Object
Adalah obyek yang berisi aplikasi logika yang bukan
merupakan tanggung jawab
entity object
(Whitten,2004).
Hal ini dapat dilihat pada gambar 2.6
Simbol
Control Object
: C o n t r o l O b j e c t
Gambar 2.6 :Simbol Control Object
(Whitten,2004)
2.3.2 UML (Unified Modelling Language)
tidak menemukan sebuah metode untuk mengembangkan sistem tetapi
hanya berupa notasi.
UML mendefinisikan diagram-diagram berikut :
1.
Use-Case
Use-Case
adalah pemodelan yang mengidentifikasi dan
menggambarkan fungsi-fungsi sistem dengan menggunakan alat
(Whitten, 2004).
Use-Case Diagram
ini menggambarkan interaksi
sistem, eksternal sistem dengan
actor. Dengan kata lain
merupakan penggambaran secara grafis tentang siapa yang
menggunakan
sistem
dan
dengan
cara
apa
pengguna
mengharapkan untuk berinteraksi dengan sistem.
Komponen-komponen use-case diagram
adalah :
a.
Use-Case
menggambarkan langkah-langkah yang secara
tindakan saling terkait (skenario), baik terotomatisasi maupun
secara manual, untuk tujuan melengkapi satu tugas bisnis
tunggal (Whitten, 2004). Hal ini terlihat pada gambar 2.7
berikut :
Gambar 2.7: Simbol Use-Case
b.
Actor
adalah segala sesuatu yang perlu berinteraksi dengan
sistem untuk pertukaran informasi (Whitten,2004). Hal ini
terlihat pada gambar 2.8 berikut :
Gambar 2.8: Simbol Actor
c.
Association
(Gabungan) adalah hubungan antara pelaku/actor
dengan use case di mana terjadi interaksi di antara mereka
(Whitten, 2004). Hal ini terlihat pada gambar 2.9 berikut :
Gambar 2.9: Simbol Association
2.
Class Diagram
Merupakan gambar grafis mengenai struktur obyek statis dari
suatu sistem, menunjukan kelas-kelas obyek yang menyusun
sebuah sistem dan juga hubungan antar kelas obyek tersebut
(Whitten, 2004).
3.
Sequence Diagram
Menjelaskan interaksi obyek yang disusun dalam suatu
urutan waktu. Diagram ini secara khusus berasosiasi dengan
use
case.
Actor
Sequence Diagram
memperlihatkan tahap demi tahap apa
yang seharusnya terjadi untuk menghasilkan sesuatu didalam
use
case (Whitten, 2004).
2.4
MySQL
MySQL merupakan
multiuser database
yang menggunakan bahasa
SQL (Structured Query Language) yang umumnya untuk menangani data
yang cukup besar. SQL (Structured Query Language) merupakan bahasa
yang telah distandarisasi dan digunakan untuk mengelola
database.
Di
dalam SQL terdapat 3 sub bahasa yaitu:
1.
Data Definition Language
(DDL), digunakan untuk membangun
obyek-obyek dalam database seperti tabel.
2.
Data Manipulation Language
(DML), digunakan untuk menambah,
menghapus, mengubah, dan mencari data pada tabel.
3.
Data Control Language
(DCL), digunakan untuk menangani masalah
keamanan pada database.
Tabel 2.1: Tipe Data dalam MySQL
Tipe Data
Keterangan
INT(M)
[UNSIGNE
D]
Angka -2147483648 s/d 2147483647
FLOAT(M,D)
Angka pecahan
DATE
Tanggal,
Format : YYYY-MM-DD
DATETIME
Tanggal dan Waktu,
Format : YYYY-MM-DD HH:MM:SS
CHAR(M)
String dengan panjang tetap sesuai dengan yang
ditentukan.
Panjangnya 1-255 karakter
VARCHAR(M)
String dengan panjang yang berubah-ubah sesuai
dengan yang disimpan saat itu.
Panjangnya 1 – 255 karakter
BLOB
Teks dengan panjang maksimum 65535 karakter
LONGBLOB
Teks dengan panjang maksimum 4294967295
karakter
Contoh penulisan Script
MySQl:
1. Membuat database
create database
[nama database] ;
2. Menghapus database
3. Membuat tabel
create tabel
[nama tabel] (nama field1 typedata1,….) ;
4. Mengisikan data pada tabel
insert into
[nama tabel] values
(isi field1, isi field
2,…);
5. Menampilkan data pada tabel
select
[field] from [nama tabel];
2.5
AT Command
AT Command
adalah perintah-perintah yang digunakan dalam
komunikasi dari aplikasi dengan
handphone
menggunakan
Serial Port.
Dengan
AT Command
kita dapat mengetahui
vendor
dari handphone
yang
digunakan, membaca pesan yang ada pada SIM card, mengirim pesan SMS,
menghapus pesan SMS pada handphone dan SIM card, dan lain-lain, yang
seluruhnya dapat dilakukan melalui komputer apabila komputer dan
handphone
telah terhubung.
Tabel 2.2 AT Command yang Digunakan
AT Command
Keterangan
AT
Memeriksa apakah handphone telah terhubung dengan aplikasi
AT+CMGF
Menetapkan format mode dari terminal
AT+CMGL
Membuka daftar SMS yang ada pada SIM Card
AT+CMGS
Mengirim pesan SMS
25
3.1
Analisis Sistem
3.1.1
Gambaran umum sistem lama
Penerimaan pesan singkat atau SMS pada
handphone
setiap
waktu dapat terjadi. Pesan yang diterima akan disimpan di dalam
inbox handphone
. Apabila pesan terus disimpan, akan menyebabkan
penuhnya pesan di dalam
inbox handphone
tersebut. Kejadian ini
dapat menyebabkan pesan yang akan masuk tertunda, dan apabila
terlalu lama, dapat mengakibatkan pesan gagal diterima. Hal ini akan
sangat merugikan apabila pesan yang akan masuk tersebut adalah
pesan yang penting.
3.1.2
Gambaran umum sistem baru
Sistem yang akan dibangun untuk mengatasi masalah tersebut
adalah sistem yang memanfaatkan komputer dan
database
sebagai
media penyimpanan SMS. Melalui sistem ini
user
dapat menyimpan
SMS ke
database
maupun menghapus SMS pada
handphone
.
Adapun urutan kerja dari sistem ini adalah sebagai berikut
1.
User
menerima SMS .
2.
User
memilih pengaturan SMS yang diperlukan pada
handphone
3. Sistem melakukan proses untuk melakukan pengaturan yang
dipilih
user
Sistem ini mempunyai arsitektur
Stand Alone
.
Handphone
pengirim (
originator
) mengirimkan data berupa SMS kepada
handphone
penerima (
terminated
). Kemudian data SMS tersebut
akan diteruskan menuju komputer, dan kemudian aplikasi yang akan
di buat (berada di dalam komputer) akan memrosesnya, sehingga
pengaturan-pengaturan pada data berupa SMS yang telah disebutkan
di atas dapat dilakukan dari komputer. Kabel data serial, digunakan
sebagai penghubung antara
handphone
penerima (
terminated
)
dengan PC (
Personal Computer
), hal ini dapat dilihat pada gambar
3.1 di bawah ini :
Gambar 3.1 Gambaran Sistem
3.1.3
Aktor Yang Terlibat Dalam Sistem
Ada satu orang aktor yang terlibat dalam aplikasi pengaturan sms
ini, yaitu :
User
3.1.4
Use Case Diagram
Gambar 3.2 :
Use Case Diagram
Sistem Aplikasi SMS Manager
menampilkannomor perangkat terkoneksi(from use cases)
menampilkanphonebook handphone
(from use cases)
mengirim sms (from use cases) menampilkan sms inbox handphone
(from use cases)
menghapus sms inbox handphone
(from use cases)
menghapus sms pada database
(from use cases)
menyimpan sms pada database
(from use cases)
menampilkan sms dari database
(from use cases)
menampilkan grup
(from use cases) user
(from Actors)
update grup
(from use cases)
update anggota grup
(from use cases)
menampilkan anggotagrup
3.1.5
Class Diagram
Relasi antar obyek yang berada dalam sistem ini disajikan
pada Gambar 3.3
sms <<Pk>> key_table Index_sms tgl_terima jam_terima is i_sms stat <<Fk>> no_telp_pb tampil_sms() simpan_sms() hapus_sms() kirim_sms() phonebook <<Pk>> no_tlp_pb Nama nomor_tlp_sim tam pil_pb() 0..1 0..* punya anggotagrup <<Pk>> idx_grup <<Pk>> no_tlp_pb tampil_anggotagrup() update_anggotagrup() 0..* 0..1 0..* punya grup <<Pk>> idx_grup nama_grup Tampil_nama_grup() update_nama_grup() 0..* 0..1 0..* 0..1 punya phonebook <<Pk>> no_tlp_pb Nama nomor_tlp_sim tam pil_pb() anggotagrup <<Pk>> idx_grup <<Pk>> no_tlp_pb tampil_anggotagrup() update_anggotagrup() grup <<Pk>> idx_grup nama_grup Tampil_nama_grup() update_nama_grup() 0..* 0..1 0..* punya 0..* 0..1 0..* 0..1 punya 0..1 0..1 0..1 0..*
3.2
Desain Sistem
3.2.1
Sequence Diagram
3.2.1.1 Proses Tampilkan Nomor Perangkat Terkoneksi
Sequence diagram
untuk menampilkan nomor
perangkat terkoneksi disajikan pada gambar 3.4
Gambar 3.4 :
Sequence Diagram
Proses Menampilkan Nomor Perangkat
Terkoneksi
: user
: form sms manager aplikasi kontroll phonebook
pilih tampilkan nomor perangkat terkoneksi
baca_nomor_penerima
insert_data()
tampilkan_nomor()
3.2.1.2 Proses Menampilkan SMS
Inbox Handphone
Sequence
diagram
untuk
menampilkan
SMS
handphone
disajikan pada gambar 3.5
Gambar 3.5 :
Sequence Diagram
Proses Menampilkan SMS
Handphone
form sms manager
: user : aplikasi kontrol : sms
Klik tombol baca sms
tampil_sms()
insert_sms()
3.2.1.3 Proses Menyimpan SMS pada
Database
Sequence diagram
untuk menyimpan sms pada
database
disajikan pada gambar 3.6
Gambar 3.6 :
Sequence Diagram
Proses Menyimpan SMS pada
Database
: user form sms manager : aplikasi kontrol : sms
pilih baca sms
tampil_sms()
insert_sms()
data sms ditampilkan
pilih sms yang akan disimpan
get_sms_selected()
3.2.1.4 Proses Menghapus SMS pada
Database
Sequence diagram untuk menghapus SMS di
database
disajikan pada gambar 3.7
form sms manager
: user : aplikasi kontrol : sms
pilih baca sms database
tampil_sms()
tampil_sms_database()
data sms ditampilkan
pilih sms yang dihapus
get_sms_selected()
delete_data_terpilih()
Gambar 3.7 :
Sequence Diagram
Proses Menghapus SMS pada
3.2.1.5 Proses Menampilkan SMS dari
Database
Sequence diagram
untuk menampilkan SMS dari
database
disajikan pada gambar 3.8
form sms manager
: us er : aplikasi kontrol : sms
pilih baca sms database
tampil_sms()
tampil_sms_database()
sms database ditampilkan
3.2.1.6 Proses Mengirim SMS dari Aplikasi
Sequence diagram
untuk mengirim SMS disajikan
pada gambar 3.9
: aplikasi kontrol : user
form kirim sms
masukkan nomor tujuan
ketik pesan
kirim_sms() pilih kirim
get_data()
pesan sms telah terkirim
3.2.1.7 Proses Menampilkan Phonebook
Handphone
Sequence diagram
untuk menampilkan phonebook
disajikan pada gambar 3.10
Gambar 3.10 :
Sequence Diagram
Proses Menampilkan
Phonebook
Handphone
: form sms manager
: user aplikasikontrol phonebook pilih tampilkanphonebook
baca_pb_handphone
insert_data()
tampilkan_pb()
3.2.1.8 Proses Menampilkan Grup
Sequence diagram
untuk menampilkan grup
disajikan pada gambar 3.11
: us er
form sm s m anager aplikas i kontrol grup pilih daftar grup
tampilkan_grup()
select_data()
grup ditampilkan
3.2.1.9 Proses
Update
Grup
Sequence diagram
untuk
update
grup disajikan pada
gambar 3.12
Gambar 3.12 :
Sequence Diagram
Proses
Update
Grup
form sms manager: user
aplikasi kontrol grup
pilih daftar grup
tampilkan_grup()
select_data()
grup ditampilkan
pilih masukkan grup
get_data()
insert_data()
pilih edit grup
get_data()
update_data()
pilih hapus grup
get_data()
3.2.1.10 Proses Menampilkan Anggota Grup
Sequence diagram
untuk menampilkan anggota
grup disajikan pada gambar 3.13
Gambar 3.13 :
Sequence Diagram
Proses Menampilkan Anggota Grup
: userform sms manager aplikasi kontrol anggota grup
pilih daftar anggota grup
tampilkan_anggotagrup()
select_data()
3.2.1.11 Proses
Update
Anggota Grup
Sequence diagram
untuk menampilkan nomor
penerima disajikan pada gambar 3.14
Gambar 3.14 :
Sequence Diagram
Proses
Update
Anggota Grup
form sms manager: user
aplikasi kontrol anggota_grup
pilih daftar anggota grup
tampilkan_anggotagrup()
select_data()
anggota grup ditampilkan
pilih masukkan anggota grup
get_data()
insert_data()
pilih edit anggota grup
get_data()
update_data()
pilih hapus data
get_data()
3.2.1.12 Proses Menghapus SMS pada
Handphone
Gambar 3.14 :
Sequence Diagram
Proses Menghapus SMS pada
Handphone
: user
form sms manager : aplikasi kontrol : sms pilih baca sms
baca_sms()
insert_data()
sms database ditampilkan
Pilih hapus
get_data()
3.3
Perancangan
Database
dan
User Interface
3.3.1
Desain
Database
3.3.1.1
Tabel SMS
Tabel SMS disajikan pada tabel 3.1
Tabel 3.1: Tabel SMS
Nama Field
Tipe Data
Ukuran
Keterangan
key_table
bigint
15
primary key, auto increment
Index_sms
varchar
index sms dari
handphone
no_telp_pb
varchar
20
nomor telpon pada
phonebook, foreignkey
dengan
phonebook
tgl_terima
varchar
15
tanggal sms diterima
isi_sms
Text
isi dari pesan (sms)
stat
varchar
20
Status tersimpan/belum
tersimpan pada
database
Jam_terima
varchar
8
Waktu sms diterima
3.3.1.2
Tabel
Phonebook
Tabel
phonebook
disajikan pada tabel 3.2
Tabel 3.2: Tabel
Phonebook
Nama Field
Tipe
Data
Ukuran
Keterangan
Nama
varchar
24
Nama yang disimpan di
handphone
no_tlp_pb
varchar
20
primary key,
nomor telepon yang
disimpan di
handphone
nomor_tlp
varchar
20
nomor
sim card handphone
3.3.1.3
Tabel Grup
Tabel Anggota grup disajikan pada tabel 3.3
Tabel 3.3: Tabel
Grup
Nama Field
Tipe Data
Ukuran
Keterangan
idx_grup
int
15
primary key, auto increment
Nama_grup
varchar
20
Nama dari grup
3.3.1.4
Tabel Anggota Grup
Tabel
grup
disajikan pada tabel 3.4
Tabel 3.4: Tabel Anggota
Grup
Nama Field
Tipe Data
Ukuran
Keterangan
idx_grup
int
15
primary key
3.3.2
Desain
User Interface
3.3.2.1
Form
Koneksi
Gambar 3.16 merupakan form koneks (sub-menu dari
item Menu pada
Menu Bar
), digunakan untuk melakukan
koneksi antara komputer dengan
handphone.
3.3.2.2
Panel SMS
Handphone
Gambar 3.17 merupakan panel SMS
handphone
,
digunakan untu menampilkan SMS yang di baca aplikasi
dari
handphone
yang terhubung dengan komputer
.
3.3.2.3
Panel
Phonebook Handphone
Gambar 3.18 merupakan gambar panel phonebook
handphone, digunakan untuk menampilkan nomor telepon
yang telah dibaca aplikasi.
3.3.2.4
Form
Kirim SMS
Gambar 3.19 merupakan
form
kirim sms, digunakan
untuk mengirim sms dari aplikasi.
3.3.2.5
Panel Daftar Grup dan Anggota Grup
Gambar 3.20 merupakan panel daftar grup dan
anggota grup, digunakan untuk menampilkan daftar grup
dan anggota grupnya.
3.3.2.6
Panel SMS
Database
Gambar 3.21 merupakan panel SMS database,
digunakan untuk menampilkan SMS yang telah disimpan
pada
database.
50
4.1
Karakteristik Sistem
Sistem yang dibuat merupakan aplikasi yang bersifat
stand alone.
Aplikasi berdiri sendiri dan digunakan oleh pengguna tunggal (single
user).
Input dari
user
hanya dilakukan ketika akan melakukan pengiriman
sms (Short Message Service). Sedang menu-menu lain,
user
hanya perlu
melakukan klik melalui mouse.
4.2
Perangkat Lunak dan Perangkat Keras yang Digunakan dalam
Pembuatan Aplikasi
4.2.1
Perangkat Lunak yang Digunakan
1. Sistem Operasi Windows XP sp1
2. Java NetBeans IDE 5.5
3.
Java Commmunication Port
4. MySQL Server 5.0
5. SQLyog 5.14
6. IVT Corporation Bluetooth Bluesoleil
4.2.2
Perangkat Keras yang Digunakan
1.
Processor
Intel Pentium IV 2.66 Ghz
2.
Memory
RAM 512 Mb
4. VGA Nvidia GForce MX 4000 P CI 64 Mb
5.
Handphone
Motorola E1 Rokr
6. Kabel Data (sesuai dengan tipe
handphone, pada penelitian ini
penulis menggunakan kabel data khusus Motorola Rokr E1)
7. ISSC Bluetooth Device
8. Monitor resolusi 1024 x 768 pixels
4.3
Implementasi Database
Database Server
yang digunakan dalam implementasi sistem ini
adalah MySQL Server 5.0.
Database
dan tabel – tabel yang digunakan
dibuat dengan menggunakan tool SQLyog 5.14. Database
yang dibuat terdiri
dari tabel-tabel berikut :
1. Tabel sms
2. Tabel phonebook
3. Tabel grup
4. Tabel anggota grup
4.4
Setting koneksi dari Java ke MySQL
Untuk melakukan koneksi antara Java dengan MySQL server, maka
harus digunakan suatu
driver / interface
JDBC (
Java DataBase
Connectivity
) yang berisi kelas – kelas untuk mengakses
database server
adalah
mysql-connector-java-5.0.4-bin.jar. Berikut ini adalah
langkah-langkah untuk koneksi dari Java ke database
MySQl :
1. Melakukan load driver
2. Melakukan pembuatan koneksi program ke database
3. Melakukan query database
4. Melakukan penutupan koneksi database
4.5
Implementasi Antar Muka dan Proses Kerja Aplikasi
Sebelum program dijalankan, perlu dilakukan penambahan paket kelas
Java Communication Port, karena pada Java 2 Standard Development Kit
(Java 2 SDK) belum tersedia fasilitas untuk komunikasi dengan Serial Port.
Diasumsikan
misal
instalasi
jdk
berada
pada
C:\ProgramFiles\Java\jdk1.6.0
. Langkah-langkahnya sebagai berikut (Tim Penelitian
Dan Pengembangan Wahana Komputer, 2005) :
1. Copy file
win32com.dll
ke direktori bin pada jdk
C:\Program Files\Java\jdk1.6.0\bin
dan
C:\Program Files\Java\jdk1.6.0\jre\bin
2. Copy file
comm.jar
dan
javaxx.comm.properties
ke direktori lib
pada jdk
C:\Program Files\Java\jdk1.6.0\lib
dan
C:\Program Files\Java\jdk1.6.0\jre\lib
3. Tambahkan
comm.jar
pada classpath (pada command prompt)
4.5.1
Form SMS Manager
Gambar 4.1 Form SMS Manager
Pada gambar 4.1 di atas, merupakan tampilan awal, di mana pada saat
konstruktor form
SMS Manager
dijalankan, pada bagian panel, tab menu, serta
tombol selain untuk melakukan koneksi dan melihat informasi, akan
di-setting
tidak aktif, hal ini untuk menghindari penggunaan bagian tersebut
pada saat koneksi belum dilakukan.
Form
ini memiliki empat menu
popup
yaitu Menu, SMS, Phonebook,
dan Informasi. Selain itu juga memiliki enam tombol yaitu
Phonebook,
SMS, Komputer, Baca Phonebook Perangkat Terkoneksi, kirim Sms dan
Tampilkan. Hal ini terlihat seperti pada gambar 4.1 di atas.
1. Tombol
Phonebook
berfungsi untuk memanggil panel
Phonebook.
2. Tombol Sms berfungsi untuk memanggil panel SMS, serta
membaca data SMS dari handphone.
3. Tombol Komputer berfungsi untuk memanggil panel komputer.
4. Tombol Baca Phonebook Perangkat Terkoneksi berfungsi
untuk memanggil panel Phonebook Perangkat Terkoneksi.
5. Tombol Kirim Sms digunakan untuk memanggil
form
Kirim
Sms
6. Tombol Tampilkan pada panel Nomor Perangkat Terkoneksi
berfungsi untuk menampilkan nomor
handphone
yang
terhubung dengan komputer, yang sebelumnya sudah disimpan
pada
handphone. Pada
tab menu Menu
terdapat dua
submenu
yaitu Form Koneksi dan Keluar. Hal ini terlihat pada gambar
4.2
7. Pada
tab menu
SMS terdapat dua
submenu
yaitu Daftar Sms
Terbaca dan Kirim SMS.
Tab menu
SMS akan aktif apabila
koneksi telah dilakukan. Hal ini terlihat pada gambar 4.3
Gambar 4.3 Form SMS Manager tab menu
SMS
8. Pada
tab menu Phonebook
terdapat dua submenu
yaitu Daftar
Phonebook
dan Grup dan Anggota Grup. Sama seperti
tab
menu
SMS,
tab menu Phonebook
akan aktif apabila koneksi
telah dilakukan. Hal ini terlihat pada gambar 4.4
4.5.2
Form
Koneksi
Gambar 4.5
Form
Koneksi
Form
koneksi digunakan untuk melakukan koneksi antara
handphone
dengan aplikasi. Proses yang pertama bekerja adalah menampilkan daftar
port
yang ada pada komputer. Hal ini terlihat pada listing
4.1
Kemudian setelah memilih port
dan menekan tombol Sambung, maka
proses akan bekerja untuk menghubungkan port dengan handphone. Proses
ini terlihat pada listing
4.2
Tombol Putus dilakukan untuk memutuskan koneksi. Hal ini terlihat
pada listing 4.3
Implementasi pengaturan serial port
pada program dapat diilihat pada
listing 4.4, sedangkan listing pengaturan terminal untuk pengiriman
AT
COMMAND
dapat dilihat pada listing 4.5
Pada aplikasi ini, pengaturan parameter
serial port
dilakukan oleh
aplikasi tanpa inputan dari user, dengan menggunakan parameter yang pada
umumnya di-support
oleh kebanyakan
handphone
yang dapat menerima
port, bit per second(bps), databits, parity, stopbits, dan
flow control
terlihat
pada tabel 4.1
Tabel 4.1
Nilai Parameter Koneksi ke Terminal
Parameter
Nilai
Port
COM1
Bit per Second (bps)
19200
Data bits
8
Parity
NONE
Stop Bits
1
Pengaturan terminal perlu dilakukan agar terminal siap menerima dan
mengirimkan SMS dengan cara mengirimkan perintah
AT COMMAND.
Contoh perintah AT COMMAND
yang dikirimkan ke terminal saat aplikasi
dijalankan secara berurutan disajikan pada Tabel 4.2
Tabel 4.2
Perintah AT Command
Perintah AT
Keterangan
AT+CMGF = 0
Menetapkan format SMS adalah format PDU
AT+CMGS
Menetapkan encoding berupa GSM
AT+CPBR
Membaca phonebook
AT+CPBS
Mengetahui memori penyimpanan phonebook
AT+CNUM
Mmbaca nomor sim yang dipakai di dalam
handphone
public String[] getNamaPort() {
int i=0;
// Mencari nama port
String[] namaPortSerial=new String[cariSerialPort()];
Enumeration daftarPort=CommPortIdentifier.getPortIdentifiers(); while(daftarPort.hasMoreElements()){ CommPortIdentifier portId=(CommPortIdentifier) daftarPort.nextElement(); if(portId.getPortType()==CommPortIdentifier.PORT_SERIAL){ namaPortSerial[i]=portId.getName(); i++; } } return namaPortSerial; }
Listing 4.1
Listing
Mencari dan Menampilkan
Serial Port
Komputer
private void ButtonKoneksiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JOptionPane.showMessageDialog(this,"Sedang melakukan penyambungan port", "Info",
JOptionPane.INFORMATION_MESSAGE);
jLabel_status.setText("Port terkoneksi");
if (koneksi.openConnection((String)PilihPort.getSelectedItem())){
this.buttonConnect(); input = koneksi.getInputStream(); output = koneksi.getOutputStream();
}
}
private void
ButtonDiskonekActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JOptionPane.showMessageDialog(this,"Koneksi port putus");
jLabel_status.setText("Koneksi putus");
this.buttonDisconnect();
koneksi.closeConnection(); }
Listing 4.3
Listing
Memutuskan Koneksi dengan Port Terpilih
try{
getSerialPort().setFlowControlMode(getSerialPort().FLOWCONTROL_NONE)
;
getSerialPort().setSerialPortParams(19200,getSerialPort().DATABITS_8
,getSerialPort().STOPBITS_1,getSerialPort().PARITY_NONE);
getSerialPort().notifyOnDataAvailable(true);
}catch (UnsupportedCommOperationException e){
JOptionPane.showMessageDialog(null,"error pengaturan
data serial port " + e.getMessage()); }
public void aTCommandBacaInbox(InputStream input,OutputStream
output){ try{this.input = input;t his.output = output;
SMSUtil.kirimAT("AT+CMGF=0" + "\15", 1500);
SMSUtil.kirimAT("AT+CSCS=GSM" + "\15", 1500);
SMSUtil.kirimAT("AT+CMGL=4 " + "\15", 1500
// Apabila Pengiriman AT Command baca inbox GAGAL
}catch(Exception ioe){
System.out.println("send at command :"+ioe.getMessage());
} }
4.5.3
Form
Kirim SMS
Gambar 4.6
Form
Kirim SMS
Form
ini digunakan untuk mengirimkan pesan singkat dari aplikasi.
Tombol Keluar digunakan untuk keluar dari
form
ini. Tombol Kirim
digunakan untuk melakukan proses pengiriman sms, sedang tombol
Bersihkan digunakan untuk menghapus pesan yang telah ditulis dari
text
area.
Nomor dapat diisi dengan awalan “0” atau “+62” (kode Negara
Indonesia). Setelah nomor didapat maka akan diperiksa apakah berawalan 0
atau +62, kemudian pesan yang ditulis akan diambil, dan kemudian di codec
ke bentuk PDU (Protocol Data Unit) agar pesan dapat dikirim melalui
terminal (handphone). Pesan juga dapat dikirim ke banyak nomor dengan
pemisah antar nomor menggunakan karakter “ ; ”. Hal ini terlihat pada
if (!notlp.getText().equals("")) {
// Mendapatkan nomor telpon dari JTextField
String noTlp = notlp.getText();
String [] splitedNoTlp = noTlp.split(";");
// Looping jika nomor lebih dari satu, sebanyak nomor
tujuan yang ada
for(int i=0;i<splitedNoTlp.length;i++){
// Memeriksa penulisan apakah diawali dengan angka 0
atau tidak jika nomor lebih dari satu
if (splitedNoTlp[i].startsWith("0")) {
splitedNoTlp[i] = pdu.hapusNol(splitedNoTlp[i]);
splitedNoTlp[i] + "\n");
}
// Mendapatkan pesan dari JTextArea
String isiPesan = pesan.getText();
// Memanggil method setKirimSMS pada kelas PDU
dengan obyek pdu untuk mengirim pesan SMS
pdu.setKirimSMS(splitedNoTlp[i],isiPesan);
}
}
Listing 4.6
Listing
Mengirim SMS dengan Mengisi Nomor pada
Text Field
Pengiriman SMS juga dapat dilakukan kepada nomor-nomor tujuan
yang telah disimpan dalam tabel grup pada database. Hal ini terlihat pada
listing 4.7
if (!ComboGroup.getSelectedItem().equals("---")) {
try{
String SQL = "select b.no_tlp_peng FROM grup a inner
join phonebook b on a.idx_grup = b.idx_grup WHERE a.nama_grup =
ResultSet rs = konDB.selectData(SQL);
String NomerGrup = null;
rs.last();
rs.beforeFirst();
while(rs.next()) {
if (rs.getString(1).startsWith("0")) {
NomerGrup = pdu.hapusNol(rs.getString(1));
}
pdu.setKirimSMS(NomerGrup,pesan.getText());
}
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
}
}
4.5.4 Panel
Phonebook
Perangkat Terkoneksi
Gambar 4.7
Panel
Phonebook
Pada panel
Phonebook
Perangkat Terkoneksi terdapat tombol yang
merupakan proses utama dalam halaman ini yaitu Baca Phonebook
Perangkat Terkoneksi. Tombol ini berfungsi untuk melakukan penmbacaan
data-data
phonebook
yang ada pada
handphone. Saat tombol ditekan maka
proses yang bekerja adalah pengiriman perintah
AT COMMAND
dari
aplikasi dikomputer kepada terminal. Kemudian terminal akan mengirim
respon balik yang akan diproses lebih lanjut oleh aplikasi.
Listing
public int listOfNumber(String param){
int returnValue = 0;
SMSUtil.kirimAT(atCommandPhonebookI,1500); String atCommandPhonebookII="AT+CPBS?"+"\15"; SMSUtil.kirimAT(atCommandPhonebookII,1500); returnValue = Integer.parseInt(konek.getInstance().getSerialBuffer().get(0).toStri ng());
System.out.println("Isi Memory HP : "+returnValue);
konek.getInstance().getSerialBuffer().clear();
return returnValue;
}
public void getAllPhonebookEntry(){
int temp = listOfNumber("SM")+1001;
for(int i=1001;i<=temp;i++){
String atCommandPhonebookIII="AT+CPBR="+i+"\15";
SMSUtil.kirimAT(atCommandPhonebookIII,600);
}
Iterator it =
konek.getInstance().getPhoneBuffer().iterator();
List a = konek.getInstance().getPhoneBuffer();List b = new
LinkedList();
System.out.println("Ukuran list number HP SM RokR :
"+a.size());
while(it.hasNext()){
System.out.println("hasil iterator HP SM RokR :
"+String.valueOf(it.next()));
}
int temp2 = listOfNumber("ME");
for(int i=1;i<=temp2;i++){
SMSUtil.kirimAT(atCommandPhonebookVI,600);
}
Iterator it2 =
konek.getInstance().getPhoneBuffer().iterator();
List g = konek.getInstance().getPhoneBuffer();List h = new
LinkedList();
System.out.println("Ukuran list number HP di ME :
"+g.size());
while(it2.hasNext()){
System.out.println("hasil iterator HP di ME :
"+String.valueOf(it2.next()));
}
int temp3 = listOfNumber("SM");
for(int j=1;j<=temp3;j++){
String atCommandPhonebookIV="AT+CPBR="+j+"\15";
SMSUtil.kirimAT(atCommandPhonebookIV,600);
}
Iterator it3 =
konek.getInstance().getPhoneBuffer().iterator();
List c = konek.getInstance().getPhoneBuffer();List d = new
LinkedList();
System.out.println("Ukuran list number HP SM siemens :
"+c.size());
while(it3.hasNext()){
System.out.println("hasil iterator HP SM siemens :
"+String.valueOf(it3.next()));
} int temp1 = listOfNumber("ME")+300; // digunakan
untuk membaca ME soner W302
for(int i=300;i<=temp1;i++){
String atCommandPhonebookV="AT+CPBR="+i+"\15";