LAMPIRAN 1
Tutorial Implementasi Editor Pengukuran, Pengiriman dan Penerimaan
a.
Implementasi Editor Pengukuran
Berikut adalah langkah-langkah pengukuran meliputi:
1.
Buka editor
arduino
kemudian
setting sketch
dan
tools
menggunakan
arduino
UNO.
2.
Masukkan listing program sesuai dengan pengukuran yang diinginkan.
3.
Kemudian lakukan
verify load library
setelah selesai
upload
dan
serialkan kepada monitor tampilan data.
4.
Catat hasil pengukuran.
b.
Implementasi Editor Pengiriman Menggunakan Wireless Tool Kit
2.5.2
Berikut adalah langkah-langkah menginstall editor pengiriman meliputi:
1.
Siapkan editor Wireless Tool Kit 2.5.2
2.
Edit listing program sesuai dengan protokol yang digunakan yaitu
UDP dan TCP.
3.
Lakukan perintah
open project
pada WTK kemudian setting sesuai
dengan perangkat yang digunakan yaitu Nokia series E63.
4.
Untuk mendapatkan file yang sudah dieksekusi dalam format .jar pilih
perintah
set package
.
5.
Setelah format
.jar
muncul pada folder WTK lakukan
build project
untuk menjalankan
project
yang sudah dibuat pada
emulator
yang
sudah disediakan.
6.
Ambil file eksekusi yang berformat
.jar
lalu
install
pada perangkat
Nokia series E63.
7.
Aplikasi akan muncul pada layar handphone dan siap untuk dilakukan
proses pengiriman.
c.
Implementasi Editor Penerimaan Menggunakan Netbeans 8.0.1
Berikut adalah langkah-langkah menjalankan editor penerimaan meliputi:
1.
Siapkan editor Netbeans 8.0.1
2.
Edit listing program sesuai dengan protokol yang digunakan yaitu
UDP dan TCP
4.
Setelah file muncul maka langkah selanjutnya adalah mensetting IP
address
dari perangkat pengirim.
5.
Kemudian pilih perintah
run file
.
LAMPIRAN 2
Listing Program Monitoring Pengukuran Menggunakan
Arduino
UNO
#include <Time.h>
int voltPin = 0; //voltage divider (middle terminal) connected to analog pin 0
int currentPin = 2; //TMP36 data pin
int val = 0; // variable to store the value read
int volt = 0; //variable to store the voltage calculated int current = 0;
static const int RXPin = 19,TXPin = 18;
void setup() {
Serial.begin(9600); //setup serial
setTime(9,20,0,17,01,15); // set time to noon August 8 2014 harus diset setiap melakukan uji coba
}
void loop() {
int reading = analogRead(voltPin); //read the input pin float voltage = reading*4.2;
voltage /= 1024.0;
int reading2 = analogRead(currentPin); //read the input pin float current = voltage - reading2*4.2;
current /= 1024.0;
float v_negatif = voltage + current;
Serial.print(voltage);
Serial.print(" volts titik + "); Serial.print(v_negatif);
Serial.print(" volts titik - "); float arus = current/0.22;
Serial.print(arus);
Serial.print(" ampere ");
float power = (arus*arus*0.22)*1000; Serial.print(power);
Serial.print(" milliwatt "); float energi = (power*3600)/1000; Serial.print(energi);
Serial.print(" joule "); digitalClockDisplay(); delay(500);
}
void digitalClockDisplay(){
// digital clock display of the time Serial.print(hour());
Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); }
void printDigits(int digits){
// utility function for clock display: prints preceding colon and leading 0
LAMPIRAN 3
Listing Program Pengirim Data Transmisi UDP dan TCP Menggunakan
Bahasa Java Editor Wireless Tool Kit (WTK) 2.5.2
a. Pengirim Data Transmisi UDP
import java.io.IOException; import java.util.Calendar; import java.util.Date;
import javax.microedition.io.*;
import javax.microedition.io.Datagram;
import javax.microedition.io.DatagramConnection; import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField;
public class UDP implements Runnable, CommandListener { private DatagramMIDlet parent;
private Display display;
private Form f;
private StringItem si;
private TextField tf;
private Command startCommand = new Command("Start", Command.ITEM, 1);
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
private String address; String portString=null; private int port;
Datagram dg=null; DatagramConnection dc=null;
int [] dataVideo = {27905,10857,10917,10515,11907,11781,9177,12155,11000,12108,
0794,11144,12698,13855,13137,12396,10971,12085,13142,29278,1
//Generate byte 010101;
000010100000101000001010000010100000101000001010000010100000
display = Display.getDisplay(parent); f = new Form("UDP Server");
si = new StringItem("Status:", " "); f.append(si);
f.addCommand(exitCommand); f.setCommandListener(this); display.setCurrent(f);
portString = String.valueOf(port); }
public void start() {
Thread t = new Thread(this); t.start();
}
public void run() {
try {
si.setText("Menunggu permintaan sambungan "+portString);
dc = (DatagramConnection) Connector
.open("datagram://:" + portString); while (true) {
dg = dc.newDatagram(100); dc.receive(dg);
address = dg.getAddress();
si.setText("Permintaan diterima "
+ new String(dg.getData(), 0, dg.getLength()));
//Program mengirim video //Kirim video 6x10detik
for(int k=0;k<6;k++){
int frame=dataVideo.length; :"+date.getTime()+" urutan: "+urutan+" frame :"+i+" : "+s;
bytes=ss.getBytes();
dg = dc.newDatagram(bytes, bytes.length, address);
si.setText("Mengirim paket "+urutan+" frame:"+i);
Thread.currentThread().interrupt(); }
urutan++; }
}
}
} catch (IOException ioe) {
Alert a = new Alert("Server", "Port " + portString + " is already taken.", null, AlertType.ERROR);
a.setTimeout(Alert.FOREVER); a.setCommandListener(this); display.setCurrent(a); } catch (Exception e) { e.printStackTrace(); }
}
public void commandAction(Command c, Displayable s) {
if ((c == Alert.DISMISS_COMMAND) || (c == exitCommand)) {
parent.destroyApp(true); parent.notifyDestroyed(); }
}
public void stop() { }
b. Pengirim Data Transmisi TCP
import java.util.Calendar; import java.util.Date; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.microedition.io.*;
import javax.microedition.io.Connector;
import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField;
public class TCP implements Runnable, CommandListener { private DatagramMIDlet parent;
private Display display;
private Form f;
private StringItem si;
private TextField tf;
private Command startCommand = new Command("Start", Command.ITEM, 1);
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
private String address;
String portString=null;
InputStream is;
private int port;
OutputStream os;
SocketConnection sc;
ServerSocketConnection scn;
12302,11632,12925,13483,14148,13980,13712,13552,13047,12577,
//Generate byte 010101;
+
"01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001"
+
"01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001";
int urutan =0;
byte[] bytes = null;
public TCP(DatagramMIDlet m, int p) { parent = m;
port = p;
display = Display.getDisplay(parent); f = new Form("TCP Server");
si = new StringItem("Status:", " "); f.append(si);
//f.addCommand(startCommand); f.addCommand(exitCommand); f.setCommandListener(this); display.setCurrent(f);
portString = String.valueOf(port); }
public void start() {
Thread t = new Thread(this); t.start();
}
public void run() {
try {
si.setText("Menunggu permintaan sambungan "+portString);
scn = (ServerSocketConnection) Connector.open("socket://:"
+ portString);
// Wait for a connection.
sc = (SocketConnection) scn.acceptAndOpen(); si.setText("Permintaan diterima ");
boolean rec =true;
StringBuffer sb = new StringBuffer(); while (rec) {
int c = 0;
c = is.read();
if(c==10){
sending=true; rec=false;
si.setText("Message received - " +
sb.toString()); } }
while (sending) {
//Program mengirim video
int frame=dataVideo.length; for(int k=0;k<6;k++){
for(int i=0;i<frame;i++){ //Kirim masing2 gambar
int jumlahPaket =(dataVideo[i]/1024)+1; //Kirim setiap paket
for(int j=0;j<jumlahPaket;j++){
Date date = new
Date();
try {
String ss="kirim :"+date.getTime()+"
urutan: "+urutan+" frame :"+i+" : "+s+"\r\n";
bytes=ss.getBytes(); os.flush();
os.write(bytes);
//os.write("\r\n".getBytes());
si.setText("Mengirim paket "+urutan+" frame:"+i);
} catch (Exception ioe) { ioe.printStackTrace(); }
urutan++; }
try {
Thread.sleep(30);//1000 milliseconds is one second.
} catch(InterruptedException ex) {
Thread.currentThread().interrupt(); }
} } sending=false;
}
} catch (IOException ioe) {
if (ioe.getMessage().equals("ServerSocket Open")) {
Alert a = new Alert("Server", "Port " + portString
+ " is already taken.", null, AlertType.ERROR);
a.setTimeout(Alert.FOREVER); a.setCommandListener(this); display.setCurrent(a); } else {
ioe.printStackTrace(); }
} catch (Exception e) { e.printStackTrace(); }
}
public void commandAction(Command c, Displayable s) {
if ((c == Alert.DISMISS_COMMAND) || (c == exitCommand)) {
parent.destroyApp(true); parent.notifyDestroyed(); }
}
public void stop() { }
LAMPIRAN 4
Listing Program Penerima Data Transmisi UDP dan TCP Menggunakan
Bahasa
Java
Editor Netbeans 8.0.1
a. Penerima Data Transmisi UDP
import java.io.*; import java.net.*; import java.util.*;
class UDPClient {
private InetAddress IPAddress; boolean done;
//boolean keepGoing;
public UDPClient(String sHostName) {
String s1; int size;
BufferedReader br;
try {
IPAddress = InetAddress.getByName(sHostName);
System.out.println ("Attemping to connect to " + IPAddress +
") via UDP port 5555"); }
catch (UnknownHostException ex) {
System.err.println(ex); System.exit(1);
}
// set up the buffered reader to read from the keyboard try {
DatagramSocket clientSocket = new DatagramSocket(); byte[] sendData = new byte[1024];
s1 = "Request";
sendData = s1.getBytes();
System.out.println ("Sending data to " + sendData.length);
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, 5555);
clientSocket.send(sendPacket);
byte[] receiveData = new byte[1024]; DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
//clientSocket.setSoTimeout(100000000);
while (true){
Date date = new Date(); try {
clientSocket.receive(receivePacket); System.out.println("Terima
:"+date.getTime()+" "+receivePacket.getLength()+" "+new String(receivePacket.getData()));
}
catch (SocketTimeoutException ste){
System.out.println ("Timeout Occurred: Packet assumed lost");
// if (done)
// keepGoing = false; }
System.out.println();
}
// clientSocket.close(); }
catch (IOException ex) {
System.err.println(ex); }
}
public static void main(String args[]) throws Exception {
String serverHostname = new String ("192.168.101.11");
if (args.length > 0) serverHostname = args[0];
new UDPClient (serverHostname);
b. Penerima Data Transmisi TCP
import java.io.*; import java.net.*; import java.util.Date;
class TCPClient {
public static void main(String argv[]) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
Socket clientSocket = new Socket("192.168.101.11", 5555); DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());
DataInputStream inServer = new DataInputStream(clientSocket.getInputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream())); sentence = "1";
outToServer.write(10); byte[] a=null;
while(true){
Date date = new Date();
modifiedSentence = inServer.readUTF();
System.out.println("Terima : "+date.getTime()+" "); System.out.println(modifiedSentence);
//System.out.println('\n'); }
}
//clientSocket.close();