Jumat, 31 Agustus 2012

Program Kalkulator Sederhana


Program Kalkulator Sederhana

SOAL BONUS

Buatlah sebuah program dengan menggunakan bahasa java dengan  algoritma dan ketentuan berikut ini ,

Program Kalkulator Sederhana
Tools yang digunakan : Teks Editor (Notepad, Wordpad, Notepad++, Komodo, etc)


Tools yang saya gunakan kali ini sama dengan sebelumnya, yaitu NetBeans IDE 7.0.1
Ada beberapa tahap untuk menyelesaikan program tersebut, yaitu:
1.  Jangan lupa berdo’a sebelum mulai membuat program :D
2.  Buka program NetBeans IDE 7.0.1
3.  Masih pada project yang sama dengan sebelumnya, lalu buat pakage dan beri nama pakage tersebut. Contohnya: soalBonus.
4.  Dalam pembuatan program  ini saya hanya membuat 1 class. Dengan nama class kalkulatorSedrhana.class

Berikut adalah coding yang saya buat pada 2 class tersebut.

kalkulatorSedrhana.java

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package soalBonus;

    /**
     *
     * @author HP
     */
    import java.util.Scanner;
    public class kalkulatorSederhana {
            public static void main(String[] args) {

                Scanner baca = new Scanner(System.in);  // membuat Scanner objek / Instansiasi untuk menginput dari keyboard
                System.out.println("Masukan 3 buah bilangan dilengkapi dengan 2 operator aritmatika (Beri spasi setiap karakter).");
                /** Deklarasi variable */
                double bilangan1 = baca.nextDouble();  
                String operator1 = baca.next();
                double bilangan2 = baca.nextDouble();
                String operator2 = baca.next();
                double bilangan3 = baca.nextDouble();
                // variable bilangan1,bilangan2,bilangan3 bertipe double agar bila ada hasil desimal, hasilnya bisa ditampilkan
                // variable operator1, operator2 bertipe String karena isinya berupa operator aritmatika

                boolean test = testTingkat(operator1, operator2);

                double hitungAwal = 0; // deklarasi variable hitungAwal
                double hitungAkhir = 0; // deklarasi variable hitungAkhir

                // a. setara = 3 * 4 + 5
                // b. tidak setara = 3 + 4 * 5
                if(test){
                    // pemanggilan proses hitung apabila setara/true
                    // proses hitung bila seperti contoh a. Pada contoh ini merupakan proses hitung yang setara
                    hitungAwal = hitung(new double[]{bilangan1,bilangan2},operator1);
                    hitungAkhir = hitung(new double[]{hitungAwal,bilangan3},operator2);
                }
                else{
                    // pemanggilan proses hitung apabila tidak setara/false
                    // proses hitung bila seperti contoh b. Pada contoh ini merupakan proses hitung yang tidak setara
                    hitungAwal = hitung(new double[]{bilangan2,bilangan3},operator2);
                    hitungAkhir = hitung(new double[]{bilangan1,hitungAwal},operator1);
                } 
                System.out.println(hitungAkhir);    //menampilkan hasil akhir yang ada di dalam variabel hitungAkhir
             }
            // proses hitung aritmatika
            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;//meminta nilai kembali variabel result
        }
        // false tidak setingkat
        // true setingkat

        // proses 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
             * operator yang lebih tinggi didahulukan diproses.
             */
            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;//menggembalikan  nilai variabel expression
        }       
    }
Tahap selanjutnya running program pada kalkulatorSederhana.java, dan berikut merupakan hasilnya:




Tahap terakhir pada persoalan ini adalah megucap syukur atas selesainya tugas tersebut.
Meskipun hasilnya belum sempurna.

- A L H A M D U L I L L A H -

Keritik dan sarannya ditunggu ya.. semoga bisa bermanfaat..
Terimakasih. J

Untuk download file java bisa KLIK ---->  Download file.java
Untuk download file class bisa KLIK ----> Download file.class

Program Menentukan Jumlah Bilangan Positif dan Negatif


Program Menentukan Jumlah Bilangan Positif dan Negatif

Ini adalah tugas yang saya dapatkan dari guru pembimbing saya di sekolah. Tugas ini merupakan Tugas Hari Raya untuk NIS Ganjil. Soal Ganjil tersebut bisa kita lihat seperti berikut:

SOAL NIS GANJIL
Buatlah sebuah program dengan menggunakan bahasa java dengan  algoritma dan ketentuan berikut ini ,
Program Menentukan Jumlah Bilangan Positif dan Negatif
Tools yang digunakan : Teks Editor (Notepad, Wordpad, Notepad++, Komodo, etc)

Tools yang saya gunakan oleh saya kali ini adalah NetBeans IDE 7.0.1

Ada beberapa tahap untuk menyelesaikan program tersebut, yaitu:
1.  Jangan lupa berdo’a sebelum mengerjakan tugas ini :D
2. Buka program NetBeans IDE 7.0.1 dan buat project baru, contohnya: THR_Alfi Waizh Al Qorni_XIIRPL3.
3. Lalu buat pakage dan beri nama pakage tersebut. Contohnya: soalGanjil.
4. Dalam pembuatan program  ini saya membuat 2 buah class. Dimana yang satu adalah main class dan satunya lagi library class. Dengan nama masing-masing: positifNegatif_MainClass dan positifNegarif_lib.
Berikut adalah coding yang saya buat pada 2 class tersebut.


positifNegatif_lib.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package soalGanjil;

/**
 *
 * @author HP
 */

import java.util.Scanner; //kode ini digunakan untuk meload library Scanner. Fungsinya menerima input dari user(input dari keyboard)
public class positifNegatif_lib { //mendeklarasikan class bernama positifNegatif_lib
   
    int jumlah_bil = 0; // mendeklarasikan variable jumlah_bil dengan nilai awal nol, kedalam tipe integer
    int input; // deklarasi variable input kedalam tipe integer
    int bilPositif = 0, bilNegatif = 0; // deklarasi variable bilPositif dan bilNegatif dengan nilai awal nol, kedalam tipe integer
 
    public int input(){ // method aksesor / fungsi
        Scanner bacaData = new Scanner(System.in);  // membuat objek scanner "bacaData"
        System.out.print("Jumlah bilangan yang akan dimasukan: ");
        jumlah_bil = bacaData.nextInt();    // meminta inputan dari keyboard
       
        return jumlah_bil;  // nilai kembali dari jumlah_bil
    }
    public void prosesPenentuanBilangan(){  // prosedur prosesPenentuanBilangan
        for(int i=1; i<= jumlah_bil; i++){  // looping untuk bilangan ke- n sesuai dengan jumlah_bil yang ditentukan user
            Scanner bacaData = new Scanner(System.in);  // membuat objek scanner
            System.out.print("Bilangan ke "+i+": ");
            input = bacaData.nextInt(); // meminta inputan dari keyboard
                if(input>0){    // jika bilangan yang diinputkan lebih dari 0
                    bilPositif++;  // maka nilai positif akan bertambah 1.
                }
                else if(input<0){   // jika tidak atau sebaliknya, input kurang dari 0
                    bilNegatif++;      // maka nilai negatif akan bertambah 1.
                }
        }
        /** proses pencetakan hasil akhir */
        System.out.println("\n\tO U T P U T");
        System.out.println("Jumlah bilangan positif: "+bilPositif); // mencetak jumlah bilangan positif dari bilangan-bilangan yang diinputkan user.
        System.out.println("Jumlah bilangan negatif: "+bilNegatif); // mencetak jumlah bilangan negatif dari bilangan-bilangan yang diinputkan user.
    }
}


positifNegatif_MainClass.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package soalGanjil;

/**
 *
 * @author HP
 */
public class positifNegatif_MainClass {
    public static void main(String[] args) {
        positifNegatif_lib tampil = new positifNegatif_lib();   // tahap instansiasi class positifNegatif_lib menjadi objek tampil.
        tampil.input();     // pemanggilan fungsi input.
        tampil.prosesPenentuanBilangan();   // pemanggilan prosedur prosesPenentuanBilangan.
    }
}


Tahap selanjutnya running program pada positifNegatif_MainClass.java, dan berikut merupakan hasilnya:


Tahap terakhir pada persoalan ini adalah megucap syukur atas selesainya tugas tersebut.

- A L H A M D U L I L L A H -

Tugas ini ditujukan untuk tugas mata pelajaran produktif.
Keritik dan sarannya ditunggu ya.. semoga bisa bermanfaat..
Terimakasih. J


Untuk download file java bisa KLIK ----> Download file.java
Untuk download file class bisa KLIK ----> Download file.class

Kamis, 30 Agustus 2012

Apa itu NetBeans?




NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra (dan terus bertambah!). Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama.
Saat ini terdapat dua produk : NetBeans IDE dan NetBeans Platform.

The NetBeans IDE (Integrated Development Environment) adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan.

Tersedia juga NetBeans Platform; sebuah fondasi yang modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi desktop yang besar. Mitra ISV menyediakan plug-in bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan dapat juga digunakan untuk membuat kakas dan solusi sendiri.

Kedua produk adalah kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common Development and Distribution License (CDDL).


Sumber : http://netbeans.org

Sejarah JAVA




Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena manufakturmanufaktur berbeda memilih processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.

Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portabel yang menghasilkan intermediate code untuk mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini kemudian dapat digunakan di sembarang mesin yang memiliki interpreter. Proyek Green menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin.

Karena orang–orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural. Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.

Selasa, 28 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 & KEKURANGAN JAVA





KELEBIHAN :
·   Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
·  OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
·  Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapanlibrary/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
·   Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
·   Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). 

KEKURANGAN: 
·   Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
·    Mudah didekompilasi. Dekompilasi adalah 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 mudah dibajak/direverse-engineer.
·   Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Senin, 27 Agustus 2012

Pendahuluan Mengenai JAVA



JAVA adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platformsistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.