Anda di halaman 1dari 124

LAPORAN PROYEK AKHIR

SISTEM MONITORING KAMERA PENGAWAS


MENGGUNAKAN WEB CAMERA
MELALUI JARINGAN KOMPUTER

Disusun Oleh :

Qoit Zudhi Ahyari


NIM: 05/188841/NT/11022

PROGRAM DIPLOMA TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2010
LAPORAN PROYEK AKHIR

SISTEM MONITORING KAMERA PENGAWAS


MENGGUNAKAN WEB CAMERA
MELALUI JARINGAN KOMPUTER

Diajukan untuk Memenuhi Salah Satu Syarat dalam


Menyelesaikan Studi di Program Diploma Teknik Elektro
Fakultas Teknik Universitas Gadjah Mada
Yogyakarta

Disusun Oleh :

Qoit Zudhi Ahyari


NIM: 05/188841/NT/11022

PROGRAM DIPLOMA TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2010

ii
LEMBAR PENGESAHAN
Judul : Sistem Monitoring Kamera Pengawas Menggunakan Web Camera
Melalui Jaringan Komputer
Nama : Qoit Zudhi Ahyari
Konsentrasi : Teknik Telekomunikasi
Pembimbing : Alif Subardono, S.T., M.Eng.

Sudah disetujui oleh Progam Diploma Teknik Elektro, Fakultas Teknik,


Universitas Gadjah Mada, sebagai bagian dari syarat kelulusan untuk memperoleh
gelar Ahli Madya (A.Md.)

Ketua Program Diploma : Ir. Lukman Subekti, M.T.


NIP. 196210301993031002

Pembimbing PA : Alif Subardono, S.T., M.Eng.


NIP. 197402102002121001

TIM PENGUJI

Ketua : ......................................................
Ir. Sri Lestari, M.T.

Sekretaris : ......................................................
Nur Sulistyawati, S.T., M.T.

Penguji I : ......................................................
Ir. Rizal

Penguji II : ......................................................
Unan Yusmaniar Oktiawati, S.T., M.Sc

iii
MOTTO

“Maha Suci Allah Yang di tangan-Nyalah segala kerajaan, dan Dia Maha Kuasa
atas segala sesuatu, Yang menjadikan mati dan hidup, supaya Dia menguji kamu,
siapa di antara kamu yang lebih baik amalnya. Dan Dia Maha Perkasa lagi
Maha Pengampun”
(Al Mulk 1-2)

“Mudahkanlah jangan dipersulit, gembirakanlah jangan dibuat lari”


-Hadits-

"Either lead or follow but please don't block the road for those who would move
forward"
-Phill Karn, KA9Q-

“If Microsoft makes software for Linux, it means we won”


-doh lupa dari siapa-

iv
HALAMAN PERSEMBAHAN

Kupersembahkan kepada
Allah SWT,
Ibu, Almarhum Bapak
Kedua Kakakku
Komunitas Opensource

v
ABSTRAKSI

Sistem Monitoring Kamera Pengawas Menggunakan Web


Camera Melalui Jaringan Komputer

Sistem monitoring kamera pengawas menggunakan web camera melalui


jaringan komputer ini ide dasarnya adalah dari maraknya penggunaan CCTV dan
IP Camera seiring dengan meningkatnya kasus terorisme dan kemanan di tanah
air. Dikarenakan untuk mendapatkan CCTV dan IP Camera relatif tidak mudah
dibandingkan web kamera baik dari ketersediaan di pasar maupun dari segi harga.

Sistem monitoring kamera pengawas menggunakan web camera ini


mengadaptasi dari IP Camera atau CCTV yang biasa digunakan sebagai alat
pengawasan. Sistem ini dirancang agar dapat bekerja pada berbagai browser
sehingga sistem ini menjadi sistem yang tidak memiliki ketergantungan terhadap
sistem operasi tertentu.

Sistem monitoring kamera pengawas ini dibangun seluruhnya


menggunakan perangkat lunak bebas (Free Software) sehingga dapat digunakan
dan dikembangkan secara bebas bahkan diperbolahkan untuk mendistribusikan
ulang.

Sistem operasi server yang digunakan adalah Linux, dengan web server
Apache, database MySQL dan streaming server Motion. Seluruhnya dapat
diperoleh secara bebas melalui internet melalui website-website pengembangnya.

Selain itu penggunaan fitur AJAX dalam antarmuka dapat mempercepat


respon alat terhadap instruksi kendali yang diberikan. Sistem monitoring ini
kamera pengawas ini juga dapat merekam video hasil dari streaming tanpa batasan
waktu dengan memanfaatkan kapasitas penyimpanan hardisk pada server.

Dari pengujian alat, diketahui bahwa sistem monitoring ini dapat diakses
dengan baik melalui web browser populer seperti Mozilla Firefox, Opera dan
Microsoft Internet Explorer menggunakan Microsoft Windows maupun Linux.
Selain itu penggunaan sumberdaya komputer server cukup efisien. Sehingga
server yang digunakan dapat menggunakan komputer sekelas Pentium 4 dengan
RAM 512MB yang harganya kian terjangkau.

vi
PRAKATA

Alhamdulillahirobbil 'alamiin. Atas rahmat, hidayah dan ni'mat dari Allah

SWT, penulis dapat menyelesaikan pengerjaan proyek akhir beserta penyusunan

laporan.

Laporan proyek akhir ini disusun sebagai salah satu syarat yang harus

dipenuhi untuk menempuh ujian kelulusan program diploma Teknik Elektro

Universitas Gadjah Mada. Dalam laporan proyek akhir ini, penulis mengambil

pembahasan mengenai “SISTEM MONITORING KAMERA PENGAWAS

MENGGUNAKAN WEB CAMERA MELALUI JARINGAN KOMPUTER”.

Keberhasilan penulis untuk menyelesaikan proyek akhir ini tidak dapat

terlepas dari dukungan dari berbagai pihak. Untuk itu pada kesempatan ini penulis

mengucapkan terima kasih:

1. Allah SWT, sumber kekuatan.

2. Ibu tercinta yang selalu memberikan cinta, kasih, dan do'a di setiap

sholat malamnya. Almarhum bapak yang menjadi inspirasi dan

motivasi dalam menapaki langkah kehidupan.

3. Bapak Ir. Lukman Subekti, M.T., selaku Ketua Program Diploma

Teknik Elektro Universitas Gadjah Mada Yogyakarta.

4. Bapak Alif Subardono S.T., M.Eng. selaku dosen pembimbing yang

telah membimbing dan mengarahkan penulis dalam menyusun tugas

akhir ini.

vii
5. Bapak ibu dosen Diploma Teknik Elektro FT UGM, yang telah

memberikan bimbingan dan pengarahan selama kuliah.

6. Laboran serta seluruh staf dan karyawan Program Diploma Teknik

Elektro Universitas Gadjah Mada.

7. Teman-teman Diploma Teknik Elektro UGM 2005 yang telah

memberikan dukungan dan kebersamaan selama kuliah dan

praktikum dulu.

8. Mas Beny dan Mas Toni, kalian adalah kakak terhebat. Thank's buat

pinjaman laptopnya juga bantuan desain kerangka alatnya.

9. Saudara seperjuangan di Keluarga Muslim Alumni -Mushthofa-,

Zenni, Tomo, Radit, dkk yang senantiasa mendorong untuk segera

menyelesaikan study ini. Tomo dan Radit harus cepet nyusul!

10. Riza, Sarah, Sasa, Danti, Muna, dan rekan-rekan di Sketsa

Yogyakarta, terima kasih atas pengertiannya.

11. Adik-adik binaan di SMAN 7 Yogyakarta.

12. “Istri” tercinta -Slackware Linux-, yang setia membersamai siang-

malam.

13. Spesial untuk sahabat-sahabat yang sudah membantu pelaksanaan

sidang pendadaran, Sarah dan Zaza membantu sie konsumsi, Tomo

dan Riza membantu sie perkap, dan teman-teman yang telah memberi

dukungan dan do'a.

14. Semua pihak yang telah membantu secara langsung maupun tidak

langsung dalam penyelesaian penyusunan laporan proyek akhir ini.

viii
Apabila dalam penyusunan proyek akhir ini banyak terjadi kesalahan dan

kekurangan, penulis mohon maaf yang sebesar-besarnya. Selanjutnya, dengan

senang hati penulis akan menerima saran dan kritik untuk perbaikan kerja penulis

pada masa yang akan datang.

Akhirnya, semoga alat ini bermanfaat. Wallahu a'lam bish showab.

Yogyakarta, Maret 2010

Penulis

ix
DAFTAR ISI

HALAMAN JUDUL ............................................................................................. i

HALAMAN PENGESAHAN ............................................................................. iii

MOTTO ............................................................................................................... iv

HALAMAN PERSEMBAHAN ........................................................................... v

ABSTRAKSI ........................................................................................................ vi

PRAKATA .......................................................................................................... vii

DAFTAR ISI ......................................................................................................... x

DAFTAR GAMBAR ......................................................................................... xiii

DAFTAR TABEL ............................................................................................ xviii

BAB I PENDAHULUAN ..................................................................................... 1

1.1 Latar Belakang ..................................................................................... 1

1.2 Maksud dan Tujuan .............................................................................. 2

1.3 Permasalahan ........................................................................................ 2

1.4 Batasan Masalah ................................................................................... 2

1.5 Metode Pengumpulan Data .................................................................. 3

1.6 Sistematika Penulisan Laporan ............................................................ 3

BAB II LANDASAN TEORI .............................................................................. 5

2.1 Sistem Video Monitoring ..................................................................... 5

2.2 Perkembangan Video Streaming .......................................................... 5

2.3 Sistem Kendali ................................................................................... 11

2.4 Sistem Penggerak ............................................................................... 11

x
2.4.1. Motor Stepper ......................................................................... 12

2.4.2. Motor Stepper Unipolar .......................................................... 13

2.4.3. Motor Stepper Bipolar ............................................................ 13

2.5 Streaming Server................................................................................. 15

2.5.1. Linux ...................................................................................... 15

2.5.2. Slackware Linux ..................................................................... 23

2.5.3. Software Streaming Server ..................................................... 23

2.5.4. Web Server ............................................................................. 24

2.6 Kamera Web ....................................................................................... 25

2.7 User Interface ..................................................................................... 26

BAB III PEMBUATAN ALAT .......................................................................... 28

3.1 Sistem Penggerak dan Kendali ........................................................... 28

3.2 Sistem Video Streaming ..................................................................... 40

3.2.1. Motion ................................................................................... 41

3.3 Sistem Antarmuka Pengguna ............................................................. 53

BAB IV PENGUJIAN ALAT ............................................................................ 65

4.1 Kebutuhan Alat ................................................................................... 65

4.2 Metode Pengujian ............................................................................... 65

4.3 Pengujian Fungsional ......................................................................... 66

4.3.1. Pengujian back-end ................................................................. 66

4.3.2. Pengujian front-end ................................................................. 71

4.3.3. Penanganan Kesalahan ............................................................ 84

4.4 Pengujian Kinerja ............................................................................... 95

xi
4.4.1. Kompatibilitas ......................................................................... 95

4.4.2. Penggunaan Prosesor .............................................................. 98

4.4.3. Penggunaan RAM ................................................................. 100

4.4.4. Penggunaan Media Penyimpanan (Hard Disk) ..................... 101

4.4.5. Penggunaan Bandwidth ........................................................ 101

4.4.6. Delay Streaming ................................................................... 102

4.4.7. Putaran Kamera ..................................................................... 103

BAB V KESIMPULAN DAN SARAN ........................................................... 104

5.1 Kesimpulan ...................................................................................... 104

5.2 Saran ................................................................................................. 105

DAFTAR PUSTAKA......................................................................................... 106

LAMPIRAN ...................................................................................................... 107

xii
DAFTAR GAMBAR

Gambar 2.1 RTSP dan RTP ............................................................................... 8

Gambar 2.2 Unicast ........................................................................................... 9

Gambar 2.3 Multicast ...................................................................................... 10

Gambar 2.4 Peer-to-Peer .................................................................................. 11

Gambar 2.5 H-Bridge ...................................................................................... 14

Gambar 2.6 H-Bridge MOSFET Transistor ..................................................... 15

Gambar 2.7 Kamera Web Creative VF0470 .................................................... 25

Gambar 3.1 Susunan kumparan motor stepper unipolar ................................. 29

Gambar 3.2 Posisi netral .................................................................................. 30

Gambar 3.3 Langkah pertama .......................................................................... 30

Gambar 3.4 Langkah kedua ............................................................................. 31

Gambar 3.5 Langkah ketiga ............................................................................. 31

Gambar 3.6 Konfigurasi pin IC ULN2003A ................................................... 32

Gambar 3.7 Rangkaian Kendali Motor ............................................................ 33

Gambar 3.8 Jalur data port paralel ................................................................... 34

Gambar 3.9 Posisi netral .................................................................................. 35

Gambar 3.10 Langkah pertama .......................................................................... 36

Gambar 3.11 Langkah kedua ............................................................................. 36

Gambar 3.12 Langkah ketiga ............................................................................. 37

Gambar 3.13 Flowchart program utama ............................................................ 38

Gambar 3.14 Flowchart program fungsi delay .................................................. 38

xiii
Gambar 3.15 Program putaran motor searah jarum jam (clockwise) ................ 39

Gambar 3.16 Program putaran motor berlawanan arah jarum jam (counter

clockwise) ..................................................................................... 39

Gambar 3.17 Tampak Samping ......................................................................... 40

Gambar 3.18 Tampak Depan ............................................................................. 40

Gambar 3.19 Kerangka Lengkap ....................................................................... 40

Gambar 3.20 sNews CMS.................................................................................. 54

Gambar 3.21 Variabel Konfigurasi Server dan Database sNews ...................... 55

Gambar 3.22 Variabel Sistem sNews ................................................................. 56

Gambar 3.23 Perubahan fungsi pages() ............................................................. 57

Gambar 3.24 Pemanggilan fungsi webcam jika terdapat session ...................... 58

Gambar 3.25 Pembatasan fungsi kendali ketika tidak terdapat session ............ 58

Gambar 3.26 Fungsi webcam() untuk menampilkan video dalam antarmuka . . 59

Gambar 3.27 Penggunaan AJAX ....................................................................... 60

Gambar 3.28 Fungsi left() untuk menggerakkan kamera ke kiri ....................... 60

Gambar 3.29 Fungsi right() untuk menggerakkan kamera ke kanan ................. 61

Gambar 3.30 Fungi start() untuk mengaktifkan video streaming ..................... 61

Gambar 3.31 Fungsi kill() untuk menonaktifkan video streaming .................... 62

Gambar 3.32 Fungi restart() untuk merestart video streaming ......................... 62

Gambar 3.33 Tata letak halaman antarmuka ..................................................... 63

Gambar 3.34 Antarmuka Webcam Monitoring System ..................................... 64

Gambar 3.35 Halaman Administrasi .................................................................. 64

Gambar 4.1 Kode Program cw.c ...................................................................... 67

xiv
Gambar 4.2 Kode Program ccw.c .................................................................... 68

Gambar 4.3 Program cw gagal mengirimkan data ke port paralel .................. 68

Gambar 4.4 Program cw mengirimkan data ke port paralel, tidak terdapat error

....................................................................................................... 69

Gambar 4.5 Program ccw gagal mengirimkan data ke port paralel ................ 69

Gambar 4.6 Program ccw mengirimkan data ke port paralel, tidak terdapat

error ............................................................................................ 69

Gambar 4.7 Program Motion dijalankan ......................................................... 70

Gambar 4.8 Port 18081 dan 8080 terbuka ....................................................... 70

Gambar 4.9 Pengujian streaming pada 127.0.0.1:18081 ................................. 71

Gambar 4.10 Front-end ..................................................................................... 72

Gambar 4.11 Form login .................................................................................... 72

Gambar 4.12 Kode form login ........................................................................... 73

Gambar 4.13 Kode fungsi mathCaptcha ............................................................ 74

Gambar 4.14 Kode pengecekan username dan password .................................. 74

Gambar 4.15 Halaman administrasi .................................................................. 74

Gambar 4.16 Kode fungsi start() ........................................................................75

Gambar 4.17 Webcam secang diaktifkan .......................................................... 76

Gambar 4.18 Webcam telah aktif dan sedang melakukan streaming ................ 76

Gambar 4.19 Kode fungsi left() ......................................................................... 77

Gambar 4.20 Kode fungsi right() ....................................................................... 77

Gambar 4.21 Kode fungsi restart() .................................................................... 78

Gambar 4.22 Konfigurasi file manager ............................................................. 79

xv
Gambar 4.23 Kode fungsi filelist() .................................................................... 79

Gambar 4.24 Tampilan file manager ................................................................. 80

Gambar 4.25 Kode fungsi files() ....................................................................... 81

Gambar 4.26 Kode fungsi kill() ......................................................................... 82

Gambar 4.27 Proses menonaktifkan webcam .................................................... 82

Gambar 4.28 Pemanggilan fungsi PHP session_destroy() ................................. 83

Gambar 4.29 Proses logout ................................................................................ 84

Gambar 4.30 Pesan kesalahan login .................................................................. 85

Gambar 4.31 Webcam tidak ditemukan ............................................................. 86

Gambar 4.32 Mengaktifkan webcam tanpa login .............................................. 87

Gambar 4.33 Menggerakkan webcam saat webcam tidak aktif ........................ 88

Gambar 4.34 Menggerakkan webcam tanpa login ............................................ 89

Gambar 4.35 Merestart webcam saat webcam tidak aktif ................................. 90

Gambar 4.36 Akses file manager tanpa login .................................................... 91

Gambar 4.37 Menonaktifkan webcam saat webcam tidak aktif ........................ 92

Gambar 4.38 Logout saat tidak ada session ...................................................... 93

Gambar 4.39 Error 404 dari sisem monitoring ................................................. 94

Gambar 4.40 Error dari web server .................................................................. 94

Gambar 4.41 Tampilan pada browser Firefox 3.6 ............................................ 96

Gambar 4.42 Tampilan pada browser Opera 10 ............................................... 96

Gambar 4.43 Tampilan pada browser Internet Explorer 8 tanpa Java Applet . . 97

Gambar 4.44 Tampilan pada browser Internet Explorer 8 dengan Java Applet

..................................................................................................... 98

xvi
Gambar 4.45 Aplikasi Process Explorer pada client ........................................ 99

Gambar 4.46 Aplikasi top pada server .............................................................. 99

xvii
DAFTAR TABEL

Tabel 2.1 Spesifikasi Teknis Webcam Creative VF0470 ................................... 26

Tabel 3.1 Posisi bit data ..................................................................................... 34

Tabel 3.2 Konversi bit data ................................................................................ 35

Tabel 3.3 Bit data posisi netral ........................................................................... 35

Tabel 3.4 Bit data langkah pertama .................................................................... 36

Tabel 3.5 Bit data langkah kedua ....................................................................... 36

Tabel 3.6 Bit data langkah ketiga ....................................................................... 37

Tabel 4.1 Penggunaan bandwidth jaringan ...................................................... 101

Tabel 4.2 Pengukuran waktu proses ................................................................. 102

xviii
BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan dunia teknologi informasi dewasa ini sangatlah pesat.

Salah satu teknologi yang banyak diadaptasi beberapa tahun terakhir adalah video

streaming. Video streaming adalah sebuah layanan untuk menampilkan video

secara realtime melalui jaringan komputer, sehingga pengguna dapat melihat

kejadian yang sedang terjadi menggunakan video player atau web browser.

Saat ini aplikasi video streaming sering kita temui berupa layanan

pemantau kemacetan jalan raya di kota-kota besar, siaran televisi atau radio

melalui internet atau pada kamera keamanan CCTV (Closed-circuit Television).

Mengingat kebutuhan sistem monitoring meningkat tajam, terlebih dengan

adanya aksi teror beberapa tahun terakhir ini, kebutuhan akan teknologi video

streaming di kota-kota besar meningkat cukup tajam. Namun biaya yang harus

dikeluarkan untuk membangun sistem monitoring menggunakan kamera CCTV

sangatlah mahal. Belum lagi server streaming jika dibangun menggunakan

software proprietary akan memakan biaya yang sangat tinggi.

Untuk itu penulis mencoba membuat sebuah sistem monitoring

menggunakan web-camera sebagai alternatif yang lebih murah. Sistem

monitoring ini nantinya akan melakukan video streaming ke jaringan komputer

sederhana sehingga akses informasi dapat dilakukan dengan mudah melalui video

player atau melalui web browser.

1
2

1.2 Maksud dan Tujuan

Adapun maksud dan tujuan pembuatan sistem monitoring menggunakan

web camera melalui jaringan komputer ini adalah sebagai berikut :

1. Merancang suatu sistem monitoring alternatif dari CCTV yang lebih

murah dan terjangkau.

2. Dapat mengetahui prinsip dan cara kerja dari alat yang dibuat sehingga

dapat digunakan dalam aplikasinya.

3. Memahami piranti-piranti yang digunakan dalam peralatan ini.

1.3 Permasalahan

Teknologi video streaming bukanlah teknologi yang mudah untuk

diaplikasikan, belum lagi pembangunan teknologi ini dengan kamera CCTV dan

sistem streaming berbasis software proprietary memerlukan dana yang tidak

sedikit. Masalah keterbatasan hardware yang tersedia dan harga bandwidth di

Indonesia yang relatif masih mahal juga menjadi kendala.

1.4 Batasan Masalah

Permasalahan yang harus diselesaikan pada tugas akhir ini dibatasi pada

hal-hal berikut :

1. Kamera CCTV yang biasa digunakan akan digantikan oleh web-camera

yang berfungsi menangkap objek bergerak.


3

2. Server yang terhubung ke jaringan komputer dihubungkan dengan

menggunakan kabel dan dibangun dengan software opensource.

1.5 Metode Pengumpulan Data

Pembuatan piranti dan laporan tugas akhir ini menggunakan metode

sebagai berikut.

1. Metode Pustaka, yaitu dengan cara mempelajari buku-buku literatur yang

berhubungan dengan masalah yang dihadapi dalam pembuatan alat, baik

karakteristik software pendukung, teknik konfigurasi, dan penggunaan

software dan protokol komunikasi yang digunakan dengan maksud untuk

memperoleh data yang tepat.

2. Metode Perancangan, yaitu dengan cara mencoba-coba membuat desain

rangkaian yang dibuat.

3. Metode Pengujian, yaitu dilakukan untuk sistem menguji sistem yang

dirancang sudah sesuai bekerja dengan baik sesuai yang diharapkan atau

belum

1.6 Sistematika Penulisan Laporan

Adapun sistematika penulisan laporan ini adalah sebagai berikut.

BAB I PENDAHULUAN

Membahas tentang judul tugas akhir, latar belakang, maksud dan tujuan,

batasan masalah, metode pengumpulan data, dan sistematika penulisan.


4

BAB II LANDASAN TEORI

Membahas tentang dasar – dasar teori yang digunakan dalam

perancangan alat yang akan dibuat.

BAB III PEMBUATAN ALAT

Membahas tentang pembuatan alat, sistem penyusun dan konfigurasi

software sehingga dapat menghasilkan sistem monitoring yang dapat

digunakan sebagai alternatif CCTV.

BAB IV ANALISIS DAN PEMBAHASAN

Membahas tentang hasil pengujian dari alat yang telah dibuat, apakah

sesuai dengan yang diharapkan atau tidak.

BAB V PENUTUP

Membahas tentang kesimpulan dan saran, sehingga tugas akhir ini dapat

dikembangkan lebih lanjut.


BAB II

LANDASAN TEORI

2.1 Sistem Video Monitoring

Sistem video mointoring yang dibangun ini adalah sebagai prototipe dari

kamera pengawas yang biasa dsebut sebagai IP (Internet Protocol) Camera.

Sistem video monitoring ini dibangun menggunakan webcam sebagai pengganti

kamera CCTV. Sedangkan sistem IP yang biasanya pada IP Camera tertanam

dalam kamera digantikan menggunakan video streaming server yang dibangun

menggunakan sistem operasi Linux.

Secara keseluruhan sistem terdiri atas tiga bagian utama, yaitu sistem

kendali, streaming server, dan user interface. Sistem kendali tersusun atas sistem

mekanik penggerak, dan sistem software kendali. Sistem mekanik penggerak

menggunakan komponen utama motor stepper yang dikendalikan oleh software

melalui user interface berbasis web.

Keseluruhan sistem ini dibangun dengan software opensource, dan

berlisensi GNU General Public License, sehingga dapat digunakan dan

dikembangkan secara bebas.

2.2 Perkembangan Video Streaming

Dalam sejarah perkembangan teknologi multimedia, khususnya

menampilkannya dalam komputer barulah dapat dilakukan pada pertengahan abad

5
6

ke 20. Pada akhir tahun 1980an sampai 1990an perkembangan teknologi

komputer dapat menampilkan suara dan video melalui komputer, akan tetapi

dilakukan melalui media non-streaming seperti CD-ROM.

Media streaming baru berkembang pada akhir 1990an hingga awal tahun

2000. Mengingat sebelum itu perkembangan teknologi komputer dan jaringan

internet masih terbatas. Barulah kemudian bandwidth jaringan internet meningkat

sehingga akses ke jaringan internet semakin mudah. Ditambah perkembangan

protokol standar internet seperti TCP/IP, HTTP serta HTML menambah

popularitas internet.

Pada umumnya konten multimedia relatif besar, sehingga untuk dapat

manampilkan dalam media streaming dengan sistem on-demand streaming akan

membutuhkan media penyimpanan dengan kapasitas yang sangat besar. Tentu hal

ini membutuhkan biaya yang tinggi sehingga sulit diaplikasikan oleh perusahaan

kecil menengah.

Besar kapasitas media penyimpanan yang dibutuhkan akan dipengaruhi

oleh beberapa hal, antara lain lama durasi dan bit rate.

length×bit rate
storage size=
8×1024 .......................(Rumus 2.1)

Storage size = besar kapasitas media penyimpanan (Megabytes)

Length = panjang durasi rekaman (detik)

Bit rate = jumlah data/gambar yang direkam tiap detik (Kbps)


7

Misal satu jam video direkam dengan bit rate 300 kbit/s dengan ukuran

resolusi standar 320x240 pixels. Maka :

3.600 s×300kbit /s


=131,8359375 Megabytes
8∗1.024

Dari perhitungan tersebut dapat diketahui besar kapasitas media

penyimpanan yang diperlukan dan besar bandwidth yang dibutuhkan untuk

melakukan streaming.

Besar bandwidth yang dibutuhkan akan sangat bergantung pada protokol

streaming yang digunakan. Misal dengan protokol unicast, jika terdapat 1000

permintaan streaming, maka besar bandwidth yang dibutuhkan tiap detiknya :

300kbit /s×1.000=300.000 kbit / s

Atau setara dengan 300 Mbit/s, atau dalam satu jam akan membutuhkan

bandwidth kurang lebih 100 Gigabit. Untuk ukuran internet di Indonesia dengan

harga bandwidth yang relatif mahal penghematan bandwidth harus dilakukan

semaksimal mungkin. Sehingga pemilihan protokol streaming harus dilakukan

dengan cermat.

Beberapa jenis protokol jaringan yang dapat digunakan untuk streaming

antara lain :

• Datagram protocols, dikenal sebagai User Datagram Protocol (UDP),


8

mengirimkan dalam bentuk rangkaian paket-paket kecil, sehingga lebih

efisien dan simpel. Akan tetapi pada protokol ini tidak ada mekanisme

yang menjamin seluruh data terkirim ke penerima. Ini diserahkan

sepenuhnya kepada aplikasi untuk mendeteksi kegagalan pengiriman

dengan teknik error correction

• Real-time Streaming Protocol (RTSP), Real-time Transport Protocol

(RTP) dan Real-time Transport Control Protocol (RTCP) secara khusus

didesain untuk keperluan streaming melalui jaringan.

Gambar 2.1 RTSP dan RTP

• Transmission Control Protocol (TCP), pada protokol ini terdapat

mekanisme yang menjamin tiap bit data akan diterima dengan baik, jika

terdapat paket data yang rusak atau tidak diterima, maka client akan

meminta ulang paket tersebut. Client dapat meminimalkan efek ini dengan

menggunakan buffer. Data akan disimpan ke dalam buffer sebelum


9

menampilkannya. Akan tetapi protokol ini sulit untuk diimplementasikan

karena adanya sistem timout dan retry.

• Unicast Protocol, protokol mengirimkan secara terpisah salinan dari

server untuk tiap penerima. Unicast biasa digunakan pada sebagian besar

koneksi internet, tetapi protokol ini kurang baik ketika banyak pengguna

yang mengakses dalam waktu yang bersamaan.

Gambar 2.2 Unicast

• Multicast Protocols, dengan protokol ini data dikirimkan secara broadcast

ke seluruh client dalam jaringan. Protokol multicast dikembangkan untuk

mengurangi replikasi data yang berakibat naiknya beban server/jaringan.

Ini terjadi ketika banyak pengguna mengakses data secara sendiri-sendiri.

Protokol ini mengirimkan sebuah stream dari sumbernya ke sekelompok

penerima. Pada pengerjaannya transmisi multicast boleh jadi mudah atau

boleh jadi sulit untuk dikerjakan bergantung dari tipe dan infrastruktur

jaringan. Salah satu kekurangan dari transmisi multicast adalah hilangnya

fungsi video on-demand. Streaming dilakukan yang terus menerus dari


10

siaran radio atau televisi mengakibatkan penerima tidak dapat mengontrol

playback. Akan tetapi masalah ini dapat dikurangi dengan adanya caching

servers, digital set-top boxes, dan buffered media players.

Gambar 2.3 Multicast

• Internet Protocols Multicast, protokol ini dapat melakukan pengiriman

sebuah stream ke sekelompok penerima dalam sebuah jaringan komputer.

Salah satu tantangan dalam penggunaan IP multicast adalah router dan

firewall yang berada diantara LAN harus mengijinkan perjalanan paket

yang ditujukan ke grup multicast. Jika organisasi (seperti sekolah,

pemerintah dan jaringan intranet perusahaan) yang memberikan layanan

streaming memiliki kontrol jaringan antara server dan client, protokol

routing seperti IGMP dan PIM dapat digunakan.

• Peer-to-peer (P2P), protokol ini menyusun stream yang telah terekam

sebelumnya untuk dikirimkan antar komputer. Sistem ini dapat mencegah

terjadinya koneksi bottleneck pada server dan jaringan.


11

Gambar 2.4 Peer-to-peer

2.3 Sistem Kendali

Sistem kendali dari sistem video monitoring ini berupa program aplikasi

yang ditulis dengan bahasa pemrograman C dan dikompilasi menggunakan GNU

C Compiler (GCC). Program aplikasi ini berfungsi untuk mengirimkan data ke

port paralel yang diuhubungkan ke rangkaian penguat arus, sehingga dapat

mengatur putaran motor stepper. Putaran dapat ditentukan arahnya dengan

mengatur aliran pergeseran data yang dkirimkan ke port paralel.

Motor stepper memerlukan data yang dikirimkan ke pin-pinnya secara

berurutan agar dapat berputar. Sehingga pengaturan kecepatan dan arah putaran

ditentukan melalui data yang dibangkitkan oleh program kendali.

2.4 Sistem Penggerak

Yang dimaksud sistem penggerak adalah terkait dengan hardware dan

mekanik penggerak webcam. Komponen utama dari penggerak adalah motor

stepper dan rangkaian penguat arus dari port paralel komputer. Arus keluaran dari
12

port paralel komputer terlalu lemah sehingga tidak dapat menggerakkan motor

stepper secara langsung. Sehingga diperlukan adanya penguat arus untuk

menyuplai rangkaian motor stepper.

2.4.1. Motor Stepper

Motor stepper adalah jenis motor digital yang dikendalikan oleh

pulsa-pulsa digital. Prinsp kerja dari motor stepper hampir sama dengan

motor listrik pada umumnya. Motor stepper tersusun atas magnet dan

elektromagnet. Jika kutub magnet dan kutub elektromagnet yang

dibangkitkan sama, maka kedua magnet akan tolak menolak. Sedangkan jika

keduanya berbeda, maka akan saling tarik menarik.

Perbedaan motor stepper dengan motor listrik pada umumnya

adalah pada pembangkitan elektromagnet. Elektromagnet dalam

motorstepper dibangkitkan menggunakan pulsa digital. Setiap pulsa akan

diterjemahkan menjadi step-step putaran motor. Untuk dapat beputar, maka

pulsa yang dikirimkan harus berupa pulsa-pulsa yang kontinyu dan

berurutan pada tiap pin motor stepper. Pulsa yang tidak berurutan

mengakibatkan putaran motor yang tidak beraturan.

Motor stepper yang terdapat dipasaran pada umumnya terdiri atas

motor stepper jenis unipolar dan bipolar. Pada pengerjaan sistem monitoring

ini motor stepper yang digunakan adalah jenis motor stepper jenis unipolar

karena pertimbangan kemudahannya.


13

2.4.2. Motor Stepper Unipolar

Motor stepper jenis unipolar adalah jenis motor stepper yang

paling mudah dan paling banyak diaplikasikan dalam suatu rangkaian

elektronik. Motor stepper unipolar adalah motor stepper yang dapat

berputar dua arah tanpa harus membalik arus yang dialirkan ke dalam motor.

Hal ini dimungkinkan karena motor stepper unipolar bekerja dengan pulsa

digital. Perputaran dapat dilakukan dengan mengubah pulsa yang

dimasukkan ke dalam pin-pin motor stepper.

Susunan pin motor stepper unipolar terdiri atas pin common

connector dan pin connector coil end yang terhubung ke port data. Untuk

pin common connector dihubungkan ke sumber tegangan (12 Volt) dan pin

connector coil end dihubungkan ke port data (0 atau 12 Volt).

Motor stepper unipolar yang banyak terdapat di pasaran pada

umumnya memiliki 5 pin. 1 pin adalah pin common dan 4 lainnya adalah

pin coil end yang berfungsi sebagai masukan data berupa tegangan 0 Volt

atau 12 Volt.

2.4.3. Motor Stepper Bipolar

Motor stepper bipolar berbeda dari motor stepper unipolar. Motor

stepper bipolar dapat berputar dua arah namun dengan cara yang berbeda

dari motor stepper unipolar. Untuk membalik kutub elektromagnet dalam


14

motor stepper bipolar harus dilakukan dengan membalik arus masukan dari

motor stepper.

Motor stepper jenis ini memiliki 4 kaki yang semuanya merupakan

pin yang terhubung ke sumber tegangan, motor ini tidak memiliki pin

common connector, sehingga aplikasi dari rangkaian penyuplai arus akan

lebih rumit.

Gambar 2.5 H-Bridge

Untuk membalikkan arus listrik yang mengalr dalam motor

diperlukan rangkaian H-Bridge yang akan membalikkan arus secara teratur.

Biasanya rangkaian H-Bridge berupa komponen solid transistor MOSFET

(Metal–Oxide–Semiconductor Field-Effect Transistor). Dengan komponen

ini, proses pensaklaran akan dilakukan secara otomatis.


15

Gambar 2.6 H-Bridge MOSFET Transistor

2.5 Streaming Server

Streaming server yang digunakan untuk melakukan streaming ke

jaringan komputer secara keseluruhan dibangun menggunakan software

opensource. Baik dari sistem operasi server dan software streaming merupakan

software yang program dan kode sumber programnya tersedia secara bebas dan

dapat diperoleh dari internet dan digunakan secara bebas, baik untuk penggunaan

personal, pendidikan maupun dalam lngkungan komersial.

Server dibangun dengan sistem operasi Linux dengan varian distribusi

Slackware. Sedangkan software streaming menggunakan Motion. Selain itu, juga

dibutuhkan web server untuk keperluan user interface. Web server yang

digunakan adalah Apache. Semua software tersebut berlisensi GNU GPL (GNU

General Public License)

2.5.1. Linux

Linux adalah sebuah Operating System (OS) turunan dari UNIX,

yang merupakan implementasi independen dari standard IEEE (Institute of


16

Electrical and Electronics Engineers) untuk OS yang bernama POSIX

(Portable Operating System Interface). OS adalah perangkat lunak

(software) yang mengatur koordinasi kerja antar semua perlengkapan

perangkat keras (hardware) dalam sebuah komputer. Linux memiliki

kemampuan yang berbasis ke standard POSIX meliputi true-multitasking,

virtual memory, shared libraries, demand-loading, proper memory

management, dan multiuser. Linux seperti layaknya OS UNIX lainnya,

mendukung banyak software mulai dari TEX, X Window, GNU C/C++

sampai ke TCP/IP.

Linux adalah sistem operasi yang disebarkan secara luas dengan

bebas di bawah lisensi GNU General Public License (GPL), yang berarti

juga source code Linux tersedia. Itulah yang membuat Linux sangat spesial.

Linux masih dikembangkan oleh kelompok-kelompok tanpa dibayar, yang

banyak dijumpai di Internet, tukar-menukar kode, melaporkan bug, dan

membenahi segala masalah yang ada. Setiap orang yang tertarik bisa

bergabung dalam proyek pengembangan Linux.

Linux pertama kali dibuat oleh Linus Torvalds di Universitas

Helsinki, Finlandia. Kemudian Linux dikembangkan lagi dengan bantuan

dari banyak programmer dan hacker UNIX di seluruh dunia. Sekarang

Linux bisa diperoleh dari distribusi-distribusi yang umum digunakan,

misalnya RedHat, Mandriva, Debian, Slackware, Ubuntu, BlankOn, IGOS


17

Nusantara dan lain-lain. Kernel yang digunakan adalah sama-sama Linux

kernel, sedangkan perbedaannya hanyalah paket-paket aplikasi yang

disertakan, sistem penyusunan direktori, init style, dll.

Penggunaan Linux sebagai sistem operasi server adalah

diakarenakan pertimbangan sebagai berikut.

1. Lisensi

Linux sering disebut GNU/Linux merupakan salah satu

sistem operasi yang memiliki lisensi GNU GPL (General

Public License). Lisensi ini memungkingkan penggunaan

secara bebas oleh publik. Software yang tersedia juga banyak

memiliki lisensi yang sama atau lisensi yang mirip dengan

GNU GPL. Software ini sering disebut sebagai Free

Software. Definisi dari free software menurut Free Software

Foundation (http://www.fsf.org) adalah, sebuah bentuk

kebebasan, mengacu ke pengguna untuk memakai,

menggandakan, mendistribusikan, mempelajari, mengubah

maupun meningkatkan software tersebut. Secara spesifik ada

empat arti kebebasan:

a. Bebas menjalankan program.

b. Bebas mempelajari program dan mengadaptasi

sesuai kebutuhan.

c. Bebas mendistribusikan ulang.


18

d. Bebas meningkatkan kemampuan program dan

mempublikasikannya.

2. Sejarah

Linux memiliki warisan sejarah seperti yang dimiliki oleh

UNIX. Semua kemampuan UNIX telah diadaptasi oleh

Linux. Disamping itu kode sumber dari Linux telah diteliti

dan disempurnakan oleh ribuan programmer di seluruh dunia.

Hal yang tidak dimiliki Microsoft Windows dikarenakan

lisensi Windows tidak mengijinkan kode sumber dilihat oleh

publik.

3. Pengguna

Pengguna Linux memiliki komunitas yang cukup besar di

dunia. Komunitas ini memiliki tradisi yang baik untuk

membantu para pemula dalam menyelesaikan masalah dalam

mempelajari dan mendalami Linux.

4. Kompatibilitas

Sistem operasi Linux adalah sistem operasi yang dapat

dengan mudah berkomunikasi dengan sistem operasi lain.

Komunikasi ini dapat berupa kecocokan filesystem yang


19

memungkinkan Linux membaca dan menulis pada media

penyimpanan dengan filesystem lain, misalkan FAT, NTFS,

reiserfs, jfs dan banyak lagi jenis filesystem lain.

Selain dari kecocokan filesystem, Linux juga memiliki

kecocokan dalam hal jaringan. Misalkan dukungan file

sharing Samba yang memungkinkan Linux dapat melakukan

sharing file dengan pengguna Windows dalam jaringan

komputer.

5. Kemudahan akses perangkat

Perangkat dalam Linux dikenali sebagai file yang biasa

terletak pada direkotri “/dev”, sehingga akses ke dalam

perangkat dapat dilakukan dengan mudah.

6. Pemanfaatan memori

Linux memiliki manajemen memori yang bagus. Dalam

Linux mengenal adanya swap partition. Swap adalah suatu

virtual memory yang akan berfungsi layaknya RAM ketika

suatu program aplikasi membutuhkan memori melebihi

kapasitas fisik RAM yang tersedia.

7. Skalabilias
20

Linux dapat digunakan dalam berbagai mesin, baik dari

mesin sekecil PDA, atau mesin-mesin besar seperti server

dengan banyak processor.

8. Stabilitas

Sudah bukan rahasia lagi kalau sistem operasi Linux

memiliki stabilitas yang sangat tinggi. Dalam Linux sangat

jarang sekali ditemui adanya virus atau worm. Linux dapat

hidup tanpa install ulang atau reboot dalam jangka waktu

yang sangat lama, bahkan hingga hardware tidak memadai

(rusak). Sehingga Linux banyak dipakai sebagai server di

internet. Ketika ditemukan cacat atau bug dalam Linux,

proses bugfix dapat dengan cepat dilakukan. Hal ini

dikarenakan Linux dikelola oleh banyak orang di seluruh

dunia.

9. Layanan jaringan

Distribusi Linux pada umumnya sudah memiliki program-

program networking beserta dokumentasinya. Hal ini tentu

lebih baik jika dibandingkan dengan Windows NT, di mana

banyak fasilitas seperti telnet, NFS, dan server X Window,

tidak disertakan dalam distribusi standard dan biasanya harus


21

dibeli terpisah dari perusahaan lain, dan tentu saja

membutuhkan biaya lebih.

10. Keamanan

Linux memiliki hampir semua kemampuan UNIX,

diantaranya adalah fitur multi-user. Sistem dapat digunakan

oleh banyak pengguna secara bergantian atau bersamaan

menggunakan akses jarak jauh baik mode teks atau mode

grafis. File masing-masing user disimpan dalam ruang kerja

(home directory) sendiri-sendiri, dan dilindungi dari

pengubahan, penghapusan tanpa ijin dengan cara menerapkan

kepemilikan dan perijinan file. Masing-masing program

berjalan dengan ruang memorinya sendiri yang diproteksi

oleh sstem operasi sehingga tidak bisa mencampuri atau

mengintip proses lain.

11. Program aplikasi

Linux memiliki program aplikasi yang jumlahnya cukup

banyak, baik sebagai program aplikasi pengganti fungsi versi

Windows atau program asli Linux dengan fungsi yang

memang dikhususkan untuk Linux. Kebanyakan program

Linux merupakan program gratis namun juga terdapat


22

program belisensi komersial.

12. Scripting

Jika dalam Windows kita mengenal Batch Scripting, dalam

dunia Linux juga terdapat mekanisme pengerjaan serangkaian

tugas serupa yang disebut sebagai Shell Scripting. Kelebihan

dari Shell Scripting, dapat dijalankan secara manual atau

terjadwal, bahkan bisa memiliki tampilan grafis (GUI).

Disamping itu dukungan terhadap scripting sepenuhnya

dimiliki Linux karena sistem konfigurasi dalam Linux

tersimpan dalam format plain text sehingga dapat diakses

dengan mudah menggunakan perintah shell.

13. Peralatan problem solving

Linux menyediakan alat-alat untuk menampilkan penggunaan

memory dan CPU untuk masing-masing program, untuk

menentukan program mana (kalau ada) yang menggunakan

suatu file pada suatu saat, untuk melacak program pada saat

berjalan, dan meneruskan pesan-pesan kesalahan (error) dari

keseluruhan komputer di network ke satu komputer untuk

memudahkan pengawasan (monitoring). Hal ini dapat

mempercepat dan mempermudah pemecahan masalah.


23

2.5.2. Slackware Linux

Dalam dunia Linux, kita mengenal istilah distribusi atau distro.

Yaitu Linux yang sudah dipaketkan bersama kumpulan software aplikasi

sehingga Linux siap digunakan baik sebagai server ataupun sebagai

komputer desktop.

Slackware merupakan satu diantara beberapa distribusi Linux

tertua. Pertama kali dikembangkan pada tahun 1992 oleh Parick Volkerding

dengan menggunakan basis distribusi Linux SLS. Slackware hingga saat ini

masih aktif dikembangkan dengan filosofi akan dirilis pada saat benar-benar

siap, sehingga dalam Slackware tidak terdapat jadwal rilis reguler seperti

pada distribusi Ubuntu, Fedora dan distribusi Linux yang lain.

Dari sekian banyak jenis distribusi Linux, pemilihan Slackware

sebagai server streaming dikarenakan Slackware adalah distribusi Linux

yang mirip UNIX. Konfigurasi dalam Slackware dilakukan secara langsung

pada file-file konfigurasi. Disamping itu Slackware merupakan distribusi

Linux yang dikenal cukup stabil karena hanya memaketkan software yang

sudah teruji. Dukungan library dalam Slackware juga cukup lengkap

sehingga memudahkan ketika kita melakukan kompilasi suatu program

aplikasi dari kode sumber.

2.5.3. Software Streaming Server


24

Streaming software adalah program aplikasi yang berfungsi

menangkap obyek bergerak dari kamera dan memrosesnya hingga dapat

ditampilkan ke pengguna, misal melalui web browser atau software media

player.

Dari hasil pencarian dan beberapa kali uji coba aplikasi video

streaming yang ada, software video streaming Motion-lah yang paling sesuai

dan mudah dikonfigurasi. Motion merupakan progam aplikasi video

streaming yang dapat menampilkannya ke dalam web browser dan media

player. Motion juga dapat menyimpan hasil tangkapan kamera ke dalam file

baik dalam format gambar, atau pun video.

2.5.4. Web Server

Selain software streaming server, sistem monitoring ini juga

membutuhkan web server untuk user interface sehingga pengguna dapat

mengendalikan pergerakan dari kamera.

Web server juga memungkinkan untuk menjalankan program

aplikasi dalam sistem operasi Slackware. Misalkan untuk mengaktifkan atau

mematikan software video streaming.

Apache adalah web server yang sudah sangat banyak digunakan di

lingkungan internet. Ketangguhannya tidak diragukan lagi dan sangat

memiliki banyak fitur.


25

2.6 Kamera Web

Kamera web yang akan digunakan berfungsi sebagai pengganti kamera

CCTV. Kamera web memiliki harga yang relatif lebih murah dibandingkan

kamera CCTV atau IP Camera. Kamera web ini digunakan untuk mengambil

gambar dari obyek bergerak.

Hingga saat ini kendala yang dihadapi dalam penggunaan Linux

adalah dukungan hardware-hardware terbaru. Hal ini dikarenakan banyak

produsen yang tidak menyediakan driver Linux dari hardware yang mereka

produksi. Sehingga pemilihan kamera web harus dilakukan dengan hati-hati.

Pemilihan web kamera Creative VF0470 karena aspek dukungan dari

sistem operasi Linux. Web kamera Creative VF0470 sudah dikenali dengan baik

oleh kernel Linux terbaru.

Gambar 2.7 Kamera Web Creative VF0470


26

Tabel 2.1 Spesifikasi Teknis Webcam Creative VF0470

Fitur Keterangan
Sensor VGA Sensor
Resolusi Gambar
1.3 Megapixel 1280 x 960 (software*)
Maksimum
Resolusi Video
800 x 600@15fps (software*)
Maksimum
Manual, dapat disesuaikan melalui ring
Fokus
fokus
Interface USB 1.1 (USB 2.0 Compatible)
*Software disertakan dalam versi Windows

Isi paket pembelian


• Creative Live! Cam Notebook with USB cable
• Multi-language Quick Start Guide
• CD software* containing:
• Creative Live!® Cam Center Lite
• Creative Live!® Cam Manager
• Creative Live!® Cam Console
• Creative Photo Manager 2
• muveeNow
• SightSpeed
• Multi-language User's Guide
*Software disertakan dalam versi Windows

2.7 User Interface

User Interface adalah antarmuka pengguna dengan sistem monitoring

melalui tampilan dalam web browser. Dalam user interface ini pengguna dapat

mengatur kerja dari sistem monitoring. Pengguna dapat mengarahkan kamera ke

arah yang dikehendaki.

User interface dibangun dalam bahasa pemrograman web HTML dan


27

PHP. Penggunaan interface web dikarenakan interface ini dapat diakses

menggunakan web browser manapun, aplikasi web browser ini telah tersedia

beragam jenis dan versi dalam hampir semua sistem operasi standar sehingga

sistem monitoring dengan kamera web ini dapat diakses melalui berbagai jenis

sistem operasi (platform independent).


BAB III

PEMBUATAN ALAT

Sistem monitoring kamera pengawas menggunakan web camera melalui

jaringan komputer yang dibangun ini terdiri dari tiga bagian, sistem penggerak,

sistem video streaming, dan user interface.

Sistem penggerak dan kendali didalamnya meliputi sistem mekanik dan

software kendali. Sistem penggerak dan kendali ini berfungsi untuk memutar

kamera web kearah yang diinginkan, sehingga cakupan tangkapan kamera lebih

luas.

Sistem video streaming merupakan software yang berfungsi mengambil

gambar bergerak dengan kamera web, kemudian memprosesnya sehingga dapat

ditampilkan melalui live streaming. Software yang digunakan adalah Motion.

User interface merupakan sistem yang berhubungan langsung dengan

pengguna. User interface ini menghubungkan antara sistem penggerak, kendali

dan sistem video streaming. User interface dibangun menggunakan bahasa

pemrograman web PHP dan HTML.

3.1 Sistem Penggerak dan Kendali

Penggerak utama kamera web menggunakan motor stepper jenis unipolar.

Motor stepper ini terdiri dari empat buah coil (kumparan), masing masing

kumparan berfungsi sebagai elektromagnet yang akan membangkitkan gaya

magnet jika coil dialiri arus listrik. Coil tersebut dapat bergantian ataupun secara

28
29

bersamaan.

Konfigurasi dari kaki motor stepper jenis unipolar adalah sebagai berikut.

Gambar 3.1 Susunan kumparan motor stepper unipolar

Salah satu ujung dari masing-masing coil dihubungkan menjadi satu yang

disebut sebagai kaki common connector, sedangkan ujung-ujung yang lain yang

tidak terhubung disebut sebagai kaki coil connector.

Untuk pemasangan dengan sumber arus, kaki common connector

terhubung dengan sumber arus +12V. Sedangkan kaki coil connector lainnya

menyesuaikan keperluan. Misalkan coil elektromagnet 3 ingin dihidupkan, maka

kaki coil connector 3 harus dihubungkan dengan 0V, sedangkan kaki lain

dihubungkan dengan sumber +12V. Jika ingin menghidupkan coil elektromagnet

2, maka coil connector 2 dihubungkan 0V dan kaki lainnya dihubungkan +12V.

Untuk gerakan berputar, maka coil harus bekerja secara berurutan. Untuk

berputar ke kanan, maka urutan pengaliran arus listrk dari coil 4 – 3 – 2 – 1 – 4


30

dan seterusnya. Sedangkan untuk berputar ke kiri maka urutan aliran arus listrik

dari coil 4 – 1 – 2 – 3 – 4.

Coil 4 Coil 3 Coil 2 Coil 1


ON OFF OFF OFF

Gambar 3.2 Posisi netral

Coil 4 Coil 3 Coil 2 Coil 1


OFF ON OFF OFF

Gambar 3.3 Langkah pertama


31

Coil 4 Coil 3 Coil 2 Coil 1


OFF OFF ON OFF

Gambar 3.4 Langkah kedua

Coil 4 Coil 3 Coil 2 Coil 1


OFF OFF OFF ON

Gambar 3.5 Langkah ketiga

Dalam penerapannya, coil connector 1 sampai 4 terhubung ke jalur data

yang bersumber dari port paralel komputer (PC). Sehingga untuk menggerakkan

motor secara berputar, data yang dikirimkan ke port paralel diatur agar berubah
32

sesuai dangan dengan arah putaran yang diinginkan.

Akan tetapi motor stepper tidak bisa secara langsung dihubungkan dengan

arus dari port paralel. Hal ini dikarenakan arus keluaran port paralel tidak mampu

memenuhi kebutuhan arus motor stepper. Untuk mengatasi ini diperlukan

rangkaian penyesuai. Rangkaian penyesuai tegangan ini berfungsi mengubah data

digital dari port paralel yang memiliki tegangan keluaran +5V, agar dapat

dihasilkan keluaran +12V.

Gambar 3.6 Konfigurasi pin IC ULN2003A

Rangkaian penyesuai ini menggunakan IC ULN2003A yang didalamnya

tersusun 7 buah rangkaian Darlington. Jika port paralel mengeluarkan data 1,

(tegangan +5V). Data akan dinegasikan menjadi 0 (tegangan 0V), sehingga arus

dari VCC (+12V) akan mengalir ke pin keluaran IC ULN2003A pada pin data

yang bersesuaian. Sehingga diperoleh tegangan keluaran +12V pada pin keluaran

IC yang akan dihubungkan ke kaki coil connector motor stepper.


33

Gambar 3.7 Rangkaian Kendali Motor

Agar rangkaian ini bekerja, diperlukan data yang dikeluarkan ke port

paralalel. Untuk melakukannya, dibutuhkan program aplikasi yang berfungsi

mengirimkan data ke port paralel. Program tersebut berfungsi mengirimkan data

secara berurutan sehingga motor berputar searah jarum jam atau berlawanan arah

jarum jam. Alamat data port paralel pada komputer PC pada umumnya adalah

0x378. Untuk mengetahui alamat port paralel (parport0) tersebut dapat dilihat

pada file “/proc/ioports” dengan menjaankan perintah “cat /proc/ioports | grep

parport0” pada terminal atau console. Sehingga akan diperoleh keterangan alamat

port paralel dalam format hexadecimal.


34

Gambar 3.8 Jalur data port paralel

Untuk menentukan data yang harus dikirimkan ke alamat port paralel

tersebut, dapat dilakukan dengan pendekatan sebagai berikut.

Untuk coil yang akan diset ON data yang dikirim berupa data 1, sedangkan

coil yang diset OFF dikrimkan data 0. Data-data tersebut berupa data biner dengan

urutan dan posisi bit data sebagai berikut.

Tabel 3.1 Posisi bit data

Coil Coil 4 Coil 3 Coil 2 Coil 1


Jalur Data Data4 Data3 Data2 Data2
Bit ke 3 2 1 0

Dalam penulisan program komputer, data 4 bit biner tersebut diubah

kedalam bentuk hexadecimal. Dikarenakan data yang dibutuhkan motor stepper

adalah data 4 bit dengan hanya satu bit saja yang bernilai 1 sedangkan bit lainnya

bernilai 0, sehingga diperoleh data yang sesuai adalah 0x01, 0x02, 0x04, 0x08.
35

Tabel 3.2 Konversi bit data

Jalur Data Data4 Data3 Data2 Data2


Data (hex)
Bit ke 3 2 1 0
0 0 0 1 0x01
0 0 1 0 0x02
Data
0 1 0 0 0x04
1 0 0 0 0x08

Urutan pengiriman data tersebut disesuaikan dengan arah putar motor yang

dikehendaki. Misalkan untuk arah putaran searah putaran jarum jam (clockwise)

dapat digambarkan sebagai berikut ini.

Tabel 3.3 Bit data posisi netral

Coil Coil 4 Coil 3 Coil 2 Coil 1


Data (hex)
Port Data Data4 Data3 Data2 Data2
Data 1 0 0 0 0x08

Gambar 3.9 Posisi netral


36

Tabel 3.4 Bit data langkah pertama

Coil Coil 4 Coil 3 Coil 2 Coil 1


Data (hex)
Port Data Data4 Data3 Data2 Data2
Data 0 1 0 0 0x04

Gambar 3.10 Langkah pertama

Tabel 3.5 Bit data langkah kedua

Coil Coil 4 Coil 3 Coil 2 Coil 1


Data (hex)
Port Data Data4 Data3 Data2 Data2
Data 0 0 1 0 0x02

Gambar 3.11 Langkah kedua


37

Tabel 3.6 Bit data langkah ketiga

Coil Coil 4 Coil 3 Coil 2 Coil 1


Data (hex)
Port Data Data4 Data3 Data2 Data2
Data 0 0 0 1 0x01

Gambar 3.12 Langkah ketiga


38

Untuk arah putaran berlawanan arah putaran jarum jam

(counterclockwise), urutan pengirman data dibalik, sehingga urutannya sebagai

berikut, 0x01, 0x02, 0x04, 0x08.

Kecepatan putaran dapat diatur menggunakan delay yang didefinisikan ke

dalam fungsi delay, sehingga dapat dipanggil ulang oleh program utama. Fungsi

delay berisi looping yang berfungsi menunda pengeksekusian program utama.

Mulai

Port paralel = 0x378


Var i=integer

Port paralel Mulai


dapat diakses?

Var i=integer
i=1 Gagal koneksi 0x378

i=1
Kirimkan data 0x01 ke port paralel; delay
Kirimkan data 0x02 ke port paralel; delay
Kirimkan data 0x04 ke port paralel; delay
Kirimkan data 0x08 ke port paralel; delay

i=i+1
i=i+1

i<=10000000 ?
i<=2 ?

Selesai Selesai

Gambar 3.13 Flowchart program utama Gambar 3.14 Flowchart fungsi delay
39

Berikut ini kode program penggerak motor stepper dalam bahasa pemro

graman C secara lengkap.

Gambar 3.15 Program putaran motor searah jarum jam (clockwise)


40

Gambar 3.16 Kode program putaran motor berlawanan arah jarum jam

(counterlockwise)

Setelah seluruh komponen pengendali selesai dibuat, selanjutnya

komponen tersebut baik motor, rangkaian pengendali motor, dan dudukan kamera

disatukan dalam kerangka alat.

Kerangka alat dibuat dari bahan alumunium dengan maksud supaya alat

tersebut ringan, tahan karat, dan dapat menghantarkan panas yang dihasilkan oleh

motor stepper sehingga mengurangi panas pada motor stepper.

Gambar 3.17 Tampak Samping Gambar 3.18 Tampak Depan

Gambar 3.19 Kerangka Lengkap


41

3.2 Sistem Video Streaming

Sistem video streaming dibangun diatas sistem operasi Linux Slackware.

Pembahasan pembuatan sistem video streaming kali ini tidak akan menjelaskan

mengenai proses instalasi sistem operasi Linux Slackware namun lebih

difokuskan kepada instalasi dan konfigurasi sistem video streaming.

3.2.1. Motion

Motion merupakan software yang dapat dgunakan untuk

melakukan monitroring satu atau lebih kamera. Software ini juga dapat

melakukan pendeteksian terhadap gerakan yang terjadi.

Informasi mengenai software Motion dapat diakses melalui

halaman web http://www.lavrsen.dk/twiki/bin/view/Motion/webHome atau

http://sourceforge.net/projects/motion.

3.2.1.1. Instalasi Motion

Sebelum tahap instalasi, Motion membutuhkan software

FFMPEG untuk melakukan proses encoding gambar atau video.

Software FFMPEG yang akan digunakan masih dalam bentuk

tarball berupa kode sumber yang terkompresi. Sebelum melakukan

proses komilasi, paket FFMPEG yang masih dalam bentuk berupa

tarball (*.tar.gz) perlu dibongkar terlebih dahulu dengan perintah


42

“tar -xvf ffmpeg-cvs-20060306-certified-with-motion-3.2.5.tar.gz”.

Kompilasi kode sumber program FFMPEG dilakukan

dengan tiga tahap yaitu pertama melakukan konfigurasi kode

sumber program dengan perintah “./configure”. Perintah ini

dijalankan di dalam direktori “ffmpeg” hasil pembongkaran paket

tarball. Perintah tersebut akan memeriksa sistem dan lokasi

dimana program akan diinstall.


akhyariz@indrianix:~ffmpeg$ ./configure --enable-shared
install prefix /usr/local
source path /home/akhyariz/temp/ffmpeg
C compiler gcc
make make
CPU x86 (generic)
big-endian no
inttypes.h yes
broken inttypes.h no
MMX enabled yes
Vector Builtins yes
gprof enabled no
zlib enabled yes
lzo enabled no
libgsm enabled no
mp3lame enabled no
libogg enabled no
Vorbis enabled no
Theora enabled no
FAAD enabled no
faadbin enabled no
FAAC enabled no
XviD enabled no
x264 enabled no
a52 support no
a52 dlopened no
DTS support no
pp support no
debug symbols yes
strip symbols yes
optimize yes
static yes
shared no
video hooking yes
SDL support yes
Imlib2 support no
FreeType support yes
Sun medialib support no
pthreads support no
AMR-NB float support no
AMR-NB fixed support no
AMR-WB float support no
AMR-WB IF2 support no
network support yes
IPv6 support yes
License: LGPL
43

Creating config.mak and config.h...

Opsi tingkat lanjut konfigurasi dapat dilihat dengan

perintah “./configure --help”. Setelah proses konfigurasi selesai

maka tahap kedua adalah tahap kompulasi kode sumber program

dengan perintah “make”, dan setelah kompilasi berhasil maka

tahap terakhir adalah installasi FFMPG ke dalam sistem dengan

perintah “make install”.

Setelah FFMPEG terinstall dengan baik, langkah

selanjutnya adalah melakukan instalasi Motion. Motion yang akan

digunakan berupa paket kode sumber dalam tarball. Sama seperti

proses kompilasi FFMPEG, paket tarball tersebut harus dibongkar

terlebih dahulu dengan perintah “tar -xvf motion-3.2.11.tar.gz”.

Untuk melakukan kompilasi, tiga perintah standar

kompilasi dijalankan sama seperti pada saat kompilasi FFMPEG.

Perintah tersebut “./configure; make; make install”.

akhyariz@indrianix:~/temp/motion-3.2.11$ ./configure
...

*******************************
Configure status
motion 3.2.11
*******************************

OS : Linux
pthread Support: Yes
jpeg Support: Yes
V4L included: Yes
V4L2 supported: Yes
FFmpeg Support: Yes
MYSQL Support: Yes
PostgreSQL Support: No

CFLAGS: -g -O2 -D_REENTRANT -DHAVE_FFMPEG -I/usr/include/ffmpeg

Install prefix: /usr/local


44

Hasil konfigurasi secara default akan menghasilkan

program diinstall dalam direktori “/usr/local/”. Sehingga struktur

direktori installasi Motion sepenuhnya berada pada direktori

tersebut baik file program, konfigurasi, maupun halaman manual.


.
`-- usr
`-- local
|-- bin
| `-- motion
|-- etc
| `-- motion-dist.conf
`-- share
|-- doc
| `-- motion-3.2.11
| |-- CHANGELOG
| |-- COPYING
| |-- CREDITS
| |-- INSTALL
| |-- README
| `-- motion_guide.html
|-- man
| `-- man1
| `-- motion.1
`-- motion-3.2.11
`-- examples
|-- motion-dist.conf
|-- motion.init-Debian
|-- motion.init-FreeBSD.sh
|-- motion.init-RH
|-- thread1.conf
|-- thread2.conf
|-- thread3.conf
`-- thread4.conf

3.2.1.2. Konfigurasi Motion

Agar motion dapat berjalan dengan baik, Motion harus

dikonfigurasi dengan benar. Konfigurasi Motion dapat diatur

dengan mengedit file file konfigurasi. File konfigurasi Motion

dapat ditemukan pada direktori “/usr/local/etc/” nama file

konfigurasi “motion-dist.conf” harus diubah menjadi

“motion.conf” agar dapat ditemukan Motion sebagai file


45

konfigurasi. Konfigurasi Motion terbagi dalam beberapa bagian

konfigurasi. Masing-masing bagian mengatur fungsinya masing-

masing.

Perangkat web kamera yang akan digunakan harus dikenali

oleh sistem operasi Linux. Perangkat web kamera yang digunakan

pada pengerjaan alat ini adalah Webcam Creative VF0470 dikenali

Linux sebagai “/dev/video0”. Alamat inilah yang diisikan dalam

konfigurasi perangkat kamera (videodevice) sehingga Motion akan

menggunakannya sebagai perangkat penangkap gambar. Berikut

file konfigurasi motion.conf selengkapnya.

# /usr/local/etc/motion.conf
#
# This config file was generated by motion 3.2.11

############################################################
# Daemon
############################################################

# Start in daemon (background) mode and release terminal (default: off)


daemon on

#File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid

############################################################
# Basic Setup Mode
############################################################

# Start in Setup-Mode, daemon disabled. (default: off)


setup_mode off

###########################################################
# Capture device options
############################################################

# Videodevice to be used for capturing (default /dev/video0)


# for FreeBSD default is /dev/bktr0
videodevice /dev/video0

# v4l2_palette allows to choose preferable palette to be use by motion


# to capture from those supported by your videodevice. (default: 8)
# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and
# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG.
# Setting v4l2_palette to 1 forces motion to use V4L2_PIX_FMT_SBGGR8
46

# instead.
#
# Values :
# V4L2_PIX_FMT_SN9C10X : 0 'S910'
# V4L2_PIX_FMT_SBGGR8 : 1 'BA81'
# V4L2_PIX_FMT_MJPEG : 2 'MJPEG'
# V4L2_PIX_FMT_JPEG : 3 'JPEG'
# V4L2_PIX_FMT_RGB24 : 4 'RGB3'
# V4L2_PIX_FMT_UYVY : 5 'UYVY'
# V4L2_PIX_FMT_YUYV : 6 'YUYV'
# V4L2_PIX_FMT_YUV422P : 7 '422P'
# V4L2_PIX_FMT_YUV420 : 8 'YU12'
v4l2_palette 8

# The video input to be used (default: 8)


# Should normally be set to 0 or 1 for video/TV cards, and 8 for USB cameras
input 8

# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 0

# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
frequency 0

# Rotate image this number of degrees. The rotation affects all saved images as
# well as mpeg movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0

# Image width (pixels). Valid range: Camera dependent, default: 352


width 320

# Image height (pixels). Valid range: Camera dependent, default: 288


height 240

# Maximum number of frames to be captured per second.


# Valid range: 2-100. Default: 100 (almost no limit).
framerate 1000

# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
# This option is used when you want to capture images at a rate lower than 2 per second.
minimum_frame_time 0

# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// or
file:///)
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined
; netcam_url value

# Username and password for network camera (only if required). Default: not defined
# Syntax is user:password
; netcam_userpass value

# The setting for keep-alive of network socket, should improve performance on compatible net
cameras.
# 1.0: The historical implementation using HTTP/1.0, closing the socket after each http request.
# keep_alive: Use HTTP/1.0 requests with keep alive header to reuse the same connection.
# 1.1: Use HTTP/1.1 requests that support keep alive as default.
# Default: 1.0
; netcam_http 1.0

# URL to use for a netcam proxy server, if required, e.g. "http://myproxy".


# If a port number other than 80 is needed, use "http://myproxy:1234".
# Default: not defined
; netcam_proxy value
47

# Set less strict jpeg checks for network cameras with a poor/buggy firmware.
# Default: off
netcam_tolerant_check off

# Let motion regulate the brightness of a video device (default: off).


# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
auto_brightness on

# Set the initial brightness of a video device.


# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 0

# Set the contrast of a video device.


# Valid range 0-255, default 0 = disabled
contrast 0

# Set the saturation of a video device.


# Valid range 0-255, default 0 = disabled
saturation 0

# Set the hue of a video device (NTSC feature).


# Valid range 0-255, default 0 = disabled
hue 0

############################################################
# Motion Detection Settings:
############################################################

# Threshold for number of changed pixels in an image that


# triggers motion detection (default: 1500)
threshold 10

# Automatically tune the threshold down if possible (default: off)


threshold_tune off

# Noise threshold for the motion detection (default: 32)


noise_level 32

# Automatically tune the noise threshold (default: on)


noise_tune on

# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
# (l)abeling must only be used once and the 'l' must be the last letter.
# Comment out to disable
despeckle EedDl

# Detect motion in predefined areas (1 - 9). Areas are numbered like that: 1 2 3
# A script (on_area_detected) is started immediately when motion is 456
# detected in one of the given areas, but only once during an event. 789
# One or more areas can be specified with this option. (Default: not defined)
; area_detect value

# PGM file to use as a sensitivity mask.


# Full path name to. (Default: not defined)
; mask_file value

# Dynamically create a mask file during operation (default: 0)


# Adjust speed of mask changes from 0 (off) to 10 (fast)
smart_mask_speed 0
48

# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 0

# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-5
minimum_motion_frames 1

# Specifies the number of pre-captured (buffered) pictures from before motion


# was detected that will be output at motion detection.
# Recommended range: 0 to 5 (default: 0)
# Do not use large values! Large values will cause Motion to skip video frames and
# cause unsmooth mpegs. To smooth mpegs use larger values of post_capture instead.
pre_capture 0

# Number of frames to capture after motion is no longer detected (default: 0)


post_capture 0

# Gap is the seconds of no motion detection that triggers the end of an event
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
# events causing all Motion to be written to one single mpeg file and no pre_capture.
gap 0

# Maximum length in seconds of an mpeg movie


# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
max_mpeg_time 0

# Always save images even if there was no motion (default: off)


output_all on

############################################################
# Image File Output
############################################################

# Output 'normal' pictures when motion is detected (default: on)


# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_normal off

# Output pictures with only the pixels moving object (ghost images) (default: off)
output_motion off

# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 100

# Output ppm images instead of jpeg (default: off)


ppm off

############################################################
# FFMPEG related options
# Film (mpeg) file output, and deinterlacing of the video input
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
############################################################

# Use ffmpeg to encode mpeg movies in realtime (default: off)


ffmpeg_cap_new on

# Use ffmpeg to make movies with only the pixels moving


49

# object (ghost images) (default: off)


ffmpeg_cap_motion off

# Use ffmpeg to encode a timelapse movie


# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 0

# The file rollover mode of the timelapse video


# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode hourly

# Bitrate to be used by the ffmpeg encoder (default: 400000)


# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
ffmpeg_bps 500000

# Enables and defines variable bitrate for the ffmpeg encoder.


# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_variable_bitrate 0

# Codec to used by ffmpeg for


the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 - gives you files with extension .mpg
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
# mov - QuickTime ( testing )
ffmpeg_video_codec mpeg4

# Use ffmpeg to deinterlace video. Necessary if you use an analog camera


# and see horizontal combing on moving objects in video or pictures.
# (default: off)
ffmpeg_deinterlace off

############################################################
# Snapshots (Traditional Periodic Webcam File Output)
############################################################

# Make automated snapshot every N seconds (default: 0 = disabled)


snapshot_interval 0

############################################################
# Text Display
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level, \n = new line,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event - do not use with text_event!
# You can put quotation marks around the text to allow
# leading spaces
############################################################

# Locate and draw a box around the moving object.


# Valid values: on, off and preview (default: off)
# Set to 'preview' will only draw a box in preview_shot pictures.
locate preview
50

# Draws the timestamp using same options as C function strftime(3)


# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
# Text is placed in lower right corner
text_right %Y-%m-%d\n%T-%q

# Draw a user defined text on the images using same options as C function strftime(3)
# Default: Not defined = no text
# Text is placed in lower left corner
; text_left value

# Draw the number of changed pixed on the images (default: off)


# Will normally be set to off except when you setup and adjust the motion settings
# Text is placed in upper right corner
text_changes off

# This option defines the value of the special event conversion specifier %C
# You can use any conversion specifier in this option except %C. Date and time
# values are from the timestamp of the first image in the current event.
# Default: %Y%m%d%H%M%S
# The idea is that %C can be used filenames and text_left/right for creating
# a unique identifier for each event.
text_event %Y%m%d%H%M%S

# Draw characters at twice normal size on images. (default: off)


text_double off

############################################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# Quotation marks round string are allowed.
############################################################

# Target base directory for pictures and films


# Recommended to use absolute path. (Default: current working directory)
target_dir /var/www/htdocs/wms/

# File path for snapshots (jpeg or ppm) relative to target_dir


# Default: %v-%Y%m%d%H%M%S-snapshot
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
# File extension .jpg or .ppm is automatically added so do not include this.
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
snapshot_filename %v-%Y%m%d%H%M%S-snapshot

# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
jpeg_filename %v-%Y%m%d%H%M%S-%q

# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
# Default: %v-%Y%m%d%H%M%S
51

# Default value is equivalent to legacy oldlayout option


# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
# File extension .mpg or .avi is automatically added so do not include this
# This option was previously called ffmpeg_filename
movie_filename %v-%Y-%m-%d_%H:%M:%S

# File path for timelapse mpegs relative to target_dir


# Default: %Y%m%d-timelapse
# Default value is near equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
# File extension .mpg is automatically added so do not include this
timelapse_filename %Y%m%d-timelapse

############################################################
# Live Webcam Server
############################################################

# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 18081

# Quality of the jpeg images produced (default: 50)


webcam_quality 100

# Output frames at 1 fps when no motion is detected and increase to the


# rate given by webcam_maxrate when motion is detected (default: off)
webcam_motion off

# Maximum framerate for webcam streams (default: 1)


webcam_maxrate 1000

# Restrict webcam connections to localhost only (default: on)


webcam_localhost off

# Limits the number of images per connection (default: 0 = unlimited)


# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0

############################################################
# HTTP Based Control
############################################################

# TCP/IP port for the http server to listen on (default: 0 = disabled)


control_port 8080

# Restrict control connections to localhost only (default: on)


control_localhost off

# Output for http server, select off to choose raw text plain (default: on)
control_html_output on

# Authentication for the http based control. Syntax username:password


# Default: not defined (Disabled)
; control_authentication username:password

############################################################
# External Commands, Warnings and Logging:
# You can use conversion specifiers for the on_xxxx commands
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
52

# %K and %L = X and Y coordinates of motion center


# %C = value defined by text_event
# %f = filename with full path
# %n = number indicating filetype
# Both %f and %n are only defined for on_picture_save,
# on_movie_start and on_movie_end
# Quotation marks round string are allowed.
############################################################

# Do not sound beeps when detecting motion (default: on)


# Note: Motion never beeps when running in daemon mode.
quiet on

# Command to be executed when an event starts. (default: none)


# An event starts at first motion detected after a period of no motion defined by gap
; on_event_start value

# Command to be executed when an event ends after a period of no motion


# (default: none). The period of no motion is defined by option gap.
; on_event_end value

# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)


# To give the filename as an argument to a command append it with %f
; on_picture_save value

# Command to be executed when a motion frame is detected (default: none)


; on_motion_detected value

# Command to be executed when motion in a predefined area is detected


# Check option 'area_detect'. (default: none)
; on_area_detected value

# Command to be executed when a movie file (.mpg|.avi) is created. (default:


none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value

# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)


# To give the filename as an argument to a command append it with %f
; on_movie_end value

# Command to be executed when a camera can't be opened or if it is lost


# NOTE: There is situations when motion doesn't detect a lost camera!
# It depends on the driver, some drivers don't detect a lost camera at all
# Some hang the motion thread. Some even hang the PC! (default: none)
; on_camera_lost value

##############################################################
# Thread config files - One for each camera.
# Except if only one camera - You only need this config file.
# If you have more than one camera you MUST define one thread
# config file for each camera in addition to this config file.
##############################################################
; thread /usr/local/etc/thread1.conf

Selain dengan melakukan pengeditan secara langsung file

motion.conf ini, konfigurasi motion dapat dilakukan melalui web

browser dengan mengaktifkan sebelumnya konfigurasi HTTP


53

Based Control.
############################################################
# HTTP Based Control
############################################################

# TCP/IP port for the http server to listen on (default: 0 = disabled)


control_port 8080

# Restrict control connections to localhost only (default: on)


control_localhost off

# Output for http server, select off to choose raw text plain (default: on)
control_html_output on

# Authentication for the http based control. Syntax username:password


# Default: not defined (Disabled)
; control_authentication username:password

Untuk melindungi konfigurasi agar tidak diubah oleh orang

yang tidak berhak, HTTP Based Control dapat diproteksi

menggunakan username dan pasword dengan cara menghilangkan

titik koma “;” pada baris “; control_authentication

username:password”. Format penulisan username dan password

adalah username:password.

3.3 Sistem Antarmuka Pengguna

Sistem antarmuka pengguna dibuat berbasis web dengan pertimbangan

agar dapat diakses dengan menggunakan web browser dari berbagai sistem

operasi. Antarmuka dibangun dengan bahasa pemrograman PHP dengan

memanfaatkan CMS sNews (http://snewscms.com/) sebagai fondasi dasar

dikarenakan kesederhanaan dan kemudahannya sehingga hanya perlu melakukan

sedikit penyesuaian terhadap beberapa fungsi dan tampilan dari CMS.


54

Gambar 3.20 sNews CMS

Dengan CMS sNews fungsi-fungsi yang diperlukan untuk pengelolaan

sistem monitoring dapat ditambahkan dengan mudah pada file snews.php yang

berisi sekumpulan fungsi kerja sNews.

3.3.1.1. Konfigurasi sNews Sebagai Antarmuka

Agar sNews dapat digunakan sebagai antarmuka, beberapa

penyesuaian diperlukan untuk memasukkan fungsi-fungsi

tambahan. Fungsi-fungsi tersebut terdapat dalam sebuah file

“snews.php”, sehingga untuk menambahkan/mengubah fungsi-

fungsi bawaan sNews dapat dilakukan dengan mengedit fle

tersebut.

Pertama adalah pada konfigurasi database dan server,


55

struktur konfigurasi sNews secara default mengatur server dengan

posisi path dalam satu variabel, sehingga konfigurasi nomor IP

server dan path direktori sNews akan dipisah dan variabel baru

seperti $db['ip'], $db['webcam'], $db['motion'], $db['port'],

$db['ccw'] dan $db['cw'] ditambahkan ke dalam konfigurasi. Hal

ini akan mempermudah pengaturan sistem monitoring selanjutnya.

Gambar 3.21 Variabel Konfigurasi Server dan Database sNews

Beberapa variabel sistem juga mengalami beberapa

penyesuaian. Variabel tersebut adalah $l['cat_listSEF'] yang

berfungsi untuk pengaturan URL suatu fungsi yang akan diakses

melalui Search Engine Friendly (SEF). Search Engine Friendly

adalah fungsi dalam PHP yang dapat diakses menggunakan URL.

Misal http://192.168.13.37/wms/logout/ yakni fungsi untuk logout

atau http://192.168.13.37/wms/administration/ untuk mengakses

halaman administrasi.
56

Dengan penambahan beberapa nilai yaitu left, right, start,

kill dan restart, maka fungsi-fungsi baru tersebut yang akan

ditambahkan dalam sNews dapat diakses melalui URL.

Gambar 3.22 Variabel Sistem sNews

Variabel $l['allowed_files'] merupakan variabel yang

digunakan untuk mendeskripsikan ekstensi file yang diijinkan

pada proses upload atau pada fungsi files(). Ekstensi file yang

ditambahkan adalah file avi yang merupakan format file video

hasil dari streaming Motion.

Variabel $l['ignored_items'] digunakan untuk

menyembunyikan file yang tidak ingin ditampilkan pada fungsi

files(). File-file tersebut biasanya adalah file konfigurasi dan file-

file pendukung sNews agar terhidar dari penghapusan yang dapat

merusak tampilan atau kerja dari antarmuka. File yang

ditambahkan dalam variabel ini adalah webcam.png, dan small.gif

yang merupakan file gambar yang akan digunakan pada beberapa


57

fungsi kendali tambahan.

Beberapa fungsi yang telah terdapat dalam sNews juga

memerlukan sedikit perubahan, diantaranya adalah fungsi pages(),

fungsi ini berfungsi untuk menu navigasi halaman. Pada baris 412-

416 satu set link navigasi baru ditambahkan. Keberadaan link

tersebut diatur melalui pengecekan terhadap session. Link navigasi

ke halaman login yang akan ditampilkan saat user belum login

atau dengan kata lain tidak terdapat session, dan ketika user telah

login atau terdapat session, link ke halaman administrasi dan link

untuk logout ditampilkan.

Gambar 3.23 Perubahan Fungsi pages()

Fungsi lain yang disesuaikan adalah fungsi center(), fungsi

ini berfungsi untuk menampilkan halaman utama (tengah). Di

dalamnya terdapat beberapa pengambilan keputusan dengan

melihat kondisi yang ada. Beberapa kondisi yang ditambahkan

adalah kondisi saat terdapat request fungsi left, right, start, kill dan

restart. Semua kondisi ini diletakkan dalam keadaan terdapat

session, sehingga fungsi-fungsi tersebut hanya dapat diakses jika


58

user telah melakukan login.

Gambar 3.24 Pemanggilan fungsi kendali webcam jika terdapat session

Gambar 3.25 Pembatasan fungsi kendali ketika tidak terdapat session

Beberapa fungsi baru yang bertugas sebagai kendali juga

ditambahkan. Fungsi tersebut adalah fungsi-fungsi yang telah

diinisiasi pada variabel dan fungsi-fungsi diatas.

a) Fungsi webcam()

Fungsi ini digunakan untuk menampilkan video streaming dari Motion,

fungsi webcam() akan mengecek apakah server Motion berjalan dengan


59

melakukan pengecekan terhadap port yang digunakan Motion db('port'), jika port

tertutup maka gambar webcam.png akan ditampilkan, sedangkan gambar video

hasil tangkapan webcam akan ditampilkan, jika port $db['port'] terbuka.

Gambar 3.26 Fungsi webcam() untuk menampilkan video dalam antarmuka

Selain untuk menampilkan gambar hasil dari tangkapan webcam, fungsi ini

juga digunakan untuk menampilkan menu kendali webcam dan Motion. Menu

tersebut adalah menu untuk menghidupkan/mematikan/merestart Motion, dan

menu pengaturan putaran webcam. Menu ini hanya dapat digunakan oleh user

yang telah login.

Pada pemanggilan fungsi kendali webcam ini, digunakan AJAX

(Asynchronous Javascript And XML) sehingga perintah kendali akan dijalankan di

belakang layar. Hal ini dapat mempercepat proses pemuatan halaman.


60

Gambar 3.27 Penggunaan AJAX

b) Fungsi left()

Fungsi ini akan menginstruksikan sistem operasi untuk menjalankan

program ccw yang bertugas mengirimkan data ke port paralel sehingga rangkaian

kendali memutar poros webcam berlawanan arah jarum jam (counterclockwise)

dan menyebabkan kamera bergerak ke kiri

Gambar 3.28 Fungsi left() untuk menggerakkan kamera ke kiri


61

c) Fungsi right()

Fungsi ini merupakan kebalikan dari fungsi left(), fungsi ini akan

memerintahkan sistem operasi untuk menjalankan program cw yang bertugas

mengirimkan data ke port paralel sehingga rangkaian kendali memutar poros

webcam searah jarum jam (clockwise) dan menyebabkan kamera bergerak ke

kanan.

Gambar 3.29 Fungsi right() untuk menggerakkan kamera ke kiri

d) Fungsi start()

Fungsi start() bertugas menghidupkan server Motion. Fungsi ini

sebelumnya melakukan pengecekan apakah terdapat webcam dalam sistem

(/dev/video0), jika ada maka fungsi akan menjalankan program motion untuk

menghidupkan server Motion. Namun jika tidak terdapat webcam, maka akan

ditampilkan pesan kesalahan.

Gambar 3.30 Fungsi start() untuk mengaktifkan video streaming


62

e) Fungsi kill()

Fungsi ini berfungsi untuk mematikan server Motion. Ketika fungsi ini

dipanggil, maka sistem operasi akan menjalankan perintah “sudo killall motion”

yang menyebabkan program Motion yang sedang berhenti.

Gambar 3.31 Fungsi kill() untuk menonaktifkan video streaming

f) Fungsi restart()

Fungsi ini berfungsi untuk merestart server Motion. Pertama-tama fungsi

akan mengecek apakah server Motion sedang berajalan, jika server motion

berjalan maka fungsi akan mematikan server Motion kemudian menghidupkan

kembali server Motion. Namun jika ternyata server tidak berjalan, maka akan

ditampilkan pesan kesalahan.

Gambar 3.32 Fungsi restart() untuk merestart video streaming

Seluruh fungsi tersebut kemudian dipanggil dalam file index.php, file inilah yang
63

akan mengatur tampilan dari antarmuka sistem monitoring. Berikut ini adalah tata

letak dari halaman index.php. Sebelum fungsi-fungsi tersebut dipanggil,

pemanggilan file snews.php harus dilakukan dengan menambahkan perintah php

“<?php session_start(); include('snews.php'); ?>” pada baris pertama file

index.php.

Logo/Title

breadcrumbs(); searchform();
Menu webcam();
pages();
extra();

center();
Footer
Gambar 3.33 Tata letak halaman antarmuka
64

Gambar 3.34 Antarmuka Webcam Monitoring System

Gambar 3.35 Halaman administrasi


BAB IV

PENGUJIAN ALAT

4.1 Kebutuhan Alat

Berdasarkan pengumpulan data yang diperoleh, maka beberapa spesifkasi

kebutuhan alat yang dapat disimpulkan adalah sebagai berikut:

a. Alat dapat menggantikan fungsi monitoring dari CCTV atau IP Camera.

b. Alat dapat merekam gambar video ke dalam file.

c. Antarmuka penggunaan alat dilakukan melalui web.

d. Pergerakan kamera dapat diatur melalui menu kendali pada antarmuka

web.

e. Untuk mengakses halaman administrator dibutuhkan login sehingga dapat

mencegah penggunaan alat oleh orang yang tidak berhak.

4.2 Metode Pengujian

Berdasarkan spesifikasi alat yang telah dijelaskan sebelumnya, maka

dilakukan pengujian terhadap sistem menggunakan beberapa metode pengujian.

Tujuan pengujian ini adalah untuk membuktikan apakah alat yang telah dibuat

dapat memenuhi spesifikasi yang direncanakan. Hasil pengujian akan

dimanfaatkan untuk menyempurnakan kinerja alat sekaligus untuk pengembangan

lebih lanjut.

Metode pengujian dipilih berdasarkan fungsi operasional dan beberapa

parameter yang ingin diketahui dari alat tersebut. Data yang diperoleh dari metode

65
66

pengujian yang dipilih terebut dapat memberikan gambaran kegunaan yang

optimal untuk keperluan penyempurnaan sistem.

Dalam penelitian ini dipilih dua macam metode pengujian, yaitu pengujian

fungsional dan pengujian kinerja sistem secara keseluruhan. Pengujian fungsional

dilakukan untuk membuktikan apakah alat yang dibuat dapat memenuhi

persyaratan fungsi operasional seperti yang direncanakan sebelumnya. Sedangkan

pengujian kinerja sistem secara keseluruhan bertujuan untuk mengetahui

kehandalan dan kemampuan alat dalam menjalankan fungsi operasionalnya.

Melalui dua metode ini diharapkan seluruh kemampuan dan kekurangan

alat dapat digambarkan dengan jelas, sehingga pengembangan dan penambahan

fitur lebih lanjut dapat dilakukan dengan lebih mudah.

4.3 Pengujian Fungsional

Pengujian fungsional alat dibagi menjadi dua bagian, bagian back-end dan

bagian front-end. Bagian back-end meliputi fungsi sistem penggerak dan sistem

streaming sedangkan bagian front-end meliputi fungsi antarmuka pengguna.

4.3.1. Pengujian back-end

a. Sistem penggerak

Sistem penggerak kamera dibangun menggunakan

pemrograman port paralel dengan bahasa C. Sehingga untuk

menggerakkan kamera kearah kanan atau kiri cukup dengan

menjalankan sebuah program melalui Linux konsole. Dalam


67

lingkungan Linux/UNIX, untuk mengakses perangkat keras

tertentu dibutuhkan hak akses sebagai root (super user)

sehingga ketika program dari sistem kamera dijalankan dalam

hak akses user biasa maka akan mengeluarkan pesan kesalahan

seperti yang telah dideskripsikan pada kode program.

Gambar 4.1 Kode Program cw.c


68

Gambar 4.2 Kode Program ccw.c

Ketika program gagal mengakses alamat port paralel (0x378)

maka program akan menampilkan pesan gagal melakukan

koneksi pada alamat hardware 378h. Sedangkan ketka user

dijalankan dalam mode hak akses sebagai root, program tidak

menampilkan pesan kesalahan dan kamera akan bergerak ke

kanan (program cw) dan ke kiri (program ccw).

Gambar 4.3 Progam cw gagal mengirimkan data ke port paralel


69

Gambar 4.4 Program cw mengirimkan data ke port paralel, tidak terdapat error

Gambar 4.5 Progam ccw gagal mengirimkan data ke port paralel

Gambar 4.6 Progam ccw mengirimkan data ke port paralel, tidak terdapat error

b. Sistem streaming

Sistem video streaming ditangani oleh program streaming

server Motion. Konfigurasi Motion seperti yang telah

dijalaskan dalam bab pembuatan alat akan membuka port


70

18081 sebagai port video streaming dan port 8080 sebagai

pengaturan konfigurasi melalui antar muka web. Penggunaan

port 18081 dan 8080 dilakukan dengan pertimbangan untuk

membuka port-port ini tidak diperlukan hak akses sebagai root.

Berbeda dengan port 80, 21, 22, 3306 dan wellknown-port

lainnya yang memerlukan hak akses root untuk dapat

membukanya.

Gambar 4.7 Program Motion dijalankan

Gambar 4.8 Port 18081 dan 8080 terbuka


71

Gambar 4.9 Pengujian streaming pada 127.0.0.1:18081

4.3.2. Pengujian front-end

Pengujian front-end dilakukan dengan menggunakan antarmuka

web yang meliputi fungsi-fungsi standar alat diantaranya login,

mengaktifkan webcam, menggerakkan webcam, merestart webcam,

mendownload video hasil rekaman, menghapus rekaman video di server,

menonaktifkan webcam dan logout.


72

Gambar 4.10 Front-end

a. Login

Pengamanan terhadap kendali webcam menggunakan mekanisme

halaman login. Ini dapat mencegah penggunaan webcam oleh

pihak-pihak yang tidak berhak.

Gambar 4.11 Form login


73

Gambar 4.12 Kode form login

Fungsi login() diatas berfungsi menampilkan form login yang

meliput form username, password dan mathCaptcha yang

berfungsi untuk mencegah usaha bruteforce terhadap halaman

login. Fungsi mathCaptcha adalah fungsi penjumlahan bilangan

acak 1-9 yang akan berubah setiap halaman login di-reload. Jika

user dan password terdapat dalam database, serta hasil

penjumlahan bilangan acak tersebut benar maka user dapat login ke

halaman administrasi dan dapat mgngendalikan webcam.


74

Gambar 4.13 Kode fungsi mathCaptcha

Gambar 4.14 Kode pengecekan username & password

Gambar 4.15 Halaman adminsitrasi


75

b. Mengaktifkan webcam

Untuk mengaktifkan webcam, digunakan link menu start yang

terdapat dibawah gambar logo webcam. Dengan mengklik menu

ini, maka PHP akan menjalankan fungsi start() sehingga webcam

akan aktif dan siap digunakan.

Gambar 4.16 Kode fungsi start()

Fungsi start() akan terlebih dahulu melakukan pengecekan terhadap

keberadaan webcam dengan melakukan pendeteksian terhadap

file /dev/video0 yang merupakan file device webcam. Jika webcam

ditemukan, maka sistem akan mengaktifkan webcam dengan

menjalankan aplikasi motion.


76

Gambar 4.17 Webcam sedang diaktifkan

Gambar 4.18 Webcam telah aktif dan sedang melakukan streaming


77

c. Menggerakkan webcam

Untuk menggerakkan webcam ke kanan atau ke kiri dapat

dilakukan menggunakan menu “<<” untuk menggerakkan ke kiri

atau “>>” untuk menggerakkan ke kanan. Ketika menu “<<”

digunakan, maka PHP akan menjalankan fungsi left() yang

didalamnya terdapat pengecekkan apakah webcam telah diaktifkan

dan jika webcam telah aktif maka akan dilakukan pemanggilan

terhadap perintah /usr/local/sbin/ccw di dalam sistem. Namun jika

webcam tidak aktif, maka akan ditampilkan pesan kesalahan.

Gambar 4.19 Kode fungsi left()

Sama halnya dilakukan ketika menu >> digunakan, hanya saja

perintah yang dieksekusi dalam sistem adalah perintah

/usr/local/sbin/cw.

Gambar 4.20 Kode fungsi right()


78

d. Merestart webcam

Dalam beberapa kondisi, streaming server perlu direstart ketika

terjadi suatu masalah. Untuk itu diperlukan sebuah menu untuk

merestart server. Menu ini ketika digunakan akan menjalankan

fungsi restart(), yaitu pertama-tama fungsi akan melakukan

pengecekan apakah streaming server webcam sedang aktif atau

tidak. Jika tidak aktif, maka ditampilkan pesan notifikasi bahwa

webcam sedang tidak aktif. Namun jika webcam aktif, maka akan

dieksekusi perintah 'sudo killall motion' yang berfungsi untuk

mematikan streaming server webcam dan kemudian akan kembali

menjalankan server dengan mengakses URL start/.

Gambar 4.21 Kode fungsi restart()

e. Mengunduh video hasil rekaman

Salah satu fitur yang dimiliki dari alat ini adalah kemampuan

menyimpan hasil rekaman kamera ke dalam file video. File tersebut

disimpan dalam direktori yang sama dengan file-file php. Pada

konfigurasi ini file disimpan pada direktori wms/. Dalam

pengaturan file snews.php dapat diatur tipe dan nama file yang
79

akan disembunyikan atau ditampilkan dalam front-end file

manager.

Gambar 4.22 Konfigurasi file manager

Untuk tipe file .avi hasil dari rekaman kamera diatur agar dapat

ditampilkan pada halaman administrasi file, sehingga dapat

diunduh oleh admin. Sedangkan file-file index.php, snews.php dan

beberapa file pendukung antarmuka alat diatur agar tidak

ditampilkan untuk menghindari kecelakaan terhapusnya file-file

tersebut yang dapat mengakibatkan rusaknya tampilan front-end.

Gambar 4.23 Kode fungsi filelist()


80

Gambar 4.24 Tampilan file manager

f. Menghapus rekaman video

Fitur lain yang cukup penting adalah fitur penghapusan file video

hasil rekaman yang terdapat di server. Fitur pengahupusan fle

terdapat dalam fungsi files(). Jika terdapat permintaan $_GET

task=delete terhadap suatu file kepada server, server akan meminta

konfirmasi menggunakan fungsi notification(), jika diperoleh hasil

konfirmasi setuju maka nilai notifikasi=1, sehingga file dihapus

maka instruksi unlink akan dieksekusi oleh PHP sehingga file

dalam variabel $file_to_delete akan dihapus dari server.


81

Gambar 4.25 Kode fungsi files()

g. Menonaktifkan webcam

Fitur standar yang wajib dimiliki dari alat ini yaitu berupa fitur
82

untuk menonaktifkan webcam. Dengan mematikan webcam, maka

fungsi perekaman video juga akan berhenti. Tanpa fitur ini, maka

alat tidak dapat digunakan dengan baik.

Gambar 4.26 Kode fungsi kill()

Untuk menonaktifkan webcam dapat dilakukan dengan mengakses

menu “Kill” pada bagian menu kendali. Ketika menu ini diakses,

maka fungsi kill() akan dipanggil yang didalamnya terdapat

instruksi “sudo killall motion”. Ketika sistem menjalankan perintah

ini, maka proses motion yang berjalan akan dimatikan, sehingga

semua fungsi streaming dan recording dari webcam akan berakhir.

Gambar 4.27 Proses menonaktifkan webcam


83

h. Logout.

Seperti yang dijelaskan sebelumnya, pengamanan terhadap kendali

webcam dilindungi menggunakan mekanisme halaman login

dengan username dan password. Ketika semua aktivitas kendali

webcam telah selesai, maka user harus melakukan logout untuk

keluar.

Gambar 4.28 Pemanggilan fungsi PHP session_destroy()

Logout adalah mekanisme penghapusan session yang dilakukan

oleh sistem. Dalam PHP dikenal sebuah fungsi internal

session_destroy(), fungsi inilah yang dipanggil untuk menghapus

session, atau yang di kenal dengan logout.


84

Gambar 4.29 Proses logout

4.3.3. Penanganan Kesalahan

Dalam penggunaan suatu alat atau aplikasi penanganan kesalahan adalah

suatu hal sangat penting. Hal ini dikarenakan penanganan kesalahan yang

tidak baik dapat menyebabkan suatu alat atau aplikasi berhenti bekerja,

mengalami permasalahan keamanan atau bahkan rusak. Penanganan

kesalahan yang dimaksudkan adalah kesalahan-kesalahan yang

disebabkan oleh faktor kelalaian manusia.

a. Login

Kesalahan yang mungkin terjadi dalam mekanisme login pada

halaman antarmuka ini adalah kesalahan penulisan username,

password dan kesalahan dalam penjumlahan (sumCaptcha).


85

Gambar 4.30 Pesan kesalahan login

b. Mengaktifkan webcam

Kesalahan ketika dalam mengaktifkan webcam adalah belum

terpasangnya atau tidak terdeteksinya perangkat webcam. Untuk

penanganan kesalahan ini maka sebelum webcam diaktifkan,

sistem akan melakukan pengecekan keberadaan peangkat webcam.

Pengecekan ini dilakukan dengan melihat perangkat webcam yang

dikenali Linux dengan /dev/video0. Jika perangkat ini ditemukan

maka webcam dapat diaktifkan. Dengan cara ini webcam hanya

akan bisa diaktifkan jika sudah terpasang dan dikenali oleh sistem.
86

Gambar 4.31 Webcam tidak ditemukan

Dalam pangaktifan webcam digunakan sebuah menu hyperlink

yang mengarah ke alamat URL http://[nomor IP]/wms/start/.

Ketika tidak terdapat session atau tidak terdapat admin yang login

ke dalam sistem, maka menu ini tidak akan ditampilkan. Akan

tetapi seseorang dapat mencoba mengaktifkan webcam melalui

URL yang diketikkan dalam address bar web browser. Untuk itu

URL tersebut harus di proteksi dari akses yang tidak dkehendaki,

sehingga dilakukan pengecekan terhadap session. Akses ke URL

tersebut tanpa login sebagai administrator akan menghasilkan

sebuah pesan kesalahan.


87

Gambar 4.32 Mengaktifkan webcam tanpa login

c. Menggerakkan webcam

Dalam penggunaan wajar, tidak mungkin webcam digerakkan jika

tidak dalam keadaan aktif. Untuk itu, perlu dilakukan pengecekan

apakah webcam sudah aktif ataukah belum aktif. Penanganan

kesalahan jika webcam belum diaktifkan, adalah dengan

menampilkan pesan notifikasi bahwa webcam belum diaktifkan.


88

Gambar 4.33 Menggerakkan webcam saat webcam tidak aktif

Menu kendali gerak webcam sebenarnya adalah hyperlink yang

mengarah ke URL http://[nomor IP]/wms/right/ untuk ke kanan

dan http://[nomor IP]/wms/left/ untuk ke kiri. Meskipun menu

kendali gerak tersebut tidak ditampilkan ketika antarmuka diakses

oleh pengguna yang tidak login, namun URL masih dapat diakses

melalui address bar web brower. Sehingga perlu dilakukan

pengecekan session seperti pada menu pengaktifan webcam. Jika

URL tersebut diakses tanpa adanya session, maka akan ditampilkan

notifikasi serupa dengan akses URL pengaktifan webcam.


89

Gambar 4.34 Menggerakkan webcam tanpa login

d. Merestart webcam

Webcam yang sudah diaktifkan dapat direstart untuk beberapa

keperluan, misalkan setelah peubahan konfigurasi motion. Akan

tetapi untuk mencegah kesalahan maka fitur restart ini dapat

digunakan oleh admin (setelah melalui login) dan hanya dapat

diakses digunakan ketika webcam dalam keadaan aktif.

Penggunaan menu ini ketika webcam tidak aktif akan direspon

dengan notifikasi.
90

Gambar 4.35 Merestart webcam saat webcam tidak aktif

e. Mengunduh video hasil rekaman

Fitur file manager hanya dapat diakses melalui menu pada halaman

adminsitrasi. Atau pada alamat URL http://[nomor IP]/wms/files/

dengan melakukan login terlebih dahulu. Akses oleh pengguna

yang tidak melakukan login akan menghasilkan notifikasi bahwa

konten yang diakses tersebut tidak ada.


91

Gambar 4.36 Akses file manager tanpa login

f. Menonaktifkan webcam

Menu kill yang digunakan untuk menonaktifkan webcam adalah

sebuah hyperlink yang mengarah kepada URL http://[nomor

IP]/wms/kill/. Menu tidak akan ditampilkan jika webcam dalam

keadaan non aktif. Akan tetapi URL masih dapat diakses melalui

address bar web browser. Namun akses kepada URL tersebut akan

direspon dengan notifikasi kegagalan karena tidak ada proses

streaming yang berjalan.


92

Gambar 4.37 Menonaktifkan webcam saat webcam tidak aktif

g. Logout.

URL logout dapat diakses pada http://[nomor IP]/wms/logout/.

Ketika URL tersebut diakses ketika terdapat session maka user

akan logout. Namun jika URL tersebut diakses ketika tidak terdapat

session, maka akan ditampilkan notifikasi bahwa konten yang

diakses tersebut tidak ada.


93

Gambar 4.38 Logout saat tidak ada session

h. Akses halaman yang tidak ada

Pengguna terkadang melakukan kesalahan dalam pengetikan URL

pada address bar, yang bisa menghasilkan jawaban error 404 dari

web server. Error 404 adalah pesan kesalahan bahwa URL yang

diminta tersebut tidak dimiliki oleh web server. Dalam sistem ini

telah disiapkan jika terdapat request terhadap halaman yang tidak

ada maka akan direspon dengan halaman notifikasi dari sistem,

sehingga yang ditampilkan bukan notifikasi error 404 dari web

server.
94

Gambar 4.39 Error 404 dari sisem monitoring

Gambar 4.40 Error dari web server


95

4.4 Pengujian Kinerja

Pengujian kinerja diukur ketika alat bekerja dan diakses oleh satu client.

Pengukuran dilakukan baik pada server maupun client dari segi penggunaan

sumber daya komputer dan jaringan komputer.

Pengukuran dilakukan antara lain kompatibilitas terhadap browser,

penggunaan prosesor, RAM, media penyimpanan, beban jaringan dan waktu

proses.

Pada komputer server, pengukuran penggunaan sumberdaya komputer

dibatasi hanya pada aplikasi web server Apache, streaming server Motion serta

sever MySQL. Sedangkan pada komputer client, pengukuran dibatasi pada web

browser yang digunakan untuk mengakses. Browser yang digunakan adalah versi

terbaru dari masing-masing web browser.

Seperti yang telah disampaikan sebelumnya, komputer server yang

digunakan menggunakan sistem operasi GNU/Linux sedangkan komputer client

menggunakan sistem operasi Windows XP dengan web browser Internet Explorer

8 dan Mozilla Firefox 3.6.2.

Komputer server menggunakan Intel Pentium D Dualcore Processor 2,66

Ghz dengan RAM 512MB. Sedangkan komputer client menggunakan Intel

Pentium 4 Processor 2,6 Ghz dengan RAM 96MB.

4.4.1. Kompatibilitas

Secara umum, sistem monitoring ini dapat diakses menggunakan


96

web browser dengan mesin Gecko yang digunakan pada varian Mozilla

maupun Presto yang digunakan pada Opera.

Gambar 4.41 Tampilan pada browser Firefox 3.6

Gambar 4.42 Tampilan pada browser Opera 10


97

Sedangkan pengujian pada web browser Internet Explorer,

didapatkan bahwa gambar hasil streaming tidak dapat ditampilkan,

sehingga hanya terlihat antarmuka tanpa gambar hasil streaming. Hal ini

dikarenakan Motion browser Internet Explorer tidak mendukung format

gambar m-jpeg yang dihasilkan oleh streaming Motion.

Gambar 4.43 Tampilan pada browser Internet Explorer 8 tanpa Java Applet

Agar Internet Explorer dapat mendukung format gambar m-jpeg,

dapat menggunakan Java Applet dengan aplikasi Cambozola yang bisa

diunduh dari http://www.charliemouse.com/code/cambozola/. Untuk itu

dibutuhkan aplikasi Java Runtime Environment yang terinstal dalam

sistem client Windows XP.

Kekurangan dari penggunaan Java Applet adalah penggunaan

sumberdaya komputer yang cukup tinggi. Hal ini dikarenakan selain

menjalankan Internet Explorer, sistem juga bersamaan menjalankan Java.


98

Gambar 4.44 Tampilan pada browser Internet Explorer 8 dengan Java Applet

4.4.2. Penggunaan Prosesor

Pada komputer server, pengukuran dilakukan menggunakan

program top yang terdapat dalam sistem operasi Slackware Linux.

Sedangkan pada komputer client menggunakan program Process Explorer

yang dapat diunduh secara gratis dari website Sysinternals

(http://www.sysinternals.com)
99

Gambar 4.45 Aplikasi Process Explorer pada client

Gambar 4.46 Aplikasi top pada server

Dari hasil pengukuran kerja CPU pada server web Apache, server
100

streaming Motion dan server database MySQL diperoleh data sebagai

berikut.

Rerata penggunaan sumberdaya CPU oleh Apache sebesar 12%,

Motion sebesar 15%, dan MySQL sebesar 1,82%.

Sedangkan pada pengukuran kerja komputer client diperoleh data

sebagai berikut.

Rerata penggunaan sumberdaya CPU oleh browser Firefox adalah

sebesar 90,6%. Sedangkan browser Internet Explorer dengan Java Applet

rerata penggunaan sumberdaya CPU mencapai 38.9%

4.4.3. Penggunaan RAM

Pengukuran penggunaan memori RAM diukur menggunakan

aplikasi top pada server, sedangkan pada client menggunakan aplikasi

Process Explorer dari .

Pengujian terhadap penggunaan RAM pada komputer server

khususnya pada aplikasi server Apache, Motion dan MySQL adalah

sebaga berikut.

Apache menggunakan sumberdaya RAM sebesar 32,8 MB Motion

menggunakan sebesar 2,56 MB dan MySQL sebesar 3,072 MB.

Sedangkan pada komputer client penggunaan RAM untuk aplikasi

Firefox adalah sebesar 34,5 MB sedangkan Internet Explorer dengan Java

Applet sebesar 36.8 MB.


101

4.4.4. Penggunaan Media Penyimpanan (Hard Disk)

Salah satu dari kemampuan sistem monitoring ini adalah dapat

merekam hasil streaming ke dalam file video. Penggunaan media

penyimpanan dapat diketahui dengan melihat ukurran dari file video yang

dihasilkan oleh sistem monitoring dalam jangka waktu tertentu.

Pada pengambilan data ini, dilakukan dengan menjalankan

perekaman video dalam durasi selama 100 detik. Kemudian, hasil dari

rekaman video tersebut dilihat ukuran dari file video tersebut.

Dari hasil perekaman selama 100 detik, diketahui besar dari ukuran

file video yang dihasilkan adalah sebesar 5.103.210 Bytes atau 5,1 MB.

Artinya penggunaan ruang penyimpanan video adalah 51 KByte/s

4.4.5. Penggunaan Bandwidth

Pengukuran penggunaan bandwidth dilakukan dengan bantuan

aplikasi bandwidth monitor (bwm-ng). Pengukuran dilakukan dengan cara

mengambil 10 sampel dari penggunaan bandwidth setiap 10 detik saat

server menerima koneksi dari satu buah client.

Tabel 4.1 Penggunaan bandwidth jaringan

Time 10s 20s 30s 40s 50s 60s 70s 80s 90s 100s
BW
976,49 970,03 971,57 976,54 965,53 971,6 964,96 987,43 982,06 985,49
(kbps)
102

Dari data tersebut, selanjutnya dapat diketahui rerata penggunaan

bandwidth adalah sebesar 975,17 Kbit/s.

4.4.6. Waktu Proses

Waktu proses adalah respon gambar hasil streaming terhadap

instruksi gerakan kamera yang diberikan melalui antarmuka web.

Pengukuran waktu proses dilakukan dengan menggunakan bantuan

stopwatch. Pengambilan data dilakukan sebanyak 30 kali untuk

meminimalkan terjadinya kesalahan.

Tabel 4.2 Pengukuran waktu proses

Waktu Proses Waktu Proses Waktu Proses


No No No
(detik) (detik) (detik)
1 0,97 11 0,83 21 0,77
2 0,68 12 0,84 22 0,83
3 0,82 13 0,9 23 0,84
4 0,97 14 0,83 24 0,76
5 0,84 15 0,81 25 0,9
6 0,83 16 0,9 26 0,76
7 0,96 17 0,9 27 0,97
8 0,76 18 0,83 28 0,9
9 0,83 19 0,9 29 0,75
10 0,97 20 0,97 30 0,76
Rerata 0,85 detik
103

4.4.7. Putaran Kamera

Pengukuran putaran kamera dlakukan baik dari segi besar sudut

jangkauan kamera, sudut setiap langkah kamera, serta kecepatan putaran.

Pengukuran dilakukan menggunakan bantuan stopwatch.

Dari hasil pengukuran putaran kamera sistem monitoring, dapat

diketahui bahwa sistem monitoring ini dapat menjangkau sudut pandang

horizontal 360o dengan setiap langkah sebesar 6o. Dengan kecepatan

putaran 5 putaran tiap menit.


BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan dari pengujian fungsional dan kinerja sistem monitoring,

dapat ditarik beberapa kesimpulan sebagai berikut:

1. Sistem monitorng dapat diakses menggunakan berbagai jenis

browser populer. Diantaranya keluarga Mozilla, Internet Explorer

dan Opera.

2. Sistem monitoring dapat diakses dengan baik oleh client dengan

sistem Windows XP dengan Prosesor Pentium 4 dengan RAM

96MB.

3. Penggunaan media penyimpanan server pada proses perekaman

streaming menghabiskan ruang sebesar 5,1 MB untuk streaming

selama 100 detik.

4. Penggunaan bandwidth jaringan sebesar 975,17 Kbit/s sehingga

sistem monitoring ini lebih cocok digunakan pada jaringan LAN

dan tidak dianjurkan untuk digunakan pada jaringan internet.

5. Delay yang terjadi pada sistem monitoring sebesar 0,85 detik.

6. Sistem monitoring dapat menjangkau 360o horizontal dengan setiap

langkah sebesar 6o dengan kecepatan putaran 5 putaran tiap menit.

104
105

5.2 Saran

Untuk pengembangan sistem sejenis ke depan dapat dilakukan beberapa

pegembangan antara lain:

1. Sistem monitoring dapat menggunakan lebih dari satu kamera

dengan hasil streaming yang ditampilkan terpisah mengingat

software Motion dapat menangani kamera dalam jumlah banyak.

2. Penggunaan putaran vertikal dapat meningkatkan jangkauan

pandangan sistem monitoring.

3. Penggunaan fitur AJAX (Asynchronous JavaScript and XML) yang

lebih banyak dapat meningkatkan respon antarmuka sistem

monitoring.

4. Penggunaan sistem pendingin yang baik pada sistem penggerak

dapat meningkatkan umur penggunaan alat.


DAFTAR PUSTAKA

1. Joe Follansbee, 2004, Get Streaming! Quick Steps to Delivering Audio and
Video Online, Focal Press, United States of America

2. Askari Azikin, 2005, Kamera Pengawas Berbasis Open Source, Elexmedia


Komputindo, Jakarta

3. Ali Zaki dam SmitDev Community, 2008, AJAX untuk Pemula, Elexmedia
Komputindo, Jakarta

4. Cristian D. et al., 2006, AJAX and PHP Building Responsive Web


Applications, Packt Publishing, Birmingham

5. I Made Joni dan Budi Raharjo, 2006, Pemrograman C dan Implementasinya,


Informatika, Bandung

6. Romi Satria Wahono, 2003, Cepat Mahir Linux, Ilmu Komputer,


http://www.ilmukomputer.com

7. Mehdi A. et al., 2007, PHP Manual, PHP Documentation Group,


http://www.php.net

8. Wikipedia, http://en.wikipedia.org/wiki/Streaming_Media/

106

Anda mungkin juga menyukai