BAB III ANALISIS DAN PERANCANGAN Analisis dan perancangan sistem dalam proyek akhir ini meliputi : 3.1 Analisis 3.1.1 Analisis Masalah Setiap pemilik rumah pasti membutuhkan keamanan dan kenyamanan pada setiap rumahnya. Tingginya aktivitas manusia dalam memenuhi kebutuhan ekonomi semakin mengurangi waktu untuk berada di sekitar rumah untuk memantau kondisi rumah atau berkumpul bersama keluarga. Dengan semakin sedikitnya waktu untuk berada di sekitar rumah membuat banyak orang yang mengkhawatirkan keadaan rumahnya. Bila berpergian banyak orang yang meminta tetangga untuk memantau rumah selama mereka berpergian namun tetap saja tidak setiap waktu orang yang dimintai tolong sempat untuk memantau keadaan rumah mereka. Ada juga yang memasang alat keamanan di rumah mereka. Alat alat untuk menjaga keamanan rumah sudah banyak dibuat seiring dengan perkembangan teknologi informasi, namun masih mempunyai beberapa kendala antara lain sulit digunakan dan sulit dijangkau harganya serta tidak bisa dipantau dimana saja dan kapan saja. 3.1.2 Analisis Pemecahan Masalah Alternatif pemecahan masalah yang diberikan untuk mengatasi masalah yang ada, yaitu sebuah sistem keamanan rumah yang mempunyai ciri-ciri sebagai berikut : Berbasiskan teknologi mobile, yaitu menggunakan telepon selular sehingga mudah digunakan dan didapatkan. Menggunakan teknologi mikrokontroler ATMEGA328P. Menggunakan bahasa pemrograman Visual Basic 6.0 Menggunakan teknologi database Mysql.
3.1.3 Analisis Kebutuhan Sistem 3.1.3.1 Kebutuhan Perangkat Keras Untuk perangkat keras, disediakan beberapa hardware yang telah siap pakai sebagai berikut: a. 1 unit Arduino Mikrokontroller Arduino yang digunakan pada penelitian ini sebagai : Sangat berperan penting dalam rancang bangun sistem ini, karena berfungsi untuk: Menerima perintah dari pc Menterjemahkan perintah untuk mengendalikan lampu-lampu, tv, ac, dan lain sebagainya. Memgirimkan informasi status lampu-lampu, tv, ac, dan lain sebagainya. b. 1 unit PC/Laptop sebagai server PC/Laptop di sini sangat berperan penting, yakni untuk : - Perantara antara arduino dengan modem - Penyimpan data perintah di database - Penyimpan data nomor handphone pemilik rumah - Penyimpan data sms balasan ke pemilik rumah - Penyimpan data log alarm (kapan saja alarm rumah menyala) - simulasi tampilan rumah - Pengendali perangkat rumah melalui Desktop - Pengendali modem untuk mengirimkan maupun menerima sms - Pengendali arduino untuk mengendalikan perangkat-perangkat rumah
c. 1 unit Modem GSM Modem yang dipasang pada komputer berfungsi sebagai alat penerima pesan dan alat pengiriman pesan. Ketika pesan diterima dari pemilik rumah maka pesan langsung dibaca kemudian disimpan kedalam data base. d. 1 unit Handphone Handphone pada sistem ini cukup berperan penting, yakni merupakan perangkat yang digunakan untuk: - Penerima informasi berkaitan tentang kondisi yang terjadi di rumah - Pemberi perintah untuk mengendalikan perangkat-perangkat yang ada di rumah seperti lampu, tv, ac dan lain sebagainya - Memberikan informasi secara dini jika pintu rumah di buka dengan tidak wajar, yang mengindikasikan adanya maling. e. 1 unit Maket Rumah ( Perangkat ) Maket rumah ini di bangun untuk mensimulasikan kejadian rumah sebenarnya. Maket rumah di buat sedemikian rupa agar pada saat demonstrasi sistem maket dapat menggambarkan kejadian yang terjadi pada rumah sebenarnya. Karena maket rumah ini menggunakan tegangan rendah yakni DC 5V, sedangkan rumah sebenarnya menggunakan tegangan tinggi AC 220V, maka pada pengaplikasian di rumah sebenarnya dibutuhkan perangkat penghubung yang biasa disebut dengan relay controller yang berfungsi menggerakkan saklar dengan tegangan rendah yaitu DC 5V. 3.2 Kebutuhan Perangkat Lunak Untuk perangkat lunak yang digunakan adalah : a. Operating System Windows b. Visual Basic 6 c. Arduino Compiler
3.3 Spesifikasi Spesifikasi yang diharapkan dari sistem pendeteksi yang akan dibuat adalah : a. Tegangan masukan 5 Volt DC yang didapat dari USB. b. Media pengirim notifikasi yang digunakan adalah SMS. c. Format data yang dapat dikirimkan berupa teks. d. Sistem komunikasi data USB. e. Kartu GSM yang digunakan adalah 3 (Tri) untuk modem GSM dan IM3 untuk ponsel si pemilik rumah. f. Dapat ditempatkan dimana saja selama masih terdapat jaringan GSM. g. Format akhir data yang akan dikirim berupa teks ke nomor penerima/pemilik rumah. 3.4 Perancangan Sistem 3.4.1 Blok Diagram Sistem Gambar 3.1 Cara kerja sistem perangkat lunak Pertama kali modem.exe dinyalakan, sistem tersebut akan terkoneksi dengan perangkat modem dan terkoneksi dengan database. lalu selama modem.exe tersebut masih nyala, sistem tersebut akan melakukan rutinitasrutinitas sebagai berikut:
1. Membaca modem apakah ada sms yang masuk, jika ada maka akan ditulis ke database di table inqueue dengan spesifikasi sebagai berikut: field id = auto increment / otomatis bertambah field modem_id = menentukan id modem yang sedang terkoneksi, secara default isinya adalah '0' field msisdn = berisi nomor handphone pengirim sms field qtime = berisi waktu kapan sms tersebut di masuk field exectime = berisi waktu kapan sms tersebut di eksekusi oleh system keamanan rumah field message= berisi pesan sms yang masuk field status = berisis status apakah sms tersebut sudah di eksekusi atau belum, jika belum status berisi '0', dan jika sudah status berisi '1'. setiap ada sms masuk, maka isi field status adalah '0'. 2. Membaca database di table outqueue yang field status nya isinya '0' yang artinya adalah sms tersebut belum dikirmkan. Setelah mendapatkan baris data outqueue tersebut, maka sistem modem.exe akan memerintahkan modem untuk mengirimkan sms dengan spesifikasi sebagai berikut: field id = nomor urut antrian yang otomatis bertambah (auto increment) field modem_id = menentukan id modem yang sedang terkoneksi, secara default isinya adalah '0' field msisdn = berisi nomor handphone tujuan sms field qtime = berisi waktu kapan sms tersebut dimasukkan dalam antrian field exectime = berisi waktu kapan sms tersebut di kirimkan oleh modem.exe field message= berisi pesan sms yang akan dikirim field status = berisis status apakah sms tersebut sudah di eksekusi atau belum, jika belum status berisi '0', dan jika sudah status
berisi '1'. jika sms baru masuk antrian, maka isi field status adalah '0'. Rutinitas-rutinitas tersebut diatas akan selalu di jalankan oleh modem.exe selama modem.exe tersebut aktif dan terkoneksi dengan baik dengan modem maupun database. 3. Server secara periodik mengecek status dari mikrokontroler dan menyimpan perubahan data status tersebut. Status dari mikrokontroler berupa 1 atau 0. Ketika terjadi perubahan status pada mikrokontroler, server akan membuat suatu pesan teks berdasarkan data status yang diperoleh dari mikrokontroler. Kemudian server mengubah format pesan tersebut dari teks menjadi format PDU. Setelah itu pesan tersebut dikirim ke handphone pemilik rumah. Layanan-layanan yang disediakan melalui sms adalah sebagai berikut: Untuk mematikan atau menyalakan sistem perangkat keamanan rumah Untuk mengetahui status alat 3.5 Skema tata letak perangkat Kamar mandi Dapur TV Kamar 2 AC Ruang tamu Kamar 1 Lampu Taman Gambar 3.2 Skema Tata Letak Perangkat
Gambar 3.2 Skema Tata Letak Perangkat memperlihatkan blok diagram Perancang Bangun Sistem Pengamanan Rumah Berbasis SMS. Sistem tersebut terdiri dari rumah, arduino, server, modem sms dan handphone. Adapun perangkat rumah yang dapat terkontrol melalui system ini antara lain: pintu otomatis, sensor keamanan rumah, lampu taman, lampu ruang tamu, lampu kamar 1, lampu kamar 2, lampu dapur, lampu kamar mandi, tv, ac, alarm. Pemilik rumah dapat mengendalikan perangkat-perangkat yang ada di rumahnya melalui sms maupun langsung melalui server. Pemilik rumah akan memberikan perintah melalui sms ke nomor modem server yang telah ditentukan, lalu server akan mendeteksi, apakah nomor pengirim perintah adalah milik si pemilik rumah, jika benar maka server akan menterjemahkan perintah yang diterima dari si pemilik rumah, apakah untuk menyalakan, mematikan perangkat rumah atau membuka atau menutup pintu rumah. Setelah perintah diterjemahkan oleh server, server akan meneruskan perintah ke arduino dengan memberikan karakter khusus ke arduino. Karakter khusus ini telah di program sebelumnya ke dalam arduino, sehingga arduino memahami perintah apa yang dimaksud yang di berikan dari server ke arduino. Setelah arduino menerima karakter khusus tersebut, maka arduino akan menggerakkan perangkat-perangkat yang ada di dalam rumah tersebut, apakah menyalakan atau mematikan lampu, ac, tv, alarm, keamanan, atau membuka atau menutup pintu otomatis. Adapun metode pengendalian rumah secara langsung melalui server adalah dengan cara pemilik rumah membuka aplikasi Perancang Bangun Sistem Pengamanan Rumah Berbasis SMS di server, lalu klik tombol-tombol kendali yang diinginkan.
3.5.1Koneksi Mikrokontroller Tabel 3.1 Ilustrasi Pin Arduino Pin Fungsi 13 Lampu Taman 12 Lampu Ruang Tamu 11 Lampu Kamar 1 10 Lampu Kamar 2 9 Lampu dapur 8 Lampu Kamar mandi 7 Ac 4 Tv 6/5 Pintu 3 alarm 2 Security 3.6 Perancangan Perangkat Lunak Tabel 3.2 Perintah melalui SMS No On / Off Status Perangkat 1. on.lt Lampu taman hidup 2. off.lt Lampu taman mati
3. on.k1 Lampu kamar 1 hidup 4. off.k1 Lampu kamar 1 mati 5. on.k2 Lampu kamar 2 hidup 6. off.k2 Lampu kamar 2 mati 7. on.dpr Lampu dapur hidup 8. off.dpr Lampu dapur mati 9. on.km Lampu kamar mandi hidup 10. off.km Lampu kamar mandi mati 11. on.ac Ac hidup 12. off.ac Ac mati 13. on.pintu Pintu tertutup 14. off.pintu Pintu terbuka 15. on.tv Tv hidup 16. off.tv Tv mati 17. on.alrm Alarm aktif 18. off.alrm Alarm tidak aktif 19. on.security Security aktif 20. off.security Security non aktif
Perancang Bangun Sistem Pengamanan Rumah Berbasis SMS diatur oleh sebuah software yang disimpan pada mikrokontroler dan software yang di jalankan di PC/Server. Pada tahap perancangan sistem perangkat lunak ini, dilakukan beberapa percobaan untuk menentukan metode mana yang lebih baik dan lebih sesuai untuk diaplikasikan pada sistem ini. Pada sistem ini terdapat 2 bagian program yaitu : 1. Pemrograman pada mikrokontroler. 2. Aplikasi Program pada PC (Personal Computer). Pemrograman pada mikrokontroler ini akan didesain dengan tujuan agar dapat mengendalikan perangkat-perangkat yang ada di rumah maupun untuk mengetahui kondisi perangkat-perangkat tersebut. Sedangkan aplikasi program pada PC, didesain untuk dapat mengendalikan mikrokontroler dengan mudah sesuai dengan ketentuan karakter-karakter khusus yang telah di sesuaikan. Hal ini juga dikarenakan program pada PC dapat di desain dengan tampilan yang ramah pengguna dan aplikasi pada PC juga lebih mudah untuk di modifikasi. Lagi pula sistem ini membutuhkan database untuk menyimpan antrian sms masuk dan keluar, pencatatan waktu alarm, setting nomor ponsel pemilik rumah dan lain-lain, sehingga di butuhkan ruang data yang lebih besar dimana mikrokontroler tidak dapat menampung data tersebut. 3.7 Cara kerja sistem keamanan rumah Pertama kali sistem keamanan rumah dinyalakan, maka sistem tersebut akan terkoneksi dengan database dan terkoneksi dengan arduino. lalu sistem tersebut akan menjalankan rutinitas-rutinitas sebagai berikut: a. Rutinitas Display Refresh (Penyegaran Tampilan) Sistem tersebut akan mengirimkan karakter '?' ke arduino, dengan langsung arduino akan memberikan balasan melalui serial port seperti yang dibahas di atas (lihat cara kerja arduino pada Tabel 3.1 Ilustrasi Pin Arduino). Setelah mendapat balasan dari arduino, maka sistem keamanan rumah akan menterjemahkan balasan tersebut yang berupa data biner 11 bit menjadi
tampilan status perangkat pada rumah (jika kondisi perangkat hidup, maka tampilan pada sistem keamanan rumah statusnya akan berwarna merah, jika mati akan berwarna hitam). Rutinitas tersebut di setting akan dilakukan berulangulang setiap 100 ms, sehingga setiap kali ada perubahan kondisi perangkat rumah, maka tampilannya pun akan langsung berubah. Tabel 3.3 Keterangan Status Pin Bit ke Keterangan Status 1 Status Pintu 0:Terbuka 1: Tertutup 2 Status Lampu Taman 0:Lampu Mati 1:Lampu Hidup 3 Status Lampu R. Tamu 0:Lampu Mati 1:Lampu Hidup 4 Status Lampu Kamar 1 0:Lampu Mati 1:Lampu Hidup 5 Status Lampu Kamar 2 0:Lampu Mati 1:Lampu Hidup 6 Status Lampu Dapur 0:Lampu Mati 1:Lampu Hidup 7 Status Lampu K. Mandi 0:Lampu Mati 1:Lampu Hidup 8 Status Air Conditioner 0:Perangkat Mati 1:Perangkat Hidup 9 Status Televisi 0:Perangkat Mati 1:Perangkat Hidup 10 Status Alarm 0:Perangkat Mati 1:Perangkat Hidup 11 Status Security 0:Keamanan tidak aktif 1:Keamanan Aktif b. Rutinitas Membaca Perintah dari SMS
Sistem akan membaca database pada table inqueue dengan field status yang bernilai '0', dimana table tersebut berisi sms-sms yang masuk seperti yang dijelaskan pada "cara kerja sistem modem/engine modem (modem.exe)". sistem akan membandingkan nomor hp pengirim sms dengan nomor hp yang sudah disimpan di database pada table "msisdn". Jika berbeda, maka sistem tidak akan menggubris sms masuk tersebut. Namun jika sama, maka dapat di pastikan si pemilik rumah lah yang mengirimkan sms tersebut, lalu sistem akan menterjemahkan sms tersebut menjadi operator dan operand berdasarkan karakter "." (titik). Jika sudah mendapatkan variable operator dan operand, maka diketahui perintah yang dimaksud, misal sms yang masuk adalah "on.lt", maka akan diterjemahkan menjadi "on" sebagai operator dan "lt sebagai "operand", maka sistem akan memberikan karakter "a", dimana arduino akan menterjemahkan karakter "a" ini untuk memberikan tegangan 5V pada pin "13" yakni sebagai pengaktif lampu taman. Setelah karakter tersebut di kirimkan ke arduino, maka sistem akan mengubah field status pada table inqueue menjadi '1', untuk menandakan bahwa sms telah di eksekusi. Dan sistem akan mengisi table outqueue dengan spesifikasi sebagai berikut: field id = nomor urut antrian yang otomatis bertambah (auto increment) field modem_id = '0' field msisdn = nomor handphone pemilik rumah field qtime = waktu sekarang field exectime = dikosongkan field message= "Perintah on.lt telah berhasil di laksanakan!" field status = '0' c. Rutinitas Membaca Perintah dari PC User mengklik tombol "On" pada bagian lampu kamar 1, maka sistem akan mengirimkan karakter "c" pada arduino, lalu arduino akan menterjemahkan karakter tersebut sesuai pada table "ilustrasi pin arduino".
Setelah alat diaktifkan dan diberi sumber daya yang cukup (5V) maka arduino akan melaksanakan tugasnya secara continue. Setiap komunikasi antara pemilik rumah dan sistem keamanan rumah di catat dan di simpan oleh database, dimana database tersebut terdapat tabel inqueue (Pencatatan proses antrian pesan masuk yang di kirim khusus dari pemilik rumah ke no modem yang telah di set sebelumnya), Outqueue (Pencatatan proses antrian pesan keluar yang di kirim khusus dari pemilik rumah ke no modem yang telah di set sebelumnya), Logalarm (Proses pencatatan kapan terjadinya alarm itu berbunyi). Jika pintu ditutup dan kondisi sensor membaca bahwa kondisi pintu memang benar tertutup, maka system keamanan baru dapat diaktifkan, jika sensor pintu masih mendeteksi bahwa pintu terbuka, sistem keamanan tersebut tidak dapat di aktifkan. Hal ini mengadopsi dari sistem keamanan pintu mobil. Setelah system keamanan diaktifkan, arduino akan selalu membaca kondisi sensor pintu secara continue. Jika terjadi pembukaan pintu tanpa mematikan system keamanan terlebih dahulu, maka arduino akan membunyikan alarm dan mengirimkan SMS peringatan kepada pemilik rumah. SMS peringatan tersebut di program akan mengirimkan berulangkali setiap 3 menit selama alarm tersebut belum dimatikan. Alarm yang menyala tadi dapat di matikan melalui system di server dengan mengklik tombol off pada alarm atau pada security. Namun dapat juga di matikan melalui SMS dengan mengirimkan perintah off.alarm atau off.security.
3.8 On / Off Perangkat A. Flowchart On / Off Perangkat Start Terima Input Proses validasi no tlp T Y Proses SMS berdasarkan keyword Keyword = on T Kirim perintah off ke arduino Arduino menonaktifkan perangkat sesuai keyword Y Kirim perintah on ke arduino Arduino mengaktifkan perangkat sesuai keyword Arduino mengirimkan pesan ke komputer SMS ke no pemilik rumah End Gambar 3.3 flowchart On / Off Perangkat
B. Kalimat Deskriptif 1. Start 2. Terima Input 3. Proses validasi no tlp apabila no tlp sesuai maka 4. Jika Proses SMS berdasarkan keyword 5. Jika keyword = on maka 6. Kirim perintah ke arduino 7. Arduino akan mengaktifkan perangkat sesuai dengan keyword on.lt, on.k1, on.k2, on.km, on.dpr, on.tv, on.ac, on.rt, on.alrm, on.security 8. Jika keyword = off maka 9. Kirim perintah ke arduino 10. Arduino akan mengaktifkan perangkat sesuai dengan keyword off.lt, off.k1, off.k2, off.km, off.dpr, off.tv, off.ac, off.rt, off.alrm, off.security 11. Arduino mengirimkan pesan ke komputer perintah selesai 12. SMS ke no tlp pemilik rumah bahwa Perintah. sudah berhasil dilaksanakan!!! 13. End
3.9 Alarm A. Flowchart flowchart alarm Start Input sensor pintu Sensor Aktif Y Menyalakan Alarm Arduino mengirimkan pesan ke komputer T Mengirimkan SMS ke no pemilik rumah End Gambar 3.4 flowchart alarm
B. Kalimat deskriptif 1. Start 2. Input sensor pintu 3. Jika sensor aktif maka 4. Alarm menyala 5. Arduino mengirimkan pesan ke komputer 6. Mengirimkan SMS ke no tlp pemilik rumah bahwa alarm telah aktif 7. End
3.10 PERANCANGAN ERD Perancangan ini dibuat agar penulis dapat dengan jelas mengetahui relation (hubungan) antara entitas-entitas yang ada di dalam sistem. Queue n 1 Memiliki MSISDN Modemconf Log_alarm Gambar 3.5 Perancangan ERD 3.11 STRUKTUR TABEL Berikut merupakan struktur table yang digunakandi dalam aplikasi ini : 1. Tabel Log_alarm Tabel ini digunakan untuk menyimpan data setiap alarm berbunyi memberikan notifikasi kepada pemilik rumah. Tabel ini terdiri dari id, alarmtime. Nama table : log_alarm Tabel 3.4 Tabel log_alarm Nama Field Panjang Tipe Data id 20 bigint alarmtime datetime 2. Tabel Modemconf Tabel ini digunakan untuk menyimpan data jenis operator yang digunakan, posisi port yang digunakan, kecepatan transfer data dan status pesan. Tabel ini terdiri dari id, operator_id, port, bitrate, databit, paririty, stopbit, flowcontrol, status.
Nama table : modemconf Tabel 3.5 Modemconf Nama Field Panjang Tipe Data id 20 begin operator_id 8 varchar port 2 char bitrate 6 varchar datbit 1 char paririty 1 char stopbit 1 char flowcontrol 8 varchar status 6 smallint 3. Tabel Msisdn Tabel ini digunakan untuk menyimpan data nomor telepon pemilik rumah. Tabel ini terdiri dari msisdn Nama table : msisdn Tabel 3.6 Msisdn Nama Field Panjang Tipe Data msisdn 20 varchar 4. Tabel Queue Tabel ini digunakan untuk menyimpan data masuk pesan ( inqueue ) dan data keluar pesan ( Outqueue ), Pecatatan tanggal pesan masuk ( qtime ) dan pesan keluar / balasan pesan ( exectime ). Tabel ini terdiri dari id, in_out, msisdn, qtime, exectime, message, status Nama table : queue Tabel 3.7 Queue Nama Field Panjang Tipe Data id 20 begin In_out 6 smallint
Modem_id 11 int msisdn 20 varchar qtime datetime exectime datetime message 160 varchar status 6 smallint