Bab ini berisi kesimpulan dan saran dari hasil analisa, implementasi dan pengujian sistem.
8
BAB II LANDASAN TEORI
2. 1. Pengertian CCTV (Closed-Circuit-Television)
Definisi sederhana dari CCTV adalah sebuah kamera video digital yang difungsikan untuk memantau suatu ruang dan mengirimkan sinyal video, dimana sinyal tersebut akan diteruskan ke sebuah layar monitor. Dapat dikatakan bahwa CCTV merupakan sistem televisi tertutup yang menggunakann kamera video untuk mengambil gambar maupun video dari suatu ruangan atau tempat tertentu, yang selanjutnya ditransmisikan ke penerima dengan menampilkannya dalam monitor. CCTV digunakan dalam berbagai macam aplikasi yang meliputi keamanan, pencegahan bencana, promosi penjualan dan layanan informasi, manajemen produksi,
industrial measurement, perawatan kesehatan, serta bidang pendidikan dan militer.
Meskipun disebut televisi, namun CCTV berbeda dengan televisi
broadcast dimana sinyal ditransmisikan secara tertutup melalui titik-titik site link wireless, koneksi fiber optic, ataupun menggunakan jaringan public VPN. CCTV biasanya digunakan untuk area-area tertentu yang memputuhkan keamanan, seperti bank, pusat pedagangan (retail shop), badar udara, atau instansi militer. Selain yang telah disebutkan di atas, perangkat ini juga dapat dimanfaatkan untuk memonitor trafik lalu lintas jalan raya. Seiring berkembangnya jaman, CCTV kerap kali dimanfaatkan
oleh masyarakat umum untuk memantau kondisi di sekitar temapt tinggalnya. Maraknya tidak kejahatan yang dapat terjadi dimana pun dan kapan pun tersebut membuat pemanfaatan CCTV semakin meluas, tidak hanya terbatas pada tempat-tempat umum namun juga dapat dimanfaatkan oleh masing-masing individu yang membutuhkannya untuk memberikan suatu system keamanan bagi lingkungannya.
2. 2. Citra Digital
2.2.1. Pengertian Citra Digital
Citra adalah gambar pada bidang dua dimensi yang menggambarkan suatu visualisasi obyek. Dalam tinjauan matematis, citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dua dimensi. Citra dapat diwujudkan dalam bentuk tercetak ataupun digital. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu. Suatu citra dapat didefinisikan sebagai fungsi (x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital.
x,y) disebut dengan picture elements, image elements, pels, atau
pixels. Dalam komputer, citra digital disimpan sebagai suatu file dengan format tertentu. Format citra tersebut menunjukan cara sebuah citra digital disimpan.
2.2.2. Piksel
Setiap pixel mewakili tidak hanya satu titik dalam sebuah citra, melainkan sebuah bagian berupa kotak yang merupakan bagian terkecil (sel). Nilai dari sebuah pixel haruslah dapat menunjukkan nilai rata-rata yang sama untuk seluruh bagian dari sel tersebut. Berikut merupakan model citra untuk menunjukan pixel:
Gambar 2. 1 : Model Citra
kolom
baris
2.2.3. Pengolahan Citra Digital
Pengolahan citra merupakan pemrosesan pada citra atau gambar dengan cara memproses numerik dari gambar tersebut untuk menghasilkan suatu citra yang lain. Pemrosesan tersebut dilakukan pada masing-masing pixel atau titik dari citra yang hendak diolah. Pengolahan citra tersebut bertujuan untuk mengolah gambar sehingga menghasilkan gambar lain yang sesuai dengan keinginan.
2.2.4. Format File Citra
Format file citra standar yang digunakan saat ini terdiri dari beberapa jenis. Format-format ini digunakan dalma menyimpan citra dalam sebuah file. Setiap format memiliki karakteristik masing-masing. Beberapa format umum digunakan saat ini adalah
Bitmap (.bmp), Tagged Image Format (.tif, .tiff), Portable Network Graphics (.png), JPEG (.jpg), MPEG (.mpg), Graphics Interchange Format (.gif), RGB (.rgb), RAS (.ras), Postscript (.ps, .eps, .epfs), Portable Image File Format, PPM, PGM, PBM.
2.2.5. Threshold
Threshold adalah image processing dimana melakukan pengolahan pixel pada suatu citra atau menghilangkan beberapa pixel dan juga mempertahankan beberapa pixel sehingga
menghasilkan citra baru hasil sortir pixel yang telah dilakukan. Dalam computer vision, threshold digunakan agar dapat mempermudah dalam proses identifikasi ataupun perbandingan dari dua atau lebih citra. Berikut adalah fungsi threshold terhadap suatu citra pada persamaan (1):
Dalam threshold sendiri pada dasarnya ada dua operasi. Pertama menggunakan fungsi prediksi dari suatu koordinat pada suatu citra yaitu sumbu g(x,y) dan h(x,y) yang konstan dilakukan di dalam citra. Sementara itu, cara kedua dengan melakukan perbandingan dari hasil perbandingan sebelumnya dengan fungsi h(x,y) dengan tujuan untuk mengekstrak daerah brightness dan
contrast. Hasil threshold dari suatu image biasanya akan dipakai dalam berbagai teknik dalam computer vision seperti pencarian
contour, penggambaran contour dan tracking atau motion.
2.3. Android
Android merupakan system operasi yang dikembangkan untuk perangkat mobile berbasis Linux. Pada awalnya system operasi ini dikembangkan oleh Android Inc. yang kemudian dibeli oleh Google pada tahun 2005. Sistem operasi Android dibangun berdasarkan kernel Linux dan memiliki arsitektur sesuai dengan Gambar 2.1.
2.3.1. Applications
Lapisan ini adalah lapisan aplikasi, serangkaian aplikasi akan terdapat pada perangkat mobile. Aplikasi inti yang telah terdapat pada Android termasuk kalender, kontak, SMS, dan lain sebagainya. Aplikasi-aplikasi ini ditulis dengan Bahasa pemrograman Java.
2.3.2. Application Framework
Pengembang aplikasi memiliki akses penuh ke Android sama dengan aplikasi inti yang telah tersedia. Pengembang dapat dengan mudah mengakses infromasi lokasi, mengatur alarm, menambahkan pemberitahuan ke status bar dan lain sebagainya. Arsitektur aplikasi ini dirancang untuk menyederhanakan penggunaan kembali komponen, aplikasi apa pun dapat memublikasikan kemampuan dan aplikasi lain dapat menggunakan kemampuan mereka sesuai batasan keamanan.
2.3.3. Libraries
Satu set libraries dalam Bahasa C/C++ yang digunakan oleh berbagai komponen pada system Android.
2.3.4. Android Runtime
fungsi yang tersedia di libraries inti dari Bahasa pemrograman Java. Setiap aplikasi akan berjalan sebagai proses sendiri pada
Dalvik Virtual Machine (VMM).
2.3.5. Linux Kernel
Android bergantung pada Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memeori, manajemen proses, network stack, dan model driver. Kernel juga bertindak sebagai lapisan antara hardware dan seluruh software.
Gambar 2. 2 : Arsitektur Android
2.3.6. Kamera
Kamera merupakan sensor paling terlihat dan sering digunakan di piranti android. Ada 2 cara untuk mengakses kamera,
yaitu cara pertama dengan mendeklarasikan intent dan cara kedua dengan class Camera, yang menyediakan antarmuka kamera custom yang bias digunakan sesuai kebutuhan. Pada cara kedua, diperlukan user permission untuk androidmanifest.xml. Pada Android, kamera diakses dengan menggunakan class Camera dan SurfaceView.
Class Camera meungkinkan Anda mengubah setting, preview, dan mengambil gambar diam dari kamera. Class SurfaceView ini digunakan untuk menampilkan preview dari user. Untuk memakai fitur kamera, Anda harus menggunakan
permission di manifest, yaitu dengan
android.permission.CAMERA permission.
2.4. Open Computer Vision (OpenCV)
OpenCV merupakan framework untuk membantu dalam membangun sistem yang menggunakan teknologi Computer Vision yang mendukung terhadap Intel Image Processing library (IPL). OpenCV merupakan Open Source Computer Vision library dijalankan dibawah Linux, Windows, dan MacOS X. OpenCV didesain utnuk efisiensi komputasi dan dengan fokus yang kuat pada aplikasi realtime. Salah satu tujuan OpenCV adalah menyediakan infrastruktur computer vision
sederhana untuk digunakan yang membantu seseorang membangun aplikasi yang cukup canggih dengan cepat. Library OpenCV berisi lebih
dari 500 fungsi yang mencakup banyak ruang lingkup dalam vision, termasuk inspeksi produk pabrik, pencitraan medis, keamanan, user interface, kalibrasi kamera, stereo vision, dan robotika.
2.4.1. Background Subtraction
Metode Background Subtraction merupakan metode yang digunakan untuk melihat perbedaan antara current image dan
background image untuk mendeteksi obyek bergerak. Setelah
background image B(X,Y) diperoleh, kurangi background image
B(X,Y) dari current frame F(X,Y). Jika perbedaan piksel lebih besar dari threshold T yang ditetapkan, maka diketahui bahwa piksel tersebut muncul dari obyek yang bergerak, jika tidak merupakan piksel background. Rumus yang didapatkan adalah sebagai berikut:
Dalam OpenCV terdapat operasi pemrosesan gambar dengan menggunakan metode Background Subtraction. Salah satunya adalah absdiff(). Fungsi dari absdiff() itu sendiri adalah untuk menghitung perbedaan mutlak per-elemen antara dua array atau antara array dan skalar. Fungsi absdiff() tersebut adalah sebagai berikut:
Keterangan parameter untuk fungsi absdiff() di atas adalah sebagai berikut:
src1 : input array atau scalar pertama src2 : input array atau scalar kedua
dst : output array yang mempunyai ukuran yang sama dan tipe sebagai input array.
2.5. SMS (Short Message Service)
SMS (Short Message Service) atau Layanan Pesan Singkat memungkinkan pesan teks yang akan dikirim dan diterima ke dan dari telepon seluler. Teks dapat terdiri dari kata-kata atau angka atau kombinasi keduanya. Setiap pesan singkat hingga 160 karakter ketika huruf latin digunakan, dan 70 karakter ketika huruf non-latin yang digunakan.
Framework android menyediakan akses penuh ke fungsi SMS menggunakan class SmsManager. Versi awal android meletakkan SmsManager di paket android.telephony.gsm. Tetapi, sejak Android 1.5 di mana smsManager mendukung standar GSM dan CDMA, maka SmsManager sekarang digantikan di paket android.telephony.
2.6. Intents
Android menggunakan class Intent untuk melakukan aksi, berubah dari layar satu ke layar yang lain. Dua hal utama yang perlu diperhatikan pada struktur class intent adalah aksi yang dilakukan dan data yang
dibawa. Aksi yang dilakukan dinyatakan dengan perintah seperti VIEW, PICK, EDIT, dan sebagainya. Sedangkan datanya dinyatakan pada URI (Uniform Resource Indicator). Sebuah class intent tidak dapat melakukan sendiri, namun membutuhkan sebuah intent filter dan intent receiver. Intent receiver akan menerima semua activity yang diberikan, kemudian oleh intent filter akan dipilih aksi mana yang akan dijalankan.
Intents merupakan bagian utama dari aplikasi, yaitu activities,
services, dan broadcast recievers yang diaktifkan melalui pesan. Intents
melayani mekanisme untuk melewatkan pesan antar aplikasi maupun dalam aplikasi itu sendiri. Intents juga dapat digunakan untuk memulai
activity. Dengan intents dapat menyiarkan action yang diinginkan (misalnya: menelepon) melalui system ke aplikasi lain untuk menanganinya. Singkatnya, intent ini digunakan jika Anda ingin berpindah dari satu activity ke activity lainnya.
2.7. Gerak Melingkar Beraturan
Gerak melingkar beraturan adalah keadaan dimana sebuah benda bergerak dengan kelajuan sudutnya (ω = ϴ) tetap/konstan, dengan jari-jari (r) yang juga tetap/konstan.
2.7.1. Pengertian Radian
Satu radian adalah besarnya sudut tengah lingkaran yang panjang busurnya sama dengan jari-jarinya.
Jika panjang busur sama dengan jari-jari, maka ϴ = 1 radian. Satu radian dipergunakan untuk menyatakan posisi suatu titik yang bergerak melingkar (beraturan maupun tak beraturan)
atau dalam gerak rotasi. Keliling lingkaran = 2π × radius, gerakan melingkar dalam 1 putaran = 2π radian.
2.7.2. Kecepatan Linier dan Kecepatan Sudut
Kecepatan linier yang diberi notasi v adalah jalan sepanjang
keliling lingkaran (2πR) yang ditempuh dalam waktu T detik.
Kelajuan partikel P untuk mengelilingi lingkaran dapat dirumuskan:
Kecepatan anguler (sudut) yang diberi notasi ω adalah perubahan dari perpindahan sudut persatuan waktu (setiap saat). Biasanya dinyatakan dalam radian/detik, derajat perdetik, putaran perdetik (rps) atau putaran permenit (rpm).
Bila benda melingkar beraturan dengan sudut rata-rata (ω) dalam radian perdetik :
Jika 1 putaran, maka:
Dengan demikian, besarnya sudut yang ditempuh dalam 1 detik:
21
BAB III
ANALISA DAN PERANCANGAN SISTEM
Gambaran besar mengenai sistem yang akan dibangun dapat dilihat pada diagram blok di bawah ini:
Gambar 3. 1. Diagram Blok
Input pertama merupakan gambar background yang kemudian akan dibandingkan dengan input kedua yaitu gambar frame. Sistem kamera pengintai berbasis android akan memproses keduanya untuk mengetahui perubahan yang terjadi dari perbedaan antar kedua gambar terseut. Jika sistem mendapatkan adanya perubahan antara kedua gambar tersebut, maka sistem akan menghasilkan
output berupa peringatan/notifikasi berupa SMS yang ditujukan kepada pengguna sistem.
Tugas akhir ini dikembangkan melalui tahapan atau proses pengembangan perangkat lunak. Tahapan tersebut meliputi:
3. 1. Identifikasi
Sebuah sistem yang akan dibangun ini merupakan sistem kamera pengintai berbasis android. Sistem ini diharapkan mampu mendeteksi obyek yang tertangkap oleh kamera dan mampu memberikan peringatan
Gambar Background Sistem Kamera Pengintai Berbasis Android SMS Gambar Frame Input 1 Input 2 Output 1
kepada user secara real time (saat terdeteksi obyek). Sistem tersebut menerapkan teknik background subtraction dalam pemrosesan citra. Citra yang akan diolah merupakan hasil penangkapan gambar pada ruangan yang hendak diintai. Penanganan keamanan pada sistem kamera pengintai ini dilakukan dengan mengirimkan suatu peringatan berupa SMS (Short Message Service) secara otomatis kepada user saat terdapat perubahan pada ruangan yang terekam oleh sistem ini.
3. 2. Perancangan 3.2.1. Usecase
Use case mendeskripsikan sebuah interaksi satu atau lebih aktor dengan sistem atau aplikasi yang akan dibuat. Secara umum,
Use case dibuat untuk mengetahui fungsi apa saja yang ada di dalam sistem/aplikasi dan siapa saja yang berhak menggunakan fungsi-fungsi dalam aplikasi tersebut.
Pengguna pada sistem ini hanya satu. Fungsi yang dapat dijalankan oleh pengguna pada system ini adalah fungsi menerima SMS (Short Message Service) / alert, mengatur nomor telpon, dan mengatur threshold. Diagram use case dari sistem kamera pengintai dapat dilihat seperti gambar di bawah ini:
Gambar 3. 2 : Diagram Usecase
Tabel 3.1. di bawah ini merupakan gambaran umum mengenai
Usecase yang terdapat pada sistem kamera pengintai.
Tabel 3. 1. Gambaran Umum Usecase Nomor
Use Case
Nama
Usecase Deskripsi Aktor
CCTV-001 Mengaktif kan/Mema tikan Sistem
Use case ini menggambarkan proses mengaktifkan/mematikan sistem. Pengguna harus menekan sebuah tombol yang tersedia agar sistem dapat aktif.
Pengguna CCTV-002 Mengatur Nomor Telpon
Use case ini menggambarkan proses input data nomor telpon pada bagian pengaturan sistem.
Pengguna
CCTV-003
Mengatur Threshold
Use case ini menggambarkan proses input data threshold sebagai batas nilai ambang gambar yang ditangkap oleh sistem.
Pengguna CCTV-004 Menerima Pesan Singkat (SMS)
Use case ini menggambarkan proses diterimanya pesan singkat oleh pengguna sebagai peringatan yang dikirimkan oleh sistem.
Pengguna
3.2.2. Narasi Use Case
Setiap use case pada bagian sebelumnya akan dijelaskan lebih rinci dalam sebuah narasi yang merupakan deskripsi tekstual dari kejadian bisnis dan bagaimana pengguna berinteraksi dengan
Pemilik Rumah Menerima SMS / Alert
Mengatur nomor telpon
Mengatur threshold Mengaktifkan/Me-matikan sistem
sistem untuk menyelesaikan tugas tersebut. Narasi dari diagram
use case di atas, dapat dilihat pada lampiran 1.
3.2.3. Diagram Aktivitas
Diagram aktivitas merupakan diagram yang menjelaskan aktivitas pengguna dengan sistem.
3.2.3.1. Diagram Aktivitas Mengaktifkan/Mematikan Sistem
Sistem kamera pengintai aktif Tekan tombol Start/Stop
Aktor Sistem
Berhenti?
Ya
Tekan tombol Start/Stop Sistem kamera pengintai tidak aktif
3.2.3.2. Mengatur Nomor Telpon
Menampilkan halaman Settings Tekan menu Settings
Aktor
Pilih pengaturan Set Phone Number
Memasukkan nomor telpon user
Ada?
Ya
Ganti nomor telpon yang ada dengan yang
baru dimasukkan.
Tidak
Sistem
Buat file baru. Simpan nomor
telpon. Tekan OK
Tidak
Cek file nomor telpon
Simpan?
Ya
3.2.3.3. Mengatur Threshold
Menampilkan halaman Settings Tekan menu Settings
Aktor
Pilih pengaturan Set Threshold Memasukkan besarnya threshold Sistem Tekan OK Tidak Simpan? Ya Tekan Cancel Ada? Ya
Ganti threshold yang ada dengan yang baru
dimasukkan.
Tidak
Buat file baru. Simpan threshold.
3.2.3.4. Menerima Pesan Singkat/SMS
Aktor Sistem
Ambil gambar dengan kamera
Ya
Ada perubahan?
Tidak
Kirim pesan singkat Terima pesan singkat
28
3.2.4. Diagram Sekuen
3.2.4.1. Mengaktifkan/Mematikan Sistem
Pengguna MainActivity.java SurfacePreview.java onCreate (Bundle savedInstanceState) activity_main.xml findViewById (R.id.button) Buka aplikasi
Klik tombol Start/Stop Motion Detector
onResume() open() onClick(View arg0) Camera.java SurfacePreview (this, mCamera) DetectMotion()
Gambar tertangkap kamera Tampilkan pada layar
29
3.2.4.2. Mengatur Nomor Telpon
Pengguna MainActivity.java onCreate
(Bundle savedInstanceState) settings.xml
Buka menu
Pilih menu Settings
onActivityResult
(int requestCode, int resultCode, Intent data)
SavePhone()
UserSettingActivity.java
Pilihan menu
Pilih menu Set Phone Number
File.java
createNewFile() Nomor telpon tersimpan
30 3.2.4.3. Mengatur Threshold Pengguna MainActivity.java onCreate (Bundle savedInstanceState) settings.xml Buka menu
Pilih menu Settings
onActivityResult
(int requestCode, int resultCode, Intent data)
SaveThreshold() UserSettingActivity.java Pilihan menu Pilih menu Set Threshold File.java createNewFile() Threshold tersimpan
31
3.2.4.4. Menerima Pesan Singkat/SMS
Pengguna MainActivity.java
FileOutputStream.java Citra digital
Sistem aktif
isMotionDetected
(byte[] data1, byte[] data2, byte[] data3)
write(data) savePicture(byte[] data) Camera.java
sendSMS
(String phoneNumber, String message)
Core.java
absdiff(mat2, mat1, d1)
absdiff(mat3, mat1, d2)
bitwise_and(d1, d2, result)
norm(result)
SmsManager.java
sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI) Pesan Singkat Dikirim
32 3.2.5. Diagram Kelas Activity MainActivity SurfacePreview SurfaceView SurfaceHolder UserSettingActivity PreferenceActivity activity_main settings SmsManager Camera File Core FileOutputStream
3.2.6. Antarmuka
3.2.6.1. Antarmuka Sistem
Antarmuka yang digunakan merupakan antarmuka sederhana yang menampilkan sebuah citra yang tertangkap oleh kamera pada smartphone android. Diperlukan sebuah tombol start/stop untuk memulai atau menghentikan kerja sistem dalam menangkap gambar. Gambaran dari antarmuka sistem ini dapat dilihat pada gambar berikut:
Gambar 3. 2 : Antarmuka Sistem
3.2.6.2. Antarmuka Menu Sistem
Antarmuka menu pada sistem ini cukup sederhana. Hanya terdapat satu menu yang dapat
Start/stop motion detector Image View
digunakan oleh pengguna, yaitu menu Settings.
Gambar 3. 3 : Antarmuka Menu Sistem
3.2.6.3. Antarmuka Menu Item Sistem
Terdapat dua buah menu item pada pilihan menu Settings, yakni menu item untuk mengatur nomor telpon dan menu item untuk mengatur threshold. Berikut merupakan gambaran menu item yang disediakan:
Start/stop motion detector
Settings
Gambar 3. 4 : Antarmuka Menu Item Sistem
Saat memilih menu item Set Phone Number, maka tampilannya akan seperti gambar dibawah ini:
Gambar 3. 5 : Antarmuka Set Phone Number
SETTINGS
Set Phone Number
Set Threshold
SETTINGS
Set your phone number
Set the threshold
Set Phone Number
Saat memilih menu item Set Threshold, maka tampilannya akan seperti gambar dibawah ini:
Gambar 3. 6 : Antarmuka Set Threshold
3.2.7. Desain Proses
Proses 1. Menyimpan nomor telpon tujuan
Proses ini untuk mengatur penyimpanan nomor ponsel dari user sebagai penerima pesan singkat (SMS) dari sistem. Cara kerja dari proses ini dijelaskan dengan pseudocode berikut:
1. Mulai.
2. Baca nomor telpon.
3. Tentukan lokasi penyimpanan file. 4. Jika file belum ada, lakukan langkah 5. 5. Buat file baru.
6. Tulis nomor telepon yang dibaca ke dalam file tersebut.
Set Threshold
7. Selesai
Proses 2. Menyimpan threshold
Proses ini untuk mengatur penyimpanan threshold yang berguna untuk pendeteksi obyek. Cara kerja dari proses ini dijelaskan dengan pseudocode berikut:
1. Mulai.
2. Baca threshold.
3. Tentukan lokasi penyimpanan file. 4. Jika file belum ada, lakukan langkah 5. 5. Buat file baru.
6. Tulis threshold yang dibaca ke dalam file tersebut. 7. Selesai.
Proses 3. Merubah gambar menjadi matriks
Proses ini untuk merubah gambar yang tertangkap kamera menjadi bentuk matriks agar lebih mudah untuk dilakukan pemrosesan lebih lanjut. Cara kerja dalam proses ini dijelaskan dalam pseudocode berikut:
1. Mulai.
2. Baca ukuran gambar Bitmap masukkan dalam variabel bitmap. 3. Baca ukuran panjang gambar bitmap sebagai kolom matriks,
Masukkan dalam variabel tmp.
4. Ubah gambar Bitmap menjadi Matriks berdasarkan bitmap dan tmp.
5. Selesai.
Proses 4. Mendeteksi Obyek
Peoses ini untuk mendeteksi perubahan yang terdapat pada gambar yang ditangkap dengan memproses matriks dari gambar awal dengan gambar setelahnya. Cara kerja dalam proses ini dijelaskan dalam pseudocode berikut:
1. Mulai.
2. Panggil method untuk merubah gambar menjadi matriks dengan menampung inputan dari parameter berupa byte array data1, data2, dan data3 yang selanjutnya disimpan dalam matriks mat1, mat2, dan mat3.
3. Simpan panjang dan lebar dari mat1 ke dalam matriks d1, d2, dan result.
4. Panggil method absdiff untuk menghitung perbedaan antara matriks mat2, mat1, dan d1.
5. Panggil method absdiff untuk menghitung perbedaan antara matriks mat3, mat1, dan d2.
6. Panggil method bitwise_and untuk menghitung bit pada d1, d2, dan result.
7. Panggil method getThreshold untuk mendapatkan nilai threshold yang telah disimpan.
8. Set threshold gambar dari matriks result
9. Panggil method norm untuk menormalisasi matriks result. 10.Selesai.
Proses 5. Menyimpan gambar
Proses ini untuk menyimpan gambar yang tertangkap oleh kamera sebagai dokumentasi untuk user. Cara kerja dalam proses ini dijelakan dalam pseudocode berikut:
1. Mulai.
2. Tentukan lokasi penyimpanan beserta format nama gambar yang disimpan.
3. Baca array byte dari gambar dan tulis dalam file gambar. 4. Selesai.
Proses 6. Mengirim pesan singkat (SMS)
Proses ini untuk mengirim pesan singkat yang berisi peringatan bagi user. Cara kerja dalam proses ini dijelaskan dalam pseudocode berikut:
1. Mulai.
2. SENT = “SMS_SENT”.
4. Buat sebuah PendingIntent untuk menyimpan informasi SMS_SENT.
5. Buat sebuah PendingIntent untuk menyimpan informasi SMS_DELIVERED.
6. Saat sms terkirim, buat IntentFilter untuk SENT, kemudian lakukan langkah 7 sampai 11
7. Jika RESULT_OK, tampilkan informasi “SMS sent”.
8. Jika RESULT_ERROR_GENERIC_FAILURE, tampilkan
informasi “Generic failure”.
9. Jika RESULT_ERROR_NO_SERVICE, tampilkan informasi
“No service”
10.Jika RESULT_ERROR_NULL_PDU, tampilkan informasi
“Null pdu”
11.Jika RESULT_ERROR_RADIO_OFF, tampilkan informasi
“Radio off”
12.Saat sms dikirim, buat IntentFilter untuk DELIVERED, kemudian lakukan langkah 13 sampai 14.
13.Jika RESULT_OK, tampilkan informasi “SMS delivered”
14.Jika RESULT_CANCELED, tampilkan informasi “SMS not