perpustakaan.uns.ac.id digilib.uns.ac.id BAB II LANDASAN TEORI 2.1 Rasberry PI Raspberry pi merupakan sebuah perangkat komputer seukuran kartu nama.Raspberry pi dapat dimanfaatkan untuk berbagai macam keperluan. Salah satunya adalah web server. Sistem operasi yang digunakan untuk membangun sebuah web server dengan raspberry pi adalah raspbian. Raspbian merupakan salah satu bentuk atau turunan dari sistem operasi debian yang memang didesain agar dapat berjalan di raspberry pi. Raspberry pi memiliki system Broadcom BCM2885 chip (SOC), yang mencakup ARM1176JZF-S 700 MHz processor, video core IV GPU, dan awalnya dengan 256 megabyte RAM kemudian di upgrade ke 512 MB. Sistem operasi berjalan pada kartu memori (SD Card) untuk booting dan penyimpanan jangka panjang. (Horan, 2013) Gambar 2.1. Core components Raspberry pi board commit to user 5 perpustakaan.uns.ac.id digilib.uns.ac.id 6 2.2 Arduino UNO Arduino merupakan kombinasi perangkat keras dan perangkat lunak yang bersifat open source. Board ini memiliki 14 digital input / output pin (dimana 6 pin dapat digunakan sebagai output (PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack listrik tombol reset. Pin-pin ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau sumber tegangan bisa didapat dari adaptor AC-DC atau baterai untuk menggunakannya. Gambar 2.2. Core components arduino uno board commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 7 Deskripsi Arduio UNO: Tabel 2.1. Deskripsi Arduino Uno Mikrokontroler Atmega328 Operasi Voltage 5V Input Voltage 7-12 V (recommended) Input Voltage 6-20 V (limits) I/O 14 pin (6 pin PWM) Arus 50 mA Flash Memory 32 Kb Bootloader SRAM 2KB EPROM 1 KB Kecepatan 16 Mhz Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL (5V) komunikasi serial yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah ATmega16U2 pada saluran board ini komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada komputer. Firmware Arduino menggunakan USB driver standar COM, dan tidak ada driver eksternal yang dibutuhkan. Namun, pada Windows, file.Inf diperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim ke board Arduino. RX dan TX LED di board akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer. ATmega328 ini juga mendukung komunikasi I2C (TWI) dan SPI. Fungsi ini digunakan untuk melakukan komunikasi inteface pada sistem. (Sudjadi, 2005) Uno Arduino dapat diprogram dengan perangkat lunak Arduino. ATmega328 pada Uno Arduino memiliki bootloader yang memungkinkan untuk meng-upload program baru untuk itu tanpa menggunakan programmer hardware exsternal (Downloader) ini berkomunikasi menggunakan protokol dari bahasa C. commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 8 2.3 Relay Relay adalah suatu piranti yang bekerja berdasarkan elektromagnetik untuk menggerakan sejumlah kontaktor (saklar) yang tersusun. Kontaktor akan tertutup (On) atau terbuka (Off) karena efek induksi magnet yang dihasilkan kumparan (induktor) ketika dialiri arus listrik. Berbeda dengan saklar dimana pergerakan kontaktor (On/Off) dilakukan manual tanpa perlu arus listrik. Sebagai komponen elektronika, relay mempunyai peran penting dalam sebuah sistem rangkaian elektronika dan rangkaian listrik untuk menggerakan sebuah perangkat yang memerlukan arus besar tanpa terhubung langsung dengan perangkat pengendali yang mempunyai arus kecil. Dengan demikian relay dapat berfungsi sebagai pengaman. (Isparela, 2013) Susunan kontak pada relay adalah: Normally open : Relay akan menutup jika di aliri arus listrik Normally close : Relay akan membuka jika dialiri arus arus listrik changeover : Relay memiliki kontak tengah yang akan melepaskan diri dan membuat kontak lainnya berhubungan Gambar 2.3. Diagram Mechanical Relay commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 9 2.4 Arduino IDE Arduino adalah perangkat lunak IDE (Integrated Development Environment). Sebuah perangkat lunak yang memudahkan kita mengembangkan aplikasi mikrokontroler mulai dari menuliskan source program, kompilasi, upload hasil kompilasi, dan uji coba secara terminal serial. Arduino ini bisa dijalankan di komputer dengan berbagai macam platform karena didukung atau berbasis Java. Source program yang kita buat untuk aplikasi mikrokontroler adalah bahasa C/C++ dan dapat digabungkan dengan assembly. (Siswoyo, 2012) Arduino diciptakan untuk para pemula bahkan yang tidak memiliki basic bahasa pemrograman sama sekali karena menggunakan bahasa C++ yang telah dipermudah melalui library. Arduino menggunakan Software Processing yang digunakan untuk menulis program kedalam Arduino. Processing sendiri merupakan penggabungan antara bahasa C++ dan Java. Software Arduino ini dapat di install di berbagai operating system (OS) seperti: LINUX, Mac OS, Windows. Software IDE Arduino terdiri dari 3 (tiga) bagian: 1. Editor program, untuk menulis dan mengedit program dalam bahasa processing. Listing program pada Arduino disebut sketch. 2. Compiler , modul yang berfungsi mengubah bahasa processing (kode program) kedalam kode biner karena kode biner adalah satu satunya bahasa program yang dipahami oleh mikrokontroler. 3. Uploader , modul yang berfungsi memasukkan kode biner kedalam memori microcontroller. Struktur perintah pada arduino secara garis besar terdiri dari 2 (dua) bagian yaitu void setup dan void loop . Void setup berisi perintah yang akan dieksekusi hanya satu kali sejak arduino dihidupkan sedangkan void loop berisi perintah yang akan dieksekusi berulang-ulang selama arduino dinyalakan. (Sulaiman, 2012) commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 10 Gambar 2.4. Tampilan IDE arduino 2.5 Web Server Web server dapat diartikan sebagai perangkat keras sekaligus perangkat lunak yang bertujuan menyajikan konten website melalui internet. Secara sederhana, cara kerja web server adalah sebagai berikut. Ketika kita ingin menampilkan suatu web page pada layar komputer kita, maka kita akan memanggil konten yang tersimpan pada web server yang menyediakan konten web page yang kita inginkan. Cara pemanggilannya adalah melalui pemanggilan URL (Uniform Resource Locator). URL dapat dibagi menjadi tiga bagian: (1) - (Chintya, 2013) Penggunaan paling umum web server adalah untuk menempatkan situs web, namun pada prakteknya penggunaannya diperluas sebagai tempat penyimpanan data ataupun untuk menjalankan sejumlah aplikasi kelas bisnis. Fungsi utama sebuah web server adalah untuk menstransfer berkas atas commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 11 permintaan pengguna melalui protokol komunikasi yang telah ditentukan. Disebabkan sebuah jalaman web dapat terdiri atas berkas teks, video, gambar, dan lainnya. Pemanfaatan web server berfungsi pula untuk menstransfer seluruh aspek pemberkasan dalam sebuah halaman web yang terkait, termasuk di dalamnnya teks, video, atau lainnya. Pengguna biasanya melalui aplikasi seperti perambahan web, meminta layanan atas berkas atau halaman web yang terdapat pada sebuah web server, kemudian server sebagai manager layanan tersebut akan merespon balik dengan mengirimkan halaman dan berkas-berkas pendukung yang dibutuhkan, atau menolak permintaan tersebut jika halaman yang diminta tidak tersedia, saat ini umumnya web server telah di lengkapi pula dengan Php yang memungkinkan web server menyediakan layanan situs web dinamis dengan menamfaatkan pustaka tambahan seperti Php dan Asp. Pemanfaatan web server saat ini tidak terbatas hanya untuk publikasi situs web, pada prakteknya web server banyak pula digunakan dalam perangkatperangkat keras lain seperti printer, router, kamera web yang menyediakan akses layanan http dalam jaringan lokal yang ditunjukan untuk menyediakan perangkat manajemen serta mempermudah peninjauan atas perangkat keras tersebut. 2.6 Apache2 Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/ www in menggunakan HTTP. Menurut Firdaus (2007 : 5) Web server merupakan sebuah bentuk server yang khusus digunakan untuk menyimpan halaman website atau homepage. Apache merupakan turunan dari web server yang dikeluarkan oleh NSCA yaitu NSCA HTTPd sekitar tahun 1995-a (patch) dan pengganti dari NCSA HTTPd. Apache web server merupakan tulang punggung permintaan dari client yang menggunakan browser, seperti Netscape Navigator, Internet Explorer, Mozilla, lynx dan lain-lain. Web Server dalam commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 12 berkomunikasi dengan kliennya menggunakan protokol HTTP (Hyper Text Transfer Protocol). Apache berada di bawah GNU, General Public Licensi yang bersifat free sehingga Apache dapat didownload gratis pada alamat http://www.apache.org. Adapun pertimbangan dalam memilih Apache adalah : 1. Apache termasuk dalam kategori free software (software gratis). 2. Instalasi apache sangat mudah. 3. Mampu beroperasi pada banyak platform sistem operasi, seperti Linux, Windows dan lain-lain. Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat di konfigurasi, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah. ( Anonimous, 2012) 2.7 PHP PHP (Hypertext Preprocessor) adalah bahasa pemeograman script yang palingbanyak dipakai saat ini datau dalam kata lain bisa diartikan sebuah bahasa pemrograman web yang bekerja di sisi server (server side scripting) yang dapat melakukan konektifitas pada database yang dimana hal itu tidak dapat dilakukan hanya menggunakan sintaks HTML biasa. (Anonimous, 2001-2013) Web server yang mendukung PHP dapat ditemukan dimana-mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah. Dalam versi PHP5, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek. 2.8 Cron Cron adalah sebuah daemon yang akan menjalankan sebuah program (linux) pada waktu-waktu yang telah ditentukan. Cron ini dijalankan secara otomatis dari /etc/init.d pada multi-user. Cron juga akan melihat perintah di /etc/crontab. Cron juga akan melihat file di /etc/cron.d. commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 13 Gambar 2.5. Cron Syntax Cron hanya dapat diperintahkan/diprogram melalui Bourne shell (Bash shell). Segala perintah yang tak dikenal oleh Bash tak akan jalan. Jadi gunakan program dengan perintah Bash shell murni agar dapat dieksekusi oleh Cron. Cron is the name of program that enables unix users to execute commands or scripts (groups of commands) automatically at a specified time/date. It is normally used for sys admin commands, like makewhatis, which builds a search database for the man -k command, or for running a backup script, but can be used for anything. A common use for it today is connecting to the internet and downloading your email. (Cognition, 1999) 2.9 MySql MySQL adalah sistem management database relasional. Suatu relasional menyimpan data dalam tabel-tabel teripisah. Hal ini memungkinkan kecepatan dan fleksibilitas. Tabel-tabel yang dihubungkan dengan relasi yang ditentukan mebuatnya bisa mengkombinasi data dari beberapa tabel dari suatu permintaan. Bagian SQL dari kata MySQL Structured QueryLanguage bahasa paling umum yang dipergunakan untuk mengakses database. Konektivitas, kecepatan dan keamannya membuat MySQL cocok untuk pengaksesan database pada internet. MySQL merupakan sistem client / server yang terdiri dari SQLserver multihreaded yang memungkinkan backend yang berbeda, sejumlah program client dan library yang berbeda, tool administratif, dan beberapa antarmuka pemrogaman. MySQL juga tersedia sebagai library yang bisa digabungkan di aplikasi. (Utdirartatmo, 2002) commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 14 2.10 PIR (Passive Infra Red) Sensor PIR (Passive Infrare Reciver) merupakan sebuah sensor berbasiskan infrared. Akan tetapi, tidak seperti sensor infrared kebanyakan yang terdiri dari IR LED dan fototransistor. PIR tidak memancarkan apapun seperti IR LED. Sesuai dengan namanya passive, sensor ini hanya merespon energi dari pancaran sinar infra meah pasif yang dimiliki oleh setiap benda yang terdeteksi olehnya. Benda yang dapat dideteksi oleh sensor ini biasanya adalah tubuh manusia. Sensor PIR bekerja dengan mendeteksi perubahan radiasi infra merah yangterjadi ketika ada pergerakan manusia yang memiliki temperaratur yang berbeda dengan lingkunagn sekelilingnya. Gambar 2.6. Block diagram sensor PIR Didalam sensor PIR ini terdapat bagian bagian yang mempunyai perannya masing-masing, yaitu Fresnel Lens, IR Filter, Pyroelectric Sensor, Amplifier, dan comparator. Sensor PIR ini bekerja dengan menangkap energi panas yang dihasilkan dari pancaran sinar infra merah pasifyang dimiliki setiap benda dengan suhu benda diatas nol mutalk. Seperti tubuh manusia yang memiliki suhu tubuh kira-kira 32derajat celcius, yang merupakan suhu panas yang khas yang terdapat pada lingkungan. Pancaran sinar infra merah inilah yang kemudian ditangkap oleh pyroelectric sensor yang merupakan inti dari PIR sensor ini sehingga manyebabkan Pyroelectirc yang terdiri dari gallium nitranida, caesium nitrat dan litium tanlat menghasilkan arus listrik. Arus listrik ini ada karena pancaran sinar infra merah pasif ini membawa energy panas. Prosesnya hampir sama seperti arus listrik yang terbentuk ketika sinar matahari mengenai solar cell. commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 15 Gambar 2.7. Jangkauan sensor PIR Gambar 2.8. Arah dan jarak sensor pir 2.11 Data Flow Diagram (DFD) DFD merupakan diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem, yang biasanya digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau lingkungan fisik dimana data tersebut akan disimpan. Notasi-Notasi pada DFD menurut Yourdon dan DeMarco (Rosa & Shalahuddin, 2011) ditunjukan pada tabel 2.2 commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 16 Tabel 2.2. Nama Proses - . (Shalahuddin & A.S, 2011) Keterangan Proses atau fungsi atau procedure pada pemodelan perangkat lunak yang akan diimplementasikan dengan pemrograman terstruktur, maka pemodelan notasi inilah yang harusnya menjadi fungsi atau prosedur didalam kode program. Catatan: Nama yang diberikan pada sebuah proses biasanya berupa kata kerja. File File atau basis data atau penyimpanan(storage); pada pemodelan perangkat lunak yang akan diimplementasikan dengan pemrograman terstruktur, maka pemodelan notasi inilah yang harusnya dibuat menjadi tabel-tabel basis data yang dibutuhkan, tabeltabel ini juga harus sesuai dengan perancangan tabel-tabel pada basis data (Entity Relantionship Diagram (ERD), Conceptual Data Model (CDM), Physical Data Model (PDM)) Catatan : Nama yang diberikan pada sebuah penyimpanan biasanya kata benda. Entitas Entitas luar (external entity) atau masukan (input) atau keluaran (output) atau orang yang memakai/berinteraksi dengan perangkat lunak yang dimodelkan atau sistem lain yang terkait dengan aliran data sistem yang dimodelkan. Catatan : Nama yang digunakan pada masukan commit to user Simbol perpustakaan.uns.ac.id digilib.uns.ac.id 17 Nama Keterangan (input) atau keluaran biasanya berupa kata benda. Aliran data Simbol (output) Aliran data; merupakan data yang dikirim antar proses, dari penyimpanan keproses, atau dari proses ke masukan (input) atau keluaran (output). Catatan : Nama yang digunakan pada aliran data biasanya berupa kata benda, dapat diawali dengan kata data tanpa kata 2.12 Entity Relationship Diagram (ERD) Entity Relationship Diagram adalah diagram yang berisi komponenkomponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang mempresentasikan seluruh fakta yang ditinjau. (Fahansyah, 1999) Notasi-notasi simbolik yang digunakan dalam Diagram ERD ditunjukan pada tabel 2.3 Tabel 2.3. Nama - (Shalahuddin & A.S, 2011). Keterangan Entitas/Entity Entitas merupakan data inti yang akan disimpan; bakal tabel pada basis data. commit to user Simbol perpustakaan.uns.ac.id digilib.uns.ac.id 18 Nama Keterangan Atribut Field atau kolom data yang butuh disimpan dalam suatu entitas Atribut Field atau kolom data yang butuh disimpan dalam suatu entitas dan digunakan sebagai kunci akses record yang diinginkan; biasanya berupa id. Kunci primer Atribut Multinilai/ multivalue Simbol Field atau kolom data yang buth disimpan dalam suatu entitas yang dapat memiliki nilai lebih dari satu. Relasi Relasi yang menghubungkan antar entitas; biasa diawali dengan kata kerja. Asosiasi/ Association Penghubung antara relasi dan entitas dimana di kedua ujungnya memiliki multiplicity kemungkinan jumlah pemakai. Kardinalitas menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Dari sejumlah kemungkinan banyaknya hubungan antar entitas, kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu juga sebaliknya. Berikut kardinalitas yang bisa terjadi diantara entitas-entitas, antara lain sebagai berikut : (Fahansyah, 1999) a. Satu ke Satu (One-To-One) Yang berarti setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, dan begitu juga commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 19 sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A. Gambar 2.9. Entitas Satu ke Satu b. Satu ke Banyak (One-To-Many) Yang berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A. Gambar 2.10. Entitas Satu ke Banyak c. Banyak ke Satu (Many-To-One) Yang berarti setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 20 sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B. Gambar 2.11. Entitas banyak ke satu d. Banyak ke Banyak (Many-to-Many) Yang berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, dan demikian juga sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A. Gambar 2.12. Gambar 2.4 Entitas banyak ke banyak 2.13 Basis Data Basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, dan juga merupakan salah satu komponen yang penting dalam sistem informasi, karena merupakan basis dalam menyediakan informasi bagi para pemakai. Sedangkan sistem basis data adalah suatu sistem informasi commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 21 yang mengintregasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya. (Jogiyanto, 2000) Basis data perlu dirancang, dibangun, dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa pemakai dan beberapa aplikasi yang sesuai dengan kepentingan pemakai. (Waljiyanto, 2003) 2.14 Pengujian Black Box Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black-blox memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black-box bukan merupakan alternative dari teknik white-box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode white-box. (Roger, 1995) Pengujian black-box berusaha menemukan kesalahan dalam kategori sebagai berikut : a. Fungsi-fungsi yang tidak benar atau hilang b. Kesalahan interface c. Kesalahan dalam struktur data atau askes database eksternal d. Kesalahan kinerja e. Inisialisasi dan kesalahan terminasi 2.15 Flowchart Flowchart atau bagan alir merupakan representasi secara grafik dari suatu algoritma atau prosedur untuk menyelesaikan suatu masalah. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek. (Utami, 2005) Flowchart ada dua macam: commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 22 1. Flowchart Sistem Yaitu diagram alir yang menggambarkan suatu system peralatan computer yang digunakan dalam proses pengolahan data dan perhubungan antar peralatan tersebut. Flowchart system digunakan untuk menggambarkan urutan langka dalam memecahkan masalah, tetapi hanya berisi prosedur dalam system yang dibentuk. (Utami, 2005) Symbol yang digunakan: Gambar 2.13. Simbol flowchart system 2. Flowchart Program Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah. (Utami, 2005) Simbol yang digunakan adalah American National Standart Inc. : (terminal symbol), menunjukkan awal dan akhir sebuah program : (preparation symbol), memberikan nilai awal pada commit to user perpustakaan.uns.ac.id digilib.uns.ac.id 23 suatu variable atau counter. : (processing symbol), menunjukkan pengolahan aritmatika dan pemindahan data. : (input/output symbol), menunjukkan proses input atau output. : (decision symbol), untuk mewakili operasi perbandingan logika. : (predefined process symbol), proses yang ditulis sebagai sub program, yaitu prosedur/fungsi. : (connector symbol), penghubung pada halaman yang sama. : (off page connector), penghubung pada halaman yang berbeda. : Arah proses. commit to user