BAB III PERANCANGAN SISTEM 3.1 Kebutuhan Sistem Kebutuhan fungsional sistem merupakan paparan mengenai fitur-fitur yang akan dimasukan kedalam aplikasi yang akan dibangun. Fitur fitur tersebut harus memenuhi beberapa kriteria. Secara garis besar pemaparan kebutuhan antara lain sebagai berikut: a. Mampu menampilkan informasi ketinngian air berupa lampu indikator dan memberikan peringatan dengan menggunakan Alarm. b. Mampu menampilkan informasi dalam bentuk grafik dan data sensor secara realtime. c. Mampu menampilkan data yang tersimpan berdasarkan range tertentu dan di tampilkan dalam grafik. 3.2 Gambaran Umum Secara umum, sistem ini tersusun dari beberapa bagian seperti yang terlihat pada gambar 3.1 dibawah ini. Sensor HTTP Server mikrokontroler Arduino HTTP Client Web Server Proses Pengolahan Data Database Server Web Client Gambar 3.1 Blok Diagram Sistem Keseluruhan 30
31 Fungsi fungsi dari blok diagram diatas adalah sebagai berikut: a. Sensor berfungsi untuk menginformasikan jarak permukaan air sehingga level ketinggian air dapat terdeteksi. b. Arduino berfungsi sebagai pengendali lampu indikator, alarm dan memproses perintah data untuk dikirim melalui HTTP client ke web server. c. Database berfungsi sebagai penyimpanan data hasil pembacaan sensor. d. Web Server berfungsi sebagai penerima data untuk di simpan ke database dan pengiriman data yang akan diproses pada pengolahan data dalam bentuk JSON (JavaScript Object Notation). Setelah itu, data akan ditampilkan dalam bentuk grafik dilengkapi dengan rincian data pembacaan sensor untuk di tampilkan ke web client. 3.3 Perancangan Arduino Sebagai HTTP Client Library Ethernet Arduino menyediakan berbagai fungsi/method dan beberapa protocol (HTTP, TCP, UDP) yang kemungkinan menjadikan arduino sebagai client atau server. Client atau server adalah aplikasi/software, adapun bentuk fisiknya bisa bermacam-macam bisa PC, mainframe, laptop, microcontroller, dan lain-lain. Server bersifat pasif/melayani, dia menunggu permintaan dari client. Pada perancangan Arduino yang digunakan adalah sebagai HTTP client, untuk memproses sebuah data pembacaan sensor dan dikirim ke web server melalui LAN kemudian web server menerima hasil pembacaan sensor tersebut dan menyimpan kedalam database.
32 START Inisialisasi Koneksi Konversi Kirim Tidak Selesai? Ya End Gambar 3.2 Flowchart Pembacaan Sensor dan Pengiriman Data ke web server Proses pembacaan sensor dan dengiriman data ke web server pada gambar 3.2 adalah sebagai berikut : Proses inisialisasi dan beberapa konfigurasi terletak pada fungsi setup. Hal ini dikarenakan fungsi setup adalah fungsi yang hanya dijalankan sekali saat program pertama kali dijalankan. Dengan kata lain fungsi setup akan dijalankan pada saat rangkaian diberi sumber tegangan. Koneksi merupakan upaya menghubungkan arduino ke web server. Konversi adalah proses perubahan sinyal dari sensor yang diubah kedalam satuan centimeter (cm). Sensor yang digunakan
33 mengeluarkan gelombang ultrasonic, untuk mengetahui jarak ketinggian air dengan menghitung banyaknya pulsa high yang diterima sensor dari pantulan gelombang. Kirim adalah proses pengiriman informasi level ketinggian air ke web server menggunakan protokol http. Informasi yang dikirimkan adalah level ketinggian air dalam satuan centimeter (cm). Informasi ini akan disimpan di dalam database sebagai rekaman. Selesai adalah pemeriksaan kondisi apakah progam telah selesai? Jika program selesai atau dihentikan, maka seluruh progras dalam program akan selesai. Sebaliknya, apabila program masih terus berjalan, maka alur ekseskusi akan kembali ke pemeriksaan koneksi untuk mengulangi pengiriman informasi. 3.4 Perancangan Web Server Web server merupakan sebuah perangkat komputer yang digunakan untuk mengakses segala jenis file yang terdapat pada halaman web melalui HTTP/HTTPS dengan menggunakan aplikasi atau program tertentu (dikenal dengan nama web browser) dan mengirimkan kembali hasil permintaannya dalam bentuk halaman halaman web yang berbentuk dokumen HTML. Fungsi utama sebuah web server adalah untuk mentransfer berkas atau permintaan pengguna melalui protokol komunikasi yang telah di tentukan. Untuk menjalankan web server dengan menggunakan software yang bernama XAMPP seperti pada gambar 3.3 Gambar 3.3 XAMPP Control Panel
34 START Koneksi ke Database Tidak Koneksi berhasil? Ya Menerima data dari Arduino Simpan Pada Tabel Sensor STOP Gambar 3.4 Flowchart Penerimaan Data sensor Proses penerimaan data sensor ke database pada gambar 3.4 adalah sebagai berikut Koneksi merupakan upaya untuk menghubungkan arduino pada database melalui web server dengan metode GET. Jika koneksi berhasil web server akan menerima data dari arduino untuk di simpan pada tabel sensor.
35 3.5 Perancangan Database Database adalah kumpulan data atau informasi yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian database meliputi spesifikasi serupa tipe data, struktur, dan juga batasan-batasan data yang akan disimpan. Database adalah aspek yang sangat penting dalam sistem informasi dimana database merupakan wadah penyimpanan data yang akan di olah lebih lanjut. Pada perancangan kali ini menggunakan MySQL yaitu perangkat lunak DBSM (database management system) merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara, mengontrol dan mengakses data secara praktis dan efisien. Dengan katalain semua akses ke database akan di tangani oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah pendefinisian oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk dan menangani unjuk kerja semua fungsi secara efisien. Tabel 3.1 Stuktur Database Name Type Null Key Default Extra Id Int(5) NO PRI None Auto_increment Waktu timestamp NO CURRENT_ TIMESTAMP Sensor int(5) NO None Pada Atribut Id menggunakan type Int(5) sebagai penanda unik yang akan di tambahkan ke tabel MySQL tersebut hingga maksimum sebanyak 5 digit (99999) secara otomatis (Auto_Increment). Pada Atribut Waktu menggunakan Timestamp untuk memberi tanggal dan waktu dengan Default Current_Timestamp sehingga jika
36 ada data yang masuk maka waktu default akan langsung di tambahkan. Atribut sensor menggunakan type Int(5) sebagai penerima data yang dikirim oleh arduino melalui web server. 3.6 Perancangan Pengolahan Data Pengolahan data adalah manipulasi data agar menjadi bentuk yang lebih berguna. Pengolahan data ini tidak hanya perhitungan numeris tetapi juga operasioperasi seperti klasifikasi data dan perpindahan data dari satu tempat ke tempat lain. Pengolahan data terdiri dari tiga langkah utama yaitu, input, proses, dan output. Dalam langkah ini data awal, atau data input disiapkan dalam beberapa bentuk untuk pengolahan. Bentuk tersebut akan tergantung pada pengolahan mesin, lalu pada proses data input diubah, dan dikombinasikan dengan informasi yang lain untuk menghasilkan data dalam bentuk yang lebih dapat digunakan, lalu pada langkah output dari hasil pengolahan sebelumnya dikumpulkan. Bentuk data output tergantung pada penggunaan data tersebut untuk pengolahan selanjutnya seperti pada gambar 3.5 dan gambar 3.6 Gambar 3.5 Varibel array sebelum diubah menjadi data JSON Gambar 3.6 Data JSON
37 3.7 Penampilan Data Secara Realtime START Koneksi ke database Tidak Koneksi berhasil? Ya Pengambilan data dari database Merubah Data Array Jadi Json Di Tampilkan dalam Bentuk Grafik dan Rincian data Gambar 3.7 Flowchart Penampilan Data Secara Realtime Proses penampilan data secara realtime pada gambar 3.7 adalah sebagai berikut. End Koneksi merupakan upaya menghubungkan web client dengan database melalui web server. Jika koneksi berhasil maka web server akan mengambil data dari database. Setelah database diambil oleh web server lalu data itu diproses untuk merubah data array menjadi data json.
38 Setelah semua proses dilakukan maka web server mengembalikan hasil permintaan tersebut kepada web client dan menampilkan berupa rincian data dan grafik secara realtime. 3.8 Penampilan Rekap Data Berdasarkan Waktu START Koneksi ke database Tidak Koneksi berhasil? Ya Pengambilan database berdasarkan tanggal Di tampilkan dalam grafik end Gambar 3.8 Flowchart Penampilan Rekap Data Berdasarkan Waktu Proses penampilan rekap data berdasarkan waktu pada gambar 3.8 adalah sebagai berikut. Koneksi merupakan upaya menghubungkan web client ke database melalui web server.
39 Jika koneksi berhasil maka web server akan menerima request dari web client untuk mengambil data berdasarkan tanggal dan langsung web server akan memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada web client. Web client pun menerima informasi hasil pemrosesan data yang dilakukan server dan di tampilkan ke dalam grafik.