This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Minggu, 09 September 2012

Menu Konversi Bilangan with JOptionPane (using JAVA)

Assalamualaikum.. :D InsyaAllah ini pembaharuan terakhir :D
Ketemu lagi deh.. hehe kesempatan kali ini saya akan menjabarkan tentang program konversi bilangan (lagi) dengan JAVA :D namun post ini berbeda dengan artikel sebelumnya. Perbedaannya di mana ? Perbedaannya yaitu pada tampilan menunya yang sekarang menggunakan JOptionPane, bukan console :D
Seperti Ini :D

Output Pertama, menyuruh kita menginputkan nama kita..


Kemudian, jika anda mendapat tampilan ini berarti anda belum mengisi nama namun telah mengklik 'OK'


Atau anda meng-cancel / mengklik tanda X di pojok kanan akan keluar alert seperti dibawah ini..


Namun jika anda telah benar menginputkan nama, anda akan mendapatkan window untuk menginputkan gender anda..


Anda harus memilih di antara 2 pilihan tersebut, dan apabila anda menekan 'X' di pojok kanan atas, maka anda akan mendapat alert ini.

Jika sudah berhasil, maka anda akan mendapat menu ini.


 Coba pilih salah satu menu, dan isikan '270996'


Output Untuk Menu BINER


 Output Untuk Menu Hexa


Output Untuk Menu Octal

 Output Untuk Menu TERBILANG


 Output Untuk Menu PECAHAN


 Pada saat kita menginputkan bilangan desimal, jika kita tidak menginputkan bilangan namun langsung memproses, maka akan keluar alert ini.


Begitu juga ketika kita menekan tanda X di pojok kanan window, akan keluar alert ini.


 Jika kita memilih menu KEMBALI, kita akan kembali pada saat kita diminta untuk menginputkan nama


 Dan kita akan keluar dari program ketika memilih menu EXIT, dan sebelumnya kita akan mendapatkan salam :D



Ya, itu tadi ScreenShot dari programnya.. namun, bagaimana Source Codenya ? Check it out !

Terett..


import javax.swing.JOptionPane;

public class MenuDariJOption {

    private static String name;
    private static String des;
    private static int validDes;
    private static String gender;
    static StringBuilder binerHasil = new StringBuilder();
    static StringBuilder hexaHasil = new StringBuilder();
    static StringBuilder octalHasil = new StringBuilder();
    static String cs;

    public static void keBiner(int n) {
        if (n > 1) {
            keBiner(n / 2);
        }
        binerHasil.append(n % 2);
    }

    public static void hexa(int n) {
        char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        if (n > 0) {
            hexa(n / 16);
            hexaHasil.append(daftarHexa[n % 16]);
        }
    }

    public static void octal(int n) {
        char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 0) {
            octal(n / 8);
            octalHasil.append(daftarOctal[n % 8]);
        }
    }

    public static void inputDesJOption() {
        des = JOptionPane.showInputDialog("Masukkan "
                + "Bil.Desimalnya = ");
        try {
            if (des.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus diisi !");
                inputDesJOption();
            }
        } catch (NullPointerException nfe) {
            JOptionPane.showMessageDialog(null, "Inputkan Angka Terlebih dahulu !");
            inputDesJOption();
        }
    }

    public static void eksepsiInpBiner() {
        inputDesJOption();
        try {
            validDes = Integer.parseInt(des);
            keBiner(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " "
                    + "jika dijadikan Biner hasilnya : " + binerHasil,
                    "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            binerHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, des
                    + " bukan Angka! "
                    + "\nMasukkan angka!");
            eksepsiInpBiner();
        }
    }

    public static void eksepsiInpHexa() {
        inputDesJOption();
        try {
            validDes = Integer.parseInt(des);
            hexa(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " "
                    + "jika dijadikan Hexa hasilnya : " + hexaHasil,
                    "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            hexaHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, des
                    + " bukan Angka! "
                    + "\nMasukkan angka!");
            eksepsiInpHexa();
        }
    }

    public static void eksepsiInpOctal() {
        inputDesJOption();
        try {
            validDes = Integer.parseInt(des);
            octal(validDes);
            System.out.println("\n");
            JOptionPane.showMessageDialog(null, "Bilangan desimal : " + des + " "
                    + "jika dijadikan Octal hasilnya : " + octalHasil,
                    "HASIL KONVERSI", JOptionPane.PLAIN_MESSAGE);
            octalHasil = new StringBuilder();
        } catch (NumberFormatException nfe) {
            JOptionPane.showMessageDialog(null, des
                    + " bukan Angka! "
                    + "\nMasukkan angka!");
            eksepsiInpOctal();
        }
    }
    //Terbilang
    String[] angka = {"", "Satu", "Dua", "Tiga",
        "Empat", "Lima", "Enam", "Tujuh", "Delapan",
        "Sembilan", "Sepuluh", "Sebelas"};

    private String ucap(int x) {
        String bilang = "";
        int y = x / 100;
        if (y > 0) {
            bilang = angka[y] + " Ratus ";
            if (y == 1) {
                bilang = "Seratus ";
            }
            x %= 100;
        }
        if (x < 12) {
            bilang += angka[x];
        } else {
            y = x / 10;
            x %= 10;
            if (y == 1) {
                bilang += angka[x] + " Belas";
            } else {
                bilang += angka[y] + " Puluh " + angka[x];
            }
        }
        return bilang;
    }

    private String terbilang(long x) {
        int y;
        String bilang = "";
        String[] satuan = {"", " Ribu ", " Juta ", " Milyar ",
            " Trilyun ", " Quadrilyun ", " Quintilyun "};
        if (x > Math.pow(10, 20)) {
            return "Bilangan terlalu besar";
        }
        for (int i = 6; i > 0; i--) {
            y = (int) (x / Math.pow(10, i * 3));
            if (y > 0) {
                if (y == 1 && i == 1) {
                    bilang += " Seribu ";
                } else {
                    bilang += ucap(y) + satuan[i];
                }
            }
            x %= Math.pow(10, i * 3);
        }
        bilang += ucap((int) x);
        return bilang;
    }

    public static void uraianPecahan() {
        int desimal;
        String str = JOptionPane.showInputDialog("Masukkan bilangan yang "
                + "akan anda pecah : ");
        try {
            if (str.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus Diisi!");
                uraianPecahan();
            } else {
                desimal = Integer.parseInt(str);
                int satu, dua, tiga, empat,
                        lima, enam, tujuh, delapan, sembilan, sepuluh, sebelas,
                        duabelas, tigabelas;
                satu = desimal / 100000;
                desimal %= 100000;

                dua = desimal / 50000;
                desimal %= 50000;

                tiga = desimal / 20000;
                desimal %= 20000;

                empat = desimal / 10000;
                desimal %= 10000;

                lima = desimal / 5000;
                desimal %= 5000;

                enam = desimal / 2000;
                desimal %= 2000;

                tujuh = desimal / 1000;
                desimal %= 1000;

                delapan = desimal / 500;
                desimal %= 500;

                sembilan = desimal / 200;
                desimal %= 200;

                sepuluh = desimal / 100;
                desimal %= 100;

                sebelas = desimal / 50;
                desimal %= 50;

                duabelas = desimal / 10;
                desimal %= 10;

                tigabelas = desimal / 1;
                desimal %= 1;

                JOptionPane.showMessageDialog(null,
                        "Terdapat seratus ribuan sebanyak = " + satu
                        + "\nTerdapat lima puluh ribuan sebanyak = " + dua
                        + "\nTerdapat dua puluh ribuan sebanyak = " + tiga
                        + "\nTerdapat sepuluh ribuan sebanyak = " + empat
                        + "\nTerdapat lima ribuan sebanyak = " + lima
                        + "\nTerdapat dua ribuan sebanyak = " + enam
                        + "\nTerdapat seribuan sebanyak = " + tujuh
                        + "\nTerdapat lima ratusan sebanyak = " + delapan
                        + "\nTerdapat dua ratusan sebanyak = " + sembilan
                        + "\nTerdapat seratusan sebanyak = " + sepuluh
                        + "\nTerdapat lima puluhan sebanyak = " + sebelas
                        + "\nTerdapat lima satuan sebanyak = " + duabelas
                        + "\nTerdapat satuan sebanyak = " + tigabelas, "PECAHAN",
                        JOptionPane.INFORMATION_MESSAGE);
            }
        }catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Inputkan Angka Terlebih Dahulu");
            uraianPecahan();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, str +" bukan angka"
                    + "\nMasukkan Angka");
            uraianPecahan();
        }
    }

    public static void outHasilBiner() {
        eksepsiInpBiner();
    }

    public static void outHasilHexa() {
        eksepsiInpHexa();
    }

    public static void outHasilOctal() {
        eksepsiInpOctal();
    }

   public static void outTerbilang() {
        cs = JOptionPane.showInputDialog("Masukan Bilangan yang akan disebut : ");
        try {
            if (cs.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Harus Diisi !");
                outTerbilang();
            } else {
                JOptionPane.showMessageDialog(null, cs + " Terbilang "
                        + new MenuDariJOption().terbilang(new Long(cs)),
                        "TERBILANG", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (NullPointerException not) {
            JOptionPane.showMessageDialog(null, "Inputkan Angka Terlebih Dahulu");
            outTerbilang();
        } catch (NumberFormatException nae) {
            JOptionPane.showMessageDialog(null, cs
                    + " bukan Angka! "
                    + "\nMasukkan angka!");
            outTerbilang();
        }
    }

    public static void inpNama() {
        name = JOptionPane.showInputDialog("Masukkan Nama : ");
        try {
            if (name.isEmpty()) {
                JOptionPane.showMessageDialog(null, "Nama Harus Diisi"
                        + " tidak boleh kosong !");
                inpNama();
            }
        } catch (NullPointerException nfe) {
            JOptionPane.showMessageDialog(null, "Harap diisi Nama Dulu!");
            inpNama();
        }
    }

    public static void inpGender() {
        String[] choices = {"Laki-Laki", "Perempuan"};
        int gnder = JOptionPane.showOptionDialog(
                null, "Jenis Kelamin ?" // Pesan
                , "Gender" // Judul di Tittlebar
                , JOptionPane.YES_NO_OPTION // Tipe Option
                , JOptionPane.PLAIN_MESSAGE // Tipe Pesan
                , null, choices, null);
        switch (gnder) {
            case 0:
                gender = "Abang ";
                break;
            case 1:
                gender = "Eneng ";
                break;
            default:
                JOptionPane.showMessageDialog(null,
                        "Mohon Pilih Jenis Kelamin Anda");
                inpGender();
                break;
        }
    }

    public static void backToMenu() {
        inpNama();
        inpGender();
    }

    public static void menuJOption() {
        inpNama();
        inpGender();
        String[] pilihan = {"BINER", "HEXA", "OKTAL", "TERBILANG", "PECAHAN",
            "KEMBALI", "EXIT"};
        while (true) {
            int response = JOptionPane.showOptionDialog(
                    null, // Tengah Window.
                    "Selamat Datang " + gender + name + " :)"
                    + "\nPilih Konversi Bilangan Di Bawah ini",
                    "Konversi Bilangan",
                    JOptionPane.YES_NO_OPTION, // tipe pilihan
                    JOptionPane.PLAIN_MESSAGE, // tipe pesan
                    null, // icon (none)
                    pilihan, //tombol text
                    null // label tombol default
                    );
            // menggunakan switch untuk mengecek tombol yang ditekan.
            switch (response) {
                case 0:
                    outHasilBiner();
                    break;
                case 1:
                    outHasilHexa();
                    break;
                case 2:
                    outHasilOctal();
                    break;
                case 3:
                    outTerbilang();
                    break;
                case 4:
                    uraianPecahan();
                    break;
                case 5:
                    backToMenu();
                    break;
                case 6:
                    JOptionPane.showMessageDialog(null, "Terimakasih "
                            + gender + name
                            + " Telah Mencoba Program Konversi Bilangan Ini"
                            + ", Sampai Jumpa :D");
                    System.exit(0);
                    break;
                case -1:
                    JOptionPane.showMessageDialog(null, "Terimakasih "
                            + gender + name
                            + " Telah Mencoba Program Konversi Bilangan Ini"
                            + ", Sampai Jumpa :D");
                    System.exit(0);
                default:
                    //... Jika ktia disini ada kesalahan,
                    JOptionPane.showMessageDialog(null,
                            "response salah " + response);
                    break;
            }
        }
    }
    public static void main(String[] args) {
        menuJOption();
    }
}

Yap, cukup panjang :D Happy Coding :D
Sekian, Terimakasih sudah menyimak :D Maaf Kalau ada kesalahan, Wassalamualaikum :)

Jumat, 31 Agustus 2012

Koversi Bilangan With JAVA

Assalamualaikum :D
Sudah lama nggak posting.. sibuk banyak sodara abis lebaran :D hehe
Pada kesempatan kali ini saya mau menjabarkan tentang Konversi Bilangan (Biner, Hexa, Octal) menggunakan JAVA :D
Dengan sedikit tambahan di awal yaitu penginputan nama dan gender :D
Check this out !

Di bawah ini merupakan Outputnya :D

Inputan Nama
 Inputan Gender

Berhasil Menginputkan Nama & Gender
 Memilih Inputan 1 untuk Konversi ke Biner dan Menginputkan Bilangan
 
  
 Hasil Konversi Biner

 Memilih Inputan 2 untuk Konversi ke Hexa dan Menginputkan Bilangan

Hasil Konversi ke Hexa

 Memilih Inputan 3 untuk Konversi ke Octal dan Menginputkan Bilangan

 Hasil Konversi ke Octal
 
  Inputan 4 digunakan untuk Exit atau mengakhiri program :D

Bagaimana ? Seru bukan ?
Bagaimana Scriptnya ? Check it Out ! :D

Pertama Tambahkan script di bawah pada bagian teratas halaman kerja (diluar Class)


import java.util.Scanner;
import javax.swing.JOptionPane;

Setelah itu dalam Class kita buat variabel globalnya


public class KonversiBilangan {
    //global variabel

    static String name;//object
    static int bilDes;//variabel
    static String gender;//variabel kelamin

Lanjut kita membuat method untuk Operasi Matematika untuk Pengkonversi


    //fungsi / method rekursi
    public static void Biner(int n) {
        if (n > 1) {
            Biner(n / 2);
        }
        System.out.print(n % 2);
    }

    public static void Hexa(int n) {
        char[] daftarHexa = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        if (n > 1) {
            Hexa(n / 16);
        }
        System.out.print(daftarHexa[n % 16]);
    }

    public static void Octal(int n) {
        char[] daftarOctal = {'0', '1', '2', '3', '4', '5', '6', '7'};
        if (n > 1) {
            Octal(n / 8);
        }
        System.out.print(daftarOctal[n % 8]);
    }

Kemudian Kita buat method untuk penginputan bilangan desimalnya


    public static int inputDes() {

        System.out.print("Masukkan Bilangan Desimal = ");
        Scanner inputan = new Scanner(System.in);
        bilDes = inputan.nextInt();
        return bilDes;
    }

Step selanjutnya kita buat method untuk menampilkan hasil konversi


    public static void tampilBiner() {

        inputDes();
        System.out.print("Binernya adalah ");
        Biner(bilDes);
    }

    public static void tampilHexa() {
        inputDes();
        System.out.print("Hexanya adalah ");
        Hexa(bilDes);
    }

    public static void tampilOktal() {
        inputDes();
        System.out.print("Oktalnya adalah ");
        Octal(bilDes);
    }

Kemudian buat method untuk tampilan Menu serta untuk menginputkan pilhan Menu


    public static int inpBil() {

        System.out.print("\nBilangan ke: "
                + "\n1. Biner \n2. Hexa \n3. Oktal \n4. Exit");
        System.out.print("\nMasukkan Angka Menu = ");
        Scanner inputan = new Scanner(System.in);
        int pilmenu = inputan.nextInt();
        return pilmenu;
    }

Selanjutnya method ini merupakan method untuk menginputkan gender


    public static void gender() {
        gender = JOptionPane.showInputDialog("Jenis Kelamin Anda ? "
                + "(cowo / cewe)");
        if ("cowo".equals(gender)) {
            JOptionPane.showMessageDialog(null, "Selamat Datang Juragan "
                    + name
                    + "\nSilahkan Memilih Menu Konversi :)");
        } else {
            if ("cewe".equals(gender)) {
                JOptionPane.showMessageDialog(null, "Selamat Datang Ndoro "
                        + name
                        + "\nSilahkan Memilih Menu Konversi :)");
            } else {
                JOptionPane.showMessageDialog(null, "MAAF GENDER YANG"
                        + " ANDA PILIH TIDAK ADA"
                        + " SILAHKAN ULANGI KEMBALI");
                gender();
            }
        }
    }

Method selanjutnya ialah method untuk mengeksekusi inputan menu yang telah dipilih


    public static void menU(int pil) {
        System.out.println("\033");//clear screen
        switch (pil) {
            case 1:
                tampilBiner();
                break;
            case 2:
                tampilHexa();
                break;
            case 3:
                tampilOktal();
                break;
            case 4:
                System.out.println("Matur Nuwun Samptn Mampir Nggih :D");
                System.exit(0);
                break;
            default:
                System.out.println("(Maaf. Pilih angka 1 - 4 saja ya)");
                break;
        }
        System.out.println("\033");//clear screen
    }

Nah, Method terakhir ialah method main di mana dari semua method-method sebelumnya akan dieksekusi semuanya lewat sini (Method Penting!)


    public static void main(String[] args) {
        name = JOptionPane.showInputDialog(null, "Masukkan Nama Anda : ");
        while (true) {
            gender();
            do {
                menU(inpBil());
            } while (true);
        }
    }
}

Nah Sekian dulu :D Selamat Mencoba :D Maaf kalo kurang rapi postnya :D Wassalamualaikum..

Minggu, 12 Agustus 2012

Kombinasi 3 Inputan (JAVA)


Assalamualaikum :D bertemu lagi nih :D
Ya, kali ini saya akan menjabarkan tentang coding menggunakan 3 inputan berbeda.. apa itu ?
Bingung sama judulnya ?
Maksudnya itu dalam program ini inputannya menggunakan 3 jenis inputan yaitu
Scanner, Buffered Reader, dan JOptionPane :D

Oke ini hasil programnya :D
 --> Pertama Menggunakan Scanner



--> Setelah itu Menggunakan Buffered Reader


 


 --> Kemudian Menggunakan JOptionPane



Dan Outputnya ... jreng jreenggg...



yapp.. bagaimana codingnya ? cekidot :D

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import javax.swing.JOptionPane;

public class Kombinasi3Inputan {

    public static void main(String[] args) {

//Scanner       
        Scanner input = new Scanner(System.in);
        System.out.println("Masukkan Nilai 1 : ");
        int fn;
        fn = input.nextInt();
       
//BufferedReader
        BufferedReader dataIn = new
            BufferedReader(new InputStreamReader(System.in));
        System.out.println("Masukkan Nilai 2 :");
        int sn = 0;
        try {
            String tsn = Integer.toBinaryString(sn);
            tsn = dataIn.readLine();
            sn = Integer.parseInt(tsn);
        } catch (IOException e) {
            System.out.println("Error!");
        }

//JOptionPane
        String ttn = JOptionPane.showInputDialog("Masukkan Nilai 3 :");
        int tn = 0;
        tn = Integer.parseInt(ttn);
       
//Operasi Aritmatika       
        int hasmen = fn * sn;
        int hastot = hasmen / tn;
       
//Output       
        JOptionPane.showMessageDialog(null, "The Answer of "
                + "( " + fn + " * " + sn + " )" + " / " + tn + " is " + "==> "
                + hastot, "jawaban", JOptionPane.PLAIN_MESSAGE);
    }
}


*NOTE
Pada bagian ini :
public class Kombinasi3Inputan {
code "Kombinasi3Inputan" diganti nama file masing masing..

Bila tidak keluar window JOptionPane nya ---->
Tekan tombol
ALT + TAB






Yah, Sekian penjabarannya :D terimakasih sudah menyimak.. Wassalamualaikum :)

Jumat, 03 Agustus 2012

Konsep-Konsep dalam OOP


- Abstraction
Adalah suatu cara untuk melihat suatu object dalam bentuk yang lebih sederhana. Sebagai contoh kita tidak melihat sebuah mobil sebagai ribuan komponen elektronik, sistem mekanik dengan empat buah ban, jok, stir kemudi dan sebagainya. Dengan Abstraction, suatu sistem yang kompleks dapat dipandang sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas berbagai subsistem, seperti subsistem kemudi, subsistem pengereman dan sebagainya.

Abstraksi merupakan kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

- Encapsulation

Merupakan suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem dan sekaligus menyederhanakan penggunaan sistem tersebut.
Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak. Hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

- Inheritance
Merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya. Dengan konsep ini class yang dibuat cukup mendefinisikan attribute dan method yang spesifik didalamnya, sedangkan attribute dan method yang lebih umum akan didapatkan dari class yang menjadi induknya.
Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada.Objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

- Polymorphism

Merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu object agar melakukan suatu tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda.
Model data berorientasi objek disebut dapat memberi fleksibilitas yang lebih, kemudahan mengubah program dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya selain itu pendekatan OOP lebih mudah dikembangkan dan dirawat. Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan, dengan metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.

Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

- Class
Merupakan model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki attribute berat, tinggi, usia kemudian memiliki method makan, minum, tidur. Method dalam sebuah class dapat merubah attribute yang dimiliki oleh class tersebut. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

Definisi dan Gambaran Umum Class


Class didefinisikan sebagai sebuah blueprint(denah), atau prototipe, yang mendefiniskan variabel-variabel dan metode-metode yang umum untuk semua objek dari n jenis tertentu (n maksudnya jumlah tertentu). Sebuah kelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan tipe data titik yang terdiri dari koordinat x dan y. Bahasa Java telah menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa pemrograman Java merupakan bahasa pemrograman berorientasi objek murni sehingga tidak mengenal struktur, melainkan mengenal apa yang disebut dengan kelas.

Perbedaan sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat berdiri sendiri dan dapat digunakan untuk berbagai keperluan kelas-kelas yang lain, sedangkan sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode program utama, sedangkan jika digunakan struktur maka kode program harus dibongkar unuk disalin bagian strukturnya ke kode program utama yang lain.

Sebuah file dapat terdiri dari berbagai kelas, namun biasanya pada bahasa pemrograman Java sebuah file hanya terdiri dari satu kelas yang disimpan dengan nama kelas, misal file List.java berisi kelas List. Namun jika kelas yang dibuat misalnya public class nama_kelas, maka kelas itu harus disimpan dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi maka pada Java akan ada sebuah file .class yang berisi bytecode dari setiap kelas.

Jika sebuah file terdiri dari dua kelas, maka setelah dilakukan kompilasi akan dihasilkan dua buah file .class yang nantinya akan dibaca oleh interpreter Java saat program dieksekusi. Sebuah kelas saat program dieksekusi dan perintah new dijalankan, maka akan dibuat sebuah objek. Class adalah template untuk pembuatan objek. Class juga memiliki anggota, diantaranya : atribut dan method.
Pemahaman singkatnya :
• Class merupakan pola / template yang menggambarkan kumpulan object yang mempunyai sifat dan perilaku yang sama.
• Class merupakan struktur data dari object (blueprint dari sebuah object), dan proses pembuatan object dari sebuah class disebut juga dengan instantiation.
• Class merupakan definisi data dan fungsi dari suatu hal (benda, konsep, dll).
• Di dalam class dideklarasikan variabel dan method yang dimiliki oleh obyek

Karakteristik Class

Class memiliki beberapa karakteristik, diantaranya : anggota class terdiri dari atribut dan method. Tiap-tiap anggota class memiliki control pengaksesan tersendiri, maksudnya adalah apakah anggota class tersebut dapat diakses dengan bebas (dengan tipe public) atau hanya dapat diakses melalui sebuah interface.
Dalam hal ini, interface adalah device yang digunakan untuk komunikasi antar object berbeda yang tidak memiliki hubungan apapun. Interface bisa dikatakan sebagai protokol komunikasi antar object tersebut.

Apa Manfaat OOP ?

Apa manfaat berorientasi Obyek?

Memang kelihatannya konsep ini sangat rumit, tetapi ada beberapa alasan mengapa pendekatan objek sangat kuat diantaranya:
  1. Konsep ini menyederhanakan kompleksitas dengan memungkinkan kita untuk mendefinisikan sebuah sistem besar dan kompleks menggunakan set yang lebih kecil dari objek yang saling terkait.
  2. Dengan merancang aplikasi menggunakan objek, berarti kita telah menerapkan permodelan yang mendekati kehidupan nyata. Hal ini memungkinkan desain program kita menjadi lebih alamiah , yang memungkinkan kita untuk bekerja lebih intuitif.
  3. Konsep ini memberi kita sebuah kosa kata/ vocabulary, sehingga kita dapat lebih efektif mendiskusikan sistem atau aplikasi dengan rekan kerja kita (jauh lebih mudah untuk membahas fungsi dalam hal metode obyek daripada salah satu dari ratusan fungsi yang berada dalam modul kode umum).
  4. Class memiliki sifat mereka sendiri (properti), metode, dan event terintegrasi atau dikenal dengan istilah di-encapsulation, sehingga mereka umumnya mandiri. Ini membuat kode kita lebih teratur dan lebih mudah untuk di-maintain.
  5. Adanya enkapsulasi berarti, penggunaan kembali kode menjadi mudah, karena kita cukup menyalin kelas template dan perubahan akan secara otomatis tercermin dalam setiap kelas yang mewarisi dari kelas dasar yang telah kita ubah. Hal ini bermanfaat ketika berbagi/ sharing kode dengan orang lain, atau ketika menggunakan kembali kode dari proyek-proyek lama, sehingga berimplikasi pada penghematan biaya dan waktu.

Apa itu OOP ?

         OOP atau kepanjangan dari Object Oriented Programming adalah sebuah cara pandang( paradigma ) dalam memecahkan masalah di dunia nyata dianalogikan kedalam bentuk object dan struktur data yang didalamnya terdapat kumpulan item data disebut variable dan method/fungsi yang saling berinteraksi dalam sebuah struktur program. OOP  juga merupakan paradigma pemrograman yang popular saat ini yang telah menggantikan teknik pemrograman berbasis prosedur. 
        OOP ini dikembangkan pada permulaan tahun 1970. Pemrograman Berorientasi Objek (Object Oriented Programming/OOP) merupakan pemrograman yang berorientasikan kepada objek, dimana semua data dan fungsi dibungkus dalam class-class atau object-object. Setiap object dapat menerima pesan, memproses data, mengirim, menyimpan dan memanipulasi data. Beberapa object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri dan dapat dihubungkan dengan Object yang lain. 
      Jadi, secara mudah OOP dapat disimpulkan sebagai suatu teknik atau metode untuk menangani kompleksitas pembuatan program. Jika mengikuti aturan-aturan dalam metode tersebut maka program yang dibuat akan lebih mudah dikembangkan. 
Mengapa harus Object?
      Objek dapat digambarkan pada dunia nyata sebagai sebuah entitas/ entity, contohnya adalah hewan, meja, kursi, kendaraan atau sesuatu yang lebih abstrak seperti angin. Pemrograman berorientasi objek merupakan paradigma pemrograman yang menekankan pada objek, dimana pemrograman menjadi bersifat modular. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Bandingkan dengan logika pemrograman terstruktur, hal tersebut di atas relatif mustahil untuk dilakukan.

     Model data berorientasi objek dapat memberi fleksibilitas yang lebih diantaranya kemudahan mengubah program dan dapat digunakan secara luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya.

 
        Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah (cmt: problem solving) kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag. administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag.administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri. 

source : http://traigani.wordpress.com

Apa Itu JDK, JVM dan JRE ?

Nahh, dalam mempelajari bahasa pemrograman Java, kalian juga harus mengetahui apa itu JDK (Java Development Kit), JVM (Java Virtual Machine), dan JRE (Java Runtime Environtment), kenapa kalian harus mengerti ketiganya, karena inilah yang mebuat Java dapat dijalankan dalam dan dikompilasi dalam platform atau device kalian.. berikut adalah penjelasan ketiganya..

  1. Java Development Kit (JDK)

    Yeaha, ini bagian terpenting, karena inilah yang merupakan kompiler dari JAVA sendiri, dimana source code (kode sumber) dari Java akan dikompilasi menjadi Byte Code, yaitu bit code (biner) yang dapat dimengerti oleh mesin. JDK juga akan membentuk sebuah Objek Code dari Source Code. Jika kalian ingin menkompile / build program JAVA kalian harus menginstall JDK terlebih dahulu, sampai postingan ini ditulis, JDK telah mencapai versi 1.7, dimana versi 1.1 sampai 1.7 dianggap sebagai JAVA2.
  2. Java Virtual Machine (JVM)

    Nahh setelah JDK mengkompile Source Code menjadi byte code, sekarang adalah bagian JVM untuk menerjemahkannya kedalam bahasa yang dimengerti perangkat, karena tiap perangkat, prosessor dan mesin yang berbeda akan memerlukan bahasa yang berbeda yang disesuaikan dengan lingkungannya, sedangkan JDK sendiri hanya akan membuat objek code yang sama, dimanapun itu, tugas JVM menerjemahkannya, inilah kenapa JAVA dapat dijalankan di segala Platform.
  3. Java Runtime Environment (JRE)

    Setelah dipahami bahwa JDK dan JVM berfungsi untuk mengkompile, membuild dan menerjemahkan ke bahasa mesin yang dibutuhkan, sekarang tugasnya JRE untuk meeksekusi Objek Kode tersebut, yup, tugasnya hanya mengeksekusi / menjalankannya, karena gak semua butuh JDK, contoh ketika kalian beli Android, terus ada aplikasi JAVA didalamnya, kalian kan gak dikasih Source Codenya, terus disuruh kompile sendiri, haha, jadi JRE bisa diinstall tanpa JDK, karena bersifat modular / terpisah, orang awam biasanya hanya butuh JRE, tapi beberapa orang seperti programmer / developer atau begitulah, pasti butuh JDKnya juga kan..

    Ya, itu sekilas tentang JDK, JVM dan JRE semoga bermanfaat :D

    source : amri166.blogdetik.com

Sabtu, 21 Juli 2012

Kelebihan Bahasa JAVA


       Dibanding bahasa pemrograman lain, Java mempunyai beberapa kelebihan yang membuatnya dipakai luas di seluruh dunia terutama aplikasi enterprise. Java bahkan diprediksi menjadi bahasa masa depan. Java telah banyak di ajarkan secara luas oleh perusahaan dan lembaga berskala internasional, seperti IBM dan NASA.

Beberapa keunggulan Java, antara lain:

1)  Relatif Mudah Dipelajari
          Java merupakan bahasa pemrograman berorientasi objek (Object Orientid Programming) yang mudah dipelajari, terutama bagi yang sudah familiar dengan bahasa C, C++, atau C#. Java meningkatkan pemrograman objek pada C++ dengan menghilangkan pointer pada tipe data biasa dan multiple inheritance. Java juga menggunakan pengalokasian memori secara otomatis termasuk menerapkan gerbage collection.

Jumat, 20 Juli 2012

Sejarah JAVA

              Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Java adalah suatu teknologi di dunia software komputer. Selain merupakan suatu bahasa pemrograman, Java juga merupakan suatu platform. Java merupakan teknologi di mana teknologi tersebut mencakup Java sebagai bahasa pemrograman yang memiliki sintaks dan aturan pemrograman tersendiri, juga mencakup Java sebagai platform yaitu di mana teknologi ini memiliki virtual machine dan library yang diperlukan untuk menulis dan menjalankan program yang ditulis dengan bahasa pemrograman java. 

SEJARAH PERKEMBANGAN JAVA

            Bahasa pemrograman Java terlahir dari The Green Project (memiliki kode Green dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan di peralatan sederhana dan tidak terikat pada arsitektur tertentu), yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park.