Follow Now......!

Tuesday, August 28, 2012

Menentukan Jumlah Bilangan Bulat dan Pecahan di Java

SEDIKIT KATA GA PENTING DARI YANG PUNYA LAPAK ..
Oke mulai kembali dengan postingan kedua saya, mungkin kalo dilihat dari blog ini postingan saya to the point mulu ga muluk-muluk hehehe, baru kemaren perkenalan sekarang udah muncul postingan yang dikatakan ini program bukan dasar hehehe (yg punyanya males postingan tah :p).
Niat awal sih mau kenalin dulu programming language itu kya gimana, apa aja yang dipelajari, materinya apa aja, sampe teknik-teknik biar belajar programming ga boring, tpi mau gimana lagi sekarang saya lagi dikejar deadline buat posting ini tugas (klo bukan tugas ga bakalan postingan kayanya :p) mau ga mau saya harus beresin dulu ini tugas. Ga penting yah kata pengantarnya?? kenapa dibaca coba hehehe.
YAAA SEKIAN KATA GA PENTING DARI YANG PUNYA LAPAK ..

Okey waktunya untuk serius,

Ohh I'm curious yeeaahh ..
Sesuai dengan judul postingan kali ini yaitu "MENENTUKAN JUMLAH BILANGAN BULAT DAN PECAHAN DI JAVA" yang akan saya jelaskan cara kerja program beserta scriptnya.
Program ini bertujuan untuk menghitung banyak bilangan yang masuk kemudian di seleksi, apakah bilangan tersebut termasuk ke dalam bilangan bulat atau bilangan pecahan untuk lebih jelasnya ini dia algoritmanya :
Contoh :
Jumlah bilangan yang akan dimasukan : 3
Bilangan ke 1 : 2
Bilangan ke 2 : 3.14
Bilangan ke 3 : 12
Output
Jumlah Bilangan Bulat : 2
Jumlah Bilangan Pecahan : 1
Pertama saya akan memberikan script keseluruhannya, silahkan dicoba dan dipahami terlebih dahulu sebelum saya menjelaskan alur dari script-script tersebut.

Ini merupakan script dari file JmlBilBulatPecahan.java yang merupakan alur dan proses program yang nanti akan dijalankan, namun file ini tidak dapat dieksekusi :
/**
 * @date 25 Agustus 2012
 * @author ABRZLAZHR
 */

import java.util.Scanner;     //mengimport class library Scanner
public class JmlBilBulatPecahan {
    int masuk_jml, bulat, pecahan;          //Deklarasi variabel global
    double[] bil = new double[100];         //variabel bil menggunkan array sebagai penyimpanan bilangan
    
    //method prosedur
    public void input(){
        //penggunakan class library scanner
        Scanner scan = new Scanner(System.in);          //instansiasi
        
        System.out.print("Jumlah bilangan yang akan dimasukan : ");
        masuk_jml = scan.nextInt();                     //membaca data masuk_jml utk pembatasan dipengulangan
        
        //pembatasan pengulangan
        for(int i=1; i<=masuk_jml; i++){                
            System.out.print("Bilangan ke "+i+" : ");
            bil[i] = scan.nextDouble();                 //membaca bilangan, kemudian disimpan ke dalam array
        }
        //pass by reference, memberi nilai dan mengambil nilai
        ProsesOutput(bil, bulat, pecahan, masuk_jml);   
    }
    
    //method fungsi yg dpt memberi nilai kembali
    public static int ProsesOutput(double[] a, int b, int p, int in){
        for(int i=1;i<=in;i++){     //pengulangan utk pembacaan index array
            if(a[i] != 0 ){         //jika a = 0 maka aksi tidak akan dijalankan
                if(a[i]%1 != 0){    //a di moduluskan 1_
                    p = p+1;        //_jika hasilnya bersisa maka termasuk ke bil.pecahan_
                }                   //_dan nilai p akan ditmbahkan 1
                else{
                    b = b+1;        //_jika hasilnya habis maka termasuk ke bil.bulat_
                }                   ////_dan nilai p akan ditmbahkan 1
            }
        }
        System.out.println("\nOutput");
        System.out.println("Jumlah bilangan bulat   : "+b);     //menampilkan nilai b
        System.out.println("Jumlah bilangan pecahan : "+p);     //menampilkan nilai p
        return in;              //nilai in dikembalikan
    }
}
Dan ini merupakan file JmlBilBulatPecahanTest.java yang merupakan main program, dan file inilah yang akan dieksekusi :
/**
 * @date 25 Agustus 2012
 * @author ABRZLAZHR
 */
public class JmlBilBulatPecahanTest {
    public static void main(String[] args) {
        JmlBilBulatPecahan out = new JmlBilBulatPecahan();      //instansiasi
        out.input();            //pemanggilan method
    }
}
Bagaimana hasilnya?? Sudahkah dicoba?? ato masih ada yang error?? Jika masih error apanya yg error?? Error coding nya ato error otaknya?? hehehe.
Kalo yang error otaknya maka anda jangan lewatkan yang satu ini, tapi sebelumnya ini dia hasil printscreennya.


Bagaimana sesuai ?
Okey kita langsung ajah ke penjelasan script nya cekidot.

JmlBilBulatPecahan.java
public class JmlBilBulatPecahan
Ini merupakan nama class dimana INGAAT!! nama CLASS harus sama dengan nama FILE

int masuk_jml, bulat, pecahan;   
double[] bil = new double[100]; 
Ini merupakan deklarasi variabel. Kebetulan variabel yang saat ini digunakan adalah variabel global, yaitu variabel yang dapat digunakan di satu class, berbeda dengan variabel local, yang hanya dpt digunakan di satu method dan tidak dapat digunakan di method yg lain, atau untuk lebih jelasnya kita lihat saja berdasarkan nama nya local dan global, kalau local itu khusus hanya dpt digunakan di 1 tempat, tpi kalo global menyeluruh tidak hanya digunakan di 1 tempat saja.

public void input(){
Ini merupakan method prosedur, method yang tidak memiliki nilai kembali.

Scanner scan = new Scanner(System.in);
Ini merupakan cara penggunaan Class Library Scanner utk input dari keyboard. Disertai dengan menginstansiasi dengan menggunakan variabel scan.

System.out.print("Jumlah bilangan yang akan dimasukan : ");     //1
masuk_jml = scan.nextInt();          //1

for(int i=1; i<=masuk_jml; i++){                
 System.out.print("Bilangan ke "+i+" : ");
 bil[i] = scan.nextDouble();         //2
}
  1. Membaca masuk_jml, berfungsi untuk membaca nilai yang akan digunakan untuk membatasi pengulangan/looping sekaligus membatasi jumlah bilangan yang masuk.
    Dapat dilihat dari struktur kondisi pengulangan:
    i = 1 ; i <= masuk_jml ; i++
    i dimulai dari angka 1
    i <= masuk_jml (hasil dari inputan data sebelumnya) misalkan masuk_jml = 3, maka stetment akan dilakukan berulang selama 3x
    i++ , misalkan i bernilai 1 dan diulang 3x maka 1+1...(ulang ke 1) akan memiliki nilai 2+1...(ulang ke 2) akan memiliki nilai 3...(ulang ke 3) dan looping akan berhenti di 3 karena i <= 3
    Dan nantinya akan menampilkan :
    Bilangan ke 1 (nilai 1 hasil dari i=1) :
    Bilangan ke 2 (nilai 2 hasil dari 1+1) :
    Bilangan ke 3 (nilai 3 hasil dari 2+1) :
    (memang sedikit ribet jika di jelaskan dgn kata2 hehehe). 
  2. Membaca bil[i], nilai sekaligus disimpan dalam array

ProsesOutput(bil, bulat, pecahan, masuk_jml); 
Ini merupakan Pass by Reference, yaitu memberi nilai dan mengambil nilai dari suatu method ke method yang lain.

public static int ProsesOutput(double[] a, int b, int p, int in){  
Method ProsesOutput menggunakan method fungsi yang dapat membarikan nilai kembali.

if(a[i] != 0 ){       
 if(a[i]%1 != 0){   
  p = p+1;        
 }                   
 else{
  b = b+1;       
 }                   
}
Saya menyeleksi bilangan bulat dan bilangan pecahan menggunakan teknik modulus(mod tandanya %) modulus berguna untuk membagi habis nilai dari sebuah variabel, namun sebelum memasuki aksi pembagian modulus saya menyeleksi terlebih dahulu jika bilangan yang masuk nilainya 0 maka aksi modulus tidak akan dijalankan. Contoh pembagian modulus:

1 % 1 hasilnya 0
2 % 1 hasilnya 0
5 % 1 hasilnya 0

2.5 % 1 hasilnya 0.5
3.14 % 1 hasilnya 0.14
4.3 % 1 hasilnya 0.3

Sehingga didapatkan kesimpulan, jika hasil dari modulus 0 maka bilangan tersebut terkategorikan bilangan bulat tapi jika hasil dari modulus memiliki sisa maka bilanga tersbut terkategorikan bilangan pecahan.
***
Namun tidak berhenti disitu, ada 1 file utama yang bekerja untuk menjalankan alur program ini dia.

JmlBilBulatPecahanTest.java
public static void main(String[] args) {
    JmlBilBulatPecahan out = new JmlBilBulatPecahan();      //instansiasi
    out.input();                    //pemanggilan method
}
Scriptnya tidak terlalu panjang dan tidak terlalu membingungkan namun perlu di INGAT!! file inilah yang menentukan alur berjalannya program yang sudah dijelaskan diatas.

JmlBilBulatPecahan out = new JmlBilBulatPecahan();
Seperti biasa instansiasi diperlukan, JmlBilBulatPecahan merupakan nama Class dari file JmlBilBulatPecahan.java. Kemudian diberi nama out dan terakhir pemanggilan method dari class lain yaitu
out.input();

kalo mau download filenya bisa disini :
JmlBilBulatPecahan.class
JmlBilBulatPecahan.jar

Akhirnya.. kita selesai jugaaa :D
Mohon maaf apabila ada penjelasan yang kurang berkenan atau kurang difahami, mohon untuk dimaklum yang punya lapak masih dalam tahap belajar hehehe..
Jika masih ada yang error silahkan di cek kembali, mungkin saja penamaan Class nya yg tidak sesuai atau nama variabelnya yg tidak sesuai, atau mungkin pendevinisian methodnya yang salah, silahkan untuk di cek kembali :)

INGATT!! jika error bukan CODING yang salah tapi LOGIKA KITA yang salah hehehe.

Selamat bertemu di postingan berikutnya~ :)

0 comments:

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More