• Tidak ada hasil yang ditemukan

BAB 3 PERANCANGAN SISTEM. Multi-threading, untuk meningkatkan kinerja server. Memiliki error-management. dapat dimodifikasi dengan cepat dan mudah.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 PERANCANGAN SISTEM. Multi-threading, untuk meningkatkan kinerja server. Memiliki error-management. dapat dimodifikasi dengan cepat dan mudah."

Copied!
59
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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

(4)

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>”.

(5)

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 :

(6)

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.

(7)

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.

(8)

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.

(9)

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

(10)

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

(11)

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.

(12)

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.

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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.

(18)
(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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

(24)

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

(25)

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.

(26)
(27)
(28)

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.

(29)

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.

(30)

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.

(31)

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.

(32)

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

(33)

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.

(34)

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.

(35)

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.

(36)

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

(37)

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”

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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.

(50)

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.

(51)

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.

(52)

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.

(53)

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.

(54)

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.

(55)

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.

(56)

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.

(57)

• 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

(58)

• 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

(59)

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

Gambar

Gambar 3.1 Cara kerja sistem
Gambar 3.11  STD Tampilan Utama Server
Gambar 3.13  STD Menu Tools
Gambar 3.14  STD Menu Help
+7

Referensi

Dokumen terkait