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.
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.
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 format-format yang ada. Sedangkan apabila format-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 ketentuan-ketentuan 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
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><NIM><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><NIM><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><NIM><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 “<Kode Dosen><spasi><Isi Pesan>”.
Contoh :
Dos01 Pertemuan berikut offclass atau tidak?
3.3.2 Dosen dengan Server
Interaksi antara dosen dengan server dirancang dengan ketentuan-ketentuan 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><Kode 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 “<Kode Dosen><spasi><Password><spasi><Kode Mata Kuliah>< spasi ><Kode Kelas>< spasi ><Isi Pesan>”.
Contoh :
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.
Tampilan Server
Tools Help
File
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
Resume Disconnect
Pause Exit
Connect
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.
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.
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
Message Status Logout
Incoming Message Home
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
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
Splash Screen
Tampilan Server Tools
File
Help klik menu file
klik menu tools
klik menu 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.
File Connect Pause Resume Disconnect Exit klik submenu connect klik submenu pause klik submenu resume klik submenu disconnect
klik submenu 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-sub-menu Send Message, administrator
dapat mengirim pesan SMS.
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.
Login Halaman Awal Message Status Incoming Message Logout klik button Incoming Message
tampilkan halaman Incoming Message
klik button Message Status tampilkan halaman Message
Status
klik button Logout
Home klik button Home
tampilkan halaman Home
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.
Incoming Message
Delete
Reply klik button Delete
klik button Reply tampilkan halaman Reply
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.
Start Pilih ‘Connect’? Pilih ‘Clear Display’? Pilih ‘About’? Pilih ‘Exit’? Buka Koneksi Finish Y T T T Y T Hapus Layar Informasi Y Y
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
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.
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.
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
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.
Start
Set int GetPDU = 0
Response = “” Response = “+CSQ” Response = “OK” Response = “+CSMS” Response = “>” Response = “RING” Response = “+CMGW” atau “+CMGS” T T T T T T Status OK Menolak telp masuk
Pesan berhasil terkirim Y Y Y Y Y Y Y Response = “+CMGR” Response = “+CMT” GetPDU = 1 GetPDU = 1 Finish T T T T Y Y H I I
Ada Respon dari Terminal / HP?
T Y
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
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 + <NIM> + <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 + <Kode Dosen> + <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 + <NIM> + <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
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 <Kode dosen>, maka akan dilakukan pengecekan apakah isi pesan adalah “<Kode dosen> + <Password> + <Kode mata kuliah> + <Kode kelas> + <Pesan>”. 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.
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.
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.
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.
Start Nomer tujuan diawali “+” ? Hilangkan tanda “+” Kirim SMS Kirim SMS sukses ? Set int i =0 i++ i < 2 Set Status = 1 (“Terkirim”) Set Status = 2 (“Gagal”) T Y T Y Finish Y T
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.
Set String cmd = "AT+CMGS=" + <no tujuan> + ‘enter’; <pesan> ‘ctrl-Z’ Start 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
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.
Start Server berhenti Pilih ‘Resume’? Server berjalan FInish T Y
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.
Start
Tampilkan layar sending message
Finish Tulis pesan yang
dikirim ke tabel send
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.
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
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”
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
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
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
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
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
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
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
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
Write status to ProcessedRcv IF message = “HELP” THEN
Write to tabel send “register:REG<spasi><nim> <spasi><password>info kode dosen:
INFO<spasi><nim><spasi><password>kirim pesan: <kode dosen><spasi><isi pesan> “ with status = 0
ENDIF
IF the message start with “INFO” THEN IF message = “INFO” THEN
Write to send table “ info kode dosen:
INFO<spasi><nim><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
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
END
Set_info_lecture
infokd = “<kd mata kuliah><spasi><kd dosen>” 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
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.
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.
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.
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.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.
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.
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.
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.
• Nama Tabel : Idlec
Primary key : IDLEC
Foreign key : LECCODE
Berguna untuk menampung data dosen.
Nama Field Type Keterangan
IDLEC AutoNumber No Urut Dosen
LECCODE Text Kode Dosen
SUBJECTCODE Text Kode Mata Kuliah
CLASSCODE Text Kode Kelas
Tabel 3.1 Keterangan untuk Tabel Idlec
• Nama Tabel : Idlecname
Primary key : LECCODE
Berguna untuk menampung nama dosen dan password.
Nama Field Type Keterangan
LECCODE Text Kode Dosen
NAME Text Nama Dosen
PASW Text 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 Type Keterangan
IDSTUD AutoNumber No Urut Mahasiswa
NIM Text NIM Mahasiswa
SUBJECTCODE Text Kode Mata Kuliah
CLASSCODE Text Kode Kelas
• Nama Tabel : Idstudcellno
Primary key : IDCELL
Foreign key : NIM
Berguna untuk menampung nomor telepon seluler mahasiswa.
Nama Field Type Keterangan
IDCELL AutoNumber No Urut Handphone
NIM Text NIM Mahasiswa
CELLNO Text 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 Type Keterangan
NIM Text NIM Mahasiswa
NAME Text Nama Mahasiswa
PASW Text Password
Tabel 3.5 Keterangan untuk Tabel Idstudname
• Nama Tabel : Receive
Primary key : IDRECEIVE
Foreign key : LECCODE
Nama Field Type Keterangan IDRECEIVE AutoNumber Kode Terima Pesan
IDSENDER Text ID Pengirim
LECCODE Text Kode Dosen
CELLNOSENDER Text Nomor Pengirim
TIMESTAMPS Text Waktu pengiriman
MSGR Text Isi Pesan
STATUSR Text 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 Type Keterangan
IDSEND AutoNumber Kode Kirim Pesan
LECCODE Text Kode Dosen
DATETIME Date/Time Waktu pengiriman
CELLNOSEND Text Nomor Pengirim
MSGS Text Isi Pesan
STATUSS Text Status Pesan