Jumat, 28 Februari 2014

Algoritma Sorting pada Java

Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif.

Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data. Beberapa macam algoritma sorting telah dibuat karena proses tersebut sangat mendasar dan sering digunakan. Oleh karena itu, pemahaman atas algoritma – algoritma yang ada sangatlah berguna.

Percobaan :

Kode program

import javax.swing.JOptionPane;


class tugasSorting

{

   public static void main(String[] args)throws Exception

{

String jml,bil;

int x,cari,y;

jml=JOptionPane.showInputDialog("Masukkan jumlah angka yang ingin diurut : ");

x=Integer.parseInt(jml);

int []data=new int[x];

for (int i=0;i<x;i++)

{

bil=JOptionPane.showInputDialog("Masukkan angka acak : ");

data[i]=Integer.parseInt(bil);

}

System.out.println("\nData awal : ");

for (int i=0;i<data.length;i++)

System.out.println("\tdataku ialah["+i+"]--> "+data[i]);

String str=JOptionPane.showInputDialog("Masukkan data yang akan dicari : ");

cari=Integer.parseInt(str);

for (int i=0;i<data.length;i++)

{

if (cari==data[i])

{

System.out.println("Data "+cari+" ditemukan di posisi "+i);

break;

}

}

for (int kiri=0;kiri<data.length;kiri++)

{

for (int kanan=kiri+1;kanan<data.length;kanan++)

{

if (data[kiri]>data[kanan])

{

int bantu=data[kiri];

data[kiri]=data[kanan];

data[kanan]=bantu;

}

}

}

System.out.println("Setelah di urutkan : ");

for (int i=0;i<data.length;i++)

System.out.println("datanya ialah["+i+"]--> "+data[i]);

System.exit(0);

}

}


Hasil 


 Setelah Menginput angka yg di inginkan

Memilih Angka Secara acak
Masih Memilih Secara Acak
Masih Memilih Secara Acak
Muncul Hasil Seperti Di Bawah ini

Dan Data yang ditemukan seperti di bawah ini
Sumber JENI(Java Education Network Indonesia)



Struktur Program Java

Pada bagian ini meringkaskan syntax dasar yang digunakan dalam pembuatan aplikasi Java.

Mendeklarasikan class Java
<classDeclaration> ::=
<modifier> class <name> {
<attributeDeclaration>*
<constructorDeclaration>*
<methodDeclaration>*
}

dimana <modifier> adalah sebuah access modifier, yang mana boleh dikombinasikan dengan tipe yang lain dari modifier.

Contoh berikut ini mendeklarasikan blueprint SuperHero:

Class SuperHero {
String superPowers[];
void setSuperPowers(String superPowers[]) {
this.superPowers = superPowers;
}
void printSuperPowers() {
for (int i = 0; i < superPowers.length; i++) {
System.out.println(superPowers[i]);
}
}
}

Mendeklarasikan Atribut
<attributeDeclaration> : :=
<modifier> <type> <name> [= <default_value>];
<type> ::=
byte | short | int | long | char | float | double | boolean
| <class>

Inilah contohnya.

public class AttributeDemo {
private String studNum;
public boolean graduating = false;
protected float unitsTaken = 0.0f;
String college;
}

Mendeklarasikan Method
<methodDeclaration> ::=
<modifier> <returnType> <name>(<parameter>*) {
<statement>*
}
<parameter> ::=
<parameter_type> <parameter_name>[,]

Sebagai contoh:

class MethodDemo {
int data;
int getData() {
return data;
}
void setData(int data) {
this.data = data;
}
void setMaxData(int data1, int data2) {
data = (data1>data2)? data1 : data2;
}
}

Mendeklarasikan sebuah Constructor
<constructorDeclaration> ::=
<modifier> <className> (<parameter>*) {
<statement>*
}

Jika tidak ada constructor yang disediakan secara jelas, constructor default secara otomatis membuatkannya untuk Anda. Constructor default tidak membawa argumen dan tidak berisi pernyataan pada tubuh class.

Perhatikan contoh berikut.
class ConstructorDemo {
private int data;
public ConstructorDemo() {
data = 100;
}
ConstructorDemo(int data) {
this.data = data;
}
}

Meng-instantiate sebuah class
Untuk meng-instantiate sebuah class, dengan sederhana kita gunakan kata kunci new diikuti
dengan pemanggilan sebuah constructor. Mari lihat langsung ke contohnya.
class ConstructObj {
int data;
ConstructObj() {
/* menginisialisasi data */
}
public static void main(String args[]) {
ConstructObj obj = new ConstructObj(); //di-instantiate
}
}

Mengakses Anggota object

Untuk mengakses anggota dari sebuah object, kita gunakan notasi “dot”. Penggunaanya seperti
berikut:
<object>.<member>
Contoh selanjutnya berdasar pada sebelumnya dengan pernyataan tambahan untuk mengakses
anggota dan method tambahan.
class ConstructObj {
int data;
ConstructObj() {
/* inisialisasi data */
}
void setData(int data) {
this.data = data;
}
public static void main(String args[]) {
ConstructObj obj = new ConstructObj(); //instantiation
obj.setData = 10; //access setData()
System.out.println(obj.data); //access data
}
}

Package
Untuk menunjukkan bahwa file asal termasuk package khusus, kita gunakan syntax berikut:

<packageDeclaration> ::=
package <packageName>;
Untuk mengimpor package lain, kita gunakan syntax berikut:
<importDeclaration> ::=
import <packageName.elementAccessed>;
Dengan ini, source code Anda harus memiliki format berikut:
[<packageDeclaration>]
<importDeclaration>*
<classDeclaration>+

Sebagai contoh:

package registration.reports;
import registration.processing.*;
import java.util.List;
import java.lang.*; //imported by default
class MyClass {
/* rincian dari MyClass */

Access Modifier





Enkapsulasi
Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan
anggota yang ingin Anda sembunyikan secara private.
Contoh berikut menyembunyikan field secret. Catatan bahwa field ini tidak langsung diakses oleh
program lain menggunakan method getter dan setter.
class Encapsulation {
private int secret; //field tersembunyi
public boolean setSecret(int secret) {
if (secret < 1 || secret > 100) {
return false;
}
this.secret = secret;
return true;
}
public getSecret() {
return secret;
}
}

Untuk membuat class anak atau subclass berdasarkan class yang telah ada, kita gunakan kata
kunci extend dalam mendeklarasikan class. Sebuah class hanya dapat meng-extend satu class
induk.
Sebagai contoh, class Point di bawah ini adalah superclass dari class ColoredPoint.
import java.awt.*;
class Point {
int x;
int y;
}
class ColoredPoint extends Point {
Color color;
}


Method Overriding
Method subclass override terhadap method superclass ketika subclass mendeklarasikan method
yang signaturenya serupa ke method dalam superclass. Signature dari method hanyalah informasi
yang ditemukan dalam definisi method bagian atas. Signature mengikutkan tipe return, nama dan
daftar parameter method tetapi itu tidak termasuk acces modifier dan tipe yang lain dari kata
kunci seperti final dan static.
Inilah perbedaan dari method overloading. Method overloading secara singkat didiskusikan dalam
sub bagian pada kata kunci this.
class Superclass {
void display(int n) {
System.out.println("super: " + n);
}
}
class Subclass extends Superclass {
void display(int k) { //method overriding
System.out.println("sub: " + k);
}
}
class OverrideDemo {
public static void main(String args[]) {
Subclass SubObj = new Subclass();
Superclass SuperObj = SubObj;
SubObj.display(3);
((Superclass)SubObj).display(4);
}
}
Ini akan menghasilkan keluaran sebagai berikut.
sub: 3
sub: 4
Pemanggilan method ditentukan oleh tipe data sebenarnya dari object yang diminta method.
Acces modifier untuk method yang dibutuhkan tidak harus sama. Bagaimanapun, acces modifier
dari method overridding mengharuskan salah satunya punya acces modifier yang sama seperti itu
dari method overridden atau acces modifier yang kurang dibatasi.
Perhatikan contoh selanjutnya. Periksa yang mana dari method overridding berikut akan
menyebabkan waktu meng-compile akan menyebabkan error.
class Superclass {
void overriddenMethod() {
}
}
class Subclass1 extends Superclass {
public void overriddenMethod() {
}
}
class Subclass2 extends Superclass {
void overriddenMethod() {
}
}
class Subclass3 extends Superclass {
protected void overriddenMethod() {
}
}
class Subclass4 extends Superclass {
private void overriddenMethod() {
}
}

Class Abstract dan Method
Bentuk umum dari sebuah method abstract adalah sebagai berikut:
abstract <modifier> <returnType> <name>(<parameter>*);
Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract.
abstract <modifier> <returnType> <name>(<parameter>*);abstract class
<name> {
/* constructors, fields and methods */
}
Kata kunci tidak dapat digunakan pada constructor atau method static. Ini juga penting untuk
diingat bahwa class abstract tidak dapat di-instantiate.
Class yang meng-extends sebuah class abstract harus mengimplementasikan semua method
abstract. Jika tidak subclass sendiri dapat dideklarasikan sebagai abstract.

Sebagai contoh:
abstract class SuperHero {
String superPowers[];
void setSuperPowers(String superPowers[]) {
this.superPowers = superPowers;
}
void printSuperPowers() {
for (int i = 0; i < superPowers.length; i++) {
System.out.println(superPowers[i]);
}
}
abstract void displayPower();
}
class UnderwaterSuperHero extends SuperHero {
void displayPower() {
System.out.println("Communicate with sea creatures...");
System.out.println("Fast swimming ability...");
}
}
class FlyingSuperHero extends SuperHero {
void displayPower() {
System.out.println("Fly...");
}
}

Interface
Mendeklarasikan sebuah interface pada dasarnya mendeklarasikan sebuah class tetapi sebagai
penggantinya menggunakan kata kunci class, kata kunci interface digunakan. Berikut syntax-nya.
<interfaceDeclaration> ::=
<modifier> interface <name> {
<attributeDeclaration>*
[<modifier> <returnType> <name>(<parameter>*);]*
}
Anggotanya adalah public ketika interface dideklarasikan public.

Class mengimplementasikan sebuah interface yang telah ada dengan menggunakan kata kunci
implements. Class ini dibuat untuk mengimplementasikan semua method interface. Sebuah class
boleh mengimplementasikan lebih dari satu interface.
Contoh berikut menunjukkan bagaimana mendeklarasikan dan menggunakan sebuah interface.
interface MyInterface {
void iMethod();
}
class MyClass1 implements MyInterface {
public void iMethod() {
System.out.println("Interface method.");
}
void myMethod() {
System.out.println("Another method.");
}
}
class MyClass2 implements MyInterface {
public void iMethod() {
System.out.println("Another implementation.");
}
}
class InterfaceDemo {
public static void main(String args[]) {
MyClass1 mc1 = new MyClass1();
MyClass2 mc2 = new MyClass2();
mc1.iMethod();
mc1.myMethod();
mc2.iMethod();
}
}

Kata kunci this
Kata kunci this dapat digunakan untuk beberapa alasan berikut:
1.Adanya ambigu pada atribut lokal dari variabel lokal
2.Menunjuk pada object yang meminta method non-static
3.Menunjuk pada constructor lain.
Sebagai contoh pada maksud pertama, perhatikan kode berikut dimana variabel data disediakan
sebagai sebuah atribut dan parameter lokal pada saat yang sama.
class ThisDemo1 {
int data;
void method(int data) {
this.data = data;
/* this.data menunjuk ke atribut
sementara data menunjuk ke variabel lokal */
}
}
static dipanggil.
class ThisDemo2 {
int data;
void method() {
System.out.println(data); //this.data
}
void method2() {
method(); //this.method();
}
Sebelum melihat ke contoh yang lain, mari pertama meninjau pengertian method overloading.
Constructor seperti juga method dapat juga menjadi overload. Method yang berbeda dalam class
dapat memberi nama yang sama asalkan list parameter juga berbeda. Method overloaded harus
berbeda dalam nomor dan/atau tipe dari parameternya. Contoh selanjutnya memiliki constructor
overloaded dan referensi this yang dapat digunakan untuk menunjuk versi lain dari constructor.
class ThisDemo3 {
int data;
ThisDemo3() {
this(100);
}
ThisDemo3(int data) {
this.data = data;
}
}

Kata kunci super
Penggunaan kata kunci super berhubungan dengan pewarisan. Super digunakan untuk meminta
constructor superclass. Super juga dapat digunakan seperti kata kunci this untuk menunjuk pada
anggota dari superclass.
Program berikut mendemonstrasikan bagaimana referensi super digunakan untuk memanggil
constructor superclass.
class Person {
String firstName;
String lastName;
Person(String fname, String lname) {
firstName = fname;
lastName = lname;
}
}
class Student extends Person {
String studNum;
Student(String fname, String lname, String sNum) {
super(fname, lname);
studNum = sNum;
}
}

Kata kunci dapat juga digunakan untuk menunjuk anggota superclass seperti yang ditunjukkan
pada contoh berikut.
class Superclass{
int a;
void display_a(){
System.out.println("a = " + a);
}
}
class Subclass extends Superclass {
int a;
void display_a(){
System.out.println("a = " + a);
}
void set_super_a(int n){
super.a = n;
}
void display_super_a(){
super.display_a();
}
}

class SuperDemo {
public static void main(String args[]){
Superclass SuperObj = new Superclass();
Subclass SubObj = new Subclass();
SuperObj.a = 1;
SubObj.a = 2;
SubObj.set_super_a(3);
SuperObj.display_a();
SubObj.display_a();
SubObj.display_super_a();
System.out.println(SubObj.a);
}
}
Program tersebut akan menampilkan hasil berikut.
a = 1
a = 2
a = 3


Kata Kunci static
Kata kunci static dapat digunakan untuk anggota dari sebuah class. Kata kunci ini menyediakan
static atau anggota class untuk diakses sama sebelum beberapa instance dari class dibuat.
Variabel class bersifat seperti variabel umum. Ini artinya bahwa variabel dapat diakses oleh
semua instance dari class.
Method class mungkin dapat diambil tanpa membuat sebuah object dari class tersebut.
Bagaimanapun, mereka hanya dapat mengakses anggota static dari class. Ditambahkan juga,
mereka tidak dapat menunjuk this dan super.
Kata kunci static dapat juga diaplikasikan pada blok. Ini dinamakan dengan blok static. Blok ini
dieksekusi hanya sekali, ketika class diisi. Hal ini biasanya digunakan untuk menginisialisasi
variabel class.
class Demo {
static int a = 0;
static void staticMethod(int i) {
System.out.println(i);
}
static { //blok static
System.out.println("This is a static block.");
a += 1;
}
}

class StaticDemo {
public static void main(String args[]) {
System.out.println(Demo.a);
Demo.staticMethod(5);
Demo d = new Demo();
System.out.println(d.a);
d.staticMethod(0);
Demo e = new Demo();
System.out.println(e.a);
d.a += 3;
System.out.println(Demo.a+", " +d.a +", " +e.a);
}
}
Keluaran dari source kode ditunjukkan di bawah ini.
This is a static block.
1
5
1
0
1
4, 4, 4

Kata Kunci final
Kata kunci final dapat diaplikasikan pada variabel, method dan class. Untuk mengingat fungsi dari
kata kunci, ingat bahwa itu secara mudah dibatasi apa yang kita dapat lakukan dengan variabel,
method dan class.
Nilai dari variabel final dapat tidak lama diubah sesudah nilainya telah diatur. Sebagai contoh,
final int data = 10;
Pernyataan berikut akan menyebabkan terjadi compilation error:

data++;
Method final tidak dapat di-override dalam class anak.
final void myMethod() { //in a parent class
}
myMethod tidak dapat lama di-override dalam class anak.
class final tidak dapat diwariskan tidak seperti class yang biasanya.
final public class MyClass {
}
Pernyataan ini akan menyebabkan kesalahan compilation terjadi karena MyClass dapat tidak lama
di-extended.
public WrongClass extends MyClass {
}

Inner Classes
Sebuah inner class secara mudah dideklarasikan dalam class lain.
class OuterClass {
int data = 5;
class InnerClass {
int data2 = 10;
void method() {
System.out.println(data);
System.out.println(data2);
}
}
public static void main(String args[]) {
OuterClass oc = new OuterClass();
InnerClass ic = oc.new InnerClass();
System.out.println(oc.data);
System.out.println(ic.data2);
ic.method();
}
}
Untuk mampu mengakses anggota dari inner class, kita butuh sebuah instance dari inner class.
Method-method dari inner class dapat secara langsung mengakses anggota dari outer class.



Sumber : JENI (Java Education Network Indonesia)

Panel dan Tampilan kompleks

Untuk membuat tampilan yang lebih lengkap, Anda dapat menggabungkan layout manage yang berbeda dengan menggunakan panel. Ingatlah bahwa panel adalah kontainer dan komponen pada saat yang sama. Anda dapat memasukkan komponen ke dalam panel dan kemudian menambahkan panel ke dalam region yang Anda inginkan di dalam kontainer.
Source Codenya
 
import java.awt.*;
class ComplexLayout extends Frame {
public static void main(String args[]) {
ComplexLayout cl = new ComplexLayout();
Panel panelNorth = new Panel();
Panel panelCenter = new Panel();
Panel panelSouth = new Panel();
/* Panel utara */
//Panel menggunakan FlowLayout sebagai default
panelNorth.add(new Button("ONE"));
panelNorth.add(new Button("TWO"));
panelNorth.add(new Button("THREE"));
/* Panel tengah */
panelCenter.setLayout(new GridLayout(4,4));
panelCenter.add(new TextField("1st"));
panelCenter.add(new TextField("2nd"));
panelCenter.add(new TextField("3rd"));
panelCenter.add(new TextField("4th"));
/* Panel selatan */
panelSouth.setLayout(new BorderLayout());
panelSouth.add(new Checkbox("Choose me!"),
BorderLayout.CENTER);
panelSouth.add(new Checkbox("I'm here!"),
BorderLayout.EAST);
panelSouth.add(new Checkbox("Pick me!"),
BorderLayout.WEST);
/* Menambahkan panel pada container Frame*/
//Frame menggunakan BorderLayout sebagai default
cl.add(panelNorth, BorderLayout.NORTH);
cl.add(panelCenter, BorderLayout.CENTER);
cl.add(panelSouth, BorderLayout.SOUTH);
cl.setSize(300,300);
cl.setVisible(true);
}
}

hasilnya

 
Sumber : JENI (Java Education Network Indonesia)

GridLayout Manager

Dengan GridLayout manager, komponen juga diposisikan dari kiri ke kanan dan dari atas ke bawah seperti pada FlowLayout manager. GridLayout manager membagi kontainer menjadi baris dan kolom. Semua region memiliki ukuran yang sama. Hal tersebut tidak mempedulikan ukuran sebenarnya dari komponen.

Percobaan :
Kode Program :
import java.awt.*;
class GridLayoutDemo extends Frame {
public static void main(String args[]) {
GridLayoutDemo gld = new GridLayoutDemo();
gld.setLayout(new GridLayout(2, 3, 4, 4));
gld.add(new Button("ONE"));
gld.add(new Button("TWO"));
gld.add(new Button("THREE"));
gld.add(new Button("FOUR"));
gld.add(new Button("FIVE"));
gld.setSize(200, 200);
gld.setVisible(true);
}
}

Hasilnya
Sumber : JENI (Java Education Network Indonesia)

Percobaan Ke 2

Percobaan 2 menggunakan class JOptionPane

Source Codenya sebagai berikut

import javax.swing.JOptionPane;
         public class GetInputFromKeyboard  {
         public static void main( String[] args ){


         String name = "";
         name = JOptionPane.showInputDialog("Tolong Masukkan Nama anda :");
         String msg = "Hai , Selamat Datang " + name + "!";
         JOptionPane.showMessageDialog(null, msg);
}
}
 

Hasilnya ketika menginput Nama
 Hasil selanjutnya
Sumber : JENI (Java Education Network Indonesia)

Threads [Java]

Definisi Thread
Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang
bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda).
Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.

State dari Thread
1. Running
Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU.
2. Ready to run
Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya.
3. Resumed
Setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap untuk dijalankan.
4. Suspended
Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan thread lain bekerja.
5. Blocked
Sebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.

Contoh Programnya seperti dibawah ini :

 import javax.swing.*;import java.awt.*;
class CountDownGUI extends JFrame {
JLabel label;
CountDownGUI(String title) {
super(title);
label = new JLabel("Start count!");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(new Panel(), BorderLayout.WEST);
getContentPane().add(label);
setSize(300,300);
setVisible(true);
}
void startCount() {
try {
for (int i = 10; i > 0; i--) {
Thread.sleep(1000);
label.setText(i + "");
}
Thread.sleep(1000);
label.setText("Count down complete.");
Thread.sleep(1000);
} catch (InterruptedException ie) {
}
label.setText(Thread.currentThread().toString());
}
public static void main(String args[]) {
CountDownGUI cdg = new CountDownGUI("Count down GUI");
cdg.startCount();
}
}


Hasil nya: Memulai CountDown
 Hasil kedua Hitungan mundur dari 10-0
Hasil Selanjutnya Countdown Selesai

Hasil Terakhir Thread Terdeteksi

Sumber : JENI (Java Education Network Indonesia)



Tour dari Package java

Java datang dengan beberapa class built-in yang bermanfaat. Mari kita membahas classclass
tersebut.
Pada akhir pembahasan, diharapkan pembaca dapat :
1. Menggunakan class-class Java yang telah ada
- Math
- String
- StringBuffer
- Wrapper
- Process
- System

Class Math
Java juga menyediakan konstanta dan method untuk menunjukkan perbedaan operasi matematika seperti fungsi trigonometri dan logaritma. Selama method-method ini semua static, Anda dapat menggunakannya tanpa memerlukan sebuah objek Math. Untuk melengkapi daftar konstanta dan method-method ini, lihatlah acuan pada dokumentasi Java API. Dibawah ini beberapa method-method umum yang sering digunakan.

Dibawah ini contoh Source Codenya

class MathDemo {
public static void main(String args[]) {
System.out.println("absolute value of -5: " +
Math.abs(-5));
System.out.println("absolute value of 5: " +
Math.abs(-5));
System.out.println("random number(max value is 10): " +
Math.random()*10);
System.out.println("max of 3.5 and 1.2: " +
Math.max(3.5, 1.2));
System.out.println("min of 3.5 and 1.2: " +
Math.min(3.5, 1.2));
System.out.println("ceiling of 3.5: " + Math.ceil(3.5));
System.out.println("floor of 3.5: " + Math.floor(3.5));
System.out.println("e raised to 1: " + Math.exp(1));
System.out.println("log 10: " + Math.log(10));
System.out.println("10 raised to 3: " + Math.pow(10,3));
System.out.println("rounded off value of pi: " +
Math.round(Math.PI));
System.out.println("square root of 5 = " + Math.sqrt(5));
System.out.println("10 radian = " + Math.toDegrees(10) +
" degrees");
System.out.println("sin(90): " +
Math.sin(Math.toRadians(90)));
}
}


Dan Hasilnya


Sumber : JENI (Java Education Network Indonesia)


Tutorial Java


LANGKAH 1: Membuat kode program Java

Nah hal pertama adalah, bagaimana asal mula suatu program aplikasi Java?
Untuk menjalankan program Java, pertama-tama kita buat file teks (txt) biasa, beri nama dengan format penamaan TitleCase dan akhiri dengan extension .java :
Misalnya Test.java

Untuk mengisi kode programnya, edit file tersebut dengan menggunakan teks editor apa saja, misalnya Notepad.

FILE :: Test.java
Isikan kode programnya:

Code:
public class Test {
// Test -> sesuai dengan nama filenya: Test.java
// (ingat Java case sensitive, Test berbeda dgn test)
}
PS: "//" adalah komentar, apapun yang ditulis setelah // tidak akan diproses
PS2: sekali lagi Java adalah case sensitive, penulisan harus benar2 memperhatikan huruf kecil dan huruf besar.


LANGKAH 2: Mengcompile kode program kita

Compile kode program yang telah kita buat dengan menggunakan Java compiler (javac.exe) yang telah termasuk dalam bundel Java SDK (J2SE), dapatkan Java SDK di http://java.sun.com/j2se/.

Gunakan DOS Prompt, buka melalui Start menu-Run-ketik CMD.
Tuliskan ini di DOS prompt :
Code:
javac Test.java
Setelah dicompile Test.java akan menghasilkan Test.class
Quote:
Test.java (kode program) compile -> Test.class (java bytecode)


LANGKAH 3: Menjalankan program tersebut

Untuk menjalankan program yang telah kita compile diatas digunakan Java launcher (java.exe), juga melalui DOS prompt :
Code:
java Test
Pada tahap ini program kita diatas akan mengeluarkan error tidak dapat dijalankan, karena Java tidak tahu harus dimulai darimana program aplikasi kita ini.


LANGKAH 4: Membuat start awal aplikasi

Start awal jalannya suatu aplikasi Java dimulai dari ditemukannya kata kunci (keyword) :
Code:
public static void main(String[] args) { }
Nah tinggal tambahkan keyword tersebut ke file Test.java kita :
Code:
public class Test {

public static void main(String[] args) {
// application start-point
}

}
Jadi program Test.java diatas sudah dapat dicompile DAN dijalankan.
Tapi karena isinya kosong, jadi program kita tsb tidak melakukan suatu hal apapun, sungguh suatu program yang tak berguna Smile
java Test -> masuk ke bagian application start-point dan selesai, tidak ada yang dikerjakan.


LANGKAH 5: Mengeluarkan suatu tulisan

Nah untuk mengeluarkan output ke console (DOS prompt) kita gunakan fungsi System.out.println("kata") :
Code:
public class Test {

public static void main(String[] args) {
System.out.println("Hello World!");
}

}
Program kita diatas ketika dijalankan akan mengeluarkan tulisan Hello World ke console.
Ah ha! Akhirnya program kita sudah jalan dan mengerjakan sesuatu, apakah Anda sudah cukup senang sekarang?! Smile
Nah selanjutnya kita akan mengenal variabel2 dalam bahasa program Java.



LANGKAH 6: Mengenal variabel serta jenis-jenisnya

Nah setelah kita mengetahui bagaimana dasar aplikasi Java dari membuat file berekstensi .java sampai menjalankannya, sekarang saatnya untuk berkenalan dengan jenis-jenis variabel yang terdapat dalam Java.

Jadi apa itu variabel??

Untuk menyimpan nilai tertentu di dalam program aplikasi kita (memori komputer), nilai tersebut haruslah disimpan sesuai kedalam suatu variabel yang tipenya sesuai dengan tipe dari nilai tersebut.
Kita tidak dapat menyimpan tipe bernilai angka ke variabel bertipe nilai huruf ataupun sebaliknya.

Pada bahasa pemograman Java, tipe-tipe variabel yang tersedia diantaranya :
Quote:
- int : untuk menyimpan nilai berupa angka bilangan bulat, misalnya: 10
- double : untuk menyimpan nilai berupa angka bilangan desimal, misalnya: 0.5
- String : untuk menyimpan nilai berupa teks kata-kata, misalnya: "Hello World"
- boolean : untuk menyimpan nilai sederhana iya atau tidak, misalnya: true

Untuk mendeklarasikan variabel yang dapat menyimpan nilai tersebut cukup dengan menggunakan:
Code:
[tipe_variabel] [nama_variabel];
misalnya: int tipeInt;
pendeklarasian variabel bernama tipeInt sebagai variabel bertipe int

Untuk mengisikan nilai ke variabel tsb gunakan tanda =
Code:
int tipeInt;

tipeInt = 10; // mengisi tipeInt dengan nilai 10

Contoh dalam program:
Code:
public class Test {

public static void main(String[] args) {
int a = 10;
double b = 0.5;
String c = "Halo";
boolean d = true;

// mengeluarkan nilai diatas ke console
System.out.println(a); // console tertulis: 10
System.out.println(b); // console tertulis: 0.5
System.out.println(c); // console tertulis: Halo
System.out.println(d); // console tertulis: true

// ganti nilai variabel a
a = 100;
System.out.println(a); // console tertulis: 100
}

}

Setelah kita mengetahui jenis-jenis tipe variabel dan bagaimana menggunakannya, sekarang kita lihat bagaimana cara mengolahnya/memanipulasinya.


LANGKAH 7: Operasi variabel

Variabel tersebut dapat kita olah sama seperti didalam matematika, yakni dengan menggunakan operasi pertambahan (+), pengurangan (-), perkalian (*), pembagian (/), ataupun hasil bagi (%).
Misalnya: int a = 10 + 10; // pertambahan
Tidak ada yang spesial dalam mengolah data variabel tersebut, cukup gunakan tanda +, -, *, /, %

Contoh:
Code:
public class Test {

public static void main(String[] args) {
int a = 10;
int b = 20;
int c = a + b; // 10 + 20 = 30
int d = a - b; // 10 - 20 = -10

System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);


double e = 2;
double f = 4;
double g = e * f; // 2 x 4 = 8
double h = e / f; // 2 / 4 = 0.5

System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);

System.out.println(5 % 3); // = 2 -> 5 / 3 = 1 sisa 2
}

}

Java juga menyediakan cara untuk mempersingkat operasi tertentu:
Code:
int a = 0;
// menambah dengan 10
cara 1: a = a + 10;
cara 2: a += 10; // lebih singkat
Sama halnya dengan pengurangan, perkalian, pembagian.
Code:
a -= 10;
a *= 10;
a /= 10;

Dan Java juga menyediakan khusus penyingkatan untuk penambahan/pengurangan dengan 1:
Code:
a = a + 1; -> a += 1; -> a++;
a = a - 1; -> a -= 1; -> a--;

Begitulah ulasan singkat dari Paupau si pembuat tutorial ini, semoga temen2 bisa mendapatkan dasar untuk belajar Java, selanjutnya mungkin akan banyak lagi ulasan2 menarik ttg Java..tunggu saja update terbarunya di post ini, atau apabila temen2 merasa tidak punya waktu untuk menunggu..temen2 bisa membaca tutorial java di :
http://java.sun.com/docs/books/tutorial/

Treeset Teknik Pemograman Lanjut [Java]

TreeSet merupakan sebuah  implementasi dari  interface Set yang menggunakan tree.
Class  ini memastikan bahwa yang disortir  akan diurutkan secara ascending. 




Contoh Source Codenya

import java.util.*;
import java.util.*;
class TreeSetDemo {
public static void main(String args[]) {
TreeSet ts = new TreeSet();
ts.add("one");
ts.add("two");
ts.add("three");
ts.add("four");
System.out.println(ts);
}
}

Hasilnya


Sumber : JENI (Java Education Network Indonesia)