Jumat, 31 Agustus 2012

Kalkulator Sederhana (Soal Bonus^^)

Input
Operand1 operator1 operand2 operator2 … ….operandN  operatorN
Output
Hasil operasi

Contoh :
5 + 3 – 2 + 2

Output
8







Soal Bonus

Penilaian (Poin 110)
1.     Penamaan variable ,operator, komentar untuk penjelasan program. ( Poin 10)
2.     Program dibuat lebih dari satu file class dan satu method (satu method harus berjenis fungsi – memiliki nilai kembalian) ( Poin 25)
3.     Penggunaan Class Library untuk Input dari Keyboard( Poin 30)
4.     Pengunaan Struktur Kontrol  (Conditional dan Looping). ( Poin 20)
5.     Program sesuai dengan Algortima yang diberikan ( Poin 25)

1.   Class “thrbonus.java”
package THR_Bonus;

import java.util.Scanner;
/**
 *
 * @author Rizky
 */
public class thrbonus {
    public static void main(String[] args) {
        Scanner read = new Scanner(System.in);//membuat objek scanner dengan nama objek read
       
        System.out.println("Masukan 3 bilangan dan 2 operator (Gunakan spasi untuk pemisah bilangan dana operator):");
        double bilangan1 = read.nextDouble();
        String operator1 = read.next();
        double bilangan2 = read.nextDouble();
        String operator2 = read.next();
        double bilangan3 = read.nextDouble();
        /*deklasrasi variabel bilangan1,bilangan2,bilangan3, operator1 dan
         * operator2. Variabel bilangan1 dan bilanan2 bertipe data double agar
         * apabila ada hasil koma akan muncul hasilnya. operator aritmatika
         */
        
        boolean test = testTingkat(operator1,operator2); //instansiasi fungsi
       
        //deklarasi variabel hitungAwal dan hitungAkhir
        double hitungAwal = 0;
        double hitungAkhir = 0;
       
        // setara 2 * 3 + 5
        // tidak setara 2 + 5 * 3
        if(test){
            hitungAwal = hitung(new double[] {bilangan1,bilangan2}, operator1);
            hitungAkhir = hitung(new double[] {hitungAwal, bilangan3}, operator2);
            //pemanggilan proses hitung apabila setara/true
        }else{
        hitungAwal = hitung(new double []{bilangan2,bilangan3}, operator2);
        hitungAkhir = hitung(new double [] {bilangan1, hitungAwal}, operator1);
        //pemanggilan proses hitung apabila tidak setara/false
        }
        System.out.println(hitungAkhir); //mencetak hasil akhir yang ada di dalam variabel hitungAkhir
    }
   
    //proses penghitungan
    private static double hitung(double[] bil, String op) {
        double result = 0;//deklarasi variabel result
        if (op.equals("+")) {
            result = bil[0] + bil[1];//penyeleksian untuk operator +
        } else if (op.equals("-")) {
            result = bil[0] - bil[1];//penyeleksian untuk operator -
        } else if (op.equals("*")) {
            result = bil[0] * bil[1];//penyeleksian untuk operator *
        } else if (op.equals("/")) {
            result = bil[0] / bil[1];//penyeleksian untuk operator /
        }
        return result;//menggembalikan  nilai variabel result
    }

    // false tidak setingkat
    // true setingkat
    // menyusun tingkatkan operator
    private static boolean testTingkat(String op1, String op2){
        boolean expression = false;
        /*deklarasi variabel expression, untuk menandakan apakah operator1 lebih tinggi tingkatannya daripada operator2 atau sebaliknya
         * operator * dan operator / tingkatannya lebih tinggi daripada
         * operator + dan operator -
         * operator * dan operator / = setara
         * operator + dan operator - = setara
         * apabila operator 1 dan operator 2 sama maka setara
         */
        if(op1.equals("+") && op2.equals("*")){
            expression = false;// + lebih rendah dari *
        }else if(op1.equals("+") && op2.equals("/")){
            expression = false;// + lebih rendah dari /
        }else if(op1.equals("+") && op2.equals("+")){
            expression = true;// setara
        }else if (op1.equals("+") && op2.equals("-")) {
            expression = true;// setara
        }else if(op1.equals("-") && op2.equals("*")){
            expression = false;// - lebih rendah dari *
        }else if(op1.equals("-") && op2.equals("/")){
            expression = false;// - lebih rendah dari /
        }else if(op1.equals("-") && op2.equals("+")){
            expression = true;// setara
        }else if(op1.equals("-") && op2.equals("-")){
            expression = true;// setara
        }else if(op1.equals("*") && op2.equals("*")){
            expression = true;// setara
        }else if(op1.equals("*") && op2.equals("/")){
            expression = true;// setara
        }else if(op1.equals("*") && op2.equals("+")){
            expression = true;// * lebih tinggi dari +
        }else if(op1.equals("*") && op2.equals("-")){
            expression = true;// * lebih tinggi dari -
        }else if(op1.equals("/") && op2.equals("*")){
            expression = true;// setara
        }else if(op1.equals("/") && op2.equals("/")){
            expression = true;// setara
        }else if (op1.equals("/") && op2.equals("+")) {
            expression = true;// / lebih tinggi dari +
        }else if(op1.equals("/") && op2.equals("-")){
            expression = true;// / lebih rendah dari -
        }else{
            System.out.println("Error!");
        }
        return expression;//meminta nilai kembalian variabel expression
    }
}

Ini Print Screen hasil ouput’nya^^v




Ini link buat download :)









Program Menentukan Jumlah Bilangan Bulat dan Bilangan Pecahan

Assalamualaikum Wr. Wb
Dengan di berikan'nya "Tugas Hari Raya" ini, saya membuat program yang soal'nya sudah di tentukan oleh Bapa/Ibu guru pembimbing saya, yaitu membuat program “Menentukan Jumlah Bilangan Bulat Dan Pecahan”. 

·         Soal NIS Genap

Input
Jumlah bilangan yang akan dimasukan : N
Bilangan ke 1 :
Bilangan ke 2 :
…………………
………………...
Bilangan ke N :

Output
Jumlah Bilangan Bulat  :
Jumlah Bilangan Pecahan :

Contoh :
Jumlah bilangan yang akan dimasukan : 5
Bilangan ke 1 : 5
Bilangan ke 2 : 7.3
Bilangan ke 3 : 9.45
Bilangan ke 4 : 4.22
Bilangan ke 5 : 2

Output
Jumlah Bilangan Bulat   : 2
Jumlah Bilangan Pecahan  :  3

  *algoritma program


1.  Class ke-1 “thrgenap.java”
package THR_Genap;

/**
 *
 * @author Rizky
 */
import java.io.*;   //mengambil library pada java.io
import java.util.*; //mengambil libaray pada java.util
public class thrgenap {
    /** Deklarasi Variabel */
    public double bil,blt = 0,pchn = 0;
    public int jml_bil;
    /** Proses penginputan data */
    public int prosesInput(){ //method aksesor
        Scanner baca = new Scanner(System.in); //membuat objek scanner dengan nama objek baca
       
        //batasan pengulangan
       
        System.out.print("Jumlah bilangan yang akan dimasukan :");
        jml_bil = baca.nextInt(); //meminta inputan dari user
       
        //data yang di input
       
        return jml_bil; //memanggil nilai kembali dari jumlah bil
    }
    public void prosesSeleksi(){
        for(int i=1; i<=jml_bil; i++){
            try{
                Scanner baca = new Scanner(System.in); //membuat objek scanner dengan nama objek baca
                BufferedReader dataIn = new  BufferedReader(new InputStreamReader(System.in));
                System.out.print("Bilangan ke  "+i+": ");
                bil= Double.parseDouble(dataIn.readLine());
            }
            catch(IOException e){
                System.out.println("ERROR ! ! !"); //jika user mamasukan huruf atau selain angka akan tampil alimat ERROR
            }
            if(bil %1 == 0){
                blt++; //variabel bulat bertambah satu
            }
            else{
                pchn++;//varuabel pecahan bertambah satu
            }
        }
        System.out.println("\n\tOutput");
        System.out.println("Jumlah bilangan bulat   :"+blt);
        System.out.println("Jumlah bilangan pecahan :"+pchn);
    }
}
2.  Class ke-2 “thrgenap_test.java”
package THR_Genap;

/**
 *
 * @author Rizky
 */
public class thrgenap_test {
    public static void main(String[] args) {
        thrgenap tampil = new thrgenap(); //tahap instansiasi
       
        tampil.prosesInput(); //pemanggilan proses input
        tampil.prosesSeleksi(); //pemanggilan proses seleksi
    }
}

Ini Print Screen hasil output'nya ^^v



Alhamdullilah, “Tugas Hari Raya” ini telah selesai dan di tujukan untuk memenuhi nilai produktif juga . Kalo ada yang kurang, minta saran yah ^^v


Ini link buat download :)

Kamis, 30 Agustus 2012

JAVA Byte Code


Lingkungan pemrograman pada java menggunakan compiler sekaligus Interpreter agar dapat berjalan pada platform yang berbeda. Java compiler melakukan kompilasi pada source code menjadi java bytecodes. Java bytecodes merupakan instruksi mesin yang tidak spesifik terhadap processor pada sistem computer. Bytecode dapat dijalankan menggunakan Java Virtual Machine (JVM) yang disebut juga bytecodes interpreter atau Java runtime interpreter.



Source code pada java diakhiri dengan ekstensi .java (Contoh HelloWorld.java). pada saat dikompilasi file java akan menjadi berakhiran .class (Contoh HelloWorld.class). Untuk mengkompilasi program java dipergunakan javac.exe dari JDK dan untuk menjalankan aplikasi java stand-alone dipergunakan java.exe

Kelebihan dan Kekurangan JAVA


Kekurangan  pada Java :
  • J2ME : membuat aplikasi J2ME adalah sebuah proses yang sangat susah, kita harus develop aplikasi sendiri, dengan API sendiri untuk setiap handset, secara dukungan handset atas J2ME tidak ada yang sama.
  • SWING : Sangat lambat, API nya membingungkan, dan  tampilanya sangat berbeda dengan environment yang ada. Coba aja, bikin aplikasi di Swing untuk membuat tray icon di windows.

  • XML : kalau anda membuat aplikasi J2EE,anda harus selalu ngedit file bla2.xml, ini menambah waktu pengerjaan.
  • Mudah didekompilasi : Dekompilasi yaitu sebuah  proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan direverse-engineer dengan kata lain yaitu dibajak.
  • Menggunakan memori yang cukup banyak : Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal.
Kelebihan pada Java :
  • Pemulaan yang mudah dan cepat : Java merupakan bahasa pemrograman berorientasi objek, mudah dipelajari, terutama untuk programmer yang sudah menguasai C atau C++
  • Lebih sedikit menggunakan program: Jumlah kelas, jumlah metode, dll, menunjukkan bahwa program yang ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat lebih kecil dari program sama yang ditulis dalam bahasa C++
  • Dapat membuat program lebih baik: Bahasa pemrograman Java menganjurkan praktek membuat program yang baik, dan automatic garbage collection membantu Anda untuk menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas, memungkinkan Anda menggunakan kode yang ada.
  • Membuat program dengan lebih cepat: Bahasa pemrograman Java lebih mudah dari C++, pemrograman akan menjadi 2 kali lipat lebih cepat, dengan jumlah baris yang jauh lebih sedikit.
  • Menghindari kebergantungan pada platform tertentu: Anda dapat menjalankan program Anda pada banyak platform dengan TIDAK menggunakan library yang ditulis spesifik untuk platform tertentu.
  • Tulis sekali, bisa jalankan di mana saja: Karena aplikasi yang ditulis dalam bahasa Java dikompilasi ke dalam kode byte yang bebas platform, aplikasi yang ditulis dapat jalan secara konsisten pada platform apa saja.
  • Distribusikan software Anda dengan mudah: Dengan Java Web Start, pengguna program Anda akan dapat menggunakan aplikasi Anda dengan mudah. Sistem pengecekan versi otomatis pada saat program dimulai menjamin pengguna Anda selalu menjalankan versi terkini. Apabila versi baru tersedia, Java Web Start akan melakukan instalasi secara otomatis.

Fitur - fitur JAVA yang menarik


  • Applet
    Program Java yang dapat berjalan di atas browser, yang dapat membuat halaman HTML lebih interaktif.
  • Java Networking
    Sekumpulan API yang menyediakan fungsi untuk aplikasi-aplikasi jaringan, seperti penyediaan akses untuk TCP, UDP, IP Address dan URL. Tetapi Java Networking tidak menyediakan akses untuk ICMP dikarenakan alas an sekuriti dan pada kondisi umum hanya administrator (root) yang bisa memanfaatkan Protokol ICMP.
  • Java Database Connectivity(JDBC)
    Menyediakan sekumpulan API yang dapat digunakan untuk mengakses database seperti Oracle,MySQL,PostgreSQL,Microsoft SQL Server.
  • Java Security
    Java Security menyediakan sekumpulan API untuk mengatur security dari aplikasi Java baik secara High Level datau Low Level, seperti public/private key menegement dan certificates.
  • Java Swing
    Menyediakan sekumpulan API untuk membangun aplikasi-aplikasi GUI dan model GUI yang diinginkan bisa bermacam-macam.
  • Java RMI
    Java RMI menyediakan sekumpulan API untuk membangun aplikasi-aplikasi Java yang mirip dengan model RPC (remote Procedure Call), jadi objek-objek Java bisa di call secara remote di Jaringan Komputer.
  • Java 2D/3D
    Merupakan sekumpulan API untuk membangun grafik-grafik 2D/3D yang menarik dan juga akses keprinter.
  • Java Server Pages (JSP)
    Berkembang dari Java Servlet yang digunakan untuk menggantikan aplikasi-aplikasi CGI. JSP yang mirip ASP dan PHP merupakan alternatif terbaik untuk solusi aplikasi internet.
  • JNI (Java Native Interface)
    Merupakan sekumpulan API yang digunakan untuk mengakses fungsi-fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman yang lain seperti C, C++, dan Basic.
  • Java Sound
    Menyediakan kumpulan API untuk manipulasi Sound.
  • Java IDL + CORBA
    Menyediakan dukungan Java untuk implementasi CORBA (Common Object Request Broker) yang merupakan model distributed-Object untuk solusi aplikasi besar di dunia Networking.
  • Java Card
    Java Card utamanya dipakai untuk aplikasi-aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card pada Handphone.
  • JTAPI (Java Telephony API)
    Sekumpulan API untuk memanfaatkan devices-devices telephony, sehingga cocok untuk aplikasi-aplikasi CTI (Computer Telephony Integration) yang dibutuhkan seperti ACD (Automatic Call Distribution) PCPBX dan lainnya.