BAB 2 LANDASAN TEORI 2.1 IOT (Internet of Things) Menurut Wikipedia, Internet of Things atau dikenal juga dengan singkatan IoT, merupakan sebuah konsep yang bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus-menerus. Adapun kemampuan seperti berbagi data, remote control, dan sebagainya, termasuk juga pada benda di dunia nyata. Contohnya bahan pangan, elektronik, koleksi, peralatan apa saja, termasuk benda hidup yang semuanya tersambung ke jaringan lokal dan global melalui sensor yang tertanam dan selalu aktif. Makna serupa yang lain, Internet of Things (IoT) adalah sebuah konsep/skenario dimana suatu objek yang memiliki kemampuan untuk mentransfer data melalui jaringan tanpa memerlukan interaksi manusia ke manusia atau manusia ke komputer. "A Things" pada Internet of Things dapat didefinisikan sebagai subjek misalkan orang dengan monitor implant jantung, hewan peternakan dengan transponder biochip, sebuah mobil yang telah dilengkapi built-in sensor untuk memperingatkan pengemudi ketika tekanan ban rendah. Sejauh ini, IoT paling erat hubungannya dengan komunikasi machine-tomachine (M2M) di bidang manufaktur dan listrik, perminyakan, dan gas. Produk dibangun dengan kemampuan komunikasi M2M yang sering disebut dengan sistem cerdas atau "smart". (contoh: smart label, smart meter, smart grid sensor). Meskipun konsep ini kurang populer hingga tahun 1999, namun IoT telah Universitas Sumatera Utara 7 dikembangkan selama beberapa dekade. Alat Internet pertama, misalnya, adalah mesin Coke di Carnegie Melon University di awal 1980-an. Para programer dapat terhubung ke mesin melalui Internet, memeriksa status mesin dan menentukan apakah ada atau tidak minuman dingin yang menunggu mereka, tanpa harus pergi ke mesin tersebut. Istilah IoT (Internet of Things) mulai dikenal tahun 1999 yang saat itu disebutkan pertama kalinya dalam sebuah presentasi oleh Kevin Ashton, cofounder and executive director of the Auto-ID Center di MIT. Dengan semakin berkembangnya infrastruktur internet, maka kita menuju babak berikutnya, di mana bukan hanya smartphone atau komputer saja yang dapat terkoneksi dengan internet. Namun berbagai macam benda nyata akan terkoneksi dengan internet. Sebagai contohnya dapat berupa : mesin produksi, mobil, peralatan elektronik, peralatan yang dapat dikenakan manusia (wearables), dan termasuk benda nyata apa saja yang semuanya tersambung ke jaringan lokal dan global menggunakan sensor dan atau aktuator yang tertanam. 2.2 Pengertian Sistem Sistem adalah suatu kesatuan yang terdiri dari dua atau lebih komponen atau subsistem yang saling berinteraksi untuk mencapai suatu tujuan (Jogiyanto, 2000). Sistem adalah sekumpulan elemen yang saling terkait atau terpadu yang dimaksudkan untuk mencapai suatu tujuan (Abdul Kadir, 2003) Universitas Sumatera Utara 8 Dari uraian diatas mengenai definisi sistem, penulis dapat menyimpulkan pengertian dari sistem yang berkaitan dengan judul, yaitu “Sistem adalah suatu cara yang dibuat sedemikian rupa yang terdiri dari dua elemen atau lebih yang saling berhubungan mengatasi masalah atau kendala-kendala yang terjadi dengan tujuan yang diinginkan. 2.3 Pengertian Internet Internet adalah sekumpulan jaringan berbeda yang saling terhubung bersama sebagai suatu kesatuan dengan menggunakan berbagai macam protokol, salah satunya adalah protokol TCP/IP (Transmission Control Protocol/Internet Protocol) (Shalahuddin, Mdan Rossa A.S, 2010). TCP/IP adalah protokol yang paling banyak digunakan di internet. Protokol TCP/IP merupakan cara standard untuk memaketkan dan mengalamatkan data komputer (sinyal eletronik) sehingga data tersebut dapat dikirim ke komputer terdekat atau keliling dunia dan tiba dalam waktu cepat tanpa rusak atau hilang. Asal - usul internet berasal dari jaringan komputer yang dibentuk pada tahun 1970-an. Jaringan komputer tersebut disebut dengan Arpanet, yaitu jaringan komputer yang dibentuk olah departemen pertahanan Amerika Serikat. Selanjutnya, jaringan komputer tersebut diperbaharui dan dikembangakan, dan sekarang penerusnya menjadi tulang punggung global untuk sumber daya informasi yang disebut dengan internet. Universitas Sumatera Utara 9 Daya guna internet itu terletak pada informasi itu sendiri, bukan pada jaringan komputer. Informasi itu ada karena beberapa orang atau beberapa kelompok memberikan waktu, usaha, dan karya mereka. Mereka mempunyai ide, menyusunnya, menciptakan sesuatu yang berguna dan membuatnya tersedia buat pemakai internet di seluruh dunia. 2.3.1 Network Network adalah jaringan dari sistem komunikasi data yang melibatkan sebuah atau lebih sistem komputer yang dihubungkan dengan jalur transmisi alat komunikasi membentuk satu sistem. Dengan network, komputer yang satu dapat menggunakan data di komputer lain, dapat mencetak laporan di printer komputer lain, dapat memberi berita ke komputer lain walaupun berlainan area. Network merupakan cara yang sangat berguna untuk mengintegrasikan sistem informasi dan menyalurkan arus informasi dari satu area ke area lainnya. 2.3.1.1 Web Server Web server adalah suatu perangkat lunak yang dijalankan pada komputer server dan berfungsi agar dokumen internet server yang mampu untuk melayani koneksi perpindahan data dalam protokol http web server disamping e-mail. Middleware adalah perangkat lunak yang bekerja sama dengan web server dan berfungsi menterjemahkan kode - kode tertentu, menjalankan kode - kode tersebut dan memungkinkan berinteraksi dengan basis data. Dikarenakan web server dirancang untuk menampilkan data, dimulai dari teks, hypertext, gambar yang merupakan Universitas Sumatera Utara 10 keunggulan dari web sehingga web tidak hanya dapat diterima di universitas tetapi di seluruh perusahaan komersial yang dapat menampilkan datanya dalam internet. Macam-macam web server antara lain Apache (Open Source), Xitami , IIS, PWS. Sedangkan, Web Browser adalah salah satu perangkat lunak disisi client yang digunakan untuk mengakses informasi web. Website (situs web) merupakan alamat (URL) yang berfungsi sebagai tempat penyimpanan data dan informasi dengan berdasarkan topik tertentu. URL adalah suatu sarana yang digunakan untuk menentukan lokasi informasi pada suatu web server. Situs atau web dapat dikategorikan menjadi 2 yaitu: 1. Web Statis, yaitu web yang berisi atau menampilkan informasi-informasi yang sifatnya statis (tetap), 2. Web Dinamis, yaitu web yang menampilkan informasi serta dapat berinteraksi dengan user yang sifatnya dinamis. 2.3.1.2 World Wide Web (WWW) World Wide Web (WWW), lebih dikenal dengan web, merupakan salah satu layanan yang didapat oleh pemakai komputer yang terhubung ke internet. Web pada awalnya adalah ruang informasi dalam internet, dengan menggunakan teknologi hypertext, pemakai dituntun untuk menemukan informasi dengan mengikuti link yang disediakan dalam dokumen web ytang ditampilkan dalam browser web. Agar file yang berisi hypertext ini bisa dikirimkan, diperlukan Universitas Sumatera Utara 11 protokol pengiriman data yang spesifik yang disebut Hypertext Transfer Protocol (HTTP). Untuk menemukan setiap hubungan Hypertext digunakan Uniform Resource Locator (URL). Karena itu, halaman WWW juga disebut dokumen URL. (Konsep dan Aplikasi Pemrograman Client Server dan Sistem Terdistribusi, Budi Sutedjo Dharma Oetomo, 2000). 2.3.1.3 Sekilas tentang HTTP HTTP (Hypertext Transfer Protocol) adalah protokol yang banyak digunakan di internet untuk pertukaran berkas atau data lainnya didalam World Wide Web dengan menggunakan browser. Sebuah browser disebut client HTTP, sedangkan penyedia halaman web yang diakses oleh browser disebut server HTTP (web server). Sumber yang akan diakses memiliki alamat yang disebut Universal Resources Locator (URL). Resources (sumber daya) yang dimaksud disini dapat berupa berkas, hasil output dari sebuah program (seperti PHP), hasil query dari server basis data dan lain-lain. HTTP memiliki dua versi, HTTP yang pertama kali diciptakan adalah HTTP 1.0, kemudian dikembangkan lagi menjadi HTTP 1.1 yang banyak digunakan sekarang. (Konsep dan Aplikasi Pemrograman Client server dan Sistem Terdistribusi, Budi Sutedjo Dharma Oetomo, 2000). 2.4 Perangkat Lunak Pendukung Berdasarkan penelitian, dapat disimpulkan bahwa perangkat lunak pendukung yang dibutuhkan pada proses pengembangan sistem yang akan dilakukan terdiri Universitas Sumatera Utara 12 dari tiga jenis aplikasi. Aplikasi yang dibutuhkan yaitu NodeJS yang akan menjadi gateway server, Arduino IDE yang akan menjadi lingkungan pemrograman ESP8266 dan Visual Studio Code sebagai text editor dalam pembuatan gateway. 2.4.1 NodeJS NodeJS merupakan platform yang dapat menjalankan bahasa pemrograman Javascript dan dibangun menggunakan Chrome’s V8 Javascript Engine. NodeJS dapat berjalan di semua OS. NodeJS menggunakan filosofi event-driven, nonblocking IO model yang membuat NodeJS ringan dan efisien. 2.4.2 Arduino IDE Arduino IDE merupakan perangkat lunak yang digunakan untuk memprogram berbagai macam Mikrokontroller seperti Arduino dan ESP8266. Arduino IDE dapat berjalan disemua OS. Arduino IDE menggunakan bahasa pemrograman C/C++ dan menggunakan kompiler (avr-g++). 2.4.3 Visual Studio Code Visual Studio Code merupakan teks editor keluaran Microsoft. Visual studio code dapat berjalan di semua OS dan dibuat menggunakan javascript yang di bangun menjadi aplikasi desktop menggunakan Electron. Universitas Sumatera Utara 13 2.5 Perangkat Keras Pendukung Berdasarkan penelitian, dapat disimpulkan bahwa perangkat keras pendukung yang dibutuhkan pada proses pengembangan sistem yang akan dilakukan terdiri dari tiga jenis perangkat. Perangkat yang dibutuhkan yaitu laptop yang pada pembuatan sistem ini bukan hanya sebagai tempat pembuatan sistem, tetapi juga digunakan sebagai Gateway yang didalamnya terdapat Web Server dan Web Socket. Yang kedua adalah ESP8266 sebagai satuan mikrokontroller yang dirangkai sedemikian rupa menjadi rangkaian yang terdapat led. Yang ketiga adalah Access Point sebagai penghubung antara client, gateway server dan node. 2.5.1 Laptop Laptop adalah komputer bergerak yang berukuran relatif kecil dan ringan, beratnya berkisar dari 1–6 kg, tergantung pada ukuran, bahan, dan spesifikasi laptop tersebut. Sumber daya laptop berasal dari baterai atau adaptor A/C yang dapat digunakan untuk mengisi ulang baterai dan menyalakan laptop itu sendiri. Baterai laptop pada umumnya dapat bertahan sekitar 1 hingga 6 jam sebelum akhirnya habis, tergantung dari cara pemakaian, spesifikasi, dan ukuran baterai. 2.5.2 ESP8266 ESP8266 merupakan modul wifi yang mempunyai kapabilitas full stack TCP/IP dan MCU (Microcontroller Unit). ESP8266 dapat berfungsi menjadi banyak hal seperti Access Point, webclient, webserver dll. Universitas Sumatera Utara 14 2.5.3 Acces Point Access Point adalah sebuah perangkat jaringan yang berisi sebuah transceiver dan antena untuk transmisi dan menerima sinyal ke dan dari clients remote. Dengan access points (AP) clients wireless bisa dengan cepat dan mudah untuk terhubung kepada jaringan LAN kabel secara wireless. 2.5.4 Resistor Fungsi Resistor sebagai peredam tegangan DC atau AC, Resistor berbahan dasar karbon film atau metal film, dengan besaran satuan resistans ohm berkisaran 0,1 ohm dan Mohm (1 Mega = 1. 10 pangkat 6 ohm). 2.5.5 Kapasitor Komponen elektronika yang mempunyai kemampuan menyimpan electronelektron selama waktu yang tidak tertentu. Kapasitor berbeda dengan akumulator dalam menyimpan muatan listrik terutama tidak terjadi perubahan kimia pada bahan kapasitor, besarnya kapasitansi dari sebuah kapasitor dinyatakan dalam farad. Universitas Sumatera Utara 15 2.5.6 LED (Light Emitting Diode) Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. 2.6 Bahasa Pemrograman Pendukung Berdasarkan penelitian, dapat disimpulkan bahwa bahasa pemrograman pendukung yang dibutuhkan pada proses pengembangan sistem yang akan dilakukan terdiri dari dua bahasa. Bahasa pemrograman yang dibutuhkan yaitu Javascript yang dijalankan pada gateway dan C++ sebagai program ESP8266. 2.6.1 Javascript Bahasa pemrograman tingkat tinggi dan dinamis. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. Universitas Sumatera Utara 16 2.6.2 C++ C++ adalah bahasa pemrograman komputer yang dibuat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C. 2.7 Flowchart Flowchart adalah bagan-bagan yang mempunyai arus untuk menggambarkan langkah-langkah dalam menyelesaikan suatu masalah tertentu dan flowchart merupakan salah satu cara penyajian dalam algoritma. Program flowchart menggambarkan urutan logika dari suatu algoritma. Tahapan pembuatan program yaitu mendefinisikan masalah dan menganalisanya. Mencakup: tujuan pembuatan program, parameter yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan dan bahasa program yang digunakan. 2.7.1 Simbol pada Flowchart Simbol pada flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain: Universitas Sumatera Utara 17 1. Simbol Arus Arah Yaitu, simbol yang dipakai untuk menghubungkan antara simbol yang satu dengan simbol lainnya atau disebut juga connecting line. Tabel 2.7.1 Simbol Arus Arah Simbol Nama Arus / Flow Fungsi Penghubung antara prosedur / proses. Simbol keluar / masuk prosedur Off-line Connector atau proses. dalam lembar / halaman yang lain. 2. Simbol Proses Yaitu, merupakan simbol yang menunjukkan jenis operasi pengolahan dalam suatu prosedur. Tabel 2.7.2 Simbol Proses Simbol Nama Fungsi Simbol yang menunjukkan Process pengolahan yang dilakukan Komputer. Simbol untuk kondisi yang akan Decision menghasilkan beberapa kemungkinan jawaban / aksi. Terminal Simbol untuk permulaan atau akhir darti suatu program. Universitas Sumatera Utara 18 Manual Input Simbol untuk pemasukan data secara manual on-line keyboard. 3. Simbol Input-Output Yaitu, simbol yang dipakai untuk menyatakan jenis peralatan yang digunakan sebagai media input atau output. Tabel 2.7.3 Simbol Input-Output Simbol Nama Fungsi Simbol yang menyatakan proses Input-Output input dan output tanpa tergantung dengan jenis peralatannya. Simbol yang menyatakan input Document berasal dari dokumen dalam bentuk kertas atau output di cetak dikertas. Disk and On-line Storage 2.8 Simbol untuk menyatakan input berasal dari disk atau output di simpan ke disk. UML ( Unified Modeling Language) UML adalah sebuah bahasa yang telah menjadi standart dalam industri untuk visualisasi, merancang, dan mendokumentasikan sistem piranti lunak. UML menawakan sebuah standar 8 untuk merancang model sebuah sistem. Dengan Universitas Sumatera Utara 19 menggunakan UML kita dapat membentuk model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman. Notasi UML merupakan sekumpulan bentuk khusus yang menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat di kombinasikan. Notasi UML terustama di turunkan dari 3 notasi yang telah ada, yaitu : ObjectOriented Design, Object-Modeling Technique dan Object-Oriented Software Engineering. 2.8.1 Use Case Diagram Use Case diagram menggambarkan fungsionalitas yang di harapkan dari sebuah sistem, yang ditekankan adalah “apa” yang di perbuat sistem, dan bukan “bagaimana”. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Universitas Sumatera Utara 20 2.8.2 Squnce Diagram Squence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa pesan yang digambarkan terhadap waktu. Squence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Universitas Sumatera Utara