Posts from the ‘Tugas Kuliah’ Category

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

/*
 * 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);
 }
}

Advertisements

Aplikasi Pemesanan Restoran Dengan JAVA

Kemarin kami 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 kelompok kami 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);
 }
}

Aplikasi Monitoring Suhu

Aplikasi monitoring suhu adalah salah satu project buatan kami. Aplikasi ini dapat memonitor kondisi suhu pada sekitar ruangan tempat kita berada. Aplikasi ini membutuhkan sebuah hardware. Hardware tersebut merupakan penggabungan arduino dengan sensor suhu LM35. Hardware ini yang nantinya akan mengirimkan data dari hasil pembacaan sensor ke PC/Laptop. Selanjutnya aplikasi pada PC akan mengolah data tersebut sehingga data dapat ditampilkan berupa besaran suhu. Selain itu, aplikasi ini juga dapat menampilkan grafik suhu terhadap waktu secara realtime.

Untuk mengakses serial port di java, kami menggunakan library RxTx. Library ini memang ditujukan untuk mengakses hardware melalui komunikasi serial. Sedangkan untuk menampilkan grafik hasil pembacaan sensor suhu, kami menggunakan library jFreeChart. Chart yang kami gunakan adalah jenis Dynamic Chart.

Skematik dari hardware dapat dilihat pada gambar berikut. Hardware hanya terdiri dari arduino board dan sensor suhu LM35

Beberapa screenshoot dari aplikasi yang kami buat dapat dilihat di bawah ini

Tampilan hardware

Tampilan hardware beserta aplikasi

Tampilan dari form aplikasi

Tampilan grafik hasil pembacaan suhu

Untuk menjalankan aplikasi ini ini, anda harus mengcopy dahulu file rxtxSerial.dll ke folder C:/Windows/System32. Filenya telah disertakan pada library RxTx.

Untuk lebih jelasnya mengenai source code dan programnya silahkan menuju blog pembuat programnya => http://blognyaeko.wordpress.com/2011/12/11/monitoring-suhu-menggunakan-arduino-dan-java/

Arah Pengembangan dan Masa Depan Pengguna Java

Arah Untuk Pengembangan Program Java

  • Mengembangkan  aplikasi yang berbasis server (website misalnya), teknologi ini disebut dengan J2SE (Java versi 2 Standard Edition).
  • Mengembangkan aplikasi berbasis Teks maupun Grafik (Graphical User Interface), teknologi ini disebut dengan J2EE (Java versi 2 Enterprise Edition).
  • Mengembangkan aplikasi berbasis Mobile, sehingga bisa jalan di Handphone, teknologi ini disebut dengan J2ME (Java versi 2 Micro Edition).

Masa Depan Java

Akhirnya masa depan Java sudah semakin jelas. Dengan bergabungnya James Gosling pendiri java ke perusahaan raksasa Amerika-Google. Menurut kabar yang beredar James merasa tidak cocok dengan masa depan Java yang diusung oleh Oracle. Tetapi Oracle sepertinya masih akan terus mengembangkan Java dan akan terus merangkul para developer, karena pada dasarnya layanan Oracle juga dibangun di atas Java, sehingga kelangsungan hidup Oracle tentu saja akan bergantung pada Java

Pengguna Java

Pada bulan April 2011 ini Java masih menduduki peringkat pertama untuk bahasa pemrograman yang paling populer saat ini menurut TIOBE Programming Community Index

Beberapa Engine Untuk Java

Engine sama seperti library yang memudahkan kita untuk membuat aplikasi di Java. Beberapa engine yang ada di Java adalah sebagai berikut.

Engine J2ME

1. Apime

Merupakan engine yang berfungsi untuk mendesign user interface di aplikasi java untuk mobile. User interface yang didukung antara lain skin, keyboard, dan  internacionalization.

2. BaseMovil

Merupakan engine J2ME yang berfungsi untuk membuat aplikasi database

3. jMobileCore

Merupakan engine yang berfungsi untuk mendesign user interface aplikasi. . jMobileCore mensupport pengembangan compact and rich Canvas-based GUI.

4. kUI

kUI adalah Canvas base replacement, yaitu engine yang berfungsi untuk mendesign tampilan highlevel LCDUI (LCD User Interface).

5. Mewt

Engine java yang berfungsi untuk mendesign UI berupa tabel, grafik, dll.

Engine J2SE

1.  SAP Exchange Infrastructure

SAP Exchange Infrastructure (SAP XI) berfungsi untuk mengimplementasikan cross-system processes. Dapat menghubungkan systems dari berbagai vendor (non-SAP dan SAP) dan berbagai bahasa pemograman (Java, ABAP, dll).

2. Adapter Engine

Adapter Engine digunakan untuk mengkoneksikan Integration Engine ke SAP systems (RFC adapter) dan external systems

3. TyphonRT

Berfungsi untuk membuat 2D game berbasis Quake 3. Engine ini dapat berjalan pada J2SE dan android.

4.  SNP Console

5.  A Quake 3 Class Engine

Merupakan engine yang berfungsi untuk merender game java.

Engine J2EE

1. JSP Engine

2.  Tomcat Servlet

3. Mobile Learning Engine (MLE)

4.  Cross-Browser Core enggine

Generate JavaDoc di Netbeans

JavaDoc merupakan sebuah dokumentasi program yang dapat memudahkan user lain untuk memahami sytax program yang kita buat. Di Java kita dapat membuat dokumentasi tersebut, dengan syarat komentar yang kita gunakan harus sesuai dengan komentar java seperti contoh dibawah ini.

for (i = 1; i <= 50; i++) {
 /**
 * Algoritma untuk menampilkan bilangan ganjil
 * Apabila i mod 2 tidak sama dengan 0 maka bilangan adalah ganjil
 */
 if (i % 2 != 0) {
 System.out.print(" " + i);
 }
 }

Untuk meng-generate JavaDoc pada Netbeans langkah-langkah yang dapat dilakukan adalah sebagai berikut:
1. Kilk kanan pada package, kemudian klik Generate JavaDoc

2. Jika proses generate JavaDoc berhasil maka dokumtasi dari program akan muncul pada browser seperti di bawah ini.

3. Untuk melihat dokumentasi pada saat kita memprogram, dapat dilakukan dengan cara menekan CTRL + ALT + SPACE. Selanjutnya dokumentasi akan muncul seperti gambar di bawah ini.

Sekilas Rangkuman Tentang Java

Java merupakan salah satu bahasa pemograman yang dikembangkan oleh Sun Microsystem. Salah satu kelebihan JAVA antara lain adalah dapat dijalankan pada semua sistem operasi. Sehingga kita dapat membuat aplikasi yang multiplatform.

Untuk memulai belajar java kita membutuhkan sebuah JDK (Java Development Kit). Namun jika kita hanya ingin menjalankan program JAVA kita hanya memerlukan JRE (Java Runtime Enviroment). Untuk mempermudah belajar pemograman JAVA, sebaiknya gunakan IDE seperti Netbeans atau Eclipse. Dengan IDE ini kita dapat lebih mudah dalam menulis syntax program dan mencari syntax error.
Untuk memulai belajar pemograman JAVA, sebaiknya memulai dengan membuat aplikasi CLI (berbasis konsol). Setelah paham dengan aplikasi CLI dan algoritma pemograman, selanjutnya memulai belajar pembuatan aplikasi GUI.

Beberapa hal yang harus diperhatikan dalam penulisan program Java antara lain sebagai berikut :
1. Nama file harus diakhiri dengan ekstensi .java
2. Nama file harus sama dengan nama dari class public
3. Pada saat membuat aplikasi dengan bahasa Java, minimal harus ada 1 buah method yang bernaman public static void main(String args[]). sama halnya seperti di bahasa C yang harus memiliki void main.
4. Penamaan class menggunakan huruf awal kapital
5. Penamaan method dan variabel menggunakan huruf awal huruf kecil

Bebarapa perintah utama yang harus kita pahami dalam bahasa Java antara lain sebagai berikut.
1. Menuliskan output

System.out.println(String);

2. Membaca input
Untuk membaca input kita membutuhkan sebuah objek dari kelas BufferedReader. kemudian kita dapat membaca input dari keyboard dengan nilai kembalian berupa data string. Jika ingin membaca data integer, maka anda harus merubah dahulu dari string ke integer. Biasanya pada saat membaca input dari keyboard, user melakukan kesalahan dalam memasukkan data. Misalnya program hanya menerima input berupa data integer, namun user memasukkan data character. Ini akan membuat program menjadi error. Untungnya di Java terdapat sebuah Exception Handling yang berfungsi untuk menangani error saat kesalahan seperti yang saya sebutkan terjadi. Sehingga program tidak akan error jika program kita menggunakan exception handling.

Di bawah ini merupakan potongan program untuk membaca input tanpa exception handling

BufferedReader dataInput = new BufferedReader(new InputStreamReader(System.in));
String input = dataInput.readLine();
int bilangan = Integer.parseInt(input);

Sedangkan di bawah ini merupakan potongan program untuk membaca input dengan exception handling

try {
String input = dataInput.readLine();
int bilangan = Integer.parseInt(input);
 } catch (NumberFormatException error) {
 System.out.println("Input hanya bilangan bulat");
 }

Operator aritmatika, logika dan struktur kontrol pada Java sama seperti pada bahasa lainnya, namun untuk melakukan perhitungan aritmatika yang agak kompleks sebaiknya gunakan tanda kurung untuk memperjelas, karena Java memiliki prioritas dalam mengeksekusi perintah aritmatika dan logika.

Java juga memiliki kemampuan untuk menampung data array, sama dengan bahasa pemograman lainnya. Contoh pendeklarasian array di java adalah sebagai berikut.

int[] data;
// atau
int data[];

Setelah mendeklarasikan array selanjutnya kita meng-instantiate atau membuat array dan menentukan berapa elemennya. contohnya

 int data[] = new int[100] // membuat array dengan 100 elemen

OOP di java

OOP programming adalah sebuah metode pemograman berbasiskan objek. Secara singkat pengertian dari OOP adalah koleksi objek yang saling berinteraksi dan saling memberikan informasi satu dengan yang lainnya. Pada OOP dikenal beberapa istilah seperti di bawah ini.

1. Kelas => Merupakan frame untuk membungkus beberapa method dan mengolah data.

2. Objek =>Sesuatu yang memiliki identitas, tingkah laku, sifat layaknya objek. dalam bahasa pemograman tingkah laku disebut juga dengan behavior atau method, identitas disebut juga dengan properties.

3. Encapsulation (pembungkusan) => Pembungkusan terhadap data-data yang berada pada class, hak aksesnya juga dapat ditentukan, apakah bisa diakses dari luar kelas atau tidak.

4. Inheritance (pewarisan) => Punurunan sifat dari parent class ( orang tua ) kepada sub class ( anak-anak nya) sehingga anak ( sub class ) memiliki sifat yang sama dengan orang tuanya, Hal ini bertujuan untuk memudahkan kita jika ingin membuat class baru tetapi masih memiliki sifat-sifat yang mirip dengan class lain. Sehingga kita cukup menambahkan sifat atau tingkah laku yang belum ada, tidak perlu menuliskan ulang.

5. Polymorphism (polimorfisme – perbedaan bentuk) => Polimorfisme artinya penyamaran dimana suatu bentuk dapat memiliki lebih dari satu bentuk.

SEMOGA BERMANFAAT !!