38 BAB 3 PERANCANGAN SISTEM
3.1 Gambaran Umum Aplikasi SMS Server dan Client yang dibuat mempunyai desain konsep sebagai berikut : •
Friendly user interface.
•
Multi-threading, untuk meningkatkan kinerja server.
•
Memiliki error-management.
•
Penyimpanan kumpulan perintah AT Command pada file XML, sehingga dapat dimodifikasi dengan cepat dan mudah.
•
Hasil pengaturan, seperti pengaturan GSM Modem disimpan pada file XML.
•
Memiliki status SMS yang dikirim.
•
Memiliki file log.
•
Dapat mengirimkan SMS langsung dari user interface-nya.
3.2 Cara Kerja Sistem Terminal yang dipasangkan pada serial port di komputer berfungsi untuk mengirim dan menerima pesan. Pesan yang dikirim dan akan dikirim, diproses oleh server.
39 Secara garis besar, ada dua pekerjaan penting yang dilakukan pada server, yaitu : •
Memantau pesan yang datang ke terminal, memprosesnya, dan menuliskannya ke database atau file XML.
•
Memantau pesan yang akan dikirim pada database untuk kemudian dengan segera dikirimkan ke terminal. Untuk berinteraksi dengan server seperti melakukan pengiriman pesan,
melihat status dari pesan yang dikirim, Client/Agent menggunakan perantara browser. Untuk itu, diperlukan web server.
Gambar 3.1 Cara kerja sistem
3.3 Interaksi dengan BiNus-SMS Server Selain sekedar mengirim dan membaca pesan, aplikasi ini telah dirancang untuk dapat memberikan feedback apabila pengirim mengirimkan pesan sesuai dengan ketentuan-ketentuan yang telah dibuat pada program. Interaksi yang dibuat antara lain adalah : -
Interaksi antara mahasiswa dengan server.
-
Interaksi antara dosen dengan server.
40 Baik untuk mahasiswa maupun dosen yang ingin mengetahui format ketentuan yang ada, cukup dengan mengirim pesan “Help” dan kirim kepada nomor GSM pada server. Server lalu akan mengirimkan pesan berisi formatformat yang ada. Sedangkan apabila format pesan yang dikirim oleh mahasiswa atau dosen salah, server akan mengirim pesan kesalahan.
3.3.1
Mahasiswa dengan Server Interaksi antara mahasiswa dengan server dirancang dengan ketentuanketentuan sebagai berikut : -
Mahasiswa dapat mencari tahu bagaimana format pengiriman SMS kepada server.
-
Mahasiswa dapat mendaftarkan nomor telepon selulernya ke dalam database server.
-
Mahasiswa dapat mengganti nomor telepon selulernya yang sudah terdaftar pada database server dengan nomor yang baru.
-
Mahasiswa dapat mengetahui kode dosen dari mata kuliah yang diambilnya.
-
Mahasiswa dapat mengirim pesan langsung ke dosen.
3.3.1.1 Help Apabila mahasiswa ingin mencari tahu bagaimana format pengiriman SMS yang sesuai dengan ketentuan server, format pesan yang harus dikirim kepada server adalah : “Help”. Contoh : Help
41 3.3.1.2 Register Apabila mahasiswa ingin mendaftarkan nomor telepon selulernya ke dalam database server, format pesan yang harus dikirim kepada server adalah “Reg<spasi>
<Password>”. Contoh : Reg 0600634241 def
3.3.1.3 Update Nomor Telepon Apabila mahasiswa ingin mengubah nomor telepon selulernya yang sudah ada pada database server, format pesan yang harus dikirim kepada server adalah “Reg<spasi><Password>“. Contoh : Reg 0600634241 def
3.3.1.4 Mencari Kode Dosen Apabila mahasiswa ingin mengetahui semua kode dosen dari mata kuliah yang diambil, format pesan yang harus dikirim kepada server adalah “Info<spasi><spasi><Password>”. Contoh : Info 0600634241 def
3.3.1.5 Mengirim Pesan ke Dosen Apabila mahasiswa ingin mengirim pesan kepada dosen, format pesan yang harus dikirim kepada server adalah “<spasi>”.
42 Contoh : Dos01 Pertemuan berikut offclass atau tidak?
3.3.2
Dosen dengan Server Interaksi antara dosen dengan server dirancang dengan ketentuanketentuan sebagai berikut : -
Dosen dapat mengetahui jumlah pesan yang ditujukan kepada dirinya.
-
Dosen dapat mengirim pesan secara broadcast kepada mahasiswa.
3.3.2.1 Mengetahui Jumlah Inbox Apabila dosen ingin mengetahui jumlah pesan dalam inbox-nya, format pesan
yang
harus
dikirim
kepada
server
adalah
“Info<spasi>
Dosen><spasi><Password>”. Contoh : Info dos01 abc
3.3.2.2 Mengirim Pesan kepada Mahasiswa Apabila dosen ingin mengirim pesan kepada mahasiswa secara broadcast, format pesan yang harus dikirim kepada server adalah “<spasi><Password><spasi>
Mata
Kuliah><
Kelas>< spasi >”. Contoh : Dos01 abc TI101 07PAT Minggu depan offclass
spasi
>
43 3.4 Rancangan Piranti Lunak 3.4.1
Struktur Menu Berikut adalah rancangan struktur menu pada aplikasi Server dan Client.
3.4.1.1 Sisi Server Struktur menu perancangan sistem yang dibuat pada sisi server terbagi atas 5 struktur utama, yaitu : Struktur Menu Splash Screen, Struktur Menu Tampilan Utama, Struktur Menu File, Struktur Menu Tools, dan Struktur Menu Help.
3.4.1.1.1
Struktur Menu Splash Screen Splash Screen adalah gambar yang muncul pertama kali ketika program
dijalankan. Gambar yang digunakan berupa logo BiNus-SMS Server.
Gambar 3.2 Struktur menu Splash Screen
3.4.1.1.2
Struktur Menu Tampilan Utama Menu layar utama server mempunyai 3 menu pokok, yaitu : File, Tools,
dan Help.
44
Tampilan Server
File
Tools
Help
Gambar 3.3 Struktur menu Tampilan Utama pada server
3.4.1.1.3
Struktur Menu File Menu File mempunyai 5 sub-menu, yaitu: Connect, Pause, Resume,
Disconnect, dan Exit. Kelima sub-menu tersebut berfungsi untuk mengatur konektivitas server dengan terminal. File
Connect
Pause
Resume
Disconnect
Exit
Gambar 3.4 Struktur menu File pada server
3.4.1.1.4
Struktur Menu Tools Pada menu Tools, terdapat 2 sub-menu, yaitu: menu Clear Display, dan
Send Message. Kedua menu tersebut merupakan fitur tambahan untuk keperluan administrator.
Gambar 3.5 Struktur menu Tools pada server
45 3.4.1.1.5
Struktur Menu Help Menu Help hanya terdiri dari 1 sub-menu, yaitu : About. Menu ini berisi
tentang informasi detail tentang aplikasi program.
Gambar 3.6 Struktur menu Help pada server
3.4.1.2 Sisi Client Struktur menu perancangan sistem yang dibuat pada sisi client terbagi atas 4 struktur utama, yaitu : Struktur Menu Login, Struktur Menu Halaman Utama, Struktur Halaman Incoming Message, dan Struktur Menu Message Status.
3.4.1.2.1
Struktur Menu Login Sebelum client memasuki halaman utama, client terlebih dahulu harus
mengisi username dan password pada halaman login.
Gambar 3.7 Struktur menu Login pada client
46 3.4.1.2.2
Struktur Menu Halaman Utama Halaman utama BiNus-SMS Client memiliki 4 menu utama, yaitu :
Home, Incoming Message, Message Status, dan Logout. Halaman Awal
Home
Incoming Message
Message Status
Logout
Gambar 3.8 Struktur menu Halaman Utama pada client
3.4.1.2.3
Struktur Menu Halaman Incoming Message Halaman Incoming Message menampilkan pesan-pesan yang terkirim
kepada database client, lengkap dengan informasi nomor pengirim dan tanggal pesan terkirim. Halaman ini juga dilengkapi fitur untuk menghapus pesan yang sudah dibaca, dan juga fitur untuk membalas pesan tersebut.
Incoming Message
Delete
Reply
Gambar 3.9 Struktur menu Incoming Message pada client
3.4.1.2.4
Struktur Menu Halaman Message Status Halaman Message Status menampilkan status pesan yang dikirim oleh
client melalui web. Status yang dimaksud adalah : Delivered, Pending, Failed.
47 Selain itu, halaman ini juga dilengkapi dengan fitur untuk menghapus laporan status pesan yang sudah tidak perlukan lagi.
Gambar 3.10 Struktur menu Message Status pada client
3.4.2
STD Interaktivitas adalah kemampuan sistem untuk dapat berhubungan langsung dengan user. Interaktivitas ini dapat digambarkan dengan diagram STD (State Transition Diagram).
3.4.2.1 Sisi Server STD yang terdapat pada sisi server ada sebanyak 4 buah, yaitu : STD Tampilan Utama Server, STD Menu File, STD Menu Tools, dan STD Menu Help.
3.4.2.1.1
STD Tampilan Utama Server STD ini menggambarkan sub-menu apa saja yang bisa diakses oleh
server administrator. Sub-menu yang bisa diakses adalah : File, Tools, dan Help.
48
Splash Screen
Tampilan Server
klik menu file
klik menu tools
klik menu help
File
Tools
Help
Gambar 3.11 STD Tampilan Utama Server
3.4.2.1.2
STD Menu File Administrator dapat menyalakan koneksi antara server dengan terminal
pada saat sub-menu Connect dipilih. Sub-menu Pause berguna pada saat administrator ingin menghentikan koneksi server untuk sementara waktu. Untuk menjalankan koneksi server kembali, sub-menu yang harus dipilih adalah Resume. Sub-menu Disconnect dipilih untuk mengakhiri koneksi server dengan terminal, sedangkan sub-menu Exit untuk keluar dari program BiNus-SMS Server.
49 klik submenu connect
klik submenu pause
klik submenu resume
File
klik submenu disconnect
Connect
Pause
Resume
Disconnect
klik submenu exit Exit
Gambar 3.12 STD Menu File
3.4.2.1.3
STD Menu Tools Administrator bisa membersihkan tampilan layar dengan memilih sub-
menu Clear Display. Dengan memilih sub-menu Send Message, administrator dapat mengirim pesan SMS.
Gambar 3.13 STD Menu Tools
50 3.4.2.1.4
STD Menu Help Dengan memilih sub-menu About, administrator dapat melihat informasi
detail tentang aplikasi BiNus-SMS Server.
Gambar 3.14 STD Menu Help
3.4.2.2 Sisi Client STD yang terdapat pada sisi client ada sebanyak 3 buah, yaitu : STD Menu Halaman Utama, STD Menu Halaman Incoming Message, dan STD Menu Halaman Message Status.
3.4.2.2.1
STD Menu Halaman Utama STD ini merupakan interaktivitas dasar yang dapat dilakukan user pada
sistem. Karena pada dasarnya sistem ini merupakan sebuah web, masing-masing halaman mempunyai interaktivitas yang sama pada setiap halamannya dan dapat saling mengakses halaman lainnya. Pada saat inisialisasi ditetapkan bahwa halaman awal yang ditampilkan adalah halaman Home.
51 klik button Home tampilkan halaman Home Home
Login klik button Incoming Message tampilkan halaman Incoming Message
Incoming Message
Halaman Awal klik button Message Status tampilkan halaman Message Status
klik button Logout
Message Status
Logout
Gambar 3.15 STD Menu Halaman Utama
3.4.2.2.2
STD Menu Halaman Incoming Message Pada halaman ini, client dapat membaca, menghapus, dan membalas
pesan yang terkirim kepada database-nya. klik button Delete
Delete
Incoming Message klik button Reply tampilkan halaman Reply Reply
Gambar 3.16 STD Menu Halaman Incoming Message
52 3.4.2.2.3
STD Menu Halaman Message Status Pada halaman ini, client dapat melihat laporan status dari pesan yg
dikirim melalui BiNus-SMS Client. Selain melihat status, client juga dapat menghapus laporan status yang sudah tidak diperlukan.
Gambar 3.17 STD Menu Halaman Message Status
3.4.3
Diagram Alir Perancangan sistem kerja dari aplikasi server dapat digambarkan dengan menggunakan diagram alir (flowchart).
3.4.3.1 Diagram Alir Tampilan Utama Server Pada awalnya, akan diadakan pengecekan apakah user ingin melakukan koneksi pada server. Bila betul, maka akan dilanjutkan menuju method ‘Buka Koneksi’. Bila tidak, akan dilanjutkan ke pengecekan berikutnya yaitu apakah user ingin membersihkan record pada tampilan layar server. Bila betul, akan dilanjutkan menuju method ‘Hapus Layar’. Bila tidak, akan dilanjutkan ke pengecekan berikutnya yaitu apakah user ingin melihat informasi mengenai aplikasi server. Bila betul, akan dilanjutkan menuju method ‘Informasi’. Bila tidak, akan dilanjutkan ke pengecekan berikutnya yaitu apakah user ingin keluar dari aplikasi server. Bila betul, maka method berakhir dan program selesai. Bila tidak, maka akan dilakukan looping menuju pengecekan pertama kembali.
53
Start
Pilih ‘Connect’?
Y
Buka Koneksi
Y
Hapus Layar
T
Pilih ‘Clear Display’?
T
Pilih ‘About’?
Y
Informasi
T
T
Pilih ‘Exit’?
Y
Finish
Gambar 3.18 Diagram alir Tampilan Utama Server
3.4.3.2 Diagram Alir Buka Koneksi Setelah user memilih tombol ‘Buka Koneksi’, program akan menjalankan method inisialisasi. Apabila proses inisialisasi gagal, maka method ini berakhir. Bila proses inisialisasi berhasil, maka akan dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin mematikan koneksi pada server. Bila betul, maka method ini berakhir. Bila tidak, maka akan dilanjutkan menuju pengecekan
54 berikutnya, yaitu apakah user ingin mengirim pesan. Bila betul, maka akan dilanjutkan menuju method ‘Kirim’. Bila tidak, maka akan dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin menghentikan koneksi server untuk sementara waktu. Bila betul, maka akan dilanjutkan menuju method ‘Berhenti’. Bila tidak, maka akan dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin membersihkan record pada tampilan layar server. Bila betul, akan dilanjutkan menuju method ‘Hapus Layar’. Bila tidak, maka akan dilanjutkan menuju pengecekan berikutnya, yaitu apakah user ingin melihat informasi mengenai aplikasi server. Bila betul, akan dilanjutkan menuju method ‘Informasi’. Bila tidak, maka akan dilanjutkan dengan 3 thread yang berjalan secara bersamaan. Thread kedua dan ketika dipasang timer, dimana jika ada salah dari dua thread itu yang sedang berjalan maka satu thread yang lain akan berhenti sementara. Thread yang paling kiri berfungsi untuk memantau apabila ada SMS yang masuk ke dalam server. Bila ada respon dari luar (misal : ada SMS masuk), maka server akan menjalankan method ‘Response Terminal’. Thread yang pertama berfungsi untuk membaca pesan pada tabel Receive yang berstatus 0. Thread yang selanjutnya berfungsi untuk mengirim pesan yang berstatus 0 pada tabel Send.
55
Gambar 3.19 Diagram alir Buka Koneksi
56 3.4.3.3 Diagram Alir Inisialisasi Pada awalnya, server akan melakukan koneksi kepada database pada Microsoft Access. Apabila proses koneksi sukses, akan dilanjutkan menuju method ‘Buka Koneksi ke Terminal’ dan method kemudian berakhir.
Gambar 3.20 Diagram alir Inisialisasi
3.4.3.4 Diagram Alir Buka Koneksi ke Terminal Pada awalnya, server akan membuka serial port serta dilanjutkan dengan proses konfigurasi port. Kemudian akan dilanjutkan dengan proses konfigurasi awal AT Command dan selanjutnya method selesai.
57
Gambar 3.21 Diagram alir Buka Koneksi ke Terminal
3.4.3.5 Diagram Alir Response Terminal Method diawali dengan mengecek apakah ada respon yang masuk ke terminal atau tidak, jika tidak maka method ini akan langsung selesai. Namum bila ada maka method ini akan mengatur nilai awal GetPDU menjadi 0. Lalu dilakukan pengecekan pada nilai Response. Apabila nilai Response tidak ada, maka nilai status menjadi OK. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah “+CSQ”, yang menunjukkan kualitas signal handphone pada server. Apabila benar, maka nilai status adalah OK. Apabila tidak, maka akan dilakukan pengecekan berikutnya yaitu apakah nilai Response adalah “+CSMS” yang menunjukkan bahwa alat GSM yang digunakan mendukung fitur untuk mengirim SMS. Apabila benar, maka nilai status akan menjadi OK. Apabila tidak, maka akan dilakukan pengecekan
58 selanjutnya yaitu apabila nilai Response adalah “OK”. Apabila benar, maka nilai status adalah OK. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah “>” yang menunjukkan kondisi untuk menulis pesan pada terminal. Apabila benar, maka nilai status adalah OK. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah “Ring” yang menunjukkan bahwa ada telepon yang masuk kepada server. Apabila benar, maka akan dijalankan perintah untuk menolak panggilan telepon tersebut (reject), dan dilanjutkan dengan mengakhiri method Reponse Terminal. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah ”+CMGW” atau ”+CMGS”. Apabila benar, maka pesan telah berhasil dikirim dan method Response terminal akan berakhir. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah “+CMGR”. Apabila benar, maka nilai GetPDU akan diatur menjadi 1. Apabila tidak, maka akan dilakukan pengecekan selanjutnya yaitu apakah nilai Response adalah “+CMT”. Apabila benar, maka akan diatur nilai GetPDU menjadi 1. Setelah itu akan dilakukan pengecekan nilai GetPDU. Apabila nilai GetPDU bukan 1, maka method Response Terminal akan berakhir. Apabila nilai GetPDU adalah 1, maka server akan membaca SMS yang masuk pada terminal, lalu menampung pesan SMS tersebut kepada suatu variabel. Setelah ditampung, pesan SMS pada terminal tersebut akan dihapus. Berikutnya, server akan memindahkan pesan SMS tersebut ke dalam tabel Receive pada database. Setelah itu, nilai GetPDU akan diset menjadi 0 kembali dan method Response Terminal akan berakhir.
59
Start
T
Y
Ada Respon dari Terminal / HP?
Set int GetPDU = 0
Y
Response = “”
T
Y
Response = “+CSQ”
T
Y
Status OK
Response = “+CSMS”
T
Y
Response = “OK”
Finish
T
Y
I
T
Response = “>”
I
GetPDU = 1
H
T T Menolak telp masuk
Y
Response = “RING”
Response = “+CMT”
T
Y Pesan berhasil terkirim
Response = “+CMGW” atau “+CMGS”
Y
GetPDU = 1
T
T
Response = “+CMGR”
Gambar 3.22 Diagram alir Response Terminal
Y
60 3.4.3.6 Diagram Alir Baca Tabel Receive Method diawali dengan proses pengecekan apakah ada record yang belum diproses pada tabel Receive. Apabila tidak, maka method akan berakhir. Apabila ada, server akan mengambil record baru tersebut dan akan memproses record tersebut pada method berikutnya, yaitu method ‘Proses Data pada Tabel Receive’. Setelah itu baru method ini akan berakhir.
Gambar 3.23 Diagram alir Baca Tabel Receive
3.4.3.7 Diagram Alir Proses Data Tabel Receive Method diawali dengan mengatur status pada tabel Receive menjadi 3, yang berarti bahwa record tersebut sedang diproses. Langkah selanjutnya adalah pengecekan apakah isi dari pesan SMS adalah “Help”. Apabila benar, maka akan
61 ditulis kepada tabel Send pesan yang berisi ketentuan format –format pengiriman SMS yang berlaku pada server kepada nomor tujuan yang diambil dari tabel Receive tadi. Apabila tidak, maka akan dilakukan pengecekan berikutnya yaitu apakah kata depan dari isi pesan adalah “Info”. Apabila benar, maka akan dilakukan proses validasi selanjutnya yaitu apakah isi pesan hanya “Info”. Apabila benar, maka akan dituliskan pesan format register yang benar kepada tabel Send dengan nomor tujuan yang sesuai dengan yang diambil pada tabel Receive. Apabila tidak, maka akan dilakukan pengecekan berikutnya yaitu apakah isi pesan adalah “Info + + <Password>”. Apabila benar, maka akan dituliskan pesan informasi kode dosen kepada tabel Send dengan nomor tujuan yang sesuai dengan yang diambil pada tabel Receive. Apabila tidak, maka akan dilakukan pengecekan berikutnya yaitu apakah isi pesan adalah “Info + + <Password>”. Apabila benar, maka akan dituliskan informasi inbox dosen kepada tabel Send dengan nomor tujuan yang sesuai dengan yang diambil pada tabel Receive. Apabila tidak, maka akan dituliskan pesan format register yang benar kepada tabel Send dengan nomor tujuan yang sesuai dengan yang diambil pada tabel Receive.Apabila tidak, maka method akan berakhir. Apabila kata depan dari pesan yang diambil pada tabel Receive adalah “Reg”, maka akan dilakukan pengecekan apakah isi pesan adalah “Reg + + <Password>”. Apabila tidak, maka akan dituliskan pesan gagal register kepada tabel Send dengan nomor tujuan yang sesuai dengan yang diambil pada tabel Receive. Apabila benar, maka akan dilakukan pengecekan berikutnya yaitu apakah NIM pengirim sudah ada pada tabel Cellno. Apabila belum ada, maka nomor tersebut akan dimasukkan ke dalam tabel Cellno, dan akan dituliskan
62 pesan berhasil register kepada tabel send dengan nomor tujuan yang sesuai dengan nomor yang diambil pada tabel Receive, lalu method akan berakhir. Apabila NIM tersebut sudah ada, maka akan dilakukan proses update nomor telepon seluler pada tabel Cellno, yang dilanjutkan dengan menulis pesan berhasil update pada tabel send, dengan nomor tujuan yang sesuai dengan nomor yang diambil pada tabel Receive, lalu method akan berakhir. Apabila kata depan dari pesan yang diambil pada tabel Receive adalah , maka akan dilakukan pengecekan apakah isi pesan adalah “ + <Password> + + + ”. Apabila benar, maka pesan tersebut akan dikirim ke tabel send. Apabila tidak, akan dilakukan pengecekan apakah nomor telepon tersebut ada pada tabel Cellno. Bila ada, maka akan ditambahkan informasi ID sender ke dalam tabel Receive. Bila tidak, maka akan dikirimkan pesan kesalahan kepada nomor pengirim tersebut. Apabila kata depan dari pesan yang diambil pada tabel Receive tidak ada yang sesuai dengan ketentuan yang sudah dibuat pada program, maka akan dikirimkan pesan kesalahan kepada nomor pengirim, lalu method akan berakhir.
63
64
65
Gambar 3.24 Diagram alir Proses Data Tabel Receive
3.4.3.8 Diagram Alir Baca Tabel Send Saat method dimulai, dilakukan pengecekan apakah ada record yang belum diproses pada tabel Send. Jika tidak ada, maka method akan berakhir. Jika ada, maka akan diambil record yang belum diproses untuk kemudian dilanjutkan dengan method Proses Data Tabel Send, lalu method akan berakhir.
66
Gambar 3.25 Diagram alir Baca Tabel Send
3.4.3.9 Diagram Alir Proses Data Tabel Send Method ini diawali dengan mengatur status pada tabel Send dengan nilai 3. Lalu dilanjutkan dengan memanggil method ‘Proses Kirim SMS’, lalu method berakhir.
67
Start
Set Status = 3 (“Dalam Proses”)
Proses Kirim SMS
Finish
Gambar 3.26 Diagram alir Proses Data Tabel Send
3.4.3.10
Diagram Alir Proses Kirim SMS Method diawali dengan mengatur nilai awal i menjadi 0 sebagai penanda
validasi. Dilanjutkan dengan pengecekan apakah nomor tujuan diawali dengan “+”. Jika benar, maka tanda “+” tersebut dihilangkan, lalu dilanjutkan dengan method ‘Kirim SMS’. Jika tidak, maka method ‘Kirim SMS’ akan langsung dijalankan. Setelah itu diadakan pengecekan apakah pengiriman SMS sukses atau tidak. Jika tidak, maka nilai i akan bertambah 1, dan proses pengiriman SMS akan diulangi hingga nilai i melebihi 2. Jika melebihi 2, maka status pada tabel akan diset menjadi 2 (gagal), lalu method berakhir. Jika SMS sukses terkirim, maka status pada tabel akan diset menjadi 1 (terkirim), lalu method akan berakhir.
68
Start
Set int i =0
T
Nomer tujuan diawali “+” ? Y Hilangkan tanda “+”
Kirim SMS Y
Kirim SMS sukses ?
T i++
i<2
Y
T
Set Status = 1 (“Terkirim”)
Set Status = 2 (“Gagal”)
Finish
Gambar 3.27 Diagram alir Proses Kirim SMS
3.4.3.11
Diagram Alir Kirim SMS Method diawali dengan memberikan nilai awal pada cmd menjadi
“AT+CMGS=” + <nomor tujuan> + ‘enter’. Dilanjutkan dengan memasukkan pesan yang akan dikirim, lalu dilakukan perintah ‘Ctrl-Z’ untuk mengirim pesan tersebut. Setelah itu method selesai dan berakhir.
69
Start
Set String cmd = "AT+CMGS=" + <no tujuan> + ‘enter’;
‘ctrl-Z’
Finish
Gambar 3.28 Diagram alir Kirim SMS
3.4.3.12
Diagram Alir Hapus Layar Method ini hanya memiliki satu proses kerja, yaitu proses membersihkan
layar. Setelah itu method pun berakhir. Start
Bersihkan layar
Finish
Gambar 3.29 Diagram alir Hapus Layar
70 3.4.3.13
Diagram Alir Informasi Method ini hanya memiliki satu proses kerja, yaitu proses menampilkan
layar About. Setelah itu method pun berakhir. Start
Tampilkan layar about
Finish
Gambar 3.30 Diagram alir Informasi
3.4.3.14
Diagram Alir Berhenti Setelah koneksi server dihentikan, akan dilakukan pengecekan apakah
user ingin melanjutkan kembali koneksi server. Bila tidak, maka akan dilakukan looping forever hingga user memilih untuk melanjutkan koneksi server kembali. Bila betul, maka koneksi server akan berjalan kembali dan method selesai.
71
Start
Server berhenti
Pilih ‘Resume’?
T
Y
Server berjalan
FInish
Gambar 3.31 Diagram alir Berhenti
3.4.3.15
Diagram Alir Kirim Method ini memiliki dua proses kerja, yaitu proses menampilkan layar
sending message dan proses menulis pesan yang telah dikirim ke tabel Send. Setelah itu method pun berakhir.
72
Start
Tampilkan layar sending message
Tulis pesan yang dikirim ke tabel send
Finish
Gambar 3.32 Diagram alir Kirim
3.4.3.16
Diagram Alir Tutup Koneksi Method ini memiliki dua proses kerja, yaitu proses menutup serial port
dan proses menutup database. Setelah itu method pun berakhir.
Gambar 3.33 Diagram alir Tutup Koneksi
73 3.4.4
Pseudocode Start_main DOWHILE NOT Exit IF Connect THEN Make_connection ENDIF IF Clear Display THEN Do_clear_display ENDIF IF About THEN Show_about ENDIF ENDDO END
Make_connection Inisialisation Set PortStatus = OK Start the send thread Start the receive thread DOWHILE NOT Disconnect AND Inisialisasi IF Send Message THEN Send_message ENDIF
74 IF Pause THEN Thread_pause ENDIF IF Clear Display THEN Do_clear_display ENDIF IF About THEN Show_about ENDIF IF there is a response from terminal THEN Response_terminal ENDIF IF there is an activity in send_thread THEN Read_send_tabel ENDIF IF there is an activity in receive_thread THEN Read_receive_tabel ENDIF ENDDO END
Inisialisation Print “Starting Server” Print “Configuration Read”
75 Get data from xml file Get database connection parameters Get terminal connection parameters Get message parameters Load the driver to allow connection to the database Print “: - Connecting to SMS terminal. please wait.” Set error_free_connection = true Connection_to_terminal IF NOT Connection_to_terminal THEN Set error_free_connection = false ENDIF IF success connect to database AND error_free_connection = true THEN Print “- Connected to Terminal” Return true ELSE Print “- Error = Connection failed !” Return false ENDIF END
Connection_to_terminal Set Init to zero Find the requested port IF Port not found THEN
76 Print “- Error: NoSuchPortException:” Return false ENDIF Open streams to the port IF can’t open streams to the port THEN Print “- Error: Cannot get a stream to port:” Return false ENDIF Configure port for SerialDataBits Configure port for StopBits Configure port for Parity Configure port for FlowControl IF can’t configure port THEN Print “- Error: Operation not supported:” Return false ENDIF Get enumeration AT command from XML file IF Init not 0 THEN Shutdown database Close port connection Return false ENDIF Return true END
77
Send_message Display send box IF send THEN Set isitok = true IF no number destination THEN Print “Please enter cellphone number to be send” Isitok = false ENDIF IF not insert number for the destination phone number THEN Print “Please enter valid cellphone number” Isitok = false ENDIF IF there is no messages to be send THEN Print “Please enter message to be send” Isitok = false ENDIF IF the messages is longer than 160 characters THEN Print “Length of message cannot be more than 160 haracters” Isitok = false ENDIF IF Isitok = true THEN Send the messages
78 ELSE Not send the messages ENDIF ENDIF END
Thread_pause DOWHILE NOT Resume Pause all thread ENDDO Resume all thread END
Do_clear_display Clear the display END
Show_about Display about END
Response_terminal Set GetPDU to zero DO synchronized to all thread
79 IF response = “” THEN PortStatus OK ENDIF IF response start with = “+CSQ” THEN PortStatus OK ENDIF IF response start with = “+CSMS” THEN PortStatus OK ENDIF IF response start with = “OK” THEN PortStatus OK ENDIF IF response start with = “>” THEN PortStatus OK ENDIF IF response start with = “RING” THEN Reject Incoming Call ENDIF IF response start with = “+CMGW” OR “+CMGS” THEN sendagain = true ENDIF IF response start with = “+CME ERROR” OR “+CMS ERROR” OR “ERROR” THEN PortStatus ERROR
80 ENDIF IF response start with = “+CMGR” THEN GetPDU = 1 ENDIF IF response start with = “+CMT” THEN GetPDU = 1 ENDIF IF GetPDU = 1 THEN PortStatus OK Get the messages Get the sender number Get the delivery time messages Delete the messages Print sender number, delivery time messages, messages Write to database and set the status to zero ENDIF ENDDO END
Read_send_tabel Pause the receive thread Set rowfetchedctr to zero Create connection to database Read all rows from table send where status = 0
81 WHILE more records exist Set all rows in vector[rowfetchedctr] Rowfetchedctr ++ ENDWHILE Close connection to database Set rowdisplayedctr to zero WHILE (rowdisplayedctr != rowfetchedctr) Obtain data from the data vector[rowdisplayedctr] Write status to process Send_the_messages Rowdisplayedctr ++ ENDWHILE Remove vector END
Send_the_messages Set retry to zero Set sendStatus = false If destination number start with + THEN Delete + ENDIF DOWHILE retry < 2 OR sendStatus = true Send SMS IF Send SMS THEN
82 sendStatus = true ENDIF Retry ++ ENDDO IF sendStatus = true THEN Write status to delivered ELSE Write status to failed ENDIF END
Read_receive_tabel Pause the send thread Set rowfetchedctr_parsing to zero Create connection to database Read all rows from table receive where status = 0 WHILE more records exist Set all rows in vector[rowfetchedctr_parsing] rowfetchedctr_parsing ++ ENDWHILE Close connection Set rowdisplayedctr_parsing to zero WHILE (rowdisplayedctr_parsing != rowfetchedctr_parsing) Obtain data from the data vector rowdisplayedctr_parsing
83 Write status to ProcessedRcv IF message = “HELP” THEN Write to tabel send “register:REG<spasi> <spasi><password>info kode dosen: INFO<spasi><spasi><password>kirim pesan: <spasi> “ with status = 0 ENDIF IF the message start with “INFO” THEN IF message = “INFO” THEN Write to send table “ info kode dosen: INFO<spasi><spasi><password> “ with status = 0 ENDIF IF message = “INFO” + NIM + PASW THEN Set infokd = null Set_info_lecture Write to send table infokd with status 0 ENDIF IF message = “INFO” + IDLEC + PASW THEN Set inbox = null Set_inbox Write to send table inbox with status 0 ENDIF
84 ENDIF IF the message start with “REG” THEN IF message = “REG” + NIM + PASW THEN IF the students allready register THEN Update data ELSE Input new data ENDIF ELSE Print “Anda tidak berhasil register, cek NIM dan password yang Anda masukkan benar” ENDIF ENDIF IF the message start with lecture code THEN IF message=lecturecode+password+subjectcode+ classcode THEN Send broadcast the messages to all students ENDIF IF phone number sender is a student THEN Save the messages to the lecture ENDIF ENDIF ENDWHILE Remove vector
85 END
Set_info_lecture infokd = “<spasi>” Pause all thread Create connection to database Read all rows and records in idstud table Set i to zero Set n to zero WHILE more records exist IF the NIM is same THEN subcode[i] = subjectcode classcode[i]= classcode i++ ENDIF ENDWHILE Read all rows and records in idlec table WHILE more records exist AND i>n IF subjectcode = subcode[n] AND classcode = classcode[n] THEN Infokd += leccode ENDIF ENDWHILE Close connection to database
86 END
Set_inbox Set n to zero, i to zero, m, k Pause all thread Create connection to database Read all rows in receive table where the messages is delivered to the lecture WHILE more records exist n++, i++ no[i] = cellno ENDWHILE END
3.4.5
Interface Perancangan layar (interface) terbagi menjadi 2 bagian, yaitu : perancangan layar pada sisi Server dan perancangan layar pada sisi Client.
3.4.5.1 Perancangan Layar pada Sisi Server Perancangan layar pada sisi server terbagi atas 4 rancangan, yaitu pada layar pembuka, layar utama server, layar send message, dan layar about.
87 3.4.5.1.1
Layar Pembuka Layar ini berfungsi sebagai layar pembuka yang muncul sebelum
memasuki BiNus-SMS Server. Gambar yang ditampilkan berupa logo dari aplikasi BiNus-SMS Server.
Gambar 3.34 Rancangan Layar Pembuka
3.4.5.1.2
Layar Utama Server Setelah melewati splash screen, program akan menuju ke tampilan utama
BiNus-SMS Server. Pada bagian ini ditampilkan tabel-tabel utama Server, yaitu : Date/Time, Connection, Message. Pada tampilan ini, terdapat 3 menu utama yang bisa diakses oleh administrator, yaitu : File, Tools, dan Help. Pada menu File terdapat 5 sub-menu, yaitu : Connect, Pause, Resume, Disconnect, dan Exit. Pada menu Tools terdapat 2 sub-menu, yaitu : Clear Display dan Send Message. Pada menu Help hanya terdapat 1 sub-menu, yaitu : About.
88
Gambar 3.35 Rancangan Layar Utama
3.4.5.1.3
Layar Send Message Sebelum mengirim pesan, user terlebih dahulu harus memasukkan nomor
tujuan pada field Number, baru kemudian mengisi isi pesan pada field Message. Tombol Clear berfungsi untuk menghapus isi pesan pada field Message, sedangkan tombol Send berfungsi untuk mengirim pesan yang sudah dimasukkan.
89
Gambar 3.36 Rancangan Layar Send Message
3.4.5.1.4 Layar About Pada menu About, terdapat 2 menu, yaitu : Info dan Detail. Secara default, layar Info akan ditampilkan terlebih dahulu. Pada Info, ditampilkan logo BiNus-SMS Server serta informasi mengenai pembuat aplikasi. Pada Detail, ditampilkan informasi mengenai aplikasi BiNus-SMS Server.
Gambar 3.37 Rancangan Layar Info
90
Gambar 3.38 Rancangan Layar Detail
3.4.5.2 Perancangan Layar pada Sisi Client Perancangan layar pada sisi client terbagi atas 5 rancangan, yaitu pada : halaman Login, halaman utama, halaman Incoming Message, halaman Reply Message, dan halaman Message Status .
3.4.5.2.1 Halaman Login BiNus-SMS Client Pada bagian ini, dosen wajib memasukkan username (berupa kode dosen) dan password-nya untuk dapat mengakses BiNus-SMS Client.
Gambar 3.39 Rancangan layar Halaman Login
91 3.4.5.2.2
Halaman Utama BiNus-SMS Client Setelah berhasil login, dosen akan menuju layar halaman Home. Pada
layar ini ditampilkan 4 menu utama, yaitu : Home, Incoming Message, Message Status, dan Logout. Halaman ini juga dilengkapi oleh gambar pembuka (sambutan) dan logo BiNus.
Gambar 3.40 Rancangan layar Halaman Home
3.4.5.2.3
Halaman Incoming Message Pada halaman ini, dosen dapat membaca record isi pesan pada inbox-nya.
Record tersebut disusun berdasarkan tanggal pengiriman, nomor telepon seluler pengirim, dan isi pesan. Halaman ini juga dilengkapi dengan fitur untuk menghapus serta membalas pesan.
92
Gambar 3.41 Rancangan layar Halaman Incoming Message
3.4.5.2.4
Halaman Reply Message Pada halaman ini, dosen dapat membalas isi pesan dengan menuliskan isi
pesan pada message box lalu menekan tombol send. Tombol Clear berfungsi untuk menghapus pesan pada message box. Halaman ini juga dilengkapi dengan fitur pengukur jumlah karakter yang telah diketik pada message box. Jumlah karakter maksimum yang dapat dimasukkan adalah sebanyak 160 karakter.
Gambar 3.42 Rancangan layar Halaman Reply Message
93 3.4.5.2.5
Halaman Message Status Pada halaman ini, dosen dapat melihat record status pesan balasan yang
sudah dikirim. Record tersebut disusun berdasarkan tanggal pengiriman pesan, nomor tujuan, isi pesan, dan status kirim pesan. Halaman ini juga dilengkapi dengan fitur untuk menghapus record yang sudah tidak diinginkan.
Gambar 3.43 Rancangan layar Halaman Message Status
3.5 Skema Database Penulis menggunakan program MS Access sebagai database. Ada beberapa tabel yang digunakan untuk mendukung aplikasi server ini. Tabel send dan receive berfungsi sebagai tempat penampung data yang akan dikirim dan yang diterima. Jika output penulisan menuju file XML, data yang diterima tidak akan ditulis ke database. Tabel-tabel lainnya seperti idlec, idlecname, idstud, idstudcellno, dan idstudname, berfungsi untuk menampung data-data mahasiswa dan dosen.
94 •
Nama Tabel : Idlec Primary key : IDLEC Foreign key : LECCODE Berguna untuk menampung data dosen. Nama Field IDLEC LECCODE SUBJECTCODE CLASSCODE
Type AutoNumber Text Text Text
Keterangan No Urut Dosen Kode Dosen Kode Mata Kuliah Kode Kelas
Tabel 3.1 Keterangan untuk Tabel Idlec •
Nama Tabel : Idlecname Primary key : LECCODE Berguna untuk menampung nama dosen dan password. Nama Field LECCODE NAME PASW
Type Text Text Text
Keterangan Kode Dosen Nama Dosen Password
Tabel 3.2 Keterangan untuk Tabel Idlecname •
Nama Tabel : Idstud Primary key : IDSTUD Foreign key : NIM Berguna untuk menampung kode mata kuliah dan kode kelas mahasiswa. Nama Field IDSTUD NIM SUBJECTCODE CLASSCODE
Type AutoNumber Text Text Text
Keterangan No Urut Mahasiswa NIM Mahasiswa Kode Mata Kuliah Kode Kelas
Tabel 3.3 Keterangan untuk Tabel Idstud
95 •
Nama Tabel : Idstudcellno Primary key : IDCELL Foreign key : NIM Berguna untuk menampung nomor telepon seluler mahasiswa. Nama Field IDCELL NIM CELLNO
Type AutoNumber Text Text
Keterangan No Urut Handphone NIM Mahasiswa No. Handphone Mahasiswa
Tabel 3.4 Keterangan untuk Tabel Idstudcellno •
Nama Tabel : Idstudname Primary key : NIM Berguna untuk menampung nama mahasiswa dan password-nya. Nama Field NIM NAME PASW
Type Text Text Text
Keterangan NIM Mahasiswa Nama Mahasiswa Password
Tabel 3.5 Keterangan untuk Tabel Idstudname •
Nama Tabel : Receive Primary key : IDRECEIVE Foreign key : LECCODE Berguna untuk menampung pesan yang diterima dari terminal.
96 Nama Field IDRECEIVE IDSENDER LECCODE CELLNOSENDER TIMESTAMPS MSGR STATUSR
Type AutoNumber Text Text Text Text Text Text
Keterangan Kode Terima Pesan ID Pengirim Kode Dosen Nomor Pengirim Waktu pengiriman Isi Pesan Status Pesan
Tabel 3.6 Keterangan untuk Tabel Receive •
Nama Tabel : Send Primary key : IDSEND Foreign key : LECCODE Berguna untuk menampung pesan yang akan di kirim ke terminal. Nama Field IDSEND LECCODE DATETIME CELLNOSEND MSGS STATUSS
Type AutoNumber Text Date/Time Text Text Text
Keterangan Kode Kirim Pesan Kode Dosen Waktu pengiriman Nomor Pengirim Isi Pesan Status Pesan
Tabel 3.7 Keterangan untuk Tabel Send