World Clock

Sabtu, 24 September 2011

Perintah Input Pada Java

Contoh Perintah Yang Pertama :

Ketika bermain-main dengan C++,
kita dapat menggunakan perintah scanf(); untuk mendapat masukan dari kebyboard. Simple banget, tinggal declare variable terus kasi syntax scanf();

Nah, kalo java?
Syntax untuk inputnya susah banget..
Ada yang memakai JOption.. tapi saya coba memakai Buffer...

berikut contohnya :

import java.io.*;
public class programku{
public static void main(String[] args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=br.readLine();
System.out.println("Hasil input:\""+input+"\"");
}
}


karena secara default java menerima inputan dari keyboard berupa string, jadi kita harus mengkorversikannya ke dalam integer terlebih dahulu.

seperti pada contoh di atas.
kita tambahkan baris di bawah br.readLn();

Int a = Interger.parseInt(input);

nah, variable a sekarang sudah menjadi integer.

Anda dapat menempatkan baris input ini dimana saja.
Dengan deklarasi string yang baru tentunya.



Contoh Perintah Yang Ke Dua :


Berikut ini adalah perintah untuk memberikan nilai / input pada bahasa java, dengan menggunakan class utility  Scanner :
//Membuat objek dari class scanner:
Scanner input = new Scanner(System.in); 
//membuat tampilan perintah input:
 System.out.print("Masukkan bilangan pertama: ");
//membuat input masuk ke dalam variabel bilangan1
 int bilangan1 = input.nextInt();
Contoh Program Perkalian.java :
package input;

/** 

* @author doni 
*/
import java.util.Scanner;
public class Perkalian {
    public static void main(String[] args){
  Scanner input = new Scanner(System.in);
      System.out.print("Masukkan bilangan pertama: ");
  int bilangan1 = input.nextInt();

         System.out.print("Masukkan bilangan kedua: ");
  int bilangan2 = input.nextInt();

                System.out.print("Hasil perkalian: " +
    (bilangan1 * bilangan2));
    }

}
Hasil Output :
Masukkan bilangan pertama: 2
Masukkan bilangan kedua: 6
Hasil perkalian:12
 
Contoh Perintah yang Ke Tiga : 
Salah satu untuk melakukan perintah masukan, adalah InputStream. InputStream  adalah  subclass  Object,  yang menjadi  landasan  untuk class-class  yang biasa digunakan untuk membaca data dan menampilkan kelayar. Untuk penggunaan InputStream ini, harus menyertakan package java.io.
Berikut penggunaan InputStream, untuk masukan data dari keyboard..

 Contoh Program Masukan


Penjelasan Program :
  • Perintah baris 6 : import java.io.*;
  • Digunakan untuk menyertakan package java.io.
  • Perintah baris 18 sampai 34, akan mengulan terus sampai selesai pengetikan dan menekan tombol enter.  Semua  karakter   yang diketikan dibaca  oleh  System.in.read(),  kemudian disimpan didalam variabel huruf. Semua karakter yang diketikan disimpan kembali didalam variabel kata, sehingga menjadi dalam bentuk string.
  • Apabila  ada  kesalahan  pengetikan,  maka  kesalahan  tersebut  dilempar  ke IOException, kemudian Standar error akan bekerja sehingga proses dihentikan.
  • Setelah selesai pengetikan,  menjalankan  perintah  pada baris 33, selanjutnya menampilkan karakter-karakter yang diketikan dalam bentuk string.
Maka hasil pada saat dieksekusi, seperti dibawah ini:

 Tampilan Contoh Progam Masukan

Konsep Dasar OOP

Untuk menulis aplikasi dalam Java, diperlukan hal-hal sbb :
ü Java 2 Platform Standard Development Kit (J2SDK)
ü Text editor, misalnya Pico atau VI
Sebelum menggunakan compiler maupun interpreter Java, Linux harus sudah mengenali path tempat compiler (javac) dan interpreter (java)
berada. Bila path belum ada (biasanya pada /usr/local/JDK), maka saat mengetikkan perintah javac atau java pada shell akan ditemui error message javac : command not found. Untuk melihat apakah path ini sudah dikenali dapat dilakukan dengan cara mengetikkan echo $PATH pada shell. Jika path belum dikenali, maka perintah berikut dapat digunakan pada shell untuk menambahkannya : export PATH=$PATH:/usr/local/JDK. Letak JDK tidak mutlak pada lokasi ini, tergantung pada distro Linux yang digunakan ataupun jika dilakukan penginstallan JDK eksternal.
Langkah-langkah pembuatan aplikasi dalam Java
  1. Membuat file source, yaitu suatu file teks yang berisi kode program dalam Java. File ini dapat dibuat menggunakan teks editor semacam pico atau Java IDE. Yang harus diperhatikan dalam pembuatan file ini adalah nama file harus sama dengan nama kelas utama pada program Java (case-sensitive) dan harus menggunakan ekstensi .java
  2. Meng-compile file source menjadi suatu file bytecode, yaitu suatu file yang dapat dimengerti oleh Java Virtual Machine (JVM). Untuk mengcompile file ini dilakukan dengan kompiler java, javac. Sintaks yang digunakan adalah javac . File bytecode yang dihasilkan memiliki ekstension .class
  3. Me-run program yang sudah ada dalam bytecode (file class) menggunakan interpreter java. Sintaks yang digunakan adalah java
Langkah kerja
1. Masuk ke console Linux
2. Buat direktori baru di … dengan cara $ mkdir <>
3. Masuk ke direktori baru tersebut
4. Buat file source menggunakan teks editor (pico) dengan ketentuan $ pico
5. Buat program Java, dimana nama class utama harus sama dengan nama file (misal nama file helloJava.java, nama class utama harus helloJava). Java bersifat case-sensitive
6. Jika sudah selesai, save dan keluar dari teks editor
7. Compile program dengan : $ javac
8. Jika sudah tidak ada error pada kompilasi, eksekusi bytecode yang dihasilkan dengan : $ java
Java adalah bahasa pemrograman berorientasi objek, maka ada beberapa konsep dasar yang perlu diperhatikan.
ü Object (Objek) dan Class (Kelas).
Class berbeda dari object. Class merupakan suatu prototipe yang mendefinisikan variabel-variabel dan method-method secara umum. Sebagai contoh perbandingan, sebuah mobil, siapapun pemiliknya pasti memiliki roda, gas, dan rem. Akan tetapi pemilik itu sendiri dapat berbeda antar mobil. Dalam hal ini, dapat dibuat sebuah class Mobil, dan dapat dibuat objek-objek yang merupakan instan dari class Mobil ini yang berbeda dalam kepemilikan, misalnya MobilA (milik A) dan MobilB (milik B). Objek dapat dikatakan sebagai suatu instan dari class. Semua objek dapat dikatakan memiliki dua hal utama, yaitu atribut (state) dan tingkah laku (behaviour). Dalam pemrograman, state ini disimpan dalam variabel, dan behaviour disimpan dalam method.
ü Encapsulation (Enkapsulasi)
Enkapsulasi adalah suatu pembungkusan berbagai variabel dan method dalam suatu objek (class) tertentu. Namun demikian, tidak semua variabel atau method dapat dimanfaatkan langsung, hanya variabel atau method yang bersifat public yang dapat diakses langsung oleh objek lain, sedangkan variabel atau method yang bersifat private atau protected tidak dapat diakses secara langsung oleh objek lain, sehingga dapat dikatakan bahwa pengguna objek memandang objek sebagai suatu black box yang menyediakan layanan-layanan tertentu, namun tidak mengetahui secara pasti bagaimana objek tersebut bekerja secara internal. Sebagai contoh, seorang pengendara mobil menginjak rem untuk menghentikan mobil, tapi dia tidak perlu tahu bagaimana sistem rem bekerja untuk menghentikan mobil. Si pengendara hanya perlu melakukan suatu method public injakRem() untuk mendapatkan hasilnya.
ü Message
Message adalah suatu mekanisme yang digunakan dalam Java untuk melakukan komunikasi antar object. Dalam suatu program, sebuah object saja tidak akan banyak berguna. Sebagai contoh, Mobil (objek) akan lebih berguna jika pengendara (objek lain) menghidupkan mesin dan mengendarainya. Pengendara melakukan komunikasi terhadap mekanisme mesin untuk menghidupkan Mobil. Objek-objek saling berkomunikasi menggunakan message. Saat objek A ingin agar objek B melakukan method milik B, maka A mengirimkan message kepada B.
ü Inheritance (Pewarisan)
Suatu class baru dapat didefinisikan berdasar dari suatu class yang sudah ada sebelumnya. Inheritance merupakan pemberian state (variabel) dan behaviour (method) dari suatu class ke class baru yang merupakan turunannya. Sebagai contoh, baik class Truk maupun Sedan merupakan turunan dari class Mobil. Baik Truk maupun Sedan disebut subclass dari Mobil, dan Mobil merupakan superclass dari Truk dan Sedan. Dalam hal-hal tertentu, baik Truk maupun Sedan memiliki state yang sama, misalnya roda, gas, dan rem. Demikian juga keduanya memiliki behaviour yang sama, misalnya “tambah kecepatan” atau “kurangi kecepatan”. State dan behaviour yang sama ini didapat karena keduanya merupakan turunan dari class Mobil, dimana class Mobil memiliki berbagai state dan behaviour tersebut. Akan tetapi, suatu subclass dapat memiliki state dan behaviour tambahan di samping state dan behaviour yang sudah diperoleh dari superclassnya. Sedan dapat memiliki state tambahan berupa bagasi, dan memiliki behaviour tambahan berupa “buka bagasi”. Subkelas juga dapat memodifikasi (override) behaviour yang diperoleh dari superclassnya. Misalnya sebuah superclass Mobil memiliki transmisi manual, sedangkan subclass Sedan memiliki transmisi otomatis. Dalam hal ini, agar implementasi Sedan dapat berjalan benar, class Sedan dapat meng-override behaviour “ganti gigi” yang diperolehnya dari superclass agar sesuai dengan yang diperlukannya. Inheritance ini dapat dilakukan sebanyak yang diperlukan, sebagai contoh, subclass Sedan dapat menjadi sebuah superclass dari class BMW dan Mercy. Dengan adanya inheritance ini programmer dapat menggunakan ulang source code dari superclass yang sudah ada untuk suatu class baru tanpa perlu menulis banyak kode lagi. Java hanya mendukung pewarisan tunggal (single inheritance).
ü Interface
Java tidak mendukung mekanisme multiple inheritance seperti pada C++, oleh karena itu Java menggunakan konsep interface untuk mendekati multiple inheritance. Interface pada Java digunakan untuk menyediakan keuntungan dari multiple inheritance dengan cara pengimplementasian yang lebih mudah. Interface memungkinkan beberapa class berbagi method dan variabel standard tanpa perlunya sebuah class baru untuk digunakan sebagai superclass. Lebih lanjut mengenai interface ini akan dibahas kemudian.
Dalam Java, bentuk paling sederhana dari pendefinisian sebuah class adalah :
class NamaKelas
{
variabel …
method…
}
Semua variabel dan method yang berhubungan dengan kelas dituliskan di antara tanda “{“ dan “}”.
Program 1 – helloJava.java
/* Program Hello World dalam bahasa Java*/
import java.lang.*;
class HelloJava //definisi kelas
{
public static void main (String[] args) //main method
{
System.out.println(“Hello Java”); //output ke standard output
}
}
ü Komentar dalam Java dapat dituliskan dengan cara seperti dalam C++ :
o Di antara tanda /*…*/; compiler mengabaikan semua teks yang ada di antara tanda ini
o Diawali tanda //; compiler mengabaikan semua teks dalam baris ini
ü Dalam Java, semua method dan variabel dimasukkan dalam class pemiliknya. Java tidak mendukung variabel atau fungsi global.
ü Method main pada Java merupakan method utama pusat jalannya program, yang berarti saat interpreter Java dijalankan, method main inilah yang pertama kali dipanggil. Dalam method main Java, harus selalu dituliskan sebagai public static void main. Keyword public berarti semua objek dapat mengakses method ini.; static berarti method ini adalah class method; void berarti method ini tidak mengembalikan nilai apa pun. Argumen parameter Java pada contoh ini diletakkan pada suatu array args. Dari contoh ini dapat dilihat bahwa Java juga mendukung sebuah kelas objek String yang berupa kumpulan karakter.
ü Library dalam Java disebut package dan dimasukkan dalam program Java melalui keyword import.
ü Pernyataan System.out.println(“Hello Java”); digunakan untuk menampilkan teks ke layar. Pada Java, setiap selesai mengetikkan sebuah statemen, selalu diakhiri tanda semicolon (;) sebelum menulis statemen berikutnya.
Program 2 – myVariabel.java
class MyVariables
{
public static void main (String args[])
{
System.out.println(“Variabel-variabel dalam Java”);
//variabel boolean
boolean myBool1 = false;
Boolean myBool2 = new Boolean(true);
Boolean myBool3 = new Boolean(false);
System.out.println(“Nilai boolean pertama : ” + myBool1);
System.out.println(“Nilai boolean kedua : ” + myBool2.toString());
System.out.println(“Nilai boolean ketiga : ” + myBool3.booleanValue());
//variabel byte
byte myByte1 = 5;
Byte myByte2 = new Byte(“34″);
System.out.println(“\nNilai byte pertama : ” + myByte1);
System.out.println(“Nilai byte kedua : ” + myByte2.toString());
System.out.println(“Nilai jangkauan variabel byte : ” + myByte2.MIN_VALUE +
” sampai ” + myByte2.MAX_VALUE);
//variabel short integer
short myShort1 = 32004;
Short myShort2 = new Short(“14223″);
System.out.println(“\nNilai short pertama : ” + myShort1);
System.out.println(“Nilai short kedua : ” + myShort2.toString());
System.out.println(“Nilai jangkauan variabel short : ” + myShort2.MIN_VALUE +
” sampai ” + myShort2.MAX_VALUE);
//variabel integer
int myInt1 = 4266345;
Integer myInt2 = new Integer(“5351232″);
System.out.println(“\nNilai integer pertama : ” + myInt1);
System.out.println(“Nilai integer kedua : ” + myInt2.toString());
System.out.println(“Nilai jangkauan variabel integer : ” + myInt2.MIN_VALUE +
” sampai ” + myInt2.MAX_VALUE);
//variabel long
long myLong1 = 710649673;
Long myLong2 = new Long(999175835);
System.out.println(“\nNilai long pertama : ” + myLong1);
System.out.println(“Nilai long kedua : ” + myLong2.toString());
System.out.println(“Jangkauan long : ” + myLong2.MIN_VALUE + ” s/d ” +
myLong2.MAX_VALUE);
//variabel char
char myChar1 = ‘d’;
Character myChar2 = new Character(‘\u0042′);
//Jadinya unicode yang dipake unicode 4 digit hexa
System.out.println(“\nNilai char pertama : ” + myChar1);
System.out.println(“Nilai char kedua : ” + myChar2.charValue());
}
}
Variabel-variabel dalam Java dapat dibedakan menjadi dua, yaitu variabel primitif dan variabel sebagai subkelas dari class Object. Variabel primitif merupakan tipe variabel yang benar-benar hanya digunakan untuk menampung sebuah nilai, sedangkan variabel sebagai class memiliki berbagai method yang dapat digunakan seperti dapat dilihat di atas. Untuk sementara, variabel yang akan banyak digunakan adalah variabel primitif.
Pendeklarasian suatu variabel primitif dapat dilakukan dengan sintaks :
type_var nama_var_1, nama_var_2, …, nama_var_n
Untuk pengesetan nilai awal variabel, dapat dilakukan dengan operator assignment (=) setelah pendeklarasian, sebagai contoh : int nilai1, nilai2, nilai3 = 7 akan membentuk tiga buah variabel nilai1, nilai2, dan nilai3 yang ketiganya bernilai 7.
Dalam pendeklarasian, ada beberapa hal yang perlu diperhatikan :
ü Sekelompok digit tanpa desimal secara default akan diset bertipe integer. Untuk membentuk suatu nilai long, dapat dilakukan dengan menambahkan ‘L’ atau ‘l’ di belakang angka. Untuk lebih jelasnya, nilai 1234 berbeda artinya dengan 1234L; 1234 bertipe integer, sedangkan 1234L bertipe long integer, walaupun nilai keduanya sama.
ü Sekelompok digit dengan nilai desimal secara default akan diset bertipe double. Untuk membentuk suatu nilai float, dapat dilakukan dengan menambahkan ‘F’ atau ‘f’ di belakang angka
Untuk membentuk suatu konstanta, dapat dilakukan dengan menambahkan keyword final. Sebagai contoh, lihat syntax berikut :
final int myConst;
myConst = 6;
Baris pertama akan membentuk suatu konstanta integer bernama myConst. Konstanta ini belum ada nilainya (blank final). Baris kedua akan mengeset nilai myConst sebesar 6. Sekali nilai variabel final diset, maka nilainya tidak dapat diubah lagi.
Program 3 – myOperator.java
class MyOperator
{
public static void main(String args[])
{
if (args.length != 2)
{
System.out.print(“Cara pemakaian : “);
System.out.println(“$ java myOperator “);
System.exit(0);
}
Integer myInt1 = new Integer(args[0]);
Integer myInt2 = new Integer(args[1]);
//Operator aritmetika
System.out.println(“myInt1 + myInt2 = ” + (myInt1.intValue() + myInt2.intValue()));
System.out.println(“myInt1 – myInt2 = ” + (myInt1.intValue() – myInt2.intValue()));
System.out.println(“myInt1 * myInt2 = ” + (myInt1.intValue() * myInt2.intValue()));
System.out.println(“myInt1 / myInt2 = ” + (myInt1.intValue() / myInt2.intValue()));
System.out.println(“myInt1 mod myInt2 = ” + (myInt1.intValue() % myInt2.intValue()));
int nilai1 = (new Integer(myInt1.toString())).intValue();
int nilai2 = (new Integer(myInt2.toString())).intValue();
System.out.println(“nilai1 + (nilai2++) = ” + (nilai1 + (nilai2++)));
System.out.println(“nilai1 sekarang = ” + nilai1);
System.out.println(“nilai2 sekarang = ” + nilai2);
System.out.println(“(–nilai1) + nilai2 = ” + ((–nilai1) + nilai2));
System.out.println(“nilai1 sekarang = ” + nilai1);
System.out.println(“nilai2 sekarang = ” + nilai2);
//Operator bitwise
System.out.println(“nilai1 AND nilai2 = ” + (nilai1 & nilai2));
System.out.println(“nilai1 OR nilai2 = ” + (nilai1 | nilai2));
System.out.println(“nilai1 XOR nilai2 = ” + (nilai1 ^ nilai2));
System.out.println(“nilai1 shift right 2bit = ” + (nilai1 >> 2));
System.out.println(“nilai2 shift left 1bit = ” + (nilai2 <<>
}
}








Syntax-syntax dasar untuk statement-statement control flow pada Java adalah sbb :
while (kondisi) {
}
do {
} while (kondisi)
for ([inisialisasi]; [terminator]; [pertambahan]) {
}
dengan inisialisasi adalah kondisi awal loop, terminator adalah kondisi berhenti loop (diuji di awal loop), dan pertambahan adalah nilai increment/decrement counter tiap loop. Ketiga komponen ini bersifat optional.
if (kondisi1) {
}
//else if bersifat optional
[else if (kondisi2) {
}]
else {
}
switch (variabel) {
case nilai1 : {
….
[break];
}
case nilai2 : {
….
[break];
}
… //case nilai-nilai lain
default : {
….
[break];
}
}
Statement switch-case melakukan percabangan berdasarkan suatu variabel integer atau character, bukan berdasarkan ekspresi kondisi. Keyword break sebenarnya bersifat optional, karena hanya merupakan pembatas antar case. Tanpa break, statemen yang sama untuk nilai case yang berbeda tidak perlu ditulis ulang.
try {
} catch (exception_type exception_name) {
….
}
[catch (exception_type exception_name) {
….
}]
finally {
….
}
Java menyediakan suatu mekanisme yang dikenal sebagai exception untuk menangani error. Jika saat runtime ditemui error, maka program “melemparkan” exception, sehingga program diinterupsi dan mencari exception handler (mekanisme penangan error). Statemen control flow try-catch-finally digunakan untuk menangani exception ini. Fungsi masing-masing komponen control flow ini adalah :
ü try : mengidentifikasi blok pernyataan dimana exception mungkin diperoleh
ü catch : mengidentifikasi exception tertentu dan apa yang harus dilakukan untuk menanganinya.
ü finally : mengidentifikasi blok pernyataan yang dieksekusi, baik ada exception atau tidak.
Statemen break dan continue dapat dibagi menjadi dua macam, yaitu tanpa label dan dengan label (label pada java ditandai dengan syntax Nama_label : ….). Fungsi break adalah untuk menghentikan eksekusi sebuah blok program, misalnya untuk memaksa keluar dari sebuah loop. Keyword continue digunakan untuk melewatkan sisa statemen pada iterasi loop yang sedang dijalankan, dan melanjutkan sisa loop. Statemen return digunakan untuk mengakhiri method yang sedang berlangsung. Statemen return dapat dibagi dua, yaitu return yang mengembalikan nilai ke method dan return yang tidak mengembalikan nilai.
Program 4 – myControlFlow.java
import java.io.*;
class MyControlFlow
{
public static void main (String[] args)
{
try
{
BufferedReader variables = new BufferedReader(new InputStreamReader(System.in));
int op1, op2;
System.out.print(“Masukkan nilai operand 1 : “);
op1 = (new Integer(variables.readLine())).intValue();
System.out.print(“Masukkan nilai operand 2 : “);
op2 = (new Integer(variables.readLine())).intValue();
//Cek apakah op1 > / < / == op2
if (op1 > op2)
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“lebih besar dari operand 2 (” + op2 + “)”);
}
else if (op1 <>
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“lebih kecil dari operand 2 (” + op2 + “)”);
}
else
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“sama dengan dari operand 2 (” + op2 + “)”);
}
} catch(IOException IOE)
{
System.err.println(“Kesalahan IO”);
}
catch(NumberFormatException NFE)
{
System.err.println(“Angka, bukan huruf!”);
}
}
}
Program 5 – myControlFlow2.java
import java.io.*;
class MyControlFlow2
{
public static void main(String args[])
{
if (args.length != 1)
{
System.err.print(“Cara pemakaian : “);
System.err.println(“$ java myControlFlow2 “);
System.exit(1);
}
String str1 = args[0];
int idx = 0;
for (int i = 0; i <>
{
System.out.println(i + ” ” + str1);
}
System.out.println(“\n”);
do
{
System.out.println(“Karakter ke-” + idx + ” : ” + str1.charAt(idx));
idx++;
} while (idx <>
}
}