• Tidak ada hasil yang ditemukan

BAB IV HASIL DAN PEMBAHASAN

4.4. Implementasi Perangkat Lunak

4.4.6. Program Untuk Google Drive

Gambar 4. 13 Konfigurasi Program Crontab untuk Google Drive

Pada gambar 4.13 merupakan konfigurasi antara Google Drive dan Raspberry Pi menggunakan Crontab. Folder yang digunakan pada Raspberry Pi adalah /home/pi/Documents/SKRIPSI dan folder yang digunakan pada Google Drive adalah folder backup. Untuk penjadwalannya dibuat setiap 10 detik sekali Crontab akan mensinkronkan antara file pada folder Raspberry Pi dan juga pada folder Google Drive. Jika terdapat penambahan video pada folder Raspberry Pi maka sistem akan mengirim file tersebut ke Google Drive.

57

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil pengujian serta analisis yang telah dilakukan, maka didapatkan kesimpulan sebagai berikut :

1. Seluruh sistem terbukti dapat berjalan dengan baik dalam mendeteksi, merekam, dan mengirim hasilnya sampai di pengguna.

2. Jarak maksimal sensor PIR dapat mendeteksi adanya sebuah pergerakan objek adalah 7 meter. Artinya pada jarak yang lebih dari 7 meter objek akan gagal terdeteksi.

3. Suhu ruangan yang lebih rendah dari suhu tubuh manusia tidak berpengaruh signifikan terhadap sensitifitas sensor PIR.

4. Pi kamera dapat mengambil gambar dengan kualitas baik dengan objek masih dapat dikenali hingga jarak 10 meter

5. Dari hasil pengujian dan informasi spesifikasi koneksi internet yang disarankan untuk implementasi sistem ini, berdasarkan delay yang didapatkan maka digunakan jaringan internet LTE Telkomsel. Hal ini karena didapatkan delay hasil pegiriman pesan deteksi objek sebesar 5,41 detik dan mengirimkan video ke Google Drive sebesar 15,25 detik.

5.2. Saran

Saran yang diberikan untuk pengembangan dan penyempurnaan penelitian ini dimasa mendatang adalah :

1. Sistem ini masih terdepat keterbatasan untuk mengamankan ruangan yang ada, karena sistem ini hanya memiliki satu alat pendeteksi yaitu sensor PIR. Sehingga disarankan untuk menambahkan alat pendeteksi baik sensor PIR ataupun sensor – sensor yang lain sesuai kebutuhan.

2. Pengembangan terhadap sistem ini sehingga terdapat fitur – fitur lain seperti live streaming dan lain sebagainya.

58

DAFTAR PUSTAKA

[1] CNN Indonesia : “Kejahatan Tertinggi di Yogya Terjadi di Sleman “ : https://www.cnnindonesia.com/nasional/20161031065421-20-168981/kejahatan- tertinggi-di-yogya-terjadi-di-sleman (Diakses Desember 2020)

[2] http://bappeda.jogjaprov.go.id/dataku/uu23/data_dasar/index/447-jumlah-kasus- pencurian?id_skpd=39 (Diakses Desember 2020)

[3] Angga Yolanda Putra, Hidayat Srihendayana dan Neilcy Tjahjamooniarsuh, 2015,

“Monitoring Kamera Pengintai Jarak Jauh Terintegrasi Dengan Google Drive Berbasis Raspberry Pi Via Internet”. Jurnal Teknik Elektro, Fakultas Teknik Universitas Tanjungpura (Diakses Desember 2021)

[4] Malik, Shadan. 2005. Enterprise Dashboards – Design and Best Practices for IT. John Wiley & Sons, Inc

[5] Few, Stephen. 2006. Information Dashboard Design. O’Reily;ISBN:0-59610016-7

[6] Indra Dharma Wijaya, Usman Nurhasan, Mula Agung Barata, 2017 “ Implementasi Raspberry Pi Untuk Rancang Bangun Sistem Keamanan Pintu Ruang Server Dengan Pengenalan Wajah Dengan menggunakan Metode Triangle Face”. Jurnal Informatika Polinema (Diakses pada Februari 2021)

[7] RaspberryPi,”Raspberry Pi 4 Model B Datasheet,” Datasheet P. 6,2019, [Online].

Available: https://static.raspberrypi.org/files/productbriefs/RaspberryPi4Product -Brief.pdf.

[8] “Raspberry Pi 4 Model B Community by element14 | element14.” [Online]. Available:

https://www.element14.com/community/community/raspberry-pi.

[9] “GPIO - Raspberry Pi Documentation,” Raspberry Pi. 2019, Accessed: Feb. 25, 2021.

[Online]. Available: https://www.raspberrypi.org/documentation/usage/gpio/.

[10] Encyclopedia, “Arsitektur Raspberry Pi,” J. Chem. Inf. Model., vol. 53, no. 9, pp.

1689–1699, 2019.

[11] “Raspberry Pi Camera Pinout - Arducam.” https://www.arducam.com/raspberry-pi- camera-pinout/ (accessed Feb. 22, 2021).

59

[12] Madcoms. 2010. Sistem Jaringan Komputer untuk Pemula. Yogyakarta: Penerbit ANDI. (Diakses Desember 2020).

[13] Raspberry Pi Foundation, “Camera Module,” Prod. Data, p. 10400, 2016, [Online]. Available:

https://www.raspberrypi.org/documentation/hardware/camera/README.md.

[14] Gambar Sensor PIR (Passive Infrared Receiver), [Online]. Available:

https://www.hwlibre.com/id/sensor-pir/

[15] …,…, Sensor PIR [Online]. Available :

http://sainsdanteknologiku.blogspot.com/2011/07/sensor-pir-passive-infra-red.html (Diakses Februari 2021)

[16] Ayudilah Triwahida. 2000 Sistem Pengaman Rumah Dengan Sensor PIR (Passive Infared Receiver berbasis ATMEGA 8535.

[17] Sensor PIR – Media Pembelajaran Elektronika, [Online]. Avaliable : http://ferballcompany.blogspot.com/2012/04/pir-sensor.html (Diakses pada Desember 2021)

[18] Gde Sastrawangsa; Pemanfaatan Telegram Bot Untuk Automatisasi Layanan Dan Informasi Mahasiswa Dalam Konsep Smart; Konferensi Nasional Sistem &

Informatika 2017; STMIK STIKOM Bali. (Diakses Februari 2021)

[19] Y. P. Atmojo, "Bot Alert Snort dengan Telegram Bot API padaInstrusion Detection System: Studi Kasus IDS pada ServerWeb," in Seminar Nasional Sistem Informasi dan TeknologiInformasi 2018, Pontianak, 2018. ( Diakses Februari 2021)

[20] https://cloudborneo.com/cara-install-dan-konfigurasi-rclone-untuk-backup-data-ke- berbagai-layanan-cloud/ (Diakses Februari 2021)

[21] Pengertian Raspbian , http://www.raspbian.org/ (Diakses 06 April 2021 )

[22] D. Triasanti, “Konsep dasar python,” Python, pp. 1–6, 2000. (Diakses 06 April 2021)

[23] A. Muhardian, "Membuat Bot Telegram Tanpa Menulis Kode Program (Coding),"

petanikode.com, 2016. [Online]. Available: https://www.petanikode.com/bot- telegram-tanpacoding/. (Diakses Februari 2021)

LAMPIRAN 1 LISTING PROGRAM

LAMPIRAN 1 LISTING PROGRAM 1

A. Program Sistem Keamanan

import collections

def movement_detected(self):

return bool(self.pir.motion_detected) #Fungsi boolean

#Telebot

class Telebot(telepot.Bot):

def __init__(self, token_id, chat_id):

super().__init__(token_id)

self._handle = collections.defaultdict(list) self.message_loop(self._postreceive)

self.chat_id = chat_id

L-2

return tuple(args[1:])

def _authorized_chat_id(self, incoming_chat_id):

return bool(int(self.chat_id) == int(incoming_chat_id)) def _postreceive(self, msg):

incoming_chat_id = msg['chat']['id']

self.command = msg['text']

if self._authorized_chat_id(incoming_chat_id):

args = self._get_args()

def __init__(self, folder): #deklarasi

self.camera = PiCamera() #self.camera menyimpan nilai dari Pi Camera dari

self.registration_folder = os.path.abspath(folder)

#self.registration_folder menyimpan nilai dari directori folder untuk menyimpan video

self.record = {} #Tempat u/ menyimpan nilai dari dict yang nantinya akan berisi nilai nama dan error pada start recording def start_recording(self, delay=60):

video_h264 = os.path.join(self.registration_folder,

'vid-' + time.strftime("%H%M%S-%Y%m%d") + '.h264') #Untuk merekam video berformat .h264

video_mp4 = os.path.join(self.registration_folder,

'vid-' + time.strftime("%H%M%S-%Y%m%d") + '.mp4') #Untuk merekan video berformat .mp4

self.camera.start_recording(video_h264) #self.camera memanggil fungsi start recording yang mempunyai nilai video .h264

time.sleep(int(delay))

self.camera.stop_recording()

error = self.__convert_h264_to_mp4(video_h264, video_mp4) self.record = {

def __convert_h264_to_mp4(h264, mp4):

command = "MP4Box -add {} {}".format(h264, mp4) #konversi format dari .h264 ke mp4

try:

subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True) #saat konveresi berhasil

except subprocess.CalledProcessError as err:

error = 'FAIL:\ncmd:{}\noutput:{}'.format(err.cmd,

err.output) #saat konversi gagal, menampilkan pesan error di terminal python

subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)

except subprocess.CalledProcessError as err:

result = 'FAIL:\ncmd:{}\noutput:{}'.format(err.cmd, err.output) #Untuk menampilkam pesan error kerika folder kosong tapi user menjalan perintah /clean

return result else:

result = 'Rekaman telah dihapus.' #jika video yang telah dibuat berhasil

return result #dihapus semua maka akan menghasilkan output bertipe String yaitu 'Rekaman telah di hapus'

B. Program Config

TOKEN_ID = '2035105776:AAHVjXZDfUMNwj0IDEBBwOcmSvgr1p87dNg' CHAT_ID = '1131238925'

VIDEO_TIME = 5

REGISTRATION_FOLDER ='/home/pi/Documents/SKRIPSI'

C. Program untuk Bot Telegram

import time

from config import TOKEN_ID, REGISTRATION_FOLDER, VIDEO_TIME, CHAT_ID from GABUNGAN import Camera, MotionDetector, Telebot

camera = Camera(REGISTRATION_FOLDER) bot = Telebot(TOKEN_ID, CHAT_ID) pir = MotionDetector()

L-4

@bot.handler("/activated") def on_start():

bot.is_listen = True

return bot.send_message("Security Camera Is Activated")

@bot.handler("/stop") def on_stop():

bot.is_listen = False

return bot.send_message("Security Camera Disabled")

@bot.handler("/status") def on_status():

return bot.send_message("Sistem Aktifkan") \

if bot.is_listen else bot.send_message("Sistem dinonaktifkan")

@bot.handler("/help") def on_help():

msg = "command usage:\n"

msg += "\t/activated : Menjalankan Sistem Keamanan\n"

msg += "\t/stop : Memberhentikan Sistem Keamanan\n"

msg += "\t/status : Status Sistem Keamanan \n"

msg += "\t/clean : Hapus Semua File Pada Google Drive\n"

msg += "\t/help : Menampilkan Bantuan\n"

return bot.send_message(msg)

@bot.handler("/clean") def on_clean():

return bot.send_message(camera.purge_records()) print('Sistem Keamanan Berjalan . . .')

try:

while True:

if bot.is_listen and pir.movement_detected():

bot.send_message("Pergerakan Terdeteksi\nSistem Mulai Merekam.")

D. Program untuk Sincronisasi Google Drive

# Edit this file to introduce tasks to be run by cron.

# Each task to run has to be defined through a single line

# indicating with different fields when the task will be run

# and what command to run for the task

# To define the time you can provide concrete values for

# minute (m), hour (h), day of month (dom), month (mon),

# and day of week (dow) or use '*' in these fields (for 'any').

# Notice that tasks will be started based on the cron's system

# daemon's notion of time and timezones.

# Output of the crontab jobs (including errors) is sent through

# email to the user the crontab file belongs to (unless redirected).

# For example, you can run a backup of all your user accounts

# at 5 a.m every week with:

# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

# For more information see the manual pages of crontab(5) and cron(8)

# m h dom mon dow command

* * * * sleep 10; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

* * * * * sleep 20; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

* * * * * sleep 30; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

* * * * * sleep 40; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

* * * * * sleep 50; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

* * * * * sleep 59; /usr/bin/rclone sync /home/pi/Documents/SKRIPSI GDrive_TA:/backup &>/dev/null 2>&1

L-6

LAMPIRAN 2 DATASHEET

LAMPIRAN 2 DATASHEET 1

A. Datasheet Kamera

B. Datasheet Raspberry Pi 4 Model B

L-8

L-10

C. Datasheet Sensor PIR

L-12

LAMPIRAN 3

LAMPIRAN 3 1

A. Lembaran Revisi Pra-TA

L-14

B. Lembaran Monitoring TA

C. Lembaran Revisi TA

L-16

D. Bukti KRS

Dokumen terkait