SISTEM MANAJEMEN LISTRIK LABORATORIUM
DENGAN MIKROKONTROLER BERDASARKAN
JADWAL PRAKTIKUM
MUHAMMAD NUGRAHA AKBAR NRP. 7410030811
Dosen Pembimbing : Taufiqurrahman S.ST MT. Jauari Akhmad Nur Hasim S.ST
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN TEKNIK INFORMATIKA DAN KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
2014
ii
SISTEM MANAJEMEN LISTRIK LABORATORIUM
DENGAN MIKROKONTROLER BERDASARKAN
JADWAL PRAKTIKUM
Oleh:
Muhammad Nugraha Akbar NRP. 7410030811
Dosen Pembimbing :
Taufiqurrahman S.ST MT. NIP. 19830920 200812 1 001
Jauari Akhmad Nur Hasim S.ST NIP. 2000000052
PROGRAM STUDI D3 TEKNIK INFORMATIKA
DEPARTEMEN TEKNIK INFORMATIKA DAN
KOMPUTER
iv
ABSTRAK
Pada proyek akhir ini membuat dan mendesain Sistem Menejemen Listrik Laboratorium Dengan Mikrokontroler Berdasarkan Jadwal Praktikum. Latar belakang pengambilan projek akhir ini karena pada penggunaan laboratorium di Politeknik Elektronika Negeri Surabaya selain digunakan untuk mata kuliah praktikum juga digunakan untuk mata kuliah teori. Karena itu jika pada waktu untuk mata kuliah teori maka listrik di stop kontak meja praktikum harus mati agar pada saat untuk mata kuliah teori tidak digunakan sehingga mahasiswa fokus, tapi jika pada mata kuliah praktikum harus menyala karena untuk praktikum.
Pada perencanaan sistem ini menggunakan aplikasi web sebagai user interface dan untuk data parsing yang memerintah mikrokontroler sebagai kontroller utama dan menampilkan status nyala dari mikrokontroler.
v
ABSTRACT
On this final project to make and design Electrical Management System for Laboratory With Microkontroller Base on Practice Shedule . Background why make this system because on Electronics Engineering Polytechnic Institute of Surabaya, the laboratory not only for practice lecture, but also use for theory lecture too. So on theory lecture the electrical stop contact on practice table or desk must be off, and then on practice lecture must be on.
On planning this system using web application as user interface and data parsing, command microkontroller as a main kontroller and displayed status on or off from microkontroller to web .
vi
KATA PENGANTAR
Alhamdulillah, segala puji syukur bagi Allah SWT karena berkat rahmat dan hidayah-Nya, penulis dapat menyelesaikan proyek akhir yang berjudul :
“SISTEM MANAJEMEN LISTRIK LABORATORIUM DENGAN MIKROKONTROLER BERDASARKAN JADWAL
PRAKTIKUM”
Pembuatan dan penyusunan proyek akhir ini diajukan sebagai salah satu syarat untuk menyelesaikan studi Diploma-3 (D3) dan memperoleh gelar Ahli Madya (A.Md) di Program Studi Teknik Informatika Politeknik Elektronika Negeri Surabaya.
Penulis berusaha secara optimal dengan segala pengetahuan dan informasi yang didapatkan dalam menyusun laporan proyek akhir ini. Namun, penulis menyadari berbagai keterbatasannya, karena itu penulis memohon maaf atas keterbatasan materi laporan proyek akhir ini. Penulis sangat mengharapkan masukan berupa saran dan kritik yang membangun demi kesempurnaan laporan proyek akhir ini.
Demikian besar harapan penulis agar laporan proyek akhir ini dapat bermanfaat bagi pembaca, khususnya dalam mempelajari menejemen dan kontrol menggunakan web dan mikrokontroler.
Surabaya, 19 Januari 2014
vii
UCAPAN TERIMA KASIH
Dengan penuh rasa syukur kehadirat Allah S.W.T dan tanpa menghilangkan rasa hormat yang mendalam, saya selaku penyusun dan penulis mengucapkan terima kasih yang sebesar-besarnya kepada pihak-pihak yang telah membantu penulis untuk menyelesaikan proyek akhir ini, penulis mengucapkan terima kasih kepada :
1. Untuk kedua orang tuaku tercinta yang selalu memberi dukungan dan mendo’akan.
2. Bapak Dr. Zaenal Arief ST, MT, selaku Direktur PENS-ITS. 3. Ibu Arna Fariza S.Kom, M.Kom. selaku Kepala Departemen
Teknik Informatika Dan Komputer PENS-ITS.
4. Bapak Arif Basofi S.Kom, MT, selaku Ketua Program Studi Diploma 3 Teknik Informatika PENS-ITS.
5. Bapak Taufiqurrahman S.ST MT dan Bapak Jauari Akhmad Nur Hasim S.ST selaku dosen pembimbing proyek akhir saya. 6. Bapak Sritrusta Sukaridhoto ST, Ph.D, Bapak Ahmad Syauqi
Ahsan S.Kom dan Bapak Nur Rosyid Mubtadai S.Kom selaku dosen penguji proyek akhir saya.
7. Seluruh anggota Grup Ngopi Asempayung yang selama ini telah menyemangati saya.
8. Semua pihak yang telah membantu penulis hingga terselesainya proyek akhir ini yang tidak dapat penulis sebutkan satu-persatu.
viii
DAFTAR ISI
HALAMAN SAMPUL... i
LEMBAR PENGESAHAN... iii
ABSTRAK... iv
1.2 Perumusan Masalah... 1
1.3 Batasan Masalah... 1
1.4 Tujuan... 2
1.5 Kontribusi Proyek Akhir... 2
1.6 Metodologi Proyek Akhir... 2
1.6.1 Studi Literatur... 2
1.6.2 Pembuatan Hardware... 3
1.6.3 Pembuatan Softwar... 3
1.6.4 Pengujian Hasil dan Analisa... 3
1.6.5 Pembuatan Laporan Akhir... 4
BAB 2 DASAR TEORI... 5
2.4.3 Cascading Style Sheets………. 16
2.4.4 JavaScript……….. 17
2.4.4 Database MySQL……….. 18
2.4.4 XAMPP...……….. 18
2.5 Cron Job……... 19
2.5.1 Bagian-bagian Cron JOb……… 19
BAB 3 DESAIN DAN PEMBUATAN PROYEK AKHIR... 23
ix
3.2 Hardware……... 24
3.3 Komputer Server…... 25
3.4 Komputer Client…... 25
3.5 Switch Jaringan..…... 25
3.6 Ethernet Shield…... 27
3.7 Mikrokontroler Board Arduino ATMega 2560………. 27
3.8 Relay Kontrol……… 29
3.9 Relay Beban...……… 30
3.10 Software…...……… 30
3.11 Mekanisme Kerja………. 30
3.11.1 Pada Mikronoktroler………... 30
3.11.1 Pada Aplikasi Web...………... 30
BAB 4 PENGUJIAN DATA DAN ANALISA………... 67
4.1 Pengujian Hardware Secara Umum………... 67
4.1.1 Tujuan ... 67
4.1.2 Peralatan Dan Perlengkapan... 67
4.1.3 Teori Pendukung ... 67
4.1.4 Prosedur Percobaan ... 67
4.1.5 Hasil Percobaan ... 68
4.1.6 Analisa ... 68
4.2 Pengujian Mikrokontroler dan Ethernet Shield ... 69
4.2.1 Tujuan ... 69
4.2.2 Peralatan dan Perlengkapan ... 69
4.2.3 Teori Pendukung ... 70
4.2.4 Prosedur Percobaan ... 71
4.2.5 Hasil Percobaan ... 72
4.2.6 Analisa ... 73
4.3 Pengujian Kontrol Manual ... 74
4.3.1 Tujuan ... 74
4.3.2 Peralatan dan Perlengkapan ... 74
4.3.3 Teori Pendukung ... 74
4.3.4 Prosedur Percobaan ... 74
4.3.5 Hasil Percobaan ... 74
4.3.6 Analisa ... 79
4.4 Pengujian Kontrol Otomatis ... 79
4.4.1 Tujuan ... 79
4.4.2 Peralatan dan Perlengkapan ... 79
4.4.3 Teori Pendukung ... 79
4.4.4 Prosedur Percobaan ... 80
x
4.5 Pengujian Cron Job ... 88
4.5.1 Tujuan ... 88
4.5.2 Peralatan dan Perlengkapan ... 89
4.5.3 Teori Pendukung ... 89
4.5.4 Prosedur Percobaan ... 89
4.5.5 Analisa ... 90
4.5 Pengujian Ketahanan Alat ... 90
4.6.1 Tujuan ... 90
4.6.2 Peralatan dan Perlengkapan ... 90
4.6.3 Prosedur Percobaan ... 91
4.6.4 Analisa ... 91
4.6.5 Catatan dalam pengujian ... 91
BAB 5 PENUTUP... 93
5.1 Kesimpulan...………... 93
5.2 Saran... 94
xi
DAFTAR GAMBAR
Gambar 2.1: Mikrokontroler Board Arduino ATMega 2560……… 6
Gambar 2.2: Ethernet Shield Arduino……….. 9
Gambar 2.3: Relay yang banyak di pasaran………... 10
Gambar 2.4: Topologi Aplikasi Web……… 10
Gambar 2.5: Topologi Aplikasi Web……… 10
Gambar 3.1: Blok diagram proyek akhir yang dikerjakan……….. 11
Gambar 3.2: Gambar sistem kontrol……….. 22
Gambar 3.3: Arduino Ethernet Shield R3………... 24
Gambar 3.4: Mikrokontroler Board Arduino ATMega 2560…….. 26
Gambar 3.5: Arduino IDE……….. 26
Gambar 3.6: Board Relay Kontrol HKE HRS4H ………. 27
Gamabr 3.7: Relay Beban Omron MK2P-I ………... 28
Gambar 3.8: Halaman pengaktifan plant secara manual .……… 29
Gambar 3.9: Halaman data log ………... 29
Gambar 3.10: Halaman pop-up otomatis sistem……… 30
Gambar 3.11: Request plant dengan ping………... 36
Gambar 3.12: Tampilan ketika JavaScript tidak diaktifkan……… 42
Gambar 3.13: Entity Relationship Diagram(ERD)………... 43
Gambar 3.14: Struktur tabel hak……… 44
Gambar 3.15: Struktur tabel hari………. 27
Gambar 3.16: Struktur tabel history_praktikum………. 44
Gambar 3.17: Struktur tabel jadwal………. 45
Gambar 3.18: Struktur tabel log_manual………. 45
Gambar 3.19: Struktur tabel mulai……… 46
Gambar 3.20: Struktur tabel pegawai………. 46
Gambar3.21: Struktur tabel pekerjaan……… 47
Gambar3.22: Struktur tabel peringatan……….. 47
Gambar3.23: Struktur tabel praktikum………... 47
Gambar3.24: Struktur tabel range_1 dan range_2………... 48
Gambar3.25: Struktur tabel selesai……….. 48
Gambar3.26: Struktur tabel semester……….. 49
Gambar3.27: Struktur tabel set_minggu………. 49
Gambar3.28: Struktur tabel semester……….. 50
Gambar3.29: Flowchart user biasa……….. 50
Gambar3.30: Flowchart user login………... 51
Gambar3.31: Flowchart user admin……….. 36
xii
Gambar3.32: File hasil generate Artisteer 3……….. 37
Gambar3.33: Form input staf laboratorium……… 38
Gambar3.34: Diagram aliran data ... 43
Gambar4.1.1: Pengujian Hardware Secara Umum ... 69
(a) Lampu indikator mikrokontroler menyala ... 69
(b) Lampu tespen menyala... 69
(c) Nilai tegangan pada multimeter berubah .... 69
Gambar4.2.1: Tampilan awal software Arduino IDE ... 70
Gambar 4.2.2: Program siap di download ke mikrokontroler... 70
Gambar4.2.3: Posisi mikrokontroler dan ethernet shield ... 71
Gambar4.2.4: Setting parameter download program ... 71
Gambar4.2.5: Proses compile lalu download ... 72
Gambar4.2.6: Software cmd.exe ... 72
Gambar4.2.7: Hasil ping ethernet shield ... 73
Gambar4.2.8: Ping reply dari mikrokontroler dan ethernet shield .. 73
Gambar4.3.1: Setting IP pada server secara static IP ... 75
Gambar4.3.2: Halaman depan sistem ... 75
Gambar4.3.3: Halaman login... 76
Gambar4.3.4: Halaman Manual Kontrol. ... 76
Gambar4.3.5: Start stop manual ... 77
(a) Start semua ... 77
(b) Stop semua ... 77
(c) Start meja 1 ... 77
(d) Stopmeja 1... 77
Gambar4.3.6: Log data yang menggunakan plant secara manual ... 69
Gambar4.3.7: Hasil Pengujian Kontrol Manual ... 71
Gambar4.4.1: Setting IP pada server secara static IP ... 80
Gambar4.4.2: Halaman depan sistem ... 81
Gambar4.4.3: Halaman login... 81
Gambar4.4.4: Halaman kontrol otomatis ... 82
Gambar4.4.5: Halaman pengaturan waktu jam server ... 82
Gambar4.4.6: Setelah setting waktu server ... 83
Gambar4.4.7: Halaman kontrol memerintah hardware ... 83
Gambar4.4.8: Alarm tanda bahwa praktikum akan berakhir ... 84
Gambar4.4.9: Praktikum berakhir ... 84
Gambar4.4.10: Histori praktikum ... 85
Gambar4.4.11: Histori praktikum per minggu ... 86
Gambar4.5.1: Setting Cronjob pada Crontab ... 89
Gambar4.5.2: Cronjob Menggunakan Software Crontab... 90
xiii DAFTAR TABEL
Tabel 3.1: Tabel Perintah Serial …………... ... 31
Tabel 3.2: Program C pada mikrokontroler………...31
Tabel 3.3: Potongan program setting pengalamatan ………...36
Tabel 3.4: Potongan program setting port ………...37
Tabel 3.5: Potongan program penerima perintah .………...37
Tabel 3.6: Potongan program eksekusi port………...38
Tabel 3.7: Daftar tabel sistem ………...42
Tabel 3.8: Tabel script index.php ..………...55
Tabel 3.9: Tabel script proseslogin.php ………...57
Tabel 3.10: Tabel script tambah_user_admin.php………...58
Tabel 3.11: Tabel script mengambil log ………...64
Tabel 3.12: Tabel script menutup halaman otomatis ….………...65
1 BAB 1 PENDAHULUAN
1.1 Latar Belakang
Laboratorium di Politeknik Elektronika Negeri Surabaya, khususnya Lab. Elektronika Industri Prodi. Teknik Elektronika selain digunakan untuk melaksanakan mata kuliah praktikum, juga digunakan untuk pelaksanaan mata kuliah teori. Untuk menjaga agar pada saat mata kuliah teori mahasiswa tidak menggunakan listrik dari stop kontak pada meja praktikum, maka dibuatlah sebuah sistem yaitu "Sistem Manajemen Listrik Laboratorium Dengan Mikrokontroler Berdasarkan Jadwal Praktikum" untuk mengatur penggunaan listriknya.
Sistem yang digunakan untuk tugas akhir ini adalah menggunakan mikrokontroler yang dikontrol menggunakan aplikasi berbasis web, baik secara manual maupun otomatis. Jadi sistem ini menggunakan web browser untuk jalannya.
Sistem ini dibuat berbasis web menggunakan Ethernet shield dengan protocol TCP/IP sebagai media transfer datanya, karena nantinya biar bisa diakses dari banyak tempat secara client server, sehingga lebih memudahkan dalam mengontrol dan memonitoring plantnya.
1.2 Perumusan Masalah
Ada banyak cara dan metode dalam mengontrol penggunaan listrik. Pada proyek akhir ini saya menggunakan berbasis web dan mikrokontroler. Untuk permasalahan yang dibahas pada pengajuan tugas akhir ini sebagai berikut :
1. Bagaimana mengatur penggunaan listrik agar tidak bisa digunakan saat ber-langsungnya mata kuliah teori. 2. Bagaimana melakukan penjadwalan penggunaan listrik pada waktu yang telah ditentukan(pada saat praktikum atau kegiatan lain yang sudah dijadwalkan) .
1.3 Batasan Masalah
Dalam pengerjaan tugas akhir ini terdapat batasan-batasan permasalahan antara lain sebagai berikut :
1. Sistem berbasis web dan mikrokontroler.
2
4. Hanya digunakan untuk praktikum yang tidak paralel. 5. Minggu praktikum sudah ditentukan.
6. Hanya menggunakan jaringan yang sama gatewaynya. 1.4 Tujuan
Sesuai dengan judul proyek akhir yaitu "Sistem Manajemen Listrik Laboratorium Dengan Mikrokontroler Berdasarkan Jadwal Praktikum" maka tujuan proyek akhir ini adalah :
1. Merancang dan membuat prototype hardware dan software monitoring "Sistem Manajemen Listrik Laboratorium Dengan Mikrokontroler Berdasarkan Jadwal Praktikum" agar nantinya bisa digunakan pada lab yang sesungguhnya.
2. Melakukan manajemen pengunaan listrik pada laboratorium
1.5 Kontribusi Proyek Akhir
Dalam proyek akhir ini memiliki dampak yang positif jika ditinjau adalah sebagai berikut :
1. Merupakan sebuah inovasi baru dalam bidang kontrol yaitu menggunakan web untuk mengontrol listrik. 2. Menghasilkan sebuah alat bantu yang baru bagi
laboratorium untuk mengatur penggunaan listrik. 3. Alat ini harapannya dapat meningkatkan efisiensi
penggunaan listrik di laboratorium. 1.6 Metodologi Proyek Akhir
Sewaktu melakukan apapun terlebih dahulu harus diketahui urutan – urutan yang benar sehingga dapat dikerjakan dengan baik, berikut adalah detail pelaksanaan program dari tugas akhir.
1.6.1 Studi Literatur
Studi literatur ini bertujuan untuk mempelajari teori-teori penunjang yang melandasi pemecahan masalah baik untuk perangkat keras maupun perangkat lunak.
1.6.2 Pembuatan Hardware
3 1.6.3 Pembuatan Software
Pembuatan software menggunakan program PHP dengan database MySQL dan web server Apache.
1.6.4 Pengujian Hasil dan Analisa
Pengujian hasil dan analisa akan dilakukan pada alat yang dibuat dengan diberikan beban serta dijalankan secara manual dan otomatis berdasarkan jadwal praktikum. Alat tidak diuji langsung dengan plant yang sesungguhnya untuk menghindari kegagalan sistem karena padatnya jadwal pada laboratorium.
1.6.5 Pembuatan Laporan Akhir
4
5 BAB 2 DASAR TEORI
Pada bab ini akan dijelaskan mengenai teori-teori yang ada sebelumnya, yang akan digunakan untuk referensi dalam perancangan Sistem Manajemen Listrik Laboratorium Dengan Mikrokontroler Berdasarkan Jadwal Praktikum. Teori-teori ini berasal dari teknologi-teknologi yang sudah ada sebelumnya.
2.1 Mikrokontroler
Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang dapat menerima sinyal input, mengolahnya dan memberikan sinyal output sesuai dengan program yang diisikan ke dalamnya. Sinyal input mikrokontroler berasal dari sensor yang merupakan informasi dari lingkungan sedangkan sinyal output ditujukan kepada aktuator yang dapat memberikan efek ke lingkungan. Jadi secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari suatu perangkat/produk yang mempu berinteraksi dengan lingkungan sekitarnya.
Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya. Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz, sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz. Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
6
Gambar 2.1Mikrokontroler Board Arduino ATMega 2560 Sumber :
http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Fro nt.jpg
(diakses pada tanggal 10 Desember 2013 jam 10.57 WIB)
Sistem yang menggunakan mikrokontroler sering disebut sebagai embedded system atau dedicated system. Embeded system adalah sistem pengendali yang tertanam pada suatu produk, sedangkan dedicated system adalah sistem pengendali yang dimaksudkan hanya untuk suatu fungsi tertentu. Sebagai contoh printer adalah suatu embedded system karena di dalamnya terdapat mikrokontroler sebagai pengendali dan juga dedicated system karena fungsi pengendali tersebut berfungsi hanya untuk menerima data dan mencetaknya. Hal ini berbeda dengan suatu PC yang dapat digunakan untuk berbagai macam keperluan, sehingga mikroprosesor pada PC sering disebut sebagai general purpose microprocessor (mikroprosesor serba guna). Pada PC berbagai macam software yang disimpan pada media penyimpanan dapat dijalankan, tidak seperti mikrokontroler hanya terdapat satu software aplikasi.
7
disebutkan di atas terdapat juga beberapa seri mikrokontroler lain yang cukup dikenal antara lain Basic Stamp dari Parallax (banyak digunakan untuk pembelajaran mikrokontroler) dan HD64180 dari Hitachi (sebagai pengendali LCD). Masing-masing mikrokontroler mempunyai cara dan bahasa pemrograman yang berbeda, sehingga program untuk suatu jenis mikrokontroler tidak dapat dijalankan pada jenis mikrokontroler lain.
Mikrokontroler pertama kali dikenalkan oleh Texas Instrument dengan seri TMS 1000 pada tahun 1974 yang merupakan mikrokontroler 4 bit pertama. Mikrokontroler ini mulai dibuat sejak 1971. Merupakan mikrokomputer dalam sebuah chip, lengkap dengan RAM dan ROM. Kemudian, pada tahun 1976 Intel mengeluarkan mikrokontroler yang kelak menjadi populer dengan nama 8748 yang merupakan mikrokontroler 8 bit, yang merupakan mikrokontroler dari keluarga MCS 48. Sekarang di pasaran banyak sekali ditemui mikrokontroler mulai dari 8 bit sampai dengan 64 bit, sehingga perbedaan antara mikrokontroler dan mikroprosesor sangat tipis. Masing-masing vendor mengeluarkan mikrokontroler dengan dilengkapi fasilitas-fasilitas yang cenderung memudahkan user untuk merancang sebuah sistem dengan komponen luar yang relatif lebih sedikit.
Saat ini mikrokontroler yang banyak beredar dipasaran adalah mikrokontroler 8 bit varian keluarga MCS51(CISC) yang dikeluarkan oleh Atmel dengan seri AT89Sxx, dan mikrokontroler AVR yang merupakan mikrokontroler RISC dengan seri ATMEGA8535 (walaupun varian dari mikrokontroler AVR sangatlah banyak, dengan masing-masing memiliki fitur yang berbeda-beda). Dengan mikrokontroler tersebut pengguna (pemula) sudah bisa membuat sebuah sistem untuk keperluan sehari-hari, seperti pengendali peralatan rumah tangga jarak jauh yang menggunakan remote kontrol televisi, radio frekuensi, maupun menggunakan ponsel, membuat jam digital, termometer digital dan sebagainya.
Secara teknis, hanya ada dua macam mikrokontroler. Pembagian ini didasarkan pada kompleksitas instruksi-instruksi yang dapat diterapkan pada mikrokontroler tersebut. Pembagian itu yaitu RISC dan CISC.
RISC merupakan kependekan dari Reduced Instruction Set
8
CISC kependekan dari Complex Instruction Set Komputer.
Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.
Masing-masing mempunyai keturunan atau keluarga sendiri-sendiri.
Pembagian jenis-jenis mikrokonktroler yang telah umum digunakan adalah.
1. Keluarga MCS51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC. Sebagian besar instruksinya dieksekusi dalam 12 siklus clock.
Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan alamat dengan cara jalur pemilihan chip yang terpisah untuk akses program dan memori data.
Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah mesin pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit dapat dilakukan secara langsung dan secara efisien dalam register internal dan RAM. Karena itulah MCS51 digunakan dalam rancangan awal PLC (programmable Logic Kontrol).
2. AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi.
9 3. PIC
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Kontroller. Tetapi pada perkembangannya berubah menjadi Programmable Intelligent Komputer.
PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat oleh Microchip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik General Instruments dengan nama PIC1640. Sekarang Microhip telah mengumumkan pembuatan PIC-nya yang keenam.
PIC cukup popular digunakan oleh para developer dan para penghobi ngoprek karena biayanya yang rendah, ketersediaan dan penggunaan yang luas, database aplikasi yang besar, serta pemrograman (dan pemrograman ulang) melalui hubungan serial pada komputer.
2.2 Ethernet Shield
Pengertian Ethernet Shield adalah jenis perangkat keras jaringan yang dihubungkan dengan mikrokontroler berupa adaptor, awalnya diciptakan untuk membangun sebuah Local Area Network (LAN). Hal ini digunakan untuk mendukung standar Ethernet untuk koneksi jaringan kecepatan tinggi melalui kabel dalam. Sebuah network yang menggunakan Ethernet sebagai protokol sering disebut Ethernet network.
Gambar 2.2 Ethernet Shield Arduino Sumber :
10
Fungsi Ethernet Shield adalah membantu pertukaran data secara full duplex melalui jaringan. Ethernet Shield ini berkomunikasi melalui jaringan komputer dengan bantuan dari akses fisik ke media jaringan, dan Ethernet Shield ini berkomunikasi melalui jaringan komputer dengan bantuan akses fisik media jaringan, dan sistem pengalamatan tingkat rendah melalui penggunaan alamat MAC (nomor seri unik 48-bit yang disimpan dalam ROM yang dilakukan pada Ethernet Shield ). Dalam sebuah jaringan, setiap Ethernet Shield memiliki alamat MAC yang unik.
2.3 Relay
Relay merupakan komponen elektronika yang dapat mengimplementasikan logika switching. Relay yang digunakan sebelum tahun 70an, merupakan “otak” dari rangkaian pengendali. Setelah tahun 70-an digantikan posisi posisinya oleh PLC. Relay yang paling sederhana ialah relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan energi listrik. Secara sederhana relay elektromekanis ini didefinisikan sebagai alat yang menggunakan gaya elektromagnetik untuk menutup (atau membuka) kontak saklar. Saklar yang digerakkan (secara mekanis) oleh daya/energi listrik. Jadi secara sederhana dapat disimpulkan bahwa Relay adalah komponen elektronika berupa saklar elektronik yang digerakkan oleh arus listrik.
Gambar 2.3 Relay yang banyak di pasaran
Sumber : http://dien-elcom.blogspot.com/2012/08/fungsi-dan-jenis-jenis-relay.html
11 2.4 Aplikasi Web
Aplikasi web merupakan sebuah aplikasi yang mengunakan teknologi browser untuk menjalankan aplikasi dan diakses melalui jaringan komputer (Remick, 2011). Sedangkan meurut (Rouse, 2011) aplikasi web adalah sebuah program yang disimpan di Server dan dikirim melalui internet dan diakses melalui antarmuka browser.
Dari pengertian diatas dapat disimpulkan aplikasi web merupakan aplikasi yang diakses mengunakan web berowser melalui jaringan internet atau intranet. Aplikasi web juga merupakan suatu perangkat lunak komputer yang dikodekan dalam bahasa pemrograman yang mendukung perangkat lunkan berbasis web seperti HTML, JavaScript, CSS, Ruby, Python, Php, Java dan bahasa pemrograman lainnya. Adapun Gambaran rincian aplikasi web, terbagi menjadi 3 (tiga) lapisan model.
Gambar 2.4 Topologi Aplikasi Web Sumber :
http://melengo.files.wordpress.com/2012/10/102712_1445_aplikasiweb1 .gif?w=529
12
Pada lapisan pertama browser web (Client Side Browser) atau antarmuka penguna, lapisan kedua web application Server seperti Pre Hypertext Processor (PHP), Java Server Page (JSP), Active Server Pages (ASP) atau bahasa pemerograman yang berjalan pada Server dan yang ketiga database Server yang berisi content berita, data pelanggan, nama penguna dan password.
Untuk tugas akhir ini aplikasi web yang digunakan adalah menggunakan bahasa pemrograman PHP, HTML, CSS, dan Javascript dengan web server Apache disertai dengan database My-SQL. Semua ini dipaket dalam software XAMPP. Pembahasannya adalah sebagai berikut.
2.4.1 Pemrograman PHP
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP adalah phpBB dan MediaWiki (software di belakang Wikipedia).
PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.
PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI, kependekan dari Hypertext Preprocessing'/Form Interpreter. Dengan perilisan kode sumber ini menjadi open source, maka banyak programmer yang tertarik untuk ikut mengembangkan PHP.
13
Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0.
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, 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.
Kelebihan PHP dari bahasa pemrograman lain adalah :
Bahasa pemrograman PHP adalah sebuah bahasa script
yang tidak melakukan sebuah kompilasi dalam penggunaanya.
Web Server yang mendukung PHP dapat ditemukan
dimana - mana dari mulai IIS sampai dengan Apache, dengan configurasi yang relatif mudah.
Dalam sisi pengembangan lebih mudah, karena banyaknya
milis - milis dan developer yang siap membantu dalam pengembangan.
Dalam sisi pemahamanan, PHP adalah bahasa scripting
yang paling mudah karena referensi yang banyak.
14
PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system. PHP bersifat case sensitif yang artinya semua penulisannya harus sesuai dengan kamus data yang tersedia. Secara mendasar php memiliki struktur sebagai berikut :
<?php
//Ini contoh komentar dalam php
echo "<h2>Contoh sederhana penulisan PHP</h2>"; $nama="Satria Multimedia";
Kode diatas adalah contoh sederhana struktur PHP, berikut penjelasanya :
Awal kode harus diawali dengan "<?php" dan diakhiri dengan "?>", 2 perintah tersebut harus ada pada tiap bagian yang memanggil fungsi php.
Dalam barisan perintah php, kita bebas menyisipkan komentar dengan diawali tanda "//". Komentar digunakan untuk mempermudah mengingat kumpulan baris dengan proses yang sama
echo digunakan untuk mengirimkan hasil ke browser,
sehingga yang dikirimkan adalah bagian yang berada setelah perintah echo
15 2.4.2 Pemrograman HTML
HTML atau Hyper Text Markup Language adalah berupa serangkaian kode-kode tag yang menginstruksikan kepada penjelajah web atau (web browser) untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan penjelajah web seperti Mozilla Firefox atau Microsoft Internet Explorer, Google Crome, dan Opera. HTML juga dapat dikenali oleh aplikasi pembuka surel ataupun dari PDA dan perangkat lunak lain yang memiliki kemampuan browser. Dengan menggunakan perintah-perintah HTML memungkinkan pengguna untuk melakukan tugas-tugas seperti berikut :
Menentukan ukuran dan alur tulisan (font).
Mengintegerasikan gambar dengan tulisan.
Membuat Pranala.
Mengintegerasikan berkas suara dan rekaman gambar
hidup (audio-Video).
Membuat form interaktif (form email, chat, dll).
HTML dokumen tersebut mirip dengan dokumen tulisan biasa, hanya saja dalam dokumen ini sebuah tulisan bisa memuat instruksi yang ditandai dengan kode atau lebih dikenal dengan TAG tertentu. Sebagai contoh jika ingin membuat tulisan ditampilkan menjadi tebal seperti: TAMPIL TEBAL, maka penulisan bahasa HTML nya adalah : <b>TAMPIL TEBAL</b>. Tanda <b> digunakan untuk mengaktifkan instruksi cetak tebal, yang diikuti oleh tulisan yang ingin ditebalkan, dan diakhiri dengan tanda </b> untuk menonaktifkan cetak tebal tersebut. HTML lebih menekankan pada penggambaran komponen-komponen struktur dan formating di dalam halaman web daripada menentukan penampilannya.
16
tampilan yang terlihat dalam komputer berbasis Windows. Pengguna Microsoft Windows pun tidak akan dapat melihat tampilan yang sama sebagaimana tampilan yang terlihat pada pengguna yang menggunakan Produk-produk Sun Microsystems. Namun demikian pengguna-pengguna tersebut dapat melihat semua halaman web yang telah diformat dan berisi Grafika dan Pranala.
HTML memungkinkan kita untuk menyunting tampilan atau format berkas yang akan kita kirimkan melalui media daring. Beberapa hal yang dapat dilakukan dalam menentukan format berkas adalah :
Kita dapat menampilkan suatu kelompok kata dalam beberapa
ukuran yang dapat digunakan untuk judul, heading dan sebagainya.
Kita dapat menampilkan tulisan dalam bentuk cetakan tebal
Kita dapat menampilkan sekelompok kata dalam bentuk miring
Kita dapat menampilkan naskah dalam bentuk huruf yang mirip
dengan hasil ketikan mesin ketik
Kita dapat mengubah-ubah ukuran tulisan untuk suatu karakter
tertentu.
2.4.3 Cascading Style Sheets
Cascading Style Sheets atau CSS adalah suatu bahasa lembar gaya yang digunakan untuk mengatur tampilan suatu dokumen yang ditulis dalam bahasa markah. Penggunaan yang paling umum dari CSS adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML. Walaupun demikian, bahasanya sendiri dapat dipergunakan untuk semua jenis dokumen XML termasuk SVG dan XUL. Spesifikasi CSS diatur oleh World Wide Web Consortium (W3C).
17
tampilan, dan mengurangi kompleksitas serta pengulangan pada stuktur isi.
CSS memungkinkan halaman yang sama untuk ditampilkan dengan cara yang berbeda untuk metode presentasi yang berbeda, seperti melalui layar, cetak, suara (sewaktu dibacakan oleh penjelajah web basis-suara atau pembaca layar), dan juga alat pembaca braille. Halaman HTML atau XML yang sama juga dapat ditampilkan secara berbeda, baik dari segi gaya tampilan atau skema warna dengan menggunakan CSS.
2.4.4 JavaScript
JavaScript adalah bahasa pemrograman ditafsirkan bahwa sebagian besar digunakan untuk mengubah halaman web statis menjadi halaman dinamis dan interaktif setelah web browser telah selesai men-download sebuah halaman web. Misalnya, jam ditampilkan pada halaman yang update sendiri untuk menunjukkan waktu saat ini pada komputer pengguna. Desain JavaScript dipengaruhi oleh banyak bahasa pemrograman, termasuk C, tetapi dimaksudkan untuk lebih digunakan oleh non-programmer. JavaScript tidak didasarkan pada atau terkait ke Java, ini adalah kesalahpahaman umum. JavaScript seringkali disertakan dalam file HTML atau link dari file HTML dan dijalankan secara lokal oleh web browser. Ini berarti bahwa server bebas untuk mengerjakan sesuatu yang lain daripada pemrosesan instruksi untuk setiap klien. Hal ini telah membuat JavaScript pilihan yang lebih populer daripada bahasa yang memerlukan server untuk melakukan pengolahan.
Beberapa contoh menggunakan adalah:
Berputar atau bergulir teks.
Membuat bagian dari suatu bentuk terlihat atau tidak
terlihat. Sebagai contoh, dalam sebuah formulir pemesanan, jika pengguna kutu kotak centang "menyampaikan kepada alamat yang berbeda", bagian ekstra dengan kotak teks dengan streetname pengiriman, nomor, dan tempat dapat dibuat terlihat.
18
Mengambil informasi tambahan dari server (Ajax) untuk
sebagian me-refresh halaman.
Memvalidasi input pengguna pada formulir.
Merhitungan tanpa perlu kembali ke server.
Menentukan jenis browser.
2.4.5 Database MySQL
MySQL adalah sebuah perangkat lunak system manajemen basis data SQL (DBMS) yang multithread, dan multi-user. MySQL adalah implementasi dari system manajemen basisdata relasional (RDBMS). MySQL dibuah oleh TcX dan telah dipercaya mengelola system dengan 40 buah database berisi 10.000 tabel dan 500 di antaranya memiliki 7 juta baris.
MySQL AB merupakan perusahaan komersial Swedia yang mensponsori dan yang memiliki MySQL. Pendiri MySQL AB adalah dua orang Swedia yang bernama David Axmark, Allan Larsson dan satu orang Finlandia bernama Michael “Monty”. Setiap pengguna MySQL dapat menggunakannya secara bebas yang didistribusikan gratis dibawah lisensi GPL(General Public License) namun tidak boleh menjadikan produk turunan yang bersifat komersial.
Pada saat ini MySQL merupakan database server yang sangat terkenal di dunia, semua itu tak lain karena bahasa dasar yang digunakan untuk mengakses database yaitu SQL. SQL (Structured Query Language) pertama kali diterapkan pada sebuah proyek riset pada laboratorium riset San Jose, IBM yang bernama system R. Kemudian SQL juga dikembangan oleh Oracle, Informix dan Sybase. Dengan menggunakan SQL, proses pengaksesan database lebih user-friendly dibandingan dengan yang lain, misalnya dBase atau Clipper karena mereka masih menggunakan perintah-perintah pemrograman murni.
2.4.6 XAMPP
19
server web Apache untuk simulasi pengembangan website. Tool pengembangan web ini mendukung teknologi web populer seperti PHP, MySQL, dan Perl. Melalui program ini, programmer web dapat menguji aplikasi web yang dikembangkan dan mempresentasikannya ke pihak lain secara langsung dari komputer, tanpa perlu terkoneksi ke internet. XAMPP juga dilengkapi fitur manajemen database PHPMyAdmin seperti pada server hosting sungguhan, sehingga pengembang web dapat mengembangkan aplikasi web berbasis database secara mudah.
Program XAMPP banyak diaplikasikan dan digunakan oleh kalangan pengguna komputer di bidang pemrograman web. XAMPP merupakan software gratis. XAMPP dapat dijalankan di sistem operasi Windows 2000/XP/Vista/7 dan sistem operasi lain. Untuk menginstall versi terbaru program ini, Anda cukup menginstal file installer XAMPP ke komputer Windows Anda.
2.5 Cron Job
Cron Job adalah salah utility program yang ada di Linux, sebenarnya Cron tidak hanya ada Linux, tapi juga ada di Windows. Cron job digunakan untuk melakukan eksekusi perintah secara otomatis pada waktu yang spesifik atau tertentu saja. Mungkin agak berbeda dengan di sistem Windows. Biasanya sistem windows kita melakukan otomatisasi eksekusi menggunakan file .bat atau bisa juga di dalam scheduler yang ada di dalam program file dan kalau di dalam sistem Linux atau Unix dinamakan Cron dan untuk melakukannya eksekusi disebut Cron Job. Sistem scheduling ini terdapat di Linux, yang di awal kelahiran Cron ini terdapat di Unix system yang sekarang - sekarang ini di adopsi di sistem operasi Linux.
2.5.1 Bagian Bagian Cron Job
Bagian bagian dari cron job adalah sebagai berikut : 1. Menit (0-59)
2. Jam (0-23)
3. Hari dari Bulan (1-31) 4. Bulan (1-12)
20
Gambar 2.5 Ilustrasi Perintah Cronjob
Sumber : http://blog.rajawebhost.com/pengertian-dan-fungsi-cron-jobs-di-cpanel.html
(diakses pada tanggal 29 Januari 2014 jam 05.09WIB) Di bawah ini adalah beberapa perintah-perintah cronjob
(*) yang paling kiri menunjukkan menit ke berapa tugas
tersebut akan dilaksanakan. disini anda bisa memasukkan angka dari 0-59.
(*) nomer dua dari kiri menunjukkan jam berapa tugas tersebut akan dilaksanakan. disini anda bisa memasukkan angka dari 0-23.
(*) di tengah menunjukkan tanggal berapa tugas tersebut
dilaksanakan. disini anda bisa memasukkan angka 1-31.
(*) nomer 4 menunjukkan bulan ke berapa tugas tersebut
dilaksanakan. disini anda bisa memasukkan angka 1-12 (1=januari, 2=februari, dst)
(*) nomer 5 menunjukkan hari apa tugas tersebut
dilaksanakan. disini anda bisa memasukkan angka dari 0-6(0=minggu, 1=senin, 2=selasa, dst)
20 1 * * */command= ini berarti perintah akan dijalankan
setiap hari pada pukul 1.20 am.
20 13 * * */command= ini berarti perintah akan
21
20 3 4 9 */commannd= ini berarti perintah akan
dijalankan setiap tanggal 4 september pada pukul 3.20 am.
15 * * * 2/command= ini berarti perintah akan dijalankan
setiap hari selasa setiap jam lewat 15 menit (00.15, 01.15, 02.15, dst).
0 * * * * */command= ini berarti perintah akan dijalankan
setiap jam pada menit ke-0 (01.00, 02.00, 03.00, dst).
0 */2 * * */command= ini berarti perintah akan dijalankan
setiap 2 jam sekali. Garis miring memiliki arti setiap (x) sekali.
10 */3 * * */command= ini berarti perintah akan
dijalankan setiap 3 jam sekali pada pukul lewat 10 menit (00.10, 03.10, 06.10, dst).
30 3 1,3,5,7 * */command= ini berarti perintah akan dijalankan setiap tanggal 1,3,5, dan 7 pada pukul 03.30am. Tanda koma dipergunakan untuk menambahkan perintah lain pada sebuah tanda (*).
10,20,30 * * * *= ini berarti perintah tersebut akan dijalankan setiap jam pada pukul lewat 10, 20, dan 30 menit (07.10, 07.20, 07.30, 08.10, 08.20, dst)
2.6 SSL
SSL (Secured Socket Layer) adalah sebuah teknologi enkripsi (persandian) yang dikembangkan oleh Netscape pada tahun 1994 untuk mengamankan HTTP (menjaga pengiriman data antara web server (situs) dengan pengunjungnya. Ada beberapa versi SSL, versi 2 dan versi 3, tetapi versi 3 paling banyak digunakan saat ini. Saat kita mengakses situs yang terenkripsi SSL kita bisa merasa lebih aman dalam mengirimkan data sensitif ke situs tersebut.
22
seorang pengunjung mengakses situs yang terenksripsi SSL biasanya bisa dilihat dari indikator/ikon gembok pada browser atau juga alamat situs yang diakses diindikasikan dengan warna hijau pada baris alamat browser. Setelah SSL terpasang, anda bisa mengakses situs anda secara aman dengan mengganti URL yang sebelumnya misalnya http://www.namadomainanda.com menjadi https://www.namadomainanda.com.
23 BAB 3
DESAIN DAN PEMBUATAN PROYEK AKHIR
3.1 Blok Sistem
Proyek akhir ini akan berfokus pada desain sistem pengaturan penggunaan listrik menggunakan relay yang dikontrol mikrokontroler dengan antar muka berbasis web . Dalam gambar 3.1 berikut ini adalah penjelasan rancangan dalam bentuk blok diagram.
24
User admin adalah user dengan hak paling tinggi karena bisa melakukan segala hal yang tidak bisa dilakukan leh user biasa dan user login.
Blok digram pada gambar 3.1 terdiri atas beberapa bagian yang penjelasannya adalah.
3.2 Hardware
Berikut ini adalah gambar dari sistem kontrol keseluruhan, sistem ini menggunakan mikrokontroler sebagai pengontrol utama dengan Ethernet Card untuk komunikasi dengan server menggunakan protocol TCP/IP dengan kabel UTP dengan konektor RJ-45.
25
Adapun spesifikasi sistem kontrolnya adalah sebagai berikut :
- Mikrokontroler ATMega-2560 dengan flashmemory 256
kB (Arduino Platform)
- Ethernet Shield Wiznet W5100 (Arduino Platform)
- Relay kontrol HKE HRS4H 5 VDC
- Relay beban Omron MK2P-I 220 VAC
- Stopkontak Uticon kuningan
3.3 Komputer Server
Disini komputer server digunakan untuk menjalankan aplikasi web dengan web server Apache, program PHP, serta database My-SQL. Aplikasi ini dipaket pada satu program yaitu XAMPP untuk mempermudah dalam menjalankannya. Adapun untuk menulis program PHP-nya menggunakan editor NuSphre PhpED. Sedangkan web browsernya menggunakan Google Chrome dan Mozilla Firefox. Adapun spesifikasi komputer server adalah sebagai berikut :
- Posesor Intel Core i 3
- RAM DDR3 4 Gb
- Hardisk 300 Gb
- Sistem operasi Windows 7 Ultimate
3.4 Komputer Client
Sedangkan untuk komputer client bisa menggunakan operating system dengan bebas karena sistem yang akan dijalankan berbasis web, sehingga bisa diakses dengan mudah melalui web browser yang mendukung realtime aplikasi menggunakan JavaScript.
3.5 Switch Jaringan
Switch pada dasarnya mempunyai fungsi seperti Hub yaitu sebagai pembagi sinyal dan penguat sinyal pada jaringan komputer akan tetapi switch lebih cerdas dari pada Hub karena Switch dapat mengenali alamat data yang harus ditransmisikan dan mampu mengatur lalu lintas data dalam jaringan secara lebih baik dibandingkan dengan Hub.
26
dan proses transfer data akan terganggu. Switch biasanya memiliki banyak port yang akan menghubungkan ke jaringan komputer dan port - port tersebut akan berhubungan dengan konektor RJ 45
3.6 Ethernet Shield
Disini fungsi dari ethernet shield adalah untuk mengubah data serial dari mikrokontroler ke dalam bentuk data protocol ethernet. Pada sistem ini Ethernet shield digunakan untuk berkomunikasi dengan server secara full duplex.
Ethernet Shield ini menggunakan chip WIZnet W5100 Ethernet Chip, yang dapat memberi kemudahan untuk membuat aplikasi online (terhubung dengan internet). Shield ini telah didukung oleh library Arduino. W5100 WIZnet mendukung hingga empat koneksi soket secara simultan. Menggunakan library Ethernet untuk menulis sketch yang bisa terhubung ke internet.
Untuk menggunakan shield ini, tancapkan di atas board Arduino. Untuk memprogramnya, cukup hubungkan dengan komputer via USB sebagaimana memprogram board Arduino seperti biasa. Untuk menghubungkan ethernet shield dengan komputer, hub, atau router gunakan kabel ethernet standar (CAT5 atau CAT6 dengan konektor RJ45). Board Arduino berkomunikasi dengan W5100 dan SD card menggunakan bus SPI (melalui ICSP header). Bus ini terwakili oleh pin 11, 12, dan 13. Pin 10 digunakan untuk mengaktifkan chip W5100.
Gambar 3.3 Arduino Ethernet Shield R3 Sumber :
http://arduino.cc/en/uploads/Main/ArduinoEthernetShield_R3_Front.jpg
27
3.7 Mikrokontroler Board Arduino ATMega 2560
Arduino Mega ATmega2560 merupakan mikrokontroler yang memiliki 54 kelompok digital I / O input / output terminal (14 kelompok merupakan output PWM), 16 set simulasi dari sisi input, kelompok 4 UART (port serial hardware), dengan menggunakan 16 MHz osilator kristal. Dengan bootloader, download program bisa secara langsung melalui USB tanpa harus melalui programmer eksternal lainnya. Pasokan bagian dari daya USB opsional, atau sebagai daya eksternal menggunakan adaptor AC-DC dan baterai.
Ada dua pilihan untuk sistem catu daya dari Mega USB power supply langsung Arduino atau catu daya eksternal. Pemilihan power supply akan diaktifkan secara otomatis. Pasokan eksternal AC-DC adaptor atau baterai dapat dipilih pada panel kontrol ini. Batasan rentang tegangan adalah 6V ~ 12V, tetapi jika tegangan yang diberikan kurang dari 6V, I / O port tidak dapat mengeluarkan tegangan 5V. Jika tegangan lebih besar dari 12V, perangkat regulator akan terlalu panas. Oleh karena itu dianjurkan menggunakan tegangan operasi 6.5 ~ 12V, power supply dianjurkan untuk 7.5V atau 9V.
- Microkontroller: ATmega2560
- Operating voltage: 5V
- Input voltage (recommended): 7-12V
- Input voltage (limits): 6-20V
28
Gambar 3.4 Mikrokontroler Board Arduino ATMega 2560 Sumber :
http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Front.jpg
(diakses pada tanggal 10 Desember 2013 jam 10.57 WIB)
Untuk membuat program pada Mikrokontroler Arduino menggunakan editor Arduino IDE yang bersifat opensource. Editor Arduino IDE ini menggunakan bahasa pemrograman C++ untuk memprogram mikrokontrolernya, setelah program C++ ditulias maka akan dicompile menjadi bentuh file .hex untuk didownloadkan ke dalam mikrokontroler baik menggunakan bootloader bawaan atau menggunakan ISP(In System Programming). Adapun tampilan dari editor Arduino IDE adalah seperti gambar di bawah.
29 3.8 Relay Kontrol
Relay kontrol adalah digunakan sebagai driver untuk menjalankan relay beban, adapun relay kontrol langsung di drive dari pin mikrokontrller, selanjutnya relay kontrol meneruskan ke relay beban perintah dari mikrokontroler untuk aksi On ataupun Off. Relay kontrol ini menggunakan tipe HKE HRS4H dengan input 5volt DC dan output sampai 220 volt AC sehingga mampu untuk menjalankan relay beban atau juga bisa menjalankan magnetic kontaktor.
Relay kontrol disini dipasang pada sebuah PCB dan ditata sedemikian sehingga mudah untuk dipasangkan dengan mikrokontroler dan relay beban.
Gambar 3.6 Board Relay Kontrol HKE HRS4H
30 3.9 Relay Beban
Relay beban adalah digunakan sebagai kontroller terakhir dari sistem ini yang langsung menyalurkan arus listik AC menuju ke beban melalui terminal. Relay beban pada sistem ini menggunakan Omron MK2P-I dengan rating kontak 250 VAC / 28 VDC 10 A. Mempunyai dua kontak aktif DPDT(Dual Pole Dual Throw) dengan dua kontak NC(Normally Close) dan dua kontak NO(Normally Open).
Relay beban dipasang pada rel tray omega dan ditata sedemikian sehingga mudah untuk dipasangkan dengan relay kontrol.
Gambar 3.7 Relay Beban Omron MK2P-I
3.10 Software
31
Software ini bisa menjalankan plant hardware baik secara mode manual menekan tombol button pada halaman tertentu pada software untuk mengaktifkan dan menonaktifkan plant baik langsung sepuluh relay ataupun hanya sebagain.
Gambar 3.8 Halaman pengaktifan plant secara manual
Dari setiap pengaktifan akan dicatat data log waktu pengaktifan dan siapa yang telah mengaktifkan plant secara manual.
Gambar 3.9 Halaman data log
32
mode otomatis maka setiap pengaktifan plant juga akan dicatat historinya baik secara per praktikum maupun per minggu.
Pada mode otomatis sistem akan mencocokkan tanggal dan jam dengan tanggal dan jam server dan untuk menyalakan, memberi alarm bahwa praktikum akan selesai, dan mematikan plant. Untuk menjalankan sistem dan plant hardware secara otomatis dan realtime
sesuai dengan waktu server menggunakan teknologi
AJAX(Asynchronous JavaScript and XMLHTTP) dan ditampilkan secara pop-up sehingga tidak mengganggu user.
Gambar 3.10 Halaman pop-up otomatis sistem
33
Gambar 3.11 Software Cronjob Crontab Editor
Sedangkan untuk keamanan pertukaran data menggunakan Secure Socket Layer(SSL) menggunakan sertifikat yang diterbitkan sendiri oleh OpenSSL. Berikut adalah proses generate SSL
Gambar 3.12 Beberapa Proses Generate SSL
3.11 Mekanisme Kerja
34 3.11.1 Pada Mirokontroler
Berikut ini adalah perintah serial yang dikirimkan oleh user ke mikrokontroler secara manual ataupun otomatis.
Tabel 3.1 Tabel Perintah Serial
NO Perintah Keterangan
1 “m_on” Semua jalur relai ON
2 “m_off” Semua jalur relai OFF
3 “buzz_on” Buzzer peringatan ON
4 “m1_on” Jalur relai 1 ON
Adapun program sebagai implementasi perintah serial yang ditanam di mikrokontroler sebagai berikut.
Tabel 3.2 Program C pada mikrokontroler #include <SPI.h>
35
39 {
digitalWrite(28, LOW); }
readString=""; }
} } } }
Pertama yaitu penentuan header parameter tentang alamat IP pada Ethernet shield, mac addres, gateway, subnet, port, dan ip pada server sehingga bisa terhubung antara server dengan mikrokontroler. Berikut adalah potongan programnya.
Tabel 3.3 Potongan program setting pengalamatan #include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 10, 252, 35, 160 };
byte gateway[] = { 10, 252, 35, 1 }; byte subnet[] = { 255, 255, 255, 0 }; EthernetServer server(80);
EthernetClient client;
byte serverName[] = { 10, 252, 35, 170 }; String readString;
40
Gambar 3.11 Request plant dengan ping
Selanjutnya adalah setting inisialisasi port yang akan digunakan sebagai output yang akan mengelurkan arus listrik untuk memerintah relay kontrol. Port yang digunakan adalah port 48, 46, 44, 42, 40, 38, 36, 34, 32, 30, dan 28.
Tabel 3.4 Potongan program setting port void setup(){
pinMode(48, OUTPUT); pinMode(46, OUTPUT); pinMode(44, OUTPUT); pinMode(42, OUTPUT); pinMode(40, OUTPUT); pinMode(38, OUTPUT); pinMode(36, OUTPUT); pinMode(34, OUTPUT); pinMode(32, OUTPUT); pinMode(30, OUTPUT); pinMode(28, OUTPUT);
Port-port tersebut disetting aktif hight karena yang dikeluarkan adalah tegangan dengan polaritas plus(+) yang nantinya akan menyalakan relay kontrol.
41
mengelurkan tegangan dan arus pada port-port yang telah di setting sebagai output. Potongan programnya adalah sebagai berikut :
Tabel 3.5 Potongan program penerima perintah EthernetClient client = server.available();
Selanjutnya setelah karakter yang dikirim server diterima mikrokontroler maka akan di jalankan oleh mikrokontroler sesuai dengan perintah yang diberikan, bisa menyalakan semua, mematikan semua, menyalakan sebagian, mematikan sebagian, menyalakan alarm, dan mematikan alarm. Programnya adalah sebagai berikut :
45 3.11.2 Pada Aplikasi Web
Aplikasi web yang dibangun pada sistem ini menggunakan PHP sebagai pemroses datanya, My-SQL sebagai dataabsenya, dan Apache sebagai webservernya. Sistem yang dibangun sangat mengandalkan JavaScript untuk menjalankan realtimenya. Jadi Browser yang digunakan harus support JavaScript dan default harus aktif. Jika user dengan sengaja mematikan JavaScript maka sistem secara otomatis akan menolak secara total untuk dijalankan, dan akan muncul peringatan bahwa JavaScript tidak aktif. Jadi jika JavaScript tidak aktif maka akan langsung pindah ke halaman notofikasi separti pada gambar berikut ini.
Gambar 3.12 Tampilan ketika JavaScript tidak diaktifkan
Selanjutnya adalah membuat modul untuk penjadwalan, histori, dan log data. Dalam pembuatan modul ini menggunakan pemrograman PHP dengan database MySQL disertai dengan JavaScript. Selain itu juga menggunakan teknologi AJAX(Asynchronous JavaScript and XMLHTTP) yang dibangun murni menggunakan JavaScript. AJAX digunakan untuk menjalankan sistem secara realtime tanpa harus mereload browser setiap melakukan request dan update data.
46
Tabel 3.7 Daftar tabel sistem
No Nama Tabel No Nama Tabel
1 hak 9 praktikum
2 hari 10 range_1
3 history_praktikum 11 range_2
4 jadwal 12 selesai
5 log_manual 13 semester
6 mulai 14 pegawai
7 pekerjaan 15 set_minggu
8 peringatan 16 tahun_ajaran
Tabel-tabel ini saling berelasi satu dengan yang lainnya. Berikut adalah Entity Relationship Diagram(ERD) pada tabel-tabel diatas.
47
Dari Entity Relationship Diagram(ERD) pada tabel-tabel diatas hanya tabel range_2 yang tidak berelasi dengan tabel lainnya, karena tabel range_2 hanya dipakai untuk pembatas histori per minggu. Untuk tabel-tabel yang lain penjelasannya adalah sebagai berikut. Pertama adalah tabel hak. Tabel hak digunakan untuk menampung jenis hak akses sistem. Berikut ini adalah struktur dari tabel hak.
Gambar 3.14 Struktur tabel hak
Selanjutnya adalah tabel hari. Tabel hari digunakan untuk menampung nama-nama hari. Nama-nama hari sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan hari. Berikut adalah struktur dari tabel hari.
Gambar 3.15 Struktur tabel hari
Selanjutnya adalah tabel history_praktikum. Tabel
48
Gambar 3.16 Struktur tabel history_praktikum
Selanjutnya adalah tabel jadwal. Tabel jadwal digunakan untuk menampung data jadwal praktikum yang akan dilaksanakan. Berikut adalah struktur dari tabel jadwal.
Gambar 3.17 Struktur tabel jadwal
49
Gambar 3.18 Struktur tabel log_manual
Selanjutnya adalah tabel mulai. Tabel mulai digunakan untuk menampung jam mulai praktikum. Jam mulai praktikum sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan jam mulai praktikum. Berikut adalah struktur dari tabel mulai.
Gambar 3.19 Struktur tabel mulai
50
Gambar 3.20 Struktur tabel pegawai
Selanjutnya adalah tabel pekerjaan. Tabel pekerjaan digunakan untuk menampung data pekerjaan pegawai seperti dosen, asisten, teknisi, dll. Pekerjaan sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan pekerjaan. Berikut adalah struktur dari tabel pekerjaan.
Gambar 3.21 Struktur tabel pekerjaan
Selanjutnya adalah tabel peringatan. Tabel peringatan digunakan untuk menampung jam peringatan praktikum akan segera selesai. Jam peringatan praktikum akan selesai sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan jam peringatan praktikum. Berikut adalah struktur dari tabel peringatan praktikum.
51
Selanjutnya adalah tabel praktikum. Tabel praktikum digunakan untuk menampung data nama praktikum yang akan dilaksanakan. Tabel praktikum berelasi dengan tabel jadwal. Berikut adalah struktur dari tabel praktikum.
Gambar 3.23 Struktur tabel praktikum
Selanjutnya adalah tabel range_1 dan range_2. Tabel range_1 dan range_2 sebenarnya hanya digunakan untuk menampung data urutan minggu ke 1 sampai dengan ke 16. Tabel praktikum berelasi dengan tabel jadwal. Berikut adalah struktur dari tabel praktikum. Hal sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan minggu pada halaman histori. Berikut adalah struktur dari tabel range_1 dan range_2.
Gambar 3.24 Struktur tabel range_1 dan range_2
52
Gambar 3.25 Struktur tabel selesai
Selanjutnya adalah tabel semester. Tabel semester digunakan untuk menampung data semester gasal dan genap. Semester sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan semester. Pada tabel semester juga terdapat field status yang digunakan untuk menentukan apakah semester ini aktif tidak. Berikut adalah struktur dari tabel semester.
Gambar 3.26 Struktur tabel semester
53
Gambar 3.27 Struktur tabel set_minggu
Selanjutnya adalah tabel tahun_ajaran. Tabel tahun_ajaran digunakan untuk menampung tahun_ajaran. Tabel tahun_ajaran sengaja ditabelkan untuk mempermudah untuk pemakaian dropdown menu pilihan tahun ajaran. Pada tabel tahun_ajaran juga terdapat field status yang digunakan untuk menentukan apakah tahun ajaran ini aktif tidak. Berikut adalah struktur dari tabel tahun_ajaran.
Gambar 3.28 Struktur tabel semester
54
Gambar 3.29 Flowchart user biasa
55
Gambar 3.30 Flowchart user login
56
Gambar 3.31 Flowchart user admin
57
Gambar 3.31 Artisteer 3
Selanjutnya setelah didesain template web maka tinggal digenerate menjadi sebuah template jadi lengkap dengan page.html, file css yang sudah support segala browser, file image, dan JQuery . Berikut adalah struktur file hasil dari Artisteer 3.
58
Setelah selesai maka template web bisa langsung dipindah ke folder web server XAMPP pada folder htdocs dengan membuat folder di dalamnya dengan nama terserah, lalu file template tadi di masukkan di dalamnya.
Kemudian untuk lebih meningkatkan efisiensi maka tidak perlu membuat satu halaman penuh setiap halaman. Cukup membuat satu halaman tapi kontennya yang diperbanyak sesuai dengan halaman yang akan kita buat. Sebelumnya halaman page.html harus diconvert ke dalam bentuk index.php yaitu halaman page.html dibuka pada editor apa saja(disini menggunakan PhpEd) kemudian di save as index.php ke dalam folder di dalam htdocs(disini menggunkan folder akbarudin).
Setelah itu hapus file page.html karena sudah diganti dengan file index.php, sehingga jika di jalankan pada web browser dengan mengakses : http://localhost/akbarudin maka akan langsung keluar halaman web tanpa harus memanggil nama filenya.
Setalah dipastikan bisa dijalankan maka selanjutnya adalah memodifikasi halaman index.php tersebut dengan memisah menjadi tiga bagian, menjadi index.php, home.php, dan menu.php, ini dilakukan untuk efisiensi halaman agar tidak selalu membuat satu halaman full. Untuk hasil dari pemisahan adalah sebagai berikut.
Tabel 3.8 Tabel script index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Listrik Laboratorium</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
59
<script src="themes/1/js-image-slider.js" type="text/javascript"></script>
<noscript>
<meta http-equiv="REFRESH" content="0;url=redirect.html"> </noscript>
<!--[if IE 6]><link rel="stylesheet" href="style.ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="style.ie7.css" type="text/css" media="screen" /><![endif]-->
60 index.php, menu.php dan home.php. Selanjutnya untuk memanggil halaman lain pada menu.php pada tag <a href> ditulis dengan format : “index.php?p=halaman yg dipanggil”. Untuk halaman yg dipanggil tidak perlu ditambah .php.
61
Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika anda menutup browser. Berikut ini adalah proseslogin.php
Tabel 3.9 Tabel script proseslogin.php <?php
$cek = mysql_query("SELECT a.*, b.nama_pekerjaan, c.nama_hak FROM pegawai a, pekerjaan b, hak c WHERE a.hak = c.id_hak AND a.pekerjaan = b.id_pekerjaan AND username='$userid' AND
password='$enkrip_psw'");
//$cek = "SELECT a.*, b.nama_pekerjaan, c.nama_hak FROM pegawai a, pekerjaan b, hak c WHERE a.hak = c.id_hak AND a.pekerjaan = b.id_pekerjaan AND username='$userid' AND password='$enkrip_psw'";
62
unset($_SESSION['username']); unset($_SESSION['hak']); header("location:index.php"); }
?>
Pada proseslogin.php maka session akan bekerja selanjutnya user yang mempunyai hak untuk mengakses halaman sesuai dengan levelnya maka akan bisa mengakses, selain itu tidak bisa. Session juga digunakan untuk menyimpan variable-variabel tertentu yang nantinya bisa digunakan untuk parameter dalam pemanggilan data menggunakan SQL.
Selanjutnya adalah pembuatan form-form inputan, disini menggunakan contoh untuk input data pegawai tambah_user_admin.php dengan kode sebagai berikut.
Tabel 3.9 Tabel script tambah_user_admin.php <?
include("sesi_admin.php"); include("tanggal.php"); ?>
63 td><td><input type="text" name="alamat" size="40" ></td></tr>
<tr><td><strong>Telepon</strong></td><td><strong>:</strong>< /td><td><input type="text" name="telepon" size="40" ></td></tr>
65
if($_SERVER["REQUEST_METHOD"] == "POST") {
66
VALUES ('$nama_pegawai', '$alamat', '$telepon', '$email', '$username', '$enkrip_psw', '$cbHak', '$cbPekerjaan', '2')"); ?>
<script type="text/javascript"> alert("Data Sudah Tersimpan");
window.location.href = "index_2.php?p=user_admin"; </script>
<?php } ?>
Inputan data pegawai ini untuk password dienskripsi dengan metode SHA1 untuk keamanan datanya. Untuk tabel-tabel yang lain juga prinsipnya hampir sama, hanya berbeda pada data yang akan dimasukkan. Berikut adalah gamba form input data pegawai.
Gambar 3.33 Form input staf laboratorium
67
Gambar 3.34 Diagram aliran data
Jadi sistem tidak akan berjalan jika user tidak merequest ke server. Pada sisi user selalu mereload data diambil dari server, dicocokkan dengan database, lalu dikirim kembali ke server, oleh server baru di kirim ke plant. Kemudian secara bersamaan juga mengirim log histori ke database dan ditampilkan kembali kepada user.
Disini timbul masalah ketika plant diaktifkan secara manual, yaitu plant mikrokontroler hanya bisa di aktifkan dengan dikirim data karakter via Ethernet shield menggunakan method GET pada php. Sedangkan secara bersamaan juga harus mengirim log histori ke database dengan method POST. Hal seperti ini tidak bisa dilakukan karena dalam satu form hanya bisa satu method.
Solusi yang bisa dilakukan adalah dengan memilih method GET untuk dijalankan bersamaan. Untuk mengaktifkan plant mikrokontroler sudah tidak masalah, sedangkan untuk menyimpan data log pada sistem manual yaitu dengan meredirect ke halaman baru dengan method GET.
Tabel 3.11 Tabel script mengambil log <th colspan="2"><button name="m_on"
onclick="window.open('/akbarudin/get_log.php/?id=m_on')">START SEMUA</button>
68 include("tanggal.php");
include("koneksi.php"); $id = $_GET['id'];
$id_user = $_SESSION['id_pegawai'];
mysql_query("INSERT INTO log_manual (user, hari, tanggal, bulan, tahun, jam_akses, status)
VALUES ('$id_user', '$hari', '$tanggal', '$bulan', '$tahun', '$jam', '$id')");
?>
<script type="text/javascript"> function closeMe() {
window.close(); }
setTimeout(closeMe, 200); </script>
Setelah redirect ke halaman baru maka pada halaman baru akan menyimpan log data pengguna yang diperoleh dari parsing data halaman manual. Setelah data disimpan maka secara otomatis halaman redirect baru tersebut akan ditutup dengan JavaScript.
Tabel 3.12 Tabel script menutup halaman otomatis <script type="text/javascript">
function closeMe() { window.close(); }