• Tidak ada hasil yang ditemukan

BAB III IMPLEMENTASI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III IMPLEMENTASI"

Copied!
33
0
0

Teks penuh

(1)

A. Aplikasi Client

Pembuatan program aplikasi client akan dipergunakan untuk pengontrolan lampu, pemrograman pada client menerapkan pemrograman soket dengan bahasa pemrograman java yang di buat dengan Perangkat Lunak (Arduino IDE).

B. Tampilan Client

1. Form Halaman Web

Gambar di bawah ini merupakan aplikasi untuk control lampu melalui halaman web :

Gambar 3.1 form halaman web

Dalam form Halaman web terdapat komponen sebagai berikut : 1. 4 komponen button

From Halaman Web ini berfungsi sebagai menu pengontrolan lampu.

(2)

2. Form Control Lampu

Gambar di bawah ini merupakan aplikasi untuk control lampu :

Gambar 3.2 Desain form control lampu

Dalam form Halaman web terdapat komponen sebagai berikut : 1. 4 komponen button

From Halaman Web ini berfungsi sebagai menu pengontrolan lampu.

(3)

Aplikasi Client USER Client

Server Arduino Uno

PIN 5

Lampu

Pembahasan System

Gambar 3.3 Diagram System Client - Server

Gambar di atas merupakan diagram sistem yang berjalan pada

client dan server. User client melakukan control lampu on,off,dimmer/sliding melalui aplikasi client yang akan diproses server untuk akses lampu. Kemudian status lampu on/off akan di

informasikan kembali dari server ke aplikasi client.

(4)

a. Software

Gambar di bawah ini merupakan system software yang dibangun untuk client yang terkoneksi ke server , user masuk aplikasi halaman web bila Ip Address yang dimasukkan benar maka secara otomatis akan menjalankan aplikasi control lampu , bila terjadi kesalahan pada Ip Address maka akan terjadi perulangan di program Web Browser hingga benar, setelah login user dapat melakukan kontrol lampu

on,off,dimmer/sliding yang akan diproses oleh server Arduino Uno untuk menghidupkan lampu, kemudian server

mengirimkan status lampu ke aplikasi client, user akan mengetahui keadaan lampu secara langsung.

(5)

b. Komunikasi Client – Server

Aplikasi client dan aplikasi server terhubung dalam jaringan dengan mengunakan pemrograman socket TCP , di dalam aplikasi terdapat nomor port dan target host yang berisi

IP(internet protocol) yang berguna untuk menghubungkan

komunikasi data antara client dan server, pada diagram Gambar aplikasi client mengirimkan data “LAMPU ON” ke aplikasi server, server menerima data client dan melakuakan akses Pin 5 untuk menyalakan lampu , aplikasi server mengirimkan data status “LAMPU ON” ke aplikasi client agar

user mengetahui kondisi status lampu.

Gambar 3.5 Diagram komunikasi Client – Server

USER Aplikasi Client Aplikasi Server SERVER Arduino Data Dikirim

Data Status Dikirim Jaringan

Lokal Lampu ON

(6)

3. Uji Coba Program

a. Tampilan Client

Setelah program server berjalan maka akses program

client yang berada pada aplikasi Arduino IDE kemudian running program halaman web seperti gambar di bawah ini :

(7)

b. Aplikasi Control Lampu

Jika berhasil login maka secara otomatis akan melakukan runing pada program control lampu , seperti berikut ini tampilan awal form control lampu :

(8)

Ketika dilakukan akses pada lampu ON, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.8 Pengujian Button Lampu ON

Akses pada button lampu ON , maka akan tampil pada gambar berikut :

(9)

Gambar 3.10 Pengujian Button Off lampu

Akses pada button lampu OFF , maka akan tampil pada gambar berikut :

(10)

Gambar 3.12 Pengujian Button Dimmer lampu

Akses pada button lampu Dimmer , maka akan tampil pada gambar berikut :

(11)

4.Penambahan Input Range Kecerahan Dengan Sliding Button

Ketika dilakukan akses pada lampu dengan range 0%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.14 Pengujian Sliding Button lampu

(12)

Ketika dilakukan akses pada lampu dengan range 20%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.16 Pengujian Sliding Button lampu

(13)

Ketika dilakukan akses pada lampu dengan range 40%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.18 Pengujian Sliding Button lampu

(14)

Ketika dilakukan akses pada lampu dengan range 60%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.20 Pengujian Sliding Button lampu

(15)

Ketika dilakukan akses pada lampu dengan range 80%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.22 Pengujian Sliding Button lampu

(16)

Ketika dilakukan akses pada lampu dengan range 100%, maka akan tampil kondisi lampu pada status, seperti gambar berikut :

Gambar 3.24 Pengujian Sliding Button lampu

(17)

5. Pembahasan Kode Program

Gambar 3.26 Tampilan program client

#include <SPI.h>

#include <Ethernet.h>//coding pemaggilan library

byte mac[]= {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //coding mac dll byte ip[]= {192,168,1,1};

byte gateway[]={192,168,1,2}; byte subnet[]={255,255,255,248}; EthernetServer server(80);

byte LampsPin=5;//deklarasi variabel untuk lampu dan penentuan kaki PIN

byte dimm = 50; // untuk pertambahan jarak waktu dimmer lebih panjang

(18)

String readString; void setup(){

pinMode(LampsPin, OUTPUT); //pinMode(SwPin, INPUT);

Ethernet.begin(mac,ip,gateway,subnet); //coding server server.begin();

Serial.begin(9600);

Serial.println("Server LED TEST"); } void loop(){ EthernetClient client=server.available(); if (client){ while (client.connected()){ if (client.available()){ char c =client.read(); if (readString.length()<100){ readString +=c; } if(c=='\n'){ Serial.println(readString); client.println("HTTP/1.1 200 OK"); client.println("Content-Type : text/html"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head>"); client.println("<title>Kontrol Lampu</title>"); client.println("<style>");

(19)

client.println("body {margin-top:100px; font: 15px Lato, sans-serif; font-weight: 600; color: #000; }");

client.println(".capt{margin-bottom:10px; font: 18px Lato, sans-serif; font-weight: 600; color: #000; }");

client.println("</style>"); client.println("</head>"); client.println("<body>");

client.println("<table align=\"center\" border=\"0\">"); client.println("<caption class=\"capt\">Kontrol Kecerahan Lampu</caption>");

client.println("<tr>");

client.println("<td width=\"100\" height=\"50\">Mode Otomatis</td>");

client.println("<td colspan=\"3\">");

client.println("<a href=\"/?off\"\"><button>DIMMER OFF</button></a>");

client.println("<a href=\"/?on\"\"><button>DIMMER ON</button></a>"); //coding hal web

client.println("<a

href=\"/?dimm\"\"><button>AUTOMATIC</button></a>"); client.println("</td>");

client.println("</tr>"); client.println("<tr>");

client.println("<td width=\"120\">Mode Manual</td>"); client.println("<td width=\"150\" height=\"50\" align=\"left\" valign=\"middle\">");

client.println("<form method=\"GET\">");

client.println("<input name=\"terang\" type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"20\" oninput=\"nilai(value)\">");

(20)

client.println("<td width=\"45\" height=\"50\" align=\"right\" valign=\"middle\">"); client.println("<output for=\"vol\" id=\"volume\">0</output> %"); client.println("</td>"); client.println("<td align=\"right\">"); client.println("<input type=\"submit\" value=\"Terapkan\"></input>"); client.println("</form>"); client.println("</td>"); client.println("</tr>"); client.println("</table>"); client.println("<script>"); client.println("function nilai(vol){ document.querySelector('#volume').value = vol; }"); client.println("</script>"); client.println("</body>"); client.println("</html>"); delay(1); client.stop();

if(readString.indexOf("?terang=0")>0){ //coding sliding analogWrite(LampsPin, 255*0/100); state=0; } if(readString.indexOf("?terang=20")>0){ analogWrite(LampsPin, 255*20/100); state=1; } if(readString.indexOf("?terang=40")>0){ analogWrite(LampsPin, 255*40/100);

(21)

state=1; } if(readString.indexOf("?terang=60")>0){ analogWrite(LampsPin, 255*60/100); state=1; } if(readString.indexOf("?terang=80")>0){ analogWrite(LampsPin, 255*80/100); state=1; } if(readString.indexOf("?terang=100")>0){ analogWrite(LampsPin, 255*100/100); state=1; } if(readString.indexOf("?on")>0){ //coding on if(state==0){ lampuon(); } else if(state==1){ } state=1; }

if(readString.indexOf("?off")>0){ //coding off if(state==1){

lampuoff(); }

else if(state==0){ }

(22)

state=0; }

if(readString.indexOf("?dimm")>0){ //coding dimm if(state==0){ lampudimm(); } else if(state==1){ } state=0; } readString=""; } } } } } void lampuon(){ for(int i = 0; i < 255; i++) { analogWrite(LampsPin, i); delay(dimm); } } void lampuoff(){

(23)

for(int i = 255; i >= 0; i--) { analogWrite(LampsPin, i); delay(dimm); } } void lampudimm(){ for(int i = 0; i < 255; i++) { analogWrite(LampsPin, i); delay(dimm); } for(int i = 255; i >= 0; i--) { analogWrite(LampsPin, i); delay(dimm); } }

a) Kode program untuk pemanggilan library Spi dan Ethernet

Kode prograrm ini berfungsi untuk pemanggilan library Spi dan

Ethernet.

#include <SPI.h> coding pemaggilan library Spi

(24)

b) Kode program untuk nomor mac address dan target host

Kode prograrm ini berfungsi untuk menghubungkan data yang ditransmisikan mengunakan nomer IP untuk menentukan client terhubung pada server yang tepat , dan nomor port untuk menentukan agar aplikasi client terhubung pada server sesuai nomer

port yang tepat , berikut kode programnya :

byte mac[]= {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};//mac address byte ip[]= {192,168,1,1};//ip addres arduino

byte gateway[]={192,168,1,2}; //ip gateway byte subnet[]={255,255,255,248};//subnet mask EthernetServer server(80); //server port

String readString; //deklarasi variabel untuk readstring (membaca url pada address bar)

c) Kode program untuk penentuan kaki pin dan waktu dimmer

Kode program ini digunakan penentuan kaki Pin dan waktu dimmer byte LampsPin=5;//deklarasi variabel untuk lampu dan penentuan kaki PIN

byte dimm = 50; // untuk pertambahan jarak waktu dimmer lebih panjang

(25)

d) Kode program untuk koneksi dengan server

Kode program ini digunakan agar client dapat terkoneksi dengan

server secara aplikasi, berfungsi untuk menghubungkan informasi client-server, data dari aplikasi client di kirimkan ke server, kemudian

server mengirimkan informasi yang di butuhkan client dengan kode berikut:

Ethernet.begin(mac, ip, gateway, subnet); server.begin();

Serial.print("server is at "); Serial.println(Ethernet.localIP()); }

void loop(){

EthernetClient client = server.available(); if (client) {

while (client.connected()) { if (client.available()) {

char c = client.read();

//read char by char HTTP request if (readString.length() < 100) { //store characters to string readString += c;

(26)

e) Kode program untuk halaman web

Pada program halaman web, untuk menjalankan program di inputkan secara manual pada aplikasi Arduino IDE, berikut ini kode programnya if (client){ while (client.connected()){ if (client.available()){ char c =client.read(); if (readString.length()<100){ readString +=c; } if(c=='\n'){ Serial.println(readString); client.println("HTTP/1.1 200 OK"); client.println("Content-Type : text/html"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head>");

client.println("<title>Kontrol Lampu</title>"); // tittle page

client.println("<style>");

client.println("body {margin-top:100px; font: 15px Lato, sans-serif; font-weight: 600; color: #000; }");

client.println(".capt{margin-bottom:10px; font: 18px Lato, sans-serif; font-weight: 600; color: #000; }");

client.println("</style>");

//kode program diatas adalah css style untuk memperindah tampilan halaman web.

(27)

client.println("<body>");

client.println("<table align=\"center\" border=\"0\">");

client.println("<caption class=\"capt\">Kontrol Kecerahan Lampu</caption>");

client.println("<tr>");

client.println("<tdwidth=\"100\"height=\"50\">Mode Otomatis</td>"); client.println("<td colspan=\"3\">");

client.println("<ahref=\"/?off\"\"><button>DIMMER OFF</button></a>"); //kode program diatas menampilkan button off pada halaman web.

client.println("<ahref=\"/?on\"\"><button>DIMMER ON</button></a>"); // kode program diatas menampilkan button on pada halaman web.

client.println("<ahref=\"/?dimm\"\"><button>AUTOMATIC</button></a>"); // kode program diatas menampilkan button automatic pada halaman web.

client.println("</td>"); client.println("</tr>"); client.println("<tr>");

client.println("<td width=\"120\">Mode Manual</td>");

client.println("<tdwidth=\"150\"height=\"50\" align=\"left\" valign=\"middle\">");

client.println("<form method=\"GET\">");

client.println("<input name=\"terang\" type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"20\"

// kode program diatas menampilkan input range pada halaman web dengan masukkan max 100 dan masukkan min 0,dengan kelipatan 20.

(28)

oninput=\"nilai(value)\">"); client.println("</td>");

client.println("<td width=\"45\" height=\"50\" align=\"right\" valign=\"middle\">");

client.println("<output for=\"vol\" id=\"volume\">0</output> %"); client.println("</td>");

client.println("<td align=\"right\">");

client.println("<input type=\"submit\" value=\"Terapkan\"></input>"); // kode program diatas menampilkan button terapkan pada halaman web untuk menerapkan step yang dipilih dari 0-100%.

client.println("</form>"); client.println("</td>"); client.println("</tr>"); client.println("</table>"); client.println("<script>"); client.println("function nilai(vol){ document.querySelector('#volume').value = vol; }"); client.println("</script>"); client.println("</body>"); client.println("</html>"); delay(1); client.stop();

Input dari halaman web yang diketik akan menampilkan tampilan

control lampu seperti Gambar 3.1

f) Kode program untuk menyalakan lampu dengan menu sliding button

(29)

Kode program ini terletak pada Sliding button untuk menyalakan lampu berikut kode program:

if(readString.indexOf("?terang=0")>0){ analogWrite(LampsPin, 255*0/100); state=0;

}

User menggeser sliding button kedalam nilai 0% maka akan mengeluarkan listrik 0 Volt menghasilkan nyala lampu seperti gambar 3.14

if(readString.indexOf("?terang=20")>0){ analogWrite(LampsPin, 255*20/100); state=1;

}

User menggeser sliding button kedalam nilai 20% maka akan mengeluarkan listrik 1 Volt menghasilkan nyala lampu seperti gambar 3.16

if(readString.indexOf("?terang=40")>0){ analogWrite(LampsPin, 255*40/100); state=1;

}

User menggeser sliding button kedalam nilai 40% maka akan mengeluarkan listrik 2 Volt menghasilkan nyala lampu seperti gambar 3.18

if(readString.indexOf("?terang=60")>0){ analogWrite(LampsPin, 255*60/100); state=1;

(30)

}

User menggeser sliding button kedalam nilai 60% maka akan mengeluarkan listrik 3 Volt menghasilkan nyala lampu seperti gambar 3.20

if(readString.indexOf("?terang=80")>0){ analogWrite(LampsPin, 255*80/100); state=1;

}

User menggeser sliding button kedalam nilai 80% maka akan mengeluarkan listrik 4 Volt menghasilkan nyala lampu seperti gambar 3.22

if(readString.indexOf("?terang=100")>0){ analogWrite(LampsPin, 255*100/100); state=1;

}

User menggeser sliding button kedalam nilai 100% maka akan mengeluarkan listrik 5 Volt menghasilkan nyala lampu seperti gambar 3.24

Cara kerja kode program di atas yaitu client mengakses server untuk menyalakan lampu dengan range 0%-100%.

g) Kode program untuk menyalakan lampu dengan menu on

(31)

if(readString.indexOf("?on") >0){ if(status==0){ for(int i = 0; i < 255; i++) { analogWrite(led, i); delay(20); } status=1; } else{ }}

Cara kerja kode program di atas yaitu client mengakses

server untuk mengaktifkan lampu

(32)

Kode program ini terletak pada button off untuk mematikan lampu off berikut kode programnya :

if (readString.indexOf("?off") >0){ if(status==1){ for(int i = 255; i >= 0; i--) { analogWrite(led, i); delay(20); } status=0; } else{} }

Cara kerja kode program di atas yaitu client mengakses server untuk mematikan lampu.

(33)

i) Kode program untuk dimmer dengan menu button dimmer

Kode program ini terletak pada button dimmer untuk menyalakan lampu dimmer berikut kode program:

void lampudimm(){ for(int i = 0; i < 255; i++) { analogWrite(LampsPin, i); delay(dimm); } for(int i = 255; i >= 0; i--) { analogWrite(LampsPin, i); delay(dimm);}

Cara kerja kode program di atas yaitu client mengakses server untuk menyalakan lampu dimmer.

Gambar

Gambar 3.3 Diagram System Client - Server
Gambar 3.5 Diagram komunikasi Client – Server USER  Aplikasi Client Aplikasi Server SERVER Arduino Data Dikirim
Gambar 3.8 Pengujian Button Lampu  ON
Gambar 3.10 Pengujian Button Off lampu
+7

Referensi

Dokumen terkait

Pemanis buatan merupakan bahan-bahan tambahan makanan yang dapat menyebabkan rasa manis pada makanan, yang tidak atau hampir tidak mempunyai nilai gizi.. Berasa manis jika

Penelitian ini bertujuan untuk mendeskripsikan; (1) keefektifan teknik Herringbone dalam meningkatkan keterampilan membaca siswa SMA Sandhy Putra Kelas XI tahun

It was observed through the number of CD4 + T cells were significantly different compared with the positive control (infected pregnant mice without

EFEKTIVITAS PENGGUNAAN TEKNIK HERRINGBONE D ALAM PEMBELAJARAN MEMBACA PEMAHAMAN PAD A SISWA KELAS XI SMA SAND HY PUTRA TAHUN AJARAN 2015/2016.. Universitas Pendidikan Indonesia

Formulir sehubungan dengan pemesanan pembelian Unit Penyertaan harus dilengkapi dengan bukti pembayaran, fotokopi Bukti Jati Diri (KTP untuk perorangan lokal, Paspor untuk

Secara parsial hanya variabel Firm value to depreciation (VDEP) yang berpengaruh terhadap pertumbuhan asset, sedangkan rasio market to book value of equity (MVEBVE), rasio firm

Hasil Estimasi model VAR dengan menggunakan variabel inflasi, pertumbuhan jumlah uang beredar sempit (M1), pertumbuhan PDB riil, pertumbuhan nilai tukar riil, suku bunga

Aktivitas Antioksidan Sediaan Lipstik dengan Pewarna Alami Eksstrak Buah Naga Super Merah (Hylocereus costaricensis L.).. Pembuatan Blush On dari