Category Archives: JAVA

Monitoring Arduino Input dengan JAVA – Mengirimkan Data dari Arduino – Part 1

Karena banyaknya pertanyaan pada tulisan saya tentang Monitoring Suhu dengan Java, maka alangkah baiknya jika saya bahas dengan detail tentang interfacing hardware dengan JAVA seperti pada tulisan saya sebelumnya. Pada pembahasan kali ini Saya akan mencontohkan untuk membuat aplikasi Monitoring pin input pada arduino. Nantinya kondisi pin input pada arduino akan dikirimkan ke aplikasi komputer melalui serial port. Pada aplikasi sendiri nantinya akan ditampilkan visualisai berupa gambar LED yang akan nyala atau mati sesuai dengan penekanan tombol pada pin input di arduino.
Pada postingan part 1 ini Saya akan membahas terlebih dahulu tentang hardware dan pemrogramannya. Pada pembahasan kali ini saya tidak menggunakan hardwarwe nyata, melainkan menggunakan simulasi dengan software proteus. Hasil simulasi tidak berbeda jika kita gunakan pada hardware aslinya. Rangkaian yang saya gunakan seperti gambar di bawah ini.

Read the rest of this entry

Belajar JAVA – Aplikasi Pemesanan Restoran

Kemarin saya dapat tugas dari dosen, gampang sih soalnya cuma ngitung pesanan di restoran aja. Soalnya seperti di bawah ini :

1.Buat sistem manajemen restoran berbasis text
2.Harga semua masakan adalah Rp. 15.000
3.Sistem akan melakukan pengulangan tampilan Pilih Menu, sampai dipilih menu 5 (Hitung Total) atau menu 6 (Keluar Aplikasi))
4.Sistem menghitung uang kembalian dari total uang yang dibayarkan pelanggan
5.Sistem akan melakukan pengulangan tampilan Menu Restoran, sampai dipilih menu 6 (Keluar Aplikasi))

Menu Restoran:

1. Nasi Goreng   2. Nasi Rawon   3. Nasi Gudeg   4. Jus Jeruk   5. Hitung Total  6. Keluar Aplikasi

Pilih Menu?    1

Pilih Menu?   4

(mengulang ke tampilan Pilih Menu, sampai dipilih menu 5 (Hitung Total) atau menu 6 (Keluar Aplikasi))

Pilih Menu?   5

Pilihan menu adalah Nasi Goreng dan Jus Jeruk.

Total yang harus dibayar adalah Rp. 30.000

Uang yang dibayarkan Rp. 50.000

Uang kembalian anda Rp. 20.000

(mengulang ke tampilan Menu Restoran, sampai dipilih menu 6 (Keluar Aplikasi))

Dan jawaban ane adalah seperti di bawah ini :D


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package menurestoran;

import java.util.Scanner;

/**
 *
 * @author eko rudiawan
 */
public class MenuRestoran {

/**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
 // TODO code application logic here
 Scanner s = new Scanner(System.in);
 int pilihan = 6;
 int hargaTotal = 0;
 int uang = 0;
 String nasiGoreng = "";
 String nasiRawon = "";
 String nasiGudeg = "";
 String jusJeruk = "";
 int jumlahNasiGoreng = 0;
 int jumlahNasiRawon = 0;
 int jumlahNasiGudeg = 0;
 int jumlahJusJeruk = 0;
 boolean sudahPernahPilih = false;
 boolean sudahPilihNasiGoreng = false;
 boolean sudahPilihNasiRawon = false;
 boolean sudahPilihNasiGudeg = false;
 boolean sudahPilihJusJeruk = false;
 do {
 System.out.println("Menu Restoran");
 System.out.println("1. Nasi Goreng\t2. Nasi Rawon\t3. Nasi Gudeg\t4. Jus Jeruk\t5. Hitung Total\t6. Keluar");
 do {
 System.out.print("Pilih Menu : ");
 pilihan = s.nextInt();
 switch (pilihan) {
 case 1:
 hargaTotal += 15000;
 jumlahNasiGoreng++;
 if (sudahPernahPilih) {
 if (sudahPilihNasiGoreng) {
 if (!sudahPilihJusJeruk && !sudahPilihNasiGudeg && !sudahPilihNasiRawon) {
 nasiGoreng = jumlahNasiGoreng + " Nasi Goreng ";
 } else {
 nasiGoreng = "dan " + jumlahNasiGoreng + " Nasi Goreng ";
 }
 } else {
 nasiGoreng = "dan Nasi Goreng ";
 }
 } else {
 nasiGoreng = "Nasi Goreng ";
 }
 sudahPernahPilih = true;
 sudahPilihNasiGoreng = true;
 break;
 case 2:
 hargaTotal += 15000;
 jumlahNasiRawon++;
 if (sudahPernahPilih) {
 if (sudahPilihNasiRawon) {
 if (!sudahPilihJusJeruk && !sudahPilihNasiGudeg && !sudahPilihNasiGoreng) {
 nasiRawon = jumlahNasiRawon + " Nasi Rawon ";
 } else {
 nasiRawon = "dan " + jumlahNasiRawon + " Nasi Rawon ";
 }
 } else {
 nasiRawon = "dan Nasi Rawon ";
 }
 } else {
 nasiRawon = "Nasi Rawon ";
 }
 sudahPernahPilih = true;
 sudahPilihNasiRawon = true;
 break;
 case 3:
 hargaTotal += 15000;
 jumlahNasiGudeg++;
 if (sudahPernahPilih) {
 if (sudahPilihNasiGudeg) {
 if (!sudahPilihJusJeruk && !sudahPilihNasiRawon && !sudahPilihNasiGoreng) {
 nasiGudeg = jumlahNasiGudeg + " Nasi Gudeg ";
 } else {
 nasiGudeg = "dan " + jumlahNasiGudeg + " Nasi Gudeg ";
 }
 } else {
 nasiGudeg = "dan Nasi Gudeg ";
 }
 } else {
 nasiGudeg = "Nasi Gudeg ";
 }
 sudahPernahPilih = true;
 sudahPilihNasiGudeg = true;

break;
 case 4:
 hargaTotal += 15000;
 jumlahJusJeruk++;
 if (sudahPernahPilih) {
 if (sudahPilihJusJeruk) {
 if (!sudahPilihNasiGudeg && !sudahPilihNasiRawon && !sudahPilihNasiGoreng) {
 jusJeruk = jumlahJusJeruk + " Jus Jeruk ";
 } else {
 jusJeruk = "dan " + jumlahJusJeruk + " Jus Jeruk ";
 }
 } else {
 jusJeruk = "dan Jus Jeruk ";
 }
 } else {
 jusJeruk = "Jus Jeruk ";
 }
 sudahPernahPilih = true;
 sudahPilihJusJeruk = true;

break;
 case 5:
 System.out.println("Pesanan anda => " + nasiGoreng + nasiRawon + nasiGudeg + jusJeruk);
 System.out.println("Total Harga => " + hargaTotal);
 System.out.print("Uang yang dibayarkan : ");
 uang = s.nextInt();
 if (uang < hargaTotal) {
 System.out.println("Maaf uang anda tidak cukup");
 } else {
 System.out.println("Uang anda : " + uang);
 System.out.println("Kembalian : " + (uang - hargaTotal));
 }
 break;
 case 6:
 System.out.println("Terima Kasih");
 break;
 }
 } while (pilihan != 5 && pilihan != 6);
 } while (pilihan != 6);
 }
}

Silahkan mencoba coding nya :D

Belajar JAVA – Akses Antar Kelas

Kelas merupakan salah satu topik utama jika kita belajar tentang OOP. Di dalam kelas biasanya terdapat method atau fungsi, selain itu juga terdapat variabel. Method yang berada dalam kelas tersebut dapat kita akses dari kelas yang lain. Dengan syarat saat method yang kita gunakan menggunakan public, bukan private.

Berikut merupakan salah satu contoh program untuk mengakses method yang berada pada kelas lain. Aplikasi ini terdiri dari satu kelas utama (main class) yaitu  BankAccountApp dan satu lagi kelas tambahan yaitu BankAccount.

Kelas BankAccount merupakan kelas tempat melakukan perhitungan account bank. Sedangkan kelas utama (BankAccountApp) merupakan tempat kelas untuk berinteraksi dengan user.

Berikut merupakan source code dari kelas BankAccount


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bankaccountapp;

/**
 *
 * @author eko rudiawan
 */
public class BankAccount {

private int saldo = 100000; // Variabel saldo tidak bisa diakses dari kelas lain, karena bersifat private

public int cekSaldo() { // Method ini bisa diakses dari kelas lain karena bersifat public
 return saldo;
 }

public int simpanUang(int uangTabungan) {
 saldo = saldo + uangTabungan;
 return saldo;
 }

public int ambilUang(int uang) {
 if (saldo > uang) {
 saldo = saldo - uang;
 } else {
 System.out.println("Maaf saldo anda tidak cukup");
 }
 return saldo;
 }

public void keluar() {
 System.out.println("Terima Kasih");
 System.exit(1);
 }
}

Sedangkan di bawah ini merupakan source code dari kelas BankAccountApp Read the rest of this entry

Monitoring Suhu Menggunakan Arduino dan Java

Project kali ini berhubungan dengan tugas saya di kampus. Ceritanya nih, ketika dapet mata kuliah Java, si dosen ngasih tugas untuk buat aplikasi dengan menggunakan bahasa Java. Karena saya hobi maenan hardware, ya udah akhirnya ngusulin untuk buat aplikasi monitoring suhu aja. Ya tentunya pake hardware donk !! masa’ anak elektro ngodingnya gak pake hardware, kan cupu !! :D. Pengennya sih setelah ngerjain tugas ini saya bisa tau gimana caranya akses serial port di java, karena kalau buat aplikasi interfacing pakai java kan enak, bisa running di semua OS.

Singkat kata dan singkat cerita saya mulai ngerjain project sambil nyari tutorial tentang komunikasi serial dan menampilkan grafik di Java. Akhirnya nemu juga library untuk akses serial port yang bernama RxTx silahkan baca postingan saya sebelumnya tentang RxTx disini :D

Oke, dari pada lama bercerita mending langsung aja kita ke inti permasalahannya

1. Rangkaian arduino + sensor suhu dapat dilihat pada gambar di bawah ini

2. Source code program pada arduino

Program pada arduino hanya membaca data analog dari sensor suhu LM35 melalui ADC. Kemudian data digitalnya dikirimkan terus menerus ke PC/Laptop melalui serial port.


void setup() {
 Serial.begin(9600); // Baudrate => 9600
 analogReference(DEFAULT); // AREF => Internal 5V
}

void loop() {
 int dataADC;
 dataADC = analogRead(A5);
 Serial.print(dataADC);
 Serial.print("\n");
 delay(10);
}

codingan di atas cuma mengambil data dari sensor tiap 10 milliseconds. Kalau mau ditambahin silahkan, misalkan untuk membuat data jadi smooth, dll. Saya sih gak mau ribet karena tujuan utama saya cuma pengen belajar akses serial port di java.

3. Sourcecode Java

Pada pembuatan aplikasi ini saya menggunakan library RxTx dan JFreeChart. Sudah tau kan cara import library di java bagaimana, ?? kalau belum baca dulu postingan saya disini :D

Untuk source code java silahkan download disini http://www.ziddu.com/download/17772650/TemperatureMonitoring.rar.html

Untuk menggunakan library RxTx, setelah import library jangan lupa copykan file rxtxSerial.dll ke folder C:/Windows/System32

4. Tampilan aplikasi dan hardware

Ini nih hasil dari project saya keren gak keren tetep keren :D

Tampilan hardware serta aplikasi di laptop

Tampilan aplikasi sebelum terhubung ke serial port

Sudah terhubung ke serial port

Tampilan grafik yang realtime (datanya saya pakai simulasi dari proteus bukan hardware langsung)

Just want to share !!

Belajar JAVA – Akses Serial Port Part 1

Bagi para programmer hardware, serial port merupakan salah satu media yang banyak dipakai untuk PC interfacing. Serial port digunakan untuk menghubungkan PC ke perangkat lain seperti mikrokontroler, PLC, dll. Di JAVA untuk mengakses serial port kita membutuhkan sebuah library yang bernama RxTx. Silahkan download terlebih dahulu librarynya disini http://rxtx.qbang.org/wiki/index.php/Download. Kemudian extract hasil download tadi. Disitu terdapat file yang bernama RXTXcomm.jar, file inilah yang merupakan library tersebut. Namun jangan lupa sebelum kita memulai untuk mencoba kita perlu mengcopy file rxtxSerial.dll ke C:/Windows/System32

Buatlah project baru untuk mencoba membuat aplikasi akses port serial. Untuk kali ini kita hanya menggunakan CLI saja :D. untuk menambahkan library pada project kita, klik kanan pada libraries => Add JAR/Folder.

 

Berikut merupakan contoh program untuk membaca data dari serial port.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package serial;

/**
 *
 * @author eko rudiawan
 */
import java.io.*;
import java.util.*;
import gnu.io.*;
//import java.io.InputStream;
//import java.io.OutputStream;

public class Serial {

static Enumeration portList;
 static CommPortIdentifier portId;
 static String messageString = "Hello, world!";
 static SerialPort serialPort;
 static OutputStream outputStream;
 static boolean outputBufferEmptyFlag = false;
 static InputStream input;

/**
 * Method declaration
 *
 *
 * @param args
 *
 * @see
 */
 public static void main(String[] args) throws IOException {
 boolean portFound = false;
 String defaultPort = "COM2";

if (args.length > 0) {
 defaultPort = args[0];
 }

portList = CommPortIdentifier.getPortIdentifiers();

while (portList.hasMoreElements()) {
 portId = (CommPortIdentifier) portList.nextElement();

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {

if (portId.getName().equals(defaultPort)) {
 System.out.println("Found port " + defaultPort);

portFound = true;

 try {
 serialPort =
 (SerialPort) portId.open("SimpleWrite", 2000);
 } catch (PortInUseException e) {
 System.out.println("Port in use.");

continue;
 }

try {
 outputStream = serialPort.getOutputStream();
 } catch (IOException e) {
 }

try {
 serialPort.setSerialPortParams(9600,
 SerialPort.DATABITS_8,
 SerialPort.STOPBITS_1,
 SerialPort.PARITY_NONE);
 } catch (UnsupportedCommOperationException e) {
 }

try {
 serialPort.notifyOnOutputEmpty(true);
 } catch (Exception e) {
 System.out.println("Error setting event notification");
 System.out.println(e.toString());
 System.exit(-1);
 }

input = serialPort.getInputStream();

while (true) {
 while (input.available() > 0) {
 System.out.print((char) (input.read()));
 }
 }
 }
 }
 }
 if (!portFound) {
 System.out.println("port " + defaultPort + " not found.");
 }
 serialPort.close();
 System.exit(1);
 }
}

 

Referensiku = > http://silveiraneto.net/2009/03/01/arduino-and-java/

Belajar JAVA – Sorting Data


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sortingdata;

/**
 *
 * @author eko rudiawan
 */
import java.io.*;

public class SortingData {

/**
 * @param args the command line arguments
 */
 public static void main(String[] args) throws IOException {
 // TODO code application logic here
 int[] data = new int[10];
 int[] ascending = new int[10];
 int[] descending = new int[10];
 int i;
 int x; // menyimpan variabel sementara
 String input;
 BufferedReader dataInput = new BufferedReader(new InputStreamReader(System.in));
 System.out.println("Program Mengurutkan Bilangan Bulat");
 System.out.println("Masukkan bilangan sebanyak 10 kali");
 for (i = 0; i < 10; i++) {
 System.out.print("a[" + i + "] = ");
 try {
 input = dataInput.readLine();
 data[i] = Integer.parseInt(input);
 } catch (NumberFormatException error) {
 System.out.println("Input harus bilangan bulat");
 }
 }
 System.out.print("Data Sebelum Disorting = ");
 for (i = 0; i < 10; i++) {
 System.out.print(data[i] + " ");
 }
 System.out.println("");

for (int j = 0; j < 10; j++) {
 for (int k = 0; k < 10; k++) {
 if (data[j] < data[k]) {
 x = data[j];
 data[j] = data[k];
 data[k] = x;
 }
 }
 }
 System.out.print("Data Ascending = ");
 for (i = 0; i < 10; i++) {
 System.out.print(data[i] + " ");
 }
 System.out.println("");
 for (int j = 0; j < 10; j++) {
 for (int k = 0; k < 10; k++) {
 if (data[j] > data[k]) {
 x = data[j];
 data[j] = data[k];
 data[k] = x;
 }
 }
 }
 System.out.print("Data Descending = ");
 for (i = 0; i < 10; i++) {
 System.out.print(data[i] + " ");
 }
 System.out.println("");
 }
}

Belajar JAVA – Searching Data


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package searchingdata;

/**
 *
 * @author eko rudiawan
 */
import java.io.*;

public class SearchingData {

/**
 * @param args the command line arguments
 */
 public static void main(String[] args) throws IOException {
 // TODO code application logic here
 String namaBuah[] = {"pisang", "pepaya", "jeruk", "mangga", "nanas", "apel", "semangka"};
 String input = null;
 int i;
 boolean ketemu = false;
 System.out.println("Program Serching Data");
 System.out.println("Data Berupa Nama Buah");
 BufferedReader dataInput = new BufferedReader(new InputStreamReader(System.in));
 System.out.print("Masukkan nama buah = ");
 try {
 input = dataInput.readLine();

} catch (NumberFormatException error) {
 System.out.println("Input hanya berupa string !!");
 }

for (i = 0; i < namaBuah.length; i++) {
 if (namaBuah[i].equals(input)) {
 System.out.println("Nama buah ketemu pada indeks ke " + i);
 ketemu = true;
 break;
 }
 }
 if (!ketemu) {
 System.out.println("Nama buah tidak ditemukan !!");
 }
 }
}

Belajar JAVA – Menentukan Polindrom


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package menentukanpolindrom;

/**
 *
 * @author eko rudiawan
 */
import java.io.*;

public class MenentukanPolindrom {

  /**
   * @param args the command line arguments
   */
   public static void main(String[] args) throws IOException {
      // TODO code application logic here
      BufferedReader dataInput = new BufferedReader(new InputStreamReader(System.in));
      String input1;
      char kata1[];
      int panjangString;
      boolean polindrom;
      System.out.println("Program Menentukan Polindrom");
      System.out.print("Masukkan Kata = ");
      input1 = dataInput.readLine();
      panjangString = input1.length();
      input1 = input1.toLowerCase();
      kata1 = input1.toCharArray();
      int j = panjangString - 1;
      polindrom = true;
      for (int i = 0; i < panjangString / 2; i++) {
         if (kata1[i] != kata1[j]) {
            polindrom = false;
         }
         j--;
      }
      if (polindrom) {
         System.out.println("POLINDROM");
      } else {
         System.out.println("TIDAK POLINDROM");
      }
   }
}

Tampilan Program

Belajar JAVA – Deret Bilangan Fibonacci

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package menghitungfibonacci;

/**
 *
 * @author eko rudiawan
 */
import java.io.*;

public class MenghitungFibonacci {

  /**
   * @param args the command line arguments
   */
   public static void main(String[] args) throws IOException {
      // TODO code application logic here
      BufferedReader dataInput = new BufferedReader(new InputStreamReader(System.in));
      String input;
      int banyakBilangan = 0;
      int a = 0;
      int b = 1;
      int c;
      int i;
      System.out.println("Bilangan Fibonacci");
      System.out.print("Masukkan banyak bilangan = ");
      try {
         input = dataInput.readLine();
         banyakBilangan = Integer.parseInt(input);
      } catch (NumberFormatException error) {
         System.out.println("Error !!");
      }
      System.out.print("Bilangan Fibonacci = " + a + " " + b + " ");
      for (i = 0; i < banyakBilangan - 2; i++) {
         c = a + b;
         System.out.print(c + " ");
         a = b;
         b = c;
      }
      System.out.println("");
   }
}

Tampilan Program

Belajar JAVA – Bilangan Faktorial

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bilanganfaktorial;

/**
 *
 * @author eko rudiawan
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

   public class BilanganFaktorial {

     /**
      * @param args the command line arguments
      */
      public static void main(String[] args) throws IOException {
      // TODO code application logic here
      BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
      String input;
      int nFaktorial = 0;
      int jumlahBilFaktorial = 1;
      int i;
      System.out.println("Program Menghitung Bilangan Faktorial");
      System.out.print("n = ");
      try {
         input = dataIn.readLine();
         nFaktorial = Integer.parseInt(input);
      } catch (NumberFormatException error) {
         System.err.println("Input hanya berupa bilangan bulat !!");
      }
      if (nFaktorial == 1){
         jumlahBilFaktorial=1;
      }
      else {
         for(i=1; i<=nFaktorial; i++){
            jumlahBilFaktorial=jumlahBilFaktorial*(i);
         }
      }
      System.out.println("Hasil = " + jumlahBilFaktorial);
   }
}

Tampilan Program

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 2.244 pengikut lainnya.

%d bloggers like this: